aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-03-08 15:34:23 +0100
committerHarald Welte <laforge@gnumonks.org>2017-03-08 15:34:23 +0100
commit8196e4d1be0bd8f329fea2f2e0b79f9c7aada60e (patch)
treebea444cf9ca29058edbf2c5e044b8b1dfee482b5
parent601e0d3e356ef127f92d33d609a2cbc6b74590d9 (diff)
remove old python userspace code
the USB protocol is changing fundamentally anyway, and APDU handling for card emulation is inside the device, so the old code is incompatible anyway.
-rwxr-xr-xusb_application/apdu_split.py150
-rwxr-xr-xusb_application/ccid_raw.py102
-rwxr-xr-xusb_application/ccid_select.py74
-rw-r--r--usb_application/constants.py42
-rwxr-xr-xusb_application/gsmtap.py25
-rwxr-xr-xusb_application/mitm.py98
-rwxr-xr-xusb_application/pts_split.py74
m---------usb_application/pysim0
-rwxr-xr-xusb_application/replace.py46
-rw-r--r--usb_application/requirements.txt4
-rw-r--r--usb_application/screenlog_sniffer327
-rw-r--r--usb_application/select.dump29
-rwxr-xr-xusb_application/simtrace.py51
-rw-r--r--usb_application/simtrace_gemalto_dump99
-rw-r--r--usb_application/smartcard_emulator.py42
-rwxr-xr-xusb_application/sniffer.py39
-rwxr-xr-xusb_application/usb_enum.py39
-rw-r--r--usb_application/util.py7
18 files changed, 0 insertions, 1248 deletions
diff --git a/usb_application/apdu_split.py b/usb_application/apdu_split.py
deleted file mode 100755
index d2bb684..0000000
--- a/usb_application/apdu_split.py
+++ /dev/null
@@ -1,150 +0,0 @@
-#!/usr/bin/env python
-
-# Code ported from simtrace host program apdu_split.c
-#
-# (C) 2010 by Harald Welte <hwelte@hmw-consulting.de>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2
-# as published by the Free Software Foundation
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-from enum import Enum
-from util import HEX
-from array import array
-
-class apdu_states(Enum):
- APDU_S_CLA = 1
- APDU_S_INS = 2
- APDU_S_P1 = 3
- APDU_S_P2 = 4
- APDU_S_P3 = 5
- APDU_S_SEND_DATA = 6
- APDU_S_DATA = 7
- APDU_S_DATA_SINGLE = 8
- APDU_S_SW1 = 9
- APDU_S_SW2 = 10
- APDU_S_FIN = 11
- PTS = 12
-
-class Apdu_splitter:
-
- def __init__(self):
- self.state = apdu_states.APDU_S_CLA
- self.buf = array('B', [])
- self.pts_buf = array('B', [])
- self.data = array('B', [])
- self.ins = array('B', [])
- self.data_remainig = 0
-
- def func_APDU_S_INS(self, c):
- self.ins = c
- self.buf.append(c)
- self.state = apdu_states(self.state.value + 1)
-
- def func_PTS(self, c):
- self.pts_buf.append(c)
- print("PTS: ", self.pts_buf)
- if self.pts_buf == [0xff, 0x00, 0xff]:
- self.state = apdu_states.APDU_S_FIN
-
- def func_APDU_S_CLA_P1_P2(self, c):
- if self.state == apdu_states.APDU_S_CLA and c == 0xff:
- self.state = apdu_states.PTS
- self.pts_buf = [c]
- else:
- self.buf.append(c)
- self.state = apdu_states(self.state.value + 1)
-
- def func_APDU_S_P3(self, c):
- self.buf.append(c)
- self.data_remaining = 256 if c == 0 else c
- self.state = apdu_states.APDU_S_SW1
-
- def func_APDU_S_DATA(self, c):
- self.buf.append(c)
- self.data.append(c)
- self.data_remaining -= 1
- if self.data_remaining == 0:
- self.state = apdu_states.APDU_S_SW1
-
- def func_APDU_S_DATA_SINGLE(self, c):
- self.buf.append(c)
- self.data_remaining -= 1
- self.state = apdu_states.APDU_S_SW1
-
- def func_APDU_S_SW1(self, c):
- if (c == 0x60):
- print("APDU_S_SW1: NULL")
- else:
- # check for 'all remaining' type ACK
- if c == self.ins or c == self.ins + 1 or c == ~(self.ins+1):
- print("ACK")
- self.data = []
- if self.ins in self.INS_data_expected:
- self.state = apdu_states.APDU_S_SEND_DATA
- else:
- self.state = apdu_states.APDU_S_DATA
- else:
- # check for 'only next byte' type ACK */
- if c == ~(self.ins):
- self.state = apdu_states.APDU_S_DATA_SINGLE
- else:
- # must be SW1
- self.sw1 = c
- self.buf.append(c)
- self.state = apdu_states.APDU_S_SW2
-
- def func_APDU_S_SW2(self, c):
- self.buf.append(c)
- self.sw2 = c
- print("APDU:", HEX(self.ins), HEX(self.buf))
- self.state = apdu_states.APDU_S_FIN
-
- Apdu_S = {
- apdu_states.APDU_S_CLA : func_APDU_S_CLA_P1_P2,
- apdu_states.APDU_S_INS : func_APDU_S_INS,
- apdu_states.APDU_S_P1 : func_APDU_S_CLA_P1_P2,
- apdu_states.APDU_S_P2 : func_APDU_S_CLA_P1_P2,
- apdu_states.APDU_S_P3 : func_APDU_S_P3,
- apdu_states.APDU_S_SEND_DATA : func_APDU_S_DATA,
- apdu_states.APDU_S_DATA : func_APDU_S_DATA,
- apdu_states.APDU_S_DATA_SINGLE : func_APDU_S_DATA_SINGLE,
- apdu_states.APDU_S_SW1 : func_APDU_S_SW1,
- apdu_states.APDU_S_SW2 : func_APDU_S_SW2,
- apdu_states.PTS : func_PTS }
-
- INS_data_expected = [0xC0, 0xB0, 0xB2, 0x12, 0xF2]
-
- def split(self, c):
- # if c == 0xA0:
- # self.state = apdu_states.APDU_S_CLA
- print("state: ", self.state, hex(c))
- self.Apdu_S[self.state](self, c)
-
-
-if __name__ == '__main__':
- msg1 = [0xA0, 0xA4, 0x00, 0x00, 0x02, 0xA4, 0x7F, 0x20, 0x9F, 0x16]
- msg2 = [0xA0, 0xC0, 0x00, 0x00, 0x16, 0xC0,
- 0x00, 0x00, 0x00, 0x00, 0x7F, 0x20,
- 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x09, 0x91, 0x00, 0x17, 0x04, 0x00, 0x00, 0x00,
- 0x83, 0x8A, 0x90, 0x00]
- msg3 = [0xa0, 0xc0, 0x00, 0x00, 0x16, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7f,
- 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x91, 0x00, 0x17,
- 0x04, 0x00, 0x83, 0x8a, 0x83, 0x8a, 0x90]
-
- pts = [0xff, 0x00, 0xff]
- apdus = []
- apdu = Apdu_splitter()
- for c in pts + msg2 + msg1 + msg3:
- apdu.split(c)
- if apdu.state == apdu_states.APDU_S_FIN:
- apdus.append(apdu)
- apdu = Apdu_splitter()
- for a in apdus:
- print(HEX(a.buf))
diff --git a/usb_application/ccid_raw.py b/usb_application/ccid_raw.py
deleted file mode 100755
index 4447e34..0000000
--- a/usb_application/ccid_raw.py
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/usr/bin/env python
-
-from smartcard.scard import *
-import smartcard.util
-
-import array
-
-from util import HEX
-
-class SmartcardException(Exception):
- pass
-
-class SmartcardConnection:
-# hcard, dwActiveProtocol, hcontext, reader
-
- def __init__(self):
- self.establish_context()
- self.connect_card()
-
- def getATR(self):
- hresult, reader, state, protocol, atr = SCardStatus(self.hcard)
- if hresult != SCARD_S_SUCCESS:
- print 'failed to get status: ' + SCardGetErrorMessage(hresult)
- print 'Reader:', reader
- print 'State:', state
- print 'Protocol:', protocol
- print 'ATR:', HEX(atr)
- return array.array('B', atr)
-
- def reset_card(self):
- hresult, self.dwActiveProtocol = SCardReconnect(self.hcard, SCARD_SHARE_SHARED,
- SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1, SCARD_RESET_CARD)
- if hresult != SCARD_S_SUCCESS:
- raise SmartcardException('Unable to retrieve Atr: ' +
- SCardGetErrorMessage(hresult))
-
- def connect_card(self):
- hresult, self.hcard, self.dwActiveProtocol = SCardConnect(self.hcontext, self.reader,
- SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1)
- if hresult != SCARD_S_SUCCESS:
- raise SmartcardException('Unable to connect: ' +
- SCardGetErrorMessage(hresult))
- print 'Connected with active protocol', self.dwActiveProtocol
-
- def establish_context(self):
- hresult, self.hcontext = SCardEstablishContext(SCARD_SCOPE_USER)
- if hresult != SCARD_S_SUCCESS:
- raise SmartcardException('Failed to establish context : ' +
- SCardGetErrorMessage(hresult))
- print 'Context established!'
-
- hresult, readers = SCardListReaders(self.hcontext, [])
- if hresult != SCARD_S_SUCCESS:
- raise SmartcardException('Failed to list readers: ' +
- SCardGetErrorMessage(hresult))
- print 'PCSC Readers:', readers
-
- if len(readers) < 1:
- raise SmartcardException('No smart card readers')
-
- self.reader = readers[0]
- print "Using reader:", self.reader
-
- def release_context(self):
- hresult = SCardReleaseContext(self.hcontext)
- if hresult != SCARD_S_SUCCESS:
- raise SmartcardException('Failed to release context: ' +
- SCardGetErrorMessage(hresult))
- print 'Released context.'
-
- def send_receive_cmd(self, cmd):
- print("Cmd to SIM: " + HEX(cmd))
- hresult, resp = SCardTransmit(self.hcard, self.dwActiveProtocol,
- cmd.tolist())
- if hresult != SCARD_S_SUCCESS:
- raise SmartcardException('Failed to transmit: ' +
- SCardGetErrorMessage(hresult))
- print 'SIM Ans: ' + HEX(resp)
- return array.array('B', resp)
-
- def disconnect_card(self):
- hresult = SCardDisconnect(self.hcard, SCARD_UNPOWER_CARD)
- if hresult != SCARD_S_SUCCESS:
- raise SmartcardException('Failed to disconnect: ' +
- SCardGetErrorMessage(hresult))
- print 'Disconnected'
-
-
- def close(self):
- self.disconnect_card()
- self.release_context()
-
-
-if __name__ == '__main__':
- import constants
-
- sm_con = SmartcardConnection()
- sm_con.getATR()
- print(sm_con.send_receive_cmd(constants.CMD_SEL_ROOT))
- print(sm_con.send_receive_cmd(constants.CMD_SEL_FILE))
- print(sm_con.send_receive_cmd(constants.CMD_GET_DATA))
- sm_con.close()
diff --git a/usb_application/ccid_select.py b/usb_application/ccid_select.py
deleted file mode 100755
index 264d6ae..0000000
--- a/usb_application/ccid_select.py
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/env python
-# This is only test code for testing the smartcard communication
-# by sending a test command and printing the answer of the smartcard.
-
-from smartcard.scard import *
-import smartcard.util
-
-SELECT = [0xA0, 0xA4, 0x00, 0x00, 0x02, 0x3F, 0x00]
-COMMAND = [0x00, 0x00, 0x00, 0x00]
-
-def select():
- try:
- hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER)
- if hresult != SCARD_S_SUCCESS:
- raise Exception('Failed to establish context : ' +
- SCardGetErrorMessage(hresult))
- print 'Context established!'
-
- try:
- hresult, readers = SCardListReaders(hcontext, [])
- if hresult != SCARD_S_SUCCESS:
- raise Exception('Failed to list readers: ' +
- SCardGetErrorMessage(hresult))
- print 'PCSC Readers:', readers
-
- if len(readers) < 1:
- raise Exception('No smart card readers')
-
- reader = readers[0]
- print "Using reader:", reader
-
- try:
- hresult, hcard, dwActiveProtocol = SCardConnect(hcontext, reader,
- SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1)
- if hresult != SCARD_S_SUCCESS:
- raise Exception('Unable to connect: ' +
- SCardGetErrorMessage(hresult))
- print 'Connected with active protocol', dwActiveProtocol
-
- try:
- hresult, response = SCardTransmit(hcard, dwActiveProtocol,
- SELECT)
- if hresult != SCARD_S_SUCCESS:
- raise Exception('Failed to transmit: ' +
- SCardGetErrorMessage(hresult))
- print 'Select: ' + smartcard.util.toHexString(response,
- smartcard.util.HEX)
- hresult, response = SCardTransmit(hcard, dwActiveProtocol,
- COMMAND)
- if hresult != SCARD_S_SUCCESS:
- raise Exception('Failed to transmit: ' +
- SCardGetErrorMessage(hresult))
- print 'Command: ' + smartcard.util.toHexString(response,
- smartcard.util.HEX)
- finally:
- hresult = SCardDisconnect(hcard, SCARD_UNPOWER_CARD)
- if hresult != SCARD_S_SUCCESS:
- raise Exception('Failed to disconnect: ' +
- SCardGetErrorMessage(hresult))
- print 'Disconnected'
-
-
- except Exception, message:
- print "Exception:", message
-
- finally:
- hresult = SCardReleaseContext(hcontext)
- if hresult != SCARD_S_SUCCESS:
- raise Exception('Failed to release context: ' +
- SCardGetErrorMessage(hresult))
- print 'Released context.'
-
- except Exception, message:
- print "Exception:", message
diff --git a/usb_application/constants.py b/usb_application/constants.py
deleted file mode 100644
index 154dc2d..0000000
--- a/usb_application/constants.py
+++ /dev/null
@@ -1,42 +0,0 @@
-from array import array
-
-SIM_WR = 0x1
-SIM_RD = 0x82
-SIM_INT = 0x83
-
-PHONE_WR = 0x4
-PHONE_RD = 0x85
-PHONE_INT = 0x86
-
-# Change FIDI
-CMD_CHANGE_FIDI = array('B', [0xff, 0x00, 0xff])
-CHANGE_FIDI = array('B', [0xff, 0xff, 0xff, 0x00, 0xff])
-
-# Phone book
-PHONE_BOOK_REQ = array('B', [0xa0, 0xb2, 0x01, 0x04, 0x1a])
-PHONE_BOOK_RESP = array('B', [0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0xff, 0xff, 0xff, 0xff, 0x09, 0x81, 0x22, 0x22,
- 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00])
-PHONE_BOOK_RESP_MITM = array('B', [0x6d, 0x69, 0x74, 0x6d, 0x20, 0x21, 0x21, 0x21, 0xff, 0xff, 0xff, 0xff, 0x09, 0x81, 0x22, 0x22,
- 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00])
-PHONE_BOOK_RESP2 = array('B', [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00])
-PHONE_BOOK_RESP_MITM2 = array('B', [0x6d, 0x69, 0x74, 0x6d, 0x20, 0x21, 0x21, 0x21, 0xff, 0xff, 0xff, 0xff, 0x09, 0x81, 0x22, 0x22,
- 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00])
-
-
-CMD_SEL_ROOT = array('B', [0xA0, 0xA4, 0x00, 0x00, 0x02, 0x3F, 0x00])
-CMD_SEL_FILE = array('B', [0xA0, 0xA4, 0x00, 0x00, 0x02, 0x7F, 0x20])
-CMD_GET_DATA = array('B', [0xA0, 0xC0, 0x00, 0x00, 0x16])
-# SuperSIM ATR
-ATR_SUPERSIM= array('B', [0x3B, 0x9A, 0x94, 0x00, 0x92, 0x02, 0x75, 0x93, 0x11, 0x00, 0x01, 0x02, 0x02, 0x19])
-
-# Faster sysmocom SIM
-ATR_SYSMOCOM1 = array('B', [0x3B, 0x99, 0x18, 0x00, 0x11, 0x88, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x60])
-ATR_SYSMOCOM2 = array('B', [0x3B, 0x99, 0x11, 0x00, 0x11, 0x88, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x60])
-ATR_SYSMOCOM3 = array('B', [0x3B, 0x99, 0x44, 0x00, 0x11, 0x88, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x60])
-NEW_ATR = ATR_SYSMOCOM1
-ATR_STRANGE_SIM = array('B', [0x3B, 0x0B, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x68, 0x2E, 0x00, 0x20, 0x68])
-
-# USB errors
-ERR_TIMEOUT = 110
-ERR_NO_SUCH_DEV = 19
diff --git a/usb_application/gsmtap.py b/usb_application/gsmtap.py
deleted file mode 100755
index 9e7a102..0000000
--- a/usb_application/gsmtap.py
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env python
-
-import socket
-import array
-
-ip="127.0.0.1"
-port=4729
-sp=58621
-gsmtap_hdr="\x02\x04\x04"+"\x00"*13
-
-# FIXME: Is ATR something special?
-
-def gsmtap_send_apdu(data):
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- s.connect((ip, port))
- s.send(gsmtap_hdr+data.tostring())
- s.close()
-
-if __name__ == '__main__':
- cmds = ("\x3B\x99\x18\x00\x11\x88\x22\x33\x44\x55\x66\x77\x60", # ATR
- "\xa0\xa4\x00\x00\x02\x6f\x7e\x9f\x0f", # SELECT FILE
- "\xa0\xd6\x00\x00\x0b\xff\xff\xff\xff\x09\xf1\x07\xff\xfe\x00\x03\x90\x00", # UPDATE BINARY
- )
- for cmd in cmds:
- gsmtap_send_apdu(array.array('B', cmd))
diff --git a/usb_application/mitm.py b/usb_application/mitm.py
deleted file mode 100755
index 4b53bc7..0000000
--- a/usb_application/mitm.py
+++ /dev/null
@@ -1,98 +0,0 @@
-import usb.core
-import usb.util
-import array
-
-from ccid_raw import SmartcardConnection
-from smartcard_emulator import SmartCardEmulator
-from gsmtap import gsmtap_send_apdu
-
-from contextlib import closing
-
-from util import HEX
-from constants import *
-from apdu_split import Apdu_splitter, apdu_states
-
-from replace import replace
-
-def pattern_match(inpt):
- print("Matching inpt", inpt)
- if (inpt == ATR_SYSMOCOM1) or (inpt == ATR_STRANGE_SIM):
- print("ATR: ", inpt)
- return NEW_ATR
- elif (inpt == CMD_SEL_FILE):
- print("CMD_SEL_FILE:", inpt)
- return CMD_SEL_ROOT
- elif (inpt == CMD_GET_DATA):
- print("CMD_DATA:", inpt)
- return CMD_SEL_ROOT
- else:
- return inpt
-
-def poll_ep(dev, ep):
- try:
- return dev.read(ep, 64, 10)
- except usb.core.USBError as e:
- if e.errno != ERR_TIMEOUT:
- raise
- return None
-
-def write_phone(dev, resp):
- print("WR: ", HEX(resp))
- dev.write(PHONE_WR, resp, 10)
-
-def do_mitm(dev, sim_emul=True):
- if sim_emul == True:
- my_class = SmartCardEmulator
- else:
- my_class = SmartcardConnection
- with closing(my_class()) as sm_con:
- atr = sm_con.getATR()
-
- apdus = []
- apdu = Apdu_splitter()
-
- while True:
- cmd = poll_ep(dev, PHONE_INT)
- if cmd is not None:
- print("Int line ", HEX(cmd))
- assert cmd[0] == ord('R')
-# FIXME: restart card anyways?
-# sm_con.reset_card()
- print("Write atr: ", HEX(atr))
- write_phone(dev, replace(atr))
- apdus = []
- apdu = Apdu_splitter()
-
- cmd = poll_ep(dev, PHONE_RD)
- if cmd is not None:
- print("RD: ", HEX(cmd))
- for c in cmd:
- if apdu.state == apdu_states.APDU_S_FIN:
- apdus.append(apdu)
- gsmtap_send_apdu(apdu.buf)
- apdu = Apdu_splitter()
-
- apdu.split(c)
- if apdu.state == apdu_states.APDU_S_FIN and apdu.pts_buf == [0xff, 0x00, 0xff]:
- #sim_data = sm_con.send_receive_cmd(apdu.pts_buf)
- #write_phone(dev, replace(array('B', sim_data)))
- write_phone(dev, replace(array('B', apdu.pts_buf)))
- continue;
-
- if apdu.state == apdu_states.APDU_S_SW1:
- if apdu.data is not None and len(apdu.data) == 0:
- # FIXME: implement other ACK types
- write_phone(dev, replace(array('B', [apdu.ins])))
- apdu.split(apdu.ins)
- else:
- sim_data = sm_con.send_receive_cmd(apdu.buf)
- write_phone(dev, replace(sim_data))
- for c in sim_data:
- apdu.split(c)
- if apdu.state == apdu_states.APDU_S_SEND_DATA:
- sim_data = sm_con.send_receive_cmd(replace(apdu.buf))
- #sim_data.insert(0, apdu.ins)
- write_phone(dev, replace(sim_data))
- #apdu.state = apdu_states.APDU_S_SW1
- for c in sim_data:
- apdu.split(c)
diff --git a/usb_application/pts_split.py b/usb_application/pts_split.py
deleted file mode 100755
index 2721d42..0000000
--- a/usb_application/pts_split.py
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/env python
-
-from enum import Enum
-
-# FIXME: response!
-class pts_states(Enum):
- PTSS = 0
- PTS0 = 1
- PTS1 = 2
- PTS2 = 3
- PTS3 = 4
- PCK = 5
-
-class Pts_splitter:
-
- def __init__(self):
- self.state = pts_states.PTSS
- self.buf = []
-
- def func_PTS_PTSS(self, ptss):
- self.state = pts_states.PTS0
-
- def func_PTS_PTS0(self, pts0):
- self.pts0 = pts0
- self.state = pts_states.PTS1
-
- def func_PTS_PTS1(self, fidi):
- print("pts0: ", self.pts0)
- if (self.pts0 & 1<<4) != 0:
- self.fidi = fidi
- print("FiDi: ", fidi)
- self.state = pts_states.PTS2
- else:
- self.PTS_S[pts_states.PTS2](self, c)
-
- def func_PTS_PTS2(self, c):
- if (self.pts0 & 1<<5) != 0:
- print("ETU: ", c)
- self.state = pts_states.PTS3
- else:
- self.PTS_S[pts_states.PTS3](self, c)
-
- def func_PTS_PTS3(self, c):
- if (self.pts0 & 1<<6) != 0:
- print("RFU: ", c)
- self.state = pts_states.PCK
- else:
- self.PTS_S[pts_states.PCK](self, c)
-
- def func_PTS_PCK(self, c):
- print("PCK: ", c)
- self.state = pts_states.PCK
-
- PTS_S = {
- pts_states.PTSS : func_PTS_PTSS,
- pts_states.PTS0 : func_PTS_PTS0,
- pts_states.PTS1 : func_PTS_PTS1,
- pts_states.PTS2 : func_PTS_PTS2,
- pts_states.PTS3 : func_PTS_PTS3,
- pts_states.PCK : func_PTS_PCK
- }
-
- def split(self, c):
- self.PTS_S[self.state](self, c)
-
-if __name__ == '__main__':
- pts_msg1 = [0xff, 0x00, 0xff]
- pts_msg_fidi = [0xff, (1<<4), 0x18, 0xff]
- pts_msg_fidi_etu = [0xff, ((1<<4) | (1<<5)), 0x18, 0x01, 0xff]
- pts = Pts_splitter()
- for c in pts_msg1 + pts_msg_fidi + pts_msg_fidi_etu:
- pts.split(c)
- if (pts.state == pts_states.PCK):
- pts = Pts_splitter()
diff --git a/usb_application/pysim b/usb_application/pysim
deleted file mode 160000
-Subproject 2fc205ceb93a8c58d6ad88d3bfd6aa84c628514
diff --git a/usb_application/replace.py b/usb_application/replace.py
deleted file mode 100755
index b8fb004..0000000
--- a/usb_application/replace.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env python
-
-import array
-from constants import *
-
-
-# Address book entries
-name = 'deine mudda'
-phone = '0123456789abcdef'
-
-def replace(data):
- print(replace.last_req)
- if data is None:
- raise MITMReplaceError
- else:
- try:
- if data[0] == 0xA0:
- print("INS: ", hex(data[1]))
- replace.last_req = data
- return data
-
- if data[0] == 0x3B:
- return data
- #print("*** Replace ATR")
- #return array('B', NEW_ATR)
- elif data[0] == 0x9F:
- return data
-# print("*** Replace return val")
-# return array('B', [0x60, 0x00])
- elif replace.last_req[1:5] == array('B', [0xB2, 0x01, 0x04, 0x1A]): # phone book request
- print("*** Replace phone book")
-# return array('B', [0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0xff, 0xff, 0xff, 0xff, 0x09, 0x81, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00])
- resp = map(ord, name) + ([0xff]*(12-len(name))) + [len(name) + 1] + [0x81]
- for x in range(1,len(phone)/2+1):
- list.append(resp, int(phone[x*2-2:2*x:], 16))
- resp += ([0xff]*(replace.last_req[4]-len(resp))) + [0x90, 0x00]
- return array('B', resp)
- except ValueError:
- print("*** Value error! ")
- return data
-
-replace.last_req = array('B')
-
-if __name__ == '__main__':
- print("Replacing PHONE_BOOK_REQ", PHONE_BOOK_REQ, "with", replace(PHONE_BOOK_REQ))
- print("Replacing PHONE_BOOK_RESP", PHONE_BOOK_RESP, "with", replace(PHONE_BOOK_RESP))
diff --git a/usb_application/requirements.txt b/usb_application/requirements.txt
deleted file mode 100644
index 2773937..0000000
--- a/usb_application/requirements.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-argparse==1.2.1
-pyscard==1.6.12
-pyusb==1.0.0b2
-wsgiref==0.1.2
diff --git a/usb_application/screenlog_sniffer b/usb_application/screenlog_sniffer
deleted file mode 100644
index ad34df3..0000000
--- a/usb_application/screenlog_sniffer
+++ /dev/null
@@ -1,327 +0,0 @@
- [?1l>
-k./sniffer.py\Found device
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 3b 9a 94 00 92 02 75 93 11 00 01 02 02 19 a0 a4 00 00 02 a4 7f 20 9f 16 a0 c0 00 00 16 c0 00 00 00 00 7f 20 02 00 00 00 00 00 09 91 00 17
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 3b 9a 94 00 92 02 75 93 11 00 01 02 02 19 a0 a4 00 00 02 a4 7f 20 9f 16 a0 c0 00 00 16 c0 00 00 00 00 7f 20 02 00 00 00 00 00 09 91 00 17
-00 00 02 a4 3f 00 9f 16 a0 a4 00 00 02 a4 7f 20 9f 16 a0 c0 00 00 16 c0 00 00 00 00 7f 20 02 00 00 00 00 00 09 91 00 17 04 00 83 8a 83 8a 90 00 a0 a4 00 00 02 a4 6f b7 94 04 a0 a4 00 00 02 a4
-00 00 02 a4 3f 00 9f 16 a0 a4 00 00 02 a4 7f 20 9f 16 a0 c0 00 00 16 c0 00 00 00 00 7f 20 02 00 00 00 00 00 09 91 00 17 04 00 83 8a 83 8a 90 00 a0 a4 00 00 02 a4 6f b7 94 04 a0 a4 00 00 02 a4
-7f ff ff ff 37 00 00 3f 06 91 2c a0 a4 00 00 02 a4 6f 7e 9f 0f a0 c0 00 00 0f c0 00 00 00 0b 6f 7e 04 00 11 ff 1f 01 02 00 00 91 2c a0 a4 00 00 02 a4 6f 07 9f 0f a0 c0 00 00 0f c0 00 00 00 09
-7f ff ff ff 37 00 00 3f 06 91 2c a0 a4 00 00 02 a4 6f 7e 9f 0f a0 c0 00 00 0f c0 00 00 00 0b 6f 7e 04 00 11 ff 1f 01 02 00 00 91 2c a0 a4 00 00 02 a4 6f 07 9f 0f a0 c0 00 00 0f c0 00 00 00 09
-a0 a4 00 00 02 a4 6f ad 9f 0f a0 b0 00 00 01 b0 00 91 2c a0 a4 00 00 02 a4 6f 07 9f 0f a0 b0 00 00 09 b0 08 99 10 07 32 19 42 88 91 91 2c a0 a4 00 00 02 a4 6f 7e 9f 0f a0 b0 00 00 0b b0 ff ff
-a0 a4 00 00 02 a4 6f ad 9f 0f a0 b0 00 00 01 b0 00 91 2c a0 a4 00 00 02 a4 6f 07 9f 0f a0 b0 00 00 09 b0 08 99 10 07 32 19 42 88 91 91 2c a0 a4 00 00 02 a4 6f 7e 9f 0f a0 b0 00 00 0b b0 ff ff
-2c a0 a4 00 00 02 a4 6f 20 9f 0f a0 b0 00 00 09 b0 40 75 d4 84 36 01 b4 00 01 91 2c a0 a4 00 00 02 a4 6f 30 9f 0f a0 c0 00 00 0f c0 00 00 00 2d 6f 30 04 00 11 ff ff 01 02 00 00 91 2c a0 b0 00
-2c a0 a4 00 00 02 a4 6f 20 9f 0f a0 b0 00 00 09 b0 40 75 d4 84 36 01 b4 00 01 91 2c a0 a4 00 00 02 a4 6f 30 9f 0f a0 c0 00 00 0f c0 00 00 00 2d 6f 30 04 00 11 ff ff 01 02 00 00 91 2c a0 b0 00
-0c b0 32 f4 03 32 f4 33 32 f4 01 ff ff ff 91 2c a0 a4 00 00 02 a4 6f 31 9f 0f a0 b0 00 00 01 b0 05 91 2c a0 a4 00 00 02 a4 6f 39 9f 0f a0 c0 00 00 0f c0 00 00 00 1e 6f 39 04 40 12 1f ff 01 02
-0c b0 32 f4 03 32 f4 33 32 f4 01 ff ff ff 91 2c a0 a4 00 00 02 a4 6f 31 9f 0f a0 b0 00 00 01 b0 05 91 2c a0 a4 00 00 02 a4 6f 39 9f 0f a0 c0 00 00 0f c0 00 00 00 1e 6f 39 04 40 12 1f ff 01 02
-01 02 00 00 91 2c a0 a4 00 00 02 a4 6f 48 94 04 a0 a4 00 00 02 a4 6f 10 94 04 a0 a4 00 00 02 a4 7f 10 9f 16 a0 a4 00 00 02 a4 6f 43 9f 0f a0 b0 00 00 02 b0 09 ff 91 2c a0 12 00 00 2c 12 d0 2a
-01 02 00 00 91 2c a0 a4 00 00 02 a4 6f 48 94 04 a0 a4 00 00 02 a4 6f 10 94 04 a0 a4 00 00 02 a4 7f 10 9f 16 a0 a4 00 00 02 a4 6f 43 9f 0f a0 b0 00 00 02 b0 09 ff 91 2c a0 12 00 00 2c 12 d0 2a
-a0 a4 00 00 02 a4 6f 11 94 04 a0 a4 00 00 02 a4 6f 39 9f 0f a0 c0 00 00 0f c0 00 00 00 1e 6f 39 04 40 12 1f ff 01 02 03 03 90 00 a0 b2 01 04 03 b2 00 00 00 90 00 a0 a4 00 00 02 a4 6f b7 94 04
-a0 a4 00 00 02 a4 6f 11 94 04 a0 a4 00 00 02 a4 6f 39 9f 0f a0 c0 00 00 0f c0 00 00 00 1e 6f 39 04 40 12 1f ff 01 02 03 03 90 00 a0 b2 01 04 03 b2 00 00 00 90 00 a0 a4 00 00 02 a4 6f b7 94 04
-a0 c0 00 00 0f c0 00 00 00 11 6f 46 04 00 0b ff ff 01 02 00 00 90 00 a0 b0 00 00 11 b0 01 4f 70 65 6e 42 53 43 ff ff ff ff ff ff ff ff ff 90 00 a0 a4 00 00 02 a4 6f 07 9f 0f a0 c0 00 00 0f c0
-a0 c0 00 00 0f c0 00 00 00 11 6f 46 04 00 0b ff ff 01 02 00 00 90 00 a0 b0 00 00 11 b0 01 4f 70 65 6e 42 53 43 ff ff ff ff ff ff ff ff ff 90 00 a0 a4 00 00 02 a4 6f 07 9f 0f a0 c0 00 00 0f c0
-a0 c0 00 00 0f c0 00 00 00 03 6f 37 04 00 12 ff ff 01 02 00 00 90 00 a0 b0 00 00 03 b0 00 00 00 90 00 a0 a4 00 00 02 a4 7f 10 9f 16 a0 a4 00 00 02 a4 6f 3c 9f 0f a0 c0 00 00 0f c0 00 00 1b 80
-a0 c0 00 00 0f c0 00 00 00 03 6f 37 04 00 12 ff ff 01 02 00 00 90 00 a0 b0 00 00 03 b0 00 00 00 90 00 a0 a4 00 00 02 a4 7f 10 9f 16 a0 a4 00 00 02 a4 6f 3c 9f 0f a0 c0 00 00 0f c0 00 00 1b 80
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff 90 00 a0 a4 00 00 02 a4 7f 20 9f 16 a0 a4 00 00 02 a4 6f 41 9f 0f a0 c0 00 00 0f c0 00 00 00 05 6f 41 04 00 12 ff ff 01 02 00 00 90 00 a0 b0 00 00 05 b0 ff ff ff 00 00 90 00 a0 a4 00
-ff ff ff 90 00 a0 a4 00 00 02 a4 7f 20 9f 16 a0 a4 00 00 02 a4 6f 41 9f 0f a0 c0 00 00 0f c0 00 00 00 05 6f 41 04 00 12 ff ff 01 02 00 00 90 00 a0 b0 00 00 05 b0 ff ff ff 00 00 90 00 a0 a4 00
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 05 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 05 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-a0 b2 07 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-a0 b2 07 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 08 04 b0 b2 00 ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 08 04 b0 b2 00 ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0a 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0a 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0c 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0c 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff 90 00 a0 b2 0e 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff 90 00 a0 b2 0e 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 11 04 b0 b2 00 ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 11 04 b0 b2 00 ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 13 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 13 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 15 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 15 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-a0 b2 17 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-a0 b2 17 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 18 04 b0 b2 00 ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 18 04 b0 b2 00 ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1a 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1a 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1c 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1c 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff 90 00 a0 b2 1e 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff 90 00 a0 b2 1e 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 21 04 b0 b2 00 ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 21 04 b0 b2 00 ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 23 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 23 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 25 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 25 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-a0 b2 27 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-a0 b2 27 04 b0 b2 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 28 04 b0 b2 00 ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 28 04 b0 b2 00 ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-00 00 00 50 6f 42 04 00 11 ff ff 01 02 01 28 90 00 a0 b2 01 04 28 b2 ff ff ff ff ff ff ff ff ff ff ff ff e1 ff ff ff ff ff ff ff ff ff ff ff ff 05 81 00 94 55 55 ff ff ff ff ff ff 00 00 00 90
-00 00 00 50 6f 42 04 00 11 ff ff 01 02 01 28 90 00 a0 b2 01 04 28 b2 ff ff ff ff ff ff ff ff ff ff ff ff e1 ff ff ff ff ff ff ff ff ff ff ff ff 05 81 00 94 55 55 ff ff ff ff ff ff 00 00 00 90
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 a4 00 00 02 a4 7f 10 9f 16 a0 a4 00 00 02 a4 6f 3a 9f 0f a0 c0 00 00 0f c0 00 00 19 64 6f 3a 04 00 11 ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 a4 00 00 02 a4 7f 10 9f 16 a0 a4 00 00 02 a4 6f 3a 9f 0f a0 c0 00 00 0f c0 00 00 19 64 6f 3a 04 00 11 ff
-ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 04 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 04 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 07 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 08 04 1a b2 ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 07 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 08 04 1a b2 ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0b 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0c
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0b 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0c
-00 a0 b2 0e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-00 a0 b2 0e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 0f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff 90 00 a0 b2 12 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 13 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff 90 00 a0 b2 12 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 13 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 16 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 17 04 1a b2 ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 16 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 17 04 1a b2 ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1a 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1b 04 1a
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1a 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1b 04 1a
-b2 1d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-b2 1d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 1e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff 90 00 a0 b2 21 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 22 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff 90 00 a0 b2 21 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 22 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 25 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 26 04 1a b2 ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 25 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 26 04 1a b2 ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 29 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 2a 04 1a b2 ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 29 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 2a 04 1a b2 ff
-04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 2d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
-04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 2d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
-ff ff ff 90 00 a0 b2 30 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 31 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff 90 00 a0 b2 30 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 31 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 34 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 35 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 34 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 35 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 38 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 39 04 1a b2 ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 38 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 39 04 1a b2 ff ff ff
-b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 3c 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
-b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 3c 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
-ff 90 00 a0 b2 3f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 40 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff 90 00 a0 b2 3f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 40 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff 90 00 a0 b2 43 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 44 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff 90 00 a0 b2 43 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 44 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 47 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 48 04 1a b2 ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 47 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 48 04 1a b2 ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 4b 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 4c
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 4b 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 4c
-00 a0 b2 4e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 4f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-00 a0 b2 4e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 4f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff 90 00 a0 b2 52 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 53 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff 90 00 a0 b2 52 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 53 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 56 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 57 04 1a b2 ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 56 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 57 04 1a b2 ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 5a 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 5b 04 1a
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 5a 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 5b 04 1a
-b2 5d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 5e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-b2 5d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 5e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff 90 00 a0 b2 61 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 62 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff 90 00 a0 b2 61 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 62 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 65 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 66 04 1a b2 ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 65 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 66 04 1a b2 ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 69 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 6a 04 1a b2 ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 69 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 6a 04 1a b2 ff
-04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 6d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
-04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 6d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
-ff ff ff 90 00 a0 b2 70 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 71 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff 90 00 a0 b2 70 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 71 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 74 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 75 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 74 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 75 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 78 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 79 04 1a b2 ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 78 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 79 04 1a b2 ff ff ff
-b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 7c 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
-b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 7c 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
-ff 90 00 a0 b2 7f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 80 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff 90 00 a0 b2 7f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 80 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff 90 00 a0 b2 83 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 84 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff 90 00 a0 b2 83 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 84 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 87 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 88 04 1a b2 ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 87 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 88 04 1a b2 ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 8b 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 8c
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 8b 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 8c
-00 a0 b2 8e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 8f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-00 a0 b2 8e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 8f 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff 90 00 a0 b2 92 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 93 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff 90 00 a0 b2 92 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 93 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 96 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 97 04 1a b2 ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 96 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 97 04 1a b2 ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 9a 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 9b 04 1a
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 9a 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 9b 04 1a
-b2 9d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 9e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-b2 9d 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 9e 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff 90 00 a0 b2 a1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a2 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff 90 00 a0 b2 a1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a2 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a6 04 1a b2 ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a6 04 1a b2 ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a9 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 aa 04 1a b2 ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 a9 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 aa 04 1a b2 ff
-04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 ad 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
-04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 ad 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
-ff ff ff 90 00 a0 b2 b0 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff 90 00 a0 b2 b0 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b4 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b4 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b8 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b9 04 1a b2 ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b8 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 b9 04 1a b2 ff ff ff
-b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 bc 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
-b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 bc 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
-ff 90 00 a0 b2 bf 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c0 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff 90 00 a0 b2 bf 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c0 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c3 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c4 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c3 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c4 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c7 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c8 04 1a b2 ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c7 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 c8 04 1a b2 ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 cb 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 cc
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 cb 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 cc
-00 a0 b2 ce 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 cf 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-00 a0 b2 ce 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 cf 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff 90 00 a0 b2 d2 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 d3 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff 90 00 a0 b2 d2 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 d3 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 d6 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 d7 04 1a b2 ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 d6 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 d7 04 1a b2 ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 da 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 db 04 1a
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 da 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 db 04 1a
-b2 dd 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 de 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-b2 dd 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 de 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff 90 00 a0 b2 e1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e2 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff 90 00 a0 b2 e1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e2 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e6 04 1a b2 ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e6 04 1a b2 ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e9 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 ea 04 1a b2 ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 e9 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 ea 04 1a b2 ff
-04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 ed 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
-04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 ed 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90
-ff ff ff 90 00 a0 b2 f0 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff 90 00 a0 b2 f0 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f1 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f4 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f4 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f5 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f8 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f9 04 1a b2 ff ff ff
-ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f8 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 f9 04 1a b2 ff ff ff
-a4 6f 3b 9f 0f a0 c0 00 00 0f c0 00 00 01 04 6f 3b 04 00 12 ff ff 01 02 01 1a 90 00 a0 b2 01 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2
-a4 6f 3b 9f 0f a0 c0 00 00 0f c0 00 00 01 04 6f 3b 04 00 12 ff ff 01 02 01 1a 90 00 a0 b2 01 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2
-90 00 a0 b2 04 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 05 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-90 00 a0 b2 04 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 05 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff 90 00 a0 b2 08 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 09 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff 90 00 a0 b2 08 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 09 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-00 00 00 34 6f 40 04 00 11 ff ff 01 02 01 1a 90 00 a0 b2 01 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 02 04 1a b2 ff ff ff ff ff ff ff
-00 00 00 34 6f 40 04 00 11 ff ff 01 02 01 1a 90 00 a0 b2 01 04 1a b2 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 02 04 1a b2 ff ff ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff 90 00 a0 b2 02 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 04 04 0d b2 ff ff ff ff ff
-ff ff ff ff ff ff ff ff ff 90 00 a0 b2 02 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 04 04 0d b2 ff ff ff ff ff
-a0 b2 01 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 02 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
-a0 b2 01 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 02 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0 b2 03 04 0d b2 ff ff ff ff ff ff ff ff ff ff ff ff ff 90 00 a0
-00 11 ff ff 01 02 01 28 90 00 a0 dc 01 04 28 dc ff ff ff ff ff ff ff ff ff ff ff ff e1 ff ff ff ff ff ff ff ff ff ff ff ff 05 81 00 94 55 55 ff ff ff ff ff ff 00 00 00 90 00 a0 a4 00 00 02 a4
-00 11 ff ff 01 02 01 28 90 00 a0 dc 01 04 28 dc ff ff ff ff ff ff ff ff ff ff ff ff e1 ff ff ff ff ff ff ff ff ff ff ff ff 05 81 00 94 55 55 ff ff ff ff ff ff 00 00 00 90 00 a0 a4 00 00 02 a4
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-Timeout
-^CBye
-% kzsh: sysmocom_repo\ chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % [?1h=
-% kzsh: sysmocom_repo\ 1 chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % :([?1h=
diff --git a/usb_application/select.dump b/usb_application/select.dump
deleted file mode 100644
index 3f6a379..0000000
--- a/usb_application/select.dump
+++ /dev/null
@@ -1,29 +0,0 @@
-// ONLY sample code:
-Write msg
--I- pAPDU[0]=0x0
--I- pAPDU[1]=0xA4
--I- pAPDU[2]=0x0
--I- pAPDU[3]=0x0
--I- pAPDU[4]=0x2
--I- pAPDU[5]=0x3F
--I- wlength=7
--I- CASE=0x3 NeNc=0x2
--I- procByte: 0xA4
--I- HdlINS
--I- SW1=0x6E, SW2=0x0
-
-
-// SIMTRACE:
--I- typ=0x6F
--I- APDU cmd: a0 a4 0 ..-I- pAPDU[0]=0xA0
--I- pAPDU[1]=0xA4
--I- pAPDU[2]=0x0
--I- pAPDU[3]=0x0
--I- pAPDU[4]=0x2
--I- pAPDU[5]=0x3F
--I- wlength=7
--I- CASE=0x3 NeNc=0x2
--I- procByte: 0xA4
--I- HdlINS
--I- SW1=0x94, SW2=0x4
-
diff --git a/usb_application/simtrace.py b/usb_application/simtrace.py
deleted file mode 100755
index 48fd73a..0000000
--- a/usb_application/simtrace.py
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env python
-
-import argparse
-import sniffer
-import ccid
-import ccid_select
-import mitm
-
-import usb.core
-import usb.util
-import sys
-import time
-
-def find_dev():
- dev = usb.core.find(idVendor=0x1d50, idProduct=0x60e3)
- if dev is None:
- raise ValueError("Device not found")
- else:
- print("Found device")
- return dev
-
-# main code
-def main():
- parser = argparse.ArgumentParser()
-# FIXME: config names instead of numbers
- parser.add_argument("-C", "--conf", type=int, choices=[1, 2, 3, 4], help="Set USB config")
- parser.add_argument("-s", "--sniff", help="Sniff communication!", action='store_true')
- parser.add_argument("-S", "--select_file", help="Transmit SELECT cmd!", action='store_true')
- parser.add_argument("-p", "--phone", help="Emulates simcard", action='store_true')
- parser.add_argument("-m", "--mitm", help="Intercept communication (MITM)", action='store_true')
-
- args = parser.parse_args()
- print("args: ", args)
- dev = find_dev()
-
- if args.conf is not None:
- dev.set_configuration(args.conf)
- # Give pcsclite time to find the device
- time.sleep(1)
- if args.sniff is True:
- sniffer.sniff(dev)
-# FIXME: This command is test code and should be removed in near future:
- if args.select_file is True:
- ccid_select.select()
- if args.phone is True:
- mitm.do_mitm(dev, sim_emul=True)
- if args.mitm is True:
- mitm.do_mitm(dev, sim_emul=False)
- return
-
-main()
diff --git a/usb_application/simtrace_gemalto_dump b/usb_application/simtrace_gemalto_dump
deleted file mode 100644
index a6f8a50..0000000
--- a/usb_application/simtrace_gemalto_dump
+++ /dev/null
@@ -1,99 +0,0 @@
-chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % ./simtrace.py -b :(
-('args: ', Namespace(cmd=None, conf=None, read_bin=True, select_file=False, sniff=False))
-pcsc: wait_for_card
-Reading ...
-pdu: a0b000000a
-ICCID: 8949901701053518711
-pdu: a0b0000009
-IMSI: 901702391248819
-SMSP: ffffffffffffffffffffffffe1ffffffffffffffffffffffff058100945555ffffffffffff000000
-pdu: a0b0000002
-ACC: ffff
-MSISDN: Not available
-Done !
-
-chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % ./simtrace.py -S
-('args: ', Namespace(cmd=None, conf=None, read_bin=False, select_file=True, sniff=False))
-Context established!
-PCSC Readers: ['Gemalto USB Shell Token V2 00 00']
-Using reader: Gemalto USB Shell Token V2 00 00
-Connected with active protocol 1
-Select: 0x6E 0x00
-Command: 0x6E 0x00
-Disconnected
-Released context.
-
-
-BLAUE SIM:
-
-chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % ./simtrace.py -b
-('args: ', Namespace(cmd=None, conf=None, read_bin=True, select_file=False, sniff=False))
-pcsc: wait_for_card
-Reading ...
-pdu: a0b000000a
-ICCID: 8988211000000004534
-pdu: a0b0000009
-IMSI: Can't read, response code = 9804
-SMSP: Can't read, response code = 9804
-pdu: a0b0000042
-HPLMN: Can't read, response code = 9804
-pdu: a0b0000002
-ACC: Can't read, response code = 9804
-MSISDN: Can't read, response code = 9804
-Done !
-
-
-chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % ./simtrace.py -S
-('args: ', Namespace(cmd=None, conf=None, read_bin=False, select_file=True, sniff=False))
-Context established!
-PCSC Readers: ['Gemalto USB Shell Token V2 00 00']
-Using reader: Gemalto USB Shell Token V2 00 00
-Connected with active protocol 1
-Select: 0x6E 0x00
-Command: 0x6D 0x00
-Disconnected
-Released context.
-
-
-WEISSE SIM:
-
-chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % ./simtrace.py -S
-('args: ', Namespace(cmd=None, conf=None, read_bin=False, select_file=True, sniff=False))
-Context established!
-PCSC Readers: ['Gemalto USB Shell Token V2 01 00']
-Using reader: Gemalto USB Shell Token V2 01 00
-Connected with active protocol 1
-Select: 0x6E 0x00
-Command: 0x6E 0x00
-Disconnected
-Released context.
-
-chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % ./simtrace.py -b
-('args: ', Namespace(cmd=None, conf=None, read_bin=True, select_file=False, sniff=False))
-pcsc: wait_for_card
-Reading ...
-pdu: a0b000000a
-ICCID: 8949901701053518711
-pdu: a0b0000009
-IMSI: 901702391248819
-ßSMSP: ffffffffffffffffffffffffe1ffffffffffffffffffffffff058100945555ffffffffffff000000
-pdu: a0b000002d
-HPLMN: 09f107ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-('Unexpected error:', <type 'exceptions.NameError'>)
-pdu: a0b0000002
-ACC: ffff
-MSISDN: Not available
-Done !
-
-
-WEISE SIM mit SELECT vom file:
-chrysh@gearbox ..a_thesis/sysmocom_repo/usb_application (git)-[master] % ./simtrace.py -S
-('args: ', Namespace(cmd=None, conf=None, read_bin=False, select_file=True, sniff=False))
-Context established!
-PCSC Readers: ['Gemalto USB Shell Token V2 01 00']
-Using reader: Gemalto USB Shell Token V2 01 00
-Connected with active protocol 1
-Select: 0x9F 0x16
-Command: 0x6E 0x00
-Disconnected
-Released context.
diff --git a/usb_application/smartcard_emulator.py b/usb_application/smartcard_emulator.py
deleted file mode 100644
index 7cf27c1..0000000
--- a/usb_application/smartcard_emulator.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env python
-
-import constants
-import array
-
-INS = 1
-LEN = 4
-
-class SmartCardEmulator:
- def getATR(self):
- return array.array('B', constants.ATR_SYSMOCOM1)
-
- def send_receive_cmd(self, cmd):
- if cmd[INS] == 0xA4:
- resp = [0x9F, 0x16]
- elif cmd == [0xff, 0x00, 0xff]:
- resp = cmd
- elif len(cmd) == 5 and cmd[INS] == 0xC0:
- data = self.ans_from_len[cmd[LEN]]
- SW = [0x90, 0x00]
- resp = data + SW # Respond with INS byte
- #state = WAIT_RST
- else:
- print("Unknown cmd")
- resp = [0x60, 0x00]
-
- print("Cmd, resp: ")
- print("".join("%02x " % b for b in cmd))
- print("".join("%02x " % b for b in resp))
-
- return array.array('B', resp)
-
- def reset_card():
- pass
-
- def close(self):
- pass
-
- ans_from_len = {0x16: [0x00, 0x00, 0x00, 0x00, 0x7F, 0x20, 0x02, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x09, 0x91, 0x00, 0x17,
- 0x04, 0x00, 0x83, 0x8A, 0x83, 0x8A],
- }
diff --git a/usb_application/sniffer.py b/usb_application/sniffer.py
deleted file mode 100755
index ea6d5ef..0000000
--- a/usb_application/sniffer.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env python3
-
-import usb.core
-import usb.util
-import sys
-import array
-
-from apdu_split import Apdu_splitter, apdu_states
-from gsmtap import gsmtap_send_apdu
-
-from constants import PHONE_RD, ERR_TIMEOUT, ERR_NO_SUCH_DEV
-
-# main code
-def sniff(dev):
- ans = array.array('B', [])
-
- apdus = []
- apdu = Apdu_splitter()
-
- while True:
- try:
- ans += dev.read(PHONE_RD, 64, 1000)
- except KeyboardInterrupt:
- print("Bye")
- sys.exit()
- except Exception as e:
- if e.errno != ERR_TIMEOUT and e.errno != ERR_NO_SUCH_DEV:
- raise
- print e
-
- if len(ans) >= 1:
-# print("".join("%02x " % b for b in ans))
- for c in ans:
- apdu.split(c)
- if apdu.state == apdu_states.APDU_S_FIN:
- apdus.append(apdu)
- gsmtap_send_apdu(apdu.buf)
- apdu = Apdu_splitter()
- ans = array.array('B', [])
diff --git a/usb_application/usb_enum.py b/usb_application/usb_enum.py
deleted file mode 100755
index 69bf8ba..0000000
--- a/usb_application/usb_enum.py
+++ /dev/null
@@ -1,39 +0,0 @@
-import usb.core
-import usb.util
-import sys
-
-dev = usb.core.find(idVendor=0x03eb, idProduct=0x6004)
-
-if dev is None:
- raise ValueError("Device not found")
-else:
- print("Found device")
-
-dev.set_configuration()
-
-cfg = dev.get_active_configuration()
-print("Active config: ")
-print(cfg)
-print("NumConfigs: " + str(dev.bNumConfigurations))
-#print(cfg.configurations)
-
-
-print("***")
-for cfg in dev:
- print("*** Next configs: ")
- print(cfg)
-
-print("~~~~~~")
-#cfg = usb.util.find_descriptor(dev, bConfiguration=0)
-
-# nur config(1) funktioniert
-# config(0): Device haengt
-# config(2): usb.core.USBError: [Errno 2] Entity not found
-print("dev.set_configuration(" + sys.argv[1] + ")")
-dev.set_configuration(int(sys.argv[1]))
-
-print("*** New config: ")
-cfg = dev.get_active_configuration()
-print(cfg)
-
-
diff --git a/usb_application/util.py b/usb_application/util.py
deleted file mode 100644
index 15906bf..0000000
--- a/usb_application/util.py
+++ /dev/null
@@ -1,7 +0,0 @@
-
-def HEX(vals):
- if vals is not None:
- if type(vals) is int:
- return "%.2x"%vals
- return ' '.join('%.2x'%x for x in vals)
- return ''