Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
胡斌
/
srs
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
winlin
2014-03-19 16:30:43 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
491ea4b630d6609f75bd3ee9688c8e658cb096a4
491ea4b6
1 parent
841f0f88
support client complex handshake with server
隐藏空白字符变更
内嵌
并排对比
正在显示
6 个修改的文件
包含
315 行增加
和
60 行删除
trunk/src/core/srs_core.hpp
trunk/src/rtmp/srs_protocol_handshake.cpp
trunk/src/rtmp/srs_protocol_handshake.hpp
trunk/src/rtmp/srs_protocol_rtmp_stack.hpp
trunk/src/utest/srs_utest_handshake.cpp
trunk/src/utest/srs_utest_handshake.hpp
trunk/src/core/srs_core.hpp
查看文件 @
491ea4b
...
...
@@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// current release version
#define VERSION_MAJOR "0"
#define VERSION_MINOR "9"
#define VERSION_REVISION "
19
"
#define VERSION_REVISION "
20
"
#define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION
// server info.
#define RTMP_SIG_SRS_KEY "srs"
...
...
trunk/src/rtmp/srs_protocol_handshake.cpp
查看文件 @
491ea4b
...
...
@@ -657,6 +657,7 @@ int c2s2::s2_validate(c1s1* c1, bool& is_valid)
return
ret
;
}
// TODO: FIXME: move to the right position.
c1s1
::
c1s1
()
{
schema
=
srs_schema_invalid
;
...
...
@@ -688,51 +689,7 @@ void c1s1::dump(char* _c1s1)
}
}
int
c1s1
::
c1_create
(
srs_schema_type
_schema
)
{
int
ret
=
ERROR_SUCCESS
;
if
(
_schema
==
srs_schema_invalid
)
{
ret
=
ERROR_RTMP_CH_SCHEMA
;
srs_error
(
"create c1 failed. invalid schema=%d, ret=%d"
,
_schema
,
ret
);
return
ret
;
}
destroy_blocks
();
time
=
::
time
(
NULL
);
version
=
0x02070080
;
// client c1 version
if
(
_schema
==
srs_schema0
)
{
srs_key_block_init
(
&
block0
.
key
);
srs_digest_block_init
(
&
block1
.
digest
);
}
else
{
srs_digest_block_init
(
&
block0
.
digest
);
srs_key_block_init
(
&
block1
.
key
);
}
schema
=
_schema
;
char
*
digest
=
NULL
;
if
((
ret
=
calc_c1_digest
(
digest
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"sign c1 error, failed to calc digest. ret=%d"
,
ret
);
return
ret
;
}
srs_assert
(
digest
!=
NULL
);
SrsAutoFree
(
char
,
digest
,
true
);
if
(
schema
==
srs_schema0
)
{
memcpy
(
block1
.
digest
.
digest
,
digest
,
32
);
}
else
{
memcpy
(
block0
.
digest
.
digest
,
digest
,
32
);
}
return
ret
;
}
int
c1s1
::
c1_parse
(
char
*
_c1s1
,
srs_schema_type
_schema
)
int
c1s1
::
parse
(
char
*
_c1s1
,
srs_schema_type
_schema
)
{
int
ret
=
ERROR_SUCCESS
;
...
...
@@ -778,6 +735,50 @@ int c1s1::c1_parse(char* _c1s1, srs_schema_type _schema)
return
ret
;
}
int
c1s1
::
c1_create
(
srs_schema_type
_schema
)
{
int
ret
=
ERROR_SUCCESS
;
if
(
_schema
==
srs_schema_invalid
)
{
ret
=
ERROR_RTMP_CH_SCHEMA
;
srs_error
(
"create c1 failed. invalid schema=%d, ret=%d"
,
_schema
,
ret
);
return
ret
;
}
destroy_blocks
();
time
=
::
time
(
NULL
);
version
=
0x02070080
;
// client c1 version
if
(
_schema
==
srs_schema0
)
{
srs_key_block_init
(
&
block0
.
key
);
srs_digest_block_init
(
&
block1
.
digest
);
}
else
{
srs_digest_block_init
(
&
block0
.
digest
);
srs_key_block_init
(
&
block1
.
key
);
}
schema
=
_schema
;
char
*
digest
=
NULL
;
if
((
ret
=
calc_c1_digest
(
digest
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"sign c1 error, failed to calc digest. ret=%d"
,
ret
);
return
ret
;
}
srs_assert
(
digest
!=
NULL
);
SrsAutoFree
(
char
,
digest
,
true
);
if
(
schema
==
srs_schema0
)
{
memcpy
(
block1
.
digest
.
digest
,
digest
,
32
);
}
else
{
memcpy
(
block0
.
digest
.
digest
,
digest
,
32
);
}
return
ret
;
}
int
c1s1
::
c1_validate_digest
(
bool
&
is_valid
)
{
is_valid
=
false
;
...
...
@@ -1073,14 +1074,14 @@ int SrsComplexHandshake::handshake_with_client(SrsHandshakeBytes* hs_bytes, ISrs
// decode c1
c1s1
c1
;
// try schema0.
if
((
ret
=
c1
.
c1_
parse
(
hs_bytes
->
c0c1
+
1
,
srs_schema0
))
!=
ERROR_SUCCESS
)
{
if
((
ret
=
c1
.
parse
(
hs_bytes
->
c0c1
+
1
,
srs_schema0
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"parse c1 schema%d error. ret=%d"
,
srs_schema0
,
ret
);
return
ret
;
}
// try schema1
bool
is_valid
=
false
;
if
((
ret
=
c1
.
c1_validate_digest
(
is_valid
))
!=
ERROR_SUCCESS
||
!
is_valid
)
{
if
((
ret
=
c1
.
c1_
parse
(
hs_bytes
->
c0c1
+
1
,
srs_schema1
))
!=
ERROR_SUCCESS
)
{
if
((
ret
=
c1
.
parse
(
hs_bytes
->
c0c1
+
1
,
srs_schema1
))
!=
ERROR_SUCCESS
)
{
srs_error
(
"parse c1 schema%d error. ret=%d"
,
srs_schema1
,
ret
);
return
ret
;
}
...
...
@@ -1163,12 +1164,76 @@ int SrsComplexHandshake::handshake_with_server(SrsHandshakeBytes* /*hs_bytes*/,
return
ERROR_RTMP_TRY_SIMPLE_HS
;
}
#else
int
SrsComplexHandshake
::
handshake_with_server
(
SrsHandshakeBytes
*
/*hs_bytes*/
,
ISrsProtocolReaderWriter
*
/*io*/
)
int
SrsComplexHandshake
::
handshake_with_server
(
SrsHandshakeBytes
*
hs_bytes
,
ISrsProtocolReaderWriter
*
io
)
{
int
ret
=
ERROR_SUCCESS
;
// TODO: implements complex handshake.
ret
=
ERROR_RTMP_TRY_SIMPLE_HS
;
ssize_t
nsize
;
// complex handshake
if
((
ret
=
hs_bytes
->
create_c0c1
())
!=
ERROR_SUCCESS
)
{
return
ret
;
}
// plain text required.
hs_bytes
->
c0c1
[
0
]
=
0x03
;
// sign c1
c1s1
c1
;
if
((
ret
=
c1
.
c1_create
(
srs_schema0
))
!=
ERROR_SUCCESS
)
{
return
ret
;
}
c1
.
dump
(
hs_bytes
->
c0c1
+
1
);
// verify c1
bool
is_valid
;
if
((
ret
=
c1
.
c1_validate_digest
(
is_valid
))
!=
ERROR_SUCCESS
||
!
is_valid
)
{
ret
=
ERROR_RTMP_TRY_SIMPLE_HS
;
return
ret
;
}
if
((
ret
=
io
->
write
(
hs_bytes
->
c0c1
,
1537
,
&
nsize
))
!=
ERROR_SUCCESS
)
{
srs_warn
(
"write c0c1 failed. ret=%d"
,
ret
);
return
ret
;
}
srs_verbose
(
"write c0c1 success."
);
// s0s1s2
if
((
ret
=
hs_bytes
->
read_s0s1s2
(
io
))
!=
ERROR_SUCCESS
)
{
return
ret
;
}
// plain text required.
if
(
hs_bytes
->
s0s1s2
[
0
]
!=
0x03
)
{
ret
=
ERROR_RTMP_HANDSHAKE
;
srs_warn
(
"handshake failed, plain text required. ret=%d"
,
ret
);
return
ret
;
}
// verify s1s2
c1s1
s1
;
if
((
ret
=
s1
.
parse
(
hs_bytes
->
s0s1s2
+
1
,
c1
.
schema
))
!=
ERROR_SUCCESS
)
{
return
ret
;
}
if
((
ret
=
s1
.
s1_validate_digest
(
is_valid
))
!=
ERROR_SUCCESS
||
!
is_valid
)
{
ret
=
ERROR_RTMP_TRY_SIMPLE_HS
;
return
ret
;
}
// c2
if
((
ret
=
hs_bytes
->
create_c2
())
!=
ERROR_SUCCESS
)
{
return
ret
;
}
c2s2
c2
;
if
((
ret
=
c2
.
c2_create
(
&
s1
))
!=
ERROR_SUCCESS
)
{
return
ret
;
}
c2
.
dump
(
hs_bytes
->
c2
);
if
((
ret
=
io
->
write
(
hs_bytes
->
c2
,
1536
,
&
nsize
))
!=
ERROR_SUCCESS
)
{
srs_warn
(
"complex handshake write c2 failed. ret=%d"
,
ret
);
return
ret
;
}
srs_verbose
(
"complex handshake write c2 success."
);
srs_trace
(
"complex handshake with server success."
);
return
ret
;
}
...
...
trunk/src/rtmp/srs_protocol_handshake.hpp
查看文件 @
491ea4b
...
...
@@ -84,7 +84,7 @@ namespace srs
};
/**
* 764bytes key
结构
* 764bytes key
structure
* random-data: (offset)bytes
* key-data: 128bytes
* random-data: (764-offset-128-4)bytes
...
...
@@ -109,7 +109,7 @@ namespace srs
};
/**
* 764bytes digest
结构
* 764bytes digest
structure
* offset: 4bytes
* random-data: (offset)bytes
* digest-data: 32bytes
...
...
@@ -179,6 +179,11 @@ namespace srs
* copy to bytes.
*/
virtual
void
dump
(
char
*
_c1s1
);
/**
* server: parse the c1s1, discovery the key and digest by schema.
* use the c1_validate_digest() to valid the digest of c1.
*/
virtual
int
parse
(
char
*
_c1s1
,
srs_schema_type
_schema
);
/**
* client: create and sign c1 by schema.
...
...
@@ -197,11 +202,6 @@ namespace srs
*/
virtual
int
c1_create
(
srs_schema_type
_schema
);
/**
* server: parse the c1s1, discovery the key and digest by schema.
* use the c1_validate_digest() to valid the digest of c1.
*/
virtual
int
c1_parse
(
char
*
_c1s1
,
srs_schema_type
_schema
);
/**
* server: validate the parsed c1 schema
*/
virtual
int
c1_validate_digest
(
bool
&
is_valid
);
...
...
trunk/src/rtmp/srs_protocol_rtmp_stack.hpp
查看文件 @
491ea4b
...
...
@@ -35,7 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_kernel_log.hpp>
#include <srs_kernel_error.hpp>
// the following is the timeout for rtmp protocol,
// to avoid death connection.
...
...
trunk/src/utest/srs_utest_handshake.cpp
查看文件 @
491ea4b
...
...
@@ -25,6 +25,77 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_kernel_error.hpp>
#include <srs_core_autofree.hpp>
MockEmptyIO
::
MockEmptyIO
()
{
}
MockEmptyIO
::~
MockEmptyIO
()
{
}
bool
MockEmptyIO
::
is_never_timeout
(
int64_t
/*timeout_us*/
)
{
return
true
;
}
int
MockEmptyIO
::
read_fully
(
const
void
*
/*buf*/
,
size_t
/*size*/
,
ssize_t
*
/*nread*/
)
{
return
ERROR_SUCCESS
;
}
int
MockEmptyIO
::
write
(
const
void
*
/*buf*/
,
size_t
/*size*/
,
ssize_t
*
/*nwrite*/
)
{
return
ERROR_SUCCESS
;
}
void
MockEmptyIO
::
set_recv_timeout
(
int64_t
/*timeout_us*/
)
{
}
int64_t
MockEmptyIO
::
get_recv_timeout
()
{
return
-
1
;
}
int64_t
MockEmptyIO
::
get_recv_bytes
()
{
return
-
1
;
}
int
MockEmptyIO
::
get_recv_kbps
()
{
return
0
;
}
void
MockEmptyIO
::
set_send_timeout
(
int64_t
/*timeout_us*/
)
{
}
int64_t
MockEmptyIO
::
get_send_timeout
()
{
return
0
;
}
int64_t
MockEmptyIO
::
get_send_bytes
()
{
return
0
;
}
int
MockEmptyIO
::
get_send_kbps
()
{
return
0
;
}
int
MockEmptyIO
::
writev
(
const
iovec
*/
*
iov
*/
,
int
/*iov_size*/
,
ssize_t
*
/*nwrite*/
)
{
return
ERROR_SUCCESS
;
}
int
MockEmptyIO
::
read
(
const
void
*
/*buf*/
,
size_t
/*size*/
,
ssize_t
*
/*nread*/
)
{
return
ERROR_SUCCESS
;
}
// verify the sha256
VOID
TEST
(
HandshakeTest
,
OpensslSha256
)
{
...
...
@@ -74,7 +145,7 @@ VOID TEST(HandshakeTest, VerifyFPC0C1)
c1s1
c1
;
// the schema of data must be schema0: key-digest.
ASSERT_EQ
(
ERROR_SUCCESS
,
c1
.
c1_
parse
(
c0c1
+
1
,
srs_schema0
));
ASSERT_EQ
(
ERROR_SUCCESS
,
c1
.
parse
(
c0c1
+
1
,
srs_schema0
));
EXPECT_EQ
((
int32_t
)
0xd0640f00
,
c1
.
time
);
EXPECT_EQ
((
int32_t
)
0x2070080
,
c1
.
version
);
...
...
@@ -102,3 +173,90 @@ VOID TEST(HandshakeTest, VerifyFPC0C1)
};
EXPECT_TRUE
(
srs_bytes_equals
(
c1
.
block1
.
digest
.
digest
,
digest
,
32
));
}
VOID
TEST
(
HandshakeTest
,
SimpleHandshake
)
{
char
c0c1
[]
=
{
0x03
,
0x01
,
0x14
,
0xf7
,
0x4e
,
0x80
,
0x00
,
0x07
,
0x02
,
0xac
,
0x14
,
0x98
,
0x57
,
0x0a
,
0x07
,
0x58
,
0x44
,
0x96
,
0x47
,
0xb5
,
0x9a
,
0x73
,
0xf6
,
0x07
,
0x0f
,
0x49
,
0x0d
,
0x72
,
0xb8
,
0x16
,
0xbb
,
0xb2
,
0xb7
,
0x61
,
0x17
,
0x79
,
0xa0
,
0xe9
,
0x98
,
0xca
,
0xb2
,
0x86
,
0x64
,
0x5f
,
0x65
,
0x3e
,
0xfc
,
0x4d
,
0xc0
,
0x0e
,
0x4c
,
0xfa
,
0x91
,
0xc7
,
0x0f
,
0x2e
,
0x57
,
0x31
,
0x4b
,
0x96
,
0xef
,
0xc9
,
0x81
,
0x02
,
0x00
,
0x54
,
0x25
,
0x2b
,
0xb2
,
0x0d
,
0x7c
,
0xee
,
0xba
,
0xdb
,
0xe4
,
0x06
,
0x78
,
0xcd
,
0x70
,
0x2c
,
0x54
,
0x5a
,
0x3a
,
0x03
,
0x13
,
0x2e
,
0xe7
,
0x4b
,
0x87
,
0x40
,
0x77
,
0x0b
,
0x9f
,
0xd2
,
0xab
,
0x32
,
0x07
,
0x6f
,
0x1e
,
0x75
,
0x74
,
0xe9
,
0xc7
,
0x44
,
0xd9
,
0x76
,
0x53
,
0xba
,
0xe2
,
0x52
,
0xfa
,
0xcc
,
0xef
,
0x34
,
0xd5
,
0x14
,
0x61
,
0xac
,
0xcc
,
0x63
,
0xfd
,
0x2b
,
0x2d
,
0xb3
,
0xb8
,
0xdd
,
0x8a
,
0x51
,
0x9a
,
0x2d
,
0x0e
,
0xfa
,
0x84
,
0x25
,
0x55
,
0xb2
,
0xb7
,
0x94
,
0x54
,
0x68
,
0xfb
,
0x94
,
0xdf
,
0xd8
,
0xeb
,
0x43
,
0xd0
,
0x11
,
0x70
,
0x8f
,
0xf5
,
0x48
,
0xfc
,
0x69
,
0x4d
,
0x5b
,
0xc6
,
0x53
,
0x8a
,
0x22
,
0xea
,
0x62
,
0x84
,
0x89
,
0x6b
,
0xfe
,
0x4e
,
0xab
,
0x51
,
0x98
,
0xf4
,
0x4f
,
0xae
,
0xf8
,
0xdf
,
0xac
,
0x43
,
0xed
,
0x5a
,
0x04
,
0x97
,
0xc4
,
0xbe
,
0x44
,
0x5b
,
0x99
,
0x20
,
0x68
,
0x67
,
0x0f
,
0xe3
,
0xfa
,
0x4c
,
0x9d
,
0xe7
,
0x0b
,
0x3f
,
0x80
,
0x7c
,
0x4c
,
0x35
,
0xf6
,
0xdd
,
0x20
,
0x05
,
0xfd
,
0x0f
,
0x39
,
0xb7
,
0x36
,
0x45
,
0x4c
,
0xb7
,
0x62
,
0x92
,
0x35
,
0x2a
,
0xcd
,
0xb9
,
0x49
,
0xea
,
0x12
,
0x0b
,
0x5f
,
0x39
,
0xae
,
0x3b
,
0x49
,
0x29
,
0xe6
,
0x30
,
0xc7
,
0x7c
,
0x77
,
0xaf
,
0x00
,
0x43
,
0x4d
,
0x06
,
0x45
,
0x72
,
0x73
,
0x25
,
0x71
,
0x5e
,
0x35
,
0x04
,
0xbd
,
0xe9
,
0x48
,
0x23
,
0x64
,
0x4d
,
0x15
,
0x0b
,
0xc5
,
0x3f
,
0x6e
,
0x3a
,
0xd5
,
0xd5
,
0xa6
,
0xae
,
0x3b
,
0x4c
,
0x66
,
0x6a
,
0x70
,
0x8b
,
0xf3
,
0x6a
,
0x43
,
0xc4
,
0xb9
,
0xbd
,
0xa0
,
0x09
,
0x72
,
0xbc
,
0xce
,
0x7a
,
0xea
,
0x49
,
0xf2
,
0x86
,
0xa7
,
0xd8
,
0x4a
,
0x87
,
0x28
,
0xca
,
0x2c
,
0x53
,
0xee
,
0x96
,
0x0b
,
0xbe
,
0x15
,
0x14
,
0xa8
,
0x00
,
0xca
,
0x76
,
0x08
,
0x4d
,
0x0f
,
0xef
,
0x78
,
0x4b
,
0xf6
,
0x47
,
0x60
,
0xfc
,
0x16
,
0x00
,
0x7c
,
0x6b
,
0x49
,
0x39
,
0x64
,
0x36
,
0xee
,
0x45
,
0x3a
,
0x9a
,
0xa5
,
0xbf
,
0xfb
,
0x7b
,
0xe7
,
0xcf
,
0x42
,
0x82
,
0x48
,
0x1b
,
0x30
,
0xfe
,
0x0d
,
0xba
,
0x10
,
0xb8
,
0xe1
,
0x40
,
0xcc
,
0x6f
,
0x36
,
0x1c
,
0x94
,
0x5d
,
0x50
,
0x9e
,
0x21
,
0x08
,
0xc9
,
0xd5
,
0xb0
,
0x32
,
0x51
,
0x6a
,
0x8f
,
0xfa
,
0x57
,
0x8d
,
0x45
,
0xd7
,
0xd2
,
0xd0
,
0xd6
,
0x6c
,
0x78
,
0x95
,
0xe9
,
0xe1
,
0x20
,
0x97
,
0x1a
,
0x43
,
0x40
,
0xa3
,
0xb5
,
0xcc
,
0x4b
,
0x12
,
0x84
,
0x1e
,
0x0e
,
0xd3
,
0x32
,
0xca
,
0x99
,
0xc3
,
0x2b
,
0x78
,
0x17
,
0x24
,
0x6b
,
0xc7
,
0xbc
,
0x9d
,
0x05
,
0xc6
,
0xaf
,
0x8f
,
0x19
,
0x75
,
0x3c
,
0x08
,
0xa6
,
0x08
,
0x26
,
0x5b
,
0xf4
,
0x10
,
0x40
,
0xaa
,
0x6a
,
0x7e
,
0xb9
,
0xde
,
0x0b
,
0x23
,
0x3f
,
0x53
,
0x5a
,
0x20
,
0x13
,
0x62
,
0xec
,
0x53
,
0x86
,
0x81
,
0x1f
,
0xf6
,
0x8e
,
0xe3
,
0xd1
,
0xaa
,
0xb5
,
0x41
,
0x87
,
0x62
,
0xd2
,
0xb7
,
0x09
,
0x12
,
0x71
,
0x01
,
0x2c
,
0xac
,
0x6d
,
0x9d
,
0x37
,
0x46
,
0x5b
,
0xdc
,
0x76
,
0x2c
,
0x96
,
0x61
,
0x88
,
0x55
,
0x5a
,
0x20
,
0xc2
,
0x84
,
0x95
,
0xbd
,
0x72
,
0xc4
,
0xb7
,
0x22
,
0xae
,
0xeb
,
0x49
,
0x0e
,
0x16
,
0xf1
,
0xf1
,
0xbf
,
0xc5
,
0xc7
,
0xa8
,
0x8d
,
0xfb
,
0xe1
,
0x08
,
0x6c
,
0xc4
,
0x79
,
0x81
,
0x13
,
0xe8
,
0x39
,
0xbf
,
0x6e
,
0x5c
,
0xa1
,
0x62
,
0xfb
,
0x32
,
0x2a
,
0x62
,
0xf0
,
0x12
,
0x07
,
0x31
,
0x93
,
0x40
,
0xf3
,
0xc0
,
0xea
,
0x1d
,
0xd8
,
0x65
,
0xba
,
0x12
,
0xb3
,
0x9b
,
0xf5
,
0x59
,
0x9c
,
0x4e
,
0xf6
,
0xb9
,
0xf7
,
0x85
,
0xa1
,
0xd9
,
0x2f
,
0x7c
,
0x8b
,
0xd0
,
0xfc
,
0x53
,
0x3b
,
0xed
,
0x85
,
0xa4
,
0xd2
,
0x5e
,
0x69
,
0x61
,
0x02
,
0x53
,
0xb6
,
0x19
,
0xc7
,
0x82
,
0xea
,
0x8a
,
0x45
,
0x01
,
0x5d
,
0x4b
,
0xb3
,
0x06
,
0x86
,
0x7f
,
0x4b
,
0x2f
,
0xe7
,
0xa8
,
0xd0
,
0x28
,
0x62
,
0x02
,
0xe8
,
0xf3
,
0x9e
,
0x1e
,
0x72
,
0x82
,
0x07
,
0x9f
,
0xdd
,
0xd2
,
0x83
,
0x7d
,
0x89
,
0x73
,
0x1b
,
0x6f
,
0x35
,
0x20
,
0xb7
,
0x88
,
0x15
,
0x92
,
0xa7
,
0x11
,
0xfe
,
0x81
,
0x68
,
0xed
,
0x14
,
0x07
,
0xdf
,
0x4a
,
0x06
,
0x9c
,
0x5e
,
0x7e
,
0x34
,
0x3a
,
0x2a
,
0x8a
,
0xd3
,
0xe8
,
0xf8
,
0xd4
,
0xdb
,
0xe3
,
0xe9
,
0x73
,
0xbf
,
0xa7
,
0xe9
,
0x73
,
0x62
,
0xf2
,
0x9d
,
0xc1
,
0xf7
,
0x51
,
0xeb
,
0xff
,
0xb7
,
0xe6
,
0xd9
,
0xac
,
0x46
,
0x06
,
0x74
,
0xe2
,
0x25
,
0x3f
,
0x46
,
0x43
,
0xce
,
0x49
,
0x52
,
0x25
,
0x1b
,
0xf9
,
0x24
,
0x5c
,
0xda
,
0xfd
,
0x7f
,
0xf6
,
0xef
,
0xb3
,
0xd5
,
0xe9
,
0x6e
,
0x35
,
0xb8
,
0xd1
,
0x0e
,
0x2c
,
0xc1
,
0x48
,
0x5a
,
0x27
,
0x0a
,
0x81
,
0x01
,
0x0f
,
0xe4
,
0x51
,
0xcf
,
0x89
,
0x36
,
0xd3
,
0xe8
,
0x5e
,
0x05
,
0xb9
,
0x83
,
0x42
,
0xf3
,
0xa5
,
0x94
,
0x67
,
0x6d
,
0x6a
,
0x6e
,
0xad
,
0xf8
,
0x90
,
0xb1
,
0x1d
,
0x63
,
0x18
,
0x52
,
0xc1
,
0xbf
,
0xbc
,
0xad
,
0xf4
,
0xd2
,
0xc5
,
0xef
,
0xca
,
0x4c
,
0xfe
,
0xa1
,
0xda
,
0x15
,
0x92
,
0x4c
,
0x42
,
0x3d
,
0xfc
,
0x80
,
0x7e
,
0x49
,
0x13
,
0x4e
,
0xf6
,
0xe1
,
0xee
,
0x70
,
0xca
,
0xd9
,
0x0a
,
0xde
,
0x9b
,
0xea
,
0xcd
,
0xf9
,
0x90
,
0xfd
,
0xae
,
0x09
,
0xce
,
0xb6
,
0xa0
,
0xf7
,
0xd1
,
0xe6
,
0x0c
,
0x55
,
0x1e
,
0x3f
,
0xbb
,
0x1e
,
0xff
,
0x3d
,
0xdb
,
0xdd
,
0x27
,
0x80
,
0x06
,
0x53
,
0x7e
,
0x0b
,
0x2a
,
0x80
,
0x24
,
0x51
,
0x5c
,
0x6a
,
0xab
,
0x32
,
0x5d
,
0x37
,
0x8a
,
0xf4
,
0xb7
,
0x11
,
0xa7
,
0xc1
,
0x9e
,
0x05
,
0x2c
,
0x16
,
0xc2
,
0x08
,
0xe2
,
0xac
,
0x1a
,
0xeb
,
0x60
,
0xf8
,
0xd2
,
0xea
,
0x39
,
0x01
,
0x1c
,
0x64
,
0xbd
,
0x22
,
0x80
,
0x19
,
0x20
,
0xc9
,
0x6f
,
0xdd
,
0x5c
,
0x73
,
0x8c
,
0xa1
,
0x53
,
0x48
,
0x2e
,
0x99
,
0x1d
,
0xc0
,
0x8f
,
0x28
,
0xf1
,
0xe3
,
0xc5
,
0xc5
,
0x65
,
0x53
,
0xf2
,
0x44
,
0x44
,
0x24
,
0xb9
,
0xe2
,
0x73
,
0xe4
,
0x76
,
0x14
,
0x56
,
0xb8
,
0x82
,
0xe3
,
0xb4
,
0xfd
,
0x68
,
0x31
,
0xed
,
0x40
,
0x10
,
0x99
,
0xd3
,
0x3d
,
0xe5
,
0x6b
,
0x14
,
0x61
,
0x66
,
0x9a
,
0xf6
,
0x33
,
0x98
,
0xc5
,
0x4d
,
0x11
,
0xbb
,
0xf8
,
0x56
,
0xf8
,
0x8f
,
0xd7
,
0xb9
,
0xda
,
0xa3
,
0x56
,
0x1a
,
0xe0
,
0x9e
,
0xbe
,
0x5f
,
0x56
,
0xe5
,
0xb9
,
0xd8
,
0xf3
,
0xbc
,
0x19
,
0xf5
,
0xe9
,
0x1f
,
0xd2
,
0xea
,
0xf4
,
0x5a
,
0xde
,
0xed
,
0xd4
,
0x9e
,
0xc8
,
0xf5
,
0x54
,
0x83
,
0x8b
,
0x8c
,
0x2d
,
0x24
,
0x0e
,
0x30
,
0xb1
,
0x84
,
0xa2
,
0xbe
,
0x2c
,
0x86
,
0xe6
,
0x42
,
0x82
,
0xaa
,
0x37
,
0x64
,
0x55
,
0x51
,
0xbc
,
0xde
,
0xc0
,
0x63
,
0x88
,
0xf6
,
0x31
,
0x71
,
0x52
,
0xd5
,
0x34
,
0x0f
,
0x8e
,
0xcb
,
0x28
,
0x65
,
0x93
,
0x1a
,
0x66
,
0x3b
,
0x21
,
0x00
,
0xaa
,
0x7a
,
0xda
,
0x2d
,
0xf6
,
0x7e
,
0xb5
,
0x27
,
0x79
,
0xf4
,
0x50
,
0x3b
,
0x10
,
0x6b
,
0x3c
,
0xd7
,
0x99
,
0x9d
,
0xf6
,
0xc5
,
0x01
,
0x91
,
0xa0
,
0xd5
,
0x4f
,
0xd3
,
0x76
,
0x54
,
0xa8
,
0x5c
,
0x35
,
0x1d
,
0xe2
,
0x35
,
0x6a
,
0x68
,
0x67
,
0x03
,
0xc4
,
0x1f
,
0xe9
,
0x60
,
0xb8
,
0x49
,
0xb1
,
0x9a
,
0x40
,
0xd9
,
0x3c
,
0x4c
,
0x73
,
0xaa
,
0x88
,
0x63
,
0xaf
,
0xfe
,
0xe8
,
0xa8
,
0x0c
,
0x96
,
0xbe
,
0xb4
,
0x65
,
0x7c
,
0x27
,
0xfb
,
0xc1
,
0x27
,
0x24
,
0x58
,
0xab
,
0x4b
,
0xa0
,
0x5a
,
0x7d
,
0xc7
,
0xca
,
0x2d
,
0xa5
,
0x22
,
0xa7
,
0xed
,
0x26
,
0x87
,
0xd5
,
0x44
,
0x1a
,
0xc7
,
0xdd
,
0xfb
,
0x60
,
0xfc
,
0xe5
,
0x50
,
0xd9
,
0x8d
,
0xa7
,
0xdb
,
0x78
,
0xb6
,
0x9d
,
0x80
,
0x0f
,
0xb9
,
0x5f
,
0xa7
,
0x53
,
0x92
,
0x5d
,
0x18
,
0xce
,
0x89
,
0xc2
,
0x69
,
0xee
,
0xcf
,
0xb6
,
0x66
,
0xe5
,
0x66
,
0xd2
,
0xe3
,
0x35
,
0x74
,
0x0b
,
0x83
,
0xb6
,
0xde
,
0xf1
,
0xfb
,
0xb4
,
0x1d
,
0x4b
,
0x94
,
0x95
,
0x06
,
0x82
,
0xe7
,
0x1c
,
0xf8
,
0xc5
,
0xe6
,
0xd0
,
0xf2
,
0x17
,
0x37
,
0x44
,
0xfe
,
0x99
,
0x43
,
0x82
,
0xbb
,
0x88
,
0xe4
,
0x43
,
0x67
,
0xcc
,
0x4d
,
0x5f
,
0xa6
,
0x26
,
0xd7
,
0x53
,
0xd6
,
0x45
,
0x96
,
0x2b
,
0x63
,
0xd1
,
0x2a
,
0xa1
,
0x2c
,
0x41
,
0x59
,
0x8b
,
0xb8
,
0xc1
,
0x89
,
0x03
,
0x3a
,
0x61
,
0x13
,
0xc4
,
0x2c
,
0x37
,
0xa5
,
0xbf
,
0xd7
,
0xdb
,
0xd8
,
0x53
,
0x5f
,
0xa1
,
0xdb
,
0xdb
,
0xa5
,
0x73
,
0xb6
,
0xf7
,
0x74
,
0xa0
,
0xf8
,
0x93
,
0xf5
,
0x61
,
0xee
,
0x3c
,
0xe7
,
0x00
,
0x01
,
0x98
,
0xe0
,
0xa1
,
0x22
,
0xb6
,
0x9a
,
0x83
,
0x44
,
0xa1
,
0xe6
,
0x70
,
0x56
,
0x65
,
0x92
,
0x1e
,
0xf0
,
0xbc
,
0x73
,
0xa5
,
0x7a
,
0xc1
,
0x1a
,
0x02
,
0xf9
,
0xd4
,
0xc4
,
0x7c
,
0x81
,
0xda
,
0x15
,
0xc0
,
0xd4
,
0x25
,
0xdc
,
0x17
,
0xa6
,
0x0d
,
0x90
,
0x55
,
0xf2
,
0x10
,
0xf8
,
0xa7
,
0x71
,
0x9b
,
0xed
,
0xdf
,
0xdf
,
0xa1
,
0xe4
,
0xb9
,
0x12
,
0x6b
,
0x05
,
0x3e
,
0x83
,
0x99
,
0x49
,
0xbf
,
0x66
,
0xbb
,
0xf6
,
0x76
,
0xd3
,
0xa9
,
0x24
,
0x61
,
0x8c
,
0x25
,
0x49
,
0xd0
,
0xf7
,
0x83
,
0x44
,
0xfb
,
0x27
,
0xe2
,
0x7d
,
0x69
,
0x6d
,
0x34
,
0x67
,
0xed
,
0x39
,
0x89
,
0x02
,
0xcb
,
0x2f
,
0x33
,
0x3c
,
0xcd
,
0x12
,
0x42
,
0x8f
,
0x86
,
0x7d
,
0xda
,
0x3f
,
0xd7
,
0x26
,
0x62
,
0x9c
,
0x1f
,
0x2e
,
0xa8
,
0xc3
,
0x85
,
0xf1
,
0x73
,
0xe5
,
0x2c
,
0x11
,
0xde
,
0x98
,
0xc8
,
0xb0
,
0x10
,
0x17
,
0x55
,
0xf5
,
0x32
,
0x52
,
0x67
,
0xca
,
0x64
,
0x50
,
0x28
,
0x9a
,
0x24
,
0x92
,
0xa1
,
0x97
,
0x57
,
0x81
,
0xaf
,
0xca
,
0x1e
,
0xc0
,
0xa4
,
0x71
,
0x2d
,
0x2a
,
0xec
,
0xc9
,
0x23
,
0x6a
,
0x0c
,
0x1d
,
0x54
,
0x15
,
0x2a
,
0x56
,
0x42
,
0x0a
,
0x83
,
0xff
,
0x28
,
0xba
,
0xe7
,
0x68
,
0x38
,
0xf5
,
0x32
,
0xa9
,
0xb7
,
0xe7
,
0x70
,
0x32
,
0xa8
,
0x79
,
0x5e
,
0x46
,
0x1d
,
0xec
,
0x29
,
0x8a
,
0xde
,
0x41
,
0x94
,
0x94
,
0x26
,
0x79
,
0xc2
,
0x52
,
0x23
,
0xe0
,
0xa1
,
0x1d
,
0x65
,
0x0c
,
0xbe
,
0x1b
,
0x87
,
0x2a
,
0x21
,
0x53
,
0x2f
,
0x35
,
0x56
,
0xe8
,
0xd1
,
0x7b
,
0xb8
,
0x23
,
0x75
,
0x56
,
0xc7
,
0x08
,
0x9d
,
0x13
,
0xf0
,
0x8f
,
0x80
,
0x38
,
0xe9
,
0x92
,
0xf7
,
0x16
,
0xc2
,
0xf3
,
0x74
,
0xa7
,
0x92
,
0xf5
,
0x49
,
0x7d
,
0x09
,
0x41
,
0xbc
,
0x07
,
0x61
,
0x1f
,
0xe6
,
0xa0
,
0xd8
,
0xa6
,
0xe3
,
0x72
,
0xa4
,
0x59
,
0x4a
,
0xd9
,
0x33
,
0x40
,
0x80
,
0x3a
,
0x3a
,
0xb3
,
0xa0
,
0x96
,
0xca
,
0x56
,
0x98
,
0xbd
,
0x1f
,
0x80
,
0x86
,
0x6c
,
0xe1
,
0x09
,
0x64
,
0x1b
,
0x1a
,
0xc9
,
0x52
,
0xaa
,
0xd1
,
0x39
,
0xea
,
0x4b
,
0x6a
,
0x3e
,
0x4e
,
0xa4
,
0xea
,
0x00
,
0xde
,
0x07
,
0x0b
,
0x23
,
0xbc
,
0x40
,
0xc4
,
0xd2
,
0xd9
,
0xf6
,
0xda
,
0x8e
,
0x22
,
0x36
,
0xbe
,
0x5e
,
0x65
,
0x6e
,
0xbe
,
0xc8
,
0xb0
,
0x07
,
0xa2
,
0x2d
,
0xe9
,
0x4b
,
0x73
,
0x54
,
0xe6
,
0x0a
,
0xf2
,
0xd3
,
0x83
,
0x8b
,
0x27
,
0x4c
,
0xcc
,
0x0c
,
0x8a
,
0xd4
,
0x2b
,
0xb8
,
0x95
,
0x2e
,
0x42
,
0x64
,
0x29
,
0xc1
,
0xe0
,
0x6b
,
0x92
,
0xab
,
0xfe
,
0x53
,
0x06
,
0x96
,
0x4a
,
0x8c
,
0x5d
,
0x7c
,
0x51
,
0x74
,
0xd0
,
0x1e
,
0x37
,
0x35
,
0x9c
,
0x1e
,
0x69
,
0x8f
,
0x68
,
0x18
,
0xd9
,
0xbe
,
0xaf
,
0x81
,
0x9b
,
0x7e
,
0xd8
,
0x71
,
0x9d
,
0xb6
,
0x50
,
0x43
,
0x78
,
0x85
,
0x7d
,
0x65
,
0x93
,
0x45
,
0xb4
,
0x02
,
0xd0
,
0x5c
,
0x36
,
0xe2
,
0x62
,
0x3f
,
0x40
,
0x33
,
0xee
,
0x91
,
0xe5
,
0x3f
,
0x67
,
0x39
,
0x2f
,
0x1b
,
0x89
,
0x9f
,
0x04
,
0x9d
,
0x46
,
0x3e
,
0x70
,
0x92
,
0x9e
,
0x8c
,
0xf5
};
char
s0s1s2
[]
=
{
0x03
,
0xac
,
0x44
,
0x29
,
0x53
,
0x04
,
0x05
,
0x00
,
0x01
,
0x6e
,
0x65
,
0x69
,
0x2d
,
0x69
,
0x2d
,
0x69
,
0x73
,
0x6e
,
0x69
,
0x73
,
0x6c
,
0x65
,
0x72
,
0x69
,
0x72
,
0x76
,
0x65
,
0x72
,
0x69
,
0x77
,
0x74
,
0x2e
,
0x6e
,
0x72
,
0x76
,
0x72
,
0x65
,
0x72
,
0x70
,
0x72
,
0x69
,
0x69
,
0x70
,
0x72
,
0x73
,
0x6e
,
0x65
,
0x72
,
0x72
,
0x6e
,
0x2d
,
0x65
,
0x74
,
0x72
,
0x6c
,
0x69
,
0x74
,
0x69
,
0x65
,
0x40
,
0x69
,
0x69
,
0x76
,
0x77
,
0x2d
,
0x73
,
0x65
,
0x72
,
0x72
,
0x76
,
0x73
,
0x72
,
0x2e
,
0x2d
,
0x76
,
0x65
,
0x31
,
0x65
,
0x6d
,
0x6d
,
0x73
,
0x69
,
0x73
,
0x74
,
0x2e
,
0x74
,
0x72
,
0x65
,
0x65
,
0x72
,
0x65
,
0x2d
,
0x74
,
0x69
,
0x31
,
0x65
,
0x2d
,
0x6f
,
0x77
,
0x2e
,
0x76
,
0x77
,
0x2d
,
0x77
,
0x72
,
0x65
,
0x65
,
0x31
,
0x74
,
0x73
,
0x70
,
0x74
,
0x6e
,
0x72
,
0x6e
,
0x73
,
0x6d
,
0x2e
,
0x69
,
0x72
,
0x2d
,
0x65
,
0x69
,
0x77
,
0x69
,
0x76
,
0x72
,
0x77
,
0x72
,
0x32
,
0x6e
,
0x65
,
0x6c
,
0x2e
,
0x2d
,
0x6e
,
0x69
,
0x6d
,
0x6c
,
0x73
,
0x65
,
0x73
,
0x70
,
0x2d
,
0x65
,
0x72
,
0x40
,
0x72
,
0x74
,
0x6e
,
0x6e
,
0x6d
,
0x6f
,
0x70
,
0x74
,
0x73
,
0x2d
,
0x63
,
0x69
,
0x32
,
0x31
,
0x2d
,
0x40
,
0x69
,
0x70
,
0x2d
,
0x2d
,
0x72
,
0x69
,
0x74
,
0x63
,
0x6f
,
0x69
,
0x69
,
0x65
,
0x6e
,
0x32
,
0x6f
,
0x6c
,
0x6e
,
0x72
,
0x73
,
0x77
,
0x65
,
0x65
,
0x72
,
0x32
,
0x6d
,
0x65
,
0x6c
,
0x2d
,
0x72
,
0x6e
,
0x65
,
0x6d
,
0x31
,
0x65
,
0x74
,
0x2d
,
0x6f
,
0x72
,
0x65
,
0x63
,
0x69
,
0x40
,
0x70
,
0x2d
,
0x65
,
0x6d
,
0x2d
,
0x77
,
0x63
,
0x63
,
0x74
,
0x40
,
0x36
,
0x2d
,
0x72
,
0x65
,
0x70
,
0x2d
,
0x6e
,
0x69
,
0x6d
,
0x65
,
0x74
,
0x70
,
0x76
,
0x40
,
0x76
,
0x72
,
0x72
,
0x69
,
0x77
,
0x76
,
0x69
,
0x74
,
0x74
,
0x65
,
0x31
,
0x6d
,
0x2e
,
0x6f
,
0x72
,
0x73
,
0x73
,
0x6c
,
0x40
,
0x36
,
0x72
,
0x70
,
0x72
,
0x70
,
0x72
,
0x69
,
0x32
,
0x6c
,
0x77
,
0x70
,
0x76
,
0x65
,
0x72
,
0x76
,
0x63
,
0x65
,
0x65
,
0x77
,
0x72
,
0x6e
,
0x2e
,
0x76
,
0x69
,
0x69
,
0x2e
,
0x40
,
0x72
,
0x2e
,
0x2e
,
0x72
,
0x73
,
0x6e
,
0x72
,
0x72
,
0x6e
,
0x70
,
0x40
,
0x77
,
0x65
,
0x77
,
0x65
,
0x70
,
0x63
,
0x74
,
0x2d
,
0x70
,
0x72
,
0x2d
,
0x74
,
0x72
,
0x31
,
0x65
,
0x6e
,
0x2d
,
0x76
,
0x2d
,
0x2d
,
0x2d
,
0x74
,
0x76
,
0x2d
,
0x74
,
0x65
,
0x2e
,
0x2d
,
0x6c
,
0x76
,
0x2d
,
0x6c
,
0x70
,
0x73
,
0x6d
,
0x65
,
0x72
,
0x31
,
0x31
,
0x36
,
0x76
,
0x73
,
0x73
,
0x6e
,
0x2d
,
0x6e
,
0x73
,
0x72
,
0x2d
,
0x6f
,
0x6c
,
0x65
,
0x74
,
0x77
,
0x65
,
0x69
,
0x72
,
0x69
,
0x65
,
0x6d
,
0x76
,
0x31
,
0x65
,
0x73
,
0x72
,
0x6c
,
0x72
,
0x77
,
0x65
,
0x76
,
0x74
,
0x72
,
0x69
,
0x72
,
0x76
,
0x32
,
0x73
,
0x6d
,
0x72
,
0x2d
,
0x6d
,
0x40
,
0x69
,
0x40
,
0x69
,
0x31
,
0x69
,
0x6f
,
0x6e
,
0x6d
,
0x69
,
0x73
,
0x70
,
0x72
,
0x77
,
0x6f
,
0x6f
,
0x65
,
0x77
,
0x76
,
0x70
,
0x70
,
0x6c
,
0x6f
,
0x72
,
0x65
,
0x32
,
0x36
,
0x6c
,
0x74
,
0x6e
,
0x72
,
0x74
,
0x2d
,
0x6e
,
0x6c
,
0x72
,
0x72
,
0x2d
,
0x74
,
0x65
,
0x73
,
0x70
,
0x65
,
0x72
,
0x6c
,
0x65
,
0x65
,
0x2d
,
0x6e
,
0x70
,
0x6e
,
0x40
,
0x65
,
0x6e
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x72
,
0x6e
,
0xfe
,
0x5a
,
0x38
,
0x79
,
0x81
,
0xe8
,
0x49
,
0xee
,
0x93
,
0xbb
,
0xa0
,
0x59
,
0x4a
,
0xa0
,
0xcc
,
0x31
,
0xbf
,
0x0d
,
0x86
,
0xc0
,
0x3f
,
0xae
,
0x2a
,
0x16
,
0xfa
,
0xf0
,
0x4e
,
0x0f
,
0xa3
,
0x01
,
0x06
,
0xa0
,
0x0e
,
0xa5
,
0x8c
,
0xa4
,
0xca
,
0xd2
,
0x01
,
0xa5
,
0x90
,
0xbd
,
0x55
,
0xd1
,
0x42
,
0x2b
,
0xd4
,
0xb3
,
0xbb
,
0x06
,
0xb1
,
0x3a
,
0x94
,
0x41
,
0x76
,
0x1d
,
0xa5
,
0x23
,
0x6e
,
0x1e
,
0x59
,
0x73
,
0x63
,
0x34
,
0x60
,
0xd3
,
0x48
,
0xc0
,
0x3b
,
0xcf
,
0xf1
,
0xa8
,
0x38
,
0xd6
,
0xf3
,
0x5e
,
0x6d
,
0xcb
,
0xea
,
0xfc
,
0x9c
,
0x52
,
0xae
,
0x9a
,
0x89
,
0xdb
,
0x24
,
0x1b
,
0x92
,
0x4a
,
0x85
,
0x97
,
0x3c
,
0xd8
,
0x4c
,
0x31
,
0xad
,
0xfd
,
0x00
,
0xef
,
0xc5
,
0x17
,
0xa5
,
0x22
,
0xc0
,
0xf1
,
0x94
,
0x18
,
0xec
,
0xf6
,
0x49
,
0xe5
,
0x05
,
0x11
,
0x12
,
0x67
,
0x6c
,
0x71
,
0xc0
,
0x84
,
0x6d
,
0x50
,
0xf8
,
0x23
,
0x01
,
0x57
,
0xc4
,
0xfc
,
0x73
,
0x65
,
0x69
,
0x6e
,
0x65
,
0x72
,
0x6d
,
0x6f
,
0x69
,
0x2d
,
0x65
,
0x65
,
0x69
,
0x63
,
0x63
,
0x69
,
0x2d
,
0x72
,
0x2d
,
0x69
,
0x2d
,
0x2d
,
0x77
,
0x72
,
0x76
,
0x72
,
0x72
,
0x2d
,
0x76
,
0x70
,
0x63
,
0x69
,
0x74
,
0x73
,
0x6d
,
0x65
,
0x6c
,
0x2d
,
0x73
,
0x6c
,
0x65
,
0x6e
,
0x73
,
0x77
,
0x69
,
0x63
,
0x69
,
0x70
,
0x31
,
0x40
,
0x72
,
0x69
,
0x2d
,
0x2d
,
0x2d
,
0x72
,
0x72
,
0x6c
,
0x72
,
0x63
,
0x72
,
0x77
,
0x6e
,
0x6c
,
0x2d
,
0x72
,
0x2e
,
0x76
,
0x72
,
0x65
,
0x6d
,
0x76
,
0x36
,
0x6d
,
0x72
,
0x77
,
0x72
,
0x65
,
0x65
,
0x69
,
0x72
,
0x76
,
0x6d
,
0x76
,
0x74
,
0x76
,
0x72
,
0x65
,
0x69
,
0x72
,
0x6e
,
0x6d
,
0x77
,
0x6c
,
0x40
,
0x32
,
0x70
,
0x65
,
0x65
,
0x69
,
0x72
,
0x31
,
0x2e
,
0x70
,
0x36
,
0x31
,
0x65
,
0x70
,
0x72
,
0x72
,
0x73
,
0x72
,
0x6e
,
0x6e
,
0x73
,
0x32
,
0x2d
,
0x2d
,
0x2d
,
0x69
,
0x65
,
0x31
,
0x74
,
0x6e
,
0x65
,
0x74
,
0x65
,
0x76
,
0x69
,
0x6d
,
0x6c
,
0x6e
,
0x70
,
0x74
,
0x73
,
0x72
,
0x6d
,
0x72
,
0x72
,
0x69
,
0x65
,
0x74
,
0x65
,
0x65
,
0x2d
,
0x70
,
0x74
,
0x6e
,
0x74
,
0x65
,
0x6f
,
0x72
,
0x69
,
0x76
,
0x40
,
0x31
,
0x69
,
0x72
,
0x6d
,
0x6d
,
0x77
,
0x69
,
0x72
,
0x65
,
0x6e
,
0x40
,
0x63
,
0x40
,
0x65
,
0x65
,
0x69
,
0x2d
,
0x72
,
0x65
,
0x40
,
0x69
,
0x32
,
0x74
,
0x73
,
0x6e
,
0x36
,
0x2d
,
0x70
,
0x65
,
0x6c
,
0x70
,
0x6e
,
0x72
,
0x69
,
0x32
,
0x65
,
0x74
,
0x76
,
0x77
,
0x73
,
0x6f
,
0x77
,
0x65
,
0x72
,
0x2d
,
0x6e
,
0x73
,
0x65
,
0x65
,
0x70
,
0x65
,
0x2d
,
0x65
,
0x73
,
0x2d
,
0x65
,
0x2e
,
0x73
,
0x69
,
0x67
,
0x45
,
0x8b
,
0x6b
,
0x3b
,
0xc9
,
0x5f
,
0x09
,
0x65
,
0x65
,
0x72
,
0x6c
,
0x73
,
0x6d
,
0x70
,
0x70
,
0x73
,
0x63
,
0x70
,
0x40
,
0x72
,
0x76
,
0x65
,
0x6e
,
0x6f
,
0x6c
,
0x69
,
0x2e
,
0x72
,
0x73
,
0x76
,
0x69
,
0x77
,
0x72
,
0x2d
,
0x69
,
0x6e
,
0x69
,
0x65
,
0x77
,
0x73
,
0x69
,
0x70
,
0x77
,
0x63
,
0x65
,
0x74
,
0x72
,
0x73
,
0x31
,
0x65
,
0x65
,
0x72
,
0x76
,
0x69
,
0x65
,
0x77
,
0x6d
,
0x65
,
0x36
,
0x6e
,
0x6e
,
0x69
,
0x6d
,
0x6e
,
0x70
,
0x77
,
0x72
,
0x65
,
0x31
,
0x65
,
0x6e
,
0x6e
,
0x65
,
0x2d
,
0x65
,
0x65
,
0x2e
,
0x77
,
0x6e
,
0x6f
,
0x2d
,
0x76
,
0x65
,
0x72
,
0x6c
,
0x31
,
0x76
,
0x65
,
0x72
,
0x2d
,
0x36
,
0x6c
,
0x70
,
0x6f
,
0x65
,
0x72
,
0x73
,
0x63
,
0x72
,
0x77
,
0x73
,
0x72
,
0x65
,
0x65
,
0x65
,
0x6c
,
0x76
,
0x72
,
0x65
,
0x6e
,
0x65
,
0x2e
,
0x6f
,
0x2d
,
0x72
,
0x70
,
0x65
,
0x74
,
0x72
,
0x77
,
0x69
,
0x69
,
0x72
,
0x65
,
0x77
,
0x6c
,
0x72
,
0x2d
,
0x69
,
0x72
,
0x31
,
0x6e
,
0x65
,
0x70
,
0x72
,
0x74
,
0x76
,
0x6c
,
0x2e
,
0x72
,
0x65
,
0x72
,
0x6c
,
0x73
,
0x6c
,
0x2e
,
0x2e
,
0x72
,
0x2d
,
0x6e
,
0x63
,
0x32
,
0x2e
,
0x65
,
0x2d
,
0x65
,
0x69
,
0x2d
,
0x65
,
0x70
,
0x6e
,
0x72
,
0x72
,
0x32
,
0x2e
,
0x73
,
0x70
,
0x77
,
0x65
,
0x73
,
0x77
,
0x73
,
0x40
,
0x40
,
0x73
,
0x63
,
0x2e
,
0x65
,
0x76
,
0x70
,
0x65
,
0x69
,
0x65
,
0x70
,
0x73
,
0x40
,
0x65
,
0x73
,
0x2d
,
0x2d
,
0x2e
,
0x2e
,
0x73
,
0x65
,
0x6f
,
0x65
,
0x65
,
0x6d
,
0x76
,
0x70
,
0x6d
,
0x69
,
0x70
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x6e
,
0x72
,
0x72
,
0x72
,
0x6d
,
0x73
,
0x6f
,
0x73
,
0x72
,
0x72
,
0x72
,
0x77
,
0x70
,
0x65
,
0x69
,
0x72
,
0x73
,
0x6e
,
0x69
,
0x65
,
0x65
,
0x74
,
0x65
,
0x69
,
0x40
,
0x63
,
0x69
,
0x70
,
0x6c
,
0x6e
,
0x2d
,
0x65
,
0x69
,
0x72
,
0x63
,
0x6c
,
0x72
,
0x2e
,
0x36
,
0x69
,
0x72
,
0x6c
,
0x6c
,
0x2d
,
0x6f
,
0x76
,
0x69
,
0x6f
,
0x2d
,
0x6d
,
0x6c
,
0x72
,
0x72
,
0x2e
,
0x70
,
0x73
,
0x6d
,
0x6f
,
0x2e
,
0x6e
,
0x69
,
0x65
,
0x65
,
0x2d
,
0x6d
,
0x76
,
0x6e
,
0x69
,
0x73
,
0x73
,
0x73
,
0x74
,
0x63
,
0x65
,
0x76
,
0x2e
,
0x77
,
0x2d
,
0x36
,
0x73
,
0x69
,
0x2d
,
0x72
,
0x72
,
0x6c
,
0x36
,
0x74
,
0x72
,
0x6d
,
0x65
,
0x2d
,
0x65
,
0x2e
,
0x6d
,
0x31
,
0x72
,
0x6f
,
0x74
,
0x76
,
0x31
,
0x65
,
0x6d
,
0x69
,
0x72
,
0x69
,
0x69
,
0x2d
,
0x72
,
0x73
,
0x72
,
0x72
,
0x76
,
0x31
,
0x6e
,
0x2d
,
0x69
,
0x6e
,
0x77
,
0x70
,
0x69
,
0x72
,
0x6e
,
0x76
,
0x74
,
0x6f
,
0x65
,
0x63
,
0x6f
,
0x73
,
0x65
,
0x73
,
0x72
,
0x69
,
0x69
,
0x40
,
0x6e
,
0x65
,
0x65
,
0x65
,
0x65
,
0x77
,
0x70
,
0x70
,
0x6e
,
0x72
,
0x6e
,
0x65
,
0x72
,
0x32
,
0x65
,
0x2d
,
0x77
,
0x69
,
0x6e
,
0x70
,
0x69
,
0x6f
,
0x76
,
0x77
,
0x72
,
0x74
,
0x77
,
0x6e
,
0x72
,
0xfe
,
0x98
,
0xf3
,
0xb4
,
0xff
,
0x3f
,
0x2e
,
0xdb
,
0x59
,
0xbd
,
0x32
,
0x02
,
0x6a
,
0x44
,
0x03
,
0x67
,
0x9e
,
0xe1
,
0x98
,
0x97
,
0xed
,
0x67
,
0x6d
,
0xb0
,
0x8f
,
0xa9
,
0xb6
,
0xf8
,
0x4d
,
0x92
,
0x35
,
0x19
,
0x72
,
0x72
,
0x65
,
0x74
,
0x73
,
0x6e
,
0x65
,
0x65
,
0x69
,
0x36
,
0x72
,
0x73
,
0x2d
,
0x70
,
0x2d
,
0x2d
,
0x69
,
0x6e
,
0x72
,
0x65
,
0x32
,
0x72
,
0x77
,
0x72
,
0x73
,
0x77
,
0x73
,
0x70
,
0x2d
,
0x2d
,
0x69
,
0x6c
,
0x70
,
0x74
,
0x65
,
0x69
,
0x72
,
0x74
,
0x6e
,
0x76
,
0x65
,
0x76
,
0x76
,
0x69
,
0x69
,
0x65
,
0x70
,
0x6e
,
0x73
,
0x6e
,
0x36
,
0x76
,
0x70
,
0x76
,
0x6c
,
0x6c
,
0x70
,
0x6e
,
0x6e
,
0x74
,
0x2e
,
0x6f
,
0x32
,
0x74
,
0x76
,
0x74
,
0x40
,
0x72
,
0x6e
,
0x72
,
0x74
,
0x74
,
0x2d
,
0x6f
,
0x72
,
0x73
,
0x32
,
0x72
,
0x32
,
0x72
,
0x70
,
0x65
,
0x65
,
0x6e
,
0x72
,
0x70
,
0x73
,
0x72
,
0x69
,
0x74
,
0x74
,
0x6e
,
0x72
,
0x6c
,
0x31
,
0x74
,
0x77
,
0x31
,
0x63
,
0x63
,
0x74
,
0x69
,
0x72
,
0x69
,
0x72
,
0x70
,
0x31
,
0x74
,
0x72
,
0x76
,
0x65
,
0x72
,
0x65
,
0x6c
,
0x76
,
0x6d
,
0x72
,
0x6c
,
0x69
,
0x72
,
0x65
,
0x76
,
0x69
,
0x6f
,
0x69
,
0x6c
,
0x74
,
0x6e
,
0x65
,
0x69
,
0x77
,
0x73
,
0x70
,
0x69
,
0x72
,
0x2d
,
0x65
,
0x74
,
0x2e
,
0x65
,
0x65
,
0x6d
,
0x72
,
0x31
,
0x2d
,
0x72
,
0x36
,
0x65
,
0x2d
,
0x69
,
0x6d
,
0x36
,
0x6e
,
0x72
,
0x6d
,
0x6c
,
0x72
,
0x72
,
0x65
,
0x65
,
0x6e
,
0x31
,
0x6e
,
0x40
,
0x72
,
0x40
,
0x6f
,
0x73
,
0x6d
,
0x36
,
0x2e
,
0x72
,
0x65
,
0x36
,
0x74
,
0x77
,
0x65
,
0x65
,
0x73
,
0x36
,
0x76
,
0x6c
,
0x6f
,
0x2d
,
0x36
,
0x6d
,
0x36
,
0x70
,
0x32
,
0x74
,
0x6d
,
0x65
,
0x6d
,
0x69
,
0x65
,
0x65
,
0x69
,
0x76
,
0x69
,
0x74
,
0x2d
,
0x63
,
0x2d
,
0x6e
,
0x32
,
0x72
,
0x63
,
0x2d
,
0x77
,
0x72
,
0x74
,
0x72
,
0x70
,
0x6e
,
0x76
,
0x6f
,
0x72
,
0x40
,
0x65
,
0x65
,
0x6d
,
0x77
,
0x2d
,
0x2d
,
0x74
,
0x6e
,
0x73
,
0x76
,
0x65
,
0x69
,
0x69
,
0x72
,
0x6f
,
0x65
,
0x70
,
0x69
,
0x6d
,
0x76
,
0x69
,
0x65
,
0x72
,
0x2d
,
0x74
,
0x2d
,
0x69
,
0x65
,
0x72
,
0x69
,
0x6f
,
0x72
,
0x72
,
0x69
,
0x76
,
0x72
,
0x77
,
0x69
,
0x2e
,
0x77
,
0x69
,
0x70
,
0x69
,
0x6d
,
0x36
,
0x72
,
0x76
,
0x65
,
0x76
,
0x73
,
0x6e
,
0x72
,
0x65
,
0x2e
,
0x76
,
0x2d
,
0x76
,
0x6f
,
0x2d
,
0x65
,
0x73
,
0x72
,
0x74
,
0x36
,
0x2d
,
0x6f
,
0x70
,
0x73
,
0x74
,
0x74
,
0x77
,
0x6c
,
0x2d
,
0x65
,
0x72
,
0x6e
,
0x65
,
0x6c
,
0x72
,
0x32
,
0x2d
,
0x72
,
0x69
,
0x6d
,
0x6e
,
0x72
,
0x6c
,
0x6f
,
0x65
,
0x36
,
0x31
,
0x65
,
0x65
,
0x69
,
0x73
,
0x31
,
0x74
,
0x69
,
0x69
,
0x65
,
0x40
,
0x69
,
0x6e
,
0x2d
,
0x63
,
0x40
,
0x31
,
0x70
,
0x65
,
0x6e
,
0x2d
,
0x69
,
0x72
,
0x65
,
0x65
,
0x76
,
0x65
,
0x70
,
0x72
,
0x6c
,
0x2d
,
0x6e
,
0x73
,
0x69
,
0x65
,
0x65
,
0x6e
,
0x2e
,
0x63
,
0x6c
,
0x72
,
0x65
,
0x2d
,
0x2e
,
0x6d
,
0x72
,
0x76
,
0x70
,
0x69
,
0x6d
,
0x40
,
0x32
,
0x77
,
0x72
,
0x6e
,
0x72
,
0x6c
,
0x36
,
0x72
,
0x31
,
0x2d
,
0x73
,
0x74
,
0x2d
,
0x69
,
0x63
,
0x40
,
0x70
,
0x32
,
0x65
,
0x31
,
0x69
,
0x69
,
0x65
,
0x72
,
0x63
,
0x74
,
0x72
,
0x74
,
0x77
,
0x6e
,
0x69
,
0x72
,
0x65
,
0x76
,
0x65
,
0x77
,
0x69
,
0x69
,
0x73
,
0x6e
,
0x77
,
0x77
,
0x73
,
0x6f
,
0x69
,
0x70
,
0x73
,
0x2d
,
0x65
,
0x65
,
0x73
,
0x65
,
0x77
,
0x2d
,
0x73
,
0x72
,
0x6d
,
0x65
,
0x32
,
0x6e
,
0x73
,
0x36
,
0x65
,
0x72
,
0x77
,
0x70
,
0x65
,
0x69
,
0x2d
,
0x2d
,
0x74
,
0x6f
,
0x6f
,
0x36
,
0x63
,
0x74
,
0x72
,
0x63
,
0x77
,
0x69
,
0x2e
,
0x31
,
0x6c
,
0x65
,
0x77
,
0x72
,
0x65
,
0x76
,
0x74
,
0x2d
,
0x77
,
0x2e
,
0x76
,
0x72
,
0x6e
,
0x36
,
0x70
,
0x69
,
0x2e
,
0x6e
,
0x72
,
0x77
,
0x69
,
0x65
,
0x74
,
0x2d
,
0x6e
,
0x63
,
0x6e
,
0x70
,
0x2d
,
0x6e
,
0x2e
,
0x6d
,
0x69
,
0x65
,
0x63
,
0x65
,
0x2d
,
0x76
,
0x70
,
0x73
,
0x31
,
0x73
,
0x2d
,
0x76
,
0x6e
,
0x6e
,
0x6c
,
0x2d
,
0x6c
,
0x2d
,
0x65
,
0x6e
,
0x73
,
0x6c
,
0x65
,
0x74
,
0x70
,
0x65
,
0x2d
,
0x6e
,
0x77
,
0x76
,
0x40
,
0x69
,
0x40
,
0x63
,
0x6f
,
0x72
,
0x32
,
0x6d
,
0x31
,
0x72
,
0x36
,
0x69
,
0x73
,
0x72
,
0x70
,
0x65
,
0x2d
,
0x6c
,
0x2e
,
0x72
,
0x74
,
0x74
,
0x65
,
0x69
,
0x6f
,
0x69
,
0x2d
,
0x2d
,
0x65
,
0x6f
,
0x65
,
0x74
,
0x72
,
0x69
,
0x76
,
0x72
,
0x72
,
0x65
,
0x69
,
0x76
,
0x69
,
0x69
,
0x6e
,
0x31
,
0x65
,
0x76
,
0x72
,
0x73
,
0x77
,
0x72
,
0x2d
,
0x69
,
0x65
,
0x69
,
0x70
,
0x65
,
0x6e
,
0x6e
,
0x65
,
0x65
,
0x6e
,
0x2d
,
0x72
,
0x76
,
0x72
,
0x6c
,
0x2e
,
0x70
,
0x76
,
0x6e
,
0x69
,
0x72
,
0x70
,
0x73
,
0x2d
,
0x69
,
0x74
,
0x76
,
0x72
,
0x70
,
0x65
,
0x63
,
0x72
,
0x70
,
0x6e
,
0x36
,
0x6c
,
0x74
,
0x72
,
0x72
,
0x72
,
0x73
,
0x65
,
0x40
,
0x63
,
0x6d
,
0x63
,
0x32
,
0x65
,
0x32
,
0x69
,
0x6e
,
0x77
,
0x65
,
0x74
,
0x72
,
0x77
,
0x40
,
0x69
,
0x65
,
0x70
,
0x31
,
0x36
,
0x72
,
0x73
,
0x2d
,
0x72
,
0x72
,
0x32
,
0x72
,
0x6c
,
0x77
,
0x6e
,
0x6f
,
0x77
,
0x6c
,
0x74
,
0x72
,
0x2d
,
0x6e
,
0x65
,
0x70
,
0x6c
,
0x72
,
0x6f
,
0x69
,
0x2d
,
0x2d
,
0x69
,
0x36
,
0x69
,
0x69
,
0x76
,
0x69
,
0x69
,
0x6d
,
0x72
,
0x73
,
0x6f
,
0x6d
,
0x74
,
0x70
,
0x76
,
0x6d
,
0x6d
,
0x69
,
0x72
,
0x70
,
0x70
,
0x2d
,
0x31
,
0x63
,
0x6c
,
0x65
,
0x65
,
0x6e
,
0x2d
,
0x77
,
0x74
,
0x73
,
0x6c
,
0x72
,
0x6e
,
0x65
,
0x65
,
0x2d
,
0x6c
,
0x69
,
0x2d
,
0x6e
,
0x74
,
0x70
,
0x72
,
0x77
,
0x77
,
0x65
,
0x65
,
0x65
,
0x2d
,
0x76
,
0x6e
,
0x72
,
0x69
,
0x69
,
0x73
,
0x65
,
0x74
,
0x73
,
0x76
,
0x72
,
0x72
,
0x72
,
0x69
,
0x72
,
0x73
,
0x72
,
0x6f
,
0x2e
,
0x77
,
0x2d
,
0x2d
,
0x6c
,
0x6e
,
0x65
,
0x65
,
0x6d
,
0x73
,
0x2e
,
0x72
,
0x65
,
0x73
,
0x40
,
0x69
,
0x32
,
0x69
,
0x32
,
0x6e
,
0x65
,
0x32
,
0x65
,
0x74
,
0x6d
,
0x65
,
0x74
,
0x36
,
0x6e
,
0x72
,
0x32
,
0x6e
,
0x65
,
0x69
,
0x32
,
0x6f
,
0x70
,
0x72
,
0x72
,
0x65
,
0x72
,
0x72
,
0x69
,
0x6e
,
0x6d
,
0x69
,
0x70
,
0x6c
,
0x6c
,
0x65
,
0x31
,
0x72
,
0x72
,
0x73
,
0x72
,
0x70
,
0x73
,
0x72
,
0x65
,
0x65
,
0x6e
,
0x76
,
0x69
,
0x6d
,
0x65
,
0x6c
,
0x65
,
0x31
,
0x74
,
0x74
,
0x72
,
0x63
,
0x2e
,
0x69
,
0x65
,
0x2d
,
0x6d
,
0x72
,
0x70
,
0x6e
,
0x6c
,
0x65
,
0x31
,
0x73
,
0x73
,
0x40
,
0x74
,
0x72
,
0x73
,
0x2e
,
0x74
,
0x6e
,
0x77
,
0x6c
,
0x6f
,
0x70
,
0x77
,
0x76
,
0x73
,
0x72
,
0x69
,
0x77
,
0x69
,
0x6e
,
0x69
,
0x2d
,
0x72
,
0x70
,
0x70
,
0x73
,
0x2e
,
0x76
,
0x73
,
0x65
,
0x72
,
0x72
,
0x74
,
0x2d
,
0x72
,
0x65
,
0x76
,
0x69
,
0x77
,
0x72
,
0x65
,
0x2d
,
0x72
,
0x69
,
0x36
,
0x77
,
0x77
,
0x77
,
0x40
,
0x2d
,
0x6d
,
0x69
,
0x74
,
0x72
,
0x2d
,
0x32
,
0x6f
,
0x76
,
0x72
,
0x2d
,
0x2d
,
0x65
,
0x2e
,
0x2e
,
0x72
,
0x6e
,
0x32
,
0x74
,
0x6c
,
0x6e
,
0x6c
,
0x2e
,
0x6d
,
0x2d
,
0x6f
,
0x65
,
0x72
,
0x2d
,
0x6e
,
0x65
,
0x65
,
0x69
,
0x40
,
0x69
,
0x77
,
0x65
,
0x6c
,
0x2d
,
0x69
,
0x69
,
0x65
,
0x72
,
0x72
,
0x32
,
0x40
,
0x73
,
0x65
,
0x36
,
0x76
,
0x73
,
0x72
,
0x69
,
0x63
,
0x77
,
0x72
,
0x6c
,
0x72
,
0x6e
,
0x74
,
0x2d
,
0x65
,
0x69
,
0x72
,
0x70
,
0x6d
,
0x65
,
0x6c
,
0x73
,
0x65
,
0x6c
,
0x32
,
0x2d
,
0x73
,
0x70
,
0x2d
,
0x31
,
0x72
,
0x74
,
0x2e
,
0x65
,
0x74
,
0x72
,
0x74
,
0x72
,
0x70
,
0x69
,
0x40
,
0x36
,
0x2d
,
0x74
,
0x72
,
0x6c
,
0x2d
,
0x6e
,
0x72
,
0x6e
,
0x6d
,
0x63
,
0x76
,
0x74
,
0x6d
,
0x70
,
0x32
,
0x70
,
0x69
,
0x69
,
0x2d
,
0x73
,
0x72
,
0x74
,
0x65
,
0x74
,
0x74
,
0x70
,
0x2d
,
0x31
,
0x6c
,
0x77
,
0x65
,
0x72
,
0x70
,
0x73
,
0x36
,
0x6c
,
0x72
,
0x72
,
0x65
,
0x65
,
0x76
,
0x69
,
0x2e
,
0x6e
,
0x72
,
0x72
,
0x36
,
0x65
,
0x69
,
0x72
,
0x69
,
0x40
,
0x6c
,
0x74
,
0x6c
,
0x72
,
0x2d
,
0x70
,
0x74
,
0x76
,
0x74
,
0x6f
,
0x72
,
0x31
,
0x73
,
0x70
,
0x65
,
0x74
,
0x69
,
0x6e
,
0x69
,
0x6c
,
0x70
,
0x72
,
0x65
,
0x70
,
0x72
,
0x73
,
0x69
,
0x2d
,
0x6d
,
0x63
,
0x2d
,
0x72
,
0x2d
,
0x36
,
0x73
,
0x6e
,
0x2d
,
0x6d
,
0x69
,
0x76
,
0x76
,
0x6d
,
0x74
,
0x72
,
0x77
,
0x74
,
0x2e
,
0x6d
,
0x65
,
0x2d
,
0x65
,
0x6d
,
0x2e
,
0x6c
,
0x73
,
0x6e
,
0x6f
,
0x76
,
0x31
,
0x74
,
0x65
,
0x65
,
0x31
,
0x69
,
0x65
,
0x32
,
0x2d
,
0x74
,
0x2d
,
0x77
,
0x77
,
0x77
,
0x2e
,
0x70
,
0x65
,
0x6e
,
0x2d
,
0x69
,
0x32
,
0x72
,
0x73
,
0x74
,
0x65
,
0x65
,
0x69
,
0x73
,
0x77
,
0x77
,
0x2e
,
0x6e
,
0x72
,
0x65
,
0x70
,
0x76
,
0x40
,
0x77
,
0x65
,
0x2d
,
0x70
,
0x36
,
0x2d
,
0x74
,
0x65
,
0x2d
,
0x69
,
0x74
,
0x76
,
0x69
,
0x6e
,
0x65
,
0x2d
,
0x65
,
0x73
,
0x31
,
0x36
,
0x69
,
0x31
,
0x74
,
0x76
,
0x65
,
0x77
,
0x6c
,
0x6e
,
0x6c
,
0x32
,
0x6e
,
0x70
,
0x73
,
0x69
,
0x69
,
0x65
,
0x72
,
0x2d
,
0x6e
,
0x2d
,
0x65
,
0x65
,
0x6c
,
0x32
,
0x77
,
0x72
,
0x69
,
0x70
,
0x76
,
0x32
,
0x65
,
0x6c
,
0x36
,
0x65
,
0x69
,
0x31
,
0x6e
,
0x72
,
0x6c
,
0x6d
,
0x65
,
0x65
,
0x77
,
0x6e
,
0x2d
,
0x32
,
0x77
,
0x69
,
0x65
,
0x6d
,
0x74
,
0x77
,
0x40
,
0x65
,
0x6e
,
0x77
,
0x73
,
0x65
,
0x72
,
0x6c
,
0x40
,
0x65
,
0x65
,
0x72
,
0x72
,
0x74
,
0x6e
,
0x6c
,
0x6d
,
0x73
,
0x69
,
0x76
,
0x72
,
0x31
,
0x2d
,
0x65
,
0x36
,
0x72
,
0x2d
,
0x70
,
0x69
,
0x6e
,
0x63
,
0x31
,
0x2d
,
0x69
,
0x6e
,
0x65
,
0x2d
,
0x65
,
0x2e
,
0x77
,
0x2d
,
0x72
,
0x76
,
0x63
,
0x69
,
0x2d
,
0x6d
,
0x70
,
0x2d
,
0x6c
,
0x69
,
0x63
,
0x69
,
0x77
,
0x6e
,
0x69
,
0x77
,
0x36
,
0x72
,
0x69
,
0x72
,
0x2e
,
0x74
,
0x72
,
0x6e
,
0x65
,
0x6f
,
0x73
,
0x2d
,
0x2e
,
0x72
,
0x63
,
0x76
,
0x74
,
0x36
,
0x65
,
0x72
,
0x65
,
0x6d
,
0x32
,
0x72
,
0x70
,
0x40
,
0x65
,
0x74
,
0x6e
,
0x32
,
0x70
,
0x2d
,
0x31
,
0x40
,
0x6c
,
0x65
,
0x6c
,
0x76
,
0x69
,
0x69
,
0x76
,
0x76
,
0x73
,
0x31
,
0x6e
,
0x65
,
0x74
,
0x65
,
0x6d
,
0x69
,
0x2d
,
0x72
,
0x74
,
0x74
,
0x6c
,
0x31
,
0x74
,
0x6e
,
0x6e
,
0x65
,
0x77
,
0x36
,
0x69
,
0x69
,
0x72
,
0x6e
,
0x2d
,
0x2d
,
0x2d
,
0x72
,
0x73
,
0x76
,
0x72
,
0x72
,
0x65
,
0x72
,
0x65
,
0x72
,
0x2d
,
0x6c
,
0x76
,
0x77
,
0x63
,
0x77
,
0x72
,
0x6d
,
0x72
,
0x2e
,
0x65
,
0x73
,
0x32
,
0x72
,
0x36
,
0x77
,
0x72
,
0x72
,
0x6d
,
0x74
,
0x2d
,
0x72
,
0x2e
,
0x73
,
0x73
,
0x65
,
0x77
,
0x6e
,
0x65
,
0x69
,
0x65
,
0x2d
,
0x65
,
0x77
,
0x6f
,
0x74
,
0x72
,
0x32
,
0x40
,
0x6e
,
0x72
,
0x69
,
0x6e
,
0x32
,
0x70
,
0x73
,
0x72
,
0x40
,
0x2d
,
0x65
,
0x69
,
0x65
,
0x77
,
0x65
,
0x70
,
0x40
,
0x36
,
0x72
,
0x6c
,
0x6d
,
0x73
,
0x69
,
0x72
,
0x72
,
0x74
,
0x36
,
0x6c
,
0x76
,
0x65
,
0x76
,
0x2d
,
0x74
,
0x6c
,
0x72
,
0x72
,
0x74
,
0x6e
,
0x73
,
0x74
,
0x69
,
0x72
,
0x6d
,
0x40
,
0x2d
,
0x6e
,
0x70
,
0x73
,
0x2d
,
0x6d
,
0x72
,
0x72
,
0x70
,
0x65
,
0x65
,
0x36
,
0x6e
,
0x77
,
0x2d
,
0x69
,
0x2d
,
0x32
,
0x72
,
0x6d
,
0x72
,
0x6c
,
0x32
,
0x6c
,
0x73
,
0x6d
,
0x65
,
0x36
,
0x69
,
0x69
,
0x72
,
0x77
,
0x74
,
0x6f
,
0x72
,
0x6d
,
0x6d
,
0x69
,
0x65
,
0x73
,
0x63
,
0x65
,
0x74
,
0x74
,
0x72
,
0x65
,
0x72
,
0x2e
,
0x6e
,
0x73
,
0x65
,
0x76
,
0x6c
,
0x76
,
0x77
,
0x72
,
0x6e
,
0x6c
,
0x32
,
0x2d
,
0x73
,
0x65
,
0x73
,
0x2e
,
0x76
,
0x72
,
0x65
,
0x2d
,
0x72
,
0x77
,
0x2d
,
0x77
,
0x70
,
0x65
,
0x6c
,
0x72
,
0x6e
,
0x2e
,
0x31
,
0x73
,
0x2e
,
0x72
,
0x6d
,
0x6d
,
0x69
,
0x74
,
0x74
,
0x6d
,
0x32
,
0x70
,
0x76
,
0x76
,
0x31
,
0x76
,
0x77
,
0x65
,
0x6e
,
0x73
,
0x63
,
0x2e
,
0x2d
,
0x69
,
0x6e
,
0x69
,
0x77
,
0x6e
,
0x65
,
0x6d
,
0x2d
,
0x72
,
0x6e
,
0x74
,
0x6e
,
0x40
,
0x73
,
0x2d
,
0x74
,
0x74
,
0x65
,
0x72
,
0x2d
,
0x2d
,
0x69
,
0x73
,
0x70
,
0x69
,
0x6c
,
0x72
,
0x76
,
0x6d
,
0x74
,
0x6e
,
0x73
,
0x74
,
0x72
,
0x65
,
0x63
,
0x69
,
0x65
,
0x65
,
0x72
,
0x6f
,
0x6e
,
0x72
,
0x72
,
0x6c
,
0x6e
,
0x6e
,
0x65
,
0x6d
,
0x74
,
0x6c
,
0x74
,
0x65
,
0x69
,
0x2d
,
0x6f
,
0x69
,
0x2e
,
0x6e
,
0x63
,
0x65
,
0x6c
,
0x40
,
0x70
,
0x2d
,
0x2d
,
0x74
,
0x73
,
0x74
,
0x40
,
0x72
,
0x74
,
0x6c
,
0x72
,
0x6e
,
0x6f
,
0x73
,
0x65
,
0x74
,
0x6d
,
0x69
,
0x32
,
0x72
,
0x65
,
0x77
,
0x6e
,
0x76
,
0x74
,
0x73
,
0x2d
,
0x72
,
0x6e
,
0x69
,
0x73
,
0x40
,
0x36
,
0x2d
,
0x6d
,
0x2e
,
0x65
,
0x6d
,
0x40
,
0x69
,
0x72
,
0x72
,
0x70
,
0x65
,
0x72
,
0x76
,
0x6c
,
0x65
,
0x76
,
0x72
,
0x65
,
0x69
,
0x65
,
0x69
,
0x6e
,
0x72
,
0x2d
,
0x63
,
0x72
,
0x69
,
0x6e
,
0x72
,
0x69
,
0x6e
,
0x69
,
0x70
,
0x6e
,
0x2d
,
0x69
,
0x6c
,
0x72
,
0x2d
,
0x65
,
0x2d
,
0x72
,
0x6f
,
0x65
,
0x6e
,
0x76
,
0x6e
,
0x40
,
0x2d
,
0x65
,
0x72
,
0x72
,
0x6f
,
0x6f
,
0x72
,
0x6c
,
0x65
,
0x74
,
0x73
,
0x72
,
0x70
,
0x77
,
0x69
,
0x69
,
0x6d
,
0x6c
,
0x6d
,
0x6e
,
0x2d
,
0x65
,
0x65
,
0x65
,
0x74
,
0x6c
,
0x2d
,
0x74
,
0x6f
,
0x2d
,
0x74
,
0x70
,
0x72
,
0x6e
,
0x73
,
0x72
,
0x69
,
0x72
,
0x2e
,
0x6d
,
0x69
,
0x65
,
0x65
,
0x32
,
0x70
,
0x6c
,
0x6c
,
0x65
,
0x77
,
0x2d
,
0x72
,
0x6f
,
0x70
,
0x76
,
0x65
,
0x2d
,
0x72
,
0x69
,
0x6d
,
0x72
,
0x36
,
0x40
,
0x6d
,
0x72
,
0x6c
,
0x6d
,
0x77
,
0x6c
,
0x6e
,
0x69
,
0x72
,
0x6d
,
0x76
,
0x73
,
0x2e
,
0x73
,
0x72
,
0x77
,
0x73
,
0x76
,
0x2d
,
0x73
,
0x76
,
0x6d
,
0x76
,
0x65
,
0x69
,
0x76
,
0x63
,
0x65
,
0x72
,
0x31
,
0x72
,
0x69
,
0x76
,
0x72
,
0x65
,
0x65
,
0x2d
,
0x73
,
0x6d
,
0x31
,
0x72
,
0x6e
,
0x72
,
0x2d
,
0x2d
,
0x36
,
0x72
,
0x73
,
0x77
,
0x2d
,
0x77
,
0x36
,
0x76
,
0x72
,
0x6d
,
0x65
,
0x2d
,
0x72
,
0x70
,
0x2d
,
0x74
,
0x32
,
0x6c
,
0x63
,
0x6d
,
0x6f
,
0x6e
,
0x2e
,
0x2d
,
0x69
,
0x65
,
0x73
,
0x6d
,
0x65
,
0x73
,
0x6e
,
0x6d
,
0x6c
,
0x65
,
0x6e
,
0x72
,
0x72
,
0x72
,
0x32
,
0x70
,
0x65
,
0x73
,
0x6c
,
0x6d
,
0x70
,
0x6d
,
0x72
,
0x6f
,
0x65
,
0x6c
,
0x76
,
0x73
,
0x63
,
0x73
,
0x65
,
0x6c
,
0x2d
,
0x6e
,
0x72
,
0x65
,
0x65
,
0x72
,
0x2d
,
0x70
,
0x6d
,
0x69
,
0x69
,
0x65
,
0x2d
,
0x6c
,
0x72
,
0x69
,
0x6c
,
0x2d
,
0x74
,
0x65
,
0x65
,
0x69
,
0x31
,
0x72
,
0x69
,
0x6d
,
0x69
,
0x74
,
0x74
,
0x73
,
0x65
,
0x32
,
0x2d
,
0x6f
,
0x2d
,
0x70
,
0x72
,
0x6f
,
0x65
,
0x69
,
0x73
,
0x32
,
0x6d
,
0x65
,
0x2d
,
0x65
,
0x74
,
0x6d
,
0x6d
,
0x73
,
0x76
,
0x6c
,
0x69
,
0x65
,
0x2d
,
0x73
,
0x74
,
0x65
,
0x65
,
0x72
,
0x72
,
0x74
,
0x31
,
0x2d
,
0x76
,
0x73
,
0x2e
,
0x2d
,
0x2d
,
0x72
,
0x76
,
0x77
,
0x65
,
0x72
,
0x72
,
0x40
,
0x6e
,
0x6c
,
0x6d
,
0x72
,
0x74
,
0x73
,
0x72
,
0x72
,
0x65
,
0x65
,
0x2d
,
0x6f
,
0x74
,
0x70
,
0x63
,
0xb8
,
0xa1
,
0x11
,
0x6e
,
0xd7
,
0x74
,
0x16
,
0x7f
,
0xb4
,
0xba
,
0x40
,
0x93
,
0x98
,
0x00
,
0x71
,
0xcc
,
0x42
,
0xa7
,
0x2f
,
0x28
,
0x69
,
0xe7
,
0x31
,
0x48
,
0x22
,
0xa0
,
0xe1
,
0x45
,
0xe3
,
0xf7
,
0x7f
,
0x3a
};
char
c2
[]
=
{
0x5b
,
0x52
,
0xf1
,
0x2d
,
0x94
,
0xcb
,
0xb0
,
0x86
,
0xd8
,
0xd3
,
0xe3
,
0x20
,
0x88
,
0x47
,
0xcf
,
0x5a
,
0x49
,
0xd2
,
0x11
,
0x30
,
0x92
,
0x17
,
0x8d
,
0xf4
,
0x99
,
0xf7
,
0x6c
,
0x8a
,
0xbc
,
0xe7
,
0x5c
,
0x58
,
0x6a
,
0x65
,
0xed
,
0x81
,
0xdc
,
0xdd
,
0xcf
,
0x83
,
0xcd
,
0xa4
,
0xed
,
0xa2
,
0x5e
,
0x63
,
0xd9
,
0x98
,
0xf6
,
0x2e
,
0x15
,
0x76
,
0x9a
,
0xc8
,
0x8c
,
0x42
,
0x54
,
0x44
,
0xf4
,
0x47
,
0xf5
,
0x96
,
0xc9
,
0x6e
,
0x23
,
0x09
,
0x1a
,
0x0d
,
0xe3
,
0x04
,
0xe6
,
0xed
,
0x48
,
0x49
,
0x62
,
0x31
,
0xe8
,
0x36
,
0x04
,
0xed
,
0xb9
,
0xe7
,
0xa6
,
0x35
,
0x4d
,
0xcd
,
0xe3
,
0xfa
,
0xa0
,
0xc8
,
0x34
,
0xbd
,
0x62
,
0x7b
,
0xbc
,
0xbe
,
0x1c
,
0x5b
,
0x69
,
0x1f
,
0x9c
,
0x30
,
0x20
,
0x48
,
0x52
,
0xd1
,
0xb6
,
0x5e
,
0xa2
,
0x6e
,
0x06
,
0x94
,
0x72
,
0x10
,
0x56
,
0x7c
,
0x94
,
0xa5
,
0xc0
,
0xaa
,
0xea
,
0x48
,
0x61
,
0x03
,
0x14
,
0x94
,
0x09
,
0x77
,
0xd9
,
0xa7
,
0xfe
,
0x78
,
0x17
,
0x95
,
0x4f
,
0x7e
,
0xb0
,
0x32
,
0x63
,
0x02
,
0x17
,
0x47
,
0x1e
,
0x7d
,
0xb2
,
0x7d
,
0xb5
,
0xcb
,
0x9f
,
0x61
,
0x65
,
0xed
,
0x03
,
0xd2
,
0xdb
,
0xd1
,
0xb3
,
0xd6
,
0x1a
,
0xf5
,
0x67
,
0x0b
,
0x8b
,
0x6b
,
0x44
,
0xf2
,
0x62
,
0x42
,
0xc2
,
0x4d
,
0xe1
,
0x5c
,
0xfe
,
0xc6
,
0x19
,
0x2b
,
0xfb
,
0x03
,
0x0f
,
0x1b
,
0x89
,
0x08
,
0x86
,
0x40
,
0xca
,
0x45
,
0x15
,
0xda
,
0x65
,
0xcc
,
0x73
,
0x00
,
0x49
,
0x4e
,
0x48
,
0x21
,
0x25
,
0xc6
,
0xde
,
0x26
,
0x21
,
0x1d
,
0xea
,
0x3c
,
0x11
,
0xac
,
0xef
,
0x34
,
0x4c
,
0x96
,
0xcc
,
0x5e
,
0x26
,
0xf3
,
0xcd
,
0x70
,
0x0d
,
0x62
,
0xea
,
0x09
,
0x35
,
0x2b
,
0x1e
,
0x60
,
0xe4
,
0x76
,
0xd3
,
0x65
,
0x01
,
0x8c
,
0xab
,
0xd4
,
0x89
,
0xad
,
0x81
,
0x9d
,
0x04
,
0x01
,
0xd5
,
0x55
,
0x3c
,
0xcb
,
0x32
,
0xe1
,
0xb5
,
0xd4
,
0xda
,
0xb4
,
0xa9
,
0x01
,
0xb2
,
0x10
,
0xc7
,
0xb1
,
0xa9
,
0x54
,
0x66
,
0x1d
,
0xcc
,
0xff
,
0x54
,
0x0b
,
0x84
,
0x37
,
0xe0
,
0x3a
,
0xa5
,
0x68
,
0x80
,
0x87
,
0xbc
,
0x3c
,
0x0f
,
0xda
,
0x7e
,
0x3c
,
0x23
,
0xfc
,
0xd8
,
0xc5
,
0x52
,
0xf7
,
0x22
,
0x12
,
0x05
,
0x9c
,
0x68
,
0x39
,
0xb1
,
0xed
,
0x26
,
0x24
,
0x2b
,
0x7e
,
0x0b
,
0xaf
,
0x9e
,
0x97
,
0x45
,
0x7b
,
0xa9
,
0xbc
,
0x48
,
0x0e
,
0x66
,
0x93
,
0x32
,
0x0d
,
0x6b
,
0xd6
,
0xf0
,
0x4f
,
0x54
,
0x18
,
0xcd
,
0xc9
,
0x8c
,
0xce
,
0xc4
,
0xa2
,
0xff
,
0x1e
,
0x69
,
0x17
,
0x7e
,
0xf4
,
0x99
,
0x09
,
0x68
,
0xa1
,
0x9e
,
0x1f
,
0xbf
,
0x90
,
0xdc
,
0x77
,
0x5d
,
0x50
,
0x2b
,
0x0e
,
0xff
,
0x96
,
0xdc
,
0x21
,
0x2e
,
0x74
,
0x22
,
0x28
,
0x88
,
0xa0
,
0x00
,
0x32
,
0x15
,
0xb0
,
0xfd
,
0xb1
,
0xc9
,
0x75
,
0xb3
,
0x3c
,
0xbd
,
0x89
,
0xc5
,
0xa4
,
0x48
,
0x17
,
0xa9
,
0xc9
,
0x50
,
0x61
,
0x0c
,
0x35
,
0x31
,
0x55
,
0x11
,
0xe3
,
0x23
,
0xe9
,
0x3e
,
0x78
,
0x25
,
0xdc
,
0x50
,
0xe8
,
0x23
,
0x5f
,
0xb7
,
0x3f
,
0xc7
,
0xae
,
0xf0
,
0x82
,
0x35
,
0x46
,
0x34
,
0x63
,
0xcc
,
0x5d
,
0x96
,
0xb8
,
0x6a
,
0x7a
,
0x7f
,
0x54
,
0x27
,
0x1a
,
0xa4
,
0x63
,
0xdd
,
0xb0
,
0xb6
,
0x17
,
0x08
,
0xa1
,
0x2e
,
0x95
,
0x9e
,
0xd4
,
0x9b
,
0x71
,
0x83
,
0x81
,
0x6c
,
0xea
,
0xab
,
0x00
,
0x2e
,
0xca
,
0x60
,
0xc1
,
0x4b
,
0x83
,
0xa7
,
0xab
,
0x47
,
0xe8
,
0x1b
,
0x5a
,
0x78
,
0x4f
,
0xec
,
0xbd
,
0x62
,
0x94
,
0x25
,
0x75
,
0x2e
,
0x64
,
0xe7
,
0x70
,
0x13
,
0xac
,
0xe9
,
0x89
,
0x4f
,
0x1e
,
0x79
,
0xbc
,
0x15
,
0x0c
,
0x8d
,
0x40
,
0xe8
,
0x16
,
0x31
,
0x7c
,
0xb8
,
0xa5
,
0xd7
,
0x21
,
0x39
,
0x93
,
0x9b
,
0xe6
,
0x05
,
0x81
,
0xb6
,
0x20
,
0xa8
,
0x5d
,
0x73
,
0x58
,
0x8b
,
0x66
,
0x92
,
0xac
,
0x23
,
0xa0
,
0xf4
,
0x8c
,
0xab
,
0x58
,
0xae
,
0xb6
,
0x9c
,
0x3c
,
0x4d
,
0x77
,
0x5f
,
0xae
,
0xe2
,
0x57
,
0x89
,
0x8f
,
0xe4
,
0x68
,
0x81
,
0x24
,
0x7d
,
0x3b
,
0x99
,
0x46
,
0x9f
,
0x7b
,
0x9d
,
0xa6
,
0xdd
,
0x99
,
0xcf
,
0xc1
,
0x79
,
0x04
,
0x95
,
0xce
,
0x96
,
0x7a
,
0xd9
,
0xb5
,
0x6e
,
0xcf
,
0xd1
,
0x72
,
0x18
,
0x97
,
0x76
,
0xe2
,
0xb7
,
0x38
,
0x1e
,
0x24
,
0x0b
,
0x09
,
0x00
,
0x8b
,
0x28
,
0x5d
,
0xf8
,
0xd0
,
0x50
,
0x7f
,
0xeb
,
0x3b
,
0x37
,
0x61
,
0x0b
,
0xd3
,
0xff
,
0x65
,
0x7d
,
0x88
,
0x1e
,
0x1d
,
0xbb
,
0x6c
,
0xf5
,
0xf8
,
0xf3
,
0x2b
,
0x51
,
0xd9
,
0x6d
,
0xc9
,
0xbe
,
0xbe
,
0xd1
,
0x94
,
0x0e
,
0x58
,
0x2a
,
0x0a
,
0xe4
,
0xf8
,
0x28
,
0x26
,
0xc3
,
0x74
,
0x87
,
0xd3
,
0x81
,
0x48
,
0x6e
,
0x9b
,
0xd5
,
0xa1
,
0x60
,
0x87
,
0xfc
,
0x1b
,
0x06
,
0x33
,
0x0d
,
0x87
,
0xfa
,
0x9b
,
0xf9
,
0x73
,
0x6b
,
0x0c
,
0xdf
,
0xea
,
0xee
,
0x32
,
0x78
,
0xe0
,
0xf8
,
0x18
,
0x3f
,
0xc3
,
0x3b
,
0x12
,
0x88
,
0x0b
,
0xb2
,
0x4a
,
0x52
,
0x64
,
0x4e
,
0x58
,
0x54
,
0x82
,
0x52
,
0x61
,
0x54
,
0x28
,
0x1b
,
0xf7
,
0x99
,
0x06
,
0xa2
,
0xad
,
0x04
,
0x19
,
0x9f
,
0x2e
,
0x34
,
0xe6
,
0xf0
,
0xee
,
0xeb
,
0x93
,
0x9a
,
0x9c
,
0x73
,
0x86
,
0x23
,
0x6d
,
0x5d
,
0xae
,
0x64
,
0xec
,
0x6f
,
0xf9
,
0x7c
,
0xc7
,
0x46
,
0x96
,
0xdb
,
0x44
,
0xf4
,
0xab
,
0xc9
,
0x67
,
0x61
,
0xb8
,
0xec
,
0xf0
,
0x99
,
0xe0
,
0x4d
,
0x45
,
0xed
,
0xa3
,
0x1c
,
0xe9
,
0x68
,
0x31
,
0x85
,
0xa5
,
0xa1
,
0xba
,
0x08
,
0xdb
,
0x3f
,
0x84
,
0x75
,
0x70
,
0x24
,
0xcd
,
0x49
,
0xd4
,
0x07
,
0xa8
,
0xaa
,
0x52
,
0xd9
,
0x55
,
0x68
,
0x8f
,
0x78
,
0xd2
,
0x5d
,
0x46
,
0x23
,
0x60
,
0x76
,
0xe1
,
0x22
,
0xdc
,
0x2a
,
0xeb
,
0xac
,
0xbc
,
0xeb
,
0xd6
,
0x4c
,
0x0f
,
0xb5
,
0xcb
,
0x47
,
0xce
,
0x43
,
0x59
,
0x1d
,
0x3e
,
0xfc
,
0x7f
,
0x7c
,
0x93
,
0x9e
,
0xef
,
0xcd
,
0x79
,
0x5c
,
0x08
,
0x8e
,
0xeb
,
0xa8
,
0x98
,
0x3e
,
0x95
,
0xd1
,
0x36
,
0x42
,
0x57
,
0xfd
,
0x6d
,
0xdc
,
0xe0
,
0xa3
,
0x3f
,
0x46
,
0x32
,
0xb7
,
0xff
,
0x00
,
0x4f
,
0x7b
,
0x23
,
0x4d
,
0xd0
,
0xe5
,
0xdd
,
0x40
,
0xab
,
0xb2
,
0xcb
,
0x45
,
0x92
,
0x76
,
0x7c
,
0x5b
,
0x98
,
0xc7
,
0xc0
,
0x54
,
0x34
,
0x94
,
0x8e
,
0xbb
,
0x28
,
0xcf
,
0xba
,
0xd9
,
0xa0
,
0xe6
,
0xf3
,
0x65
,
0x61
,
0xd7
,
0x10
,
0xd3
,
0xeb
,
0xce
,
0x21
,
0x6a
,
0xca
,
0x61
,
0xe7
,
0x81
,
0x15
,
0x18
,
0x4e
,
0x71
,
0xb0
,
0x99
,
0x62
,
0xd9
,
0xeb
,
0xd0
,
0x8b
,
0xe9
,
0xdf
,
0x6a
,
0x6d
,
0x59
,
0x0b
,
0x45
,
0x93
,
0x38
,
0xfe
,
0xe6
,
0x6a
,
0xd1
,
0x5f
,
0xb6
,
0xe9
,
0x86
,
0x01
,
0x38
,
0xab
,
0x59
,
0x5c
,
0xd7
,
0xb7
,
0xfa
,
0x81
,
0x8a
,
0xbe
,
0xdc
,
0xeb
,
0x50
,
0x7d
,
0x81
,
0xfa
,
0x1b
,
0x8f
,
0xce
,
0x53
,
0x38
,
0xe4
,
0x8a
,
0x82
,
0xbe
,
0x7d
,
0xdc
,
0xd8
,
0x57
,
0x5a
,
0x48
,
0xa3
,
0x38
,
0x74
,
0x8a
,
0xac
,
0xf2
,
0xfd
,
0xbf
,
0xcc
,
0xd8
,
0x08
,
0x4d
,
0x3e
,
0xae
,
0xa9
,
0x00
,
0x66
,
0x06
,
0xcb
,
0xf3
,
0x50
,
0xcc
,
0x52
,
0xc7
,
0x4b
,
0x16
,
0x33
,
0xa5
,
0xde
,
0x20
,
0xed
,
0x6a
,
0xa7
,
0x58
,
0x5e
,
0x4e
,
0x7e
,
0x29
,
0xab
,
0xb9
,
0x65
,
0x9d
,
0x17
,
0xe0
,
0x1e
,
0x79
,
0x77
,
0xf6
,
0x1e
,
0xa0
,
0xcb
,
0x0c
,
0xf7
,
0xc0
,
0xe4
,
0xf6
,
0x3b
,
0x60
,
0x81
,
0xfe
,
0xed
,
0xd9
,
0x42
,
0xa9
,
0x61
,
0x9d
,
0xa8
,
0xd7
,
0xe8
,
0xaa
,
0x97
,
0xad
,
0xbb
,
0xba
,
0x13
,
0x6e
,
0x05
,
0xa5
,
0xce
,
0x7a
,
0x65
,
0x6f
,
0x55
,
0xe3
,
0xcf
,
0xbc
,
0x67
,
0x14
,
0x64
,
0x57
,
0x9c
,
0x46
,
0x14
,
0xd6
,
0x1d
,
0x39
,
0x1c
,
0xd3
,
0xe8
,
0x98
,
0x20
,
0x5a
,
0x1a
,
0x05
,
0x3b
,
0x27
,
0xd5
,
0x84
,
0xca
,
0xd4
,
0x0b
,
0xc4
,
0x1e
,
0xd8
,
0x46
,
0x29
,
0x48
,
0x95
,
0xdb
,
0xe5
,
0x58
,
0x8a
,
0x51
,
0xc7
,
0x74
,
0x7f
,
0x53
,
0xa8
,
0xbb
,
0x58
,
0xc0
,
0x5b
,
0xe1
,
0xa7
,
0x27
,
0x36
,
0x6c
,
0xa6
,
0x70
,
0xec
,
0x88
,
0xcd
,
0x9a
,
0x70
,
0xe1
,
0xa0
,
0xc7
,
0xdd
,
0x60
,
0x71
,
0xf4
,
0x2a
,
0x51
,
0x98
,
0x8e
,
0xab
,
0xb8
,
0x13
,
0x03
,
0x48
,
0x5f
,
0x44
,
0xf8
,
0x88
,
0xd9
,
0x7d
,
0xd3
,
0xf1
,
0x5f
,
0xc4
,
0x2b
,
0x44
,
0x15
,
0x57
,
0x31
,
0xa4
,
0xa1
,
0xdb
,
0x6d
,
0x2a
,
0x5a
,
0x5a
,
0xf7
,
0xde
,
0xd5
,
0x23
,
0x38
,
0x00
,
0xe5
,
0x5c
,
0x55
,
0xe7
,
0x37
,
0x9c
,
0xcb
,
0x8b
,
0xc0
,
0x33
,
0x42
,
0x68
,
0x23
,
0x84
,
0x7d
,
0x89
,
0x9d
,
0xae
,
0x59
,
0x18
,
0xae
,
0xea
,
0x46
,
0x3f
,
0xac
,
0x57
,
0x0d
,
0x5d
,
0x49
,
0x14
,
0x50
,
0xe5
,
0x70
,
0x17
,
0x73
,
0x09
,
0x11
,
0x93
,
0x6b
,
0x02
,
0x22
,
0xb7
,
0x63
,
0xc9
,
0xe6
,
0xa4
,
0xe3
,
0xb1
,
0xf7
,
0xa6
,
0x58
,
0x8d
,
0x14
,
0xa1
,
0xda
,
0x6a
,
0xb9
,
0x38
,
0xf9
,
0x20
,
0x45
,
0x8c
,
0xe6
,
0x32
,
0x23
,
0x9d
,
0x5f
,
0xba
,
0xcb
,
0xb4
,
0x95
,
0xf9
,
0xa9
,
0x5c
,
0x60
,
0x03
,
0x5a
,
0x8c
,
0xa7
,
0xb9
,
0x65
,
0xa8
,
0x84
,
0x38
,
0xc0
,
0x25
,
0xe6
,
0xa7
,
0xc0
,
0x3b
,
0xbc
,
0x11
,
0xed
,
0x0e
,
0x9a
,
0x6f
,
0xfe
,
0x61
,
0x79
,
0x86
,
0x92
,
0x3a
,
0xce
,
0xe0
,
0xb7
,
0x70
,
0xad
,
0xe0
,
0xcc
,
0x88
,
0x47
,
0xd9
,
0x2a
,
0x3d
,
0x41
,
0x06
,
0x77
,
0x41
,
0xbe
,
0x3f
,
0x55
,
0x31
,
0x54
,
0x10
,
0x14
,
0x5b
,
0xdf
,
0x88
,
0xb2
,
0x9f
,
0xff
,
0x11
,
0xb8
,
0x11
,
0xdc
,
0x5e
,
0x64
,
0xf9
,
0x97
,
0x8a
,
0x26
,
0x6a
,
0x44
,
0xb4
,
0x83
,
0x83
,
0x9b
,
0x81
,
0xaa
,
0xfd
,
0xb5
,
0x8b
,
0x16
,
0x18
,
0x2e
,
0x5c
,
0xe4
,
0x5b
,
0x8f
,
0xdd
,
0x7c
,
0x1f
,
0x33
,
0x2f
,
0xef
,
0x57
,
0x8c
,
0x6a
,
0x3f
,
0x3c
,
0x19
,
0x5e
,
0x73
,
0x64
,
0xc5
,
0xaf
,
0x1d
,
0xa1
,
0xb4
,
0x11
,
0xee
,
0x6b
,
0x7e
,
0x66
,
0xfb
,
0xaa
,
0x03
,
0x17
,
0xe4
,
0xc9
,
0x90
,
0x4b
,
0xf2
,
0x50
,
0x55
,
0x71
,
0xad
,
0x31
,
0x71
,
0x49
,
0xd7
,
0x80
,
0xd1
,
0xa5
,
0x9f
,
0x6d
,
0x71
,
0x28
,
0x2b
,
0x65
,
0xcf
,
0x8d
,
0xb1
,
0x2a
,
0x33
,
0xdc
,
0x93
,
0xff
,
0x86
,
0xd7
,
0xa6
,
0xd0
,
0x46
,
0x66
,
0x32
,
0x3d
,
0x18
,
0x8c
,
0xd3
,
0xda
,
0xf6
,
0x1b
,
0xa0
,
0x2d
,
0x29
,
0xfd
,
0x8d
,
0x57
,
0x2c
,
0x82
,
0xed
,
0x38
,
0x4a
,
0x6f
,
0xc4
,
0x3c
,
0x9a
,
0x61
,
0xcb
,
0xe5
,
0xcf
,
0xd3
,
0x83
,
0xa1
,
0x91
,
0x93
,
0x0d
,
0x75
,
0xfd
,
0x4e
,
0x2c
,
0x83
,
0xa0
,
0x85
,
0x27
,
0x13
,
0x5a
,
0x24
,
0xbd
,
0x08
,
0x1e
,
0xe9
,
0xab
,
0x92
,
0x41
,
0xc2
,
0x3a
,
0xa0
,
0xe1
,
0xfd
,
0x00
,
0xb9
,
0xf8
,
0xca
,
0x0b
,
0x1a
,
0x8e
,
0xf6
,
0x27
,
0x9f
,
0x5a
,
0xf0
,
0x23
,
0x07
,
0xc8
,
0xbf
,
0xf6
,
0x74
,
0xe7
,
0xf8
,
0x67
,
0xfc
,
0x28
,
0x4e
,
0x6a
,
0x6c
,
0xc6
,
0x83
,
0xe3
,
0xf0
,
0x01
,
0xe0
,
0x0f
,
0x2d
,
0xdf
,
0x9e
,
0x4b
,
0x8b
,
0x06
,
0x15
,
0x4c
,
0x9f
,
0xdf
,
0x55
,
0x14
,
0x44
,
0xde
,
0x34
,
0x35
,
0x5a
,
0xcb
,
0xe5
,
0xa7
,
0xb5
,
0x7e
,
0x00
,
0x31
,
0x98
,
0x5f
,
0x51
,
0x11
,
0x37
,
0xe1
,
0xd2
,
0x99
,
0x8f
,
0x70
,
0x13
,
0x40
,
0xa0
,
0xbe
,
0xf8
,
0xde
,
0xac
,
0x37
,
0x06
,
0xb6
,
0x26
,
0xf3
,
0xb1
,
0x97
,
0x0b
,
0x85
,
0x68
,
0x09
,
0xa4
,
0xc8
,
0x34
,
0x0a
,
0x41
,
0x6e
,
0xac
,
0x1a
,
0x5b
,
0xe0
,
0x91
,
0x6f
,
0xa3
,
0x0a
,
0xf6
,
0x05
,
0x37
,
0x32
,
0xe1
,
0x8e
,
0xd8
,
0xed
,
0x55
,
0xa3
,
0x54
,
0x3f
,
0x62
,
0x95
,
0x82
,
0xcf
,
0x0a
,
0x19
,
0xb4
,
0x9f
,
0x04
,
0xcc
,
0x86
,
0x7e
,
0xf1
,
0xe5
,
0x8b
,
0x67
,
0x73
,
0xa2
,
0x46
,
0x4e
,
0xf2
,
0x98
,
0x94
,
0xb5
,
0xeb
,
0xa5
,
0xbd
,
0xcb
,
0x66
,
0x82
,
0xe9
,
0x87
,
0xe9
,
0xe3
,
0x50
,
0x55
,
0x4b
,
0xd6
,
0x67
,
0x30
,
0xe1
,
0x7c
,
0x15
,
0x77
,
0x29
,
0xfd
,
0x85
,
0x67
,
0x5a
,
0xc4
,
0xd5
,
0x69
,
0xfa
,
0xc7
,
0x66
,
0x66
,
0x49
,
0xf7
,
0x5a
,
0xcd
,
0xd1
,
0x81
,
0x5c
,
0x74
,
0x8d
,
0xbf
,
0xc5
,
0xc2
,
0xff
,
0x4d
,
0x90
,
0xe8
,
0x8e
,
0x05
,
0x00
,
0xff
,
0x7a
,
0xd7
,
0xb2
,
0x7a
,
0xad
,
0x8b
,
0xd6
,
0x4b
,
0x52
,
0x09
,
0x50
,
0x4b
};
SrsHandshakeBytes
bytes
;
ASSERT_EQ
(
ERROR_SUCCESS
,
bytes
.
create_c0c1
());
memcpy
(
bytes
.
c0c1
,
c0c1
,
1537
);
ASSERT_EQ
(
ERROR_SUCCESS
,
bytes
.
create_s0s1s2
());
memcpy
(
bytes
.
s0s1s2
,
s0s1s2
,
3073
);
ASSERT_EQ
(
ERROR_SUCCESS
,
bytes
.
create_c2
());
memcpy
(
bytes
.
c2
,
c2
,
1536
);
MockEmptyIO
eio
;
SrsSimpleHandshake
hs
;
EXPECT_EQ
(
ERROR_SUCCESS
,
hs
.
handshake_with_client
(
&
bytes
,
&
eio
));
EXPECT_EQ
(
ERROR_SUCCESS
,
hs
.
handshake_with_server
(
&
bytes
,
&
eio
));
}
VOID
TEST
(
HandshakeTest
,
ComplexHandshake
)
{
SrsHandshakeBytes
bytes
;
if
(
true
)
{
char
c0c1
[]
=
{
0x03
,
0x01
,
0x14
,
0xf7
,
0x4e
,
0x80
,
0x00
,
0x07
,
0x02
,
0xac
,
0x14
,
0x98
,
0x57
,
0x0a
,
0x07
,
0x58
,
0x44
,
0x96
,
0x47
,
0xb5
,
0x9a
,
0x73
,
0xf6
,
0x07
,
0x0f
,
0x49
,
0x0d
,
0x72
,
0xb8
,
0x16
,
0xbb
,
0xb2
,
0xb7
,
0x61
,
0x17
,
0x79
,
0xa0
,
0xe9
,
0x98
,
0xca
,
0xb2
,
0x86
,
0x64
,
0x5f
,
0x65
,
0x3e
,
0xfc
,
0x4d
,
0xc0
,
0x0e
,
0x4c
,
0xfa
,
0x91
,
0xc7
,
0x0f
,
0x2e
,
0x57
,
0x31
,
0x4b
,
0x96
,
0xef
,
0xc9
,
0x81
,
0x02
,
0x00
,
0x54
,
0x25
,
0x2b
,
0xb2
,
0x0d
,
0x7c
,
0xee
,
0xba
,
0xdb
,
0xe4
,
0x06
,
0x78
,
0xcd
,
0x70
,
0x2c
,
0x54
,
0x5a
,
0x3a
,
0x03
,
0x13
,
0x2e
,
0xe7
,
0x4b
,
0x87
,
0x40
,
0x77
,
0x0b
,
0x9f
,
0xd2
,
0xab
,
0x32
,
0x07
,
0x6f
,
0x1e
,
0x75
,
0x74
,
0xe9
,
0xc7
,
0x44
,
0xd9
,
0x76
,
0x53
,
0xba
,
0xe2
,
0x52
,
0xfa
,
0xcc
,
0xef
,
0x34
,
0xd5
,
0x14
,
0x61
,
0xac
,
0xcc
,
0x63
,
0xfd
,
0x2b
,
0x2d
,
0xb3
,
0xb8
,
0xdd
,
0x8a
,
0x51
,
0x9a
,
0x2d
,
0x0e
,
0xfa
,
0x84
,
0x25
,
0x55
,
0xb2
,
0xb7
,
0x94
,
0x54
,
0x68
,
0xfb
,
0x94
,
0xdf
,
0xd8
,
0xeb
,
0x43
,
0xd0
,
0x11
,
0x70
,
0x8f
,
0xf5
,
0x48
,
0xfc
,
0x69
,
0x4d
,
0x5b
,
0xc6
,
0x53
,
0x8a
,
0x22
,
0xea
,
0x62
,
0x84
,
0x89
,
0x6b
,
0xfe
,
0x4e
,
0xab
,
0x51
,
0x98
,
0xf4
,
0x4f
,
0xae
,
0xf8
,
0xdf
,
0xac
,
0x43
,
0xed
,
0x5a
,
0x04
,
0x97
,
0xc4
,
0xbe
,
0x44
,
0x5b
,
0x99
,
0x20
,
0x68
,
0x67
,
0x0f
,
0xe3
,
0xfa
,
0x4c
,
0x9d
,
0xe7
,
0x0b
,
0x3f
,
0x80
,
0x7c
,
0x4c
,
0x35
,
0xf6
,
0xdd
,
0x20
,
0x05
,
0xfd
,
0x0f
,
0x39
,
0xb7
,
0x36
,
0x45
,
0x4c
,
0xb7
,
0x62
,
0x92
,
0x35
,
0x2a
,
0xcd
,
0xb9
,
0x49
,
0xea
,
0x12
,
0x0b
,
0x5f
,
0x39
,
0xae
,
0x3b
,
0x49
,
0x29
,
0xe6
,
0x30
,
0xc7
,
0x7c
,
0x77
,
0xaf
,
0x00
,
0x43
,
0x4d
,
0x06
,
0x45
,
0x72
,
0x73
,
0x25
,
0x71
,
0x5e
,
0x35
,
0x04
,
0xbd
,
0xe9
,
0x48
,
0x23
,
0x64
,
0x4d
,
0x15
,
0x0b
,
0xc5
,
0x3f
,
0x6e
,
0x3a
,
0xd5
,
0xd5
,
0xa6
,
0xae
,
0x3b
,
0x4c
,
0x66
,
0x6a
,
0x70
,
0x8b
,
0xf3
,
0x6a
,
0x43
,
0xc4
,
0xb9
,
0xbd
,
0xa0
,
0x09
,
0x72
,
0xbc
,
0xce
,
0x7a
,
0xea
,
0x49
,
0xf2
,
0x86
,
0xa7
,
0xd8
,
0x4a
,
0x87
,
0x28
,
0xca
,
0x2c
,
0x53
,
0xee
,
0x96
,
0x0b
,
0xbe
,
0x15
,
0x14
,
0xa8
,
0x00
,
0xca
,
0x76
,
0x08
,
0x4d
,
0x0f
,
0xef
,
0x78
,
0x4b
,
0xf6
,
0x47
,
0x60
,
0xfc
,
0x16
,
0x00
,
0x7c
,
0x6b
,
0x49
,
0x39
,
0x64
,
0x36
,
0xee
,
0x45
,
0x3a
,
0x9a
,
0xa5
,
0xbf
,
0xfb
,
0x7b
,
0xe7
,
0xcf
,
0x42
,
0x82
,
0x48
,
0x1b
,
0x30
,
0xfe
,
0x0d
,
0xba
,
0x10
,
0xb8
,
0xe1
,
0x40
,
0xcc
,
0x6f
,
0x36
,
0x1c
,
0x94
,
0x5d
,
0x50
,
0x9e
,
0x21
,
0x08
,
0xc9
,
0xd5
,
0xb0
,
0x32
,
0x51
,
0x6a
,
0x8f
,
0xfa
,
0x57
,
0x8d
,
0x45
,
0xd7
,
0xd2
,
0xd0
,
0xd6
,
0x6c
,
0x78
,
0x95
,
0xe9
,
0xe1
,
0x20
,
0x97
,
0x1a
,
0x43
,
0x40
,
0xa3
,
0xb5
,
0xcc
,
0x4b
,
0x12
,
0x84
,
0x1e
,
0x0e
,
0xd3
,
0x32
,
0xca
,
0x99
,
0xc3
,
0x2b
,
0x78
,
0x17
,
0x24
,
0x6b
,
0xc7
,
0xbc
,
0x9d
,
0x05
,
0xc6
,
0xaf
,
0x8f
,
0x19
,
0x75
,
0x3c
,
0x08
,
0xa6
,
0x08
,
0x26
,
0x5b
,
0xf4
,
0x10
,
0x40
,
0xaa
,
0x6a
,
0x7e
,
0xb9
,
0xde
,
0x0b
,
0x23
,
0x3f
,
0x53
,
0x5a
,
0x20
,
0x13
,
0x62
,
0xec
,
0x53
,
0x86
,
0x81
,
0x1f
,
0xf6
,
0x8e
,
0xe3
,
0xd1
,
0xaa
,
0xb5
,
0x41
,
0x87
,
0x62
,
0xd2
,
0xb7
,
0x09
,
0x12
,
0x71
,
0x01
,
0x2c
,
0xac
,
0x6d
,
0x9d
,
0x37
,
0x46
,
0x5b
,
0xdc
,
0x76
,
0x2c
,
0x96
,
0x61
,
0x88
,
0x55
,
0x5a
,
0x20
,
0xc2
,
0x84
,
0x95
,
0xbd
,
0x72
,
0xc4
,
0xb7
,
0x22
,
0xae
,
0xeb
,
0x49
,
0x0e
,
0x16
,
0xf1
,
0xf1
,
0xbf
,
0xc5
,
0xc7
,
0xa8
,
0x8d
,
0xfb
,
0xe1
,
0x08
,
0x6c
,
0xc4
,
0x79
,
0x81
,
0x13
,
0xe8
,
0x39
,
0xbf
,
0x6e
,
0x5c
,
0xa1
,
0x62
,
0xfb
,
0x32
,
0x2a
,
0x62
,
0xf0
,
0x12
,
0x07
,
0x31
,
0x93
,
0x40
,
0xf3
,
0xc0
,
0xea
,
0x1d
,
0xd8
,
0x65
,
0xba
,
0x12
,
0xb3
,
0x9b
,
0xf5
,
0x59
,
0x9c
,
0x4e
,
0xf6
,
0xb9
,
0xf7
,
0x85
,
0xa1
,
0xd9
,
0x2f
,
0x7c
,
0x8b
,
0xd0
,
0xfc
,
0x53
,
0x3b
,
0xed
,
0x85
,
0xa4
,
0xd2
,
0x5e
,
0x69
,
0x61
,
0x02
,
0x53
,
0xb6
,
0x19
,
0xc7
,
0x82
,
0xea
,
0x8a
,
0x45
,
0x01
,
0x5d
,
0x4b
,
0xb3
,
0x06
,
0x86
,
0x7f
,
0x4b
,
0x2f
,
0xe7
,
0xa8
,
0xd0
,
0x28
,
0x62
,
0x02
,
0xe8
,
0xf3
,
0x9e
,
0x1e
,
0x72
,
0x82
,
0x07
,
0x9f
,
0xdd
,
0xd2
,
0x83
,
0x7d
,
0x89
,
0x73
,
0x1b
,
0x6f
,
0x35
,
0x20
,
0xb7
,
0x88
,
0x15
,
0x92
,
0xa7
,
0x11
,
0xfe
,
0x81
,
0x68
,
0xed
,
0x14
,
0x07
,
0xdf
,
0x4a
,
0x06
,
0x9c
,
0x5e
,
0x7e
,
0x34
,
0x3a
,
0x2a
,
0x8a
,
0xd3
,
0xe8
,
0xf8
,
0xd4
,
0xdb
,
0xe3
,
0xe9
,
0x73
,
0xbf
,
0xa7
,
0xe9
,
0x73
,
0x62
,
0xf2
,
0x9d
,
0xc1
,
0xf7
,
0x51
,
0xeb
,
0xff
,
0xb7
,
0xe6
,
0xd9
,
0xac
,
0x46
,
0x06
,
0x74
,
0xe2
,
0x25
,
0x3f
,
0x46
,
0x43
,
0xce
,
0x49
,
0x52
,
0x25
,
0x1b
,
0xf9
,
0x24
,
0x5c
,
0xda
,
0xfd
,
0x7f
,
0xf6
,
0xef
,
0xb3
,
0xd5
,
0xe9
,
0x6e
,
0x35
,
0xb8
,
0xd1
,
0x0e
,
0x2c
,
0xc1
,
0x48
,
0x5a
,
0x27
,
0x0a
,
0x81
,
0x01
,
0x0f
,
0xe4
,
0x51
,
0xcf
,
0x89
,
0x36
,
0xd3
,
0xe8
,
0x5e
,
0x05
,
0xb9
,
0x83
,
0x42
,
0xf3
,
0xa5
,
0x94
,
0x67
,
0x6d
,
0x6a
,
0x6e
,
0xad
,
0xf8
,
0x90
,
0xb1
,
0x1d
,
0x63
,
0x18
,
0x52
,
0xc1
,
0xbf
,
0xbc
,
0xad
,
0xf4
,
0xd2
,
0xc5
,
0xef
,
0xca
,
0x4c
,
0xfe
,
0xa1
,
0xda
,
0x15
,
0x92
,
0x4c
,
0x42
,
0x3d
,
0xfc
,
0x80
,
0x7e
,
0x49
,
0x13
,
0x4e
,
0xf6
,
0xe1
,
0xee
,
0x70
,
0xca
,
0xd9
,
0x0a
,
0xde
,
0x9b
,
0xea
,
0xcd
,
0xf9
,
0x90
,
0xfd
,
0xae
,
0x09
,
0xce
,
0xb6
,
0xa0
,
0xf7
,
0xd1
,
0xe6
,
0x0c
,
0x55
,
0x1e
,
0x3f
,
0xbb
,
0x1e
,
0xff
,
0x3d
,
0xdb
,
0xdd
,
0x27
,
0x80
,
0x06
,
0x53
,
0x7e
,
0x0b
,
0x2a
,
0x80
,
0x24
,
0x51
,
0x5c
,
0x6a
,
0xab
,
0x32
,
0x5d
,
0x37
,
0x8a
,
0xf4
,
0xb7
,
0x11
,
0xa7
,
0xc1
,
0x9e
,
0x05
,
0x2c
,
0x16
,
0xc2
,
0x08
,
0xe2
,
0xac
,
0x1a
,
0xeb
,
0x60
,
0xf8
,
0xd2
,
0xea
,
0x39
,
0x01
,
0x1c
,
0x64
,
0xbd
,
0x22
,
0x80
,
0x19
,
0x20
,
0xc9
,
0x6f
,
0xdd
,
0x5c
,
0x73
,
0x8c
,
0xa1
,
0x53
,
0x48
,
0x2e
,
0x99
,
0x1d
,
0xc0
,
0x8f
,
0x28
,
0xf1
,
0xe3
,
0xc5
,
0xc5
,
0x65
,
0x53
,
0xf2
,
0x44
,
0x44
,
0x24
,
0xb9
,
0xe2
,
0x73
,
0xe4
,
0x76
,
0x14
,
0x56
,
0xb8
,
0x82
,
0xe3
,
0xb4
,
0xfd
,
0x68
,
0x31
,
0xed
,
0x40
,
0x10
,
0x99
,
0xd3
,
0x3d
,
0xe5
,
0x6b
,
0x14
,
0x61
,
0x66
,
0x9a
,
0xf6
,
0x33
,
0x98
,
0xc5
,
0x4d
,
0x11
,
0xbb
,
0xf8
,
0x56
,
0xf8
,
0x8f
,
0xd7
,
0xb9
,
0xda
,
0xa3
,
0x56
,
0x1a
,
0xe0
,
0x9e
,
0xbe
,
0x5f
,
0x56
,
0xe5
,
0xb9
,
0xd8
,
0xf3
,
0xbc
,
0x19
,
0xf5
,
0xe9
,
0x1f
,
0xd2
,
0xea
,
0xf4
,
0x5a
,
0xde
,
0xed
,
0xd4
,
0x9e
,
0xc8
,
0xf5
,
0x54
,
0x83
,
0x8b
,
0x8c
,
0x2d
,
0x24
,
0x0e
,
0x30
,
0xb1
,
0x84
,
0xa2
,
0xbe
,
0x2c
,
0x86
,
0xe6
,
0x42
,
0x82
,
0xaa
,
0x37
,
0x64
,
0x55
,
0x51
,
0xbc
,
0xde
,
0xc0
,
0x63
,
0x88
,
0xf6
,
0x31
,
0x71
,
0x52
,
0xd5
,
0x34
,
0x0f
,
0x8e
,
0xcb
,
0x28
,
0x65
,
0x93
,
0x1a
,
0x66
,
0x3b
,
0x21
,
0x00
,
0xaa
,
0x7a
,
0xda
,
0x2d
,
0xf6
,
0x7e
,
0xb5
,
0x27
,
0x79
,
0xf4
,
0x50
,
0x3b
,
0x10
,
0x6b
,
0x3c
,
0xd7
,
0x99
,
0x9d
,
0xf6
,
0xc5
,
0x01
,
0x91
,
0xa0
,
0xd5
,
0x4f
,
0xd3
,
0x76
,
0x54
,
0xa8
,
0x5c
,
0x35
,
0x1d
,
0xe2
,
0x35
,
0x6a
,
0x68
,
0x67
,
0x03
,
0xc4
,
0x1f
,
0xe9
,
0x60
,
0xb8
,
0x49
,
0xb1
,
0x9a
,
0x40
,
0xd9
,
0x3c
,
0x4c
,
0x73
,
0xaa
,
0x88
,
0x63
,
0xaf
,
0xfe
,
0xe8
,
0xa8
,
0x0c
,
0x96
,
0xbe
,
0xb4
,
0x65
,
0x7c
,
0x27
,
0xfb
,
0xc1
,
0x27
,
0x24
,
0x58
,
0xab
,
0x4b
,
0xa0
,
0x5a
,
0x7d
,
0xc7
,
0xca
,
0x2d
,
0xa5
,
0x22
,
0xa7
,
0xed
,
0x26
,
0x87
,
0xd5
,
0x44
,
0x1a
,
0xc7
,
0xdd
,
0xfb
,
0x60
,
0xfc
,
0xe5
,
0x50
,
0xd9
,
0x8d
,
0xa7
,
0xdb
,
0x78
,
0xb6
,
0x9d
,
0x80
,
0x0f
,
0xb9
,
0x5f
,
0xa7
,
0x53
,
0x92
,
0x5d
,
0x18
,
0xce
,
0x89
,
0xc2
,
0x69
,
0xee
,
0xcf
,
0xb6
,
0x66
,
0xe5
,
0x66
,
0xd2
,
0xe3
,
0x35
,
0x74
,
0x0b
,
0x83
,
0xb6
,
0xde
,
0xf1
,
0xfb
,
0xb4
,
0x1d
,
0x4b
,
0x94
,
0x95
,
0x06
,
0x82
,
0xe7
,
0x1c
,
0xf8
,
0xc5
,
0xe6
,
0xd0
,
0xf2
,
0x17
,
0x37
,
0x44
,
0xfe
,
0x99
,
0x43
,
0x82
,
0xbb
,
0x88
,
0xe4
,
0x43
,
0x67
,
0xcc
,
0x4d
,
0x5f
,
0xa6
,
0x26
,
0xd7
,
0x53
,
0xd6
,
0x45
,
0x96
,
0x2b
,
0x63
,
0xd1
,
0x2a
,
0xa1
,
0x2c
,
0x41
,
0x59
,
0x8b
,
0xb8
,
0xc1
,
0x89
,
0x03
,
0x3a
,
0x61
,
0x13
,
0xc4
,
0x2c
,
0x37
,
0xa5
,
0xbf
,
0xd7
,
0xdb
,
0xd8
,
0x53
,
0x5f
,
0xa1
,
0xdb
,
0xdb
,
0xa5
,
0x73
,
0xb6
,
0xf7
,
0x74
,
0xa0
,
0xf8
,
0x93
,
0xf5
,
0x61
,
0xee
,
0x3c
,
0xe7
,
0x00
,
0x01
,
0x98
,
0xe0
,
0xa1
,
0x22
,
0xb6
,
0x9a
,
0x83
,
0x44
,
0xa1
,
0xe6
,
0x70
,
0x56
,
0x65
,
0x92
,
0x1e
,
0xf0
,
0xbc
,
0x73
,
0xa5
,
0x7a
,
0xc1
,
0x1a
,
0x02
,
0xf9
,
0xd4
,
0xc4
,
0x7c
,
0x81
,
0xda
,
0x15
,
0xc0
,
0xd4
,
0x25
,
0xdc
,
0x17
,
0xa6
,
0x0d
,
0x90
,
0x55
,
0xf2
,
0x10
,
0xf8
,
0xa7
,
0x71
,
0x9b
,
0xed
,
0xdf
,
0xdf
,
0xa1
,
0xe4
,
0xb9
,
0x12
,
0x6b
,
0x05
,
0x3e
,
0x83
,
0x99
,
0x49
,
0xbf
,
0x66
,
0xbb
,
0xf6
,
0x76
,
0xd3
,
0xa9
,
0x24
,
0x61
,
0x8c
,
0x25
,
0x49
,
0xd0
,
0xf7
,
0x83
,
0x44
,
0xfb
,
0x27
,
0xe2
,
0x7d
,
0x69
,
0x6d
,
0x34
,
0x67
,
0xed
,
0x39
,
0x89
,
0x02
,
0xcb
,
0x2f
,
0x33
,
0x3c
,
0xcd
,
0x12
,
0x42
,
0x8f
,
0x86
,
0x7d
,
0xda
,
0x3f
,
0xd7
,
0x26
,
0x62
,
0x9c
,
0x1f
,
0x2e
,
0xa8
,
0xc3
,
0x85
,
0xf1
,
0x73
,
0xe5
,
0x2c
,
0x11
,
0xde
,
0x98
,
0xc8
,
0xb0
,
0x10
,
0x17
,
0x55
,
0xf5
,
0x32
,
0x52
,
0x67
,
0xca
,
0x64
,
0x50
,
0x28
,
0x9a
,
0x24
,
0x92
,
0xa1
,
0x97
,
0x57
,
0x81
,
0xaf
,
0xca
,
0x1e
,
0xc0
,
0xa4
,
0x71
,
0x2d
,
0x2a
,
0xec
,
0xc9
,
0x23
,
0x6a
,
0x0c
,
0x1d
,
0x54
,
0x15
,
0x2a
,
0x56
,
0x42
,
0x0a
,
0x83
,
0xff
,
0x28
,
0xba
,
0xe7
,
0x68
,
0x38
,
0xf5
,
0x32
,
0xa9
,
0xb7
,
0xe7
,
0x70
,
0x32
,
0xa8
,
0x79
,
0x5e
,
0x46
,
0x1d
,
0xec
,
0x29
,
0x8a
,
0xde
,
0x41
,
0x94
,
0x94
,
0x26
,
0x79
,
0xc2
,
0x52
,
0x23
,
0xe0
,
0xa1
,
0x1d
,
0x65
,
0x0c
,
0xbe
,
0x1b
,
0x87
,
0x2a
,
0x21
,
0x53
,
0x2f
,
0x35
,
0x56
,
0xe8
,
0xd1
,
0x7b
,
0xb8
,
0x23
,
0x75
,
0x56
,
0xc7
,
0x08
,
0x9d
,
0x13
,
0xf0
,
0x8f
,
0x80
,
0x38
,
0xe9
,
0x92
,
0xf7
,
0x16
,
0xc2
,
0xf3
,
0x74
,
0xa7
,
0x92
,
0xf5
,
0x49
,
0x7d
,
0x09
,
0x41
,
0xbc
,
0x07
,
0x61
,
0x1f
,
0xe6
,
0xa0
,
0xd8
,
0xa6
,
0xe3
,
0x72
,
0xa4
,
0x59
,
0x4a
,
0xd9
,
0x33
,
0x40
,
0x80
,
0x3a
,
0x3a
,
0xb3
,
0xa0
,
0x96
,
0xca
,
0x56
,
0x98
,
0xbd
,
0x1f
,
0x80
,
0x86
,
0x6c
,
0xe1
,
0x09
,
0x64
,
0x1b
,
0x1a
,
0xc9
,
0x52
,
0xaa
,
0xd1
,
0x39
,
0xea
,
0x4b
,
0x6a
,
0x3e
,
0x4e
,
0xa4
,
0xea
,
0x00
,
0xde
,
0x07
,
0x0b
,
0x23
,
0xbc
,
0x40
,
0xc4
,
0xd2
,
0xd9
,
0xf6
,
0xda
,
0x8e
,
0x22
,
0x36
,
0xbe
,
0x5e
,
0x65
,
0x6e
,
0xbe
,
0xc8
,
0xb0
,
0x07
,
0xa2
,
0x2d
,
0xe9
,
0x4b
,
0x73
,
0x54
,
0xe6
,
0x0a
,
0xf2
,
0xd3
,
0x83
,
0x8b
,
0x27
,
0x4c
,
0xcc
,
0x0c
,
0x8a
,
0xd4
,
0x2b
,
0xb8
,
0x95
,
0x2e
,
0x42
,
0x64
,
0x29
,
0xc1
,
0xe0
,
0x6b
,
0x92
,
0xab
,
0xfe
,
0x53
,
0x06
,
0x96
,
0x4a
,
0x8c
,
0x5d
,
0x7c
,
0x51
,
0x74
,
0xd0
,
0x1e
,
0x37
,
0x35
,
0x9c
,
0x1e
,
0x69
,
0x8f
,
0x68
,
0x18
,
0xd9
,
0xbe
,
0xaf
,
0x81
,
0x9b
,
0x7e
,
0xd8
,
0x71
,
0x9d
,
0xb6
,
0x50
,
0x43
,
0x78
,
0x85
,
0x7d
,
0x65
,
0x93
,
0x45
,
0xb4
,
0x02
,
0xd0
,
0x5c
,
0x36
,
0xe2
,
0x62
,
0x3f
,
0x40
,
0x33
,
0xee
,
0x91
,
0xe5
,
0x3f
,
0x67
,
0x39
,
0x2f
,
0x1b
,
0x89
,
0x9f
,
0x04
,
0x9d
,
0x46
,
0x3e
,
0x70
,
0x92
,
0x9e
,
0x8c
,
0xf5
};
char
s0s1s2
[]
=
{
0x03
,
0xac
,
0x44
,
0x29
,
0x53
,
0x04
,
0x05
,
0x00
,
0x01
,
0x6e
,
0x65
,
0x69
,
0x2d
,
0x69
,
0x2d
,
0x69
,
0x73
,
0x6e
,
0x69
,
0x73
,
0x6c
,
0x65
,
0x72
,
0x69
,
0x72
,
0x76
,
0x65
,
0x72
,
0x69
,
0x77
,
0x74
,
0x2e
,
0x6e
,
0x72
,
0x76
,
0x72
,
0x65
,
0x72
,
0x70
,
0x72
,
0x69
,
0x69
,
0x70
,
0x72
,
0x73
,
0x6e
,
0x65
,
0x72
,
0x72
,
0x6e
,
0x2d
,
0x65
,
0x74
,
0x72
,
0x6c
,
0x69
,
0x74
,
0x69
,
0x65
,
0x40
,
0x69
,
0x69
,
0x76
,
0x77
,
0x2d
,
0x73
,
0x65
,
0x72
,
0x72
,
0x76
,
0x73
,
0x72
,
0x2e
,
0x2d
,
0x76
,
0x65
,
0x31
,
0x65
,
0x6d
,
0x6d
,
0x73
,
0x69
,
0x73
,
0x74
,
0x2e
,
0x74
,
0x72
,
0x65
,
0x65
,
0x72
,
0x65
,
0x2d
,
0x74
,
0x69
,
0x31
,
0x65
,
0x2d
,
0x6f
,
0x77
,
0x2e
,
0x76
,
0x77
,
0x2d
,
0x77
,
0x72
,
0x65
,
0x65
,
0x31
,
0x74
,
0x73
,
0x70
,
0x74
,
0x6e
,
0x72
,
0x6e
,
0x73
,
0x6d
,
0x2e
,
0x69
,
0x72
,
0x2d
,
0x65
,
0x69
,
0x77
,
0x69
,
0x76
,
0x72
,
0x77
,
0x72
,
0x32
,
0x6e
,
0x65
,
0x6c
,
0x2e
,
0x2d
,
0x6e
,
0x69
,
0x6d
,
0x6c
,
0x73
,
0x65
,
0x73
,
0x70
,
0x2d
,
0x65
,
0x72
,
0x40
,
0x72
,
0x74
,
0x6e
,
0x6e
,
0x6d
,
0x6f
,
0x70
,
0x74
,
0x73
,
0x2d
,
0x63
,
0x69
,
0x32
,
0x31
,
0x2d
,
0x40
,
0x69
,
0x70
,
0x2d
,
0x2d
,
0x72
,
0x69
,
0x74
,
0x63
,
0x6f
,
0x69
,
0x69
,
0x65
,
0x6e
,
0x32
,
0x6f
,
0x6c
,
0x6e
,
0x72
,
0x73
,
0x77
,
0x65
,
0x65
,
0x72
,
0x32
,
0x6d
,
0x65
,
0x6c
,
0x2d
,
0x72
,
0x6e
,
0x65
,
0x6d
,
0x31
,
0x65
,
0x74
,
0x2d
,
0x6f
,
0x72
,
0x65
,
0x63
,
0x69
,
0x40
,
0x70
,
0x2d
,
0x65
,
0x6d
,
0x2d
,
0x77
,
0x63
,
0x63
,
0x74
,
0x40
,
0x36
,
0x2d
,
0x72
,
0x65
,
0x70
,
0x2d
,
0x6e
,
0x69
,
0x6d
,
0x65
,
0x74
,
0x70
,
0x76
,
0x40
,
0x76
,
0x72
,
0x72
,
0x69
,
0x77
,
0x76
,
0x69
,
0x74
,
0x74
,
0x65
,
0x31
,
0x6d
,
0x2e
,
0x6f
,
0x72
,
0x73
,
0x73
,
0x6c
,
0x40
,
0x36
,
0x72
,
0x70
,
0x72
,
0x70
,
0x72
,
0x69
,
0x32
,
0x6c
,
0x77
,
0x70
,
0x76
,
0x65
,
0x72
,
0x76
,
0x63
,
0x65
,
0x65
,
0x77
,
0x72
,
0x6e
,
0x2e
,
0x76
,
0x69
,
0x69
,
0x2e
,
0x40
,
0x72
,
0x2e
,
0x2e
,
0x72
,
0x73
,
0x6e
,
0x72
,
0x72
,
0x6e
,
0x70
,
0x40
,
0x77
,
0x65
,
0x77
,
0x65
,
0x70
,
0x63
,
0x74
,
0x2d
,
0x70
,
0x72
,
0x2d
,
0x74
,
0x72
,
0x31
,
0x65
,
0x6e
,
0x2d
,
0x76
,
0x2d
,
0x2d
,
0x2d
,
0x74
,
0x76
,
0x2d
,
0x74
,
0x65
,
0x2e
,
0x2d
,
0x6c
,
0x76
,
0x2d
,
0x6c
,
0x70
,
0x73
,
0x6d
,
0x65
,
0x72
,
0x31
,
0x31
,
0x36
,
0x76
,
0x73
,
0x73
,
0x6e
,
0x2d
,
0x6e
,
0x73
,
0x72
,
0x2d
,
0x6f
,
0x6c
,
0x65
,
0x74
,
0x77
,
0x65
,
0x69
,
0x72
,
0x69
,
0x65
,
0x6d
,
0x76
,
0x31
,
0x65
,
0x73
,
0x72
,
0x6c
,
0x72
,
0x77
,
0x65
,
0x76
,
0x74
,
0x72
,
0x69
,
0x72
,
0x76
,
0x32
,
0x73
,
0x6d
,
0x72
,
0x2d
,
0x6d
,
0x40
,
0x69
,
0x40
,
0x69
,
0x31
,
0x69
,
0x6f
,
0x6e
,
0x6d
,
0x69
,
0x73
,
0x70
,
0x72
,
0x77
,
0x6f
,
0x6f
,
0x65
,
0x77
,
0x76
,
0x70
,
0x70
,
0x6c
,
0x6f
,
0x72
,
0x65
,
0x32
,
0x36
,
0x6c
,
0x74
,
0x6e
,
0x72
,
0x74
,
0x2d
,
0x6e
,
0x6c
,
0x72
,
0x72
,
0x2d
,
0x74
,
0x65
,
0x73
,
0x70
,
0x65
,
0x72
,
0x6c
,
0x65
,
0x65
,
0x2d
,
0x6e
,
0x70
,
0x6e
,
0x40
,
0x65
,
0x6e
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x72
,
0x6e
,
0xfe
,
0x5a
,
0x38
,
0x79
,
0x81
,
0xe8
,
0x49
,
0xee
,
0x93
,
0xbb
,
0xa0
,
0x59
,
0x4a
,
0xa0
,
0xcc
,
0x31
,
0xbf
,
0x0d
,
0x86
,
0xc0
,
0x3f
,
0xae
,
0x2a
,
0x16
,
0xfa
,
0xf0
,
0x4e
,
0x0f
,
0xa3
,
0x01
,
0x06
,
0xa0
,
0x0e
,
0xa5
,
0x8c
,
0xa4
,
0xca
,
0xd2
,
0x01
,
0xa5
,
0x90
,
0xbd
,
0x55
,
0xd1
,
0x42
,
0x2b
,
0xd4
,
0xb3
,
0xbb
,
0x06
,
0xb1
,
0x3a
,
0x94
,
0x41
,
0x76
,
0x1d
,
0xa5
,
0x23
,
0x6e
,
0x1e
,
0x59
,
0x73
,
0x63
,
0x34
,
0x60
,
0xd3
,
0x48
,
0xc0
,
0x3b
,
0xcf
,
0xf1
,
0xa8
,
0x38
,
0xd6
,
0xf3
,
0x5e
,
0x6d
,
0xcb
,
0xea
,
0xfc
,
0x9c
,
0x52
,
0xae
,
0x9a
,
0x89
,
0xdb
,
0x24
,
0x1b
,
0x92
,
0x4a
,
0x85
,
0x97
,
0x3c
,
0xd8
,
0x4c
,
0x31
,
0xad
,
0xfd
,
0x00
,
0xef
,
0xc5
,
0x17
,
0xa5
,
0x22
,
0xc0
,
0xf1
,
0x94
,
0x18
,
0xec
,
0xf6
,
0x49
,
0xe5
,
0x05
,
0x11
,
0x12
,
0x67
,
0x6c
,
0x71
,
0xc0
,
0x84
,
0x6d
,
0x50
,
0xf8
,
0x23
,
0x01
,
0x57
,
0xc4
,
0xfc
,
0x73
,
0x65
,
0x69
,
0x6e
,
0x65
,
0x72
,
0x6d
,
0x6f
,
0x69
,
0x2d
,
0x65
,
0x65
,
0x69
,
0x63
,
0x63
,
0x69
,
0x2d
,
0x72
,
0x2d
,
0x69
,
0x2d
,
0x2d
,
0x77
,
0x72
,
0x76
,
0x72
,
0x72
,
0x2d
,
0x76
,
0x70
,
0x63
,
0x69
,
0x74
,
0x73
,
0x6d
,
0x65
,
0x6c
,
0x2d
,
0x73
,
0x6c
,
0x65
,
0x6e
,
0x73
,
0x77
,
0x69
,
0x63
,
0x69
,
0x70
,
0x31
,
0x40
,
0x72
,
0x69
,
0x2d
,
0x2d
,
0x2d
,
0x72
,
0x72
,
0x6c
,
0x72
,
0x63
,
0x72
,
0x77
,
0x6e
,
0x6c
,
0x2d
,
0x72
,
0x2e
,
0x76
,
0x72
,
0x65
,
0x6d
,
0x76
,
0x36
,
0x6d
,
0x72
,
0x77
,
0x72
,
0x65
,
0x65
,
0x69
,
0x72
,
0x76
,
0x6d
,
0x76
,
0x74
,
0x76
,
0x72
,
0x65
,
0x69
,
0x72
,
0x6e
,
0x6d
,
0x77
,
0x6c
,
0x40
,
0x32
,
0x70
,
0x65
,
0x65
,
0x69
,
0x72
,
0x31
,
0x2e
,
0x70
,
0x36
,
0x31
,
0x65
,
0x70
,
0x72
,
0x72
,
0x73
,
0x72
,
0x6e
,
0x6e
,
0x73
,
0x32
,
0x2d
,
0x2d
,
0x2d
,
0x69
,
0x65
,
0x31
,
0x74
,
0x6e
,
0x65
,
0x74
,
0x65
,
0x76
,
0x69
,
0x6d
,
0x6c
,
0x6e
,
0x70
,
0x74
,
0x73
,
0x72
,
0x6d
,
0x72
,
0x72
,
0x69
,
0x65
,
0x74
,
0x65
,
0x65
,
0x2d
,
0x70
,
0x74
,
0x6e
,
0x74
,
0x65
,
0x6f
,
0x72
,
0x69
,
0x76
,
0x40
,
0x31
,
0x69
,
0x72
,
0x6d
,
0x6d
,
0x77
,
0x69
,
0x72
,
0x65
,
0x6e
,
0x40
,
0x63
,
0x40
,
0x65
,
0x65
,
0x69
,
0x2d
,
0x72
,
0x65
,
0x40
,
0x69
,
0x32
,
0x74
,
0x73
,
0x6e
,
0x36
,
0x2d
,
0x70
,
0x65
,
0x6c
,
0x70
,
0x6e
,
0x72
,
0x69
,
0x32
,
0x65
,
0x74
,
0x76
,
0x77
,
0x73
,
0x6f
,
0x77
,
0x65
,
0x72
,
0x2d
,
0x6e
,
0x73
,
0x65
,
0x65
,
0x70
,
0x65
,
0x2d
,
0x65
,
0x73
,
0x2d
,
0x65
,
0x2e
,
0x73
,
0x69
,
0x67
,
0x45
,
0x8b
,
0x6b
,
0x3b
,
0xc9
,
0x5f
,
0x09
,
0x65
,
0x65
,
0x72
,
0x6c
,
0x73
,
0x6d
,
0x70
,
0x70
,
0x73
,
0x63
,
0x70
,
0x40
,
0x72
,
0x76
,
0x65
,
0x6e
,
0x6f
,
0x6c
,
0x69
,
0x2e
,
0x72
,
0x73
,
0x76
,
0x69
,
0x77
,
0x72
,
0x2d
,
0x69
,
0x6e
,
0x69
,
0x65
,
0x77
,
0x73
,
0x69
,
0x70
,
0x77
,
0x63
,
0x65
,
0x74
,
0x72
,
0x73
,
0x31
,
0x65
,
0x65
,
0x72
,
0x76
,
0x69
,
0x65
,
0x77
,
0x6d
,
0x65
,
0x36
,
0x6e
,
0x6e
,
0x69
,
0x6d
,
0x6e
,
0x70
,
0x77
,
0x72
,
0x65
,
0x31
,
0x65
,
0x6e
,
0x6e
,
0x65
,
0x2d
,
0x65
,
0x65
,
0x2e
,
0x77
,
0x6e
,
0x6f
,
0x2d
,
0x76
,
0x65
,
0x72
,
0x6c
,
0x31
,
0x76
,
0x65
,
0x72
,
0x2d
,
0x36
,
0x6c
,
0x70
,
0x6f
,
0x65
,
0x72
,
0x73
,
0x63
,
0x72
,
0x77
,
0x73
,
0x72
,
0x65
,
0x65
,
0x65
,
0x6c
,
0x76
,
0x72
,
0x65
,
0x6e
,
0x65
,
0x2e
,
0x6f
,
0x2d
,
0x72
,
0x70
,
0x65
,
0x74
,
0x72
,
0x77
,
0x69
,
0x69
,
0x72
,
0x65
,
0x77
,
0x6c
,
0x72
,
0x2d
,
0x69
,
0x72
,
0x31
,
0x6e
,
0x65
,
0x70
,
0x72
,
0x74
,
0x76
,
0x6c
,
0x2e
,
0x72
,
0x65
,
0x72
,
0x6c
,
0x73
,
0x6c
,
0x2e
,
0x2e
,
0x72
,
0x2d
,
0x6e
,
0x63
,
0x32
,
0x2e
,
0x65
,
0x2d
,
0x65
,
0x69
,
0x2d
,
0x65
,
0x70
,
0x6e
,
0x72
,
0x72
,
0x32
,
0x2e
,
0x73
,
0x70
,
0x77
,
0x65
,
0x73
,
0x77
,
0x73
,
0x40
,
0x40
,
0x73
,
0x63
,
0x2e
,
0x65
,
0x76
,
0x70
,
0x65
,
0x69
,
0x65
,
0x70
,
0x73
,
0x40
,
0x65
,
0x73
,
0x2d
,
0x2d
,
0x2e
,
0x2e
,
0x73
,
0x65
,
0x6f
,
0x65
,
0x65
,
0x6d
,
0x76
,
0x70
,
0x6d
,
0x69
,
0x70
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x6e
,
0x72
,
0x72
,
0x72
,
0x6d
,
0x73
,
0x6f
,
0x73
,
0x72
,
0x72
,
0x72
,
0x77
,
0x70
,
0x65
,
0x69
,
0x72
,
0x73
,
0x6e
,
0x69
,
0x65
,
0x65
,
0x74
,
0x65
,
0x69
,
0x40
,
0x63
,
0x69
,
0x70
,
0x6c
,
0x6e
,
0x2d
,
0x65
,
0x69
,
0x72
,
0x63
,
0x6c
,
0x72
,
0x2e
,
0x36
,
0x69
,
0x72
,
0x6c
,
0x6c
,
0x2d
,
0x6f
,
0x76
,
0x69
,
0x6f
,
0x2d
,
0x6d
,
0x6c
,
0x72
,
0x72
,
0x2e
,
0x70
,
0x73
,
0x6d
,
0x6f
,
0x2e
,
0x6e
,
0x69
,
0x65
,
0x65
,
0x2d
,
0x6d
,
0x76
,
0x6e
,
0x69
,
0x73
,
0x73
,
0x73
,
0x74
,
0x63
,
0x65
,
0x76
,
0x2e
,
0x77
,
0x2d
,
0x36
,
0x73
,
0x69
,
0x2d
,
0x72
,
0x72
,
0x6c
,
0x36
,
0x74
,
0x72
,
0x6d
,
0x65
,
0x2d
,
0x65
,
0x2e
,
0x6d
,
0x31
,
0x72
,
0x6f
,
0x74
,
0x76
,
0x31
,
0x65
,
0x6d
,
0x69
,
0x72
,
0x69
,
0x69
,
0x2d
,
0x72
,
0x73
,
0x72
,
0x72
,
0x76
,
0x31
,
0x6e
,
0x2d
,
0x69
,
0x6e
,
0x77
,
0x70
,
0x69
,
0x72
,
0x6e
,
0x76
,
0x74
,
0x6f
,
0x65
,
0x63
,
0x6f
,
0x73
,
0x65
,
0x73
,
0x72
,
0x69
,
0x69
,
0x40
,
0x6e
,
0x65
,
0x65
,
0x65
,
0x65
,
0x77
,
0x70
,
0x70
,
0x6e
,
0x72
,
0x6e
,
0x65
,
0x72
,
0x32
,
0x65
,
0x2d
,
0x77
,
0x69
,
0x6e
,
0x70
,
0x69
,
0x6f
,
0x76
,
0x77
,
0x72
,
0x74
,
0x77
,
0x6e
,
0x72
,
0xfe
,
0x98
,
0xf3
,
0xb4
,
0xff
,
0x3f
,
0x2e
,
0xdb
,
0x59
,
0xbd
,
0x32
,
0x02
,
0x6a
,
0x44
,
0x03
,
0x67
,
0x9e
,
0xe1
,
0x98
,
0x97
,
0xed
,
0x67
,
0x6d
,
0xb0
,
0x8f
,
0xa9
,
0xb6
,
0xf8
,
0x4d
,
0x92
,
0x35
,
0x19
,
0x72
,
0x72
,
0x65
,
0x74
,
0x73
,
0x6e
,
0x65
,
0x65
,
0x69
,
0x36
,
0x72
,
0x73
,
0x2d
,
0x70
,
0x2d
,
0x2d
,
0x69
,
0x6e
,
0x72
,
0x65
,
0x32
,
0x72
,
0x77
,
0x72
,
0x73
,
0x77
,
0x73
,
0x70
,
0x2d
,
0x2d
,
0x69
,
0x6c
,
0x70
,
0x74
,
0x65
,
0x69
,
0x72
,
0x74
,
0x6e
,
0x76
,
0x65
,
0x76
,
0x76
,
0x69
,
0x69
,
0x65
,
0x70
,
0x6e
,
0x73
,
0x6e
,
0x36
,
0x76
,
0x70
,
0x76
,
0x6c
,
0x6c
,
0x70
,
0x6e
,
0x6e
,
0x74
,
0x2e
,
0x6f
,
0x32
,
0x74
,
0x76
,
0x74
,
0x40
,
0x72
,
0x6e
,
0x72
,
0x74
,
0x74
,
0x2d
,
0x6f
,
0x72
,
0x73
,
0x32
,
0x72
,
0x32
,
0x72
,
0x70
,
0x65
,
0x65
,
0x6e
,
0x72
,
0x70
,
0x73
,
0x72
,
0x69
,
0x74
,
0x74
,
0x6e
,
0x72
,
0x6c
,
0x31
,
0x74
,
0x77
,
0x31
,
0x63
,
0x63
,
0x74
,
0x69
,
0x72
,
0x69
,
0x72
,
0x70
,
0x31
,
0x74
,
0x72
,
0x76
,
0x65
,
0x72
,
0x65
,
0x6c
,
0x76
,
0x6d
,
0x72
,
0x6c
,
0x69
,
0x72
,
0x65
,
0x76
,
0x69
,
0x6f
,
0x69
,
0x6c
,
0x74
,
0x6e
,
0x65
,
0x69
,
0x77
,
0x73
,
0x70
,
0x69
,
0x72
,
0x2d
,
0x65
,
0x74
,
0x2e
,
0x65
,
0x65
,
0x6d
,
0x72
,
0x31
,
0x2d
,
0x72
,
0x36
,
0x65
,
0x2d
,
0x69
,
0x6d
,
0x36
,
0x6e
,
0x72
,
0x6d
,
0x6c
,
0x72
,
0x72
,
0x65
,
0x65
,
0x6e
,
0x31
,
0x6e
,
0x40
,
0x72
,
0x40
,
0x6f
,
0x73
,
0x6d
,
0x36
,
0x2e
,
0x72
,
0x65
,
0x36
,
0x74
,
0x77
,
0x65
,
0x65
,
0x73
,
0x36
,
0x76
,
0x6c
,
0x6f
,
0x2d
,
0x36
,
0x6d
,
0x36
,
0x70
,
0x32
,
0x74
,
0x6d
,
0x65
,
0x6d
,
0x69
,
0x65
,
0x65
,
0x69
,
0x76
,
0x69
,
0x74
,
0x2d
,
0x63
,
0x2d
,
0x6e
,
0x32
,
0x72
,
0x63
,
0x2d
,
0x77
,
0x72
,
0x74
,
0x72
,
0x70
,
0x6e
,
0x76
,
0x6f
,
0x72
,
0x40
,
0x65
,
0x65
,
0x6d
,
0x77
,
0x2d
,
0x2d
,
0x74
,
0x6e
,
0x73
,
0x76
,
0x65
,
0x69
,
0x69
,
0x72
,
0x6f
,
0x65
,
0x70
,
0x69
,
0x6d
,
0x76
,
0x69
,
0x65
,
0x72
,
0x2d
,
0x74
,
0x2d
,
0x69
,
0x65
,
0x72
,
0x69
,
0x6f
,
0x72
,
0x72
,
0x69
,
0x76
,
0x72
,
0x77
,
0x69
,
0x2e
,
0x77
,
0x69
,
0x70
,
0x69
,
0x6d
,
0x36
,
0x72
,
0x76
,
0x65
,
0x76
,
0x73
,
0x6e
,
0x72
,
0x65
,
0x2e
,
0x76
,
0x2d
,
0x76
,
0x6f
,
0x2d
,
0x65
,
0x73
,
0x72
,
0x74
,
0x36
,
0x2d
,
0x6f
,
0x70
,
0x73
,
0x74
,
0x74
,
0x77
,
0x6c
,
0x2d
,
0x65
,
0x72
,
0x6e
,
0x65
,
0x6c
,
0x72
,
0x32
,
0x2d
,
0x72
,
0x69
,
0x6d
,
0x6e
,
0x72
,
0x6c
,
0x6f
,
0x65
,
0x36
,
0x31
,
0x65
,
0x65
,
0x69
,
0x73
,
0x31
,
0x74
,
0x69
,
0x69
,
0x65
,
0x40
,
0x69
,
0x6e
,
0x2d
,
0x63
,
0x40
,
0x31
,
0x70
,
0x65
,
0x6e
,
0x2d
,
0x69
,
0x72
,
0x65
,
0x65
,
0x76
,
0x65
,
0x70
,
0x72
,
0x6c
,
0x2d
,
0x6e
,
0x73
,
0x69
,
0x65
,
0x65
,
0x6e
,
0x2e
,
0x63
,
0x6c
,
0x72
,
0x65
,
0x2d
,
0x2e
,
0x6d
,
0x72
,
0x76
,
0x70
,
0x69
,
0x6d
,
0x40
,
0x32
,
0x77
,
0x72
,
0x6e
,
0x72
,
0x6c
,
0x36
,
0x72
,
0x31
,
0x2d
,
0x73
,
0x74
,
0x2d
,
0x69
,
0x63
,
0x40
,
0x70
,
0x32
,
0x65
,
0x31
,
0x69
,
0x69
,
0x65
,
0x72
,
0x63
,
0x74
,
0x72
,
0x74
,
0x77
,
0x6e
,
0x69
,
0x72
,
0x65
,
0x76
,
0x65
,
0x77
,
0x69
,
0x69
,
0x73
,
0x6e
,
0x77
,
0x77
,
0x73
,
0x6f
,
0x69
,
0x70
,
0x73
,
0x2d
,
0x65
,
0x65
,
0x73
,
0x65
,
0x77
,
0x2d
,
0x73
,
0x72
,
0x6d
,
0x65
,
0x32
,
0x6e
,
0x73
,
0x36
,
0x65
,
0x72
,
0x77
,
0x70
,
0x65
,
0x69
,
0x2d
,
0x2d
,
0x74
,
0x6f
,
0x6f
,
0x36
,
0x63
,
0x74
,
0x72
,
0x63
,
0x77
,
0x69
,
0x2e
,
0x31
,
0x6c
,
0x65
,
0x77
,
0x72
,
0x65
,
0x76
,
0x74
,
0x2d
,
0x77
,
0x2e
,
0x76
,
0x72
,
0x6e
,
0x36
,
0x70
,
0x69
,
0x2e
,
0x6e
,
0x72
,
0x77
,
0x69
,
0x65
,
0x74
,
0x2d
,
0x6e
,
0x63
,
0x6e
,
0x70
,
0x2d
,
0x6e
,
0x2e
,
0x6d
,
0x69
,
0x65
,
0x63
,
0x65
,
0x2d
,
0x76
,
0x70
,
0x73
,
0x31
,
0x73
,
0x2d
,
0x76
,
0x6e
,
0x6e
,
0x6c
,
0x2d
,
0x6c
,
0x2d
,
0x65
,
0x6e
,
0x73
,
0x6c
,
0x65
,
0x74
,
0x70
,
0x65
,
0x2d
,
0x6e
,
0x77
,
0x76
,
0x40
,
0x69
,
0x40
,
0x63
,
0x6f
,
0x72
,
0x32
,
0x6d
,
0x31
,
0x72
,
0x36
,
0x69
,
0x73
,
0x72
,
0x70
,
0x65
,
0x2d
,
0x6c
,
0x2e
,
0x72
,
0x74
,
0x74
,
0x65
,
0x69
,
0x6f
,
0x69
,
0x2d
,
0x2d
,
0x65
,
0x6f
,
0x65
,
0x74
,
0x72
,
0x69
,
0x76
,
0x72
,
0x72
,
0x65
,
0x69
,
0x76
,
0x69
,
0x69
,
0x6e
,
0x31
,
0x65
,
0x76
,
0x72
,
0x73
,
0x77
,
0x72
,
0x2d
,
0x69
,
0x65
,
0x69
,
0x70
,
0x65
,
0x6e
,
0x6e
,
0x65
,
0x65
,
0x6e
,
0x2d
,
0x72
,
0x76
,
0x72
,
0x6c
,
0x2e
,
0x70
,
0x76
,
0x6e
,
0x69
,
0x72
,
0x70
,
0x73
,
0x2d
,
0x69
,
0x74
,
0x76
,
0x72
,
0x70
,
0x65
,
0x63
,
0x72
,
0x70
,
0x6e
,
0x36
,
0x6c
,
0x74
,
0x72
,
0x72
,
0x72
,
0x73
,
0x65
,
0x40
,
0x63
,
0x6d
,
0x63
,
0x32
,
0x65
,
0x32
,
0x69
,
0x6e
,
0x77
,
0x65
,
0x74
,
0x72
,
0x77
,
0x40
,
0x69
,
0x65
,
0x70
,
0x31
,
0x36
,
0x72
,
0x73
,
0x2d
,
0x72
,
0x72
,
0x32
,
0x72
,
0x6c
,
0x77
,
0x6e
,
0x6f
,
0x77
,
0x6c
,
0x74
,
0x72
,
0x2d
,
0x6e
,
0x65
,
0x70
,
0x6c
,
0x72
,
0x6f
,
0x69
,
0x2d
,
0x2d
,
0x69
,
0x36
,
0x69
,
0x69
,
0x76
,
0x69
,
0x69
,
0x6d
,
0x72
,
0x73
,
0x6f
,
0x6d
,
0x74
,
0x70
,
0x76
,
0x6d
,
0x6d
,
0x69
,
0x72
,
0x70
,
0x70
,
0x2d
,
0x31
,
0x63
,
0x6c
,
0x65
,
0x65
,
0x6e
,
0x2d
,
0x77
,
0x74
,
0x73
,
0x6c
,
0x72
,
0x6e
,
0x65
,
0x65
,
0x2d
,
0x6c
,
0x69
,
0x2d
,
0x6e
,
0x74
,
0x70
,
0x72
,
0x77
,
0x77
,
0x65
,
0x65
,
0x65
,
0x2d
,
0x76
,
0x6e
,
0x72
,
0x69
,
0x69
,
0x73
,
0x65
,
0x74
,
0x73
,
0x76
,
0x72
,
0x72
,
0x72
,
0x69
,
0x72
,
0x73
,
0x72
,
0x6f
,
0x2e
,
0x77
,
0x2d
,
0x2d
,
0x6c
,
0x6e
,
0x65
,
0x65
,
0x6d
,
0x73
,
0x2e
,
0x72
,
0x65
,
0x73
,
0x40
,
0x69
,
0x32
,
0x69
,
0x32
,
0x6e
,
0x65
,
0x32
,
0x65
,
0x74
,
0x6d
,
0x65
,
0x74
,
0x36
,
0x6e
,
0x72
,
0x32
,
0x6e
,
0x65
,
0x69
,
0x32
,
0x6f
,
0x70
,
0x72
,
0x72
,
0x65
,
0x72
,
0x72
,
0x69
,
0x6e
,
0x6d
,
0x69
,
0x70
,
0x6c
,
0x6c
,
0x65
,
0x31
,
0x72
,
0x72
,
0x73
,
0x72
,
0x70
,
0x73
,
0x72
,
0x65
,
0x65
,
0x6e
,
0x76
,
0x69
,
0x6d
,
0x65
,
0x6c
,
0x65
,
0x31
,
0x74
,
0x74
,
0x72
,
0x63
,
0x2e
,
0x69
,
0x65
,
0x2d
,
0x6d
,
0x72
,
0x70
,
0x6e
,
0x6c
,
0x65
,
0x31
,
0x73
,
0x73
,
0x40
,
0x74
,
0x72
,
0x73
,
0x2e
,
0x74
,
0x6e
,
0x77
,
0x6c
,
0x6f
,
0x70
,
0x77
,
0x76
,
0x73
,
0x72
,
0x69
,
0x77
,
0x69
,
0x6e
,
0x69
,
0x2d
,
0x72
,
0x70
,
0x70
,
0x73
,
0x2e
,
0x76
,
0x73
,
0x65
,
0x72
,
0x72
,
0x74
,
0x2d
,
0x72
,
0x65
,
0x76
,
0x69
,
0x77
,
0x72
,
0x65
,
0x2d
,
0x72
,
0x69
,
0x36
,
0x77
,
0x77
,
0x77
,
0x40
,
0x2d
,
0x6d
,
0x69
,
0x74
,
0x72
,
0x2d
,
0x32
,
0x6f
,
0x76
,
0x72
,
0x2d
,
0x2d
,
0x65
,
0x2e
,
0x2e
,
0x72
,
0x6e
,
0x32
,
0x74
,
0x6c
,
0x6e
,
0x6c
,
0x2e
,
0x6d
,
0x2d
,
0x6f
,
0x65
,
0x72
,
0x2d
,
0x6e
,
0x65
,
0x65
,
0x69
,
0x40
,
0x69
,
0x77
,
0x65
,
0x6c
,
0x2d
,
0x69
,
0x69
,
0x65
,
0x72
,
0x72
,
0x32
,
0x40
,
0x73
,
0x65
,
0x36
,
0x76
,
0x73
,
0x72
,
0x69
,
0x63
,
0x77
,
0x72
,
0x6c
,
0x72
,
0x6e
,
0x74
,
0x2d
,
0x65
,
0x69
,
0x72
,
0x70
,
0x6d
,
0x65
,
0x6c
,
0x73
,
0x65
,
0x6c
,
0x32
,
0x2d
,
0x73
,
0x70
,
0x2d
,
0x31
,
0x72
,
0x74
,
0x2e
,
0x65
,
0x74
,
0x72
,
0x74
,
0x72
,
0x70
,
0x69
,
0x40
,
0x36
,
0x2d
,
0x74
,
0x72
,
0x6c
,
0x2d
,
0x6e
,
0x72
,
0x6e
,
0x6d
,
0x63
,
0x76
,
0x74
,
0x6d
,
0x70
,
0x32
,
0x70
,
0x69
,
0x69
,
0x2d
,
0x73
,
0x72
,
0x74
,
0x65
,
0x74
,
0x74
,
0x70
,
0x2d
,
0x31
,
0x6c
,
0x77
,
0x65
,
0x72
,
0x70
,
0x73
,
0x36
,
0x6c
,
0x72
,
0x72
,
0x65
,
0x65
,
0x76
,
0x69
,
0x2e
,
0x6e
,
0x72
,
0x72
,
0x36
,
0x65
,
0x69
,
0x72
,
0x69
,
0x40
,
0x6c
,
0x74
,
0x6c
,
0x72
,
0x2d
,
0x70
,
0x74
,
0x76
,
0x74
,
0x6f
,
0x72
,
0x31
,
0x73
,
0x70
,
0x65
,
0x74
,
0x69
,
0x6e
,
0x69
,
0x6c
,
0x70
,
0x72
,
0x65
,
0x70
,
0x72
,
0x73
,
0x69
,
0x2d
,
0x6d
,
0x63
,
0x2d
,
0x72
,
0x2d
,
0x36
,
0x73
,
0x6e
,
0x2d
,
0x6d
,
0x69
,
0x76
,
0x76
,
0x6d
,
0x74
,
0x72
,
0x77
,
0x74
,
0x2e
,
0x6d
,
0x65
,
0x2d
,
0x65
,
0x6d
,
0x2e
,
0x6c
,
0x73
,
0x6e
,
0x6f
,
0x76
,
0x31
,
0x74
,
0x65
,
0x65
,
0x31
,
0x69
,
0x65
,
0x32
,
0x2d
,
0x74
,
0x2d
,
0x77
,
0x77
,
0x77
,
0x2e
,
0x70
,
0x65
,
0x6e
,
0x2d
,
0x69
,
0x32
,
0x72
,
0x73
,
0x74
,
0x65
,
0x65
,
0x69
,
0x73
,
0x77
,
0x77
,
0x2e
,
0x6e
,
0x72
,
0x65
,
0x70
,
0x76
,
0x40
,
0x77
,
0x65
,
0x2d
,
0x70
,
0x36
,
0x2d
,
0x74
,
0x65
,
0x2d
,
0x69
,
0x74
,
0x76
,
0x69
,
0x6e
,
0x65
,
0x2d
,
0x65
,
0x73
,
0x31
,
0x36
,
0x69
,
0x31
,
0x74
,
0x76
,
0x65
,
0x77
,
0x6c
,
0x6e
,
0x6c
,
0x32
,
0x6e
,
0x70
,
0x73
,
0x69
,
0x69
,
0x65
,
0x72
,
0x2d
,
0x6e
,
0x2d
,
0x65
,
0x65
,
0x6c
,
0x32
,
0x77
,
0x72
,
0x69
,
0x70
,
0x76
,
0x32
,
0x65
,
0x6c
,
0x36
,
0x65
,
0x69
,
0x31
,
0x6e
,
0x72
,
0x6c
,
0x6d
,
0x65
,
0x65
,
0x77
,
0x6e
,
0x2d
,
0x32
,
0x77
,
0x69
,
0x65
,
0x6d
,
0x74
,
0x77
,
0x40
,
0x65
,
0x6e
,
0x77
,
0x73
,
0x65
,
0x72
,
0x6c
,
0x40
,
0x65
,
0x65
,
0x72
,
0x72
,
0x74
,
0x6e
,
0x6c
,
0x6d
,
0x73
,
0x69
,
0x76
,
0x72
,
0x31
,
0x2d
,
0x65
,
0x36
,
0x72
,
0x2d
,
0x70
,
0x69
,
0x6e
,
0x63
,
0x31
,
0x2d
,
0x69
,
0x6e
,
0x65
,
0x2d
,
0x65
,
0x2e
,
0x77
,
0x2d
,
0x72
,
0x76
,
0x63
,
0x69
,
0x2d
,
0x6d
,
0x70
,
0x2d
,
0x6c
,
0x69
,
0x63
,
0x69
,
0x77
,
0x6e
,
0x69
,
0x77
,
0x36
,
0x72
,
0x69
,
0x72
,
0x2e
,
0x74
,
0x72
,
0x6e
,
0x65
,
0x6f
,
0x73
,
0x2d
,
0x2e
,
0x72
,
0x63
,
0x76
,
0x74
,
0x36
,
0x65
,
0x72
,
0x65
,
0x6d
,
0x32
,
0x72
,
0x70
,
0x40
,
0x65
,
0x74
,
0x6e
,
0x32
,
0x70
,
0x2d
,
0x31
,
0x40
,
0x6c
,
0x65
,
0x6c
,
0x76
,
0x69
,
0x69
,
0x76
,
0x76
,
0x73
,
0x31
,
0x6e
,
0x65
,
0x74
,
0x65
,
0x6d
,
0x69
,
0x2d
,
0x72
,
0x74
,
0x74
,
0x6c
,
0x31
,
0x74
,
0x6e
,
0x6e
,
0x65
,
0x77
,
0x36
,
0x69
,
0x69
,
0x72
,
0x6e
,
0x2d
,
0x2d
,
0x2d
,
0x72
,
0x73
,
0x76
,
0x72
,
0x72
,
0x65
,
0x72
,
0x65
,
0x72
,
0x2d
,
0x6c
,
0x76
,
0x77
,
0x63
,
0x77
,
0x72
,
0x6d
,
0x72
,
0x2e
,
0x65
,
0x73
,
0x32
,
0x72
,
0x36
,
0x77
,
0x72
,
0x72
,
0x6d
,
0x74
,
0x2d
,
0x72
,
0x2e
,
0x73
,
0x73
,
0x65
,
0x77
,
0x6e
,
0x65
,
0x69
,
0x65
,
0x2d
,
0x65
,
0x77
,
0x6f
,
0x74
,
0x72
,
0x32
,
0x40
,
0x6e
,
0x72
,
0x69
,
0x6e
,
0x32
,
0x70
,
0x73
,
0x72
,
0x40
,
0x2d
,
0x65
,
0x69
,
0x65
,
0x77
,
0x65
,
0x70
,
0x40
,
0x36
,
0x72
,
0x6c
,
0x6d
,
0x73
,
0x69
,
0x72
,
0x72
,
0x74
,
0x36
,
0x6c
,
0x76
,
0x65
,
0x76
,
0x2d
,
0x74
,
0x6c
,
0x72
,
0x72
,
0x74
,
0x6e
,
0x73
,
0x74
,
0x69
,
0x72
,
0x6d
,
0x40
,
0x2d
,
0x6e
,
0x70
,
0x73
,
0x2d
,
0x6d
,
0x72
,
0x72
,
0x70
,
0x65
,
0x65
,
0x36
,
0x6e
,
0x77
,
0x2d
,
0x69
,
0x2d
,
0x32
,
0x72
,
0x6d
,
0x72
,
0x6c
,
0x32
,
0x6c
,
0x73
,
0x6d
,
0x65
,
0x36
,
0x69
,
0x69
,
0x72
,
0x77
,
0x74
,
0x6f
,
0x72
,
0x6d
,
0x6d
,
0x69
,
0x65
,
0x73
,
0x63
,
0x65
,
0x74
,
0x74
,
0x72
,
0x65
,
0x72
,
0x2e
,
0x6e
,
0x73
,
0x65
,
0x76
,
0x6c
,
0x76
,
0x77
,
0x72
,
0x6e
,
0x6c
,
0x32
,
0x2d
,
0x73
,
0x65
,
0x73
,
0x2e
,
0x76
,
0x72
,
0x65
,
0x2d
,
0x72
,
0x77
,
0x2d
,
0x77
,
0x70
,
0x65
,
0x6c
,
0x72
,
0x6e
,
0x2e
,
0x31
,
0x73
,
0x2e
,
0x72
,
0x6d
,
0x6d
,
0x69
,
0x74
,
0x74
,
0x6d
,
0x32
,
0x70
,
0x76
,
0x76
,
0x31
,
0x76
,
0x77
,
0x65
,
0x6e
,
0x73
,
0x63
,
0x2e
,
0x2d
,
0x69
,
0x6e
,
0x69
,
0x77
,
0x6e
,
0x65
,
0x6d
,
0x2d
,
0x72
,
0x6e
,
0x74
,
0x6e
,
0x40
,
0x73
,
0x2d
,
0x74
,
0x74
,
0x65
,
0x72
,
0x2d
,
0x2d
,
0x69
,
0x73
,
0x70
,
0x69
,
0x6c
,
0x72
,
0x76
,
0x6d
,
0x74
,
0x6e
,
0x73
,
0x74
,
0x72
,
0x65
,
0x63
,
0x69
,
0x65
,
0x65
,
0x72
,
0x6f
,
0x6e
,
0x72
,
0x72
,
0x6c
,
0x6e
,
0x6e
,
0x65
,
0x6d
,
0x74
,
0x6c
,
0x74
,
0x65
,
0x69
,
0x2d
,
0x6f
,
0x69
,
0x2e
,
0x6e
,
0x63
,
0x65
,
0x6c
,
0x40
,
0x70
,
0x2d
,
0x2d
,
0x74
,
0x73
,
0x74
,
0x40
,
0x72
,
0x74
,
0x6c
,
0x72
,
0x6e
,
0x6f
,
0x73
,
0x65
,
0x74
,
0x6d
,
0x69
,
0x32
,
0x72
,
0x65
,
0x77
,
0x6e
,
0x76
,
0x74
,
0x73
,
0x2d
,
0x72
,
0x6e
,
0x69
,
0x73
,
0x40
,
0x36
,
0x2d
,
0x6d
,
0x2e
,
0x65
,
0x6d
,
0x40
,
0x69
,
0x72
,
0x72
,
0x70
,
0x65
,
0x72
,
0x76
,
0x6c
,
0x65
,
0x76
,
0x72
,
0x65
,
0x69
,
0x65
,
0x69
,
0x6e
,
0x72
,
0x2d
,
0x63
,
0x72
,
0x69
,
0x6e
,
0x72
,
0x69
,
0x6e
,
0x69
,
0x70
,
0x6e
,
0x2d
,
0x69
,
0x6c
,
0x72
,
0x2d
,
0x65
,
0x2d
,
0x72
,
0x6f
,
0x65
,
0x6e
,
0x76
,
0x6e
,
0x40
,
0x2d
,
0x65
,
0x72
,
0x72
,
0x6f
,
0x6f
,
0x72
,
0x6c
,
0x65
,
0x74
,
0x73
,
0x72
,
0x70
,
0x77
,
0x69
,
0x69
,
0x6d
,
0x6c
,
0x6d
,
0x6e
,
0x2d
,
0x65
,
0x65
,
0x65
,
0x74
,
0x6c
,
0x2d
,
0x74
,
0x6f
,
0x2d
,
0x74
,
0x70
,
0x72
,
0x6e
,
0x73
,
0x72
,
0x69
,
0x72
,
0x2e
,
0x6d
,
0x69
,
0x65
,
0x65
,
0x32
,
0x70
,
0x6c
,
0x6c
,
0x65
,
0x77
,
0x2d
,
0x72
,
0x6f
,
0x70
,
0x76
,
0x65
,
0x2d
,
0x72
,
0x69
,
0x6d
,
0x72
,
0x36
,
0x40
,
0x6d
,
0x72
,
0x6c
,
0x6d
,
0x77
,
0x6c
,
0x6e
,
0x69
,
0x72
,
0x6d
,
0x76
,
0x73
,
0x2e
,
0x73
,
0x72
,
0x77
,
0x73
,
0x76
,
0x2d
,
0x73
,
0x76
,
0x6d
,
0x76
,
0x65
,
0x69
,
0x76
,
0x63
,
0x65
,
0x72
,
0x31
,
0x72
,
0x69
,
0x76
,
0x72
,
0x65
,
0x65
,
0x2d
,
0x73
,
0x6d
,
0x31
,
0x72
,
0x6e
,
0x72
,
0x2d
,
0x2d
,
0x36
,
0x72
,
0x73
,
0x77
,
0x2d
,
0x77
,
0x36
,
0x76
,
0x72
,
0x6d
,
0x65
,
0x2d
,
0x72
,
0x70
,
0x2d
,
0x74
,
0x32
,
0x6c
,
0x63
,
0x6d
,
0x6f
,
0x6e
,
0x2e
,
0x2d
,
0x69
,
0x65
,
0x73
,
0x6d
,
0x65
,
0x73
,
0x6e
,
0x6d
,
0x6c
,
0x65
,
0x6e
,
0x72
,
0x72
,
0x72
,
0x32
,
0x70
,
0x65
,
0x73
,
0x6c
,
0x6d
,
0x70
,
0x6d
,
0x72
,
0x6f
,
0x65
,
0x6c
,
0x76
,
0x73
,
0x63
,
0x73
,
0x65
,
0x6c
,
0x2d
,
0x6e
,
0x72
,
0x65
,
0x65
,
0x72
,
0x2d
,
0x70
,
0x6d
,
0x69
,
0x69
,
0x65
,
0x2d
,
0x6c
,
0x72
,
0x69
,
0x6c
,
0x2d
,
0x74
,
0x65
,
0x65
,
0x69
,
0x31
,
0x72
,
0x69
,
0x6d
,
0x69
,
0x74
,
0x74
,
0x73
,
0x65
,
0x32
,
0x2d
,
0x6f
,
0x2d
,
0x70
,
0x72
,
0x6f
,
0x65
,
0x69
,
0x73
,
0x32
,
0x6d
,
0x65
,
0x2d
,
0x65
,
0x74
,
0x6d
,
0x6d
,
0x73
,
0x76
,
0x6c
,
0x69
,
0x65
,
0x2d
,
0x73
,
0x74
,
0x65
,
0x65
,
0x72
,
0x72
,
0x74
,
0x31
,
0x2d
,
0x76
,
0x73
,
0x2e
,
0x2d
,
0x2d
,
0x72
,
0x76
,
0x77
,
0x65
,
0x72
,
0x72
,
0x40
,
0x6e
,
0x6c
,
0x6d
,
0x72
,
0x74
,
0x73
,
0x72
,
0x72
,
0x65
,
0x65
,
0x2d
,
0x6f
,
0x74
,
0x70
,
0x63
,
0xb8
,
0xa1
,
0x11
,
0x6e
,
0xd7
,
0x74
,
0x16
,
0x7f
,
0xb4
,
0xba
,
0x40
,
0x93
,
0x98
,
0x00
,
0x71
,
0xcc
,
0x42
,
0xa7
,
0x2f
,
0x28
,
0x69
,
0xe7
,
0x31
,
0x48
,
0x22
,
0xa0
,
0xe1
,
0x45
,
0xe3
,
0xf7
,
0x7f
,
0x3a
};
char
c2
[]
=
{
0x5b
,
0x52
,
0xf1
,
0x2d
,
0x94
,
0xcb
,
0xb0
,
0x86
,
0xd8
,
0xd3
,
0xe3
,
0x20
,
0x88
,
0x47
,
0xcf
,
0x5a
,
0x49
,
0xd2
,
0x11
,
0x30
,
0x92
,
0x17
,
0x8d
,
0xf4
,
0x99
,
0xf7
,
0x6c
,
0x8a
,
0xbc
,
0xe7
,
0x5c
,
0x58
,
0x6a
,
0x65
,
0xed
,
0x81
,
0xdc
,
0xdd
,
0xcf
,
0x83
,
0xcd
,
0xa4
,
0xed
,
0xa2
,
0x5e
,
0x63
,
0xd9
,
0x98
,
0xf6
,
0x2e
,
0x15
,
0x76
,
0x9a
,
0xc8
,
0x8c
,
0x42
,
0x54
,
0x44
,
0xf4
,
0x47
,
0xf5
,
0x96
,
0xc9
,
0x6e
,
0x23
,
0x09
,
0x1a
,
0x0d
,
0xe3
,
0x04
,
0xe6
,
0xed
,
0x48
,
0x49
,
0x62
,
0x31
,
0xe8
,
0x36
,
0x04
,
0xed
,
0xb9
,
0xe7
,
0xa6
,
0x35
,
0x4d
,
0xcd
,
0xe3
,
0xfa
,
0xa0
,
0xc8
,
0x34
,
0xbd
,
0x62
,
0x7b
,
0xbc
,
0xbe
,
0x1c
,
0x5b
,
0x69
,
0x1f
,
0x9c
,
0x30
,
0x20
,
0x48
,
0x52
,
0xd1
,
0xb6
,
0x5e
,
0xa2
,
0x6e
,
0x06
,
0x94
,
0x72
,
0x10
,
0x56
,
0x7c
,
0x94
,
0xa5
,
0xc0
,
0xaa
,
0xea
,
0x48
,
0x61
,
0x03
,
0x14
,
0x94
,
0x09
,
0x77
,
0xd9
,
0xa7
,
0xfe
,
0x78
,
0x17
,
0x95
,
0x4f
,
0x7e
,
0xb0
,
0x32
,
0x63
,
0x02
,
0x17
,
0x47
,
0x1e
,
0x7d
,
0xb2
,
0x7d
,
0xb5
,
0xcb
,
0x9f
,
0x61
,
0x65
,
0xed
,
0x03
,
0xd2
,
0xdb
,
0xd1
,
0xb3
,
0xd6
,
0x1a
,
0xf5
,
0x67
,
0x0b
,
0x8b
,
0x6b
,
0x44
,
0xf2
,
0x62
,
0x42
,
0xc2
,
0x4d
,
0xe1
,
0x5c
,
0xfe
,
0xc6
,
0x19
,
0x2b
,
0xfb
,
0x03
,
0x0f
,
0x1b
,
0x89
,
0x08
,
0x86
,
0x40
,
0xca
,
0x45
,
0x15
,
0xda
,
0x65
,
0xcc
,
0x73
,
0x00
,
0x49
,
0x4e
,
0x48
,
0x21
,
0x25
,
0xc6
,
0xde
,
0x26
,
0x21
,
0x1d
,
0xea
,
0x3c
,
0x11
,
0xac
,
0xef
,
0x34
,
0x4c
,
0x96
,
0xcc
,
0x5e
,
0x26
,
0xf3
,
0xcd
,
0x70
,
0x0d
,
0x62
,
0xea
,
0x09
,
0x35
,
0x2b
,
0x1e
,
0x60
,
0xe4
,
0x76
,
0xd3
,
0x65
,
0x01
,
0x8c
,
0xab
,
0xd4
,
0x89
,
0xad
,
0x81
,
0x9d
,
0x04
,
0x01
,
0xd5
,
0x55
,
0x3c
,
0xcb
,
0x32
,
0xe1
,
0xb5
,
0xd4
,
0xda
,
0xb4
,
0xa9
,
0x01
,
0xb2
,
0x10
,
0xc7
,
0xb1
,
0xa9
,
0x54
,
0x66
,
0x1d
,
0xcc
,
0xff
,
0x54
,
0x0b
,
0x84
,
0x37
,
0xe0
,
0x3a
,
0xa5
,
0x68
,
0x80
,
0x87
,
0xbc
,
0x3c
,
0x0f
,
0xda
,
0x7e
,
0x3c
,
0x23
,
0xfc
,
0xd8
,
0xc5
,
0x52
,
0xf7
,
0x22
,
0x12
,
0x05
,
0x9c
,
0x68
,
0x39
,
0xb1
,
0xed
,
0x26
,
0x24
,
0x2b
,
0x7e
,
0x0b
,
0xaf
,
0x9e
,
0x97
,
0x45
,
0x7b
,
0xa9
,
0xbc
,
0x48
,
0x0e
,
0x66
,
0x93
,
0x32
,
0x0d
,
0x6b
,
0xd6
,
0xf0
,
0x4f
,
0x54
,
0x18
,
0xcd
,
0xc9
,
0x8c
,
0xce
,
0xc4
,
0xa2
,
0xff
,
0x1e
,
0x69
,
0x17
,
0x7e
,
0xf4
,
0x99
,
0x09
,
0x68
,
0xa1
,
0x9e
,
0x1f
,
0xbf
,
0x90
,
0xdc
,
0x77
,
0x5d
,
0x50
,
0x2b
,
0x0e
,
0xff
,
0x96
,
0xdc
,
0x21
,
0x2e
,
0x74
,
0x22
,
0x28
,
0x88
,
0xa0
,
0x00
,
0x32
,
0x15
,
0xb0
,
0xfd
,
0xb1
,
0xc9
,
0x75
,
0xb3
,
0x3c
,
0xbd
,
0x89
,
0xc5
,
0xa4
,
0x48
,
0x17
,
0xa9
,
0xc9
,
0x50
,
0x61
,
0x0c
,
0x35
,
0x31
,
0x55
,
0x11
,
0xe3
,
0x23
,
0xe9
,
0x3e
,
0x78
,
0x25
,
0xdc
,
0x50
,
0xe8
,
0x23
,
0x5f
,
0xb7
,
0x3f
,
0xc7
,
0xae
,
0xf0
,
0x82
,
0x35
,
0x46
,
0x34
,
0x63
,
0xcc
,
0x5d
,
0x96
,
0xb8
,
0x6a
,
0x7a
,
0x7f
,
0x54
,
0x27
,
0x1a
,
0xa4
,
0x63
,
0xdd
,
0xb0
,
0xb6
,
0x17
,
0x08
,
0xa1
,
0x2e
,
0x95
,
0x9e
,
0xd4
,
0x9b
,
0x71
,
0x83
,
0x81
,
0x6c
,
0xea
,
0xab
,
0x00
,
0x2e
,
0xca
,
0x60
,
0xc1
,
0x4b
,
0x83
,
0xa7
,
0xab
,
0x47
,
0xe8
,
0x1b
,
0x5a
,
0x78
,
0x4f
,
0xec
,
0xbd
,
0x62
,
0x94
,
0x25
,
0x75
,
0x2e
,
0x64
,
0xe7
,
0x70
,
0x13
,
0xac
,
0xe9
,
0x89
,
0x4f
,
0x1e
,
0x79
,
0xbc
,
0x15
,
0x0c
,
0x8d
,
0x40
,
0xe8
,
0x16
,
0x31
,
0x7c
,
0xb8
,
0xa5
,
0xd7
,
0x21
,
0x39
,
0x93
,
0x9b
,
0xe6
,
0x05
,
0x81
,
0xb6
,
0x20
,
0xa8
,
0x5d
,
0x73
,
0x58
,
0x8b
,
0x66
,
0x92
,
0xac
,
0x23
,
0xa0
,
0xf4
,
0x8c
,
0xab
,
0x58
,
0xae
,
0xb6
,
0x9c
,
0x3c
,
0x4d
,
0x77
,
0x5f
,
0xae
,
0xe2
,
0x57
,
0x89
,
0x8f
,
0xe4
,
0x68
,
0x81
,
0x24
,
0x7d
,
0x3b
,
0x99
,
0x46
,
0x9f
,
0x7b
,
0x9d
,
0xa6
,
0xdd
,
0x99
,
0xcf
,
0xc1
,
0x79
,
0x04
,
0x95
,
0xce
,
0x96
,
0x7a
,
0xd9
,
0xb5
,
0x6e
,
0xcf
,
0xd1
,
0x72
,
0x18
,
0x97
,
0x76
,
0xe2
,
0xb7
,
0x38
,
0x1e
,
0x24
,
0x0b
,
0x09
,
0x00
,
0x8b
,
0x28
,
0x5d
,
0xf8
,
0xd0
,
0x50
,
0x7f
,
0xeb
,
0x3b
,
0x37
,
0x61
,
0x0b
,
0xd3
,
0xff
,
0x65
,
0x7d
,
0x88
,
0x1e
,
0x1d
,
0xbb
,
0x6c
,
0xf5
,
0xf8
,
0xf3
,
0x2b
,
0x51
,
0xd9
,
0x6d
,
0xc9
,
0xbe
,
0xbe
,
0xd1
,
0x94
,
0x0e
,
0x58
,
0x2a
,
0x0a
,
0xe4
,
0xf8
,
0x28
,
0x26
,
0xc3
,
0x74
,
0x87
,
0xd3
,
0x81
,
0x48
,
0x6e
,
0x9b
,
0xd5
,
0xa1
,
0x60
,
0x87
,
0xfc
,
0x1b
,
0x06
,
0x33
,
0x0d
,
0x87
,
0xfa
,
0x9b
,
0xf9
,
0x73
,
0x6b
,
0x0c
,
0xdf
,
0xea
,
0xee
,
0x32
,
0x78
,
0xe0
,
0xf8
,
0x18
,
0x3f
,
0xc3
,
0x3b
,
0x12
,
0x88
,
0x0b
,
0xb2
,
0x4a
,
0x52
,
0x64
,
0x4e
,
0x58
,
0x54
,
0x82
,
0x52
,
0x61
,
0x54
,
0x28
,
0x1b
,
0xf7
,
0x99
,
0x06
,
0xa2
,
0xad
,
0x04
,
0x19
,
0x9f
,
0x2e
,
0x34
,
0xe6
,
0xf0
,
0xee
,
0xeb
,
0x93
,
0x9a
,
0x9c
,
0x73
,
0x86
,
0x23
,
0x6d
,
0x5d
,
0xae
,
0x64
,
0xec
,
0x6f
,
0xf9
,
0x7c
,
0xc7
,
0x46
,
0x96
,
0xdb
,
0x44
,
0xf4
,
0xab
,
0xc9
,
0x67
,
0x61
,
0xb8
,
0xec
,
0xf0
,
0x99
,
0xe0
,
0x4d
,
0x45
,
0xed
,
0xa3
,
0x1c
,
0xe9
,
0x68
,
0x31
,
0x85
,
0xa5
,
0xa1
,
0xba
,
0x08
,
0xdb
,
0x3f
,
0x84
,
0x75
,
0x70
,
0x24
,
0xcd
,
0x49
,
0xd4
,
0x07
,
0xa8
,
0xaa
,
0x52
,
0xd9
,
0x55
,
0x68
,
0x8f
,
0x78
,
0xd2
,
0x5d
,
0x46
,
0x23
,
0x60
,
0x76
,
0xe1
,
0x22
,
0xdc
,
0x2a
,
0xeb
,
0xac
,
0xbc
,
0xeb
,
0xd6
,
0x4c
,
0x0f
,
0xb5
,
0xcb
,
0x47
,
0xce
,
0x43
,
0x59
,
0x1d
,
0x3e
,
0xfc
,
0x7f
,
0x7c
,
0x93
,
0x9e
,
0xef
,
0xcd
,
0x79
,
0x5c
,
0x08
,
0x8e
,
0xeb
,
0xa8
,
0x98
,
0x3e
,
0x95
,
0xd1
,
0x36
,
0x42
,
0x57
,
0xfd
,
0x6d
,
0xdc
,
0xe0
,
0xa3
,
0x3f
,
0x46
,
0x32
,
0xb7
,
0xff
,
0x00
,
0x4f
,
0x7b
,
0x23
,
0x4d
,
0xd0
,
0xe5
,
0xdd
,
0x40
,
0xab
,
0xb2
,
0xcb
,
0x45
,
0x92
,
0x76
,
0x7c
,
0x5b
,
0x98
,
0xc7
,
0xc0
,
0x54
,
0x34
,
0x94
,
0x8e
,
0xbb
,
0x28
,
0xcf
,
0xba
,
0xd9
,
0xa0
,
0xe6
,
0xf3
,
0x65
,
0x61
,
0xd7
,
0x10
,
0xd3
,
0xeb
,
0xce
,
0x21
,
0x6a
,
0xca
,
0x61
,
0xe7
,
0x81
,
0x15
,
0x18
,
0x4e
,
0x71
,
0xb0
,
0x99
,
0x62
,
0xd9
,
0xeb
,
0xd0
,
0x8b
,
0xe9
,
0xdf
,
0x6a
,
0x6d
,
0x59
,
0x0b
,
0x45
,
0x93
,
0x38
,
0xfe
,
0xe6
,
0x6a
,
0xd1
,
0x5f
,
0xb6
,
0xe9
,
0x86
,
0x01
,
0x38
,
0xab
,
0x59
,
0x5c
,
0xd7
,
0xb7
,
0xfa
,
0x81
,
0x8a
,
0xbe
,
0xdc
,
0xeb
,
0x50
,
0x7d
,
0x81
,
0xfa
,
0x1b
,
0x8f
,
0xce
,
0x53
,
0x38
,
0xe4
,
0x8a
,
0x82
,
0xbe
,
0x7d
,
0xdc
,
0xd8
,
0x57
,
0x5a
,
0x48
,
0xa3
,
0x38
,
0x74
,
0x8a
,
0xac
,
0xf2
,
0xfd
,
0xbf
,
0xcc
,
0xd8
,
0x08
,
0x4d
,
0x3e
,
0xae
,
0xa9
,
0x00
,
0x66
,
0x06
,
0xcb
,
0xf3
,
0x50
,
0xcc
,
0x52
,
0xc7
,
0x4b
,
0x16
,
0x33
,
0xa5
,
0xde
,
0x20
,
0xed
,
0x6a
,
0xa7
,
0x58
,
0x5e
,
0x4e
,
0x7e
,
0x29
,
0xab
,
0xb9
,
0x65
,
0x9d
,
0x17
,
0xe0
,
0x1e
,
0x79
,
0x77
,
0xf6
,
0x1e
,
0xa0
,
0xcb
,
0x0c
,
0xf7
,
0xc0
,
0xe4
,
0xf6
,
0x3b
,
0x60
,
0x81
,
0xfe
,
0xed
,
0xd9
,
0x42
,
0xa9
,
0x61
,
0x9d
,
0xa8
,
0xd7
,
0xe8
,
0xaa
,
0x97
,
0xad
,
0xbb
,
0xba
,
0x13
,
0x6e
,
0x05
,
0xa5
,
0xce
,
0x7a
,
0x65
,
0x6f
,
0x55
,
0xe3
,
0xcf
,
0xbc
,
0x67
,
0x14
,
0x64
,
0x57
,
0x9c
,
0x46
,
0x14
,
0xd6
,
0x1d
,
0x39
,
0x1c
,
0xd3
,
0xe8
,
0x98
,
0x20
,
0x5a
,
0x1a
,
0x05
,
0x3b
,
0x27
,
0xd5
,
0x84
,
0xca
,
0xd4
,
0x0b
,
0xc4
,
0x1e
,
0xd8
,
0x46
,
0x29
,
0x48
,
0x95
,
0xdb
,
0xe5
,
0x58
,
0x8a
,
0x51
,
0xc7
,
0x74
,
0x7f
,
0x53
,
0xa8
,
0xbb
,
0x58
,
0xc0
,
0x5b
,
0xe1
,
0xa7
,
0x27
,
0x36
,
0x6c
,
0xa6
,
0x70
,
0xec
,
0x88
,
0xcd
,
0x9a
,
0x70
,
0xe1
,
0xa0
,
0xc7
,
0xdd
,
0x60
,
0x71
,
0xf4
,
0x2a
,
0x51
,
0x98
,
0x8e
,
0xab
,
0xb8
,
0x13
,
0x03
,
0x48
,
0x5f
,
0x44
,
0xf8
,
0x88
,
0xd9
,
0x7d
,
0xd3
,
0xf1
,
0x5f
,
0xc4
,
0x2b
,
0x44
,
0x15
,
0x57
,
0x31
,
0xa4
,
0xa1
,
0xdb
,
0x6d
,
0x2a
,
0x5a
,
0x5a
,
0xf7
,
0xde
,
0xd5
,
0x23
,
0x38
,
0x00
,
0xe5
,
0x5c
,
0x55
,
0xe7
,
0x37
,
0x9c
,
0xcb
,
0x8b
,
0xc0
,
0x33
,
0x42
,
0x68
,
0x23
,
0x84
,
0x7d
,
0x89
,
0x9d
,
0xae
,
0x59
,
0x18
,
0xae
,
0xea
,
0x46
,
0x3f
,
0xac
,
0x57
,
0x0d
,
0x5d
,
0x49
,
0x14
,
0x50
,
0xe5
,
0x70
,
0x17
,
0x73
,
0x09
,
0x11
,
0x93
,
0x6b
,
0x02
,
0x22
,
0xb7
,
0x63
,
0xc9
,
0xe6
,
0xa4
,
0xe3
,
0xb1
,
0xf7
,
0xa6
,
0x58
,
0x8d
,
0x14
,
0xa1
,
0xda
,
0x6a
,
0xb9
,
0x38
,
0xf9
,
0x20
,
0x45
,
0x8c
,
0xe6
,
0x32
,
0x23
,
0x9d
,
0x5f
,
0xba
,
0xcb
,
0xb4
,
0x95
,
0xf9
,
0xa9
,
0x5c
,
0x60
,
0x03
,
0x5a
,
0x8c
,
0xa7
,
0xb9
,
0x65
,
0xa8
,
0x84
,
0x38
,
0xc0
,
0x25
,
0xe6
,
0xa7
,
0xc0
,
0x3b
,
0xbc
,
0x11
,
0xed
,
0x0e
,
0x9a
,
0x6f
,
0xfe
,
0x61
,
0x79
,
0x86
,
0x92
,
0x3a
,
0xce
,
0xe0
,
0xb7
,
0x70
,
0xad
,
0xe0
,
0xcc
,
0x88
,
0x47
,
0xd9
,
0x2a
,
0x3d
,
0x41
,
0x06
,
0x77
,
0x41
,
0xbe
,
0x3f
,
0x55
,
0x31
,
0x54
,
0x10
,
0x14
,
0x5b
,
0xdf
,
0x88
,
0xb2
,
0x9f
,
0xff
,
0x11
,
0xb8
,
0x11
,
0xdc
,
0x5e
,
0x64
,
0xf9
,
0x97
,
0x8a
,
0x26
,
0x6a
,
0x44
,
0xb4
,
0x83
,
0x83
,
0x9b
,
0x81
,
0xaa
,
0xfd
,
0xb5
,
0x8b
,
0x16
,
0x18
,
0x2e
,
0x5c
,
0xe4
,
0x5b
,
0x8f
,
0xdd
,
0x7c
,
0x1f
,
0x33
,
0x2f
,
0xef
,
0x57
,
0x8c
,
0x6a
,
0x3f
,
0x3c
,
0x19
,
0x5e
,
0x73
,
0x64
,
0xc5
,
0xaf
,
0x1d
,
0xa1
,
0xb4
,
0x11
,
0xee
,
0x6b
,
0x7e
,
0x66
,
0xfb
,
0xaa
,
0x03
,
0x17
,
0xe4
,
0xc9
,
0x90
,
0x4b
,
0xf2
,
0x50
,
0x55
,
0x71
,
0xad
,
0x31
,
0x71
,
0x49
,
0xd7
,
0x80
,
0xd1
,
0xa5
,
0x9f
,
0x6d
,
0x71
,
0x28
,
0x2b
,
0x65
,
0xcf
,
0x8d
,
0xb1
,
0x2a
,
0x33
,
0xdc
,
0x93
,
0xff
,
0x86
,
0xd7
,
0xa6
,
0xd0
,
0x46
,
0x66
,
0x32
,
0x3d
,
0x18
,
0x8c
,
0xd3
,
0xda
,
0xf6
,
0x1b
,
0xa0
,
0x2d
,
0x29
,
0xfd
,
0x8d
,
0x57
,
0x2c
,
0x82
,
0xed
,
0x38
,
0x4a
,
0x6f
,
0xc4
,
0x3c
,
0x9a
,
0x61
,
0xcb
,
0xe5
,
0xcf
,
0xd3
,
0x83
,
0xa1
,
0x91
,
0x93
,
0x0d
,
0x75
,
0xfd
,
0x4e
,
0x2c
,
0x83
,
0xa0
,
0x85
,
0x27
,
0x13
,
0x5a
,
0x24
,
0xbd
,
0x08
,
0x1e
,
0xe9
,
0xab
,
0x92
,
0x41
,
0xc2
,
0x3a
,
0xa0
,
0xe1
,
0xfd
,
0x00
,
0xb9
,
0xf8
,
0xca
,
0x0b
,
0x1a
,
0x8e
,
0xf6
,
0x27
,
0x9f
,
0x5a
,
0xf0
,
0x23
,
0x07
,
0xc8
,
0xbf
,
0xf6
,
0x74
,
0xe7
,
0xf8
,
0x67
,
0xfc
,
0x28
,
0x4e
,
0x6a
,
0x6c
,
0xc6
,
0x83
,
0xe3
,
0xf0
,
0x01
,
0xe0
,
0x0f
,
0x2d
,
0xdf
,
0x9e
,
0x4b
,
0x8b
,
0x06
,
0x15
,
0x4c
,
0x9f
,
0xdf
,
0x55
,
0x14
,
0x44
,
0xde
,
0x34
,
0x35
,
0x5a
,
0xcb
,
0xe5
,
0xa7
,
0xb5
,
0x7e
,
0x00
,
0x31
,
0x98
,
0x5f
,
0x51
,
0x11
,
0x37
,
0xe1
,
0xd2
,
0x99
,
0x8f
,
0x70
,
0x13
,
0x40
,
0xa0
,
0xbe
,
0xf8
,
0xde
,
0xac
,
0x37
,
0x06
,
0xb6
,
0x26
,
0xf3
,
0xb1
,
0x97
,
0x0b
,
0x85
,
0x68
,
0x09
,
0xa4
,
0xc8
,
0x34
,
0x0a
,
0x41
,
0x6e
,
0xac
,
0x1a
,
0x5b
,
0xe0
,
0x91
,
0x6f
,
0xa3
,
0x0a
,
0xf6
,
0x05
,
0x37
,
0x32
,
0xe1
,
0x8e
,
0xd8
,
0xed
,
0x55
,
0xa3
,
0x54
,
0x3f
,
0x62
,
0x95
,
0x82
,
0xcf
,
0x0a
,
0x19
,
0xb4
,
0x9f
,
0x04
,
0xcc
,
0x86
,
0x7e
,
0xf1
,
0xe5
,
0x8b
,
0x67
,
0x73
,
0xa2
,
0x46
,
0x4e
,
0xf2
,
0x98
,
0x94
,
0xb5
,
0xeb
,
0xa5
,
0xbd
,
0xcb
,
0x66
,
0x82
,
0xe9
,
0x87
,
0xe9
,
0xe3
,
0x50
,
0x55
,
0x4b
,
0xd6
,
0x67
,
0x30
,
0xe1
,
0x7c
,
0x15
,
0x77
,
0x29
,
0xfd
,
0x85
,
0x67
,
0x5a
,
0xc4
,
0xd5
,
0x69
,
0xfa
,
0xc7
,
0x66
,
0x66
,
0x49
,
0xf7
,
0x5a
,
0xcd
,
0xd1
,
0x81
,
0x5c
,
0x74
,
0x8d
,
0xbf
,
0xc5
,
0xc2
,
0xff
,
0x4d
,
0x90
,
0xe8
,
0x8e
,
0x05
,
0x00
,
0xff
,
0x7a
,
0xd7
,
0xb2
,
0x7a
,
0xad
,
0x8b
,
0xd6
,
0x4b
,
0x52
,
0x09
,
0x50
,
0x4b
};
ASSERT_EQ
(
ERROR_SUCCESS
,
bytes
.
create_c0c1
());
memcpy
(
bytes
.
c0c1
,
c0c1
,
1537
);
ASSERT_EQ
(
ERROR_SUCCESS
,
bytes
.
create_s0s1s2
());
memcpy
(
bytes
.
s0s1s2
,
s0s1s2
,
3073
);
ASSERT_EQ
(
ERROR_SUCCESS
,
bytes
.
create_c2
());
memcpy
(
bytes
.
c2
,
c2
,
1536
);
}
SrsHandshakeBytes
*
hs_bytes
=
&
bytes
;
if
(
true
)
{
bool
is_valid
;
c1s1
c1
;
ASSERT_EQ
(
ERROR_SUCCESS
,
c1
.
parse
(
hs_bytes
->
c0c1
+
1
,
srs_schema0
));
ASSERT_EQ
(
ERROR_SUCCESS
,
c1
.
c1_validate_digest
(
is_valid
));
ASSERT_TRUE
(
is_valid
);
c1s1
s1
;
ASSERT_EQ
(
ERROR_SUCCESS
,
s1
.
parse
(
hs_bytes
->
s0s1s2
+
1
,
c1
.
schema
));
ASSERT_EQ
(
ERROR_SUCCESS
,
s1
.
s1_validate_digest
(
is_valid
));
ASSERT_TRUE
(
is_valid
);
c2s2
c2
;
c2
.
parse
(
hs_bytes
->
c2
);
ASSERT_EQ
(
ERROR_SUCCESS
,
c2
.
c2_validate
(
&
s1
,
is_valid
));
ASSERT_TRUE
(
is_valid
);
c2s2
s2
;
s2
.
parse
(
hs_bytes
->
s0s1s2
+
1
+
1536
);
ASSERT_EQ
(
ERROR_SUCCESS
,
s2
.
s2_validate
(
&
c1
,
is_valid
));
ASSERT_TRUE
(
is_valid
);
}
}
...
...
trunk/src/utest/srs_utest_handshake.hpp
查看文件 @
491ea4b
...
...
@@ -29,7 +29,39 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <srs_utest.hpp>
#include <srs_protocol_io.hpp>
#include <srs_protocol_rtmp.hpp>
#include <srs_protocol_handshake.hpp>
using
namespace
srs
;
class
MockEmptyIO
:
public
ISrsProtocolReaderWriter
{
public
:
MockEmptyIO
();
virtual
~
MockEmptyIO
();
// for protocol
public:
virtual
bool
is_never_timeout
(
int64_t
timeout_us
);
// for handshake.
public:
virtual
int
read_fully
(
const
void
*
buf
,
size_t
size
,
ssize_t
*
nread
);
virtual
int
write
(
const
void
*
buf
,
size_t
size
,
ssize_t
*
nwrite
);
// for protocol
public:
virtual
void
set_recv_timeout
(
int64_t
timeout_us
);
virtual
int64_t
get_recv_timeout
();
virtual
int64_t
get_recv_bytes
();
virtual
int
get_recv_kbps
();
// for protocol
public:
virtual
void
set_send_timeout
(
int64_t
timeout_us
);
virtual
int64_t
get_send_timeout
();
virtual
int64_t
get_send_bytes
();
virtual
int
get_send_kbps
();
virtual
int
writev
(
const
iovec
*
iov
,
int
iov_size
,
ssize_t
*
nwrite
);
// for protocol/amf0/msg-codec
public:
virtual
int
read
(
const
void
*
buf
,
size_t
size
,
ssize_t
*
nread
);
};
#endif
...
...
请
注册
或
登录
后发表评论