Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
577919db
Unverified
Commit
577919db
authored
May 04, 2022
by
Zachary Anderson
Committed by
GitHub
May 04, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Don't hardcode ink sparkle spir-v (#102674)
parent
d1bbd822
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
429 additions
and
3111 deletions
+429
-3111
analyze.dart
dev/bots/analyze.dart
+1
-0
ink_sparkle.dart
packages/flutter/lib/src/material/ink_sparkle.dart
+9
-3105
ink_sparkle.frag
packages/flutter/lib/src/material/shaders/ink_sparkle.frag
+106
-0
asset.dart
packages/flutter_tools/lib/src/asset.dart
+41
-4
assets.dart
...es/flutter_tools/lib/src/build_system/targets/assets.dart
+14
-1
common.dart
...es/flutter_tools/lib/src/build_system/targets/common.dart
+2
-0
ios.dart
packages/flutter_tools/lib/src/build_system/targets/ios.dart
+2
-0
shader_compiler.dart
...r_tools/lib/src/build_system/targets/shader_compiler.dart
+98
-0
bundle_builder.dart
packages/flutter_tools/lib/src/bundle_builder.dart
+17
-1
asset_bundle_test.dart
...s/flutter_tools/test/general.shard/asset_bundle_test.dart
+58
-0
shader_compiler_test.dart
...eral.shard/build_system/targets/shader_compiler_test.dart
+81
-0
No files found.
dev/bots/analyze.dart
View file @
577919db
...
...
@@ -472,6 +472,7 @@ Future<void> verifyNoMissingLicense(String workingDirectory, { bool checkMinimum
failed
+=
await
_verifyNoMissingLicenseForExtension
(
workingDirectory
,
'ps1'
,
overrideMinimumMatches
??
1
,
_generateLicense
(
'# '
));
failed
+=
await
_verifyNoMissingLicenseForExtension
(
workingDirectory
,
'html'
,
overrideMinimumMatches
??
1
,
'<!--
${_generateLicense('')}
-->'
,
trailingBlank:
false
,
header:
r'<!DOCTYPE HTML>\n'
);
failed
+=
await
_verifyNoMissingLicenseForExtension
(
workingDirectory
,
'xml'
,
overrideMinimumMatches
??
1
,
'<!--
${_generateLicense('')}
-->'
,
header:
r'(<\?xml version="1.0" encoding="utf-8"\?>\n)?'
);
failed
+=
await
_verifyNoMissingLicenseForExtension
(
workingDirectory
,
'frag'
,
overrideMinimumMatches
??
1
,
_generateLicense
(
'// '
),
header:
r'#version 320 es(\n)+'
);
if
(
failed
>
0
)
{
exitWithError
(<
String
>[
'License check failed.'
]);
}
...
...
packages/flutter/lib/src/material/ink_sparkle.dart
View file @
577919db
...
...
@@ -7,6 +7,7 @@ import 'dart:math' as math;
import
'dart:typed_data'
;
import
'dart:ui'
as
ui
;
import
'package:flutter/services.dart'
;
import
'package:flutter/widgets.dart'
;
import
'package:vector_math/vector_math_64.dart'
;
...
...
@@ -494,7 +495,7 @@ double _getTargetRadius(
}
// The code below is generated by the package: fragment_shader_manager.
// It is hand modified to update for flutter/flutter style and asset loading.
/// A generated class for managing [FragmentProgram] that includes a
/// pre-transpiled shader program into SPIR-V.
...
...
@@ -502,122 +503,23 @@ double _getTargetRadius(
/// See:
/// - https://github.com/material-components/material-components-flutter-experimental/tree/fragment-shader-manager/fragment_shader_manager
///
/// GLSL source for this shader:
///
/// #version 320 es
///
/// precision highp float;
///
/// layout(location = 0) uniform vec4 u_color;
/// layout(location = 1) uniform float u_alpha;
/// layout(location = 2) uniform vec4 u_sparkle_color;
/// layout(location = 3) uniform float u_sparkle_alpha;
/// layout(location = 4) uniform float u_blur;
/// layout(location = 5) uniform vec2 u_center;
/// layout(location = 6) uniform float u_radius_scale;
/// layout(location = 7) uniform float u_max_radius;
/// layout(location = 8) uniform vec2 u_resolution_scale;
/// layout(location = 9) uniform vec2 u_noise_scale;
/// layout(location = 10) uniform float u_noise_phase;
/// layout(location = 11) uniform float u_turbulence_phase;
/// layout(location = 12) uniform vec2 u_circle1;
/// layout(location = 13) uniform vec2 u_circle2;
/// layout(location = 14) uniform vec2 u_circle3;
/// layout(location = 15) uniform vec2 u_rotation1;
/// layout(location = 16) uniform vec2 u_rotation2;
/// layout(location = 17) uniform vec2 u_rotation3;
///
/// layout(location = 0) out vec4 fragColor;
///
/// const float PI = 3.1415926535897932384626;
/// const float PI_ROTATE_RIGHT = PI * 0.0078125;
/// const float PI_ROTATE_LEFT = PI * -0.0078125;
/// const float ONE_THIRD = 1./3.;
/// const vec2 TURBULENCE_SCALE = vec2(0.8);
///
/// float saturate(float x) {
/// return clamp(x, 0.0, 1.0);
/// }
///
/// float triangle_noise(highp vec2 n) {
/// n = fract(n * vec2(5.3987, 5.4421));
/// n += dot(n.yx, n.xy + vec2(21.5351, 14.3137));
/// float xy = n.x * n.y;
/// return fract(xy * 95.4307) + fract(xy * 75.04961) - 1.0;
/// }
///
/// float threshold(float v, float l, float h) {
/// return step(l, v) * (1.0 - step(h, v));
/// }
///
/// mat2 rotate2d(vec2 rad){
/// return mat2(rad.x, -rad.y, rad.y, rad.x);
/// }
///
/// float soft_circle(vec2 uv, vec2 xy, float radius, float blur) {
/// float blur_half = blur * 0.5;
/// float d = distance(uv, xy);
/// return 1.0 - smoothstep(1.0 - blur_half, 1.0 + blur_half, d / radius);
/// }
///
/// float soft_ring(vec2 uv, vec2 xy, float radius, float thickness, float blur) {
/// float circle_outer = soft_circle(uv, xy, radius + thickness, blur);
/// float circle_inner = soft_circle(uv, xy, max(radius - thickness, 0.0), blur);
/// return saturate(circle_outer - circle_inner);
/// }
///
/// float circle_grid(vec2 resolution, vec2 p, float time, vec2 xy, vec2 rotation, float cell_diameter) {
/// p = rotate2d(rotation) * (xy - p) + xy;
/// p = mod(p, cell_diameter) / resolution;
/// float cell_uv = cell_diameter / resolution.y * 0.5;
/// float r = 0.65 * cell_uv;
/// return soft_circle(p, vec2(cell_uv), r, r * 50.0);
/// }
///
/// float sparkle(vec2 uv, float t) {
/// float n = triangle_noise(uv);
/// float s = threshold(n, 0.0, 0.05);
/// s += threshold(n + sin(PI * (t + 0.35)), 0.1, 0.15);
/// s += threshold(n + sin(PI * (t + 0.7)), 0.2, 0.25);
/// s += threshold(n + sin(PI * (t + 1.05)), 0.3, 0.35);
/// return saturate(s) * 0.55;
/// }
///
/// float turbulence(vec2 uv) {
/// vec2 uv_scale = uv * TURBULENCE_SCALE;
/// float g1 = circle_grid(TURBULENCE_SCALE, uv_scale, u_turbulence_phase, u_circle1, u_rotation1, 0.17);
/// float g2 = circle_grid(TURBULENCE_SCALE, uv_scale, u_turbulence_phase, u_circle2, u_rotation2, 0.2);
/// float g3 = circle_grid(TURBULENCE_SCALE, uv_scale, u_turbulence_phase, u_circle3, u_rotation3, 0.275);
/// float v = (g1 * g1 + g2 - g3) * 0.5;
/// return saturate(0.45 + 0.8 * v);
/// }
///
/// void main() {
/// vec2 p = gl_FragCoord.xy;
/// vec2 uv = p * u_resolution_scale;
/// vec2 density_uv = uv - mod(p, u_noise_scale);
/// float radius = u_max_radius * u_radius_scale;
/// float turbulence = turbulence(uv);
/// float ring = soft_ring(p, u_center, radius, 0.05 * u_max_radius, u_blur);
/// float sparkle = sparkle(density_uv, u_noise_phase) * ring * turbulence * u_sparkle_alpha;
/// float wave_alpha = soft_circle(p, u_center, radius, u_blur) * u_alpha * u_color.a;
/// vec4 wave_color = vec4(u_color.rgb * wave_alpha, wave_alpha);
/// vec4 sparkle_color = vec4(u_sparkle_color.rgb * u_sparkle_color.a, u_sparkle_color.a);
/// fragColor = mix(wave_color, sparkle_color, sparkle);
/// }
/// GLSL source for this shader is under `shaders/ink_sparkle.frag`.
class
FragmentShaderManager
{
FragmentShaderManager
.
_
();
static
late
ui
.
FragmentProgram
_program
;
/// Creates an [FragmentShaderManager] with an [InkSparkle] effect.
static
Future
<
FragmentShaderManager
>
inkSparkle
()
async
{
final
FragmentShaderManager
manager
=
FragmentShaderManager
.
_
();
await
manager
.
compile
();
await
manager
.
_
compile
();
return
manager
;
}
/// Compiles the spir-v bytecode into a shader program.
Future
<
void
>
compile
()
async
{
_program
=
await
ui
.
FragmentProgram
.
compile
(
spirv:
spirvByteBuffer
);
Future
<
void
>
_compile
()
async
{
final
ByteData
data
=
await
rootBundle
.
load
(
'shaders/ink_sparkle.frag'
);
_program
=
await
ui
.
FragmentProgram
.
compile
(
spirv:
data
.
buffer
);
}
/// Creates a shader with the original program and optional uniforms.
...
...
@@ -656,7 +558,6 @@ class FragmentShaderManager {
...
uResolutionScale
!=
null
?
uResolutionScale
.
storage
:
<
double
>[
0
,
0
],
...
uNoiseScale
!=
null
?
uNoiseScale
.
storage
:
<
double
>[
0
,
0
],
...
uNoisePhase
!=
null
?
<
double
>[
uNoisePhase
]
:
<
double
>[
0
],
...
uTurbulencePhase
!=
null
?
<
double
>[
uTurbulencePhase
]
:
<
double
>[
0
],
...
uCircle1
!=
null
?
uCircle1
.
storage
:
<
double
>[
0
,
0
],
...
uCircle2
!=
null
?
uCircle2
.
storage
:
<
double
>[
0
,
0
],
...
uCircle3
!=
null
?
uCircle3
.
storage
:
<
double
>[
0
,
0
],
...
...
@@ -666,3001 +567,4 @@ class FragmentShaderManager {
]),
);
}
late
ui
.
FragmentProgram
_program
;
/// Direct access to the [ui.FragmentProgram] that this class manages.
///
/// In general, this is not needed, but may be useful for debugging or edge cases.
ui
.
FragmentProgram
get
program
=>
_program
;
/// Direct access to the SPIR-V bytecode that was used to generate this class.
///
/// In general, this is not needed, but may be useful for debugging or edge cases.
///
/// Words in SPIR-V are 32 bits. Every 4 elements in this list represents 1
/// SPIR-V word. See https://www.khronos.org/registry/SPIR-V/.
ByteBuffer
get
spirvByteBuffer
=>
Uint8List
.
fromList
(
_spirvByteList
).
buffer
;
}
// TODO(clocksmith): Move spirv to binary asset.
// https://github.com/flutter/flutter/issues/99783
/// 11900 bytes
const
List
<
int
>
_spirvByteList
=
<
int
>[
0x03
,
0x02
,
0x23
,
0x07
,
0x00
,
0x00
,
0x01
,
0x00
,
0x0A
,
0x00
,
0x0D
,
0x00
,
0xCE
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x11
,
0x00
,
0x02
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x0B
,
0x00
,
0x06
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x47
,
0x4C
,
0x53
,
0x4C
,
0x2E
,
0x73
,
0x74
,
0x64
,
0x2E
,
0x34
,
0x35
,
0x30
,
0x00
,
0x00
,
0x00
,
0x00
,
0x0E
,
0x00
,
0x03
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x0F
,
0x00
,
0x07
,
0x00
,
0x04
,
0x00
,
0x00
,
0x00
,
0x04
,
0x00
,
0x00
,
0x00
,
0x6D
,
0x61
,
0x69
,
0x6E
,
0x00
,
0x00
,
0x00
,
0x00
,
0x62
,
0x01
,
0x00
,
0x00
,
0xC5
,
0x01
,
0x00
,
0x00
,
0x10
,
0x00
,
0x03
,
0x00
,
0x04
,
0x00
,
0x00
,
0x00
,
0x08
,
0x00
,
0x00
,
0x00
,
0x03
,
0x00
,
0x03
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x40
,
0x01
,
0x00
,
0x00
,
0x04
,
0x00
,
0x0A
,
0x00
,
0x47
,
0x4C
,
0x5F
,
0x47
,
0x4F
,
0x4F
,
0x47
,
0x4C
,
0x45
,
0x5F
,
0x63
,
0x70
,
0x70
,
0x5F
,
0x73
,
0x74
,
0x79
,
0x6C
,
0x65
,
0x5F
,
0x6C
,
0x69
,
0x6E
,
0x65
,
0x5F
,
0x64
,
0x69
,
0x72
,
0x65
,
0x63
,
0x74
,
0x69
,
0x76
,
0x65
,
0x00
,
0x00
,
0x04
,
0x00
,
0x08
,
0x00
,
0x47
,
0x4C
,
0x5F
,
0x47
,
0x4F
,
0x4F
,
0x47
,
0x4C
,
0x45
,
0x5F
,
0x69
,
0x6E
,
0x63
,
0x6C
,
0x75
,
0x64
,
0x65
,
0x5F
,
0x64
,
0x69
,
0x72
,
0x65
,
0x63
,
0x74
,
0x69
,
0x76
,
0x65
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x04
,
0x00
,
0x00
,
0x00
,
0x6D
,
0x61
,
0x69
,
0x6E
,
0x00
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x0A
,
0x00
,
0x00
,
0x00
,
0x73
,
0x61
,
0x74
,
0x75
,
0x72
,
0x61
,
0x74
,
0x65
,
0x28
,
0x66
,
0x31
,
0x3B
,
0x00
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x09
,
0x00
,
0x00
,
0x00
,
0x78
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x07
,
0x00
,
0x10
,
0x00
,
0x00
,
0x00
,
0x74
,
0x72
,
0x69
,
0x61
,
0x6E
,
0x67
,
0x6C
,
0x65
,
0x5F
,
0x6E
,
0x6F
,
0x69
,
0x73
,
0x65
,
0x28
,
0x76
,
0x66
,
0x32
,
0x3B
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x0F
,
0x00
,
0x00
,
0x00
,
0x6E
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x07
,
0x00
,
0x16
,
0x00
,
0x00
,
0x00
,
0x74
,
0x68
,
0x72
,
0x65
,
0x73
,
0x68
,
0x6F
,
0x6C
,
0x64
,
0x28
,
0x66
,
0x31
,
0x3B
,
0x66
,
0x31
,
0x3B
,
0x66
,
0x31
,
0x3B
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x13
,
0x00
,
0x00
,
0x00
,
0x76
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x14
,
0x00
,
0x00
,
0x00
,
0x6C
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x15
,
0x00
,
0x00
,
0x00
,
0x68
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x1B
,
0x00
,
0x00
,
0x00
,
0x72
,
0x6F
,
0x74
,
0x61
,
0x74
,
0x65
,
0x32
,
0x64
,
0x28
,
0x76
,
0x66
,
0x32
,
0x3B
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x1A
,
0x00
,
0x00
,
0x00
,
0x72
,
0x61
,
0x64
,
0x00
,
0x05
,
0x00
,
0x09
,
0x00
,
0x22
,
0x00
,
0x00
,
0x00
,
0x73
,
0x6F
,
0x66
,
0x74
,
0x5F
,
0x63
,
0x69
,
0x72
,
0x63
,
0x6C
,
0x65
,
0x28
,
0x76
,
0x66
,
0x32
,
0x3B
,
0x76
,
0x66
,
0x32
,
0x3B
,
0x66
,
0x31
,
0x3B
,
0x66
,
0x31
,
0x3B
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x75
,
0x76
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x1F
,
0x00
,
0x00
,
0x00
,
0x78
,
0x79
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x20
,
0x00
,
0x00
,
0x00
,
0x72
,
0x61
,
0x64
,
0x69
,
0x75
,
0x73
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x21
,
0x00
,
0x00
,
0x00
,
0x62
,
0x6C
,
0x75
,
0x72
,
0x00
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x09
,
0x00
,
0x2A
,
0x00
,
0x00
,
0x00
,
0x73
,
0x6F
,
0x66
,
0x74
,
0x5F
,
0x72
,
0x69
,
0x6E
,
0x67
,
0x28
,
0x76
,
0x66
,
0x32
,
0x3B
,
0x76
,
0x66
,
0x32
,
0x3B
,
0x66
,
0x31
,
0x3B
,
0x66
,
0x31
,
0x3B
,
0x66
,
0x31
,
0x3B
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x25
,
0x00
,
0x00
,
0x00
,
0x75
,
0x76
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x26
,
0x00
,
0x00
,
0x00
,
0x78
,
0x79
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x27
,
0x00
,
0x00
,
0x00
,
0x72
,
0x61
,
0x64
,
0x69
,
0x75
,
0x73
,
0x00
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x28
,
0x00
,
0x00
,
0x00
,
0x74
,
0x68
,
0x69
,
0x63
,
0x6B
,
0x6E
,
0x65
,
0x73
,
0x73
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x29
,
0x00
,
0x00
,
0x00
,
0x62
,
0x6C
,
0x75
,
0x72
,
0x00
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x0B
,
0x00
,
0x33
,
0x00
,
0x00
,
0x00
,
0x63
,
0x69
,
0x72
,
0x63
,
0x6C
,
0x65
,
0x5F
,
0x67
,
0x72
,
0x69
,
0x64
,
0x28
,
0x76
,
0x66
,
0x32
,
0x3B
,
0x76
,
0x66
,
0x32
,
0x3B
,
0x66
,
0x31
,
0x3B
,
0x76
,
0x66
,
0x32
,
0x3B
,
0x76
,
0x66
,
0x32
,
0x3B
,
0x66
,
0x31
,
0x3B
,
0x00
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x2D
,
0x00
,
0x00
,
0x00
,
0x72
,
0x65
,
0x73
,
0x6F
,
0x6C
,
0x75
,
0x74
,
0x69
,
0x6F
,
0x6E
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x2E
,
0x00
,
0x00
,
0x00
,
0x70
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x2F
,
0x00
,
0x00
,
0x00
,
0x74
,
0x69
,
0x6D
,
0x65
,
0x00
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x30
,
0x00
,
0x00
,
0x00
,
0x78
,
0x79
,
0x00
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x31
,
0x00
,
0x00
,
0x00
,
0x72
,
0x6F
,
0x74
,
0x61
,
0x74
,
0x69
,
0x6F
,
0x6E
,
0x00
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x32
,
0x00
,
0x00
,
0x00
,
0x63
,
0x65
,
0x6C
,
0x6C
,
0x5F
,
0x64
,
0x69
,
0x61
,
0x6D
,
0x65
,
0x74
,
0x65
,
0x72
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x38
,
0x00
,
0x00
,
0x00
,
0x73
,
0x70
,
0x61
,
0x72
,
0x6B
,
0x6C
,
0x65
,
0x28
,
0x76
,
0x66
,
0x32
,
0x3B
,
0x66
,
0x31
,
0x3B
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x36
,
0x00
,
0x00
,
0x00
,
0x75
,
0x76
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x37
,
0x00
,
0x00
,
0x00
,
0x74
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x3B
,
0x00
,
0x00
,
0x00
,
0x74
,
0x75
,
0x72
,
0x62
,
0x75
,
0x6C
,
0x65
,
0x6E
,
0x63
,
0x65
,
0x28
,
0x76
,
0x66
,
0x32
,
0x3B
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x3A
,
0x00
,
0x00
,
0x00
,
0x75
,
0x76
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x54
,
0x00
,
0x00
,
0x00
,
0x78
,
0x79
,
0x00
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x81
,
0x00
,
0x00
,
0x00
,
0x62
,
0x6C
,
0x75
,
0x72
,
0x5F
,
0x68
,
0x61
,
0x6C
,
0x66
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x85
,
0x00
,
0x00
,
0x00
,
0x64
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x94
,
0x00
,
0x00
,
0x00
,
0x63
,
0x69
,
0x72
,
0x63
,
0x6C
,
0x65
,
0x5F
,
0x6F
,
0x75
,
0x74
,
0x65
,
0x72
,
0x00
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x98
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x9A
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x9C
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x9D
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0xA0
,
0x00
,
0x00
,
0x00
,
0x63
,
0x69
,
0x72
,
0x63
,
0x6C
,
0x65
,
0x5F
,
0x69
,
0x6E
,
0x6E
,
0x65
,
0x72
,
0x00
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xA5
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xA7
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xA9
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xAA
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xB0
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xB4
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xC3
,
0x00
,
0x00
,
0x00
,
0x63
,
0x65
,
0x6C
,
0x6C
,
0x5F
,
0x75
,
0x76
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0xC9
,
0x00
,
0x00
,
0x00
,
0x72
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xD2
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xD4
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xD5
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xD7
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0xDB
,
0x00
,
0x00
,
0x00
,
0x6E
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xDC
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0xDF
,
0x00
,
0x00
,
0x00
,
0x73
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xE1
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xE3
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xE4
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xF0
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xF1
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xF2
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xFF
,
0x00
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x01
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x0E
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x0F
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x13
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x1A
,
0x01
,
0x00
,
0x00
,
0x75
,
0x76
,
0x5F
,
0x73
,
0x63
,
0x61
,
0x6C
,
0x65
,
0x00
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x1F
,
0x01
,
0x00
,
0x00
,
0x67
,
0x31
,
0x00
,
0x00
,
0x05
,
0x00
,
0x07
,
0x00
,
0x21
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x74
,
0x75
,
0x72
,
0x62
,
0x75
,
0x6C
,
0x65
,
0x6E
,
0x63
,
0x65
,
0x5F
,
0x70
,
0x68
,
0x61
,
0x73
,
0x65
,
0x00
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x23
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x63
,
0x69
,
0x72
,
0x63
,
0x6C
,
0x65
,
0x31
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x24
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x72
,
0x6F
,
0x74
,
0x61
,
0x74
,
0x69
,
0x6F
,
0x6E
,
0x31
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x26
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x27
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x29
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x2B
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x2D
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x2F
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x31
,
0x01
,
0x00
,
0x00
,
0x67
,
0x32
,
0x00
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x32
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x63
,
0x69
,
0x72
,
0x63
,
0x6C
,
0x65
,
0x32
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x33
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x72
,
0x6F
,
0x74
,
0x61
,
0x74
,
0x69
,
0x6F
,
0x6E
,
0x32
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x34
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x35
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x37
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x39
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x3B
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x3D
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x3F
,
0x01
,
0x00
,
0x00
,
0x67
,
0x33
,
0x00
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x40
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x63
,
0x69
,
0x72
,
0x63
,
0x6C
,
0x65
,
0x33
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x41
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x72
,
0x6F
,
0x74
,
0x61
,
0x74
,
0x69
,
0x6F
,
0x6E
,
0x33
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x43
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x44
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x46
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x48
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x4A
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x4C
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x4E
,
0x01
,
0x00
,
0x00
,
0x76
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x5B
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x5F
,
0x01
,
0x00
,
0x00
,
0x70
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x62
,
0x01
,
0x00
,
0x00
,
0x67
,
0x6C
,
0x5F
,
0x46
,
0x72
,
0x61
,
0x67
,
0x43
,
0x6F
,
0x6F
,
0x72
,
0x64
,
0x00
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x03
,
0x00
,
0x65
,
0x01
,
0x00
,
0x00
,
0x75
,
0x76
,
0x00
,
0x00
,
0x05
,
0x00
,
0x07
,
0x00
,
0x67
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x72
,
0x65
,
0x73
,
0x6F
,
0x6C
,
0x75
,
0x74
,
0x69
,
0x6F
,
0x6E
,
0x5F
,
0x73
,
0x63
,
0x61
,
0x6C
,
0x65
,
0x00
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x6A
,
0x01
,
0x00
,
0x00
,
0x64
,
0x65
,
0x6E
,
0x73
,
0x69
,
0x74
,
0x79
,
0x5F
,
0x75
,
0x76
,
0x00
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x6D
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x6E
,
0x6F
,
0x69
,
0x73
,
0x65
,
0x5F
,
0x73
,
0x63
,
0x61
,
0x6C
,
0x65
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x71
,
0x01
,
0x00
,
0x00
,
0x72
,
0x61
,
0x64
,
0x69
,
0x75
,
0x73
,
0x00
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x72
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x6D
,
0x61
,
0x78
,
0x5F
,
0x72
,
0x61
,
0x64
,
0x69
,
0x75
,
0x73
,
0x00
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x74
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x72
,
0x61
,
0x64
,
0x69
,
0x75
,
0x73
,
0x5F
,
0x73
,
0x63
,
0x61
,
0x6C
,
0x65
,
0x00
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x77
,
0x01
,
0x00
,
0x00
,
0x74
,
0x75
,
0x72
,
0x62
,
0x75
,
0x6C
,
0x65
,
0x6E
,
0x63
,
0x65
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x78
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x7B
,
0x01
,
0x00
,
0x00
,
0x72
,
0x69
,
0x6E
,
0x67
,
0x00
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x7C
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x63
,
0x65
,
0x6E
,
0x74
,
0x65
,
0x72
,
0x00
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x7F
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x62
,
0x6C
,
0x75
,
0x72
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x80
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x82
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x84
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x86
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x87
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x8A
,
0x01
,
0x00
,
0x00
,
0x73
,
0x70
,
0x61
,
0x72
,
0x6B
,
0x6C
,
0x65
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x8B
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x6E
,
0x6F
,
0x69
,
0x73
,
0x65
,
0x5F
,
0x70
,
0x68
,
0x61
,
0x73
,
0x65
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x8C
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x8E
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x95
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x73
,
0x70
,
0x61
,
0x72
,
0x6B
,
0x6C
,
0x65
,
0x5F
,
0x61
,
0x6C
,
0x70
,
0x68
,
0x61
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0x98
,
0x01
,
0x00
,
0x00
,
0x77
,
0x61
,
0x76
,
0x65
,
0x5F
,
0x61
,
0x6C
,
0x70
,
0x68
,
0x61
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x99
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x9B
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x9D
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0x9F
,
0x01
,
0x00
,
0x00
,
0x70
,
0x61
,
0x72
,
0x61
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xA2
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x61
,
0x6C
,
0x70
,
0x68
,
0x61
,
0x00
,
0x05
,
0x00
,
0x04
,
0x00
,
0xA6
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x63
,
0x6F
,
0x6C
,
0x6F
,
0x72
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0xAC
,
0x01
,
0x00
,
0x00
,
0x77
,
0x61
,
0x76
,
0x65
,
0x5F
,
0x63
,
0x6F
,
0x6C
,
0x6F
,
0x72
,
0x00
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0xB7
,
0x01
,
0x00
,
0x00
,
0x73
,
0x70
,
0x61
,
0x72
,
0x6B
,
0x6C
,
0x65
,
0x5F
,
0x63
,
0x6F
,
0x6C
,
0x6F
,
0x72
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0xB8
,
0x01
,
0x00
,
0x00
,
0x75
,
0x5F
,
0x73
,
0x70
,
0x61
,
0x72
,
0x6B
,
0x6C
,
0x65
,
0x5F
,
0x63
,
0x6F
,
0x6C
,
0x6F
,
0x72
,
0x00
,
0x05
,
0x00
,
0x05
,
0x00
,
0xC5
,
0x01
,
0x00
,
0x00
,
0x66
,
0x72
,
0x61
,
0x67
,
0x43
,
0x6F
,
0x6C
,
0x6F
,
0x72
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x21
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x0B
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x23
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x24
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x0F
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x32
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x33
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x10
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x40
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x0E
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x41
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x11
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x62
,
0x01
,
0x00
,
0x00
,
0x0B
,
0x00
,
0x00
,
0x00
,
0x0F
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x67
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x08
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x6D
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x09
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x72
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x74
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x7C
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x05
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x7F
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x04
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x8B
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x0A
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0x95
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x03
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0xA2
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0xA6
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0xB8
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x02
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x04
,
0x00
,
0xC5
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x13
,
0x00
,
0x02
,
0x00
,
0x02
,
0x00
,
0x00
,
0x00
,
0x21
,
0x00
,
0x03
,
0x00
,
0x03
,
0x00
,
0x00
,
0x00
,
0x02
,
0x00
,
0x00
,
0x00
,
0x16
,
0x00
,
0x03
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x20
,
0x00
,
0x00
,
0x00
,
0x20
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x21
,
0x00
,
0x04
,
0x00
,
0x08
,
0x00
,
0x00
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x17
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x02
,
0x00
,
0x00
,
0x00
,
0x20
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x21
,
0x00
,
0x04
,
0x00
,
0x0E
,
0x00
,
0x00
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x21
,
0x00
,
0x06
,
0x00
,
0x12
,
0x00
,
0x00
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x18
,
0x00
,
0x04
,
0x00
,
0x18
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x02
,
0x00
,
0x00
,
0x00
,
0x21
,
0x00
,
0x04
,
0x00
,
0x19
,
0x00
,
0x00
,
0x00
,
0x18
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x21
,
0x00
,
0x07
,
0x00
,
0x1D
,
0x00
,
0x00
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x21
,
0x00
,
0x08
,
0x00
,
0x24
,
0x00
,
0x00
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x21
,
0x00
,
0x09
,
0x00
,
0x2C
,
0x00
,
0x00
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x21
,
0x00
,
0x05
,
0x00
,
0x35
,
0x00
,
0x00
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x3F
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x80
,
0x3F
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x44
,
0x00
,
0x00
,
0x00
,
0x27
,
0xC2
,
0xAC
,
0x40
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x45
,
0x00
,
0x00
,
0x00
,
0xAF
,
0x25
,
0xAE
,
0x40
,
0x2C
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x46
,
0x00
,
0x00
,
0x00
,
0x44
,
0x00
,
0x00
,
0x00
,
0x45
,
0x00
,
0x00
,
0x00
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x4C
,
0x00
,
0x00
,
0x00
,
0xE3
,
0x47
,
0xAC
,
0x41
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x4D
,
0x00
,
0x00
,
0x00
,
0xEA
,
0x04
,
0x65
,
0x41
,
0x2C
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x4E
,
0x00
,
0x00
,
0x00
,
0x4C
,
0x00
,
0x00
,
0x00
,
0x4D
,
0x00
,
0x00
,
0x00
,
0x15
,
0x00
,
0x04
,
0x00
,
0x55
,
0x00
,
0x00
,
0x00
,
0x20
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x55
,
0x00
,
0x00
,
0x00
,
0x56
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x55
,
0x00
,
0x00
,
0x00
,
0x59
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x5E
,
0x00
,
0x00
,
0x00
,
0x85
,
0xDC
,
0xBE
,
0x42
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x62
,
0x00
,
0x00
,
0x00
,
0x66
,
0x19
,
0x96
,
0x42
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x83
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3F
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xCA
,
0x00
,
0x00
,
0x00
,
0x66
,
0x66
,
0x26
,
0x3F
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xD0
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x48
,
0x42
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xE0
,
0x00
,
0x00
,
0x00
,
0xCD
,
0xCC
,
0x4C
,
0x3D
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xE7
,
0x00
,
0x00
,
0x00
,
0xDB
,
0x0F
,
0x49
,
0x40
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xE9
,
0x00
,
0x00
,
0x00
,
0x33
,
0x33
,
0xB3
,
0x3E
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xEE
,
0x00
,
0x00
,
0x00
,
0xCD
,
0xCC
,
0xCC
,
0x3D
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xEF
,
0x00
,
0x00
,
0x00
,
0x9A
,
0x99
,
0x19
,
0x3E
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xF8
,
0x00
,
0x00
,
0x00
,
0x33
,
0x33
,
0x33
,
0x3F
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xFD
,
0x00
,
0x00
,
0x00
,
0xCD
,
0xCC
,
0x4C
,
0x3E
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xFE
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x80
,
0x3E
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x07
,
0x01
,
0x00
,
0x00
,
0x66
,
0x66
,
0x86
,
0x3F
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x01
,
0x00
,
0x00
,
0x9A
,
0x99
,
0x99
,
0x3E
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x16
,
0x01
,
0x00
,
0x00
,
0xCD
,
0xCC
,
0x0C
,
0x3F
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x1C
,
0x01
,
0x00
,
0x00
,
0xCD
,
0xCC
,
0x4C
,
0x3F
,
0x2C
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x1D
,
0x01
,
0x00
,
0x00
,
0x1C
,
0x01
,
0x00
,
0x00
,
0x1C
,
0x01
,
0x00
,
0x00
,
0x20
,
0x00
,
0x04
,
0x00
,
0x20
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x20
,
0x01
,
0x00
,
0x00
,
0x21
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x20
,
0x00
,
0x04
,
0x00
,
0x22
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x22
,
0x01
,
0x00
,
0x00
,
0x23
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x22
,
0x01
,
0x00
,
0x00
,
0x24
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x25
,
0x01
,
0x00
,
0x00
,
0x7B
,
0x14
,
0x2E
,
0x3E
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x22
,
0x01
,
0x00
,
0x00
,
0x32
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x22
,
0x01
,
0x00
,
0x00
,
0x33
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x22
,
0x01
,
0x00
,
0x00
,
0x40
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x22
,
0x01
,
0x00
,
0x00
,
0x41
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x42
,
0x01
,
0x00
,
0x00
,
0xCD
,
0xCC
,
0x8C
,
0x3E
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x57
,
0x01
,
0x00
,
0x00
,
0x66
,
0x66
,
0xE6
,
0x3E
,
0x17
,
0x00
,
0x04
,
0x00
,
0x60
,
0x01
,
0x00
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x04
,
0x00
,
0x00
,
0x00
,
0x20
,
0x00
,
0x04
,
0x00
,
0x61
,
0x01
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x60
,
0x01
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x61
,
0x01
,
0x00
,
0x00
,
0x62
,
0x01
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x22
,
0x01
,
0x00
,
0x00
,
0x67
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x22
,
0x01
,
0x00
,
0x00
,
0x6D
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x20
,
0x01
,
0x00
,
0x00
,
0x72
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x20
,
0x01
,
0x00
,
0x00
,
0x74
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x22
,
0x01
,
0x00
,
0x00
,
0x7C
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x20
,
0x01
,
0x00
,
0x00
,
0x7F
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x20
,
0x01
,
0x00
,
0x00
,
0x8B
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x20
,
0x01
,
0x00
,
0x00
,
0x95
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x20
,
0x01
,
0x00
,
0x00
,
0xA2
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x20
,
0x00
,
0x04
,
0x00
,
0xA5
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x60
,
0x01
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0xA5
,
0x01
,
0x00
,
0x00
,
0xA6
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x55
,
0x00
,
0x00
,
0x00
,
0xA7
,
0x01
,
0x00
,
0x00
,
0x03
,
0x00
,
0x00
,
0x00
,
0x20
,
0x00
,
0x04
,
0x00
,
0xAB
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x60
,
0x01
,
0x00
,
0x00
,
0x17
,
0x00
,
0x04
,
0x00
,
0xAD
,
0x01
,
0x00
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x03
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0xA5
,
0x01
,
0x00
,
0x00
,
0xB8
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x20
,
0x00
,
0x04
,
0x00
,
0xC4
,
0x01
,
0x00
,
0x00
,
0x03
,
0x00
,
0x00
,
0x00
,
0x60
,
0x01
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0xC4
,
0x01
,
0x00
,
0x00
,
0xC5
,
0x01
,
0x00
,
0x00
,
0x03
,
0x00
,
0x00
,
0x00
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xCB
,
0x01
,
0x00
,
0x00
,
0xDB
,
0x0F
,
0xC9
,
0x3C
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xCC
,
0x01
,
0x00
,
0x00
,
0xDB
,
0x0F
,
0xC9
,
0xBC
,
0x2B
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xCD
,
0x01
,
0x00
,
0x00
,
0xAB
,
0xAA
,
0xAA
,
0x3E
,
0x36
,
0x00
,
0x05
,
0x00
,
0x02
,
0x00
,
0x00
,
0x00
,
0x04
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x03
,
0x00
,
0x00
,
0x00
,
0xF8
,
0x00
,
0x02
,
0x00
,
0x05
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x5F
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x65
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x6A
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x71
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x77
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x78
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x7B
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x80
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x82
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x84
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x86
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x87
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x8A
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x8C
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x8E
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x98
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x99
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x9B
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x9D
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x9F
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0xAB
,
0x01
,
0x00
,
0x00
,
0xAC
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0xAB
,
0x01
,
0x00
,
0x00
,
0xB7
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x60
,
0x01
,
0x00
,
0x00
,
0x63
,
0x01
,
0x00
,
0x00
,
0x62
,
0x01
,
0x00
,
0x00
,
0x4F
,
0x00
,
0x07
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x64
,
0x01
,
0x00
,
0x00
,
0x63
,
0x01
,
0x00
,
0x00
,
0x63
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x5F
,
0x01
,
0x00
,
0x00
,
0x64
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x66
,
0x01
,
0x00
,
0x00
,
0x5F
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x68
,
0x01
,
0x00
,
0x00
,
0x67
,
0x01
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x69
,
0x01
,
0x00
,
0x00
,
0x66
,
0x01
,
0x00
,
0x00
,
0x68
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x65
,
0x01
,
0x00
,
0x00
,
0x69
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x6B
,
0x01
,
0x00
,
0x00
,
0x65
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x6C
,
0x01
,
0x00
,
0x00
,
0x5F
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x6E
,
0x01
,
0x00
,
0x00
,
0x6D
,
0x01
,
0x00
,
0x00
,
0x8D
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x6F
,
0x01
,
0x00
,
0x00
,
0x6C
,
0x01
,
0x00
,
0x00
,
0x6E
,
0x01
,
0x00
,
0x00
,
0x83
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x70
,
0x01
,
0x00
,
0x00
,
0x6B
,
0x01
,
0x00
,
0x00
,
0x6F
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x6A
,
0x01
,
0x00
,
0x00
,
0x70
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x73
,
0x01
,
0x00
,
0x00
,
0x72
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x75
,
0x01
,
0x00
,
0x00
,
0x74
,
0x01
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x76
,
0x01
,
0x00
,
0x00
,
0x73
,
0x01
,
0x00
,
0x00
,
0x75
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x71
,
0x01
,
0x00
,
0x00
,
0x76
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x79
,
0x01
,
0x00
,
0x00
,
0x65
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x78
,
0x01
,
0x00
,
0x00
,
0x79
,
0x01
,
0x00
,
0x00
,
0x39
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x7A
,
0x01
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x00
,
0x00
,
0x78
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x77
,
0x01
,
0x00
,
0x00
,
0x7A
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x7D
,
0x01
,
0x00
,
0x00
,
0x72
,
0x01
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x7E
,
0x01
,
0x00
,
0x00
,
0xE0
,
0x00
,
0x00
,
0x00
,
0x7D
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x81
,
0x01
,
0x00
,
0x00
,
0x5F
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x80
,
0x01
,
0x00
,
0x00
,
0x81
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x83
,
0x01
,
0x00
,
0x00
,
0x7C
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x82
,
0x01
,
0x00
,
0x00
,
0x83
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x85
,
0x01
,
0x00
,
0x00
,
0x71
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x84
,
0x01
,
0x00
,
0x00
,
0x85
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x86
,
0x01
,
0x00
,
0x00
,
0x7E
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x88
,
0x01
,
0x00
,
0x00
,
0x7F
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x87
,
0x01
,
0x00
,
0x00
,
0x88
,
0x01
,
0x00
,
0x00
,
0x39
,
0x00
,
0x09
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x89
,
0x01
,
0x00
,
0x00
,
0x2A
,
0x00
,
0x00
,
0x00
,
0x80
,
0x01
,
0x00
,
0x00
,
0x82
,
0x01
,
0x00
,
0x00
,
0x84
,
0x01
,
0x00
,
0x00
,
0x86
,
0x01
,
0x00
,
0x00
,
0x87
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x7B
,
0x01
,
0x00
,
0x00
,
0x89
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x8D
,
0x01
,
0x00
,
0x00
,
0x6A
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x8C
,
0x01
,
0x00
,
0x00
,
0x8D
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x8F
,
0x01
,
0x00
,
0x00
,
0x8B
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x8E
,
0x01
,
0x00
,
0x00
,
0x8F
,
0x01
,
0x00
,
0x00
,
0x39
,
0x00
,
0x06
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x90
,
0x01
,
0x00
,
0x00
,
0x38
,
0x00
,
0x00
,
0x00
,
0x8C
,
0x01
,
0x00
,
0x00
,
0x8E
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x91
,
0x01
,
0x00
,
0x00
,
0x7B
,
0x01
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x92
,
0x01
,
0x00
,
0x00
,
0x90
,
0x01
,
0x00
,
0x00
,
0x91
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x93
,
0x01
,
0x00
,
0x00
,
0x77
,
0x01
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x94
,
0x01
,
0x00
,
0x00
,
0x92
,
0x01
,
0x00
,
0x00
,
0x93
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x96
,
0x01
,
0x00
,
0x00
,
0x95
,
0x01
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x97
,
0x01
,
0x00
,
0x00
,
0x94
,
0x01
,
0x00
,
0x00
,
0x96
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x8A
,
0x01
,
0x00
,
0x00
,
0x97
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x9A
,
0x01
,
0x00
,
0x00
,
0x5F
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x99
,
0x01
,
0x00
,
0x00
,
0x9A
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x9C
,
0x01
,
0x00
,
0x00
,
0x7C
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x9B
,
0x01
,
0x00
,
0x00
,
0x9C
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x9E
,
0x01
,
0x00
,
0x00
,
0x71
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x9D
,
0x01
,
0x00
,
0x00
,
0x9E
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xA0
,
0x01
,
0x00
,
0x00
,
0x7F
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x9F
,
0x01
,
0x00
,
0x00
,
0xA0
,
0x01
,
0x00
,
0x00
,
0x39
,
0x00
,
0x08
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xA1
,
0x01
,
0x00
,
0x00
,
0x22
,
0x00
,
0x00
,
0x00
,
0x99
,
0x01
,
0x00
,
0x00
,
0x9B
,
0x01
,
0x00
,
0x00
,
0x9D
,
0x01
,
0x00
,
0x00
,
0x9F
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xA3
,
0x01
,
0x00
,
0x00
,
0xA2
,
0x01
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xA4
,
0x01
,
0x00
,
0x00
,
0xA1
,
0x01
,
0x00
,
0x00
,
0xA3
,
0x01
,
0x00
,
0x00
,
0x41
,
0x00
,
0x05
,
0x00
,
0x20
,
0x01
,
0x00
,
0x00
,
0xA8
,
0x01
,
0x00
,
0x00
,
0xA6
,
0x01
,
0x00
,
0x00
,
0xA7
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xA9
,
0x01
,
0x00
,
0x00
,
0xA8
,
0x01
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xAA
,
0x01
,
0x00
,
0x00
,
0xA4
,
0x01
,
0x00
,
0x00
,
0xA9
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x98
,
0x01
,
0x00
,
0x00
,
0xAA
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x60
,
0x01
,
0x00
,
0x00
,
0xAE
,
0x01
,
0x00
,
0x00
,
0xA6
,
0x01
,
0x00
,
0x00
,
0x4F
,
0x00
,
0x08
,
0x00
,
0xAD
,
0x01
,
0x00
,
0x00
,
0xAF
,
0x01
,
0x00
,
0x00
,
0xAE
,
0x01
,
0x00
,
0x00
,
0xAE
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x02
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xB0
,
0x01
,
0x00
,
0x00
,
0x98
,
0x01
,
0x00
,
0x00
,
0x8E
,
0x00
,
0x05
,
0x00
,
0xAD
,
0x01
,
0x00
,
0x00
,
0xB1
,
0x01
,
0x00
,
0x00
,
0xAF
,
0x01
,
0x00
,
0x00
,
0xB0
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xB2
,
0x01
,
0x00
,
0x00
,
0x98
,
0x01
,
0x00
,
0x00
,
0x51
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xB3
,
0x01
,
0x00
,
0x00
,
0xB1
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x51
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xB4
,
0x01
,
0x00
,
0x00
,
0xB1
,
0x01
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x51
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xB5
,
0x01
,
0x00
,
0x00
,
0xB1
,
0x01
,
0x00
,
0x00
,
0x02
,
0x00
,
0x00
,
0x00
,
0x50
,
0x00
,
0x07
,
0x00
,
0x60
,
0x01
,
0x00
,
0x00
,
0xB6
,
0x01
,
0x00
,
0x00
,
0xB3
,
0x01
,
0x00
,
0x00
,
0xB4
,
0x01
,
0x00
,
0x00
,
0xB5
,
0x01
,
0x00
,
0x00
,
0xB2
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xAC
,
0x01
,
0x00
,
0x00
,
0xB6
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x60
,
0x01
,
0x00
,
0x00
,
0xB9
,
0x01
,
0x00
,
0x00
,
0xB8
,
0x01
,
0x00
,
0x00
,
0x4F
,
0x00
,
0x08
,
0x00
,
0xAD
,
0x01
,
0x00
,
0x00
,
0xBA
,
0x01
,
0x00
,
0x00
,
0xB9
,
0x01
,
0x00
,
0x00
,
0xB9
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x02
,
0x00
,
0x00
,
0x00
,
0x41
,
0x00
,
0x05
,
0x00
,
0x20
,
0x01
,
0x00
,
0x00
,
0xBB
,
0x01
,
0x00
,
0x00
,
0xB8
,
0x01
,
0x00
,
0x00
,
0xA7
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xBC
,
0x01
,
0x00
,
0x00
,
0xBB
,
0x01
,
0x00
,
0x00
,
0x8E
,
0x00
,
0x05
,
0x00
,
0xAD
,
0x01
,
0x00
,
0x00
,
0xBD
,
0x01
,
0x00
,
0x00
,
0xBA
,
0x01
,
0x00
,
0x00
,
0xBC
,
0x01
,
0x00
,
0x00
,
0x41
,
0x00
,
0x05
,
0x00
,
0x20
,
0x01
,
0x00
,
0x00
,
0xBE
,
0x01
,
0x00
,
0x00
,
0xB8
,
0x01
,
0x00
,
0x00
,
0xA7
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xBF
,
0x01
,
0x00
,
0x00
,
0xBE
,
0x01
,
0x00
,
0x00
,
0x51
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xC0
,
0x01
,
0x00
,
0x00
,
0xBD
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x51
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xC1
,
0x01
,
0x00
,
0x00
,
0xBD
,
0x01
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x51
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xC2
,
0x01
,
0x00
,
0x00
,
0xBD
,
0x01
,
0x00
,
0x00
,
0x02
,
0x00
,
0x00
,
0x00
,
0x50
,
0x00
,
0x07
,
0x00
,
0x60
,
0x01
,
0x00
,
0x00
,
0xC3
,
0x01
,
0x00
,
0x00
,
0xC0
,
0x01
,
0x00
,
0x00
,
0xC1
,
0x01
,
0x00
,
0x00
,
0xC2
,
0x01
,
0x00
,
0x00
,
0xBF
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xB7
,
0x01
,
0x00
,
0x00
,
0xC3
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x60
,
0x01
,
0x00
,
0x00
,
0xC6
,
0x01
,
0x00
,
0x00
,
0xAC
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x60
,
0x01
,
0x00
,
0x00
,
0xC7
,
0x01
,
0x00
,
0x00
,
0xB7
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xC8
,
0x01
,
0x00
,
0x00
,
0x8A
,
0x01
,
0x00
,
0x00
,
0x50
,
0x00
,
0x07
,
0x00
,
0x60
,
0x01
,
0x00
,
0x00
,
0xC9
,
0x01
,
0x00
,
0x00
,
0xC8
,
0x01
,
0x00
,
0x00
,
0xC8
,
0x01
,
0x00
,
0x00
,
0xC8
,
0x01
,
0x00
,
0x00
,
0xC8
,
0x01
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x08
,
0x00
,
0x60
,
0x01
,
0x00
,
0x00
,
0xCA
,
0x01
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x2E
,
0x00
,
0x00
,
0x00
,
0xC6
,
0x01
,
0x00
,
0x00
,
0xC7
,
0x01
,
0x00
,
0x00
,
0xC9
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xC5
,
0x01
,
0x00
,
0x00
,
0xCA
,
0x01
,
0x00
,
0x00
,
0xFD
,
0x00
,
0x01
,
0x00
,
0x38
,
0x00
,
0x01
,
0x00
,
0x36
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x0A
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x08
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x09
,
0x00
,
0x00
,
0x00
,
0xF8
,
0x00
,
0x02
,
0x00
,
0x0B
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x00
,
0x00
,
0x09
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x08
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x40
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x2B
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x00
,
0x00
,
0x3F
,
0x00
,
0x00
,
0x00
,
0xFE
,
0x00
,
0x02
,
0x00
,
0x40
,
0x00
,
0x00
,
0x00
,
0x38
,
0x00
,
0x01
,
0x00
,
0x36
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x10
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x0E
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x0F
,
0x00
,
0x00
,
0x00
,
0xF8
,
0x00
,
0x02
,
0x00
,
0x11
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x54
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x43
,
0x00
,
0x00
,
0x00
,
0x0F
,
0x00
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x00
,
0x00
,
0x43
,
0x00
,
0x00
,
0x00
,
0x46
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x06
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x48
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x0A
,
0x00
,
0x00
,
0x00
,
0x47
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x0F
,
0x00
,
0x00
,
0x00
,
0x48
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x49
,
0x00
,
0x00
,
0x00
,
0x0F
,
0x00
,
0x00
,
0x00
,
0x4F
,
0x00
,
0x07
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x4A
,
0x00
,
0x00
,
0x00
,
0x49
,
0x00
,
0x00
,
0x00
,
0x49
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x4B
,
0x00
,
0x00
,
0x00
,
0x0F
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x4F
,
0x00
,
0x00
,
0x00
,
0x4B
,
0x00
,
0x00
,
0x00
,
0x4E
,
0x00
,
0x00
,
0x00
,
0x94
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x50
,
0x00
,
0x00
,
0x00
,
0x4A
,
0x00
,
0x00
,
0x00
,
0x4F
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x51
,
0x00
,
0x00
,
0x00
,
0x0F
,
0x00
,
0x00
,
0x00
,
0x50
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x52
,
0x00
,
0x00
,
0x00
,
0x50
,
0x00
,
0x00
,
0x00
,
0x50
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x53
,
0x00
,
0x00
,
0x00
,
0x51
,
0x00
,
0x00
,
0x00
,
0x52
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x0F
,
0x00
,
0x00
,
0x00
,
0x53
,
0x00
,
0x00
,
0x00
,
0x41
,
0x00
,
0x05
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x57
,
0x00
,
0x00
,
0x00
,
0x0F
,
0x00
,
0x00
,
0x00
,
0x56
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x58
,
0x00
,
0x00
,
0x00
,
0x57
,
0x00
,
0x00
,
0x00
,
0x41
,
0x00
,
0x05
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x5A
,
0x00
,
0x00
,
0x00
,
0x0F
,
0x00
,
0x00
,
0x00
,
0x59
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x5B
,
0x00
,
0x00
,
0x00
,
0x5A
,
0x00
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x5C
,
0x00
,
0x00
,
0x00
,
0x58
,
0x00
,
0x00
,
0x00
,
0x5B
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x54
,
0x00
,
0x00
,
0x00
,
0x5C
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x5D
,
0x00
,
0x00
,
0x00
,
0x54
,
0x00
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x5F
,
0x00
,
0x00
,
0x00
,
0x5D
,
0x00
,
0x00
,
0x00
,
0x5E
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x06
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x60
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x0A
,
0x00
,
0x00
,
0x00
,
0x5F
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x61
,
0x00
,
0x00
,
0x00
,
0x54
,
0x00
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x63
,
0x00
,
0x00
,
0x00
,
0x61
,
0x00
,
0x00
,
0x00
,
0x62
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x06
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x64
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x0A
,
0x00
,
0x00
,
0x00
,
0x63
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x65
,
0x00
,
0x00
,
0x00
,
0x60
,
0x00
,
0x00
,
0x00
,
0x64
,
0x00
,
0x00
,
0x00
,
0x83
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x66
,
0x00
,
0x00
,
0x00
,
0x65
,
0x00
,
0x00
,
0x00
,
0x3F
,
0x00
,
0x00
,
0x00
,
0xFE
,
0x00
,
0x02
,
0x00
,
0x66
,
0x00
,
0x00
,
0x00
,
0x38
,
0x00
,
0x01
,
0x00
,
0x36
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x16
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x12
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x13
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x14
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x15
,
0x00
,
0x00
,
0x00
,
0xF8
,
0x00
,
0x02
,
0x00
,
0x17
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x69
,
0x00
,
0x00
,
0x00
,
0x14
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x6A
,
0x00
,
0x00
,
0x00
,
0x13
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x07
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x6B
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x30
,
0x00
,
0x00
,
0x00
,
0x69
,
0x00
,
0x00
,
0x00
,
0x6A
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x6C
,
0x00
,
0x00
,
0x00
,
0x15
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x13
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x07
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x6E
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x30
,
0x00
,
0x00
,
0x00
,
0x6C
,
0x00
,
0x00
,
0x00
,
0x6D
,
0x00
,
0x00
,
0x00
,
0x83
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x6F
,
0x00
,
0x00
,
0x00
,
0x3F
,
0x00
,
0x00
,
0x00
,
0x6E
,
0x00
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x70
,
0x00
,
0x00
,
0x00
,
0x6B
,
0x00
,
0x00
,
0x00
,
0x6F
,
0x00
,
0x00
,
0x00
,
0xFE
,
0x00
,
0x02
,
0x00
,
0x70
,
0x00
,
0x00
,
0x00
,
0x38
,
0x00
,
0x01
,
0x00
,
0x36
,
0x00
,
0x05
,
0x00
,
0x18
,
0x00
,
0x00
,
0x00
,
0x1B
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x19
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x1A
,
0x00
,
0x00
,
0x00
,
0xF8
,
0x00
,
0x02
,
0x00
,
0x1C
,
0x00
,
0x00
,
0x00
,
0x41
,
0x00
,
0x05
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x73
,
0x00
,
0x00
,
0x00
,
0x1A
,
0x00
,
0x00
,
0x00
,
0x56
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x74
,
0x00
,
0x00
,
0x00
,
0x73
,
0x00
,
0x00
,
0x00
,
0x41
,
0x00
,
0x05
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x75
,
0x00
,
0x00
,
0x00
,
0x1A
,
0x00
,
0x00
,
0x00
,
0x59
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x76
,
0x00
,
0x00
,
0x00
,
0x75
,
0x00
,
0x00
,
0x00
,
0x7F
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x77
,
0x00
,
0x00
,
0x00
,
0x76
,
0x00
,
0x00
,
0x00
,
0x41
,
0x00
,
0x05
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x78
,
0x00
,
0x00
,
0x00
,
0x1A
,
0x00
,
0x00
,
0x00
,
0x59
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x79
,
0x00
,
0x00
,
0x00
,
0x78
,
0x00
,
0x00
,
0x00
,
0x41
,
0x00
,
0x05
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x7A
,
0x00
,
0x00
,
0x00
,
0x1A
,
0x00
,
0x00
,
0x00
,
0x56
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x7B
,
0x00
,
0x00
,
0x00
,
0x7A
,
0x00
,
0x00
,
0x00
,
0x50
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x7C
,
0x00
,
0x00
,
0x00
,
0x74
,
0x00
,
0x00
,
0x00
,
0x77
,
0x00
,
0x00
,
0x00
,
0x50
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x7D
,
0x00
,
0x00
,
0x00
,
0x79
,
0x00
,
0x00
,
0x00
,
0x7B
,
0x00
,
0x00
,
0x00
,
0x50
,
0x00
,
0x05
,
0x00
,
0x18
,
0x00
,
0x00
,
0x00
,
0x7E
,
0x00
,
0x00
,
0x00
,
0x7C
,
0x00
,
0x00
,
0x00
,
0x7D
,
0x00
,
0x00
,
0x00
,
0xFE
,
0x00
,
0x02
,
0x00
,
0x7E
,
0x00
,
0x00
,
0x00
,
0x38
,
0x00
,
0x01
,
0x00
,
0x36
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x22
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x1D
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x1F
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x20
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x21
,
0x00
,
0x00
,
0x00
,
0xF8
,
0x00
,
0x02
,
0x00
,
0x23
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x85
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x82
,
0x00
,
0x00
,
0x00
,
0x21
,
0x00
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x84
,
0x00
,
0x00
,
0x00
,
0x82
,
0x00
,
0x00
,
0x00
,
0x83
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x81
,
0x00
,
0x00
,
0x00
,
0x84
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x86
,
0x00
,
0x00
,
0x00
,
0x1E
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x87
,
0x00
,
0x00
,
0x00
,
0x1F
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x07
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x88
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x43
,
0x00
,
0x00
,
0x00
,
0x86
,
0x00
,
0x00
,
0x00
,
0x87
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x85
,
0x00
,
0x00
,
0x00
,
0x88
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x89
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x00
,
0x00
,
0x83
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x8A
,
0x00
,
0x00
,
0x00
,
0x3F
,
0x00
,
0x00
,
0x00
,
0x89
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x8B
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x8C
,
0x00
,
0x00
,
0x00
,
0x3F
,
0x00
,
0x00
,
0x00
,
0x8B
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x8D
,
0x00
,
0x00
,
0x00
,
0x85
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x8E
,
0x00
,
0x00
,
0x00
,
0x20
,
0x00
,
0x00
,
0x00
,
0x88
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x8F
,
0x00
,
0x00
,
0x00
,
0x8D
,
0x00
,
0x00
,
0x00
,
0x8E
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x08
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x90
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x31
,
0x00
,
0x00
,
0x00
,
0x8A
,
0x00
,
0x00
,
0x00
,
0x8C
,
0x00
,
0x00
,
0x00
,
0x8F
,
0x00
,
0x00
,
0x00
,
0x83
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x91
,
0x00
,
0x00
,
0x00
,
0x3F
,
0x00
,
0x00
,
0x00
,
0x90
,
0x00
,
0x00
,
0x00
,
0xFE
,
0x00
,
0x02
,
0x00
,
0x91
,
0x00
,
0x00
,
0x00
,
0x38
,
0x00
,
0x01
,
0x00
,
0x36
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x2A
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x24
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x25
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x26
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x27
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x28
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x29
,
0x00
,
0x00
,
0x00
,
0xF8
,
0x00
,
0x02
,
0x00
,
0x2B
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x94
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x98
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x9A
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x9C
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x9D
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xA0
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0xA5
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0xA7
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xA9
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xAA
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xB0
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x95
,
0x00
,
0x00
,
0x00
,
0x27
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x96
,
0x00
,
0x00
,
0x00
,
0x28
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x97
,
0x00
,
0x00
,
0x00
,
0x95
,
0x00
,
0x00
,
0x00
,
0x96
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x99
,
0x00
,
0x00
,
0x00
,
0x25
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x98
,
0x00
,
0x00
,
0x00
,
0x99
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x9B
,
0x00
,
0x00
,
0x00
,
0x26
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x9A
,
0x00
,
0x00
,
0x00
,
0x9B
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x9C
,
0x00
,
0x00
,
0x00
,
0x97
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x9E
,
0x00
,
0x00
,
0x00
,
0x29
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x9D
,
0x00
,
0x00
,
0x00
,
0x9E
,
0x00
,
0x00
,
0x00
,
0x39
,
0x00
,
0x08
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x9F
,
0x00
,
0x00
,
0x00
,
0x22
,
0x00
,
0x00
,
0x00
,
0x98
,
0x00
,
0x00
,
0x00
,
0x9A
,
0x00
,
0x00
,
0x00
,
0x9C
,
0x00
,
0x00
,
0x00
,
0x9D
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x94
,
0x00
,
0x00
,
0x00
,
0x9F
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xA1
,
0x00
,
0x00
,
0x00
,
0x27
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xA2
,
0x00
,
0x00
,
0x00
,
0x28
,
0x00
,
0x00
,
0x00
,
0x83
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xA3
,
0x00
,
0x00
,
0x00
,
0xA1
,
0x00
,
0x00
,
0x00
,
0xA2
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x07
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xA4
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x28
,
0x00
,
0x00
,
0x00
,
0xA3
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xA6
,
0x00
,
0x00
,
0x00
,
0x25
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xA5
,
0x00
,
0x00
,
0x00
,
0xA6
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xA8
,
0x00
,
0x00
,
0x00
,
0x26
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xA7
,
0x00
,
0x00
,
0x00
,
0xA8
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xA9
,
0x00
,
0x00
,
0x00
,
0xA4
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xAB
,
0x00
,
0x00
,
0x00
,
0x29
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xAA
,
0x00
,
0x00
,
0x00
,
0xAB
,
0x00
,
0x00
,
0x00
,
0x39
,
0x00
,
0x08
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xAC
,
0x00
,
0x00
,
0x00
,
0x22
,
0x00
,
0x00
,
0x00
,
0xA5
,
0x00
,
0x00
,
0x00
,
0xA7
,
0x00
,
0x00
,
0x00
,
0xA9
,
0x00
,
0x00
,
0x00
,
0xAA
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xA0
,
0x00
,
0x00
,
0x00
,
0xAC
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xAD
,
0x00
,
0x00
,
0x00
,
0x94
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xAE
,
0x00
,
0x00
,
0x00
,
0xA0
,
0x00
,
0x00
,
0x00
,
0x83
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xAF
,
0x00
,
0x00
,
0x00
,
0xAD
,
0x00
,
0x00
,
0x00
,
0xAE
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xB0
,
0x00
,
0x00
,
0x00
,
0xAF
,
0x00
,
0x00
,
0x00
,
0x39
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xB1
,
0x00
,
0x00
,
0x00
,
0x0A
,
0x00
,
0x00
,
0x00
,
0xB0
,
0x00
,
0x00
,
0x00
,
0xFE
,
0x00
,
0x02
,
0x00
,
0xB1
,
0x00
,
0x00
,
0x00
,
0x38
,
0x00
,
0x01
,
0x00
,
0x36
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x33
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x2C
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x2D
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x2E
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x2F
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x30
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x31
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x32
,
0x00
,
0x00
,
0x00
,
0xF8
,
0x00
,
0x02
,
0x00
,
0x34
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0xB4
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xC3
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xC9
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0xD2
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0xD4
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xD5
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xD7
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xB5
,
0x00
,
0x00
,
0x00
,
0x31
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xB4
,
0x00
,
0x00
,
0x00
,
0xB5
,
0x00
,
0x00
,
0x00
,
0x39
,
0x00
,
0x05
,
0x00
,
0x18
,
0x00
,
0x00
,
0x00
,
0xB6
,
0x00
,
0x00
,
0x00
,
0x1B
,
0x00
,
0x00
,
0x00
,
0xB4
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xB7
,
0x00
,
0x00
,
0x00
,
0x30
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xB8
,
0x00
,
0x00
,
0x00
,
0x2E
,
0x00
,
0x00
,
0x00
,
0x83
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xB9
,
0x00
,
0x00
,
0x00
,
0xB7
,
0x00
,
0x00
,
0x00
,
0xB8
,
0x00
,
0x00
,
0x00
,
0x91
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xBA
,
0x00
,
0x00
,
0x00
,
0xB6
,
0x00
,
0x00
,
0x00
,
0xB9
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xBB
,
0x00
,
0x00
,
0x00
,
0x30
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xBC
,
0x00
,
0x00
,
0x00
,
0xBA
,
0x00
,
0x00
,
0x00
,
0xBB
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x2E
,
0x00
,
0x00
,
0x00
,
0xBC
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xBD
,
0x00
,
0x00
,
0x00
,
0x2E
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xBE
,
0x00
,
0x00
,
0x00
,
0x32
,
0x00
,
0x00
,
0x00
,
0x50
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xBF
,
0x00
,
0x00
,
0x00
,
0xBE
,
0x00
,
0x00
,
0x00
,
0xBE
,
0x00
,
0x00
,
0x00
,
0x8D
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xC0
,
0x00
,
0x00
,
0x00
,
0xBD
,
0x00
,
0x00
,
0x00
,
0xBF
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xC1
,
0x00
,
0x00
,
0x00
,
0x2D
,
0x00
,
0x00
,
0x00
,
0x88
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xC2
,
0x00
,
0x00
,
0x00
,
0xC0
,
0x00
,
0x00
,
0x00
,
0xC1
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x2E
,
0x00
,
0x00
,
0x00
,
0xC2
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xC4
,
0x00
,
0x00
,
0x00
,
0x32
,
0x00
,
0x00
,
0x00
,
0x41
,
0x00
,
0x05
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xC5
,
0x00
,
0x00
,
0x00
,
0x2D
,
0x00
,
0x00
,
0x00
,
0x59
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xC6
,
0x00
,
0x00
,
0x00
,
0xC5
,
0x00
,
0x00
,
0x00
,
0x88
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xC7
,
0x00
,
0x00
,
0x00
,
0xC4
,
0x00
,
0x00
,
0x00
,
0xC6
,
0x00
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xC8
,
0x00
,
0x00
,
0x00
,
0xC7
,
0x00
,
0x00
,
0x00
,
0x83
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xC3
,
0x00
,
0x00
,
0x00
,
0xC8
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xCB
,
0x00
,
0x00
,
0x00
,
0xC3
,
0x00
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xCC
,
0x00
,
0x00
,
0x00
,
0xCA
,
0x00
,
0x00
,
0x00
,
0xCB
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xC9
,
0x00
,
0x00
,
0x00
,
0xCC
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xCD
,
0x00
,
0x00
,
0x00
,
0xC3
,
0x00
,
0x00
,
0x00
,
0x50
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xCE
,
0x00
,
0x00
,
0x00
,
0xCD
,
0x00
,
0x00
,
0x00
,
0xCD
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xCF
,
0x00
,
0x00
,
0x00
,
0xC9
,
0x00
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xD1
,
0x00
,
0x00
,
0x00
,
0xCF
,
0x00
,
0x00
,
0x00
,
0xD0
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xD3
,
0x00
,
0x00
,
0x00
,
0x2E
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xD2
,
0x00
,
0x00
,
0x00
,
0xD3
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xD4
,
0x00
,
0x00
,
0x00
,
0xCE
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xD6
,
0x00
,
0x00
,
0x00
,
0xC9
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xD5
,
0x00
,
0x00
,
0x00
,
0xD6
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xD7
,
0x00
,
0x00
,
0x00
,
0xD1
,
0x00
,
0x00
,
0x00
,
0x39
,
0x00
,
0x08
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xD8
,
0x00
,
0x00
,
0x00
,
0x22
,
0x00
,
0x00
,
0x00
,
0xD2
,
0x00
,
0x00
,
0x00
,
0xD4
,
0x00
,
0x00
,
0x00
,
0xD5
,
0x00
,
0x00
,
0x00
,
0xD7
,
0x00
,
0x00
,
0x00
,
0xFE
,
0x00
,
0x02
,
0x00
,
0xD8
,
0x00
,
0x00
,
0x00
,
0x38
,
0x00
,
0x01
,
0x00
,
0x36
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x38
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x35
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x36
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x00
,
0x00
,
0xF8
,
0x00
,
0x02
,
0x00
,
0x39
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xDB
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0xDC
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xDF
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xE1
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xE3
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xE4
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xF0
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xF1
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xF2
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0xFF
,
0x00
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x01
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x0E
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x0F
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x13
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0xDD
,
0x00
,
0x00
,
0x00
,
0x36
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xDC
,
0x00
,
0x00
,
0x00
,
0xDD
,
0x00
,
0x00
,
0x00
,
0x39
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xDE
,
0x00
,
0x00
,
0x00
,
0x10
,
0x00
,
0x00
,
0x00
,
0xDC
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xDB
,
0x00
,
0x00
,
0x00
,
0xDE
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xE2
,
0x00
,
0x00
,
0x00
,
0xDB
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xE1
,
0x00
,
0x00
,
0x00
,
0xE2
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xE3
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xE4
,
0x00
,
0x00
,
0x00
,
0xE0
,
0x00
,
0x00
,
0x00
,
0x39
,
0x00
,
0x07
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xE5
,
0x00
,
0x00
,
0x00
,
0x16
,
0x00
,
0x00
,
0x00
,
0xE1
,
0x00
,
0x00
,
0x00
,
0xE3
,
0x00
,
0x00
,
0x00
,
0xE4
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xDF
,
0x00
,
0x00
,
0x00
,
0xE5
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xE6
,
0x00
,
0x00
,
0x00
,
0xDB
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xE8
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xEA
,
0x00
,
0x00
,
0x00
,
0xE8
,
0x00
,
0x00
,
0x00
,
0xE9
,
0x00
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xEB
,
0x00
,
0x00
,
0x00
,
0xE7
,
0x00
,
0x00
,
0x00
,
0xEA
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x06
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xEC
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0xEB
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xED
,
0x00
,
0x00
,
0x00
,
0xE6
,
0x00
,
0x00
,
0x00
,
0xEC
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xF0
,
0x00
,
0x00
,
0x00
,
0xED
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xF1
,
0x00
,
0x00
,
0x00
,
0xEE
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xF2
,
0x00
,
0x00
,
0x00
,
0xEF
,
0x00
,
0x00
,
0x00
,
0x39
,
0x00
,
0x07
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xF3
,
0x00
,
0x00
,
0x00
,
0x16
,
0x00
,
0x00
,
0x00
,
0xF0
,
0x00
,
0x00
,
0x00
,
0xF1
,
0x00
,
0x00
,
0x00
,
0xF2
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xF4
,
0x00
,
0x00
,
0x00
,
0xDF
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xF5
,
0x00
,
0x00
,
0x00
,
0xF4
,
0x00
,
0x00
,
0x00
,
0xF3
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xDF
,
0x00
,
0x00
,
0x00
,
0xF5
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xF6
,
0x00
,
0x00
,
0x00
,
0xDB
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xF7
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xF9
,
0x00
,
0x00
,
0x00
,
0xF7
,
0x00
,
0x00
,
0x00
,
0xF8
,
0x00
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xFA
,
0x00
,
0x00
,
0x00
,
0xE7
,
0x00
,
0x00
,
0x00
,
0xF9
,
0x00
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x06
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xFB
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0xFA
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0xFC
,
0x00
,
0x00
,
0x00
,
0xF6
,
0x00
,
0x00
,
0x00
,
0xFB
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xFF
,
0x00
,
0x00
,
0x00
,
0xFC
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0xFD
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x01
,
0x01
,
0x00
,
0x00
,
0xFE
,
0x00
,
0x00
,
0x00
,
0x39
,
0x00
,
0x07
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x02
,
0x01
,
0x00
,
0x00
,
0x16
,
0x00
,
0x00
,
0x00
,
0xFF
,
0x00
,
0x00
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x01
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x03
,
0x01
,
0x00
,
0x00
,
0xDF
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x04
,
0x01
,
0x00
,
0x00
,
0x03
,
0x01
,
0x00
,
0x00
,
0x02
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xDF
,
0x00
,
0x00
,
0x00
,
0x04
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x05
,
0x01
,
0x00
,
0x00
,
0xDB
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x06
,
0x01
,
0x00
,
0x00
,
0x37
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x08
,
0x01
,
0x00
,
0x00
,
0x06
,
0x01
,
0x00
,
0x00
,
0x07
,
0x01
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x09
,
0x01
,
0x00
,
0x00
,
0xE7
,
0x00
,
0x00
,
0x00
,
0x08
,
0x01
,
0x00
,
0x00
,
0x0C
,
0x00
,
0x06
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x0A
,
0x01
,
0x00
,
0x00
,
0x01
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x09
,
0x01
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x0B
,
0x01
,
0x00
,
0x00
,
0x05
,
0x01
,
0x00
,
0x00
,
0x0A
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x0D
,
0x01
,
0x00
,
0x00
,
0x0B
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x0E
,
0x01
,
0x00
,
0x00
,
0x0C
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x0F
,
0x01
,
0x00
,
0x00
,
0xE9
,
0x00
,
0x00
,
0x00
,
0x39
,
0x00
,
0x07
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x10
,
0x01
,
0x00
,
0x00
,
0x16
,
0x00
,
0x00
,
0x00
,
0x0D
,
0x01
,
0x00
,
0x00
,
0x0E
,
0x01
,
0x00
,
0x00
,
0x0F
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x11
,
0x01
,
0x00
,
0x00
,
0xDF
,
0x00
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x12
,
0x01
,
0x00
,
0x00
,
0x11
,
0x01
,
0x00
,
0x00
,
0x10
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0xDF
,
0x00
,
0x00
,
0x00
,
0x12
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x14
,
0x01
,
0x00
,
0x00
,
0xDF
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x13
,
0x01
,
0x00
,
0x00
,
0x14
,
0x01
,
0x00
,
0x00
,
0x39
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x15
,
0x01
,
0x00
,
0x00
,
0x0A
,
0x00
,
0x00
,
0x00
,
0x13
,
0x01
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x17
,
0x01
,
0x00
,
0x00
,
0x15
,
0x01
,
0x00
,
0x00
,
0x16
,
0x01
,
0x00
,
0x00
,
0xFE
,
0x00
,
0x02
,
0x00
,
0x17
,
0x01
,
0x00
,
0x00
,
0x38
,
0x00
,
0x01
,
0x00
,
0x36
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x0E
,
0x00
,
0x00
,
0x00
,
0x37
,
0x00
,
0x03
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x3A
,
0x00
,
0x00
,
0x00
,
0xF8
,
0x00
,
0x02
,
0x00
,
0x3C
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x1A
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x1F
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x26
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x27
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x29
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x2B
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x2D
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x2F
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x31
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x34
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x35
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x37
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x39
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3F
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x43
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x44
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x46
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x48
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x0D
,
0x00
,
0x00
,
0x00
,
0x4A
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x4C
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x4E
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3B
,
0x00
,
0x04
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x5B
,
0x01
,
0x00
,
0x00
,
0x07
,
0x00
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x1B
,
0x01
,
0x00
,
0x00
,
0x3A
,
0x00
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x1E
,
0x01
,
0x00
,
0x00
,
0x1B
,
0x01
,
0x00
,
0x00
,
0x1D
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x1A
,
0x01
,
0x00
,
0x00
,
0x1E
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x26
,
0x01
,
0x00
,
0x00
,
0x1D
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x28
,
0x01
,
0x00
,
0x00
,
0x1A
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x27
,
0x01
,
0x00
,
0x00
,
0x28
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x2A
,
0x01
,
0x00
,
0x00
,
0x21
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x29
,
0x01
,
0x00
,
0x00
,
0x2A
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x2C
,
0x01
,
0x00
,
0x00
,
0x23
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x2B
,
0x01
,
0x00
,
0x00
,
0x2C
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x2E
,
0x01
,
0x00
,
0x00
,
0x24
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x2D
,
0x01
,
0x00
,
0x00
,
0x2E
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x2F
,
0x01
,
0x00
,
0x00
,
0x25
,
0x01
,
0x00
,
0x00
,
0x39
,
0x00
,
0x0A
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x30
,
0x01
,
0x00
,
0x00
,
0x33
,
0x00
,
0x00
,
0x00
,
0x26
,
0x01
,
0x00
,
0x00
,
0x27
,
0x01
,
0x00
,
0x00
,
0x29
,
0x01
,
0x00
,
0x00
,
0x2B
,
0x01
,
0x00
,
0x00
,
0x2D
,
0x01
,
0x00
,
0x00
,
0x2F
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x1F
,
0x01
,
0x00
,
0x00
,
0x30
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x34
,
0x01
,
0x00
,
0x00
,
0x1D
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x36
,
0x01
,
0x00
,
0x00
,
0x1A
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x35
,
0x01
,
0x00
,
0x00
,
0x36
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x38
,
0x01
,
0x00
,
0x00
,
0x21
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x37
,
0x01
,
0x00
,
0x00
,
0x38
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x3A
,
0x01
,
0x00
,
0x00
,
0x32
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x39
,
0x01
,
0x00
,
0x00
,
0x3A
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x3C
,
0x01
,
0x00
,
0x00
,
0x33
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x3B
,
0x01
,
0x00
,
0x00
,
0x3C
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x3D
,
0x01
,
0x00
,
0x00
,
0xFD
,
0x00
,
0x00
,
0x00
,
0x39
,
0x00
,
0x0A
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x01
,
0x00
,
0x00
,
0x33
,
0x00
,
0x00
,
0x00
,
0x34
,
0x01
,
0x00
,
0x00
,
0x35
,
0x01
,
0x00
,
0x00
,
0x37
,
0x01
,
0x00
,
0x00
,
0x39
,
0x01
,
0x00
,
0x00
,
0x3B
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x31
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x43
,
0x01
,
0x00
,
0x00
,
0x1D
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x45
,
0x01
,
0x00
,
0x00
,
0x1A
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x44
,
0x01
,
0x00
,
0x00
,
0x45
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x47
,
0x01
,
0x00
,
0x00
,
0x21
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x46
,
0x01
,
0x00
,
0x00
,
0x47
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x49
,
0x01
,
0x00
,
0x00
,
0x40
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x48
,
0x01
,
0x00
,
0x00
,
0x49
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x0C
,
0x00
,
0x00
,
0x00
,
0x4B
,
0x01
,
0x00
,
0x00
,
0x41
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x4A
,
0x01
,
0x00
,
0x00
,
0x4B
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x4C
,
0x01
,
0x00
,
0x00
,
0x42
,
0x01
,
0x00
,
0x00
,
0x39
,
0x00
,
0x0A
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x4D
,
0x01
,
0x00
,
0x00
,
0x33
,
0x00
,
0x00
,
0x00
,
0x43
,
0x01
,
0x00
,
0x00
,
0x44
,
0x01
,
0x00
,
0x00
,
0x46
,
0x01
,
0x00
,
0x00
,
0x48
,
0x01
,
0x00
,
0x00
,
0x4A
,
0x01
,
0x00
,
0x00
,
0x4C
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x3F
,
0x01
,
0x00
,
0x00
,
0x4D
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x4F
,
0x01
,
0x00
,
0x00
,
0x1F
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x50
,
0x01
,
0x00
,
0x00
,
0x1F
,
0x01
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x51
,
0x01
,
0x00
,
0x00
,
0x4F
,
0x01
,
0x00
,
0x00
,
0x50
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x52
,
0x01
,
0x00
,
0x00
,
0x31
,
0x01
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x53
,
0x01
,
0x00
,
0x00
,
0x51
,
0x01
,
0x00
,
0x00
,
0x52
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x54
,
0x01
,
0x00
,
0x00
,
0x3F
,
0x01
,
0x00
,
0x00
,
0x83
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x55
,
0x01
,
0x00
,
0x00
,
0x53
,
0x01
,
0x00
,
0x00
,
0x54
,
0x01
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x56
,
0x01
,
0x00
,
0x00
,
0x55
,
0x01
,
0x00
,
0x00
,
0x83
,
0x00
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x4E
,
0x01
,
0x00
,
0x00
,
0x56
,
0x01
,
0x00
,
0x00
,
0x3D
,
0x00
,
0x04
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x58
,
0x01
,
0x00
,
0x00
,
0x4E
,
0x01
,
0x00
,
0x00
,
0x85
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x59
,
0x01
,
0x00
,
0x00
,
0x1C
,
0x01
,
0x00
,
0x00
,
0x58
,
0x01
,
0x00
,
0x00
,
0x81
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x5A
,
0x01
,
0x00
,
0x00
,
0x57
,
0x01
,
0x00
,
0x00
,
0x59
,
0x01
,
0x00
,
0x00
,
0x3E
,
0x00
,
0x03
,
0x00
,
0x5B
,
0x01
,
0x00
,
0x00
,
0x5A
,
0x01
,
0x00
,
0x00
,
0x39
,
0x00
,
0x05
,
0x00
,
0x06
,
0x00
,
0x00
,
0x00
,
0x5C
,
0x01
,
0x00
,
0x00
,
0x0A
,
0x00
,
0x00
,
0x00
,
0x5B
,
0x01
,
0x00
,
0x00
,
0xFE
,
0x00
,
0x02
,
0x00
,
0x5C
,
0x01
,
0x00
,
0x00
,
0x38
,
0x00
,
0x01
,
0x00
,
];
packages/flutter/lib/src/material/shaders/ink_sparkle.frag
0 → 100644
View file @
577919db
#version 320 es
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
precision
highp
float
;
// TODO(antrob): Put these in a more logical order (e.g. separate consts vs varying, etc)
layout
(
location
=
0
)
uniform
vec4
u_color
;
layout
(
location
=
1
)
uniform
float
u_alpha
;
layout
(
location
=
2
)
uniform
vec4
u_sparkle_color
;
layout
(
location
=
3
)
uniform
float
u_sparkle_alpha
;
layout
(
location
=
4
)
uniform
float
u_blur
;
layout
(
location
=
5
)
uniform
vec2
u_center
;
layout
(
location
=
6
)
uniform
float
u_radius_scale
;
layout
(
location
=
7
)
uniform
float
u_max_radius
;
layout
(
location
=
8
)
uniform
vec2
u_resolution_scale
;
layout
(
location
=
9
)
uniform
vec2
u_noise_scale
;
layout
(
location
=
10
)
uniform
float
u_noise_phase
;
layout
(
location
=
11
)
uniform
vec2
u_circle1
;
layout
(
location
=
12
)
uniform
vec2
u_circle2
;
layout
(
location
=
13
)
uniform
vec2
u_circle3
;
layout
(
location
=
14
)
uniform
vec2
u_rotation1
;
layout
(
location
=
15
)
uniform
vec2
u_rotation2
;
layout
(
location
=
16
)
uniform
vec2
u_rotation3
;
layout
(
location
=
0
)
out
vec4
fragColor
;
const
float
PI
=
3
.
1415926535897932384626
;
const
float
PI_ROTATE_RIGHT
=
PI
*
0
.
007
8125
;
const
float
PI_ROTATE_LEFT
=
PI
*
-
0
.
007
8125
;
const
float
ONE_THIRD
=
1
.
/
3
.;
const
vec2
TURBULENCE_SCALE
=
vec2
(
0
.
8
);
float
saturate
(
float
x
)
{
return
clamp
(
x
,
0
.
0
,
1
.
0
);
}
float
triangle_noise
(
highp
vec2
n
)
{
n
=
fract
(
n
*
vec2
(
5
.
3987
,
5
.
4421
));
n
+=
dot
(
n
.
yx
,
n
.
xy
+
vec2
(
21
.
5351
,
14
.
3137
));
float
xy
=
n
.
x
*
n
.
y
;
return
fract
(
xy
*
95
.
4307
)
+
fract
(
xy
*
75
.
04
961
)
-
1
.
0
;
}
float
threshold
(
float
v
,
float
l
,
float
h
)
{
return
step
(
l
,
v
)
*
(
1
.
0
-
step
(
h
,
v
));
}
mat2
rotate2d
(
vec2
rad
){
return
mat2
(
rad
.
x
,
-
rad
.
y
,
rad
.
y
,
rad
.
x
);
}
float
soft_circle
(
vec2
uv
,
vec2
xy
,
float
radius
,
float
blur
)
{
float
blur_half
=
blur
*
0
.
5
;
float
d
=
distance
(
uv
,
xy
);
return
1
.
0
-
smoothstep
(
1
.
0
-
blur_half
,
1
.
0
+
blur_half
,
d
/
radius
);
}
float
soft_ring
(
vec2
uv
,
vec2
xy
,
float
radius
,
float
thickness
,
float
blur
)
{
float
circle_outer
=
soft_circle
(
uv
,
xy
,
radius
+
thickness
,
blur
);
float
circle_inner
=
soft_circle
(
uv
,
xy
,
max
(
radius
-
thickness
,
0
.
0
),
blur
);
return
saturate
(
circle_outer
-
circle_inner
);
}
float
circle_grid
(
vec2
resolution
,
vec2
p
,
vec2
xy
,
vec2
rotation
,
float
cell_diameter
)
{
p
=
rotate2d
(
rotation
)
*
(
xy
-
p
)
+
xy
;
p
=
mod
(
p
,
cell_diameter
)
/
resolution
;
float
cell_uv
=
cell_diameter
/
resolution
.
y
*
0
.
5
;
float
r
=
0
.
65
*
cell_uv
;
return
soft_circle
(
p
,
vec2
(
cell_uv
),
r
,
r
*
50
.
0
);
}
float
sparkle
(
vec2
uv
,
float
t
)
{
float
n
=
triangle_noise
(
uv
);
float
s
=
threshold
(
n
,
0
.
0
,
0
.
05
);
s
+=
threshold
(
n
+
sin
(
PI
*
(
t
+
0
.
35
)),
0
.
1
,
0
.
15
);
s
+=
threshold
(
n
+
sin
(
PI
*
(
t
+
0
.
7
)),
0
.
2
,
0
.
25
);
s
+=
threshold
(
n
+
sin
(
PI
*
(
t
+
1
.
05
)),
0
.
3
,
0
.
35
);
return
saturate
(
s
)
*
0
.
55
;
}
float
turbulence
(
vec2
uv
)
{
vec2
uv_scale
=
uv
*
TURBULENCE_SCALE
;
float
g1
=
circle_grid
(
TURBULENCE_SCALE
,
uv_scale
,
u_circle1
,
u_rotation1
,
0
.
17
);
float
g2
=
circle_grid
(
TURBULENCE_SCALE
,
uv_scale
,
u_circle2
,
u_rotation2
,
0
.
2
);
float
g3
=
circle_grid
(
TURBULENCE_SCALE
,
uv_scale
,
u_circle3
,
u_rotation3
,
0
.
275
);
float
v
=
(
g1
*
g1
+
g2
-
g3
)
*
0
.
5
;
return
saturate
(
0
.
45
+
0
.
8
*
v
);
}
void
main
()
{
vec2
p
=
gl_FragCoord
.
xy
;
vec2
uv
=
p
*
u_resolution_scale
;
vec2
density_uv
=
uv
-
mod
(
p
,
u_noise_scale
);
float
radius
=
u_max_radius
*
u_radius_scale
;
float
turbulence
=
turbulence
(
uv
);
float
ring
=
soft_ring
(
p
,
u_center
,
radius
,
0
.
05
*
u_max_radius
,
u_blur
);
float
sparkle
=
sparkle
(
density_uv
,
u_noise_phase
)
*
ring
*
turbulence
*
u_sparkle_alpha
;
float
wave_alpha
=
soft_circle
(
p
,
u_center
,
radius
,
u_blur
)
*
u_alpha
*
u_color
.
a
;
vec4
wave_color
=
vec4
(
u_color
.
rgb
*
wave_alpha
,
wave_alpha
);
vec4
sparkle_color
=
vec4
(
u_sparkle_color
.
rgb
*
u_sparkle_color
.
a
,
u_sparkle_color
.
a
);
fragColor
=
mix
(
wave_color
,
sparkle_color
,
sparkle
);
}
packages/flutter_tools/lib/src/asset.dart
View file @
577919db
...
...
@@ -43,6 +43,10 @@ const List<Map<String, Object>> kMaterialFonts = <Map<String, Object>>[
},
];
const
List
<
String
>
kMaterialShaders
=
<
String
>[
'shaders/ink_sparkle.frag'
,
];
/// Injected factory class for spawning [AssetBundle] instances.
abstract
class
AssetBundleFactory
{
/// The singleton instance, pulled from the [AppContext].
...
...
@@ -404,11 +408,15 @@ class ManifestAssetBundle implements AssetBundle {
}
final
List
<
_Asset
>
materialAssets
=
<
_Asset
>[
if
(
flutterManifest
.
usesMaterialDesign
)
...
_getMaterialAssets
(),
...
_getMaterialFonts
(),
// Include the shaders unconditionally. They are small, and whether
// they're used is determined only by the app source code and not by
// the Flutter manifest.
...
_getMaterialShaders
(),
];
for
(
final
_Asset
asset
in
materialAssets
)
{
final
File
assetFile
=
asset
.
lookupAssetFile
(
_fileSystem
);
assert
(
assetFile
.
existsSync
());
assert
(
assetFile
.
existsSync
()
,
'Missing
${assetFile.path}
'
);
entries
[
asset
.
entryUri
.
path
]
??=
DevFSFileContent
(
assetFile
);
}
...
...
@@ -490,7 +498,7 @@ class ManifestAssetBundle implements AssetBundle {
}
}
List
<
_Asset
>
_getMaterial
Asse
ts
()
{
List
<
_Asset
>
_getMaterial
Fon
ts
()
{
final
List
<
_Asset
>
result
=
<
_Asset
>[];
for
(
final
Map
<
String
,
Object
>
family
in
kMaterialFonts
)
{
final
Object
?
fonts
=
family
[
'fonts'
];
...
...
@@ -504,7 +512,10 @@ class ManifestAssetBundle implements AssetBundle {
}
final
Uri
entryUri
=
_fileSystem
.
path
.
toUri
(
asset
);
result
.
add
(
_Asset
(
baseDir:
_fileSystem
.
path
.
join
(
Cache
.
flutterRoot
!,
'bin'
,
'cache'
,
'artifacts'
,
'material_fonts'
),
baseDir:
_fileSystem
.
path
.
join
(
Cache
.
flutterRoot
!,
'bin'
,
'cache'
,
'artifacts'
,
'material_fonts'
,
),
relativeUri:
Uri
(
path:
entryUri
.
pathSegments
.
last
),
entryUri:
entryUri
,
package:
null
,
...
...
@@ -515,6 +526,32 @@ class ManifestAssetBundle implements AssetBundle {
return
result
;
}
List
<
_Asset
>
_getMaterialShaders
()
{
final
String
shaderPath
=
_fileSystem
.
path
.
join
(
Cache
.
flutterRoot
!,
'packages'
,
'flutter'
,
'lib'
,
'src'
,
'material'
,
'shaders'
,
);
// This file will exist in a real invocation unless the git checkout is
// corrupted somehow, but unit tests generally don't create this file
// in their mock file systems. Leaving it out in those cases is harmless.
if
(!
_fileSystem
.
directory
(
shaderPath
).
existsSync
())
{
return
<
_Asset
>[];
}
final
List
<
_Asset
>
result
=
<
_Asset
>[];
for
(
final
String
shader
in
kMaterialShaders
)
{
final
Uri
entryUri
=
_fileSystem
.
path
.
toUri
(
shader
);
result
.
add
(
_Asset
(
baseDir:
shaderPath
,
relativeUri:
Uri
(
path:
entryUri
.
pathSegments
.
last
),
entryUri:
entryUri
,
package:
null
,
));
}
return
result
;
}
List
<
Map
<
String
,
Object
?>>
_parseFonts
(
FlutterManifest
manifest
,
PackageConfig
packageConfig
,
{
...
...
packages/flutter_tools/lib/src/build_system/targets/assets.dart
View file @
577919db
...
...
@@ -14,6 +14,7 @@ import '../build_system.dart';
import
'../depfile.dart'
;
import
'common.dart'
;
import
'icon_tree_shaker.dart'
;
import
'shader_compiler.dart'
;
/// A helper function to copy an asset bundle into an [environment]'s output
/// directory.
...
...
@@ -24,7 +25,9 @@ import 'icon_tree_shaker.dart';
/// included in the final bundle, but not the AssetManifest.json file.
///
/// Returns a [Depfile] containing all assets used in the build.
Future
<
Depfile
>
copyAssets
(
Environment
environment
,
Directory
outputDirectory
,
{
Future
<
Depfile
>
copyAssets
(
Environment
environment
,
Directory
outputDirectory
,
{
Map
<
String
,
DevFSContent
>?
additionalContent
,
required
TargetPlatform
targetPlatform
,
BuildMode
?
buildMode
,
...
...
@@ -72,6 +75,12 @@ Future<Depfile> copyAssets(Environment environment, Directory outputDirectory, {
fileSystem:
environment
.
fileSystem
,
artifacts:
environment
.
artifacts
,
);
final
ShaderCompiler
shaderCompiler
=
ShaderCompiler
(
processManager:
environment
.
processManager
,
logger:
environment
.
logger
,
fileSystem:
environment
.
fileSystem
,
artifacts:
environment
.
artifacts
,
);
final
Map
<
String
,
DevFSContent
>
assetEntries
=
<
String
,
DevFSContent
>{
...
assetBundle
.
entries
,
...
...
@@ -100,6 +109,9 @@ Future<Depfile> copyAssets(Environment environment, Directory outputDirectory, {
input:
content
.
file
as
File
,
outputPath:
file
.
path
,
relativePath:
entry
.
key
,
)
&&
!
await
shaderCompiler
.
compileShader
(
input:
content
.
file
as
File
,
outputPath:
file
.
path
,
))
{
await
(
content
.
file
as
File
).
copy
(
file
.
path
);
}
...
...
@@ -258,6 +270,7 @@ class CopyAssets extends Target {
List
<
Source
>
get
inputs
=>
const
<
Source
>[
Source
.
pattern
(
'{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/assets.dart'
),
...
IconTreeShaker
.
inputs
,
...
ShaderCompiler
.
inputs
,
];
@override
...
...
packages/flutter_tools/lib/src/build_system/targets/common.dart
View file @
577919db
...
...
@@ -18,6 +18,7 @@ import 'assets.dart';
import
'dart_plugin_registrant.dart'
;
import
'icon_tree_shaker.dart'
;
import
'localizations.dart'
;
import
'shader_compiler.dart'
;
/// Copies the pre-built flutter bundle.
// This is a one-off rule for implementing build bundle in terms of assemble.
...
...
@@ -33,6 +34,7 @@ class CopyFlutterBundle extends Target {
Source
.
artifact
(
Artifact
.
isolateSnapshotData
,
mode:
BuildMode
.
debug
),
Source
.
pattern
(
'{BUILD_DIR}/app.dill'
),
...
IconTreeShaker
.
inputs
,
...
ShaderCompiler
.
inputs
,
];
@override
...
...
packages/flutter_tools/lib/src/build_system/targets/ios.dart
View file @
577919db
...
...
@@ -19,6 +19,7 @@ import '../exceptions.dart';
import
'assets.dart'
;
import
'common.dart'
;
import
'icon_tree_shaker.dart'
;
import
'shader_compiler.dart'
;
/// Supports compiling a dart kernel file to an assembly file.
///
...
...
@@ -439,6 +440,7 @@ abstract class IosAssetBundle extends Target {
Source
.
pattern
(
'{BUILD_DIR}/App.framework/App'
),
Source
.
pattern
(
'{PROJECT_DIR}/pubspec.yaml'
),
...
IconTreeShaker
.
inputs
,
...
ShaderCompiler
.
inputs
,
];
@override
...
...
packages/flutter_tools/lib/src/build_system/targets/shader_compiler.dart
0 → 100644
View file @
577919db
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'package:process/process.dart'
;
import
'../../artifacts.dart'
;
import
'../../base/common.dart'
;
import
'../../base/file_system.dart'
;
import
'../../base/io.dart'
;
import
'../../base/logger.dart'
;
import
'../../convert.dart'
;
import
'../build_system.dart'
;
/// A class the wraps the functionality of the Impeller shader compiler
/// impellerc.
class
ShaderCompiler
{
ShaderCompiler
({
required
ProcessManager
processManager
,
required
Logger
logger
,
required
FileSystem
fileSystem
,
required
Artifacts
artifacts
,
})
:
_processManager
=
processManager
,
_logger
=
logger
,
_fs
=
fileSystem
,
_artifacts
=
artifacts
;
final
ProcessManager
_processManager
;
final
Logger
_logger
;
final
FileSystem
_fs
;
final
Artifacts
_artifacts
;
/// The [Source] inputs that targets using this should depend on.
///
/// See [Target.inputs].
static
const
List
<
Source
>
inputs
=
<
Source
>[
Source
.
pattern
(
'{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/shader_compiler.dart'
),
Source
.
hostArtifact
(
HostArtifact
.
impellerc
),
];
/// Calls impellerc, which transforms the [input] glsl shader into a
/// platform specific shader at [outputPath].
///
/// All parameters are required.
///
/// If the input file is not a fragment shader, this returns false.
/// If the shader compiler subprocess fails, it will [throwToolExit].
/// Otherwise, it will return true.
Future
<
bool
>
compileShader
({
required
File
input
,
required
String
outputPath
,
})
async
{
if
(!
input
.
path
.
endsWith
(
'.frag'
))
{
return
false
;
}
final
File
impellerc
=
_fs
.
file
(
_artifacts
.
getHostArtifact
(
HostArtifact
.
impellerc
),
);
if
(!
impellerc
.
existsSync
())
{
throw
ShaderCompilerException
.
_
(
'The impellerc utility is missing at "
${impellerc.path}
". '
'Run "flutter doctor".'
,
);
}
final
List
<
String
>
cmd
=
<
String
>[
impellerc
.
path
,
// TODO(zanderso): When impeller is enabled, the correct flags for the
// target backend will need to be passed.
// https://github.com/flutter/flutter/issues/102853
'--flutter-spirv'
,
'--spirv=
$outputPath
'
,
'--input=
${input.path}
'
,
];
final
Process
impellercProcess
=
await
_processManager
.
start
(
cmd
);
final
int
code
=
await
impellercProcess
.
exitCode
;
if
(
code
!=
0
)
{
_logger
.
printTrace
(
await
utf8
.
decodeStream
(
impellercProcess
.
stdout
));
_logger
.
printError
(
await
utf8
.
decodeStream
(
impellercProcess
.
stderr
));
throw
ShaderCompilerException
.
_
(
'Shader compilation of "
${input.path}
" to "
$outputPath
" '
'failed with exit code
$code
.'
,
);
}
return
true
;
}
}
class
ShaderCompilerException
implements
Exception
{
ShaderCompilerException
.
_
(
this
.
message
);
final
String
message
;
@override
String
toString
()
=>
'ShaderCompilerException:
$message
\n\n
'
;
}
packages/flutter_tools/lib/src/bundle_builder.dart
View file @
577919db
...
...
@@ -13,6 +13,7 @@ import 'build_info.dart';
import
'build_system/build_system.dart'
;
import
'build_system/depfile.dart'
;
import
'build_system/targets/common.dart'
;
import
'build_system/targets/shader_compiler.dart'
;
import
'bundle.dart'
;
import
'cache.dart'
;
import
'devfs.dart'
;
...
...
@@ -148,6 +149,13 @@ Future<void> writeBundle(
}
bundleDir
.
createSync
(
recursive:
true
);
final
ShaderCompiler
shaderCompiler
=
ShaderCompiler
(
processManager:
globals
.
processManager
,
logger:
globals
.
logger
,
fileSystem:
globals
.
fs
,
artifacts:
globals
.
artifacts
!,
);
// Limit number of open files to avoid running out of file descriptors.
final
Pool
pool
=
Pool
(
64
);
await
Future
.
wait
<
void
>(
...
...
@@ -161,7 +169,15 @@ Future<void> writeBundle(
// and the native APIs will look for files this way.
final
File
file
=
globals
.
fs
.
file
(
globals
.
fs
.
path
.
join
(
bundleDir
.
path
,
entry
.
key
));
file
.
parent
.
createSync
(
recursive:
true
);
await
file
.
writeAsBytes
(
await
entry
.
value
.
contentsAsBytes
());
final
DevFSContent
devFSContent
=
entry
.
value
;
if
(
devFSContent
is
DevFSFileContent
)
{
final
File
input
=
devFSContent
.
file
as
File
;
if
(!
await
shaderCompiler
.
compileShader
(
input:
input
,
outputPath:
file
.
path
))
{
input
.
copySync
(
file
.
path
);
}
}
else
{
await
file
.
writeAsBytes
(
await
entry
.
value
.
contentsAsBytes
());
}
}
finally
{
resource
.
release
();
}
...
...
packages/flutter_tools/test/general.shard/asset_bundle_test.dart
View file @
577919db
...
...
@@ -8,6 +8,7 @@ import 'dart:convert';
import
'package:file/file.dart'
;
import
'package:file/memory.dart'
;
import
'package:flutter_tools/src/artifacts.dart'
;
import
'package:flutter_tools/src/asset.dart'
;
import
'package:flutter_tools/src/base/file_system.dart'
;
import
'package:flutter_tools/src/base/platform.dart'
;
...
...
@@ -387,6 +388,63 @@ flutter:
ProcessManager:
()
=>
FakeProcessManager
.
any
(),
});
group
(
'Shaders: '
,
()
{
MemoryFileSystem
fileSystem
;
Artifacts
artifacts
;
String
impellerc
;
Directory
output
;
String
shaderPath
;
String
outputPath
;
setUp
(()
{
artifacts
=
Artifacts
.
test
();
fileSystem
=
MemoryFileSystem
.
test
();
impellerc
=
artifacts
.
getHostArtifact
(
HostArtifact
.
impellerc
).
path
;
fileSystem
.
file
(
impellerc
).
createSync
(
recursive:
true
);
output
=
fileSystem
.
directory
(
'asset_output'
)..
createSync
(
recursive:
true
);
shaderPath
=
fileSystem
.
path
.
join
(
'assets'
,
'shader.frag'
);
outputPath
=
fileSystem
.
path
.
join
(
output
.
path
,
'assets'
,
'shader.frag'
);
fileSystem
.
file
(
shaderPath
).
createSync
(
recursive:
true
);
});
testUsingContext
(
'Including a shader triggers the shader compiler'
,
()
async
{
fileSystem
.
file
(
'.packages'
).
createSync
();
fileSystem
.
file
(
'pubspec.yaml'
)
..
createSync
()
..
writeAsStringSync
(
r''
'
name: example
flutter:
assets:
- assets/shader.frag
'''
);
final
AssetBundle
bundle
=
AssetBundleFactory
.
instance
.
createBundle
();
expect
(
await
bundle
.
build
(
manifestPath:
'pubspec.yaml'
,
packagesPath:
'.packages'
),
0
);
await
writeBundle
(
output
,
bundle
.
entries
,
loggerOverride:
testLogger
);
},
overrides:
<
Type
,
Generator
>{
Artifacts:
()
=>
artifacts
,
FileSystem:
()
=>
fileSystem
,
ProcessManager:
()
=>
FakeProcessManager
.
list
(<
FakeCommand
>[
FakeCommand
(
command:
<
String
>[
impellerc
,
'--flutter-spirv'
,
'--spirv=
$outputPath
'
,
'--input=/
$shaderPath
'
,
],
onRun:
()
{
fileSystem
.
file
(
outputPath
).
createSync
(
recursive:
true
);
},
),
]),
});
});
testUsingContext
(
'Does not insert dummy file into additionalDependencies '
'when wildcards are used by dependencies'
,
()
async
{
globals
.
fs
.
file
(
'.packages'
).
writeAsStringSync
(
r''
'
...
...
packages/flutter_tools/test/general.shard/build_system/targets/shader_compiler_test.dart
0 → 100644
View file @
577919db
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'package:file/memory.dart'
;
import
'package:flutter_tools/src/artifacts.dart'
;
import
'package:flutter_tools/src/base/logger.dart'
;
import
'package:flutter_tools/src/build_system/targets/shader_compiler.dart'
;
import
'../../../src/common.dart'
;
import
'../../../src/fake_process_manager.dart'
;
const
String
shaderPath
=
'/shaders/my_shader.frag'
;
const
String
notShaderPath
=
'/shaders/not_a_shader.file'
;
const
String
outputPath
=
'/output/shaders/my_shader.spv'
;
void
main
(
)
{
late
BufferLogger
logger
;
late
MemoryFileSystem
fileSystem
;
late
Artifacts
artifacts
;
late
String
impellerc
;
setUp
(()
{
artifacts
=
Artifacts
.
test
();
fileSystem
=
MemoryFileSystem
.
test
();
logger
=
BufferLogger
.
test
();
impellerc
=
artifacts
.
getHostArtifact
(
HostArtifact
.
impellerc
).
path
;
fileSystem
.
file
(
impellerc
).
createSync
(
recursive:
true
);
fileSystem
.
file
(
shaderPath
).
createSync
(
recursive:
true
);
fileSystem
.
file
(
notShaderPath
).
createSync
(
recursive:
true
);
});
testWithoutContext
(
'compileShader returns false for non-shader files'
,
()
async
{
final
ShaderCompiler
shaderCompiler
=
ShaderCompiler
(
processManager:
FakeProcessManager
.
empty
(),
logger:
logger
,
fileSystem:
fileSystem
,
artifacts:
artifacts
,
);
expect
(
await
shaderCompiler
.
compileShader
(
input:
fileSystem
.
file
(
notShaderPath
),
outputPath:
outputPath
,
),
false
,
);
});
testWithoutContext
(
'compileShader returns true for shader files'
,
()
async
{
final
FakeProcessManager
processManager
=
FakeProcessManager
.
list
(<
FakeCommand
>[
FakeCommand
(
command:
<
String
>[
impellerc
,
'--flutter-spirv'
,
'--spirv=
$outputPath
'
,
'--input=
$shaderPath
'
,
],
onRun:
()
{
fileSystem
.
file
(
outputPath
).
createSync
(
recursive:
true
);
},
),
]);
final
ShaderCompiler
shaderCompiler
=
ShaderCompiler
(
processManager:
processManager
,
logger:
logger
,
fileSystem:
fileSystem
,
artifacts:
artifacts
,
);
expect
(
await
shaderCompiler
.
compileShader
(
input:
fileSystem
.
file
(
shaderPath
),
outputPath:
outputPath
,
),
true
,
);
expect
(
fileSystem
.
file
(
outputPath
).
existsSync
(),
true
);
});
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment