Mercurial > bbutils
view bbutils.inc @ 320:4717731f83d2
slightly faster strDecodeHTMLEntities
author | benibela <benito@benibela.de> |
---|---|
date | Sun, 20 Dec 2020 11:45:24 +0100 |
parents | 8db70da108c3 |
children |
line wrap: on
line source
function arrayAdd(var a: TStringArray; const e: string): SizeInt; begin result:=length(a); setlength(a,result+1); a[result]:=e; end; function arrayAdd(var a: TStringArray; const a2: array of string):SizeInt; var i: SizeInt; begin result := length(a); setlength(a, result + length(a2)); for i:=result to high(a) do a[i] := a2[i - result]; end; procedure arrayPrepend(var a: TStringArray; const e: string); begin SetLength(a, length(a) + 1); if length(a) >= 2 then move(a[0], a[1], (length(a) - 1) * sizeof(a[0])); FillChar(a[0], sizeof(a[0]), 0); a[0] := e; end; function arrayDelete(var a: TStringArray; const i: SizeInt): string; begin if (i<0) or (i>high(a)) then begin result := ''; exit; end; result := a[i]; if i < high(a) then strMoveRef(a[i+1], a[i], (high(a) - i) * sizeof(a[0])); SetLength(a,high(a)); end; function arrayDeleteUnordered(var a: TStringArray; const i: SizeInt): string; begin if (i<0) or (i>high(a)) then begin result := ''; exit; end; result:=a[i]; a[i]:=a[high(a)]; SetLength(a,high(a)); end; procedure arrayReserveFast(var a: TStringArray; const len: SizeInt; const reserveLength: SizeInt); begin if reserveLength <= len then exit; if reserveLength <= length(a) then exit; if reserveLength <= 4 then SetLength(a, 4) else if reserveLength <= 16 then SetLength(a, 16) else if (len <= 1024) and (reserveLength <= 2*len) then SetLength(a, 2*len) else if (length(a) <= 1024) and (reserveLength <= 2*length(a)) then SetLength(a, 2*length(a)) else if (reserveLength <= len+1024) then SetLength(a, len+1024) else if (reserveLength <= length(a)+1024) then SetLength(a, length(a)+1024) else SetLength(a, reserveLength); end; function arrayAddFast(var a: TStringArray; var len: SizeInt; const e: string): SizeInt; begin if len >= length(a) then arrayReserveFast(a, len, len+1); result:=len; inc(len); a[result] := e; end; procedure arrayPrependFast(var a: TStringArray; var len: SizeInt; const e: string); begin if len >= length(a) then arrayReserveFast(a, len, len+1); inc(len); if len >= 2 then strMoveRef(a[0], a[1], (len - 1) * sizeof(a[0])); a[0] := e; end; function arrayDeleteFast(var a: TStringArray; var len: SizeInt; const i: SizeInt): string; begin if (i<0) or (i>=len) then begin result := ''; exit; end; result:=a[i]; if i < high(a) then strMoveRef(a[i+1], a[i], (high(a) - i) * sizeof(a[0])); dec(len); end; function arrayDeleteUnorderedFast(var a: TStringArray; var len: SizeInt; const i: SizeInt): string; begin if (i<0) or (i>=len) then begin result := ''; exit; end; result:=a[i]; dec(len); a[i]:=a[len]; end; procedure arrayInsert(var a: TStringArray; i: SizeInt; const e: string); begin if (i < 0) then i := 0 else if i > length(a) then i := length(a); SetLength(a, length(a) + 1); if i + 1 <= high(a) then strMoveRef(a[i], a[i+1], (high(a) - i) * sizeof(a[0])); a[i] := e; end; procedure arrayInsertFast(var a: TStringArray; var len: SizeInt; i: SizeInt; const e: string); var oldlen: SizeInt; begin oldlen := len; if i >= length(a) then arrayReserveFast(a, len, i+1) else if length(a) < oldlen + 1 then arrayReserveFast(a, len, len + 1); if i + 1 <= oldlen then begin strMoveRef(a[i], a[i+1], (oldlen - i) * sizeof(a[0]) ); end; a[i] := e; len := len + 1; end; function arrayIndexOf(const a: array of string; const e: string; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); for i:=slice1 to slice2 do if a[i] = e then begin result := i; exit; end; result:=-1; end; function arraySlice(a: array of string; slice1: SizeInt; slice2: SizeInt ): TStringArray; var i: SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := nil; SetLength(result, slice2-slice1+1); for i:=0 to high(result) do result[i] := a[slice1+i]; end; function arrayIndexOfSmallest(const a: array of string; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := slice1; for i:=slice1+1 to slice2 do if a[i] < a[result] then Result:=i; end; function arrayIndexOfLargest(const a: array of string; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := slice1; for i:=slice1+1 to slice2 do if a[i] > a[result] then Result:=i; end; function arrayContains(const a: array of string; const e: string; slice1: SizeInt; slice2: SizeInt): boolean; begin result := arrayIndexOf(a, e, slice1, slice2) >= 0; end; procedure arrayInvert(a: TStringArray; slice1: SizeInt; slice2: SizeInt); var temp: string; i: SizeInt; begin arraySliceIndices(high(a), slice1, slice2); for i:=0 to (slice2-slice1) div 2 do begin temp:=a[slice1+i]; a[slice1+i] := a[slice2-i]; a[slice2-i]:=temp; end; end; function arrayGet(a: array of string; const i: SizeInt): string; begin if i < 0 then result:=a[length(a) + i] else result := a[i]; end; function arrayLast(a: array of string): string; begin if length(a) = 0 then raise Exception.Create('array empty'); result := a[high(a)]; end; function arrayLast(a: array of string; const default: string): string; begin if length(a) = 0 then result := default else result := a[high(a)]; end; function arrayCompare(a, b: array of string; slice1a: SizeInt; slice1b: SizeInt; slice2a: SizeInt; slice2b: SizeInt): longint; var i: SizeInt; begin arraySliceIndices(high(a), slice1a, slice2a); arraySliceIndices(high(b), slice1b, slice2b); if slice2a - slice1a < slice2b - slice1b then begin result := -1; exit; end; if slice2a - slice1a > slice2b - slice1b then begin result := 1; exit; end; for i:=0 to slice2a - slice1a do if a[slice1a+i] <> b[slice1b+i] then begin if a[slice1a+i] < b[slice1b+i] then result := -1 else result := 1; exit; end; result := 0; end; function arrayEqual(a, b: array of string; slice1a: SizeInt; slice1b: SizeInt; slice2a: SizeInt; slice2b: SizeInt): boolean; begin result := arrayCompare(a,b,slice1a, slice1b, slice2a, slice2b) = 0; end; function arrayAdd(var a: TLongintArray; const e: longint): SizeInt; begin result:=length(a); setlength(a,result+1); a[result]:=e; end; function arrayAdd(var a: TLongintArray; const a2: array of longint):SizeInt; var i: SizeInt; begin result := length(a); setlength(a, result + length(a2)); for i:=result to high(a) do a[i] := a2[i - result]; end; procedure arrayPrepend(var a: TLongintArray; const e: longint); begin SetLength(a, length(a) + 1); if length(a) >= 2 then move(a[0], a[1], (length(a) - 1) * sizeof(a[0])); a[0] := e; end; function arrayDelete(var a: TLongintArray; const i: SizeInt): longint; begin if (i<0) or (i>high(a)) then begin result := 0; exit; end; result := a[i]; if i < high(a) then move(a[i+1], a[i], (high(a) - i) * sizeof(a[0])); SetLength(a,high(a)); end; function arrayDeleteUnordered(var a: TLongintArray; const i: SizeInt): longint; begin if (i<0) or (i>high(a)) then begin result := 0; exit; end; result:=a[i]; a[i]:=a[high(a)]; SetLength(a,high(a)); end; procedure arrayReserveFast(var a: TLongintArray; const len: SizeInt; const reserveLength: SizeInt); begin if reserveLength <= len then exit; if reserveLength <= length(a) then exit; if reserveLength <= 4 then SetLength(a, 4) else if reserveLength <= 16 then SetLength(a, 16) else if (len <= 1024) and (reserveLength <= 2*len) then SetLength(a, 2*len) else if (length(a) <= 1024) and (reserveLength <= 2*length(a)) then SetLength(a, 2*length(a)) else if (reserveLength <= len+1024) then SetLength(a, len+1024) else if (reserveLength <= length(a)+1024) then SetLength(a, length(a)+1024) else SetLength(a, reserveLength); end; function arrayAddFast(var a: TLongintArray; var len: SizeInt; const e: longint): SizeInt; begin if len >= length(a) then arrayReserveFast(a, len, len+1); result:=len; inc(len); a[result] := e; end; procedure arrayPrependFast(var a: TLongintArray; var len: SizeInt; const e: longint); begin if len >= length(a) then arrayReserveFast(a, len, len+1); inc(len); if len >= 2 then move(a[0], a[1], (len - 1) * sizeof(a[0])); a[0] := e; end; function arrayDeleteFast(var a: TLongintArray; var len: SizeInt; const i: SizeInt): longint; begin if (i<0) or (i>=len) then begin result := 0; exit; end; result:=a[i]; if i < high(a) then move(a[i+1], a[i], (high(a) - i) * sizeof(a[0])); dec(len); end; function arrayDeleteUnorderedFast(var a: TLongintArray; var len: SizeInt; const i: SizeInt): longint; begin if (i<0) or (i>=len) then begin result := 0; exit; end; result:=a[i]; dec(len); a[i]:=a[len]; end; procedure arrayInsert(var a: TLongintArray; i: SizeInt; const e: longint); begin if (i < 0) then i := 0 else if i > length(a) then i := length(a); SetLength(a, length(a) + 1); if i + 1 <= high(a) then move(a[i], a[i+1], (high(a) - i) * sizeof(a[0])); a[i] := e; end; procedure arrayInsertFast(var a: TLongintArray; var len: SizeInt; i: SizeInt; const e: longint); var oldlen: SizeInt; begin oldlen := len; if i >= length(a) then arrayReserveFast(a, len, i+1) else if length(a) < oldlen + 1 then arrayReserveFast(a, len, len + 1); if i + 1 <= oldlen then begin move (a[i], a[i+1], (oldlen - i) * sizeof(a[0]) ); end; a[i] := e; len := len + 1; end; function arrayIndexOf(const a: array of longint; const e: longint; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); for i:=slice1 to slice2 do if a[i] = e then begin result := i; exit; end; result:=-1; end; function arraySlice(a: array of longint; slice1: SizeInt; slice2: SizeInt ): TLongintArray; var i: SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := nil; SetLength(result, slice2-slice1+1); for i:=0 to high(result) do result[i] := a[slice1+i]; end; function arrayIndexOfSmallest(const a: array of longint; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := slice1; for i:=slice1+1 to slice2 do if a[i] < a[result] then Result:=i; end; function arrayIndexOfLargest(const a: array of longint; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := slice1; for i:=slice1+1 to slice2 do if a[i] > a[result] then Result:=i; end; function arrayContains(const a: array of longint; const e: longint; slice1: SizeInt; slice2: SizeInt): boolean; begin result := arrayIndexOf(a, e, slice1, slice2) >= 0; end; procedure arrayInvert(a: TLongintArray; slice1: SizeInt; slice2: SizeInt); var temp: longint; i: SizeInt; begin arraySliceIndices(high(a), slice1, slice2); for i:=0 to (slice2-slice1) div 2 do begin temp:=a[slice1+i]; a[slice1+i] := a[slice2-i]; a[slice2-i]:=temp; end; end; function arrayGet(a: array of longint; const i: SizeInt): longint; begin if i < 0 then result:=a[length(a) + i] else result := a[i]; end; function arrayLast(a: array of longint): longint; begin if length(a) = 0 then raise Exception.Create('array empty'); result := a[high(a)]; end; function arrayLast(a: array of longint; const default: longint): longint; begin if length(a) = 0 then result := default else result := a[high(a)]; end; function arrayCompare(a, b: array of longint; slice1a: SizeInt; slice1b: SizeInt; slice2a: SizeInt; slice2b: SizeInt): longint; var i: SizeInt; begin arraySliceIndices(high(a), slice1a, slice2a); arraySliceIndices(high(b), slice1b, slice2b); if slice2a - slice1a < slice2b - slice1b then begin result := -1; exit; end; if slice2a - slice1a > slice2b - slice1b then begin result := 1; exit; end; for i:=0 to slice2a - slice1a do if a[slice1a+i] <> b[slice1b+i] then begin if a[slice1a+i] < b[slice1b+i] then result := -1 else result := 1; exit; end; result := 0; end; function arrayEqual(a, b: array of longint; slice1a: SizeInt; slice1b: SizeInt; slice2a: SizeInt; slice2b: SizeInt): boolean; begin result := arrayCompare(a,b,slice1a, slice1b, slice2a, slice2b) = 0; end; function arrayAdd(var a: TLongwordArray; const e: longword): SizeInt; begin result:=length(a); setlength(a,result+1); a[result]:=e; end; function arrayAdd(var a: TLongwordArray; const a2: array of longword):SizeInt; var i: SizeInt; begin result := length(a); setlength(a, result + length(a2)); for i:=result to high(a) do a[i] := a2[i - result]; end; procedure arrayPrepend(var a: TLongwordArray; const e: longword); begin SetLength(a, length(a) + 1); if length(a) >= 2 then move(a[0], a[1], (length(a) - 1) * sizeof(a[0])); a[0] := e; end; function arrayDelete(var a: TLongwordArray; const i: SizeInt): longword; begin if (i<0) or (i>high(a)) then begin result := 0; exit; end; result := a[i]; if i < high(a) then move(a[i+1], a[i], (high(a) - i) * sizeof(a[0])); SetLength(a,high(a)); end; function arrayDeleteUnordered(var a: TLongwordArray; const i: SizeInt): longword; begin if (i<0) or (i>high(a)) then begin result := 0; exit; end; result:=a[i]; a[i]:=a[high(a)]; SetLength(a,high(a)); end; procedure arrayReserveFast(var a: TLongwordArray; const len: SizeInt; const reserveLength: SizeInt); begin if reserveLength <= len then exit; if reserveLength <= length(a) then exit; if reserveLength <= 4 then SetLength(a, 4) else if reserveLength <= 16 then SetLength(a, 16) else if (len <= 1024) and (reserveLength <= 2*len) then SetLength(a, 2*len) else if (length(a) <= 1024) and (reserveLength <= 2*length(a)) then SetLength(a, 2*length(a)) else if (reserveLength <= len+1024) then SetLength(a, len+1024) else if (reserveLength <= length(a)+1024) then SetLength(a, length(a)+1024) else SetLength(a, reserveLength); end; function arrayAddFast(var a: TLongwordArray; var len: SizeInt; const e: longword): SizeInt; begin if len >= length(a) then arrayReserveFast(a, len, len+1); result:=len; inc(len); a[result] := e; end; procedure arrayPrependFast(var a: TLongwordArray; var len: SizeInt; const e: longword); begin if len >= length(a) then arrayReserveFast(a, len, len+1); inc(len); if len >= 2 then move(a[0], a[1], (len - 1) * sizeof(a[0])); a[0] := e; end; function arrayDeleteFast(var a: TLongwordArray; var len: SizeInt; const i: SizeInt): longword; begin if (i<0) or (i>=len) then begin result := 0; exit; end; result:=a[i]; if i < high(a) then move(a[i+1], a[i], (high(a) - i) * sizeof(a[0])); dec(len); end; function arrayDeleteUnorderedFast(var a: TLongwordArray; var len: SizeInt; const i: SizeInt): longword; begin if (i<0) or (i>=len) then begin result := 0; exit; end; result:=a[i]; dec(len); a[i]:=a[len]; end; procedure arrayInsert(var a: TLongwordArray; i: SizeInt; const e: longword); begin if (i < 0) then i := 0 else if i > length(a) then i := length(a); SetLength(a, length(a) + 1); if i + 1 <= high(a) then move(a[i], a[i+1], (high(a) - i) * sizeof(a[0])); a[i] := e; end; procedure arrayInsertFast(var a: TLongwordArray; var len: SizeInt; i: SizeInt; const e: longword); var oldlen: SizeInt; begin oldlen := len; if i >= length(a) then arrayReserveFast(a, len, i+1) else if length(a) < oldlen + 1 then arrayReserveFast(a, len, len + 1); if i + 1 <= oldlen then begin move (a[i], a[i+1], (oldlen - i) * sizeof(a[0]) ); end; a[i] := e; len := len + 1; end; function arrayIndexOf(const a: array of longword; const e: longword; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); for i:=slice1 to slice2 do if a[i] = e then begin result := i; exit; end; result:=-1; end; function arraySlice(a: array of longword; slice1: SizeInt; slice2: SizeInt ): TLongwordArray; var i: SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := nil; SetLength(result, slice2-slice1+1); for i:=0 to high(result) do result[i] := a[slice1+i]; end; function arrayIndexOfSmallest(const a: array of longword; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := slice1; for i:=slice1+1 to slice2 do if a[i] < a[result] then Result:=i; end; function arrayIndexOfLargest(const a: array of longword; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := slice1; for i:=slice1+1 to slice2 do if a[i] > a[result] then Result:=i; end; function arrayContains(const a: array of longword; const e: longword; slice1: SizeInt; slice2: SizeInt): boolean; begin result := arrayIndexOf(a, e, slice1, slice2) >= 0; end; procedure arrayInvert(a: TLongwordArray; slice1: SizeInt; slice2: SizeInt); var temp: longword; i: SizeInt; begin arraySliceIndices(high(a), slice1, slice2); for i:=0 to (slice2-slice1) div 2 do begin temp:=a[slice1+i]; a[slice1+i] := a[slice2-i]; a[slice2-i]:=temp; end; end; function arrayGet(a: array of longword; const i: SizeInt): longword; begin if i < 0 then result:=a[length(a) + i] else result := a[i]; end; function arrayLast(a: array of longword): longword; begin if length(a) = 0 then raise Exception.Create('array empty'); result := a[high(a)]; end; function arrayLast(a: array of longword; const default: longword): longword; begin if length(a) = 0 then result := default else result := a[high(a)]; end; function arrayCompare(a, b: array of longword; slice1a: SizeInt; slice1b: SizeInt; slice2a: SizeInt; slice2b: SizeInt): longint; var i: SizeInt; begin arraySliceIndices(high(a), slice1a, slice2a); arraySliceIndices(high(b), slice1b, slice2b); if slice2a - slice1a < slice2b - slice1b then begin result := -1; exit; end; if slice2a - slice1a > slice2b - slice1b then begin result := 1; exit; end; for i:=0 to slice2a - slice1a do if a[slice1a+i] <> b[slice1b+i] then begin if a[slice1a+i] < b[slice1b+i] then result := -1 else result := 1; exit; end; result := 0; end; function arrayEqual(a, b: array of longword; slice1a: SizeInt; slice1b: SizeInt; slice2a: SizeInt; slice2b: SizeInt): boolean; begin result := arrayCompare(a,b,slice1a, slice1b, slice2a, slice2b) = 0; end; function arrayAdd(var a: TInt64Array; const e: int64): SizeInt; begin result:=length(a); setlength(a,result+1); a[result]:=e; end; function arrayAdd(var a: TInt64Array; const a2: array of int64):SizeInt; var i: SizeInt; begin result := length(a); setlength(a, result + length(a2)); for i:=result to high(a) do a[i] := a2[i - result]; end; procedure arrayPrepend(var a: TInt64Array; const e: int64); begin SetLength(a, length(a) + 1); if length(a) >= 2 then move(a[0], a[1], (length(a) - 1) * sizeof(a[0])); a[0] := e; end; function arrayDelete(var a: TInt64Array; const i: SizeInt): int64; begin if (i<0) or (i>high(a)) then begin result := 0; exit; end; result := a[i]; if i < high(a) then move(a[i+1], a[i], (high(a) - i) * sizeof(a[0])); SetLength(a,high(a)); end; function arrayDeleteUnordered(var a: TInt64Array; const i: SizeInt): int64; begin if (i<0) or (i>high(a)) then begin result := 0; exit; end; result:=a[i]; a[i]:=a[high(a)]; SetLength(a,high(a)); end; procedure arrayReserveFast(var a: TInt64Array; const len: SizeInt; const reserveLength: SizeInt); begin if reserveLength <= len then exit; if reserveLength <= length(a) then exit; if reserveLength <= 4 then SetLength(a, 4) else if reserveLength <= 16 then SetLength(a, 16) else if (len <= 1024) and (reserveLength <= 2*len) then SetLength(a, 2*len) else if (length(a) <= 1024) and (reserveLength <= 2*length(a)) then SetLength(a, 2*length(a)) else if (reserveLength <= len+1024) then SetLength(a, len+1024) else if (reserveLength <= length(a)+1024) then SetLength(a, length(a)+1024) else SetLength(a, reserveLength); end; function arrayAddFast(var a: TInt64Array; var len: SizeInt; const e: int64): SizeInt; begin if len >= length(a) then arrayReserveFast(a, len, len+1); result:=len; inc(len); a[result] := e; end; procedure arrayPrependFast(var a: TInt64Array; var len: SizeInt; const e: int64); begin if len >= length(a) then arrayReserveFast(a, len, len+1); inc(len); if len >= 2 then move(a[0], a[1], (len - 1) * sizeof(a[0])); a[0] := e; end; function arrayDeleteFast(var a: TInt64Array; var len: SizeInt; const i: SizeInt): int64; begin if (i<0) or (i>=len) then begin result := 0; exit; end; result:=a[i]; if i < high(a) then move(a[i+1], a[i], (high(a) - i) * sizeof(a[0])); dec(len); end; function arrayDeleteUnorderedFast(var a: TInt64Array; var len: SizeInt; const i: SizeInt): int64; begin if (i<0) or (i>=len) then begin result := 0; exit; end; result:=a[i]; dec(len); a[i]:=a[len]; end; procedure arrayInsert(var a: TInt64Array; i: SizeInt; const e: int64); begin if (i < 0) then i := 0 else if i > length(a) then i := length(a); SetLength(a, length(a) + 1); if i + 1 <= high(a) then move(a[i], a[i+1], (high(a) - i) * sizeof(a[0])); a[i] := e; end; procedure arrayInsertFast(var a: TInt64Array; var len: SizeInt; i: SizeInt; const e: int64); var oldlen: SizeInt; begin oldlen := len; if i >= length(a) then arrayReserveFast(a, len, i+1) else if length(a) < oldlen + 1 then arrayReserveFast(a, len, len + 1); if i + 1 <= oldlen then begin move (a[i], a[i+1], (oldlen - i) * sizeof(a[0]) ); end; a[i] := e; len := len + 1; end; function arrayIndexOf(const a: array of int64; const e: int64; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); for i:=slice1 to slice2 do if a[i] = e then begin result := i; exit; end; result:=-1; end; function arraySlice(a: array of int64; slice1: SizeInt; slice2: SizeInt ): TInt64Array; var i: SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := nil; SetLength(result, slice2-slice1+1); for i:=0 to high(result) do result[i] := a[slice1+i]; end; function arrayIndexOfSmallest(const a: array of int64; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := slice1; for i:=slice1+1 to slice2 do if a[i] < a[result] then Result:=i; end; function arrayIndexOfLargest(const a: array of int64; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := slice1; for i:=slice1+1 to slice2 do if a[i] > a[result] then Result:=i; end; function arrayContains(const a: array of int64; const e: int64; slice1: SizeInt; slice2: SizeInt): boolean; begin result := arrayIndexOf(a, e, slice1, slice2) >= 0; end; procedure arrayInvert(a: TInt64Array; slice1: SizeInt; slice2: SizeInt); var temp: int64; i: SizeInt; begin arraySliceIndices(high(a), slice1, slice2); for i:=0 to (slice2-slice1) div 2 do begin temp:=a[slice1+i]; a[slice1+i] := a[slice2-i]; a[slice2-i]:=temp; end; end; function arrayGet(a: array of int64; const i: SizeInt): int64; begin if i < 0 then result:=a[length(a) + i] else result := a[i]; end; function arrayLast(a: array of int64): int64; begin if length(a) = 0 then raise Exception.Create('array empty'); result := a[high(a)]; end; function arrayLast(a: array of int64; const default: int64): int64; begin if length(a) = 0 then result := default else result := a[high(a)]; end; function arrayCompare(a, b: array of int64; slice1a: SizeInt; slice1b: SizeInt; slice2a: SizeInt; slice2b: SizeInt): longint; var i: SizeInt; begin arraySliceIndices(high(a), slice1a, slice2a); arraySliceIndices(high(b), slice1b, slice2b); if slice2a - slice1a < slice2b - slice1b then begin result := -1; exit; end; if slice2a - slice1a > slice2b - slice1b then begin result := 1; exit; end; for i:=0 to slice2a - slice1a do if a[slice1a+i] <> b[slice1b+i] then begin if a[slice1a+i] < b[slice1b+i] then result := -1 else result := 1; exit; end; result := 0; end; function arrayEqual(a, b: array of int64; slice1a: SizeInt; slice1b: SizeInt; slice2a: SizeInt; slice2b: SizeInt): boolean; begin result := arrayCompare(a,b,slice1a, slice1b, slice2a, slice2b) = 0; end; function arrayAdd(var a: TFloatArray; const e: float): SizeInt; begin result:=length(a); setlength(a,result+1); a[result]:=e; end; function arrayAdd(var a: TFloatArray; const a2: array of float):SizeInt; var i: SizeInt; begin result := length(a); setlength(a, result + length(a2)); for i:=result to high(a) do a[i] := a2[i - result]; end; procedure arrayPrepend(var a: TFloatArray; const e: float); begin SetLength(a, length(a) + 1); if length(a) >= 2 then move(a[0], a[1], (length(a) - 1) * sizeof(a[0])); a[0] := e; end; function arrayDelete(var a: TFloatArray; const i: SizeInt): float; begin if (i<0) or (i>high(a)) then begin result := 0; exit; end; result := a[i]; if i < high(a) then move(a[i+1], a[i], (high(a) - i) * sizeof(a[0])); SetLength(a,high(a)); end; function arrayDeleteUnordered(var a: TFloatArray; const i: SizeInt): float; begin if (i<0) or (i>high(a)) then begin result := 0; exit; end; result:=a[i]; a[i]:=a[high(a)]; SetLength(a,high(a)); end; procedure arrayReserveFast(var a: TFloatArray; const len: SizeInt; const reserveLength: SizeInt); begin if reserveLength <= len then exit; if reserveLength <= length(a) then exit; if reserveLength <= 4 then SetLength(a, 4) else if reserveLength <= 16 then SetLength(a, 16) else if (len <= 1024) and (reserveLength <= 2*len) then SetLength(a, 2*len) else if (length(a) <= 1024) and (reserveLength <= 2*length(a)) then SetLength(a, 2*length(a)) else if (reserveLength <= len+1024) then SetLength(a, len+1024) else if (reserveLength <= length(a)+1024) then SetLength(a, length(a)+1024) else SetLength(a, reserveLength); end; function arrayAddFast(var a: TFloatArray; var len: SizeInt; const e: float): SizeInt; begin if len >= length(a) then arrayReserveFast(a, len, len+1); result:=len; inc(len); a[result] := e; end; procedure arrayPrependFast(var a: TFloatArray; var len: SizeInt; const e: float); begin if len >= length(a) then arrayReserveFast(a, len, len+1); inc(len); if len >= 2 then move(a[0], a[1], (len - 1) * sizeof(a[0])); a[0] := e; end; function arrayDeleteFast(var a: TFloatArray; var len: SizeInt; const i: SizeInt): float; begin if (i<0) or (i>=len) then begin result := 0; exit; end; result:=a[i]; if i < high(a) then move(a[i+1], a[i], (high(a) - i) * sizeof(a[0])); dec(len); end; function arrayDeleteUnorderedFast(var a: TFloatArray; var len: SizeInt; const i: SizeInt): float; begin if (i<0) or (i>=len) then begin result := 0; exit; end; result:=a[i]; dec(len); a[i]:=a[len]; end; procedure arrayInsert(var a: TFloatArray; i: SizeInt; const e: float); begin if (i < 0) then i := 0 else if i > length(a) then i := length(a); SetLength(a, length(a) + 1); if i + 1 <= high(a) then move(a[i], a[i+1], (high(a) - i) * sizeof(a[0])); a[i] := e; end; procedure arrayInsertFast(var a: TFloatArray; var len: SizeInt; i: SizeInt; const e: float); var oldlen: SizeInt; begin oldlen := len; if i >= length(a) then arrayReserveFast(a, len, i+1) else if length(a) < oldlen + 1 then arrayReserveFast(a, len, len + 1); if i + 1 <= oldlen then begin move (a[i], a[i+1], (oldlen - i) * sizeof(a[0]) ); end; a[i] := e; len := len + 1; end; function arrayIndexOf(const a: array of float; const e: float; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); for i:=slice1 to slice2 do if a[i] = e then begin result := i; exit; end; result:=-1; end; function arraySlice(a: array of float; slice1: SizeInt; slice2: SizeInt ): TFloatArray; var i: SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := nil; SetLength(result, slice2-slice1+1); for i:=0 to high(result) do result[i] := a[slice1+i]; end; function arrayIndexOfSmallest(const a: array of float; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := slice1; for i:=slice1+1 to slice2 do if a[i] < a[result] then Result:=i; end; function arrayIndexOfLargest(const a: array of float; slice1: SizeInt; slice2: SizeInt): SizeInt; var i:SizeInt; begin arraySliceIndices(high(a), slice1, slice2); result := slice1; for i:=slice1+1 to slice2 do if a[i] > a[result] then Result:=i; end; function arrayContains(const a: array of float; const e: float; slice1: SizeInt; slice2: SizeInt): boolean; begin result := arrayIndexOf(a, e, slice1, slice2) >= 0; end; procedure arrayInvert(a: TFloatArray; slice1: SizeInt; slice2: SizeInt); var temp: float; i: SizeInt; begin arraySliceIndices(high(a), slice1, slice2); for i:=0 to (slice2-slice1) div 2 do begin temp:=a[slice1+i]; a[slice1+i] := a[slice2-i]; a[slice2-i]:=temp; end; end; function arrayGet(a: array of float; const i: SizeInt): float; begin if i < 0 then result:=a[length(a) + i] else result := a[i]; end; function arrayLast(a: array of float): float; begin if length(a) = 0 then raise Exception.Create('array empty'); result := a[high(a)]; end; function arrayLast(a: array of float; const default: float): float; begin if length(a) = 0 then result := default else result := a[high(a)]; end; function arrayCompare(a, b: array of float; slice1a: SizeInt; slice1b: SizeInt; slice2a: SizeInt; slice2b: SizeInt): longint; var i: SizeInt; begin arraySliceIndices(high(a), slice1a, slice2a); arraySliceIndices(high(b), slice1b, slice2b); if slice2a - slice1a < slice2b - slice1b then begin result := -1; exit; end; if slice2a - slice1a > slice2b - slice1b then begin result := 1; exit; end; for i:=0 to slice2a - slice1a do if a[slice1a+i] <> b[slice1b+i] then begin if a[slice1a+i] < b[slice1b+i] then result := -1 else result := 1; exit; end; result := 0; end; function arrayEqual(a, b: array of float; slice1a: SizeInt; slice1b: SizeInt; slice2a: SizeInt; slice2b: SizeInt): boolean; begin result := arrayCompare(a,b,slice1a, slice1b, slice2a, slice2b) = 0; end; //=========================Conditional additions====================== function unequal(const a, b: integer): boolean; begin result := a <> b; end; function unequal(const a, b, c: integer): boolean; begin result := (a <> b) or (a <> c) or (b <> c); end; function unequal(const a: array of integer): boolean; var i,j: SizeInt; begin result := true; for i:=0 to high(a) do for j:=0 to i-1 do if a[i] <> a[j] then exit; result := false; end; function unequal(const a, b: cardinal): boolean; begin result := a <> b; end; function unequal(const a, b, c: cardinal): boolean; begin result := (a <> b) or (a <> c) or (b <> c); end; function unequal(const a: array of cardinal): boolean; var i,j: SizeInt; begin result := true; for i:=0 to high(a) do for j:=0 to i-1 do if a[i] <> a[j] then exit; result := false; end; function unequal(const a, b: string): boolean; begin result := a <> b; end; function unequal(const a, b, c: string): boolean; begin result := (a <> b) or (a <> c) or (b <> c); end; function unequal(const a: array of string): boolean; var i,j: SizeInt; begin result := true; for i:=0 to high(a) do for j:=0 to i-1 do if a[i] <> a[j] then exit; result := false; end; function unequal(const a, b: int64): boolean; begin result := a <> b; end; function unequal(const a, b, c: int64): boolean; begin result := (a <> b) or (a <> c) or (b <> c); end; function unequal(const a: array of int64): boolean; var i,j: SizeInt; begin result := true; for i:=0 to high(a) do for j:=0 to i-1 do if a[i] <> a[j] then exit; result := false; end; function strLastIndexOf(const str: string; const searched: string): SizeInt; begin result := strLastIndexOf(str, searched, 1); end; function striLastIndexOf(const str: string; const searched: string): SizeInt; begin result := striLastIndexOf(str, searched, 1); end; const entityCodeStarts: array[0..51, 0..51] of integer = ( (-1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 39, 49, -1, -1, 73, 82, -1, -1, -1, -1, 97, 106, 115, 123, 145, -1, 163, 177, 201, 216, -1, -1, -1, -1, -1 ) //A ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 229, -1, 268, -1, 275, 314, -1, -1, -1, -1, -1, -1, -1, -1, 323, -1, -1, 333, 342, -1, 351, -1, -1, -1, -1, -1 ) //B ,(-1, -1, -1, -1, -1, -1, -1, 362, -1, -1, -1, -1, -1, -1, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, -1, 443, 494, 502, 529, -1, 537, 544, -1, -1, 599, -1, -1, 673, -1, -1, 807, 817, -1, 827, -1, -1, -1, -1, -1 ) //C ,(-1, -1, -1, 848, -1, -1, -1, -1, -1, 870, -1, -1, -1, -1, -1, -1, -1, -1, 878, -1, -1, -1, -1, -1, -1, 886, 894, -1, 928, -1, 948, 967, -1, -1, 976, -1, -1, -1, -1, -1, 1086, -1, -1, -1, 1607, -1, -1, -1, -1, -1, -1, -1 ) //D ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1630, -1, -1, -1, -1, -1, 1637, -1, -1, -1, -1, -1, -1, 1649, -1, 1664, 1699, -1, 1707, 1716, -1, -1, -1, -1, 1731, 1743, -1, 1802, 1824, 1835, -1, 1879, 1900, 1907, -1, -1, 1920, -1, -1 ) //E ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1951, -1, -1, 1958, -1, -1, 1967, -1, -1, -1, -1, -1, 2015, -1, -1, -1, 2055, -1, -1, -1, -1, -1, -1, -1 ) //F ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, 2064, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2072, -1, -1, -1, -1, -1, -1, 2080, 2099, 2109, 2139, -1, 2147, 2156, -1, -1, -1, -1, -1, -1, -1, 2163, -1, -1, 2173, 2282, 2292, -1, -1, -1, -1, -1, -1 ) //G ,(2299, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2309, -1, 2327, -1, -1, 2336, -1, -1, 2344, -1, -1, -1, -1, -1, 2361, -1, -1, -1, 2392, -1, 2414, -1, -1, -1, -1, -1 ) //H ,(-1, -1, -1, -1, 2447, -1, -1, -1, -1, 2455, -1, -1, -1, -1, 2464, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2472, -1, 2487, 2511, -1, 2519, 2527, -1, -1, -1, -1, -1, 2542, 2590, 2668, -1, -1, -1, 2699, 2708, 2718, -1, -1, -1, -1, -1 ) //I ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2743, -1, -1, 2762, -1, -1, -1, -1, -1, -1, -1, -1, 2771, -1, -1, -1, 2781, -1, 2804, -1, -1, -1, -1, -1 ) //J ,(-1, -1, -1, -1, -1, -1, -1, 2813, -1, 2821, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2829, -1, 2838, -1, -1, 2858, -1, -1, -1, -1, -1, -1, -1, -1, 2867, -1, -1, -1, 2877, -1, -1, -1, -1, -1, -1, -1 ) //K ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, 2887, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2895, -1, -1, -1, -1, -1, -1, 2903, -1, 2962, -1, 2993, 3508, -1, -1, -1, -1, -1, 3517, 3541, -1, 3551, -1, -1, -1, 3721, 3752, -1, -1, -1, -1, -1, -1 ) //L ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3759, -1, 3767, -1, 3774, 3807, -1, -1, 3816, -1, -1, -1, -1, -1, 3830, -1, -1, -1, 3840, -1, 3849, -1, -1, -1, -1, -1 ) //M ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, 3855, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3863, -1, 3873, -1, 3904, 4045, -1, -1, -1, -1, -1, -1, -1, -1, 4054, -1, -1, -1, 4967, 4977, 4992, -1, -1, -1, -1, -1 ) //N ,(-1, -1, -1, -1, 4998, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5007, -1, 5022, 5046, -1, 5056, 5065, -1, -1, -1, -1, -1, 5080, -1, 5113, 5123, -1, 5164, 5171, 5199, 5228, 5241, -1, -1, -1, -1 ) //O ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5303, -1, 5316, -1, -1, 5323, -1, 5332, 5339, -1, -1, 5345, -1, -1, 5358, -1, -1, 5388, 5509, -1, -1, -1, -1, -1, -1, -1 ) //P ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5540, -1, -1, -1, -1, -1, -1, -1, -1, 5549, -1, -1, -1, 5558, -1, -1, -1, -1, -1, -1, -1 ) //Q ,(-1, 5568, -1, -1, 5578, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5590, -1, 5634, -1, 5665, 5737, -1, 5745, 5752, -1, -1, -1, -1, -1, 6112, -1, -1, 6141, 6157, -1, 6177, -1, -1, -1, -1, -1 ) //R ,(-1, -1, -1, -1, -1, -1, -1, 6193, -1, -1, -1, -1, -1, -1, 6214, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6224, -1, 6234, -1, -1, 6282, -1, 6291, 6363, -1, -1, -1, 6372, -1, 6388, -1, 6398, -1, 6517, 6527, 6536, -1, -1, -1, -1, -1 ) //S ,(-1, -1, -1, -1, -1, -1, -1, 6706, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6720, 6730, -1, -1, -1, -1, -1, -1, -1, 6750, -1, 6766, -1, -1, 6797, -1, 6806, 6868, -1, -1, -1, -1, -1, 6923, -1, -1, 6933, 6947, -1, -1, -1, -1, -1, -1, -1 ) //T ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6970, 7011, 7033, 7057, -1, 7067, 7076, -1, -1, -1, -1, -1, 7091, 7100, 7188, 7210, -1, 7408, 7417, 7427, 7437, -1, -1, -1, -1, -1 ) //U ,(-1, -1, -1, 7450, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7460, 7469, 7476, 7497, 7607, -1, -1, -1, -1, -1, -1, -1, -1, 7616, -1, -1, -1, 7626, -1, -1, 7636, -1, -1, -1, -1 ) //V ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7647, -1, 7656, 7666, -1, -1, -1, -1, -1, -1, -1, -1, 7675, -1, -1, -1, 7685, -1, -1, -1, -1, -1, -1, -1 ) //W ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7695, -1, -1, 7704, -1, -1, -1, -1, -1, 7710, -1, -1, -1, 7720, -1, -1, -1, -1, -1, -1, -1 ) //X ,(7730, -1, -1, -1, -1, -1, -1, -1, 7738, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7746, -1, -1, -1, -1, -1, 7754, -1, 7769, -1, -1, 7788, -1, -1, -1, -1, -1, -1, -1, -1, 7797, -1, -1, -1, 7807, -1, 7817, -1, -1, -1, -1, -1 ) //Y ,(-1, -1, -1, -1, -1, -1, -1, 7825, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7833, -1, 7843, 7863, 7871, 7901, -1, -1, -1, -1, -1, -1, -1, -1, 7909, -1, -1, -1, 7918, -1, -1, -1, -1, -1, -1, -1 ) //Z ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7928, 7943, 7953, -1, 8019, 8033, 8051, -1, -1, -1, -1, 8066, 8102, 8135, 8371, 8393, -1, 8473, 8487, 8529, 8544, -1, 8557, -1, -1, -1 ) //a ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8583, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8592, 8697, 8720, 8740, 8750, 8841, -1, -1, 8850, -1, 9022, 9033, -1, 9181, 9218, 9691, -1, 9702, 9729, -1, 9804, -1, -1, -1, -1, -1 ) //b ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9867, -1, 9981, 10054, 10062, 10117, -1, 10126, 10169, -1, -1, 10345, -1, -1, 10368, -1, -1, 10548, 10571, 10624, 10634, -1, 10940, -1, 10966, -1 ) //c ,(10977, -1, -1, -1, -1, -1, -1, 10986, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10995, 11051, 11075, 11095, 11141, 11177, -1, 11200, 11222, 11350, -1, 11358, -1, -1, 11383, -1, -1, 11567, 11607, 11650, 11683, -1, 11706, -1, -1, 11718 ) //d ,(-1, -1, -1, 11742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11764, -1, 11793, 11849, 11857, 11864, 11886, -1, -1, -1, -1, 11931, 11983, 12060, 12079, 12101, 12164, 12293, 12316, 12348, 12369, -1, -1, 12394, -1, -1 ) //e ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12450, -1, 12468, -1, 12475, 12486, -1, -1, 12533, 12543, -1, 12552, -1, 12585, 12593, 12638, -1, 12651, 12837, -1, -1, -1, -1, -1, -1, -1 ) //f ,(-1, -1, -1, -1, 12847, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12864, 12905, 12915, 12934, 12942, 13066, 13075, -1, 13092, 13102, -1, 13110, -1, 13145, 13219, -1, -1, 13229, 13237, 13278, -1, 13437, -1, -1, -1, -1 ) //g ,(13469, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13478, 13555, 13564, -1, 13573, 13623, -1, -1, -1, -1, 13632, -1, -1, -1, 13661, -1, -1, -1, 13748, -1, -1, -1, -1, -1, 13783, -1 ) //h ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13808, -1, 13823, -1, 13854, 13879, 13899, -1, 13914, 13969, -1, -1, 13978, 14056, 14184, 14224, 14234, -1, 14249, 14321, 14340, -1, -1, -1, -1, -1 ) //i ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14365, -1, -1, 14384, -1, -1, -1, -1, -1, -1, 14393, -1, 14402, -1, -1, -1, 14412, -1, 14435, -1, -1, -1, -1, -1 ) //j ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14444, -1, 14463, -1, -1, 14483, 14492, 14502, -1, 14510, -1, -1, -1, -1, 14518, -1, -1, -1, 14528, -1, -1, -1, -1, -1, -1, -1 ) //k ,(14538, 14572, -1, -1, 14582, -1, -1, 14599, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14608, 14848, 14928, 14979, 15050, 15418, 15453, 15470, -1, 15515, -1, 15523, 15579, 15617, 15691, 15937, -1, 15956, 16024, 16129, 16261, 16289, -1, -1, -1, -1 ) //l ,(-1, -1, -1, 16321, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16331, -1, 16448, 16469, 16479, 16497, -1, 16506, 16514, -1, -1, 16616, -1, 16637, 16648, 16672, -1, -1, 16679, -1, 16703, -1, -1, -1, -1, -1 ) //m ,(-1, -1, -1, -1, -1, -1, 16735, -1, -1, -1, -1, 16771, -1, -1, -1, -1, -1, 16844, -1, -1, -1, 16860, -1, -1, -1, -1, 16885, 17009, 17050, 17128, 17138, 17266, 17275, 17374, 17408, 17444, -1, 17452, 17641, -1, 17650, 17782, -1, 17900, 17986, 18307, 18403, 18439, 18621, -1, -1, -1 ) //n ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18680, -1, -1, -1, -1, -1, -1, -1, 18687, -1, 18714, 18747, 18802, 18811, 18833, 18868, 18888, -1, -1, 18897, 18954, -1, 19009, 19019, -1, 19052, 19171, 19208, 19249, 19262, -1, -1, -1, -1 ) //o ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19272, -1, 19337, -1, 19344, 19397, -1, 19406, 19447, -1, -1, 19477, 19622, -1, 19628, -1, -1, 19669, 19965, -1, 19985, -1, -1, -1, -1, -1 ) //p ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19996, -1, -1, 20005, -1, -1, -1, -1, -1, 20014, 20024, -1, -1, 20035, -1, 20045, -1, -1, -1, -1, -1 ) //q ,(20110, 20144, -1, -1, -1, -1, -1, 20154, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20163, 20427, 20507, 20558, 20614, 20681, -1, 20716, 20767, -1, -1, 20952, 20984, 21009, 21019, 21101, -1, 21136, 21146, 21210, 21277, -1, -1, 21289, -1, -1 ) //r ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21296, 21306, 21316, 21462, 21491, 21608, -1, 21630, 21708, -1, -1, 21849, 21859, -1, 21960, 22011, 22047, 22230, 22240, 22288, 22354, -1, 22943, -1, -1, 23002 ) //s ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23016, 23037, 23046, 23077, 23086, 23097, -1, 23106, 23248, -1, -1, -1, -1, -1, 23313, 23388, -1, 23399, 23580, -1, -1, -1, 23623, -1, -1, -1 ) //t ,(23678, -1, -1, -1, -1, -1, -1, 23687, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23696, 23723, 23745, 23769, -1, 23803, 23826, 23841, -1, -1, -1, 23876, 23925, -1, 23948, 23970, -1, 24092, 24151, 24161, 24205, -1, 24231, -1, -1, -1 ) //u ,(24243, 24252, -1, 24272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24282, -1, 24521, 24528, 24538, 24601, -1, -1, -1, -1, -1, 24610, -1, 24620, 24648, 24658, -1, 24668, 24678, -1, -1, -1, -1, -1, -1, 24751 ) //v ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24763, -1, 24772, 24820, -1, -1, -1, -1, -1, -1, -1, -1, 24829, 24839, -1, 24846, 24866, -1, -1, -1, -1, -1, -1, -1 ) //w ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24876, 24908, -1, 24918, -1, 24927, 24950, -1, -1, 24956, 24979, 24988, 24997, -1, -1, 25045, 25068, -1, 25092, 25116, 25125, -1, -1, -1 ) //x ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25136, -1, 25162, -1, 25181, 25193, -1, -1, 25202, -1, -1, -1, -1, -1, 25210, -1, -1, -1, 25220, -1, 25230, -1, -1, -1, -1, -1 ) //y ,(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25254, -1, 25264, 25284, 25292, 25314, -1, 25323, 25331, -1, -1, -1, -1, -1, 25343, -1, -1, -1, 25353, -1, -1, -1, 25363, -1, -1, -1 ) //z ); const entityCode: array[0..25382] of byte = ( 67, 108, 105, 103, 129, 59, 3, 2, 195, 134, 128, 2, 195, 134, 65, 80, 129, 59, 2, 1, 38, 128, 1, 38, 68, 99, 117, 116, 101, 129, 59, 3, 2, 195, 129, 128, 2, 195, 129, 69, 114, 101, 118, 101, 59, 128, 2, 196, 130, 2, 105 , 0, 121, 13, 66, 114, 99, 129, 59, 3, 2, 195, 130, 128, 2, 195, 130, 65, 59, 128, 2, 208, 144, 66, 114, 59, 128, 4, 240, 157, 148, 132, 68, 114, 97, 118, 101, 129, 59, 3, 2, 195, 128, 128, 2, 195, 128, 68, 112, 104, 97, 59 , 128, 2, 206, 145, 68, 97, 99, 114, 59, 128, 2, 196, 128, 66, 100, 59, 128, 3, 226, 169, 147, 2, 103, 0, 112, 8, 67, 111, 110, 59, 128, 2, 196, 132, 66, 102, 59, 128, 4, 240, 157, 148, 184, 76, 112, 108, 121, 70, 117, 110, 99 , 116, 105, 111, 110, 59, 128, 3, 226, 129, 161, 67, 105, 110, 103, 129, 59, 3, 2, 195, 133, 128, 2, 195, 133, 2, 99, 0, 115, 9, 66, 114, 59, 128, 4, 240, 157, 146, 156, 68, 105, 103, 110, 59, 128, 3, 226, 137, 148, 68, 105, 108 , 100, 101, 129, 59, 3, 2, 195, 131, 128, 2, 195, 131, 66, 109, 108, 129, 59, 3, 2, 195, 132, 128, 2, 195, 132, 2, 99, 0, 114, 13, 71, 107, 115, 108, 97, 115, 104, 59, 128, 3, 226, 136, 150, 2, 118, 0, 119, 7, 65, 59, 128 , 3, 226, 171, 167, 67, 101, 100, 59, 128, 3, 226, 140, 134, 66, 121, 59, 128, 2, 208, 145, 3, 99, 0, 114, 11, 116, 14, 69, 97, 117, 115, 101, 59, 128, 3, 226, 136, 181, 72, 110, 111, 117, 108, 108, 105, 115, 59, 128, 3, 226, 132 , 172, 66, 97, 59, 128, 2, 206, 146, 66, 114, 59, 128, 4, 240, 157, 148, 133, 67, 112, 102, 59, 128, 4, 240, 157, 148, 185, 68, 101, 118, 101, 59, 128, 2, 203, 152, 67, 99, 114, 59, 128, 3, 226, 132, 172, 69, 109, 112, 101, 113, 59 , 128, 3, 226, 137, 142, 67, 99, 121, 59, 128, 2, 208, 167, 66, 80, 89, 129, 59, 3, 2, 194, 169, 128, 2, 194, 169, 3, 99, 0, 112, 9, 121, 33, 68, 117, 116, 101, 59, 128, 2, 196, 134, 2, 59, 0, 105, 5, 128, 3, 226, 139 , 146, 81, 116, 97, 108, 68, 105, 102, 102, 101, 114, 101, 110, 116, 105, 97, 108, 68, 59, 128, 3, 226, 133, 133, 69, 108, 101, 121, 115, 59, 128, 3, 226, 132, 173, 4, 97, 0, 101, 9, 105, 14, 111, 8, 68, 114, 111, 110, 59, 128, 2 , 196, 140, 67, 100, 105, 108, 129, 59, 3, 2, 195, 135, 128, 2, 195, 135, 67, 114, 99, 59, 128, 2, 196, 136, 69, 110, 105, 110, 116, 59, 128, 3, 226, 136, 176, 67, 111, 116, 59, 128, 2, 196, 138, 2, 100, 0, 110, 10, 69, 105, 108 , 108, 97, 59, 128, 2, 194, 184, 71, 116, 101, 114, 68, 111, 116, 59, 128, 2, 194, 183, 66, 114, 59, 128, 3, 226, 132, 173, 66, 105, 59, 128, 2, 206, 167, 68, 114, 99, 108, 101, 4, 68, 0, 77, 9, 80, 11, 84, 10, 67, 111, 116 , 59, 128, 3, 226, 138, 153, 69, 105, 110, 117, 115, 59, 128, 3, 226, 138, 150, 68, 108, 117, 115, 59, 128, 3, 226, 138, 149, 69, 105, 109, 101, 115, 59, 128, 3, 226, 138, 151, 65, 111, 2, 99, 0, 115, 27, 85, 107, 119, 105, 115, 101 , 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 128, 3, 226, 136, 178, 70, 101, 67, 117, 114, 108, 121, 2, 68, 0, 81, 17, 75, 111, 117, 98, 108, 101, 81, 117, 111, 116, 101, 59, 128, 3, 226, 128, 157, 69 , 117, 111, 116, 101, 59, 128, 3, 226, 128, 153, 4, 108, 0, 110, 20, 112, 46, 117, 24, 66, 111, 110, 2, 59, 0, 101, 5, 128, 3, 226, 136, 183, 65, 59, 128, 3, 226, 169, 180, 3, 103, 0, 105, 12, 116, 9, 70, 114, 117, 101, 110 , 116, 59, 128, 3, 226, 137, 161, 67, 110, 116, 59, 128, 3, 226, 136, 175, 76, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 128, 3, 226, 136, 174, 2, 102, 0, 114, 7, 65, 59, 128, 3, 226, 132, 130, 70, 111, 100, 117, 99 , 116, 59, 128, 3, 226, 136, 144, 93, 110, 116, 101, 114, 67, 108, 111, 99, 107, 119, 105, 115, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 128, 3, 226, 136, 179, 68, 111, 115, 115, 59, 128, 3, 226, 168 , 175, 67, 99, 114, 59, 128, 4, 240, 157, 146, 158, 65, 112, 2, 59, 0, 67, 5, 128, 3, 226, 139, 147, 67, 97, 112, 59, 128, 3, 226, 137, 141, 2, 59, 0, 111, 5, 128, 3, 226, 133, 133, 70, 116, 114, 97, 104, 100, 59, 128, 3 , 226, 164, 145, 67, 99, 121, 59, 128, 2, 208, 130, 67, 99, 121, 59, 128, 2, 208, 133, 67, 99, 121, 59, 128, 2, 208, 143, 3, 103, 0, 114, 10, 115, 8, 68, 103, 101, 114, 59, 128, 3, 226, 128, 161, 66, 114, 59, 128, 3, 226, 134 , 161, 67, 104, 118, 59, 128, 3, 226, 171, 164, 2, 97, 0, 121, 9, 68, 114, 111, 110, 59, 128, 2, 196, 142, 65, 59, 128, 2, 208, 148, 65, 108, 2, 59, 0, 116, 5, 128, 3, 226, 136, 135, 66, 97, 59, 128, 2, 206, 148, 66, 114 , 59, 128, 4, 240, 157, 148, 135, 2, 97, 0, 102, 88, 2, 99, 0, 109, 73, 71, 114, 105, 116, 105, 99, 97, 108, 4, 65, 0, 68, 10, 71, 27, 84, 9, 69, 99, 117, 116, 101, 59, 128, 2, 194, 180, 65, 111, 2, 116, 0, 117, 6 , 65, 59, 128, 2, 203, 153, 73, 98, 108, 101, 65, 99, 117, 116, 101, 59, 128, 2, 203, 157, 69, 114, 97, 118, 101, 59, 128, 1, 96, 69, 105, 108, 100, 101, 59, 128, 2, 203, 156, 68, 111, 110, 100, 59, 128, 3, 226, 139, 132, 75, 102 , 101, 114, 101, 110, 116, 105, 97, 108, 68, 59, 128, 3, 226, 133, 134, 4, 112, 0, 116, 9, 119, 31, 117, 217, 66, 102, 59, 128, 4, 240, 157, 148, 187, 3, 59, 0, 68, 4, 69, 9, 128, 2, 194, 168, 67, 111, 116, 59, 128, 3, 226 , 131, 156, 69, 113, 117, 97, 108, 59, 128, 3, 226, 137, 144, 65, 110, 6, 65, 0, 66, 39, 76, 10, 82, 68, 84, 50, 97, 24, 68, 114, 114, 111, 119, 3, 59, 0, 66, 5, 85, 9, 128, 3, 226, 134, 147, 67, 97, 114, 59, 128, 3 , 226, 164, 147, 71, 112, 65, 114, 114, 111, 119, 59, 128, 3, 226, 135, 181, 69, 114, 101, 118, 101, 59, 128, 2, 204, 145, 67, 101, 102, 116, 3, 82, 0, 84, 17, 86, 15, 75, 105, 103, 104, 116, 86, 101, 99, 116, 111, 114, 59, 128, 3 , 226, 165, 144, 73, 101, 101, 86, 101, 99, 116, 111, 114, 59, 128, 3, 226, 165, 158, 69, 101, 99, 116, 111, 114, 2, 59, 0, 66, 5, 128, 3, 226, 134, 189, 67, 97, 114, 59, 128, 3, 226, 165, 150, 68, 105, 103, 104, 116, 2, 84, 0 , 86, 15, 73, 101, 101, 86, 101, 99, 116, 111, 114, 59, 128, 3, 226, 165, 159, 69, 101, 99, 116, 111, 114, 2, 59, 0, 66, 5, 128, 3, 226, 135, 129, 67, 97, 114, 59, 128, 3, 226, 165, 151, 66, 101, 101, 2, 59, 0, 65, 5, 128 , 3, 226, 138, 164, 69, 114, 114, 111, 119, 59, 128, 3, 226, 134, 167, 69, 114, 114, 111, 119, 59, 128, 3, 226, 135, 147, 67, 98, 108, 101, 6, 67, 0, 68, 21, 76, 26, 82, 111, 85, 30, 86, 33, 79, 111, 110, 116, 111, 117, 114, 73 , 110, 116, 101, 103, 114, 97, 108, 59, 128, 3, 226, 136, 175, 65, 111, 2, 116, 0, 119, 6, 65, 59, 128, 2, 194, 168, 71, 110, 65, 114, 114, 111, 119, 59, 128, 3, 226, 135, 147, 2, 101, 0, 111, 46, 66, 102, 116, 3, 65, 0, 82 , 11, 84, 16, 69, 114, 114, 111, 119, 59, 128, 3, 226, 135, 144, 74, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 128, 3, 226, 135, 148, 67, 101, 101, 59, 128, 3, 226, 171, 164, 66, 110, 103, 2, 76, 0, 82, 36, 67, 101, 102, 116 , 2, 65, 0, 82, 11, 69, 114, 114, 111, 119, 59, 128, 3, 226, 159, 184, 74, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 128, 3, 226, 159, 186, 74, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 128, 3, 226, 159, 185, 68, 105, 103 , 104, 116, 2, 65, 0, 84, 11, 69, 114, 114, 111, 119, 59, 128, 3, 226, 135, 146, 67, 101, 101, 59, 128, 3, 226, 138, 168, 65, 112, 2, 65, 0, 68, 11, 69, 114, 114, 111, 119, 59, 128, 3, 226, 135, 145, 73, 111, 119, 110, 65, 114 , 114, 111, 119, 59, 128, 3, 226, 135, 149, 75, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 128, 3, 226, 136, 165, 2, 99, 0, 116, 9, 66, 114, 59, 128, 4, 240, 157, 146, 159, 68, 114, 111, 107, 59, 128, 2, 196, 144, 66, 71 , 59, 128, 2, 197, 138, 65, 72, 129, 59, 3, 2, 195, 144, 128, 2, 195, 144, 68, 99, 117, 116, 101, 129, 59, 3, 2, 195, 137, 128, 2, 195, 137, 3, 97, 0, 105, 9, 121, 13, 68, 114, 111, 110, 59, 128, 2, 196, 154, 66, 114, 99 , 129, 59, 3, 2, 195, 138, 128, 2, 195, 138, 65, 59, 128, 2, 208, 173, 67, 111, 116, 59, 128, 2, 196, 150, 66, 114, 59, 128, 4, 240, 157, 148, 136, 68, 114, 97, 118, 101, 129, 59, 3, 2, 195, 136, 128, 2, 195, 136, 70, 101, 109 , 101, 110, 116, 59, 128, 3, 226, 136, 136, 2, 97, 0, 112, 8, 67, 99, 114, 59, 128, 2, 196, 146, 66, 116, 121, 2, 83, 0, 86, 17, 75, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 128, 3, 226, 151, 187, 79, 101, 114, 121 , 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 128, 3, 226, 150, 171, 2, 103, 0, 112, 8, 67, 111, 110, 59, 128, 2, 196, 152, 66, 102, 59, 128, 4, 240, 157, 148, 188, 70, 115, 105, 108, 111, 110, 59, 128, 2, 206, 149, 65 , 117, 2, 97, 0, 105, 23, 65, 108, 2, 59, 0, 84, 5, 128, 3, 226, 169, 181, 69, 105, 108, 100, 101, 59, 128, 3, 226, 137, 130, 72, 108, 105, 98, 114, 105, 117, 109, 59, 128, 3, 226, 135, 140, 2, 99, 0, 105, 8, 66, 114, 59 , 128, 3, 226, 132, 176, 66, 109, 59, 128, 3, 226, 169, 179, 66, 97, 59, 128, 2, 206, 151, 66, 109, 108, 129, 59, 3, 2, 195, 139, 128, 2, 195, 139, 2, 105, 0, 112, 10, 68, 115, 116, 115, 59, 128, 3, 226, 136, 131, 74, 111, 110 , 101, 110, 116, 105, 97, 108, 69, 59, 128, 3, 226, 133, 135, 66, 121, 59, 128, 2, 208, 164, 66, 114, 59, 128, 4, 240, 157, 148, 137, 68, 108, 108, 101, 100, 2, 83, 0, 86, 17, 75, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59 , 128, 3, 226, 151, 188, 79, 101, 114, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 128, 3, 226, 150, 170, 3, 112, 0, 114, 9, 117, 10, 66, 102, 59, 128, 4, 240, 157, 148, 189, 68, 65, 108, 108, 59, 128, 3, 226, 136 , 128, 72, 114, 105, 101, 114, 116, 114, 102, 59, 128, 3, 226, 132, 177, 67, 99, 114, 59, 128, 3, 226, 132, 177, 67, 99, 121, 59, 128, 2, 208, 131, 129, 59, 2, 1, 62, 128, 1, 62, 67, 109, 109, 97, 2, 59, 0, 100, 4, 128, 2 , 206, 147, 65, 59, 128, 2, 207, 156, 69, 114, 101, 118, 101, 59, 128, 2, 196, 158, 3, 101, 0, 105, 9, 121, 8, 68, 100, 105, 108, 59, 128, 2, 196, 162, 67, 114, 99, 59, 128, 2, 196, 156, 65, 59, 128, 2, 208, 147, 67, 111, 116 , 59, 128, 2, 196, 160, 66, 114, 59, 128, 4, 240, 157, 148, 138, 65, 59, 128, 3, 226, 139, 153, 67, 112, 102, 59, 128, 4, 240, 157, 148, 190, 69, 101, 97, 116, 101, 114, 6, 69, 0, 70, 25, 71, 15, 76, 13, 83, 10, 84, 16, 68 , 113, 117, 97, 108, 2, 59, 0, 76, 5, 128, 3, 226, 137, 165, 68, 101, 115, 115, 59, 128, 3, 226, 139, 155, 73, 117, 108, 108, 69, 113, 117, 97, 108, 59, 128, 3, 226, 137, 167, 71, 114, 101, 97, 116, 101, 114, 59, 128, 3, 226, 170 , 162, 68, 101, 115, 115, 59, 128, 3, 226, 137, 183, 74, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 128, 3, 226, 169, 190, 69, 105, 108, 100, 101, 59, 128, 3, 226, 137, 179, 67, 99, 114, 59, 128, 4, 240, 157, 146, 162, 65, 59, 128 , 3, 226, 137, 171, 69, 82, 68, 99, 121, 59, 128, 2, 208, 170, 2, 99, 0, 116, 8, 67, 101, 107, 59, 128, 2, 203, 135, 65, 59, 128, 1, 94, 68, 105, 114, 99, 59, 128, 2, 196, 164, 66, 114, 59, 128, 3, 226, 132, 140, 75, 108 , 98, 101, 114, 116, 83, 112, 97, 99, 101, 59, 128, 3, 226, 132, 139, 2, 112, 0, 114, 8, 66, 102, 59, 128, 3, 226, 132, 141, 76, 105, 122, 111, 110, 116, 97, 108, 76, 105, 110, 101, 59, 128, 3, 226, 148, 128, 2, 99, 0, 116, 8 , 66, 114, 59, 128, 3, 226, 132, 139, 68, 114, 111, 107, 59, 128, 2, 196, 166, 66, 109, 112, 2, 68, 0, 69, 14, 72, 111, 119, 110, 72, 117, 109, 112, 59, 128, 3, 226, 137, 142, 69, 113, 117, 97, 108, 59, 128, 3, 226, 137, 143, 67 , 99, 121, 59, 128, 2, 208, 149, 68, 108, 105, 103, 59, 128, 2, 196, 178, 67, 99, 121, 59, 128, 2, 208, 129, 68, 99, 117, 116, 101, 129, 59, 3, 2, 195, 141, 128, 2, 195, 141, 2, 105, 0, 121, 13, 66, 114, 99, 129, 59, 3, 2 , 195, 142, 128, 2, 195, 142, 65, 59, 128, 2, 208, 152, 67, 111, 116, 59, 128, 2, 196, 176, 66, 114, 59, 128, 3, 226, 132, 145, 68, 114, 97, 118, 101, 129, 59, 3, 2, 195, 140, 128, 2, 195, 140, 3, 59, 0, 97, 5, 112, 25, 128 , 3, 226, 132, 145, 2, 99, 0, 103, 7, 66, 114, 59, 128, 2, 196, 170, 71, 105, 110, 97, 114, 121, 73, 59, 128, 3, 226, 133, 136, 69, 108, 105, 101, 115, 59, 128, 3, 226, 135, 146, 2, 116, 0, 118, 39, 2, 59, 0, 101, 5, 128 , 3, 226, 136, 172, 2, 103, 0, 114, 10, 68, 114, 97, 108, 59, 128, 3, 226, 136, 171, 72, 115, 101, 99, 116, 105, 111, 110, 59, 128, 3, 226, 139, 130, 70, 105, 115, 105, 98, 108, 101, 2, 67, 0, 84, 11, 69, 111, 109, 109, 97, 59 , 128, 3, 226, 129, 163, 69, 105, 109, 101, 115, 59, 128, 3, 226, 129, 162, 3, 103, 0, 112, 8, 116, 9, 67, 111, 110, 59, 128, 2, 196, 174, 66, 102, 59, 128, 4, 240, 157, 149, 128, 66, 97, 59, 128, 2, 206, 153, 67, 99, 114, 59 , 128, 3, 226, 132, 144, 69, 105, 108, 100, 101, 59, 128, 2, 196, 168, 2, 107, 0, 109, 8, 67, 99, 121, 59, 128, 2, 208, 134, 65, 108, 129, 59, 3, 2, 195, 143, 128, 2, 195, 143, 2, 105, 0, 121, 8, 67, 114, 99, 59, 128, 2 , 196, 180, 65, 59, 128, 2, 208, 153, 66, 114, 59, 128, 4, 240, 157, 148, 141, 67, 112, 102, 59, 128, 4, 240, 157, 149, 129, 2, 99, 0, 101, 9, 66, 114, 59, 128, 4, 240, 157, 146, 165, 68, 114, 99, 121, 59, 128, 2, 208, 136, 68 , 107, 99, 121, 59, 128, 2, 208, 132, 67, 99, 121, 59, 128, 2, 208, 165, 67, 99, 121, 59, 128, 2, 208, 140, 68, 112, 112, 97, 59, 128, 2, 206, 154, 2, 101, 0, 121, 9, 68, 100, 105, 108, 59, 128, 2, 196, 182, 65, 59, 128, 2 , 208, 154, 66, 114, 59, 128, 4, 240, 157, 148, 142, 67, 112, 102, 59, 128, 4, 240, 157, 149, 130, 67, 99, 114, 59, 128, 4, 240, 157, 146, 166, 67, 99, 121, 59, 128, 2, 208, 137, 129, 59, 2, 1, 60, 128, 1, 60, 5, 99, 0, 109 , 9, 110, 9, 112, 8, 114, 14, 68, 117, 116, 101, 59, 128, 2, 196, 185, 68, 98, 100, 97, 59, 128, 2, 206, 155, 66, 103, 59, 128, 3, 226, 159, 170, 72, 108, 97, 99, 101, 116, 114, 102, 59, 128, 3, 226, 132, 146, 66, 114, 59, 128 , 3, 226, 134, 158, 3, 97, 0, 101, 9, 121, 9, 68, 114, 111, 110, 59, 128, 2, 196, 189, 68, 100, 105, 108, 59, 128, 2, 196, 187, 65, 59, 128, 2, 208, 155, 2, 115, 0, 102, 98, 65, 115, 6, 69, 0, 70, 18, 71, 15, 76, 13 , 83, 10, 84, 16, 76, 113, 117, 97, 108, 71, 114, 101, 97, 116, 101, 114, 59, 128, 3, 226, 139, 154, 73, 117, 108, 108, 69, 113, 117, 97, 108, 59, 128, 3, 226, 137, 166, 71, 114, 101, 97, 116, 101, 114, 59, 128, 3, 226, 137, 182, 68 , 101, 115, 115, 59, 128, 3, 226, 170, 161, 74, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 128, 3, 226, 169, 189, 69, 105, 108, 100, 101, 59, 128, 3, 226, 137, 178, 65, 116, 10, 65, 0, 67, 63, 68, 13, 70, 71, 82, 11, 84, 33 , 85, 81, 86, 65, 97, 25, 114, 11, 2, 110, 0, 114, 17, 75, 103, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 128, 3, 226, 159, 168, 67, 114, 111, 119, 3, 59, 0, 66, 5, 82, 9, 128, 3, 226, 134, 144, 67, 97, 114, 59, 128 , 3, 226, 135, 164, 74, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 128, 3, 226, 135, 134, 71, 101, 105, 108, 105, 110, 103, 59, 128, 3, 226, 140, 136, 65, 111, 2, 117, 0, 119, 17, 75, 98, 108, 101, 66, 114, 97, 99, 107, 101, 116 , 59, 128, 3, 226, 159, 166, 65, 110, 2, 84, 0, 86, 15, 73, 101, 101, 86, 101, 99, 116, 111, 114, 59, 128, 3, 226, 165, 161, 69, 101, 99, 116, 111, 114, 2, 59, 0, 66, 5, 128, 3, 226, 135, 131, 67, 97, 114, 59, 128, 3, 226 , 165, 153, 69, 108, 111, 111, 114, 59, 128, 3, 226, 140, 138, 68, 105, 103, 104, 116, 2, 65, 0, 86, 11, 69, 114, 114, 111, 119, 59, 128, 3, 226, 134, 148, 70, 101, 99, 116, 111, 114, 59, 128, 3, 226, 165, 142, 2, 101, 0, 114, 37 , 65, 101, 3, 59, 0, 65, 5, 86, 11, 128, 3, 226, 138, 163, 69, 114, 114, 111, 119, 59, 128, 3, 226, 134, 164, 70, 101, 99, 116, 111, 114, 59, 128, 3, 226, 165, 154, 70, 105, 97, 110, 103, 108, 101, 3, 59, 0, 66, 5, 69, 9 , 128, 3, 226, 138, 178, 67, 97, 114, 59, 128, 3, 226, 167, 143, 69, 113, 117, 97, 108, 59, 128, 3, 226, 138, 180, 65, 112, 3, 68, 0, 84, 16, 86, 15, 74, 111, 119, 110, 86, 101, 99, 116, 111, 114, 59, 128, 3, 226, 165, 145, 73 , 101, 101, 86, 101, 99, 116, 111, 114, 59, 128, 3, 226, 165, 160, 69, 101, 99, 116, 111, 114, 2, 59, 0, 66, 5, 128, 3, 226, 134, 191, 67, 97, 114, 59, 128, 3, 226, 165, 152, 69, 101, 99, 116, 111, 114, 2, 59, 0, 66, 5, 128 , 3, 226, 134, 188, 67, 97, 114, 59, 128, 3, 226, 165, 146, 69, 114, 114, 111, 119, 59, 128, 3, 226, 135, 144, 74, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 128, 3, 226, 135, 148, 66, 114, 59, 128, 4, 240, 157, 148, 143, 2, 59 , 0, 101, 5, 128, 3, 226, 139, 152, 72, 102, 116, 97, 114, 114, 111, 119, 59, 128, 3, 226, 135, 154, 69, 105, 100, 111, 116, 59, 128, 2, 196, 191, 3, 110, 0, 112, 115, 119, 9, 65, 103, 4, 76, 0, 82, 36, 108, 16, 114, 36, 67 , 101, 102, 116, 2, 65, 0, 82, 11, 69, 114, 114, 111, 119, 59, 128, 3, 226, 159, 181, 74, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 128, 3, 226, 159, 183, 74, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 128, 3, 226, 159, 182 , 67, 101, 102, 116, 2, 97, 0, 114, 11, 69, 114, 114, 111, 119, 59, 128, 3, 226, 159, 184, 74, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 128, 3, 226, 159, 186, 74, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 128, 3, 226, 159 , 185, 66, 102, 59, 128, 4, 240, 157, 149, 131, 66, 101, 114, 2, 76, 0, 82, 15, 73, 101, 102, 116, 65, 114, 114, 111, 119, 59, 128, 3, 226, 134, 153, 74, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 128, 3, 226, 134, 152, 3, 99 , 0, 104, 8, 116, 7, 66, 114, 59, 128, 3, 226, 132, 146, 65, 59, 128, 3, 226, 134, 176, 68, 114, 111, 107, 59, 128, 2, 197, 129, 65, 59, 128, 3, 226, 137, 170, 66, 112, 59, 128, 3, 226, 164, 133, 66, 121, 59, 128, 2, 208, 156 , 2, 100, 0, 108, 15, 73, 105, 117, 109, 83, 112, 97, 99, 101, 59, 128, 3, 226, 129, 159, 71, 108, 105, 110, 116, 114, 102, 59, 128, 3, 226, 132, 179, 66, 114, 59, 128, 4, 240, 157, 148, 144, 72, 110, 117, 115, 80, 108, 117, 115, 59 , 128, 3, 226, 136, 147, 67, 112, 102, 59, 128, 4, 240, 157, 149, 132, 67, 99, 114, 59, 128, 3, 226, 132, 179, 65, 59, 128, 2, 206, 156, 67, 99, 121, 59, 128, 2, 208, 138, 69, 99, 117, 116, 101, 59, 128, 2, 197, 131, 3, 97, 0 , 101, 9, 121, 9, 68, 114, 111, 110, 59, 128, 2, 197, 135, 68, 100, 105, 108, 59, 128, 2, 197, 133, 65, 59, 128, 2, 208, 157, 3, 103, 0, 115, 82, 119, 43, 69, 97, 116, 105, 118, 101, 3, 77, 0, 84, 17, 86, 33, 75, 101, 100 , 105, 117, 109, 83, 112, 97, 99, 101, 59, 128, 3, 226, 128, 139, 66, 104, 105, 2, 99, 0, 110, 13, 71, 107, 83, 112, 97, 99, 101, 59, 128, 3, 226, 128, 139, 70, 83, 112, 97, 99, 101, 59, 128, 3, 226, 128, 139, 77, 101, 114, 121 , 84, 104, 105, 110, 83, 112, 97, 99, 101, 59, 128, 3, 226, 128, 139, 67, 116, 101, 100, 2, 71, 0, 76, 20, 78, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 59, 128, 3, 226, 137, 171, 72, 101, 115, 115, 76, 101, 115 , 115, 59, 128, 3, 226, 137, 170, 69, 76, 105, 110, 101, 59, 128, 1, 10, 66, 114, 59, 128, 4, 240, 157, 148, 145, 4, 66, 0, 110, 11, 112, 19, 116, 8, 69, 114, 101, 97, 107, 59, 128, 3, 226, 129, 160, 78, 66, 114, 101, 97, 107 , 105, 110, 103, 83, 112, 97, 99, 101, 59, 128, 2, 194, 160, 66, 102, 59, 128, 3, 226, 132, 149, 13, 59, 0, 67, 5, 68, 30, 69, 23, 71, 57, 72, 109, 76, 38, 78, 136, 80, 49, 82, 49, 83, 70, 84, 200, 86, 56, 128, 3, 226 , 171, 172, 2, 111, 0, 117, 14, 72, 110, 103, 114, 117, 101, 110, 116, 59, 128, 3, 226, 137, 162, 69, 112, 67, 97, 112, 59, 128, 3, 226, 137, 173, 81, 111, 117, 98, 108, 101, 86, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 128 , 3, 226, 136, 166, 3, 108, 0, 113, 12, 120, 27, 70, 101, 109, 101, 110, 116, 59, 128, 3, 226, 136, 137, 67, 117, 97, 108, 2, 59, 0, 84, 5, 128, 3, 226, 137, 160, 69, 105, 108, 100, 101, 59, 128, 5, 226, 137, 130, 204, 184, 69 , 105, 115, 116, 115, 59, 128, 3, 226, 136, 132, 70, 114, 101, 97, 116, 101, 114, 7, 59, 0, 69, 5, 70, 11, 71, 17, 76, 15, 83, 10, 84, 18, 128, 3, 226, 137, 175, 69, 113, 117, 97, 108, 59, 128, 3, 226, 137, 177, 73, 117, 108 , 108, 69, 113, 117, 97, 108, 59, 128, 5, 226, 137, 167, 204, 184, 71, 114, 101, 97, 116, 101, 114, 59, 128, 5, 226, 137, 171, 204, 184, 68, 101, 115, 115, 59, 128, 3, 226, 137, 185, 74, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 128 , 5, 226, 169, 190, 204, 184, 69, 105, 108, 100, 101, 59, 128, 3, 226, 137, 181, 67, 117, 109, 112, 2, 68, 0, 69, 16, 72, 111, 119, 110, 72, 117, 109, 112, 59, 128, 5, 226, 137, 142, 204, 184, 69, 113, 117, 97, 108, 59, 128, 5, 226 , 137, 143, 204, 184, 65, 101, 2, 102, 0, 115, 44, 73, 116, 84, 114, 105, 97, 110, 103, 108, 101, 3, 59, 0, 66, 5, 69, 11, 128, 3, 226, 139, 170, 67, 97, 114, 59, 128, 5, 226, 167, 143, 204, 184, 69, 113, 117, 97, 108, 59, 128 , 3, 226, 139, 172, 65, 115, 6, 59, 0, 69, 5, 71, 11, 76, 13, 83, 12, 84, 18, 128, 3, 226, 137, 174, 69, 113, 117, 97, 108, 59, 128, 3, 226, 137, 176, 71, 114, 101, 97, 116, 101, 114, 59, 128, 3, 226, 137, 184, 68, 101, 115 , 115, 59, 128, 5, 226, 137, 170, 204, 184, 74, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 128, 5, 226, 169, 189, 204, 184, 69, 105, 108, 100, 101, 59, 128, 3, 226, 137, 180, 69, 101, 115, 116, 101, 100, 2, 71, 0, 76, 22, 78, 114 , 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 59, 128, 5, 226, 170, 162, 204, 184, 72, 101, 115, 115, 76, 101, 115, 115, 59, 128, 5, 226, 170, 161, 204, 184, 71, 114, 101, 99, 101, 100, 101, 115, 3, 59, 0, 69, 5, 83, 13 , 128, 3, 226, 138, 128, 69, 113, 117, 97, 108, 59, 128, 5, 226, 170, 175, 204, 184, 74, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 128, 3, 226, 139, 160, 2, 101, 0, 105, 19, 77, 118, 101, 114, 115, 101, 69, 108, 101, 109, 101, 110 , 116, 59, 128, 3, 226, 136, 140, 75, 103, 104, 116, 84, 114, 105, 97, 110, 103, 108, 101, 3, 59, 0, 66, 5, 69, 11, 128, 3, 226, 139, 171, 67, 97, 114, 59, 128, 5, 226, 167, 144, 204, 184, 69, 113, 117, 97, 108, 59, 128, 3, 226 , 139, 173, 2, 113, 0, 117, 68, 70, 117, 97, 114, 101, 83, 117, 2, 98, 0, 112, 27, 67, 115, 101, 116, 2, 59, 0, 69, 7, 128, 5, 226, 138, 143, 204, 184, 69, 113, 117, 97, 108, 59, 128, 3, 226, 139, 162, 69, 101, 114, 115, 101 , 116, 2, 59, 0, 69, 7, 128, 5, 226, 138, 144, 204, 184, 69, 113, 117, 97, 108, 59, 128, 3, 226, 139, 163, 3, 98, 0, 99, 28, 112, 62, 67, 115, 101, 116, 2, 59, 0, 69, 8, 128, 6, 226, 138, 130, 226, 131, 146, 69, 113, 117 , 97, 108, 59, 128, 3, 226, 138, 136, 69, 99, 101, 101, 100, 115, 4, 59, 0, 69, 5, 83, 13, 84, 16, 128, 3, 226, 138, 129, 69, 113, 117, 97, 108, 59, 128, 5, 226, 170, 176, 204, 184, 74, 108, 97, 110, 116, 69, 113, 117, 97, 108 , 59, 128, 3, 226, 139, 161, 69, 105, 108, 100, 101, 59, 128, 5, 226, 137, 191, 204, 184, 69, 101, 114, 115, 101, 116, 2, 59, 0, 69, 8, 128, 6, 226, 138, 131, 226, 131, 146, 69, 113, 117, 97, 108, 59, 128, 3, 226, 138, 137, 68, 105 , 108, 100, 101, 4, 59, 0, 69, 5, 70, 11, 84, 15, 128, 3, 226, 137, 129, 69, 113, 117, 97, 108, 59, 128, 3, 226, 137, 132, 73, 117, 108, 108, 69, 113, 117, 97, 108, 59, 128, 3, 226, 137, 135, 69, 105, 108, 100, 101, 59, 128, 3 , 226, 137, 137, 75, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 128, 3, 226, 136, 164, 67, 99, 114, 59, 128, 4, 240, 157, 146, 169, 68, 105, 108, 100, 101, 129, 59, 3, 2, 195, 145, 128, 2, 195, 145, 65, 59, 128, 2, 206, 157 , 68, 108, 105, 103, 59, 128, 2, 197, 146, 68, 99, 117, 116, 101, 129, 59, 3, 2, 195, 147, 128, 2, 195, 147, 2, 105, 0, 121, 13, 66, 114, 99, 129, 59, 3, 2, 195, 148, 128, 2, 195, 148, 65, 59, 128, 2, 208, 158, 69, 98, 108 , 97, 99, 59, 128, 2, 197, 144, 66, 114, 59, 128, 4, 240, 157, 148, 146, 68, 114, 97, 118, 101, 129, 59, 3, 2, 195, 146, 128, 2, 195, 146, 3, 97, 0, 101, 8, 105, 8, 67, 99, 114, 59, 128, 2, 197, 140, 67, 103, 97, 59, 128 , 2, 206, 169, 69, 99, 114, 111, 110, 59, 128, 2, 206, 159, 67, 112, 102, 59, 128, 4, 240, 157, 149, 134, 71, 101, 110, 67, 117, 114, 108, 121, 2, 68, 0, 81, 17, 75, 111, 117, 98, 108, 101, 81, 117, 111, 116, 101, 59, 128, 3, 226 , 128, 156, 69, 117, 111, 116, 101, 59, 128, 3, 226, 128, 152, 65, 59, 128, 3, 226, 169, 148, 2, 99, 0, 108, 9, 66, 114, 59, 128, 4, 240, 157, 146, 170, 67, 97, 115, 104, 129, 59, 3, 2, 195, 152, 128, 2, 195, 152, 65, 105, 2 , 108, 0, 109, 13, 66, 100, 101, 129, 59, 3, 2, 195, 149, 128, 2, 195, 149, 67, 101, 115, 59, 128, 3, 226, 168, 183, 66, 109, 108, 129, 59, 3, 2, 195, 150, 128, 2, 195, 150, 66, 101, 114, 2, 66, 0, 80, 37, 2, 97, 0, 114 , 8, 66, 114, 59, 128, 3, 226, 128, 190, 66, 97, 99, 2, 101, 0, 107, 7, 65, 59, 128, 3, 226, 143, 158, 67, 101, 116, 59, 128, 3, 226, 142, 180, 75, 97, 114, 101, 110, 116, 104, 101, 115, 105, 115, 59, 128, 3, 226, 143, 156, 71 , 114, 116, 105, 97, 108, 68, 59, 128, 3, 226, 136, 130, 66, 121, 59, 128, 2, 208, 159, 66, 114, 59, 128, 4, 240, 157, 148, 147, 66, 105, 59, 128, 2, 206, 166, 65, 59, 128, 2, 206, 160, 72, 117, 115, 77, 105, 110, 117, 115, 59, 128 , 2, 194, 177, 2, 105, 0, 112, 17, 75, 110, 99, 97, 114, 101, 112, 108, 97, 110, 101, 59, 128, 3, 226, 132, 140, 66, 102, 59, 128, 3, 226, 132, 153, 4, 59, 0, 101, 5, 105, 58, 111, 9, 128, 3, 226, 170, 187, 69, 99, 101, 100 , 101, 115, 4, 59, 0, 69, 5, 83, 11, 84, 16, 128, 3, 226, 137, 186, 69, 113, 117, 97, 108, 59, 128, 3, 226, 170, 175, 74, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 128, 3, 226, 137, 188, 69, 105, 108, 100, 101, 59, 128, 3 , 226, 137, 190, 67, 109, 101, 59, 128, 3, 226, 128, 179, 2, 100, 0, 112, 10, 68, 117, 99, 116, 59, 128, 3, 226, 136, 143, 70, 111, 114, 116, 105, 111, 110, 2, 59, 0, 97, 5, 128, 3, 226, 136, 183, 66, 108, 59, 128, 3, 226, 136 , 157, 2, 99, 0, 105, 9, 66, 114, 59, 128, 4, 240, 157, 146, 171, 65, 59, 128, 2, 206, 168, 66, 79, 84, 129, 59, 2, 1, 34, 128, 1, 34, 66, 114, 59, 128, 4, 240, 157, 148, 148, 67, 112, 102, 59, 128, 3, 226, 132, 154, 67 , 99, 114, 59, 128, 4, 240, 157, 146, 172, 68, 97, 114, 114, 59, 128, 3, 226, 164, 144, 65, 71, 129, 59, 3, 2, 194, 174, 128, 2, 194, 174, 3, 99, 0, 110, 9, 114, 8, 68, 117, 116, 101, 59, 128, 2, 197, 148, 66, 103, 59, 128 , 3, 226, 159, 171, 65, 114, 2, 59, 0, 116, 5, 128, 3, 226, 134, 160, 66, 108, 59, 128, 3, 226, 164, 150, 3, 97, 0, 101, 9, 121, 9, 68, 114, 111, 110, 59, 128, 2, 197, 152, 68, 100, 105, 108, 59, 128, 2, 197, 150, 65, 59 , 128, 2, 208, 160, 2, 59, 0, 118, 5, 128, 3, 226, 132, 156, 68, 101, 114, 115, 101, 2, 69, 0, 85, 33, 2, 108, 0, 113, 12, 70, 101, 109, 101, 110, 116, 59, 128, 3, 226, 136, 139, 74, 117, 105, 108, 105, 98, 114, 105, 117, 109 , 59, 128, 3, 226, 135, 139, 77, 112, 69, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 128, 3, 226, 165, 175, 66, 114, 59, 128, 3, 226, 132, 156, 66, 111, 59, 128, 2, 206, 161, 67, 103, 104, 116, 8, 65, 0, 67, 62, 68, 13 , 70, 71, 84, 11, 85, 81, 86, 65, 97, 25, 2, 110, 0, 114, 17, 75, 103, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 128, 3, 226, 159, 169, 67, 114, 111, 119, 3, 59, 0, 66, 5, 76, 9, 128, 3, 226, 134, 146, 67, 97, 114 , 59, 128, 3, 226, 135, 165, 73, 101, 102, 116, 65, 114, 114, 111, 119, 59, 128, 3, 226, 135, 132, 71, 101, 105, 108, 105, 110, 103, 59, 128, 3, 226, 140, 137, 65, 111, 2, 117, 0, 119, 17, 75, 98, 108, 101, 66, 114, 97, 99, 107, 101 , 116, 59, 128, 3, 226, 159, 167, 65, 110, 2, 84, 0, 86, 15, 73, 101, 101, 86, 101, 99, 116, 111, 114, 59, 128, 3, 226, 165, 157, 69, 101, 99, 116, 111, 114, 2, 59, 0, 66, 5, 128, 3, 226, 135, 130, 67, 97, 114, 59, 128, 3 , 226, 165, 149, 69, 108, 111, 111, 114, 59, 128, 3, 226, 140, 139, 2, 101, 0, 114, 37, 65, 101, 3, 59, 0, 65, 5, 86, 11, 128, 3, 226, 138, 162, 69, 114, 114, 111, 119, 59, 128, 3, 226, 134, 166, 70, 101, 99, 116, 111, 114, 59 , 128, 3, 226, 165, 155, 70, 105, 97, 110, 103, 108, 101, 3, 59, 0, 66, 5, 69, 9, 128, 3, 226, 138, 179, 67, 97, 114, 59, 128, 3, 226, 167, 144, 69, 113, 117, 97, 108, 59, 128, 3, 226, 138, 181, 65, 112, 3, 68, 0, 84, 16 , 86, 15, 74, 111, 119, 110, 86, 101, 99, 116, 111, 114, 59, 128, 3, 226, 165, 143, 73, 101, 101, 86, 101, 99, 116, 111, 114, 59, 128, 3, 226, 165, 156, 69, 101, 99, 116, 111, 114, 2, 59, 0, 66, 5, 128, 3, 226, 134, 190, 67, 97 , 114, 59, 128, 3, 226, 165, 148, 69, 101, 99, 116, 111, 114, 2, 59, 0, 66, 5, 128, 3, 226, 135, 128, 67, 97, 114, 59, 128, 3, 226, 165, 147, 69, 114, 114, 111, 119, 59, 128, 3, 226, 135, 146, 2, 112, 0, 117, 8, 66, 102, 59 , 128, 3, 226, 132, 157, 74, 110, 100, 73, 109, 112, 108, 105, 101, 115, 59, 128, 3, 226, 165, 176, 74, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 128, 3, 226, 135, 155, 2, 99, 0, 104, 8, 66, 114, 59, 128, 3, 226, 132, 155, 65 , 59, 128, 3, 226, 134, 177, 74, 108, 101, 68, 101, 108, 97, 121, 101, 100, 59, 128, 3, 226, 167, 180, 2, 67, 0, 99, 9, 68, 72, 99, 121, 59, 128, 2, 208, 169, 66, 121, 59, 128, 2, 208, 168, 69, 70, 84, 99, 121, 59, 128, 2 , 208, 172, 69, 99, 117, 116, 101, 59, 128, 2, 197, 154, 5, 59, 0, 97, 5, 101, 9, 105, 9, 121, 8, 128, 3, 226, 170, 188, 68, 114, 111, 110, 59, 128, 2, 197, 160, 68, 100, 105, 108, 59, 128, 2, 197, 158, 67, 114, 99, 59, 128 , 2, 197, 156, 65, 59, 128, 2, 208, 161, 66, 114, 59, 128, 4, 240, 157, 148, 150, 67, 111, 114, 116, 4, 68, 0, 76, 15, 82, 15, 85, 16, 73, 111, 119, 110, 65, 114, 114, 111, 119, 59, 128, 3, 226, 134, 147, 73, 101, 102, 116, 65 , 114, 114, 111, 119, 59, 128, 3, 226, 134, 144, 74, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 128, 3, 226, 134, 146, 71, 112, 65, 114, 114, 111, 119, 59, 128, 3, 226, 134, 145, 68, 103, 109, 97, 59, 128, 2, 206, 163, 74, 97, 108 , 108, 67, 105, 114, 99, 108, 101, 59, 128, 3, 226, 136, 152, 67, 112, 102, 59, 128, 4, 240, 157, 149, 138, 2, 114, 0, 117, 8, 66, 116, 59, 128, 3, 226, 136, 154, 67, 97, 114, 101, 4, 59, 0, 73, 5, 83, 18, 85, 59, 128, 3 , 226, 150, 161, 76, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 59, 128, 3, 226, 138, 147, 65, 117, 2, 98, 0, 112, 25, 67, 115, 101, 116, 2, 59, 0, 69, 5, 128, 3, 226, 138, 143, 69, 113, 117, 97, 108, 59, 128, 3, 226 , 138, 145, 69, 101, 114, 115, 101, 116, 2, 59, 0, 69, 5, 128, 3, 226, 138, 144, 69, 113, 117, 97, 108, 59, 128, 3, 226, 138, 146, 69, 110, 105, 111, 110, 59, 128, 3, 226, 138, 148, 67, 99, 114, 59, 128, 4, 240, 157, 146, 174, 67 , 97, 114, 59, 128, 3, 226, 139, 134, 4, 98, 0, 99, 34, 109, 73, 112, 7, 2, 59, 0, 115, 5, 128, 3, 226, 139, 144, 66, 101, 116, 2, 59, 0, 69, 5, 128, 3, 226, 139, 144, 69, 113, 117, 97, 108, 59, 128, 3, 226, 138, 134 , 2, 99, 0, 104, 57, 68, 101, 101, 100, 115, 4, 59, 0, 69, 5, 83, 11, 84, 16, 128, 3, 226, 137, 187, 69, 113, 117, 97, 108, 59, 128, 3, 226, 170, 176, 74, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 128, 3, 226, 137, 189 , 69, 105, 108, 100, 101, 59, 128, 3, 226, 137, 191, 69, 84, 104, 97, 116, 59, 128, 3, 226, 136, 139, 65, 59, 128, 3, 226, 136, 145, 3, 59, 0, 101, 5, 115, 26, 128, 3, 226, 139, 145, 68, 114, 115, 101, 116, 2, 59, 0, 69, 5 , 128, 3, 226, 138, 131, 69, 113, 117, 97, 108, 59, 128, 3, 226, 138, 135, 67, 101, 116, 59, 128, 3, 226, 139, 145, 67, 79, 82, 78, 129, 59, 3, 2, 195, 158, 128, 2, 195, 158, 68, 65, 68, 69, 59, 128, 3, 226, 132, 162, 2, 72 , 0, 99, 8, 67, 99, 121, 59, 128, 2, 208, 139, 66, 121, 59, 128, 2, 208, 166, 2, 98, 0, 117, 5, 65, 59, 128, 1, 9, 65, 59, 128, 2, 206, 164, 3, 97, 0, 101, 9, 121, 9, 68, 114, 111, 110, 59, 128, 2, 197, 164, 68 , 100, 105, 108, 59, 128, 2, 197, 162, 65, 59, 128, 2, 208, 162, 66, 114, 59, 128, 4, 240, 157, 148, 151, 2, 101, 0, 105, 24, 2, 114, 0, 116, 12, 70, 101, 102, 111, 114, 101, 59, 128, 3, 226, 136, 180, 66, 97, 59, 128, 2, 206 , 152, 2, 99, 0, 110, 16, 71, 107, 83, 112, 97, 99, 101, 59, 128, 6, 226, 129, 159, 226, 128, 138, 70, 83, 112, 97, 99, 101, 59, 128, 3, 226, 128, 137, 67, 108, 100, 101, 4, 59, 0, 69, 5, 70, 11, 84, 15, 128, 3, 226, 136 , 188, 69, 113, 117, 97, 108, 59, 128, 3, 226, 137, 131, 73, 117, 108, 108, 69, 113, 117, 97, 108, 59, 128, 3, 226, 137, 133, 69, 105, 108, 100, 101, 59, 128, 3, 226, 137, 136, 67, 112, 102, 59, 128, 4, 240, 157, 149, 139, 72, 105, 112 , 108, 101, 68, 111, 116, 59, 128, 3, 226, 131, 155, 2, 99, 0, 116, 9, 66, 114, 59, 128, 4, 240, 157, 146, 175, 68, 114, 111, 107, 59, 128, 2, 197, 166, 2, 99, 0, 114, 14, 67, 117, 116, 101, 129, 59, 3, 2, 195, 154, 128, 2 , 195, 154, 65, 114, 2, 59, 0, 111, 5, 128, 3, 226, 134, 159, 68, 99, 105, 114, 59, 128, 3, 226, 165, 137, 65, 114, 2, 99, 0, 101, 7, 66, 121, 59, 128, 2, 208, 142, 67, 118, 101, 59, 128, 2, 197, 172, 2, 105, 0, 121, 13 , 66, 114, 99, 129, 59, 3, 2, 195, 155, 128, 2, 195, 155, 65, 59, 128, 2, 208, 163, 69, 98, 108, 97, 99, 59, 128, 2, 197, 176, 66, 114, 59, 128, 4, 240, 157, 148, 152, 68, 114, 97, 118, 101, 129, 59, 3, 2, 195, 153, 128, 2 , 195, 153, 68, 97, 99, 114, 59, 128, 2, 197, 170, 2, 100, 0, 105, 60, 66, 101, 114, 2, 66, 0, 80, 35, 2, 97, 0, 114, 6, 66, 114, 59, 128, 1, 95, 66, 97, 99, 2, 101, 0, 107, 7, 65, 59, 128, 3, 226, 143, 159, 67 , 101, 116, 59, 128, 3, 226, 142, 181, 75, 97, 114, 101, 110, 116, 104, 101, 115, 105, 115, 59, 128, 3, 226, 143, 157, 66, 111, 110, 2, 59, 0, 80, 5, 128, 3, 226, 139, 131, 68, 108, 117, 115, 59, 128, 3, 226, 138, 142, 2, 103, 0 , 112, 8, 67, 111, 110, 59, 128, 2, 197, 178, 66, 102, 59, 128, 4, 240, 157, 149, 140, 8, 65, 0, 68, 41, 69, 15, 84, 17, 97, 24, 100, 11, 112, 15, 115, 39, 68, 114, 114, 111, 119, 3, 59, 0, 66, 5, 68, 9, 128, 3, 226 , 134, 145, 67, 97, 114, 59, 128, 3, 226, 164, 146, 73, 111, 119, 110, 65, 114, 114, 111, 119, 59, 128, 3, 226, 135, 133, 73, 111, 119, 110, 65, 114, 114, 111, 119, 59, 128, 3, 226, 134, 149, 75, 113, 117, 105, 108, 105, 98, 114, 105, 117 , 109, 59, 128, 3, 226, 165, 174, 66, 101, 101, 2, 59, 0, 65, 5, 128, 3, 226, 138, 165, 69, 114, 114, 111, 119, 59, 128, 3, 226, 134, 165, 69, 114, 114, 111, 119, 59, 128, 3, 226, 135, 145, 73, 111, 119, 110, 97, 114, 114, 111, 119 , 59, 128, 3, 226, 135, 149, 66, 101, 114, 2, 76, 0, 82, 15, 73, 101, 102, 116, 65, 114, 114, 111, 119, 59, 128, 3, 226, 134, 150, 74, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 128, 3, 226, 134, 151, 65, 105, 2, 59, 0, 108 , 4, 128, 2, 207, 146, 67, 111, 110, 59, 128, 2, 206, 165, 68, 105, 110, 103, 59, 128, 2, 197, 174, 67, 99, 114, 59, 128, 4, 240, 157, 146, 176, 69, 105, 108, 100, 101, 59, 128, 2, 197, 168, 66, 109, 108, 129, 59, 3, 2, 195, 156 , 128, 2, 195, 156, 68, 97, 115, 104, 59, 128, 3, 226, 138, 171, 67, 97, 114, 59, 128, 3, 226, 171, 171, 66, 121, 59, 128, 2, 208, 146, 67, 97, 115, 104, 2, 59, 0, 108, 5, 128, 3, 226, 138, 169, 65, 59, 128, 3, 226, 171, 166 , 2, 101, 0, 114, 7, 65, 59, 128, 3, 226, 139, 129, 3, 98, 0, 116, 9, 121, 66, 67, 97, 114, 59, 128, 3, 226, 128, 150, 2, 59, 0, 105, 5, 128, 3, 226, 128, 150, 67, 99, 97, 108, 4, 66, 0, 76, 9, 83, 8, 84, 15 , 67, 97, 114, 59, 128, 3, 226, 136, 163, 68, 105, 110, 101, 59, 128, 1, 124, 73, 101, 112, 97, 114, 97, 116, 111, 114, 59, 128, 3, 226, 157, 152, 69, 105, 108, 100, 101, 59, 128, 3, 226, 137, 128, 74, 84, 104, 105, 110, 83, 112, 97 , 99, 101, 59, 128, 3, 226, 128, 138, 66, 114, 59, 128, 4, 240, 157, 148, 153, 67, 112, 102, 59, 128, 4, 240, 157, 149, 141, 67, 99, 114, 59, 128, 4, 240, 157, 146, 177, 69, 100, 97, 115, 104, 59, 128, 3, 226, 138, 170, 68, 105, 114 , 99, 59, 128, 2, 197, 180, 68, 100, 103, 101, 59, 128, 3, 226, 139, 128, 66, 114, 59, 128, 4, 240, 157, 148, 154, 67, 112, 102, 59, 128, 4, 240, 157, 149, 142, 67, 99, 114, 59, 128, 4, 240, 157, 146, 178, 66, 114, 59, 128, 4, 240 , 157, 148, 155, 65, 59, 128, 2, 206, 158, 67, 112, 102, 59, 128, 4, 240, 157, 149, 143, 67, 99, 114, 59, 128, 4, 240, 157, 146, 179, 67, 99, 121, 59, 128, 2, 208, 175, 67, 99, 121, 59, 128, 2, 208, 135, 67, 99, 121, 59, 128, 2 , 208, 174, 68, 99, 117, 116, 101, 129, 59, 3, 2, 195, 157, 128, 2, 195, 157, 2, 105, 0, 121, 8, 67, 114, 99, 59, 128, 2, 197, 182, 65, 59, 128, 2, 208, 171, 66, 114, 59, 128, 4, 240, 157, 148, 156, 67, 112, 102, 59, 128, 4 , 240, 157, 149, 144, 67, 99, 114, 59, 128, 4, 240, 157, 146, 180, 67, 109, 108, 59, 128, 2, 197, 184, 67, 99, 121, 59, 128, 2, 208, 150, 69, 99, 117, 116, 101, 59, 128, 2, 197, 185, 2, 97, 0, 121, 9, 68, 114, 111, 110, 59, 128 , 2, 197, 189, 65, 59, 128, 2, 208, 151, 67, 111, 116, 59, 128, 2, 197, 187, 2, 114, 0, 116, 18, 76, 111, 87, 105, 100, 116, 104, 83, 112, 97, 99, 101, 59, 128, 3, 226, 128, 139, 66, 97, 59, 128, 2, 206, 150, 66, 114, 59, 128 , 3, 226, 132, 168, 67, 112, 102, 59, 128, 3, 226, 132, 164, 67, 99, 114, 59, 128, 4, 240, 157, 146, 181, 68, 99, 117, 116, 101, 129, 59, 3, 2, 195, 161, 128, 2, 195, 161, 69, 114, 101, 118, 101, 59, 128, 2, 196, 131, 6, 59, 0 , 69, 5, 100, 9, 105, 7, 117, 13, 121, 13, 128, 3, 226, 136, 190, 65, 59, 128, 5, 226, 136, 190, 204, 179, 65, 59, 128, 3, 226, 136, 191, 66, 114, 99, 129, 59, 3, 2, 195, 162, 128, 2, 195, 162, 66, 116, 101, 129, 59, 3, 2 , 194, 180, 128, 2, 194, 180, 65, 59, 128, 2, 208, 176, 67, 108, 105, 103, 129, 59, 3, 2, 195, 166, 128, 2, 195, 166, 2, 59, 0, 114, 5, 128, 3, 226, 129, 161, 65, 59, 128, 4, 240, 157, 148, 158, 68, 114, 97, 118, 101, 129, 59 , 3, 2, 195, 160, 128, 2, 195, 160, 2, 101, 0, 112, 23, 2, 102, 0, 112, 10, 68, 115, 121, 109, 59, 128, 3, 226, 132, 181, 66, 104, 59, 128, 3, 226, 132, 181, 67, 104, 97, 59, 128, 2, 206, 177, 2, 97, 0, 112, 20, 2, 99 , 0, 108, 7, 66, 114, 59, 128, 2, 196, 129, 66, 103, 59, 128, 3, 226, 168, 191, 129, 59, 2, 1, 38, 128, 1, 38, 2, 100, 0, 103, 50, 5, 59, 0, 97, 5, 100, 9, 115, 7, 118, 11, 128, 3, 226, 136, 167, 67, 110, 100, 59 , 128, 3, 226, 169, 149, 65, 59, 128, 3, 226, 169, 156, 69, 108, 111, 112, 101, 59, 128, 3, 226, 169, 152, 65, 59, 128, 3, 226, 169, 154, 7, 59, 0, 101, 5, 108, 7, 109, 8, 114, 86, 115, 31, 122, 19, 128, 3, 226, 136, 160, 65 , 59, 128, 3, 226, 166, 164, 66, 101, 59, 128, 3, 226, 136, 160, 66, 115, 100, 2, 59, 0, 97, 5, 128, 3, 226, 136, 161, 8, 97, 0, 98, 7, 99, 7, 100, 7, 101, 7, 102, 7, 103, 7, 104, 7, 65, 59, 128, 3, 226, 166, 168 , 65, 59, 128, 3, 226, 166, 169, 65, 59, 128, 3, 226, 166, 170, 65, 59, 128, 3, 226, 166, 171, 65, 59, 128, 3, 226, 166, 172, 65, 59, 128, 3, 226, 166, 173, 65, 59, 128, 3, 226, 166, 174, 65, 59, 128, 3, 226, 166, 175, 65, 116 , 2, 59, 0, 118, 5, 128, 3, 226, 136, 159, 65, 98, 2, 59, 0, 100, 5, 128, 3, 226, 138, 190, 65, 59, 128, 3, 226, 166, 157, 2, 112, 0, 116, 8, 66, 104, 59, 128, 3, 226, 136, 162, 65, 59, 128, 2, 195, 133, 68, 97, 114 , 114, 59, 128, 3, 226, 141, 188, 2, 103, 0, 112, 8, 67, 111, 110, 59, 128, 2, 196, 133, 66, 102, 59, 128, 4, 240, 157, 149, 146, 7, 59, 0, 69, 5, 97, 7, 101, 10, 105, 7, 111, 8, 112, 6, 128, 3, 226, 137, 136, 65, 59 , 128, 3, 226, 169, 176, 68, 99, 105, 114, 59, 128, 3, 226, 169, 175, 65, 59, 128, 3, 226, 137, 138, 66, 100, 59, 128, 3, 226, 137, 139, 66, 115, 59, 128, 1, 39, 67, 114, 111, 120, 2, 59, 0, 101, 5, 128, 3, 226, 137, 136, 66 , 113, 59, 128, 3, 226, 137, 138, 67, 105, 110, 103, 129, 59, 3, 2, 195, 165, 128, 2, 195, 165, 3, 99, 0, 116, 9, 121, 5, 66, 114, 59, 128, 4, 240, 157, 146, 182, 65, 59, 128, 1, 42, 66, 109, 112, 2, 59, 0, 101, 5, 128 , 3, 226, 137, 136, 66, 113, 59, 128, 3, 226, 137, 141, 68, 105, 108, 100, 101, 129, 59, 3, 2, 195, 163, 128, 2, 195, 163, 66, 109, 108, 129, 59, 3, 2, 195, 164, 128, 2, 195, 164, 2, 99, 0, 105, 12, 70, 111, 110, 105, 110, 116 , 59, 128, 3, 226, 136, 179, 67, 110, 116, 59, 128, 3, 226, 168, 145, 67, 111, 116, 59, 128, 3, 226, 171, 173, 2, 99, 0, 114, 65, 65, 107, 4, 99, 0, 101, 10, 112, 12, 115, 11, 68, 111, 110, 103, 59, 128, 3, 226, 137, 140, 71 , 112, 115, 105, 108, 111, 110, 59, 128, 2, 207, 182, 69, 114, 105, 109, 101, 59, 128, 3, 226, 128, 181, 66, 105, 109, 2, 59, 0, 101, 5, 128, 3, 226, 136, 189, 66, 113, 59, 128, 3, 226, 139, 141, 2, 118, 0, 119, 9, 67, 101, 101 , 59, 128, 3, 226, 138, 189, 66, 101, 100, 2, 59, 0, 103, 5, 128, 3, 226, 140, 133, 66, 101, 59, 128, 3, 226, 140, 133, 66, 114, 107, 2, 59, 0, 116, 5, 128, 3, 226, 142, 181, 68, 98, 114, 107, 59, 128, 3, 226, 142, 182, 2 , 111, 0, 121, 9, 67, 110, 103, 59, 128, 3, 226, 137, 140, 65, 59, 128, 2, 208, 177, 68, 113, 117, 111, 59, 128, 3, 226, 128, 158, 5, 99, 0, 109, 21, 112, 11, 114, 8, 116, 10, 67, 97, 117, 115, 2, 59, 0, 101, 5, 128, 3 , 226, 136, 181, 65, 59, 128, 3, 226, 136, 181, 69, 112, 116, 121, 118, 59, 128, 3, 226, 166, 176, 67, 115, 105, 59, 128, 2, 207, 182, 68, 110, 111, 117, 59, 128, 3, 226, 132, 172, 3, 97, 0, 104, 6, 119, 7, 65, 59, 128, 2, 206 , 178, 65, 59, 128, 3, 226, 132, 182, 68, 101, 101, 110, 59, 128, 3, 226, 137, 172, 66, 114, 59, 128, 4, 240, 157, 148, 159, 65, 103, 7, 99, 0, 111, 32, 115, 37, 116, 24, 117, 31, 118, 11, 119, 9, 3, 97, 0, 105, 8, 117, 9 , 66, 112, 59, 128, 3, 226, 139, 130, 67, 114, 99, 59, 128, 3, 226, 151, 175, 66, 112, 59, 128, 3, 226, 139, 131, 3, 100, 0, 112, 9, 116, 10, 67, 111, 116, 59, 128, 3, 226, 168, 128, 68, 108, 117, 115, 59, 128, 3, 226, 168, 129 , 69, 105, 109, 101, 115, 59, 128, 3, 226, 168, 130, 2, 113, 0, 116, 10, 68, 99, 117, 112, 59, 128, 3, 226, 168, 134, 67, 97, 114, 59, 128, 3, 226, 152, 133, 71, 114, 105, 97, 110, 103, 108, 101, 2, 100, 0, 117, 10, 68, 111, 119 , 110, 59, 128, 3, 226, 150, 189, 66, 112, 59, 128, 3, 226, 150, 179, 69, 112, 108, 117, 115, 59, 128, 3, 226, 168, 132, 67, 101, 101, 59, 128, 3, 226, 139, 129, 69, 101, 100, 103, 101, 59, 128, 3, 226, 139, 128, 69, 97, 114, 111, 119 , 59, 128, 3, 226, 164, 141, 3, 97, 0, 107, 100, 111, 32, 2, 99, 0, 110, 87, 65, 107, 3, 108, 0, 115, 13, 116, 12, 71, 111, 122, 101, 110, 103, 101, 59, 128, 3, 226, 167, 171, 70, 113, 117, 97, 114, 101, 59, 128, 3, 226, 150 , 170, 71, 114, 105, 97, 110, 103, 108, 101, 4, 59, 0, 100, 5, 108, 10, 114, 10, 128, 3, 226, 150, 180, 68, 111, 119, 110, 59, 128, 3, 226, 150, 190, 68, 101, 102, 116, 59, 128, 3, 226, 151, 130, 69, 105, 103, 104, 116, 59, 128, 3 , 226, 150, 184, 66, 107, 59, 128, 3, 226, 144, 163, 2, 49, 0, 51, 19, 2, 50, 0, 52, 7, 65, 59, 128, 3, 226, 150, 146, 65, 59, 128, 3, 226, 150, 145, 66, 52, 59, 128, 3, 226, 150, 147, 67, 99, 107, 59, 128, 3, 226, 150 , 136, 2, 101, 0, 111, 24, 2, 59, 0, 113, 6, 128, 4, 61, 226, 131, 165, 68, 117, 105, 118, 59, 128, 6, 226, 137, 161, 226, 131, 165, 66, 116, 59, 128, 3, 226, 140, 144, 4, 112, 0, 116, 9, 119, 19, 120, 10, 66, 102, 59, 128 , 4, 240, 157, 149, 147, 2, 59, 0, 116, 5, 128, 3, 226, 138, 165, 67, 111, 109, 59, 128, 3, 226, 138, 165, 68, 116, 105, 101, 59, 128, 3, 226, 139, 136, 12, 68, 0, 72, 37, 85, 44, 86, 37, 98, 62, 100, 9, 104, 37, 109, 44 , 112, 11, 116, 10, 117, 11, 118, 37, 4, 76, 0, 82, 7, 108, 7, 114, 7, 65, 59, 128, 3, 226, 149, 151, 65, 59, 128, 3, 226, 149, 148, 65, 59, 128, 3, 226, 149, 150, 65, 59, 128, 3, 226, 149, 147, 5, 59, 0, 68, 5, 85 , 7, 100, 7, 117, 7, 128, 3, 226, 149, 144, 65, 59, 128, 3, 226, 149, 166, 65, 59, 128, 3, 226, 149, 169, 65, 59, 128, 3, 226, 149, 164, 65, 59, 128, 3, 226, 149, 167, 4, 76, 0, 82, 7, 108, 7, 114, 7, 65, 59, 128, 3 , 226, 149, 157, 65, 59, 128, 3, 226, 149, 154, 65, 59, 128, 3, 226, 149, 156, 65, 59, 128, 3, 226, 149, 153, 7, 59, 0, 72, 5, 76, 7, 82, 7, 104, 7, 108, 7, 114, 7, 128, 3, 226, 149, 145, 65, 59, 128, 3, 226, 149, 172 , 65, 59, 128, 3, 226, 149, 163, 65, 59, 128, 3, 226, 149, 160, 65, 59, 128, 3, 226, 149, 171, 65, 59, 128, 3, 226, 149, 162, 65, 59, 128, 3, 226, 149, 159, 67, 111, 120, 59, 128, 3, 226, 167, 137, 4, 76, 0, 82, 7, 108, 7 , 114, 7, 65, 59, 128, 3, 226, 149, 149, 65, 59, 128, 3, 226, 149, 146, 65, 59, 128, 3, 226, 148, 144, 65, 59, 128, 3, 226, 148, 140, 5, 59, 0, 68, 5, 85, 7, 100, 7, 117, 7, 128, 3, 226, 148, 128, 65, 59, 128, 3, 226 , 149, 165, 65, 59, 128, 3, 226, 149, 168, 65, 59, 128, 3, 226, 148, 172, 65, 59, 128, 3, 226, 148, 180, 69, 105, 110, 117, 115, 59, 128, 3, 226, 138, 159, 68, 108, 117, 115, 59, 128, 3, 226, 138, 158, 69, 105, 109, 101, 115, 59, 128 , 3, 226, 138, 160, 4, 76, 0, 82, 7, 108, 7, 114, 7, 65, 59, 128, 3, 226, 149, 155, 65, 59, 128, 3, 226, 149, 152, 65, 59, 128, 3, 226, 148, 152, 65, 59, 128, 3, 226, 148, 148, 7, 59, 0, 72, 5, 76, 7, 82, 7, 104 , 7, 108, 7, 114, 7, 128, 3, 226, 148, 130, 65, 59, 128, 3, 226, 149, 170, 65, 59, 128, 3, 226, 149, 161, 65, 59, 128, 3, 226, 149, 158, 65, 59, 128, 3, 226, 148, 188, 65, 59, 128, 3, 226, 148, 164, 65, 59, 128, 3, 226, 148 , 156, 69, 114, 105, 109, 101, 59, 128, 3, 226, 128, 181, 2, 101, 0, 118, 8, 67, 118, 101, 59, 128, 2, 203, 152, 67, 98, 97, 114, 129, 59, 3, 2, 194, 166, 128, 2, 194, 166, 4, 99, 0, 101, 9, 105, 9, 111, 19, 66, 114, 59 , 128, 4, 240, 157, 146, 183, 67, 109, 105, 59, 128, 3, 226, 129, 143, 65, 109, 2, 59, 0, 101, 5, 128, 3, 226, 136, 189, 65, 59, 128, 3, 226, 139, 141, 65, 108, 3, 59, 0, 98, 3, 104, 7, 128, 1, 92, 65, 59, 128, 3, 226 , 167, 133, 68, 115, 117, 98, 59, 128, 3, 226, 159, 136, 2, 108, 0, 109, 20, 65, 108, 2, 59, 0, 101, 5, 128, 3, 226, 128, 162, 66, 116, 59, 128, 3, 226, 128, 162, 65, 112, 3, 59, 0, 69, 5, 101, 7, 128, 3, 226, 137, 142 , 65, 59, 128, 3, 226, 170, 174, 2, 59, 0, 113, 5, 128, 3, 226, 137, 143, 65, 59, 128, 3, 226, 137, 143, 3, 99, 0, 112, 9, 114, 78, 68, 117, 116, 101, 59, 128, 2, 196, 135, 6, 59, 0, 97, 5, 98, 9, 99, 11, 100, 21 , 115, 9, 128, 3, 226, 136, 169, 67, 110, 100, 59, 128, 3, 226, 169, 132, 69, 114, 99, 117, 112, 59, 128, 3, 226, 169, 137, 2, 97, 0, 117, 8, 66, 112, 59, 128, 3, 226, 169, 139, 66, 112, 59, 128, 3, 226, 169, 135, 67, 111, 116 , 59, 128, 3, 226, 169, 128, 65, 59, 128, 6, 226, 136, 169, 239, 184, 128, 2, 101, 0, 111, 8, 66, 116, 59, 128, 3, 226, 129, 129, 66, 110, 59, 128, 2, 203, 135, 4, 97, 0, 101, 21, 105, 14, 117, 8, 2, 112, 0, 114, 8, 66 , 115, 59, 128, 3, 226, 169, 141, 67, 111, 110, 59, 128, 2, 196, 141, 67, 100, 105, 108, 129, 59, 3, 2, 195, 167, 128, 2, 195, 167, 67, 114, 99, 59, 128, 2, 196, 137, 66, 112, 115, 2, 59, 0, 115, 5, 128, 3, 226, 169, 140, 66 , 109, 59, 128, 3, 226, 169, 144, 67, 111, 116, 59, 128, 2, 196, 139, 3, 100, 0, 109, 13, 110, 11, 66, 105, 108, 129, 59, 3, 2, 194, 184, 128, 2, 194, 184, 69, 112, 116, 121, 118, 59, 128, 3, 226, 166, 178, 65, 116, 130, 59, 3 , 101, 4, 2, 194, 162, 128, 2, 194, 162, 69, 114, 100, 111, 116, 59, 128, 2, 194, 183, 66, 114, 59, 128, 4, 240, 157, 148, 160, 3, 99, 0, 101, 7, 105, 23, 66, 121, 59, 128, 2, 209, 135, 66, 99, 107, 2, 59, 0, 109, 5, 128 , 3, 226, 156, 147, 68, 97, 114, 107, 59, 128, 3, 226, 156, 147, 65, 59, 128, 2, 207, 135, 65, 114, 7, 59, 0, 69, 5, 99, 7, 101, 110, 102, 7, 109, 11, 115, 9, 128, 3, 226, 151, 139, 65, 59, 128, 3, 226, 167, 131, 3, 59 , 0, 101, 4, 108, 8, 128, 2, 203, 134, 66, 113, 59, 128, 3, 226, 137, 151, 65, 101, 2, 97, 0, 100, 31, 68, 114, 114, 111, 119, 2, 108, 0, 114, 10, 68, 101, 102, 116, 59, 128, 3, 226, 134, 186, 69, 105, 103, 104, 116, 59, 128 , 3, 226, 134, 187, 5, 82, 0, 83, 6, 97, 7, 99, 9, 100, 10, 65, 59, 128, 2, 194, 174, 65, 59, 128, 3, 226, 147, 136, 67, 115, 116, 59, 128, 3, 226, 138, 155, 68, 105, 114, 99, 59, 128, 3, 226, 138, 154, 68, 97, 115, 104 , 59, 128, 3, 226, 138, 157, 65, 59, 128, 3, 226, 137, 151, 69, 110, 105, 110, 116, 59, 128, 3, 226, 168, 144, 67, 105, 100, 59, 128, 3, 226, 171, 175, 68, 99, 105, 114, 59, 128, 3, 226, 167, 130, 67, 117, 98, 115, 2, 59, 0, 117 , 5, 128, 3, 226, 153, 163, 67, 105, 116, 59, 128, 3, 226, 153, 163, 4, 108, 0, 109, 28, 110, 66, 112, 33, 66, 111, 110, 2, 59, 0, 101, 3, 128, 1, 58, 2, 59, 0, 113, 5, 128, 3, 226, 137, 148, 65, 59, 128, 3, 226, 137 , 148, 2, 109, 0, 112, 15, 65, 97, 2, 59, 0, 116, 3, 128, 1, 44, 65, 59, 128, 1, 64, 3, 59, 0, 102, 5, 108, 8, 128, 3, 226, 136, 129, 66, 110, 59, 128, 3, 226, 136, 152, 65, 101, 2, 109, 0, 120, 10, 68, 101, 110 , 116, 59, 128, 3, 226, 136, 129, 67, 101, 115, 59, 128, 3, 226, 132, 130, 2, 103, 0, 105, 19, 2, 59, 0, 100, 5, 128, 3, 226, 137, 133, 67, 111, 116, 59, 128, 3, 226, 169, 173, 67, 110, 116, 59, 128, 3, 226, 136, 174, 3, 102 , 0, 114, 8, 121, 9, 65, 59, 128, 4, 240, 157, 149, 148, 67, 111, 100, 59, 128, 3, 226, 136, 144, 130, 59, 3, 115, 4, 2, 194, 169, 128, 2, 194, 169, 66, 114, 59, 128, 3, 226, 132, 151, 2, 97, 0, 111, 9, 67, 114, 114, 59 , 128, 3, 226, 134, 181, 67, 115, 115, 59, 128, 3, 226, 156, 151, 2, 99, 0, 117, 9, 66, 114, 59, 128, 4, 240, 157, 146, 184, 2, 98, 0, 112, 17, 2, 59, 0, 101, 5, 128, 3, 226, 171, 143, 65, 59, 128, 3, 226, 171, 145, 2 , 59, 0, 101, 5, 128, 3, 226, 171, 144, 65, 59, 128, 3, 226, 171, 146, 68, 100, 111, 116, 59, 128, 3, 226, 139, 175, 7, 100, 0, 101, 23, 108, 21, 112, 21, 114, 77, 118, 131, 119, 9, 67, 97, 114, 114, 2, 108, 0, 114, 7, 65 , 59, 128, 3, 226, 164, 184, 65, 59, 128, 3, 226, 164, 181, 2, 112, 0, 115, 8, 66, 114, 59, 128, 3, 226, 139, 158, 66, 99, 59, 128, 3, 226, 139, 159, 67, 97, 114, 114, 2, 59, 0, 112, 5, 128, 3, 226, 134, 182, 65, 59, 128 , 3, 226, 164, 189, 6, 59, 0, 98, 5, 99, 11, 100, 21, 111, 9, 115, 8, 128, 3, 226, 136, 170, 69, 114, 99, 97, 112, 59, 128, 3, 226, 169, 136, 2, 97, 0, 117, 8, 66, 112, 59, 128, 3, 226, 169, 134, 66, 112, 59, 128, 3 , 226, 169, 138, 67, 111, 116, 59, 128, 3, 226, 138, 141, 66, 114, 59, 128, 3, 226, 169, 133, 65, 59, 128, 6, 226, 136, 170, 239, 184, 128, 4, 97, 0, 108, 20, 114, 56, 118, 13, 66, 114, 114, 2, 59, 0, 109, 5, 128, 3, 226, 134 , 183, 65, 59, 128, 3, 226, 164, 188, 65, 121, 3, 101, 0, 118, 27, 119, 9, 65, 113, 2, 112, 0, 115, 10, 68, 114, 101, 99, 59, 128, 3, 226, 139, 158, 68, 117, 99, 99, 59, 128, 3, 226, 139, 159, 67, 101, 101, 59, 128, 3, 226 , 139, 142, 69, 101, 100, 103, 101, 59, 128, 3, 226, 139, 143, 66, 101, 110, 129, 59, 3, 2, 194, 164, 128, 2, 194, 164, 70, 101, 97, 114, 114, 111, 119, 2, 108, 0, 114, 10, 68, 101, 102, 116, 59, 128, 3, 226, 134, 182, 69, 105, 103 , 104, 116, 59, 128, 3, 226, 134, 183, 67, 101, 101, 59, 128, 3, 226, 139, 142, 67, 101, 100, 59, 128, 3, 226, 139, 143, 2, 99, 0, 105, 12, 70, 111, 110, 105, 110, 116, 59, 128, 3, 226, 136, 178, 67, 110, 116, 59, 128, 3, 226, 136 , 177, 69, 108, 99, 116, 121, 59, 128, 3, 226, 140, 173, 67, 114, 114, 59, 128, 3, 226, 135, 147, 67, 97, 114, 59, 128, 3, 226, 165, 165, 4, 103, 0, 108, 10, 114, 10, 115, 8, 68, 103, 101, 114, 59, 128, 3, 226, 128, 160, 68, 101 , 116, 104, 59, 128, 3, 226, 132, 184, 66, 114, 59, 128, 3, 226, 134, 147, 65, 104, 2, 59, 0, 118, 5, 128, 3, 226, 128, 144, 65, 59, 128, 3, 226, 138, 163, 2, 107, 0, 108, 11, 69, 97, 114, 111, 119, 59, 128, 3, 226, 164, 143 , 67, 97, 99, 59, 128, 2, 203, 157, 2, 97, 0, 121, 9, 68, 114, 111, 110, 59, 128, 2, 196, 143, 65, 59, 128, 2, 208, 180, 3, 59, 0, 97, 5, 111, 23, 128, 3, 226, 133, 134, 2, 103, 0, 114, 10, 68, 103, 101, 114, 59, 128 , 3, 226, 128, 161, 66, 114, 59, 128, 3, 226, 135, 138, 69, 116, 115, 101, 113, 59, 128, 3, 226, 169, 183, 3, 103, 0, 108, 10, 109, 8, 129, 59, 3, 2, 194, 176, 128, 2, 194, 176, 67, 116, 97, 59, 128, 2, 206, 180, 69, 112, 116 , 121, 118, 59, 128, 3, 226, 166, 177, 2, 105, 0, 114, 10, 68, 115, 104, 116, 59, 128, 3, 226, 165, 191, 65, 59, 128, 4, 240, 157, 148, 161, 66, 97, 114, 2, 108, 0, 114, 7, 65, 59, 128, 3, 226, 135, 131, 65, 59, 128, 3, 226 , 135, 130, 5, 97, 0, 101, 44, 103, 6, 115, 10, 118, 9, 65, 109, 3, 59, 0, 111, 5, 115, 23, 128, 3, 226, 139, 132, 66, 110, 100, 2, 59, 0, 115, 5, 128, 3, 226, 139, 132, 68, 117, 105, 116, 59, 128, 3, 226, 153, 166, 65 , 59, 128, 3, 226, 153, 166, 65, 59, 128, 2, 194, 168, 69, 97, 109, 109, 97, 59, 128, 2, 207, 157, 67, 105, 110, 59, 128, 3, 226, 139, 178, 3, 59, 0, 105, 4, 111, 28, 128, 2, 195, 183, 66, 100, 101, 130, 59, 3, 111, 4, 2 , 195, 183, 128, 2, 195, 183, 71, 110, 116, 105, 109, 101, 115, 59, 128, 3, 226, 139, 135, 67, 110, 120, 59, 128, 3, 226, 139, 135, 67, 99, 121, 59, 128, 2, 209, 146, 65, 99, 2, 111, 0, 114, 9, 67, 114, 110, 59, 128, 3, 226, 140 , 158, 67, 111, 112, 59, 128, 3, 226, 140, 141, 5, 108, 0, 112, 8, 116, 9, 117, 69, 119, 18, 68, 108, 97, 114, 59, 128, 1, 36, 66, 102, 59, 128, 4, 240, 157, 149, 149, 5, 59, 0, 101, 4, 109, 21, 112, 11, 115, 10, 128, 2 , 203, 153, 65, 113, 2, 59, 0, 100, 5, 128, 3, 226, 137, 144, 67, 111, 116, 59, 128, 3, 226, 137, 145, 69, 105, 110, 117, 115, 59, 128, 3, 226, 136, 184, 68, 108, 117, 115, 59, 128, 3, 226, 136, 148, 70, 113, 117, 97, 114, 101, 59 , 128, 3, 226, 138, 161, 76, 98, 108, 101, 98, 97, 114, 119, 101, 100, 103, 101, 59, 128, 3, 226, 140, 134, 65, 110, 3, 97, 0, 100, 11, 104, 16, 69, 114, 114, 111, 119, 59, 128, 3, 226, 134, 147, 74, 111, 119, 110, 97, 114, 114, 111 , 119, 115, 59, 128, 3, 226, 135, 138, 70, 97, 114, 112, 111, 111, 110, 2, 108, 0, 114, 10, 68, 101, 102, 116, 59, 128, 3, 226, 135, 131, 69, 105, 103, 104, 116, 59, 128, 3, 226, 135, 130, 2, 98, 0, 99, 12, 70, 107, 97, 114, 111 , 119, 59, 128, 3, 226, 164, 144, 2, 111, 0, 114, 9, 67, 114, 110, 59, 128, 3, 226, 140, 159, 67, 111, 112, 59, 128, 3, 226, 140, 140, 3, 99, 0, 111, 19, 116, 8, 2, 114, 0, 121, 8, 65, 59, 128, 4, 240, 157, 146, 185, 65 , 59, 128, 2, 209, 149, 66, 108, 59, 128, 3, 226, 167, 182, 68, 114, 111, 107, 59, 128, 2, 196, 145, 2, 100, 0, 114, 9, 67, 111, 116, 59, 128, 3, 226, 139, 177, 65, 105, 2, 59, 0, 102, 5, 128, 3, 226, 150, 191, 65, 59, 128 , 3, 226, 150, 190, 2, 97, 0, 104, 9, 67, 114, 114, 59, 128, 3, 226, 135, 181, 67, 97, 114, 59, 128, 3, 226, 165, 175, 70, 97, 110, 103, 108, 101, 59, 128, 3, 226, 166, 166, 2, 99, 0, 105, 7, 66, 121, 59, 128, 2, 209, 159 , 70, 103, 114, 97, 114, 114, 59, 128, 3, 226, 159, 191, 2, 68, 0, 111, 9, 67, 111, 116, 59, 128, 3, 226, 169, 183, 66, 116, 59, 128, 3, 226, 137, 145, 2, 99, 0, 115, 14, 67, 117, 116, 101, 129, 59, 3, 2, 195, 169, 128, 2 , 195, 169, 68, 116, 101, 114, 59, 128, 3, 226, 169, 174, 4, 97, 0, 105, 9, 111, 22, 121, 10, 68, 114, 111, 110, 59, 128, 2, 196, 155, 65, 114, 2, 59, 0, 99, 5, 128, 3, 226, 137, 150, 129, 59, 3, 2, 195, 170, 128, 2, 195 , 170, 68, 108, 111, 110, 59, 128, 3, 226, 137, 149, 65, 59, 128, 2, 209, 141, 67, 111, 116, 59, 128, 2, 196, 151, 65, 59, 128, 3, 226, 133, 135, 2, 68, 0, 114, 9, 67, 111, 116, 59, 128, 3, 226, 137, 146, 65, 59, 128, 4, 240 , 157, 148, 162, 3, 59, 0, 114, 5, 115, 14, 128, 3, 226, 170, 154, 67, 97, 118, 101, 129, 59, 3, 2, 195, 168, 128, 2, 195, 168, 2, 59, 0, 100, 5, 128, 3, 226, 170, 150, 67, 111, 116, 59, 128, 3, 226, 170, 152, 4, 59, 0 , 105, 5, 108, 12, 115, 7, 128, 3, 226, 170, 153, 70, 110, 116, 101, 114, 115, 59, 128, 3, 226, 143, 167, 65, 59, 128, 3, 226, 132, 147, 2, 59, 0, 100, 5, 128, 3, 226, 170, 149, 67, 111, 116, 59, 128, 3, 226, 170, 151, 3, 97 , 0, 112, 8, 115, 31, 67, 99, 114, 59, 128, 2, 196, 147, 66, 116, 121, 3, 59, 0, 115, 5, 118, 9, 128, 3, 226, 136, 133, 67, 101, 116, 59, 128, 3, 226, 136, 133, 65, 59, 128, 3, 226, 136, 133, 65, 112, 2, 49, 0, 59, 19 , 2, 51, 0, 52, 7, 65, 59, 128, 3, 226, 128, 132, 65, 59, 128, 3, 226, 128, 133, 128, 3, 226, 128, 131, 2, 103, 0, 115, 6, 65, 59, 128, 2, 197, 139, 66, 112, 59, 128, 3, 226, 128, 130, 2, 103, 0, 112, 8, 67, 111, 110 , 59, 128, 2, 196, 153, 66, 102, 59, 128, 4, 240, 157, 149, 150, 3, 97, 0, 108, 20, 115, 9, 65, 114, 2, 59, 0, 115, 5, 128, 3, 226, 139, 149, 66, 108, 59, 128, 3, 226, 167, 163, 67, 117, 115, 59, 128, 3, 226, 169, 177, 65 , 105, 3, 59, 0, 108, 4, 118, 8, 128, 2, 206, 181, 67, 111, 110, 59, 128, 2, 206, 181, 65, 59, 128, 2, 207, 181, 4, 99, 0, 115, 24, 117, 41, 118, 43, 2, 105, 0, 111, 9, 67, 114, 99, 59, 128, 3, 226, 137, 150, 68, 108 , 111, 110, 59, 128, 3, 226, 137, 149, 2, 105, 0, 108, 8, 66, 109, 59, 128, 3, 226, 137, 130, 67, 97, 110, 116, 2, 103, 0, 108, 9, 67, 116, 114, 59, 128, 3, 226, 170, 150, 68, 101, 115, 115, 59, 128, 3, 226, 170, 149, 3, 97 , 0, 101, 7, 105, 9, 67, 108, 115, 59, 128, 1, 61, 67, 115, 116, 59, 128, 3, 226, 137, 159, 65, 118, 2, 59, 0, 68, 5, 128, 3, 226, 137, 161, 66, 68, 59, 128, 3, 226, 169, 184, 70, 112, 97, 114, 115, 108, 59, 128, 3, 226 , 167, 165, 2, 68, 0, 97, 9, 67, 111, 116, 59, 128, 3, 226, 137, 147, 67, 114, 114, 59, 128, 3, 226, 165, 177, 3, 99, 0, 100, 8, 105, 9, 66, 114, 59, 128, 3, 226, 132, 175, 67, 111, 116, 59, 128, 3, 226, 137, 144, 66, 109 , 59, 128, 3, 226, 137, 130, 2, 97, 0, 104, 6, 65, 59, 128, 2, 206, 183, 129, 59, 3, 2, 195, 176, 128, 2, 195, 176, 2, 109, 0, 114, 12, 65, 108, 129, 59, 3, 2, 195, 171, 128, 2, 195, 171, 66, 111, 59, 128, 3, 226, 130 , 172, 3, 99, 0, 105, 6, 112, 9, 66, 108, 59, 128, 1, 33, 67, 115, 116, 59, 128, 3, 226, 136, 131, 2, 101, 0, 111, 14, 72, 99, 116, 97, 116, 105, 111, 110, 59, 128, 3, 226, 132, 176, 73, 110, 101, 110, 116, 105, 97, 108, 101 , 59, 128, 3, 226, 133, 135, 76, 108, 108, 105, 110, 103, 100, 111, 116, 115, 101, 113, 59, 128, 3, 226, 137, 146, 66, 121, 59, 128, 2, 209, 132, 69, 109, 97, 108, 101, 59, 128, 3, 226, 153, 128, 3, 105, 0, 108, 10, 114, 22, 68, 108 , 105, 103, 59, 128, 3, 239, 172, 131, 2, 105, 0, 108, 8, 66, 103, 59, 128, 3, 239, 172, 128, 67, 105, 103, 59, 128, 3, 239, 172, 132, 65, 59, 128, 4, 240, 157, 148, 163, 68, 108, 105, 103, 59, 128, 3, 239, 172, 129, 68, 108, 105 , 103, 59, 128, 2, 102, 106, 3, 97, 0, 108, 8, 116, 9, 66, 116, 59, 128, 3, 226, 153, 173, 67, 105, 103, 59, 128, 3, 239, 172, 130, 67, 110, 115, 59, 128, 3, 226, 150, 177, 67, 111, 102, 59, 128, 2, 198, 146, 2, 112, 0, 114 , 9, 66, 102, 59, 128, 4, 240, 157, 149, 151, 2, 97, 0, 107, 9, 67, 108, 108, 59, 128, 3, 226, 136, 128, 2, 59, 0, 118, 5, 128, 3, 226, 139, 148, 65, 59, 128, 3, 226, 171, 153, 71, 97, 114, 116, 105, 110, 116, 59, 128, 3 , 226, 168, 141, 2, 97, 0, 111, 172, 2, 99, 0, 115, 159, 6, 49, 0, 50, 61, 51, 19, 52, 31, 53, 8, 55, 19, 6, 50, 0, 51, 10, 52, 7, 53, 10, 54, 7, 56, 7, 129, 59, 3, 2, 194, 189, 128, 2, 194, 189, 65, 59 , 128, 3, 226, 133, 147, 129, 59, 3, 2, 194, 188, 128, 2, 194, 188, 65, 59, 128, 3, 226, 133, 149, 65, 59, 128, 3, 226, 133, 153, 65, 59, 128, 3, 226, 133, 155, 2, 51, 0, 53, 7, 65, 59, 128, 3, 226, 133, 148, 65, 59, 128 , 3, 226, 133, 150, 3, 52, 0, 53, 10, 56, 7, 129, 59, 3, 2, 194, 190, 128, 2, 194, 190, 65, 59, 128, 3, 226, 133, 151, 65, 59, 128, 3, 226, 133, 156, 66, 53, 59, 128, 3, 226, 133, 152, 2, 54, 0, 56, 7, 65, 59, 128 , 3, 226, 133, 154, 65, 59, 128, 3, 226, 133, 157, 66, 56, 59, 128, 3, 226, 133, 158, 66, 108, 59, 128, 3, 226, 129, 132, 67, 119, 110, 59, 128, 3, 226, 140, 162, 67, 99, 114, 59, 128, 4, 240, 157, 146, 187, 2, 59, 0, 108, 5 , 128, 3, 226, 137, 167, 65, 59, 128, 3, 226, 170, 140, 3, 99, 0, 109, 9, 112, 18, 68, 117, 116, 101, 59, 128, 2, 199, 181, 66, 109, 97, 2, 59, 0, 100, 4, 128, 2, 206, 179, 65, 59, 128, 2, 207, 157, 65, 59, 128, 3, 226 , 170, 134, 69, 114, 101, 118, 101, 59, 128, 2, 196, 159, 2, 105, 0, 121, 8, 67, 114, 99, 59, 128, 2, 196, 157, 65, 59, 128, 2, 208, 179, 67, 111, 116, 59, 128, 2, 196, 161, 4, 59, 0, 108, 5, 113, 7, 115, 30, 128, 3, 226 , 137, 165, 65, 59, 128, 3, 226, 139, 155, 3, 59, 0, 113, 5, 115, 7, 128, 3, 226, 137, 165, 65, 59, 128, 3, 226, 137, 167, 69, 108, 97, 110, 116, 59, 128, 3, 226, 169, 190, 4, 59, 0, 99, 5, 100, 8, 108, 30, 128, 3, 226 , 169, 190, 66, 99, 59, 128, 3, 226, 170, 169, 66, 111, 116, 2, 59, 0, 111, 5, 128, 3, 226, 170, 128, 2, 59, 0, 108, 5, 128, 3, 226, 170, 130, 65, 59, 128, 3, 226, 170, 132, 2, 59, 0, 101, 8, 128, 6, 226, 139, 155, 239 , 184, 128, 66, 115, 59, 128, 3, 226, 170, 148, 66, 114, 59, 128, 4, 240, 157, 148, 164, 2, 59, 0, 103, 5, 128, 3, 226, 137, 171, 65, 59, 128, 3, 226, 139, 153, 68, 109, 101, 108, 59, 128, 3, 226, 132, 183, 67, 99, 121, 59, 128 , 2, 209, 147, 4, 59, 0, 69, 5, 97, 7, 106, 7, 128, 3, 226, 137, 183, 65, 59, 128, 3, 226, 170, 146, 65, 59, 128, 3, 226, 170, 165, 65, 59, 128, 3, 226, 170, 164, 4, 69, 0, 97, 7, 101, 22, 115, 27, 65, 59, 128, 3 , 226, 137, 169, 65, 112, 2, 59, 0, 112, 5, 128, 3, 226, 170, 138, 68, 114, 111, 120, 59, 128, 3, 226, 170, 138, 2, 59, 0, 113, 5, 128, 3, 226, 170, 136, 2, 59, 0, 113, 5, 128, 3, 226, 170, 136, 65, 59, 128, 3, 226, 137 , 169, 67, 105, 109, 59, 128, 3, 226, 139, 167, 67, 112, 102, 59, 128, 4, 240, 157, 149, 152, 68, 97, 118, 101, 59, 128, 1, 96, 2, 99, 0, 105, 8, 66, 114, 59, 128, 3, 226, 132, 138, 65, 109, 3, 59, 0, 101, 5, 108, 7, 128 , 3, 226, 137, 179, 65, 59, 128, 3, 226, 170, 142, 65, 59, 128, 3, 226, 170, 144, 134, 59, 2, 99, 3, 100, 20, 108, 9, 113, 10, 114, 11, 1, 62, 128, 1, 62, 2, 99, 0, 105, 7, 65, 59, 128, 3, 226, 170, 167, 66, 114, 59 , 128, 3, 226, 169, 186, 67, 111, 116, 59, 128, 3, 226, 139, 151, 68, 80, 97, 114, 59, 128, 3, 226, 166, 149, 69, 117, 101, 115, 116, 59, 128, 3, 226, 169, 188, 5, 97, 0, 100, 24, 101, 9, 108, 28, 115, 10, 2, 112, 0, 114, 11 , 69, 112, 114, 111, 120, 59, 128, 3, 226, 170, 134, 66, 114, 59, 128, 3, 226, 165, 184, 67, 111, 116, 59, 128, 3, 226, 139, 151, 65, 113, 2, 108, 0, 113, 10, 68, 101, 115, 115, 59, 128, 3, 226, 139, 155, 69, 108, 101, 115, 115, 59 , 128, 3, 226, 170, 140, 68, 101, 115, 115, 59, 128, 3, 226, 137, 183, 67, 105, 109, 59, 128, 3, 226, 137, 179, 2, 101, 0, 110, 16, 71, 114, 116, 110, 101, 113, 113, 59, 128, 6, 226, 137, 169, 239, 184, 128, 66, 69, 59, 128, 6, 226 , 137, 169, 239, 184, 128, 67, 114, 114, 59, 128, 3, 226, 135, 148, 4, 105, 0, 108, 10, 109, 7, 114, 10, 68, 114, 115, 112, 59, 128, 3, 226, 128, 138, 66, 102, 59, 128, 2, 194, 189, 68, 105, 108, 116, 59, 128, 3, 226, 132, 139, 2 , 100, 0, 114, 8, 67, 99, 121, 59, 128, 2, 209, 138, 3, 59, 0, 99, 5, 119, 9, 128, 3, 226, 134, 148, 67, 105, 114, 59, 128, 3, 226, 165, 136, 65, 59, 128, 3, 226, 134, 173, 67, 97, 114, 59, 128, 3, 226, 132, 143, 68, 105 , 114, 99, 59, 128, 2, 196, 165, 3, 97, 0, 108, 23, 114, 10, 67, 114, 116, 115, 2, 59, 0, 117, 5, 128, 3, 226, 153, 165, 67, 105, 116, 59, 128, 3, 226, 153, 165, 68, 108, 105, 112, 59, 128, 3, 226, 128, 166, 68, 99, 111, 110 , 59, 128, 3, 226, 138, 185, 66, 114, 59, 128, 4, 240, 157, 148, 165, 65, 115, 2, 101, 0, 119, 11, 69, 97, 114, 111, 119, 59, 128, 3, 226, 164, 165, 69, 97, 114, 111, 119, 59, 128, 3, 226, 164, 166, 5, 97, 0, 109, 9, 111, 10 , 112, 38, 114, 9, 67, 114, 114, 59, 128, 3, 226, 135, 191, 68, 116, 104, 116, 59, 128, 3, 226, 136, 187, 65, 107, 2, 108, 0, 114, 15, 73, 101, 102, 116, 97, 114, 114, 111, 119, 59, 128, 3, 226, 134, 169, 74, 105, 103, 104, 116, 97 , 114, 114, 111, 119, 59, 128, 3, 226, 134, 170, 66, 102, 59, 128, 4, 240, 157, 149, 153, 68, 98, 97, 114, 59, 128, 3, 226, 128, 149, 3, 99, 0, 108, 9, 116, 10, 66, 114, 59, 128, 4, 240, 157, 146, 189, 68, 97, 115, 104, 59, 128 , 3, 226, 132, 143, 68, 114, 111, 107, 59, 128, 2, 196, 167, 2, 98, 0, 112, 10, 68, 117, 108, 108, 59, 128, 3, 226, 129, 131, 68, 104, 101, 110, 59, 128, 3, 226, 128, 144, 68, 99, 117, 116, 101, 129, 59, 3, 2, 195, 173, 128, 2 , 195, 173, 3, 59, 0, 105, 5, 121, 13, 128, 3, 226, 129, 163, 66, 114, 99, 129, 59, 3, 2, 195, 174, 128, 2, 195, 174, 65, 59, 128, 2, 208, 184, 2, 99, 0, 120, 7, 66, 121, 59, 128, 2, 208, 181, 66, 99, 108, 129, 59, 3 , 2, 194, 161, 128, 2, 194, 161, 2, 102, 0, 114, 7, 65, 59, 128, 3, 226, 135, 148, 65, 59, 128, 4, 240, 157, 148, 166, 68, 114, 97, 118, 101, 129, 59, 3, 2, 195, 172, 128, 2, 195, 172, 4, 59, 0, 105, 5, 110, 22, 111, 10 , 128, 3, 226, 133, 136, 2, 105, 0, 110, 9, 67, 110, 116, 59, 128, 3, 226, 168, 140, 66, 116, 59, 128, 3, 226, 136, 173, 68, 102, 105, 110, 59, 128, 3, 226, 167, 156, 67, 116, 97, 59, 128, 3, 226, 132, 169, 68, 108, 105, 103, 59 , 128, 2, 196, 179, 3, 97, 0, 111, 55, 112, 8, 3, 99, 0, 103, 7, 116, 34, 66, 114, 59, 128, 2, 196, 171, 3, 101, 0, 108, 7, 112, 10, 65, 59, 128, 3, 226, 132, 145, 68, 105, 110, 101, 59, 128, 3, 226, 132, 144, 68, 97 , 114, 116, 59, 128, 3, 226, 132, 145, 66, 104, 59, 128, 2, 196, 177, 66, 102, 59, 128, 3, 226, 138, 183, 67, 101, 100, 59, 128, 2, 198, 181, 5, 59, 0, 99, 5, 102, 10, 111, 22, 116, 9, 128, 3, 226, 136, 136, 68, 97, 114, 101 , 59, 128, 3, 226, 132, 133, 66, 105, 110, 2, 59, 0, 116, 5, 128, 3, 226, 136, 158, 67, 105, 101, 59, 128, 3, 226, 167, 157, 68, 100, 111, 116, 59, 128, 2, 196, 177, 5, 59, 0, 99, 5, 101, 9, 108, 25, 112, 11, 128, 3, 226 , 136, 171, 67, 97, 108, 59, 128, 3, 226, 138, 186, 2, 103, 0, 114, 10, 68, 101, 114, 115, 59, 128, 3, 226, 132, 164, 68, 99, 97, 108, 59, 128, 3, 226, 138, 186, 69, 97, 114, 104, 107, 59, 128, 3, 226, 168, 151, 68, 114, 111, 100 , 59, 128, 3, 226, 168, 188, 4, 99, 0, 103, 7, 112, 8, 116, 9, 66, 121, 59, 128, 2, 209, 145, 67, 111, 110, 59, 128, 2, 196, 175, 66, 102, 59, 128, 4, 240, 157, 149, 154, 66, 97, 59, 128, 2, 206, 185, 68, 114, 111, 100, 59 , 128, 3, 226, 168, 188, 68, 117, 101, 115, 116, 129, 59, 3, 2, 194, 191, 128, 2, 194, 191, 2, 99, 0, 105, 9, 66, 114, 59, 128, 4, 240, 157, 146, 190, 65, 110, 5, 59, 0, 69, 5, 100, 7, 115, 9, 118, 17, 128, 3, 226, 136 , 136, 65, 59, 128, 3, 226, 139, 185, 67, 111, 116, 59, 128, 3, 226, 139, 181, 2, 59, 0, 118, 5, 128, 3, 226, 139, 180, 65, 59, 128, 3, 226, 139, 179, 65, 59, 128, 3, 226, 136, 136, 2, 59, 0, 105, 5, 128, 3, 226, 129, 162 , 68, 108, 100, 101, 59, 128, 2, 196, 169, 2, 107, 0, 109, 8, 67, 99, 121, 59, 128, 2, 209, 150, 65, 108, 129, 59, 3, 2, 195, 175, 128, 2, 195, 175, 2, 105, 0, 121, 8, 67, 114, 99, 59, 128, 2, 196, 181, 65, 59, 128, 2 , 208, 185, 66, 114, 59, 128, 4, 240, 157, 148, 167, 68, 97, 116, 104, 59, 128, 2, 200, 183, 67, 112, 102, 59, 128, 4, 240, 157, 149, 155, 2, 99, 0, 101, 9, 66, 114, 59, 128, 4, 240, 157, 146, 191, 68, 114, 99, 121, 59, 128, 2 , 209, 152, 68, 107, 99, 121, 59, 128, 2, 209, 148, 67, 112, 112, 97, 2, 59, 0, 118, 4, 128, 2, 206, 186, 65, 59, 128, 2, 207, 176, 2, 101, 0, 121, 9, 68, 100, 105, 108, 59, 128, 2, 196, 183, 65, 59, 128, 2, 208, 186, 66 , 114, 59, 128, 4, 240, 157, 148, 168, 69, 114, 101, 101, 110, 59, 128, 2, 196, 184, 67, 99, 121, 59, 128, 2, 209, 133, 67, 99, 121, 59, 128, 2, 209, 156, 67, 112, 102, 59, 128, 4, 240, 157, 149, 156, 67, 99, 114, 59, 128, 4, 240 , 157, 147, 128, 3, 97, 0, 114, 9, 116, 8, 67, 114, 114, 59, 128, 3, 226, 135, 154, 66, 114, 59, 128, 3, 226, 135, 144, 68, 97, 105, 108, 59, 128, 3, 226, 164, 155, 68, 97, 114, 114, 59, 128, 3, 226, 164, 142, 2, 59, 0, 103 , 5, 128, 3, 226, 137, 166, 65, 59, 128, 3, 226, 170, 139, 67, 97, 114, 59, 128, 3, 226, 165, 162, 9, 99, 0, 101, 9, 103, 12, 109, 10, 110, 9, 112, 29, 113, 7, 114, 13, 116, 91, 68, 117, 116, 101, 59, 128, 2, 196, 186, 70 , 109, 112, 116, 121, 118, 59, 128, 3, 226, 166, 180, 68, 114, 97, 110, 59, 128, 3, 226, 132, 146, 68, 98, 100, 97, 59, 128, 2, 206, 187, 65, 103, 3, 59, 0, 100, 5, 108, 7, 128, 3, 226, 159, 168, 65, 59, 128, 3, 226, 166, 145 , 66, 101, 59, 128, 3, 226, 159, 168, 65, 59, 128, 3, 226, 170, 133, 66, 117, 111, 129, 59, 3, 2, 194, 171, 128, 2, 194, 171, 65, 114, 8, 59, 0, 98, 5, 102, 18, 104, 8, 108, 8, 112, 8, 115, 8, 116, 9, 128, 3, 226, 134 , 144, 2, 59, 0, 102, 5, 128, 3, 226, 135, 164, 66, 115, 59, 128, 3, 226, 164, 159, 66, 115, 59, 128, 3, 226, 164, 157, 66, 107, 59, 128, 3, 226, 134, 169, 66, 112, 59, 128, 3, 226, 134, 171, 66, 108, 59, 128, 3, 226, 164, 185 , 67, 105, 109, 59, 128, 3, 226, 165, 179, 66, 108, 59, 128, 3, 226, 134, 162, 3, 59, 0, 97, 5, 101, 9, 128, 3, 226, 170, 171, 67, 105, 108, 59, 128, 3, 226, 164, 153, 2, 59, 0, 115, 5, 128, 3, 226, 170, 173, 65, 59, 128 , 6, 226, 170, 173, 239, 184, 128, 3, 97, 0, 98, 9, 114, 9, 67, 114, 114, 59, 128, 3, 226, 164, 140, 67, 114, 107, 59, 128, 3, 226, 157, 178, 2, 97, 0, 107, 17, 65, 99, 2, 101, 0, 107, 5, 65, 59, 128, 1, 123, 65, 59 , 128, 1, 91, 2, 101, 0, 115, 7, 65, 59, 128, 3, 226, 166, 139, 65, 108, 2, 100, 0, 117, 7, 65, 59, 128, 3, 226, 166, 143, 65, 59, 128, 3, 226, 166, 141, 4, 97, 0, 101, 9, 117, 21, 121, 6, 68, 114, 111, 110, 59, 128 , 2, 196, 190, 2, 100, 0, 105, 8, 67, 105, 108, 59, 128, 2, 196, 188, 66, 108, 59, 128, 3, 226, 140, 136, 66, 98, 59, 128, 1, 123, 65, 59, 128, 2, 208, 187, 4, 99, 0, 113, 8, 114, 20, 115, 26, 66, 97, 59, 128, 3, 226 , 164, 182, 66, 117, 111, 2, 59, 0, 114, 5, 128, 3, 226, 128, 156, 65, 59, 128, 3, 226, 128, 158, 2, 100, 0, 117, 10, 68, 104, 97, 114, 59, 128, 3, 226, 165, 167, 69, 115, 104, 97, 114, 59, 128, 3, 226, 165, 139, 66, 104, 59 , 128, 3, 226, 134, 178, 5, 59, 0, 102, 5, 103, 164, 113, 7, 115, 30, 128, 3, 226, 137, 164, 65, 116, 5, 97, 0, 104, 25, 108, 30, 114, 16, 116, 64, 68, 114, 114, 111, 119, 2, 59, 0, 116, 5, 128, 3, 226, 134, 144, 68, 97 , 105, 108, 59, 128, 3, 226, 134, 162, 70, 97, 114, 112, 111, 111, 110, 2, 100, 0, 117, 10, 68, 111, 119, 110, 59, 128, 3, 226, 134, 189, 66, 112, 59, 128, 3, 226, 134, 188, 74, 101, 102, 116, 97, 114, 114, 111, 119, 115, 59, 128, 3 , 226, 135, 135, 68, 105, 103, 104, 116, 3, 97, 0, 104, 22, 115, 14, 68, 114, 114, 111, 119, 2, 59, 0, 115, 5, 128, 3, 226, 134, 148, 65, 59, 128, 3, 226, 135, 134, 72, 97, 114, 112, 111, 111, 110, 115, 59, 128, 3, 226, 135, 139 , 74, 113, 117, 105, 103, 97, 114, 114, 111, 119, 59, 128, 3, 226, 134, 173, 74, 104, 114, 101, 101, 116, 105, 109, 101, 115, 59, 128, 3, 226, 139, 139, 65, 59, 128, 3, 226, 139, 154, 3, 59, 0, 113, 5, 115, 7, 128, 3, 226, 137, 164 , 65, 59, 128, 3, 226, 137, 166, 69, 108, 97, 110, 116, 59, 128, 3, 226, 169, 189, 5, 59, 0, 99, 5, 100, 8, 103, 30, 115, 21, 128, 3, 226, 169, 189, 66, 99, 59, 128, 3, 226, 170, 168, 66, 111, 116, 2, 59, 0, 111, 5, 128 , 3, 226, 169, 191, 2, 59, 0, 114, 5, 128, 3, 226, 170, 129, 65, 59, 128, 3, 226, 170, 131, 2, 59, 0, 101, 8, 128, 6, 226, 139, 154, 239, 184, 128, 66, 115, 59, 128, 3, 226, 170, 147, 5, 97, 0, 100, 12, 101, 9, 103, 26 , 115, 9, 70, 112, 112, 114, 111, 120, 59, 128, 3, 226, 170, 133, 67, 111, 116, 59, 128, 3, 226, 139, 150, 65, 113, 2, 103, 0, 113, 9, 67, 116, 114, 59, 128, 3, 226, 139, 154, 68, 103, 116, 114, 59, 128, 3, 226, 170, 139, 67, 116 , 114, 59, 128, 3, 226, 137, 182, 67, 105, 109, 59, 128, 3, 226, 137, 178, 3, 105, 0, 108, 10, 114, 10, 68, 115, 104, 116, 59, 128, 3, 226, 165, 188, 68, 111, 111, 114, 59, 128, 3, 226, 140, 138, 65, 59, 128, 4, 240, 157, 148, 169 , 2, 59, 0, 69, 5, 128, 3, 226, 137, 182, 65, 59, 128, 3, 226, 170, 145, 2, 97, 0, 98, 31, 65, 114, 2, 100, 0, 117, 7, 65, 59, 128, 3, 226, 134, 189, 2, 59, 0, 108, 5, 128, 3, 226, 134, 188, 65, 59, 128, 3, 226 , 165, 170, 67, 108, 107, 59, 128, 3, 226, 150, 132, 67, 99, 121, 59, 128, 2, 209, 153, 5, 59, 0, 97, 5, 99, 9, 104, 12, 116, 10, 128, 3, 226, 137, 170, 67, 114, 114, 59, 128, 3, 226, 135, 135, 70, 111, 114, 110, 101, 114, 59 , 128, 3, 226, 140, 158, 68, 97, 114, 100, 59, 128, 3, 226, 165, 171, 67, 114, 105, 59, 128, 3, 226, 151, 186, 2, 105, 0, 111, 9, 68, 100, 111, 116, 59, 128, 2, 197, 128, 67, 117, 115, 116, 2, 59, 0, 97, 5, 128, 3, 226, 142 , 176, 68, 99, 104, 101, 59, 128, 3, 226, 142, 176, 4, 69, 0, 97, 7, 101, 22, 115, 27, 65, 59, 128, 3, 226, 137, 168, 65, 112, 2, 59, 0, 112, 5, 128, 3, 226, 170, 137, 68, 114, 111, 120, 59, 128, 3, 226, 170, 137, 2, 59 , 0, 113, 5, 128, 3, 226, 170, 135, 2, 59, 0, 113, 5, 128, 3, 226, 170, 135, 65, 59, 128, 3, 226, 137, 168, 67, 105, 109, 59, 128, 3, 226, 139, 166, 8, 97, 0, 98, 21, 110, 9, 111, 73, 112, 33, 116, 32, 119, 11, 122, 21 , 2, 110, 0, 114, 8, 66, 103, 59, 128, 3, 226, 159, 172, 66, 114, 59, 128, 3, 226, 135, 189, 67, 114, 107, 59, 128, 3, 226, 159, 166, 65, 103, 3, 108, 0, 109, 36, 114, 12, 67, 101, 102, 116, 2, 97, 0, 114, 11, 69, 114, 114 , 111, 119, 59, 128, 3, 226, 159, 181, 74, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 128, 3, 226, 159, 183, 70, 97, 112, 115, 116, 111, 59, 128, 3, 226, 159, 188, 74, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 128, 3, 226, 159 , 182, 70, 112, 97, 114, 114, 111, 119, 2, 108, 0, 114, 10, 68, 101, 102, 116, 59, 128, 3, 226, 134, 171, 69, 105, 103, 104, 116, 59, 128, 3, 226, 134, 172, 3, 97, 0, 102, 8, 108, 8, 66, 114, 59, 128, 3, 226, 166, 133, 65, 59 , 128, 4, 240, 157, 149, 157, 67, 117, 115, 59, 128, 3, 226, 168, 173, 69, 105, 109, 101, 115, 59, 128, 3, 226, 168, 180, 2, 97, 0, 98, 9, 67, 115, 116, 59, 128, 3, 226, 136, 151, 67, 97, 114, 59, 128, 1, 95, 3, 59, 0, 101 , 5, 102, 10, 128, 3, 226, 151, 138, 68, 110, 103, 101, 59, 128, 3, 226, 151, 138, 65, 59, 128, 3, 226, 167, 171, 66, 97, 114, 2, 59, 0, 108, 3, 128, 1, 40, 66, 116, 59, 128, 3, 226, 166, 147, 5, 97, 0, 99, 9, 104, 12 , 109, 20, 116, 7, 67, 114, 114, 59, 128, 3, 226, 135, 134, 70, 111, 114, 110, 101, 114, 59, 128, 3, 226, 140, 159, 66, 97, 114, 2, 59, 0, 100, 5, 128, 3, 226, 135, 139, 65, 59, 128, 3, 226, 165, 173, 65, 59, 128, 3, 226, 128 , 142, 67, 114, 105, 59, 128, 3, 226, 138, 191, 6, 97, 0, 99, 10, 104, 9, 105, 7, 113, 28, 116, 29, 68, 113, 117, 111, 59, 128, 3, 226, 128, 185, 66, 114, 59, 128, 4, 240, 157, 147, 129, 65, 59, 128, 3, 226, 134, 176, 65, 109 , 3, 59, 0, 101, 5, 103, 7, 128, 3, 226, 137, 178, 65, 59, 128, 3, 226, 170, 141, 65, 59, 128, 3, 226, 170, 143, 2, 98, 0, 117, 5, 65, 59, 128, 1, 91, 65, 111, 2, 59, 0, 114, 5, 128, 3, 226, 128, 152, 65, 59, 128 , 3, 226, 128, 154, 68, 114, 111, 107, 59, 128, 2, 197, 130, 136, 59, 2, 99, 3, 100, 20, 104, 9, 105, 10, 108, 10, 113, 10, 114, 11, 1, 60, 128, 1, 60, 2, 99, 0, 105, 7, 65, 59, 128, 3, 226, 170, 166, 66, 114, 59, 128 , 3, 226, 169, 185, 67, 111, 116, 59, 128, 3, 226, 139, 150, 68, 114, 101, 101, 59, 128, 3, 226, 139, 139, 68, 109, 101, 115, 59, 128, 3, 226, 139, 137, 68, 97, 114, 114, 59, 128, 3, 226, 165, 182, 69, 117, 101, 115, 116, 59, 128, 3 , 226, 169, 187, 2, 80, 0, 105, 9, 67, 97, 114, 59, 128, 3, 226, 166, 150, 3, 59, 0, 101, 5, 102, 7, 128, 3, 226, 151, 131, 65, 59, 128, 3, 226, 138, 180, 65, 59, 128, 3, 226, 151, 130, 65, 114, 2, 100, 0, 117, 11, 69 , 115, 104, 97, 114, 59, 128, 3, 226, 165, 138, 68, 104, 97, 114, 59, 128, 3, 226, 165, 166, 2, 101, 0, 110, 16, 71, 114, 116, 110, 101, 113, 113, 59, 128, 6, 226, 137, 168, 239, 184, 128, 66, 69, 59, 128, 6, 226, 137, 168, 239, 184 , 128, 68, 68, 111, 116, 59, 128, 3, 226, 136, 186, 4, 99, 0, 108, 12, 112, 31, 114, 55, 65, 114, 129, 59, 3, 2, 194, 175, 128, 2, 194, 175, 2, 101, 0, 116, 7, 65, 59, 128, 3, 226, 153, 130, 2, 59, 0, 101, 5, 128, 3 , 226, 156, 160, 67, 115, 101, 59, 128, 3, 226, 156, 160, 2, 59, 0, 115, 5, 128, 3, 226, 134, 166, 66, 116, 111, 4, 59, 0, 100, 5, 108, 10, 117, 10, 128, 3, 226, 134, 166, 68, 111, 119, 110, 59, 128, 3, 226, 134, 167, 68, 101 , 102, 116, 59, 128, 3, 226, 134, 164, 66, 112, 59, 128, 3, 226, 134, 165, 68, 107, 101, 114, 59, 128, 3, 226, 150, 174, 2, 111, 0, 121, 10, 68, 109, 109, 97, 59, 128, 3, 226, 168, 169, 65, 59, 128, 2, 208, 188, 68, 97, 115, 104 , 59, 128, 3, 226, 128, 148, 76, 97, 115, 117, 114, 101, 100, 97, 110, 103, 108, 101, 59, 128, 3, 226, 136, 161, 66, 114, 59, 128, 4, 240, 157, 148, 170, 66, 111, 59, 128, 3, 226, 132, 167, 3, 99, 0, 100, 13, 110, 43, 66, 114, 111 , 129, 59, 3, 2, 194, 181, 128, 2, 194, 181, 4, 59, 0, 97, 5, 99, 7, 100, 9, 128, 3, 226, 136, 163, 67, 115, 116, 59, 128, 1, 42, 67, 105, 114, 59, 128, 3, 226, 171, 176, 66, 111, 116, 129, 59, 3, 2, 194, 183, 128, 2 , 194, 183, 66, 117, 115, 3, 59, 0, 98, 5, 100, 7, 128, 3, 226, 136, 146, 65, 59, 128, 3, 226, 138, 159, 2, 59, 0, 117, 5, 128, 3, 226, 136, 184, 65, 59, 128, 3, 226, 168, 170, 2, 99, 0, 100, 8, 66, 112, 59, 128, 3 , 226, 171, 155, 66, 114, 59, 128, 3, 226, 128, 166, 69, 112, 108, 117, 115, 59, 128, 3, 226, 136, 147, 2, 100, 0, 112, 10, 68, 101, 108, 115, 59, 128, 3, 226, 138, 167, 66, 102, 59, 128, 4, 240, 157, 149, 158, 65, 59, 128, 3, 226 , 136, 147, 2, 99, 0, 116, 9, 66, 114, 59, 128, 4, 240, 157, 147, 130, 68, 112, 111, 115, 59, 128, 3, 226, 136, 190, 3, 59, 0, 108, 4, 109, 12, 128, 2, 206, 188, 70, 116, 105, 109, 97, 112, 59, 128, 3, 226, 138, 184, 67, 97 , 112, 59, 128, 3, 226, 138, 184, 2, 103, 0, 116, 9, 65, 59, 128, 5, 226, 139, 153, 204, 184, 2, 59, 0, 118, 8, 128, 6, 226, 137, 171, 226, 131, 146, 65, 59, 128, 5, 226, 137, 171, 204, 184, 3, 101, 0, 108, 35, 116, 9, 66 , 102, 116, 2, 97, 0, 114, 11, 69, 114, 114, 111, 119, 59, 128, 3, 226, 135, 141, 74, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 128, 3, 226, 135, 142, 65, 59, 128, 5, 226, 139, 152, 204, 184, 2, 59, 0, 118, 8, 128, 6, 226 , 137, 170, 226, 131, 146, 65, 59, 128, 5, 226, 137, 170, 204, 184, 74, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 128, 3, 226, 135, 143, 2, 68, 0, 100, 10, 68, 97, 115, 104, 59, 128, 3, 226, 138, 175, 68, 97, 115, 104, 59, 128 , 3, 226, 138, 174, 5, 98, 0, 99, 9, 110, 9, 112, 11, 116, 52, 67, 108, 97, 59, 128, 3, 226, 136, 135, 68, 117, 116, 101, 59, 128, 2, 197, 132, 66, 103, 59, 128, 6, 226, 136, 160, 226, 131, 146, 5, 59, 0, 69, 5, 105, 9 , 111, 10, 112, 7, 128, 3, 226, 137, 137, 65, 59, 128, 5, 226, 169, 176, 204, 184, 66, 100, 59, 128, 5, 226, 137, 139, 204, 184, 66, 115, 59, 128, 2, 197, 137, 68, 114, 111, 120, 59, 128, 3, 226, 137, 137, 66, 117, 114, 2, 59, 0 , 97, 5, 128, 3, 226, 153, 174, 65, 108, 2, 59, 0, 115, 5, 128, 3, 226, 153, 174, 65, 59, 128, 3, 226, 132, 149, 2, 115, 0, 117, 12, 65, 112, 129, 59, 3, 2, 194, 160, 128, 2, 194, 160, 66, 109, 112, 2, 59, 0, 101, 7 , 128, 5, 226, 137, 142, 204, 184, 65, 59, 128, 5, 226, 137, 143, 204, 184, 5, 97, 0, 101, 20, 111, 9, 117, 24, 121, 8, 2, 112, 0, 114, 7, 65, 59, 128, 3, 226, 169, 131, 67, 111, 110, 59, 128, 2, 197, 136, 68, 100, 105, 108 , 59, 128, 2, 197, 134, 66, 110, 103, 2, 59, 0, 100, 5, 128, 3, 226, 137, 135, 67, 111, 116, 59, 128, 5, 226, 169, 173, 204, 184, 66, 112, 59, 128, 3, 226, 169, 130, 65, 59, 128, 2, 208, 189, 68, 97, 115, 104, 59, 128, 3, 226 , 128, 147, 7, 59, 0, 65, 5, 97, 9, 100, 33, 113, 11, 115, 10, 120, 24, 128, 3, 226, 137, 160, 67, 114, 114, 59, 128, 3, 226, 135, 151, 65, 114, 2, 104, 0, 114, 8, 66, 107, 59, 128, 3, 226, 164, 164, 2, 59, 0, 111, 5 , 128, 3, 226, 134, 151, 66, 119, 59, 128, 3, 226, 134, 151, 67, 111, 116, 59, 128, 5, 226, 137, 144, 204, 184, 68, 117, 105, 118, 59, 128, 3, 226, 137, 162, 2, 101, 0, 105, 9, 67, 97, 114, 59, 128, 3, 226, 164, 168, 66, 109, 59 , 128, 5, 226, 137, 130, 204, 184, 67, 105, 115, 116, 2, 59, 0, 115, 5, 128, 3, 226, 136, 132, 65, 59, 128, 3, 226, 136, 132, 66, 114, 59, 128, 4, 240, 157, 148, 171, 4, 69, 0, 101, 9, 115, 55, 116, 9, 65, 59, 128, 5, 226 , 137, 167, 204, 184, 3, 59, 0, 113, 5, 115, 34, 128, 3, 226, 137, 177, 3, 59, 0, 113, 5, 115, 9, 128, 3, 226, 137, 177, 65, 59, 128, 5, 226, 137, 167, 204, 184, 69, 108, 97, 110, 116, 59, 128, 5, 226, 169, 190, 204, 184, 65 , 59, 128, 5, 226, 169, 190, 204, 184, 67, 105, 109, 59, 128, 3, 226, 137, 181, 2, 59, 0, 114, 5, 128, 3, 226, 137, 175, 65, 59, 128, 3, 226, 137, 175, 3, 65, 0, 97, 9, 112, 9, 67, 114, 114, 59, 128, 3, 226, 135, 142, 67 , 114, 114, 59, 128, 3, 226, 134, 174, 67, 97, 114, 59, 128, 3, 226, 171, 178, 3, 59, 0, 115, 5, 118, 17, 128, 3, 226, 136, 139, 2, 59, 0, 100, 5, 128, 3, 226, 139, 188, 65, 59, 128, 3, 226, 139, 186, 65, 59, 128, 3, 226 , 136, 139, 67, 99, 121, 59, 128, 2, 209, 154, 7, 65, 0, 69, 9, 97, 9, 100, 9, 101, 8, 115, 101, 116, 9, 67, 114, 114, 59, 128, 3, 226, 135, 141, 65, 59, 128, 5, 226, 137, 166, 204, 184, 67, 114, 114, 59, 128, 3, 226, 134 , 154, 66, 114, 59, 128, 3, 226, 128, 165, 4, 59, 0, 102, 5, 113, 34, 115, 34, 128, 3, 226, 137, 176, 65, 116, 2, 97, 0, 114, 11, 69, 114, 114, 111, 119, 59, 128, 3, 226, 134, 154, 74, 105, 103, 104, 116, 97, 114, 114, 111, 119 , 59, 128, 3, 226, 134, 174, 3, 59, 0, 113, 5, 115, 9, 128, 3, 226, 137, 176, 65, 59, 128, 5, 226, 137, 166, 204, 184, 69, 108, 97, 110, 116, 59, 128, 5, 226, 169, 189, 204, 184, 2, 59, 0, 115, 7, 128, 5, 226, 169, 189, 204 , 184, 65, 59, 128, 3, 226, 137, 174, 67, 105, 109, 59, 128, 3, 226, 137, 180, 2, 59, 0, 114, 5, 128, 3, 226, 137, 174, 65, 105, 2, 59, 0, 101, 5, 128, 3, 226, 139, 170, 65, 59, 128, 3, 226, 139, 172, 67, 105, 100, 59, 128 , 3, 226, 136, 164, 2, 112, 0, 116, 9, 66, 102, 59, 128, 4, 240, 157, 149, 159, 131, 59, 3, 105, 4, 110, 64, 2, 194, 172, 128, 2, 194, 172, 65, 110, 4, 59, 0, 69, 5, 100, 9, 118, 11, 128, 3, 226, 136, 137, 65, 59, 128 , 5, 226, 139, 185, 204, 184, 67, 111, 116, 59, 128, 5, 226, 139, 181, 204, 184, 3, 97, 0, 98, 7, 99, 7, 65, 59, 128, 3, 226, 136, 137, 65, 59, 128, 3, 226, 139, 183, 65, 59, 128, 3, 226, 139, 182, 65, 105, 2, 59, 0, 118 , 5, 128, 3, 226, 136, 140, 3, 97, 0, 98, 7, 99, 7, 65, 59, 128, 3, 226, 136, 140, 65, 59, 128, 3, 226, 139, 190, 65, 59, 128, 3, 226, 139, 189, 3, 97, 0, 111, 47, 114, 11, 65, 114, 4, 59, 0, 97, 5, 115, 11, 116 , 11, 128, 3, 226, 136, 166, 69, 108, 108, 101, 108, 59, 128, 3, 226, 136, 166, 66, 108, 59, 128, 6, 226, 171, 189, 226, 131, 165, 65, 59, 128, 5, 226, 136, 130, 204, 184, 69, 108, 105, 110, 116, 59, 128, 3, 226, 168, 148, 3, 59, 0 , 99, 5, 101, 9, 128, 3, 226, 138, 128, 67, 117, 101, 59, 128, 3, 226, 139, 160, 2, 59, 0, 99, 7, 128, 5, 226, 170, 175, 204, 184, 2, 59, 0, 101, 5, 128, 3, 226, 138, 128, 66, 113, 59, 128, 5, 226, 170, 175, 204, 184, 4 , 65, 0, 97, 9, 105, 33, 116, 15, 67, 114, 114, 59, 128, 3, 226, 135, 143, 66, 114, 114, 3, 59, 0, 99, 5, 119, 9, 128, 3, 226, 134, 155, 65, 59, 128, 5, 226, 164, 179, 204, 184, 65, 59, 128, 5, 226, 134, 157, 204, 184, 73 , 103, 104, 116, 97, 114, 114, 111, 119, 59, 128, 3, 226, 134, 155, 66, 114, 105, 2, 59, 0, 101, 5, 128, 3, 226, 139, 171, 65, 59, 128, 3, 226, 139, 173, 7, 99, 0, 104, 40, 105, 32, 109, 29, 112, 9, 113, 9, 117, 24, 4, 59 , 0, 99, 5, 101, 9, 114, 9, 128, 3, 226, 138, 129, 67, 117, 101, 59, 128, 3, 226, 139, 161, 65, 59, 128, 5, 226, 170, 176, 204, 184, 65, 59, 128, 4, 240, 157, 147, 131, 67, 111, 114, 116, 2, 109, 0, 112, 9, 67, 105, 100, 59 , 128, 3, 226, 136, 164, 72, 97, 114, 97, 108, 108, 101, 108, 59, 128, 3, 226, 136, 166, 65, 109, 2, 59, 0, 101, 5, 128, 3, 226, 137, 129, 2, 59, 0, 113, 5, 128, 3, 226, 137, 132, 65, 59, 128, 3, 226, 137, 132, 67, 105, 100 , 59, 128, 3, 226, 136, 164, 67, 97, 114, 59, 128, 3, 226, 136, 166, 66, 115, 117, 2, 98, 0, 112, 8, 66, 101, 59, 128, 3, 226, 139, 162, 66, 101, 59, 128, 3, 226, 139, 163, 3, 98, 0, 99, 67, 112, 22, 4, 59, 0, 69, 5 , 101, 9, 115, 7, 128, 3, 226, 138, 132, 65, 59, 128, 5, 226, 171, 133, 204, 184, 65, 59, 128, 3, 226, 138, 136, 66, 101, 116, 2, 59, 0, 101, 8, 128, 6, 226, 138, 130, 226, 131, 146, 65, 113, 2, 59, 0, 113, 5, 128, 3, 226 , 138, 136, 65, 59, 128, 5, 226, 171, 133, 204, 184, 65, 99, 2, 59, 0, 101, 5, 128, 3, 226, 138, 129, 66, 113, 59, 128, 5, 226, 170, 176, 204, 184, 4, 59, 0, 69, 5, 101, 9, 115, 7, 128, 3, 226, 138, 133, 65, 59, 128, 5 , 226, 171, 134, 204, 184, 65, 59, 128, 3, 226, 138, 137, 66, 101, 116, 2, 59, 0, 101, 8, 128, 6, 226, 138, 131, 226, 131, 146, 65, 113, 2, 59, 0, 113, 5, 128, 3, 226, 138, 137, 65, 59, 128, 5, 226, 171, 134, 204, 184, 4, 103 , 0, 105, 8, 108, 14, 114, 8, 66, 108, 59, 128, 3, 226, 137, 185, 67, 108, 100, 101, 129, 59, 3, 2, 195, 177, 128, 2, 195, 177, 66, 103, 59, 128, 3, 226, 137, 184, 70, 105, 97, 110, 103, 108, 101, 2, 108, 0, 114, 22, 67, 101 , 102, 116, 2, 59, 0, 101, 5, 128, 3, 226, 139, 170, 66, 113, 59, 128, 3, 226, 139, 172, 68, 105, 103, 104, 116, 2, 59, 0, 101, 5, 128, 3, 226, 139, 171, 66, 113, 59, 128, 3, 226, 139, 173, 2, 59, 0, 109, 4, 128, 2, 206 , 189, 3, 59, 0, 101, 3, 115, 9, 128, 1, 35, 67, 114, 111, 59, 128, 3, 226, 132, 150, 66, 112, 59, 128, 3, 226, 128, 135, 9, 68, 0, 72, 10, 97, 10, 100, 11, 103, 10, 105, 23, 108, 11, 114, 49, 115, 27, 68, 97, 115, 104 , 59, 128, 3, 226, 138, 173, 68, 97, 114, 114, 59, 128, 3, 226, 164, 132, 66, 112, 59, 128, 6, 226, 137, 141, 226, 131, 146, 68, 97, 115, 104, 59, 128, 3, 226, 138, 172, 2, 101, 0, 116, 10, 65, 59, 128, 6, 226, 137, 165, 226, 131 , 146, 65, 59, 128, 4, 62, 226, 131, 146, 69, 110, 102, 105, 110, 59, 128, 3, 226, 167, 158, 3, 65, 0, 101, 9, 116, 10, 67, 114, 114, 59, 128, 3, 226, 164, 130, 65, 59, 128, 6, 226, 137, 164, 226, 131, 146, 2, 59, 0, 114, 6 , 128, 4, 60, 226, 131, 146, 67, 105, 101, 59, 128, 6, 226, 138, 180, 226, 131, 146, 2, 65, 0, 116, 9, 67, 114, 114, 59, 128, 3, 226, 164, 131, 68, 114, 105, 101, 59, 128, 6, 226, 138, 181, 226, 131, 146, 67, 105, 109, 59, 128, 6 , 226, 136, 188, 226, 131, 146, 3, 65, 0, 97, 9, 110, 33, 67, 114, 114, 59, 128, 3, 226, 135, 150, 65, 114, 2, 104, 0, 114, 8, 66, 107, 59, 128, 3, 226, 164, 163, 2, 59, 0, 111, 5, 128, 3, 226, 134, 150, 66, 119, 59, 128 , 3, 226, 134, 150, 68, 101, 97, 114, 59, 128, 3, 226, 164, 167, 65, 59, 128, 3, 226, 147, 136, 2, 99, 0, 115, 14, 67, 117, 116, 101, 129, 59, 3, 2, 195, 179, 128, 2, 195, 179, 66, 116, 59, 128, 3, 226, 138, 155, 2, 105, 0 , 121, 22, 65, 114, 2, 59, 0, 99, 5, 128, 3, 226, 138, 154, 129, 59, 3, 2, 195, 180, 128, 2, 195, 180, 65, 59, 128, 2, 208, 190, 5, 97, 0, 98, 9, 105, 9, 111, 8, 115, 8, 67, 115, 104, 59, 128, 3, 226, 138, 157, 68 , 108, 97, 99, 59, 128, 2, 197, 145, 66, 118, 59, 128, 3, 226, 168, 184, 66, 116, 59, 128, 3, 226, 138, 153, 68, 111, 108, 100, 59, 128, 3, 226, 166, 188, 68, 108, 105, 103, 59, 128, 2, 197, 147, 2, 99, 0, 114, 9, 67, 105, 114 , 59, 128, 3, 226, 166, 191, 65, 59, 128, 4, 240, 157, 148, 172, 3, 111, 0, 114, 7, 116, 14, 66, 110, 59, 128, 2, 203, 155, 67, 97, 118, 101, 129, 59, 3, 2, 195, 178, 128, 2, 195, 178, 65, 59, 128, 3, 226, 167, 129, 2, 98 , 0, 109, 9, 67, 97, 114, 59, 128, 3, 226, 166, 181, 65, 59, 128, 2, 206, 169, 67, 110, 116, 59, 128, 3, 226, 136, 174, 4, 97, 0, 99, 9, 105, 23, 116, 9, 67, 114, 114, 59, 128, 3, 226, 134, 186, 2, 105, 0, 114, 8, 66 , 114, 59, 128, 3, 226, 166, 190, 68, 111, 115, 115, 59, 128, 3, 226, 166, 187, 67, 110, 101, 59, 128, 3, 226, 128, 190, 65, 59, 128, 3, 226, 167, 128, 3, 97, 0, 101, 8, 105, 8, 67, 99, 114, 59, 128, 2, 197, 141, 67, 103, 97 , 59, 128, 2, 207, 137, 3, 99, 0, 100, 9, 110, 7, 68, 114, 111, 110, 59, 128, 2, 206, 191, 65, 59, 128, 3, 226, 166, 182, 67, 117, 115, 59, 128, 3, 226, 138, 150, 67, 112, 102, 59, 128, 4, 240, 157, 149, 160, 3, 97, 0, 101 , 8, 108, 9, 66, 114, 59, 128, 3, 226, 166, 183, 67, 114, 112, 59, 128, 3, 226, 166, 185, 67, 117, 115, 59, 128, 3, 226, 138, 149, 7, 59, 0, 97, 5, 100, 9, 105, 54, 111, 10, 115, 8, 118, 11, 128, 3, 226, 136, 168, 67, 114 , 114, 59, 128, 3, 226, 134, 187, 4, 59, 0, 101, 5, 102, 20, 109, 10, 128, 3, 226, 169, 157, 65, 114, 2, 59, 0, 111, 5, 128, 3, 226, 132, 180, 66, 102, 59, 128, 3, 226, 132, 180, 129, 59, 3, 2, 194, 170, 128, 2, 194, 170 , 129, 59, 3, 2, 194, 186, 128, 2, 194, 186, 68, 103, 111, 102, 59, 128, 3, 226, 138, 182, 66, 114, 59, 128, 3, 226, 169, 150, 69, 108, 111, 112, 101, 59, 128, 3, 226, 169, 151, 65, 59, 128, 3, 226, 169, 155, 3, 99, 0, 108, 8 , 111, 14, 66, 114, 59, 128, 3, 226, 132, 180, 67, 97, 115, 104, 129, 59, 3, 2, 195, 184, 128, 2, 195, 184, 66, 108, 59, 128, 3, 226, 138, 152, 65, 105, 2, 108, 0, 109, 13, 66, 100, 101, 129, 59, 3, 2, 195, 181, 128, 2, 195 , 181, 66, 101, 115, 2, 59, 0, 97, 5, 128, 3, 226, 138, 151, 66, 115, 59, 128, 3, 226, 168, 182, 66, 109, 108, 129, 59, 3, 2, 195, 182, 128, 2, 195, 182, 68, 98, 97, 114, 59, 128, 3, 226, 140, 189, 65, 114, 4, 59, 0, 97 , 5, 115, 22, 116, 20, 128, 3, 226, 136, 165, 130, 59, 3, 108, 4, 2, 194, 182, 128, 2, 194, 182, 68, 108, 101, 108, 59, 128, 3, 226, 136, 165, 2, 105, 0, 108, 8, 66, 109, 59, 128, 3, 226, 171, 179, 65, 59, 128, 3, 226, 171 , 189, 65, 59, 128, 3, 226, 136, 130, 66, 121, 59, 128, 2, 208, 191, 65, 114, 5, 99, 0, 105, 7, 109, 7, 112, 9, 116, 7, 67, 110, 116, 59, 128, 1, 37, 67, 111, 100, 59, 128, 1, 46, 67, 105, 108, 59, 128, 3, 226, 128, 176 , 65, 59, 128, 3, 226, 138, 165, 68, 101, 110, 107, 59, 128, 3, 226, 128, 177, 66, 114, 59, 128, 4, 240, 157, 148, 173, 3, 105, 0, 109, 15, 111, 10, 2, 59, 0, 118, 4, 128, 2, 207, 134, 65, 59, 128, 2, 207, 149, 68, 109, 97 , 116, 59, 128, 3, 226, 132, 179, 67, 110, 101, 59, 128, 3, 226, 152, 142, 3, 59, 0, 116, 4, 118, 13, 128, 2, 207, 128, 71, 99, 104, 102, 111, 114, 107, 59, 128, 3, 226, 139, 148, 65, 59, 128, 2, 207, 150, 2, 97, 0, 117, 34 , 65, 110, 2, 99, 0, 107, 19, 65, 107, 2, 59, 0, 104, 5, 128, 3, 226, 132, 143, 65, 59, 128, 3, 226, 132, 142, 66, 118, 59, 128, 3, 226, 132, 143, 65, 115, 9, 59, 0, 97, 3, 98, 10, 99, 7, 100, 9, 101, 19, 109, 7 , 115, 12, 116, 9, 128, 1, 43, 68, 99, 105, 114, 59, 128, 3, 226, 168, 163, 65, 59, 128, 3, 226, 138, 158, 67, 105, 114, 59, 128, 3, 226, 168, 162, 2, 111, 0, 117, 7, 65, 59, 128, 3, 226, 136, 148, 65, 59, 128, 3, 226, 168 , 165, 65, 59, 128, 3, 226, 169, 178, 65, 110, 129, 59, 3, 2, 194, 177, 128, 2, 194, 177, 67, 105, 109, 59, 128, 3, 226, 168, 166, 67, 119, 111, 59, 128, 3, 226, 168, 167, 65, 59, 128, 2, 194, 177, 3, 105, 0, 112, 12, 117, 9 , 70, 110, 116, 105, 110, 116, 59, 128, 3, 226, 168, 149, 66, 102, 59, 128, 4, 240, 157, 149, 161, 66, 110, 100, 129, 59, 3, 2, 194, 163, 128, 2, 194, 163, 10, 59, 0, 69, 5, 97, 7, 99, 8, 101, 9, 105, 107, 110, 20, 111, 31 , 115, 69, 117, 9, 128, 3, 226, 137, 186, 65, 59, 128, 3, 226, 170, 179, 66, 112, 59, 128, 3, 226, 170, 183, 67, 117, 101, 59, 128, 3, 226, 137, 188, 2, 59, 0, 99, 5, 128, 3, 226, 170, 175, 6, 59, 0, 97, 5, 99, 12, 101 , 13, 110, 8, 115, 37, 128, 3, 226, 137, 186, 70, 112, 112, 114, 111, 120, 59, 128, 3, 226, 170, 183, 71, 117, 114, 108, 121, 101, 113, 59, 128, 3, 226, 137, 188, 66, 113, 59, 128, 3, 226, 170, 175, 3, 97, 0, 101, 12, 115, 9, 70 , 112, 112, 114, 111, 120, 59, 128, 3, 226, 170, 185, 67, 113, 113, 59, 128, 3, 226, 170, 181, 67, 105, 109, 59, 128, 3, 226, 139, 168, 67, 105, 109, 59, 128, 3, 226, 137, 190, 66, 109, 101, 2, 59, 0, 115, 5, 128, 3, 226, 128, 178 , 65, 59, 128, 3, 226, 132, 153, 3, 69, 0, 97, 7, 115, 8, 65, 59, 128, 3, 226, 170, 181, 66, 112, 59, 128, 3, 226, 170, 185, 67, 105, 109, 59, 128, 3, 226, 139, 168, 3, 100, 0, 102, 7, 112, 37, 65, 59, 128, 3, 226, 136 , 143, 3, 97, 0, 108, 10, 115, 10, 68, 108, 97, 114, 59, 128, 3, 226, 140, 174, 68, 105, 110, 101, 59, 128, 3, 226, 140, 146, 68, 117, 114, 102, 59, 128, 3, 226, 140, 147, 2, 59, 0, 116, 5, 128, 3, 226, 136, 157, 66, 111, 59 , 128, 3, 226, 136, 157, 67, 105, 109, 59, 128, 3, 226, 137, 190, 68, 114, 101, 108, 59, 128, 3, 226, 138, 176, 2, 99, 0, 105, 9, 66, 114, 59, 128, 4, 240, 157, 147, 133, 65, 59, 128, 2, 207, 136, 69, 110, 99, 115, 112, 59, 128 , 3, 226, 128, 136, 66, 114, 59, 128, 4, 240, 157, 148, 174, 67, 110, 116, 59, 128, 3, 226, 168, 140, 67, 112, 102, 59, 128, 4, 240, 157, 149, 162, 69, 114, 105, 109, 101, 59, 128, 3, 226, 129, 151, 67, 99, 114, 59, 128, 4, 240, 157 , 147, 134, 3, 97, 0, 101, 29, 111, 19, 65, 116, 2, 101, 0, 105, 13, 71, 114, 110, 105, 111, 110, 115, 59, 128, 3, 226, 132, 141, 67, 110, 116, 59, 128, 3, 226, 168, 150, 66, 115, 116, 2, 59, 0, 101, 3, 128, 1, 63, 66, 113 , 59, 128, 3, 226, 137, 159, 65, 116, 129, 59, 2, 1, 34, 128, 1, 34, 3, 97, 0, 114, 9, 116, 8, 67, 114, 114, 59, 128, 3, 226, 135, 155, 66, 114, 59, 128, 3, 226, 135, 146, 68, 97, 105, 108, 59, 128, 3, 226, 164, 156, 68 , 97, 114, 114, 59, 128, 3, 226, 164, 143, 67, 97, 114, 59, 128, 3, 226, 165, 164, 7, 99, 0, 100, 22, 101, 9, 110, 12, 113, 38, 114, 13, 116, 119, 2, 101, 0, 117, 9, 65, 59, 128, 5, 226, 136, 189, 204, 177, 67, 116, 101, 59 , 128, 2, 197, 149, 67, 105, 99, 59, 128, 3, 226, 136, 154, 70, 109, 112, 116, 121, 118, 59, 128, 3, 226, 166, 179, 65, 103, 4, 59, 0, 100, 5, 101, 7, 108, 7, 128, 3, 226, 159, 169, 65, 59, 128, 3, 226, 166, 146, 65, 59, 128 , 3, 226, 166, 165, 66, 101, 59, 128, 3, 226, 159, 169, 66, 117, 111, 129, 59, 3, 2, 194, 187, 128, 2, 194, 187, 65, 114, 11, 59, 0, 97, 5, 98, 8, 99, 18, 102, 7, 104, 8, 108, 8, 112, 8, 115, 8, 116, 9, 119, 8, 128 , 3, 226, 134, 146, 66, 112, 59, 128, 3, 226, 165, 181, 2, 59, 0, 102, 5, 128, 3, 226, 135, 165, 66, 115, 59, 128, 3, 226, 164, 160, 65, 59, 128, 3, 226, 164, 179, 66, 115, 59, 128, 3, 226, 164, 158, 66, 107, 59, 128, 3, 226 , 134, 170, 66, 112, 59, 128, 3, 226, 134, 172, 66, 108, 59, 128, 3, 226, 165, 133, 67, 105, 109, 59, 128, 3, 226, 165, 180, 66, 108, 59, 128, 3, 226, 134, 163, 65, 59, 128, 3, 226, 134, 157, 2, 97, 0, 105, 9, 67, 105, 108, 59 , 128, 3, 226, 164, 154, 65, 111, 2, 59, 0, 110, 5, 128, 3, 226, 136, 182, 68, 97, 108, 115, 59, 128, 3, 226, 132, 154, 3, 97, 0, 98, 9, 114, 9, 67, 114, 114, 59, 128, 3, 226, 164, 141, 67, 114, 107, 59, 128, 3, 226, 157 , 179, 2, 97, 0, 107, 17, 65, 99, 2, 101, 0, 107, 5, 65, 59, 128, 1, 125, 65, 59, 128, 1, 93, 2, 101, 0, 115, 7, 65, 59, 128, 3, 226, 166, 140, 65, 108, 2, 100, 0, 117, 7, 65, 59, 128, 3, 226, 166, 142, 65, 59 , 128, 3, 226, 166, 144, 4, 97, 0, 101, 9, 117, 21, 121, 6, 68, 114, 111, 110, 59, 128, 2, 197, 153, 2, 100, 0, 105, 8, 67, 105, 108, 59, 128, 2, 197, 151, 66, 108, 59, 128, 3, 226, 140, 137, 66, 98, 59, 128, 1, 125, 65 , 59, 128, 2, 209, 128, 4, 99, 0, 108, 8, 113, 11, 115, 20, 66, 97, 59, 128, 3, 226, 164, 183, 69, 100, 104, 97, 114, 59, 128, 3, 226, 165, 169, 66, 117, 111, 2, 59, 0, 114, 5, 128, 3, 226, 128, 157, 65, 59, 128, 3, 226 , 128, 157, 66, 104, 59, 128, 3, 226, 134, 179, 3, 97, 0, 99, 42, 103, 8, 65, 108, 4, 59, 0, 105, 5, 112, 9, 115, 10, 128, 3, 226, 132, 156, 67, 110, 101, 59, 128, 3, 226, 132, 155, 68, 97, 114, 116, 59, 128, 3, 226, 132 , 156, 65, 59, 128, 3, 226, 132, 157, 66, 116, 59, 128, 3, 226, 150, 173, 129, 59, 3, 2, 194, 174, 128, 2, 194, 174, 3, 105, 0, 108, 10, 114, 10, 68, 115, 104, 116, 59, 128, 3, 226, 165, 189, 68, 111, 111, 114, 59, 128, 3, 226 , 140, 139, 65, 59, 128, 4, 240, 157, 148, 175, 2, 97, 0, 111, 31, 65, 114, 2, 100, 0, 117, 7, 65, 59, 128, 3, 226, 135, 129, 2, 59, 0, 108, 5, 128, 3, 226, 135, 128, 65, 59, 128, 3, 226, 165, 172, 2, 59, 0, 118, 4 , 128, 2, 207, 129, 65, 59, 128, 2, 207, 177, 3, 103, 0, 110, 155, 115, 7, 66, 104, 116, 6, 97, 0, 104, 25, 108, 30, 114, 35, 115, 17, 116, 16, 68, 114, 114, 111, 119, 2, 59, 0, 116, 5, 128, 3, 226, 134, 146, 68, 97, 105 , 108, 59, 128, 3, 226, 134, 163, 70, 97, 114, 112, 111, 111, 110, 2, 100, 0, 117, 10, 68, 111, 119, 110, 59, 128, 3, 226, 135, 129, 66, 112, 59, 128, 3, 226, 135, 128, 67, 101, 102, 116, 2, 97, 0, 104, 12, 70, 114, 114, 111, 119 , 115, 59, 128, 3, 226, 135, 132, 72, 97, 114, 112, 111, 111, 110, 115, 59, 128, 3, 226, 135, 140, 75, 105, 103, 104, 116, 97, 114, 114, 111, 119, 115, 59, 128, 3, 226, 135, 137, 74, 113, 117, 105, 103, 97, 114, 114, 111, 119, 59, 128, 3 , 226, 134, 157, 74, 104, 114, 101, 101, 116, 105, 109, 101, 115, 59, 128, 3, 226, 139, 140, 66, 103, 59, 128, 2, 203, 154, 74, 105, 110, 103, 100, 111, 116, 115, 101, 113, 59, 128, 3, 226, 137, 147, 3, 97, 0, 104, 9, 109, 9, 67, 114 , 114, 59, 128, 3, 226, 135, 132, 67, 97, 114, 59, 128, 3, 226, 135, 140, 65, 59, 128, 3, 226, 128, 143, 68, 111, 117, 115, 116, 2, 59, 0, 97, 5, 128, 3, 226, 142, 177, 68, 99, 104, 101, 59, 128, 3, 226, 142, 177, 68, 109, 105 , 100, 59, 128, 3, 226, 171, 174, 4, 97, 0, 98, 21, 112, 9, 116, 32, 2, 110, 0, 114, 8, 66, 103, 59, 128, 3, 226, 159, 173, 66, 114, 59, 128, 3, 226, 135, 190, 67, 114, 107, 59, 128, 3, 226, 159, 167, 3, 97, 0, 102, 8 , 108, 8, 66, 114, 59, 128, 3, 226, 166, 134, 65, 59, 128, 4, 240, 157, 149, 163, 67, 117, 115, 59, 128, 3, 226, 168, 174, 69, 105, 109, 101, 115, 59, 128, 3, 226, 168, 181, 2, 97, 0, 112, 18, 65, 114, 2, 59, 0, 103, 3, 128 , 1, 41, 66, 116, 59, 128, 3, 226, 166, 148, 70, 111, 108, 105, 110, 116, 59, 128, 3, 226, 168, 146, 68, 97, 114, 114, 59, 128, 3, 226, 135, 137, 4, 97, 0, 99, 10, 104, 9, 113, 7, 68, 113, 117, 111, 59, 128, 3, 226, 128, 186 , 66, 114, 59, 128, 4, 240, 157, 147, 135, 65, 59, 128, 3, 226, 134, 177, 2, 98, 0, 117, 5, 65, 59, 128, 1, 93, 65, 111, 2, 59, 0, 114, 5, 128, 3, 226, 128, 153, 65, 59, 128, 3, 226, 128, 153, 3, 104, 0, 105, 10, 114 , 10, 68, 114, 101, 101, 59, 128, 3, 226, 139, 140, 68, 109, 101, 115, 59, 128, 3, 226, 139, 138, 65, 105, 4, 59, 0, 101, 5, 102, 7, 108, 7, 128, 3, 226, 150, 185, 65, 59, 128, 3, 226, 138, 181, 65, 59, 128, 3, 226, 150, 184 , 68, 116, 114, 105, 59, 128, 3, 226, 167, 142, 70, 108, 117, 104, 97, 114, 59, 128, 3, 226, 165, 168, 65, 59, 128, 3, 226, 132, 158, 69, 99, 117, 116, 101, 59, 128, 2, 197, 155, 68, 113, 117, 111, 59, 128, 3, 226, 128, 154, 10, 59 , 0, 69, 5, 97, 7, 99, 20, 101, 9, 105, 18, 110, 8, 112, 31, 115, 12, 121, 9, 128, 3, 226, 137, 187, 65, 59, 128, 3, 226, 170, 180, 2, 112, 0, 114, 7, 65, 59, 128, 3, 226, 170, 184, 67, 111, 110, 59, 128, 2, 197, 161 , 67, 117, 101, 59, 128, 3, 226, 137, 189, 2, 59, 0, 100, 5, 128, 3, 226, 170, 176, 67, 105, 108, 59, 128, 2, 197, 159, 67, 114, 99, 59, 128, 2, 197, 157, 3, 69, 0, 97, 7, 115, 8, 65, 59, 128, 3, 226, 170, 182, 66, 112 , 59, 128, 3, 226, 170, 186, 67, 105, 109, 59, 128, 3, 226, 139, 169, 70, 111, 108, 105, 110, 116, 59, 128, 3, 226, 168, 147, 67, 105, 109, 59, 128, 3, 226, 137, 191, 65, 59, 128, 2, 209, 129, 66, 111, 116, 3, 59, 0, 98, 5, 101 , 7, 128, 3, 226, 139, 133, 65, 59, 128, 3, 226, 138, 161, 65, 59, 128, 3, 226, 169, 166, 7, 65, 0, 97, 9, 99, 33, 109, 12, 115, 6, 116, 10, 120, 24, 67, 114, 114, 59, 128, 3, 226, 135, 152, 65, 114, 2, 104, 0, 114, 8 , 66, 107, 59, 128, 3, 226, 164, 165, 2, 59, 0, 111, 5, 128, 3, 226, 134, 152, 66, 119, 59, 128, 3, 226, 134, 152, 65, 116, 129, 59, 3, 2, 194, 167, 128, 2, 194, 167, 66, 105, 59, 128, 1, 59, 68, 119, 97, 114, 59, 128, 3 , 226, 164, 169, 65, 109, 2, 105, 0, 110, 10, 68, 110, 117, 115, 59, 128, 3, 226, 136, 150, 65, 59, 128, 3, 226, 136, 150, 66, 116, 59, 128, 3, 226, 156, 182, 65, 114, 2, 59, 0, 111, 6, 128, 4, 240, 157, 148, 176, 67, 119, 110 , 59, 128, 3, 226, 140, 162, 4, 97, 0, 99, 9, 111, 19, 121, 31, 67, 114, 112, 59, 128, 3, 226, 153, 175, 2, 104, 0, 121, 8, 67, 99, 121, 59, 128, 2, 209, 137, 65, 59, 128, 2, 209, 136, 66, 114, 116, 2, 109, 0, 112, 9 , 67, 105, 100, 59, 128, 3, 226, 136, 163, 72, 97, 114, 97, 108, 108, 101, 108, 59, 128, 3, 226, 136, 165, 129, 59, 3, 2, 194, 173, 128, 2, 194, 173, 2, 103, 0, 109, 26, 66, 109, 97, 3, 59, 0, 102, 4, 118, 6, 128, 2, 207 , 131, 65, 59, 128, 2, 207, 130, 65, 59, 128, 2, 207, 130, 8, 59, 0, 100, 5, 101, 9, 103, 17, 108, 17, 110, 17, 112, 8, 114, 10, 128, 3, 226, 136, 188, 67, 111, 116, 59, 128, 3, 226, 169, 170, 2, 59, 0, 113, 5, 128, 3 , 226, 137, 131, 65, 59, 128, 3, 226, 137, 131, 2, 59, 0, 69, 5, 128, 3, 226, 170, 158, 65, 59, 128, 3, 226, 170, 160, 2, 59, 0, 69, 5, 128, 3, 226, 170, 157, 65, 59, 128, 3, 226, 170, 159, 66, 101, 59, 128, 3, 226, 137 , 134, 68, 108, 117, 115, 59, 128, 3, 226, 168, 164, 68, 97, 114, 114, 59, 128, 3, 226, 165, 178, 68, 97, 114, 114, 59, 128, 3, 226, 134, 144, 4, 97, 0, 101, 30, 105, 12, 116, 20, 2, 108, 0, 115, 16, 74, 108, 115, 101, 116, 109 , 105, 110, 117, 115, 59, 128, 3, 226, 136, 150, 67, 104, 112, 59, 128, 3, 226, 168, 179, 70, 112, 97, 114, 115, 108, 59, 128, 3, 226, 167, 164, 2, 100, 0, 108, 7, 65, 59, 128, 3, 226, 136, 163, 66, 101, 59, 128, 3, 226, 140, 163 , 2, 59, 0, 101, 5, 128, 3, 226, 170, 170, 2, 59, 0, 115, 5, 128, 3, 226, 170, 172, 65, 59, 128, 6, 226, 170, 172, 239, 184, 128, 3, 102, 0, 108, 9, 112, 26, 68, 116, 99, 121, 59, 128, 2, 209, 140, 2, 59, 0, 98, 3 , 128, 1, 47, 2, 59, 0, 97, 5, 128, 3, 226, 167, 132, 66, 114, 59, 128, 3, 226, 140, 191, 66, 102, 59, 128, 4, 240, 157, 149, 164, 65, 97, 2, 100, 0, 114, 22, 66, 101, 115, 2, 59, 0, 117, 5, 128, 3, 226, 153, 160, 67 , 105, 116, 59, 128, 3, 226, 153, 160, 65, 59, 128, 3, 226, 136, 165, 3, 99, 0, 115, 49, 117, 87, 2, 97, 0, 117, 22, 65, 112, 2, 59, 0, 115, 5, 128, 3, 226, 138, 147, 65, 59, 128, 6, 226, 138, 147, 239, 184, 128, 65, 112 , 2, 59, 0, 115, 5, 128, 3, 226, 138, 148, 65, 59, 128, 6, 226, 138, 148, 239, 184, 128, 65, 117, 2, 98, 0, 112, 40, 3, 59, 0, 101, 5, 115, 7, 128, 3, 226, 138, 143, 65, 59, 128, 3, 226, 138, 145, 66, 101, 116, 2, 59 , 0, 101, 5, 128, 3, 226, 138, 143, 66, 113, 59, 128, 3, 226, 138, 145, 3, 59, 0, 101, 5, 115, 7, 128, 3, 226, 138, 144, 65, 59, 128, 3, 226, 138, 146, 66, 101, 116, 2, 59, 0, 101, 5, 128, 3, 226, 138, 144, 66, 113, 59 , 128, 3, 226, 138, 146, 3, 59, 0, 97, 5, 102, 21, 128, 3, 226, 150, 161, 65, 114, 2, 101, 0, 102, 7, 65, 59, 128, 3, 226, 150, 161, 65, 59, 128, 3, 226, 150, 170, 65, 59, 128, 3, 226, 150, 170, 68, 97, 114, 114, 59, 128 , 3, 226, 134, 146, 4, 99, 0, 101, 9, 109, 10, 116, 10, 66, 114, 59, 128, 4, 240, 157, 147, 136, 68, 116, 109, 110, 59, 128, 3, 226, 136, 150, 68, 105, 108, 101, 59, 128, 3, 226, 140, 163, 68, 97, 114, 102, 59, 128, 3, 226, 139 , 134, 2, 97, 0, 114, 19, 65, 114, 2, 59, 0, 102, 5, 128, 3, 226, 152, 134, 65, 59, 128, 3, 226, 152, 133, 2, 97, 0, 110, 30, 68, 105, 103, 104, 116, 2, 101, 0, 112, 12, 71, 112, 115, 105, 108, 111, 110, 59, 128, 2, 207 , 181, 67, 104, 105, 59, 128, 2, 207, 149, 66, 115, 59, 128, 2, 194, 175, 5, 98, 0, 99, 195, 109, 99, 110, 7, 112, 8, 9, 59, 0, 69, 5, 100, 7, 101, 9, 109, 19, 110, 10, 112, 19, 114, 10, 115, 10, 128, 3, 226, 138, 130 , 65, 59, 128, 3, 226, 171, 133, 67, 111, 116, 59, 128, 3, 226, 170, 189, 2, 59, 0, 100, 5, 128, 3, 226, 138, 134, 67, 111, 116, 59, 128, 3, 226, 171, 131, 68, 117, 108, 116, 59, 128, 3, 226, 171, 129, 2, 69, 0, 101, 7, 65 , 59, 128, 3, 226, 171, 139, 65, 59, 128, 3, 226, 138, 138, 68, 108, 117, 115, 59, 128, 3, 226, 170, 191, 68, 97, 114, 114, 59, 128, 3, 226, 165, 185, 3, 101, 0, 105, 53, 117, 8, 65, 116, 3, 59, 0, 101, 5, 110, 19, 128, 3 , 226, 138, 130, 65, 113, 2, 59, 0, 113, 5, 128, 3, 226, 138, 134, 65, 59, 128, 3, 226, 171, 133, 66, 101, 113, 2, 59, 0, 113, 5, 128, 3, 226, 138, 138, 65, 59, 128, 3, 226, 171, 139, 66, 109, 59, 128, 3, 226, 171, 135, 2 , 98, 0, 112, 7, 65, 59, 128, 3, 226, 171, 149, 65, 59, 128, 3, 226, 171, 147, 65, 99, 6, 59, 0, 97, 5, 99, 12, 101, 13, 110, 8, 115, 37, 128, 3, 226, 137, 187, 70, 112, 112, 114, 111, 120, 59, 128, 3, 226, 170, 184, 71 , 117, 114, 108, 121, 101, 113, 59, 128, 3, 226, 137, 189, 66, 113, 59, 128, 3, 226, 170, 176, 3, 97, 0, 101, 12, 115, 9, 70, 112, 112, 114, 111, 120, 59, 128, 3, 226, 170, 186, 67, 113, 113, 59, 128, 3, 226, 170, 182, 67, 105, 109 , 59, 128, 3, 226, 139, 169, 67, 105, 109, 59, 128, 3, 226, 137, 191, 65, 59, 128, 3, 226, 136, 145, 66, 103, 59, 128, 3, 226, 153, 170, 13, 49, 0, 50, 10, 51, 10, 59, 10, 69, 5, 100, 7, 101, 22, 104, 19, 108, 23, 109, 10 , 110, 10, 112, 19, 115, 10, 129, 59, 3, 2, 194, 185, 128, 2, 194, 185, 129, 59, 3, 2, 194, 178, 128, 2, 194, 178, 129, 59, 3, 2, 194, 179, 128, 2, 194, 179, 128, 3, 226, 138, 131, 65, 59, 128, 3, 226, 171, 134, 2, 111, 0 , 115, 8, 66, 116, 59, 128, 3, 226, 170, 190, 67, 117, 98, 59, 128, 3, 226, 171, 152, 2, 59, 0, 100, 5, 128, 3, 226, 138, 135, 67, 111, 116, 59, 128, 3, 226, 171, 132, 65, 115, 2, 111, 0, 117, 8, 66, 108, 59, 128, 3, 226 , 159, 137, 66, 98, 59, 128, 3, 226, 171, 151, 68, 97, 114, 114, 59, 128, 3, 226, 165, 187, 68, 117, 108, 116, 59, 128, 3, 226, 171, 130, 2, 69, 0, 101, 7, 65, 59, 128, 3, 226, 171, 140, 65, 59, 128, 3, 226, 138, 139, 68, 108 , 117, 115, 59, 128, 3, 226, 171, 128, 3, 101, 0, 105, 53, 117, 8, 65, 116, 3, 59, 0, 101, 5, 110, 19, 128, 3, 226, 138, 131, 65, 113, 2, 59, 0, 113, 5, 128, 3, 226, 138, 135, 65, 59, 128, 3, 226, 171, 134, 66, 101, 113 , 2, 59, 0, 113, 5, 128, 3, 226, 138, 139, 65, 59, 128, 3, 226, 171, 140, 66, 109, 59, 128, 3, 226, 171, 136, 2, 98, 0, 112, 7, 65, 59, 128, 3, 226, 171, 148, 65, 59, 128, 3, 226, 171, 150, 3, 65, 0, 97, 9, 110, 33 , 67, 114, 114, 59, 128, 3, 226, 135, 153, 65, 114, 2, 104, 0, 114, 8, 66, 107, 59, 128, 3, 226, 164, 166, 2, 59, 0, 111, 5, 128, 3, 226, 134, 153, 66, 119, 59, 128, 3, 226, 134, 153, 68, 119, 97, 114, 59, 128, 3, 226, 164 , 170, 67, 108, 105, 103, 129, 59, 3, 2, 195, 159, 128, 2, 195, 159, 2, 114, 0, 117, 10, 68, 103, 101, 116, 59, 128, 3, 226, 140, 150, 65, 59, 128, 2, 207, 132, 67, 114, 107, 59, 128, 3, 226, 142, 180, 3, 97, 0, 101, 9, 121 , 9, 68, 114, 111, 110, 59, 128, 2, 197, 165, 68, 100, 105, 108, 59, 128, 2, 197, 163, 65, 59, 128, 2, 209, 130, 67, 111, 116, 59, 128, 3, 226, 131, 155, 69, 108, 114, 101, 99, 59, 128, 3, 226, 140, 149, 66, 114, 59, 128, 4, 240 , 157, 148, 177, 4, 101, 0, 105, 56, 107, 42, 111, 22, 2, 114, 0, 116, 24, 65, 101, 2, 52, 0, 102, 7, 65, 59, 128, 3, 226, 136, 180, 68, 111, 114, 101, 59, 128, 3, 226, 136, 180, 65, 97, 3, 59, 0, 115, 4, 118, 8, 128 , 2, 206, 184, 67, 121, 109, 59, 128, 2, 207, 145, 65, 59, 128, 2, 207, 145, 2, 99, 0, 110, 28, 65, 107, 2, 97, 0, 115, 12, 70, 112, 112, 114, 111, 120, 59, 128, 3, 226, 137, 136, 67, 105, 109, 59, 128, 3, 226, 136, 188, 67 , 115, 112, 59, 128, 3, 226, 128, 137, 2, 97, 0, 115, 8, 66, 112, 59, 128, 3, 226, 137, 136, 67, 105, 109, 59, 128, 3, 226, 136, 188, 66, 114, 110, 129, 59, 3, 2, 195, 190, 128, 2, 195, 190, 3, 108, 0, 109, 8, 110, 42, 67 , 100, 101, 59, 128, 2, 203, 156, 66, 101, 115, 131, 59, 3, 98, 4, 100, 18, 2, 195, 151, 128, 2, 195, 151, 2, 59, 0, 97, 5, 128, 3, 226, 138, 160, 66, 114, 59, 128, 3, 226, 168, 177, 65, 59, 128, 3, 226, 168, 176, 66, 116 , 59, 128, 3, 226, 136, 173, 3, 101, 0, 112, 8, 115, 52, 66, 97, 59, 128, 3, 226, 164, 168, 4, 59, 0, 98, 5, 99, 9, 102, 9, 128, 3, 226, 138, 164, 67, 111, 116, 59, 128, 3, 226, 140, 182, 67, 105, 114, 59, 128, 3, 226 , 171, 177, 2, 59, 0, 111, 6, 128, 4, 240, 157, 149, 165, 67, 114, 107, 59, 128, 3, 226, 171, 154, 66, 97, 59, 128, 3, 226, 164, 169, 69, 114, 105, 109, 101, 59, 128, 3, 226, 128, 180, 3, 97, 0, 105, 9, 112, 153, 67, 100, 101 , 59, 128, 3, 226, 132, 162, 7, 97, 0, 100, 83, 101, 9, 109, 7, 112, 11, 115, 10, 116, 8, 68, 110, 103, 108, 101, 5, 59, 0, 100, 5, 108, 10, 113, 22, 114, 7, 128, 3, 226, 150, 181, 68, 111, 119, 110, 59, 128, 3, 226, 150 , 191, 67, 101, 102, 116, 2, 59, 0, 101, 5, 128, 3, 226, 151, 131, 66, 113, 59, 128, 3, 226, 138, 180, 65, 59, 128, 3, 226, 137, 156, 68, 105, 103, 104, 116, 2, 59, 0, 101, 5, 128, 3, 226, 150, 185, 66, 113, 59, 128, 3, 226 , 138, 181, 67, 111, 116, 59, 128, 3, 226, 151, 172, 65, 59, 128, 3, 226, 137, 156, 69, 105, 110, 117, 115, 59, 128, 3, 226, 168, 186, 68, 108, 117, 115, 59, 128, 3, 226, 168, 185, 66, 98, 59, 128, 3, 226, 167, 141, 68, 105, 109, 101 , 59, 128, 3, 226, 168, 187, 70, 101, 122, 105, 117, 109, 59, 128, 3, 226, 143, 162, 3, 99, 0, 104, 19, 116, 8, 2, 114, 0, 121, 8, 65, 59, 128, 4, 240, 157, 147, 137, 65, 59, 128, 2, 209, 134, 67, 99, 121, 59, 128, 2, 209 , 155, 68, 114, 111, 107, 59, 128, 2, 197, 167, 2, 105, 0, 111, 9, 67, 120, 116, 59, 128, 3, 226, 137, 172, 68, 104, 101, 97, 100, 2, 108, 0, 114, 15, 73, 101, 102, 116, 97, 114, 114, 111, 119, 59, 128, 3, 226, 134, 158, 74, 105 , 103, 104, 116, 97, 114, 114, 111, 119, 59, 128, 3, 226, 134, 160, 67, 114, 114, 59, 128, 3, 226, 135, 145, 67, 97, 114, 59, 128, 3, 226, 165, 163, 2, 99, 0, 114, 14, 67, 117, 116, 101, 129, 59, 3, 2, 195, 186, 128, 2, 195, 186 , 66, 114, 59, 128, 3, 226, 134, 145, 65, 114, 2, 99, 0, 101, 7, 66, 121, 59, 128, 2, 209, 158, 67, 118, 101, 59, 128, 2, 197, 173, 2, 105, 0, 121, 13, 66, 114, 99, 129, 59, 3, 2, 195, 187, 128, 2, 195, 187, 65, 59, 128 , 2, 209, 131, 3, 97, 0, 98, 9, 104, 9, 67, 114, 114, 59, 128, 3, 226, 135, 133, 68, 108, 97, 99, 59, 128, 2, 197, 177, 67, 97, 114, 59, 128, 3, 226, 165, 174, 2, 105, 0, 114, 10, 68, 115, 104, 116, 59, 128, 3, 226, 165 , 190, 65, 59, 128, 4, 240, 157, 148, 178, 68, 114, 97, 118, 101, 129, 59, 3, 2, 195, 185, 128, 2, 195, 185, 2, 97, 0, 98, 21, 65, 114, 2, 108, 0, 114, 7, 65, 59, 128, 3, 226, 134, 191, 65, 59, 128, 3, 226, 134, 190, 67 , 108, 107, 59, 128, 3, 226, 150, 128, 2, 99, 0, 116, 35, 2, 111, 0, 114, 21, 66, 114, 110, 2, 59, 0, 101, 5, 128, 3, 226, 140, 156, 66, 114, 59, 128, 3, 226, 140, 156, 67, 111, 112, 59, 128, 3, 226, 140, 143, 67, 114, 105 , 59, 128, 3, 226, 151, 184, 2, 97, 0, 108, 8, 67, 99, 114, 59, 128, 2, 197, 171, 129, 59, 3, 2, 194, 168, 128, 2, 194, 168, 2, 103, 0, 112, 8, 67, 111, 110, 59, 128, 2, 197, 179, 66, 102, 59, 128, 4, 240, 157, 149, 166 , 6, 97, 0, 100, 11, 104, 15, 108, 33, 115, 9, 117, 27, 69, 114, 114, 111, 119, 59, 128, 3, 226, 134, 145, 73, 111, 119, 110, 97, 114, 114, 111, 119, 59, 128, 3, 226, 134, 149, 70, 97, 114, 112, 111, 111, 110, 2, 108, 0, 114, 10 , 68, 101, 102, 116, 59, 128, 3, 226, 134, 191, 69, 105, 103, 104, 116, 59, 128, 3, 226, 134, 190, 67, 117, 115, 59, 128, 3, 226, 138, 142, 65, 105, 3, 59, 0, 104, 4, 108, 6, 128, 2, 207, 133, 65, 59, 128, 2, 207, 146, 67, 111 , 110, 59, 128, 2, 207, 133, 72, 112, 97, 114, 114, 111, 119, 115, 59, 128, 3, 226, 135, 136, 3, 99, 0, 105, 35, 116, 8, 2, 111, 0, 114, 21, 66, 114, 110, 2, 59, 0, 101, 5, 128, 3, 226, 140, 157, 66, 114, 59, 128, 3, 226 , 140, 157, 67, 111, 112, 59, 128, 3, 226, 140, 142, 67, 110, 103, 59, 128, 2, 197, 175, 67, 114, 105, 59, 128, 3, 226, 151, 185, 67, 99, 114, 59, 128, 4, 240, 157, 147, 138, 3, 100, 0, 105, 9, 114, 9, 67, 111, 116, 59, 128, 3 , 226, 139, 176, 68, 108, 100, 101, 59, 128, 2, 197, 169, 65, 105, 2, 59, 0, 102, 5, 128, 3, 226, 150, 181, 65, 59, 128, 3, 226, 150, 180, 2, 97, 0, 109, 9, 67, 114, 114, 59, 128, 3, 226, 135, 136, 65, 108, 129, 59, 3, 2 , 195, 188, 128, 2, 195, 188, 70, 97, 110, 103, 108, 101, 59, 128, 3, 226, 166, 167, 67, 114, 114, 59, 128, 3, 226, 135, 149, 66, 97, 114, 2, 59, 0, 118, 5, 128, 3, 226, 171, 168, 65, 59, 128, 3, 226, 171, 169, 68, 97, 115, 104 , 59, 128, 3, 226, 138, 168, 2, 110, 0, 114, 10, 68, 103, 114, 116, 59, 128, 3, 226, 166, 156, 7, 101, 0, 107, 12, 110, 10, 112, 13, 114, 31, 115, 17, 116, 79, 71, 112, 115, 105, 108, 111, 110, 59, 128, 2, 207, 181, 69, 97, 112 , 112, 97, 59, 128, 2, 207, 176, 71, 111, 116, 104, 105, 110, 103, 59, 128, 3, 226, 136, 133, 3, 104, 0, 105, 7, 114, 6, 66, 105, 59, 128, 2, 207, 149, 65, 59, 128, 2, 207, 150, 69, 111, 112, 116, 111, 59, 128, 3, 226, 136, 157 , 2, 59, 0, 104, 5, 128, 3, 226, 134, 149, 66, 111, 59, 128, 2, 207, 177, 2, 105, 0, 117, 9, 68, 103, 109, 97, 59, 128, 2, 207, 130, 2, 98, 0, 112, 30, 70, 115, 101, 116, 110, 101, 113, 2, 59, 0, 113, 8, 128, 6, 226 , 138, 138, 239, 184, 128, 65, 59, 128, 6, 226, 171, 139, 239, 184, 128, 70, 115, 101, 116, 110, 101, 113, 2, 59, 0, 113, 8, 128, 6, 226, 138, 139, 239, 184, 128, 65, 59, 128, 6, 226, 171, 140, 239, 184, 128, 2, 104, 0, 114, 9, 68 , 101, 116, 97, 59, 128, 2, 207, 145, 70, 105, 97, 110, 103, 108, 101, 2, 108, 0, 114, 10, 68, 101, 102, 116, 59, 128, 3, 226, 138, 178, 69, 105, 103, 104, 116, 59, 128, 3, 226, 138, 179, 66, 121, 59, 128, 2, 208, 178, 68, 97, 115 , 104, 59, 128, 3, 226, 138, 162, 3, 101, 0, 108, 29, 114, 10, 3, 59, 0, 98, 5, 101, 9, 128, 3, 226, 136, 168, 67, 97, 114, 59, 128, 3, 226, 138, 187, 66, 113, 59, 128, 3, 226, 137, 154, 68, 108, 105, 112, 59, 128, 3, 226 , 139, 174, 2, 98, 0, 116, 7, 67, 97, 114, 59, 128, 1, 124, 65, 59, 128, 1, 124, 66, 114, 59, 128, 4, 240, 157, 148, 179, 68, 116, 114, 105, 59, 128, 3, 226, 138, 178, 66, 115, 117, 2, 98, 0, 112, 10, 65, 59, 128, 6, 226 , 138, 130, 226, 131, 146, 65, 59, 128, 6, 226, 138, 131, 226, 131, 146, 67, 112, 102, 59, 128, 4, 240, 157, 149, 167, 68, 114, 111, 112, 59, 128, 3, 226, 136, 157, 68, 116, 114, 105, 59, 128, 3, 226, 138, 179, 2, 99, 0, 117, 9, 66 , 114, 59, 128, 4, 240, 157, 147, 139, 2, 98, 0, 112, 27, 65, 110, 2, 69, 0, 101, 10, 65, 59, 128, 6, 226, 171, 139, 239, 184, 128, 65, 59, 128, 6, 226, 138, 138, 239, 184, 128, 65, 110, 2, 69, 0, 101, 10, 65, 59, 128, 6 , 226, 171, 140, 239, 184, 128, 65, 59, 128, 6, 226, 138, 139, 239, 184, 128, 70, 105, 103, 122, 97, 103, 59, 128, 3, 226, 166, 154, 68, 105, 114, 99, 59, 128, 2, 197, 181, 2, 100, 0, 105, 33, 2, 98, 0, 103, 9, 67, 97, 114, 59 , 128, 3, 226, 169, 159, 65, 101, 2, 59, 0, 113, 5, 128, 3, 226, 136, 167, 65, 59, 128, 3, 226, 137, 153, 68, 101, 114, 112, 59, 128, 3, 226, 132, 152, 66, 114, 59, 128, 4, 240, 157, 148, 180, 67, 112, 102, 59, 128, 4, 240, 157 , 149, 168, 65, 59, 128, 3, 226, 132, 152, 2, 59, 0, 101, 5, 128, 3, 226, 137, 128, 68, 97, 116, 104, 59, 128, 3, 226, 137, 128, 67, 99, 114, 59, 128, 4, 240, 157, 147, 140, 3, 97, 0, 105, 8, 117, 9, 66, 112, 59, 128, 3 , 226, 139, 130, 67, 114, 99, 59, 128, 3, 226, 151, 175, 66, 112, 59, 128, 3, 226, 139, 131, 68, 116, 114, 105, 59, 128, 3, 226, 150, 189, 66, 114, 59, 128, 4, 240, 157, 148, 181, 2, 65, 0, 97, 9, 67, 114, 114, 59, 128, 3, 226 , 159, 186, 67, 114, 114, 59, 128, 3, 226, 159, 183, 65, 59, 128, 2, 206, 190, 2, 65, 0, 97, 9, 67, 114, 114, 59, 128, 3, 226, 159, 184, 67, 114, 114, 59, 128, 3, 226, 159, 181, 67, 97, 112, 59, 128, 3, 226, 159, 188, 67, 105 , 115, 59, 128, 3, 226, 139, 187, 3, 100, 0, 112, 9, 116, 22, 67, 111, 116, 59, 128, 3, 226, 168, 128, 2, 102, 0, 108, 8, 65, 59, 128, 4, 240, 157, 149, 169, 67, 117, 115, 59, 128, 3, 226, 168, 129, 68, 105, 109, 101, 59, 128 , 3, 226, 168, 130, 2, 65, 0, 97, 9, 67, 114, 114, 59, 128, 3, 226, 159, 185, 67, 114, 114, 59, 128, 3, 226, 159, 182, 2, 99, 0, 113, 9, 66, 114, 59, 128, 4, 240, 157, 147, 141, 68, 99, 117, 112, 59, 128, 3, 226, 168, 134 , 2, 112, 0, 116, 10, 68, 108, 117, 115, 59, 128, 3, 226, 168, 132, 67, 114, 105, 59, 128, 3, 226, 150, 179, 67, 101, 101, 59, 128, 3, 226, 139, 129, 69, 101, 100, 103, 101, 59, 128, 3, 226, 139, 128, 65, 99, 2, 117, 0, 121, 13 , 66, 116, 101, 129, 59, 3, 2, 195, 189, 128, 2, 195, 189, 65, 59, 128, 2, 209, 143, 2, 105, 0, 121, 8, 67, 114, 99, 59, 128, 2, 197, 183, 65, 59, 128, 2, 209, 139, 65, 110, 129, 59, 3, 2, 194, 165, 128, 2, 194, 165, 66 , 114, 59, 128, 4, 240, 157, 148, 182, 67, 99, 121, 59, 128, 2, 209, 151, 67, 112, 102, 59, 128, 4, 240, 157, 149, 170, 67, 99, 114, 59, 128, 4, 240, 157, 147, 142, 2, 99, 0, 109, 7, 66, 121, 59, 128, 2, 209, 142, 65, 108, 129 , 59, 3, 2, 195, 191, 128, 2, 195, 191, 69, 99, 117, 116, 101, 59, 128, 2, 197, 186, 2, 97, 0, 121, 9, 68, 114, 111, 110, 59, 128, 2, 197, 190, 65, 59, 128, 2, 208, 183, 67, 111, 116, 59, 128, 2, 197, 188, 2, 101, 0, 116 , 10, 68, 116, 114, 102, 59, 128, 3, 226, 132, 168, 66, 97, 59, 128, 2, 206, 182, 66, 114, 59, 128, 4, 240, 157, 148, 183, 67, 99, 121, 59, 128, 2, 208, 182, 70, 103, 114, 97, 114, 114, 59, 128, 3, 226, 135, 157, 67, 112, 102, 59 , 128, 4, 240, 157, 149, 171, 67, 99, 114, 59, 128, 4, 240, 157, 147, 143, 2, 106, 0, 110, 7, 65, 59, 128, 3, 226, 128, 141, 66, 106, 59, 128, 3, 226, 128, 140 ); function strBetween(const s, from, till: string): string; var i, j: SizeInt; begin i := strIndexOf(s, from); if i = 0 then result := '' else begin i := i + length(from); j := strIndexOf(s, till, i); if j = 0 then result := '' else result := strslice(s, i, j - 1); end; end; function strBefore(const s, sep: string): string; var i: SizeInt; begin i := strIndexOf(s, sep); if i = 0 then result := '' else result := copy(s, 1, i-1); end; function strAfter(const s, sep: string): string; var i: SizeInt; begin i := strIndexOf(s, sep); if i = 0 then result := '' else result := strcopyfrom(s, i + length(sep)); end; function strBeforeLast(const s, sep: string): string; var i: SizeInt; begin i := strLastIndexOf(s, sep); if i = 0 then result := '' else result := copy(s, 1, i-1); end; function strAfterLast(const s, sep: string): string; var i: SizeInt; begin i := strLastIndexOf(s, sep); if i = 0 then result := '' else result := strcopyfrom(s, i + length(sep)); end; function striBetween(const s, from, till: string): string; var i, j: SizeInt; begin i := striIndexOf(s, from); if i = 0 then result := '' else begin i := i + length(from); j := striIndexOf(s, till, i); if j = 0 then result := '' else result := strslice(s, i, j - 1); end; end; function striBefore(const s, sep: string): string; var i: SizeInt; begin i := striIndexOf(s, sep); if i = 0 then result := '' else result := copy(s, 1, i-1); end; function striAfter(const s, sep: string): string; var i: SizeInt; begin i := striIndexOf(s, sep); if i = 0 then result := '' else result := strcopyfrom(s, i + length(sep)); end; function striBeforeLast(const s, sep: string): string; var i: SizeInt; begin i := striLastIndexOf(s, sep); if i = 0 then result := '' else result := copy(s, 1, i-1); end; function striAfterLast(const s, sep: string): string; var i: SizeInt; begin i := striLastIndexOf(s, sep); if i = 0 then result := '' else result := strcopyfrom(s, i + length(sep)); end; function intSqrt(const i: longint): longint; var e, eo: longint; begin if i = 0 then begin result := 0; exit; end; if i = 1 then begin result := 1; exit; end; if i < 0 then raise Exception.Create('Negative sqrt is not defined'); Result := i div 2; e := abs(i - Result*Result); eo := e + 1; while (e < eo) do begin eo := e; Result := (Result + i div Result) div 2; e := abs(i - Result*Result); ; end; while (Result * Result > i) do Result := Result - 1; //what's the point of this? end; function intSqrt(const i: int64): int64; var e, eo: int64; begin if i = 0 then begin result := 0; exit; end; if i = 1 then begin result := 1; exit; end; if i < 0 then raise Exception.Create('Negative sqrt is not defined'); Result := i div 2; e := abs(i - Result*Result); eo := e + 1; while (e < eo) do begin eo := e; Result := (Result + i div Result) div 2; e := abs(i - Result*Result); ; end; while (Result * Result > i) do Result := Result - 1; //what's the point of this? end; function modPow(i, e, m: longint): longint; var c,p: Int64; begin c := i; p := 1; result := 1; while p <= e do begin if (e and p) <> 0 then Result := (Result*c) mod m; p := 2*p; c := (c*c) mod m; end; end; function intBound(min, i, max: longint): longint; begin if i < min then result := min else if i > max then result := max else result := i; end; function modPow(i, e, m: int64): int64; var c,p: Int64; begin c := i; p := 1; result := 1; while p <= e do begin if (e and p) <> 0 then Result := (Result*c) mod m; p := 2*p; c := (c*c) mod m; end; end; function intBound(min, i, max: int64): int64; begin if i < min then result := min else if i > max then result := max else result := i; end; function TStringArrayCompare(searched: TObject; current: pointer): integer; type ptemp = ^string; begin result := CompareStr(ptemp(searched)^, ptemp(current)^); end; function arrayBinarySearch(a: TStringArray; const value: string; choosen: TBinarySearchChoosen = bsAny; condition: TBinarySearchAcceptedConditions = [bsEqual]): SizeInt; var element: Pointer; begin if length(a) = 0 then begin result := -1; exit; end; element := binarySearch(@a[0], @a[high(a)], sizeof(a[0]), @TStringArrayCompare, tobject(@value), choosen, condition); if element = nil then begin result := -1; exit; end; result := (PtrToUInt(element) - PtrToUInt(@a[0])) div sizeof(a[0]); end; function TLongintArrayCompare(searched: TObject; current: pointer): integer; type ptemp = ^longint; begin if ptemp(searched)^ < ptemp(current)^ then result := -1 else if ptemp(searched)^ > ptemp(current)^ then result := 1 else result := 0; end; function arrayBinarySearch(a: TLongintArray; const value: longint; choosen: TBinarySearchChoosen = bsAny; condition: TBinarySearchAcceptedConditions = [bsEqual]): SizeInt; var element: Pointer; begin if length(a) = 0 then begin result := -1; exit; end; element := binarySearch(@a[0], @a[high(a)], sizeof(a[0]), @TLongintArrayCompare, tobject(@value), choosen, condition); if element = nil then begin result := -1; exit; end; result := (PtrToUInt(element) - PtrToUInt(@a[0])) div sizeof(a[0]); end; function TLongwordArrayCompare(searched: TObject; current: pointer): integer; type ptemp = ^longword; begin if ptemp(searched)^ < ptemp(current)^ then result := -1 else if ptemp(searched)^ > ptemp(current)^ then result := 1 else result := 0; end; function arrayBinarySearch(a: TLongwordArray; const value: longword; choosen: TBinarySearchChoosen = bsAny; condition: TBinarySearchAcceptedConditions = [bsEqual]): SizeInt; var element: Pointer; begin if length(a) = 0 then begin result := -1; exit; end; element := binarySearch(@a[0], @a[high(a)], sizeof(a[0]), @TLongwordArrayCompare, tobject(@value), choosen, condition); if element = nil then begin result := -1; exit; end; result := (PtrToUInt(element) - PtrToUInt(@a[0])) div sizeof(a[0]); end; function TInt64ArrayCompare(searched: TObject; current: pointer): integer; type ptemp = ^int64; begin if ptemp(searched)^ < ptemp(current)^ then result := -1 else if ptemp(searched)^ > ptemp(current)^ then result := 1 else result := 0; end; function arrayBinarySearch(a: TInt64Array; const value: int64; choosen: TBinarySearchChoosen = bsAny; condition: TBinarySearchAcceptedConditions = [bsEqual]): SizeInt; var element: Pointer; begin if length(a) = 0 then begin result := -1; exit; end; element := binarySearch(@a[0], @a[high(a)], sizeof(a[0]), @TInt64ArrayCompare, tobject(@value), choosen, condition); if element = nil then begin result := -1; exit; end; result := (PtrToUInt(element) - PtrToUInt(@a[0])) div sizeof(a[0]); end; function TFloatArrayCompare(searched: TObject; current: pointer): integer; type ptemp = ^float; begin if ptemp(searched)^ < ptemp(current)^ then result := -1 else if ptemp(searched)^ > ptemp(current)^ then result := 1 else result := 0; end; function arrayBinarySearch(a: TFloatArray; const value: float; choosen: TBinarySearchChoosen = bsAny; condition: TBinarySearchAcceptedConditions = [bsEqual]): SizeInt; var element: Pointer; begin if length(a) = 0 then begin result := -1; exit; end; element := binarySearch(@a[0], @a[high(a)], sizeof(a[0]), @TFloatArrayCompare, tobject(@value), choosen, condition); if element = nil then begin result := -1; exit; end; result := (PtrToUInt(element) - PtrToUInt(@a[0])) div sizeof(a[0]); end; {$HINTS OFF} procedure ignore(const intentionallyUnusedParameter: string); overload; {$IFDEF HASINLINE} inline; {$ENDIF} begin end; procedure ignore(const intentionallyUnusedParameter: boolean); overload; {$IFDEF HASINLINE} inline; {$ENDIF} begin end; procedure ignore(const intentionallyUnusedParameter: integer); overload; {$IFDEF HASINLINE} inline; {$ENDIF} begin end; procedure ignore(const intentionallyUnusedParameter: Int64); overload; {$IFDEF HASINLINE} inline; {$ENDIF} begin end; procedure ignore(const intentionallyUnusedParameter: TObject); overload; {$IFDEF HASINLINE} inline; {$ENDIF} begin end; procedure ignore(const intentionallyUnusedParameter: pointer); overload; {$IFDEF HASINLINE} inline; {$ENDIF} begin end; {$HINTS ON}