Commit c14dbb54 authored by Bryce Hepner's avatar Bryce Hepner

that was scary

parent 3774fe5d
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 117, "execution_count": 2,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 118, "execution_count": 3,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
...@@ -142,12 +142,12 @@ ...@@ -142,12 +142,12 @@
" # calculate the error\n", " # calculate the error\n",
" error = np.ravel(image_array[1:-1,1:-1])-predict\n", " error = np.ravel(image_array[1:-1,1:-1])-predict\n",
" \n", " \n",
" return image_array, predict, diff, error, A" " return image_array, predict, diff, error"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 119, "execution_count": 4,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
...@@ -208,7 +208,7 @@ ...@@ -208,7 +208,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 129, "execution_count": 5,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
...@@ -238,7 +238,7 @@ ...@@ -238,7 +238,7 @@
" list_of_all_vals.append([])\n", " list_of_all_vals.append([])\n",
" for i, tiff_image_path in enumerate(tiff_image_path_list):\n", " for i, tiff_image_path in enumerate(tiff_image_path_list):\n",
" # get the image_array, etc\n", " # get the image_array, etc\n",
" image_array, predict, diff, error, A = predict_pix(tiff_image_path, difference)\n", " image_array, predict, diff, error= predict_pix(tiff_image_path, difference)\n",
" \n", " \n",
" # calculate the number of points that will go in each bin\n", " # calculate the number of points that will go in each bin\n",
" data_points_per_bin = diff.size // num_bins\n", " data_points_per_bin = diff.size // num_bins\n",
...@@ -309,7 +309,7 @@ ...@@ -309,7 +309,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 130, "execution_count": 6,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
...@@ -333,7 +333,7 @@ ...@@ -333,7 +333,7 @@
" A ndarray (3 X 3): system of equation\n", " A ndarray (3 X 3): system of equation\n",
" \"\"\"\n", " \"\"\"\n",
" # get the image_array, etc\n", " # get the image_array, etc\n",
" image_array, predict, diff, error, A = predict_pix(tiff_image_path, difference)\n", " image_array, predict, diff, error= predict_pix(tiff_image_path, difference)\n",
" \n", " \n",
" # calculate the number of points that will go in each bin\n", " # calculate the number of points that will go in each bin\n",
" data_points_per_bin = diff.size // num_bins\n", " data_points_per_bin = diff.size // num_bins\n",
...@@ -411,13 +411,13 @@ ...@@ -411,13 +411,13 @@
" diff = np.reshape(diff,(510,638))\n", " diff = np.reshape(diff,(510,638))\n",
" # return the huffman dictionary\n", " # return the huffman dictionary\n",
"\n", "\n",
" return huffman_encoding_list, image_array, new_error, diff, boundary, predict, bins, A\n", " return huffman_encoding_list, image_array, new_error, diff, boundary, predict, bins\n",
" \n" " \n"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 131, "execution_count": 7,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
...@@ -456,29 +456,37 @@ ...@@ -456,29 +456,37 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 132, "execution_count": 15,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"def bitstring_to_bytes(s):\n", "# def bitstring_to_bytes(s):\n",
" v = int(s, 2)\n", "# v = int(s, 2)\n",
" b = bytearray()\n", "# b = bytearray()\n",
" while v:\n", "# while v:\n",
" b.append(v & 0xff)\n", "# b.append(v & 0xff)\n",
" v >>= 8\n", "# v >>= 8\n",
" return bytes(b[::-1])\n", "# return bytes(b[::-1])\n",
"def bytes_to_bitstring(s):\n", "def bitstring_to_bytes(input_string):\n",
" \n", " int_array = []\n",
" " " length_of_string = len(input_string)\n",
" while length_of_string >= 8:\n",
" int_array.append(int(input_string[:8],2))\n",
" input_string = input_string[8:]\n",
" length_of_string = len(input_string)\n",
" if length_of_string > 0:\n",
" int_array.append(int(input_string,2))\n",
" print(int_array[-12:])\n",
" return bytes(int_array)\n"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 133, "execution_count": 16,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"def decoder(A, encoded_string, list_dic, bins, use_diff):\n", "def decoder(encoded_string, list_dic, bins, use_diff):\n",
" \"\"\"\n", " \"\"\"\n",
" This function decodes the encoded_matrix.\n", " This function decodes the encoded_matrix.\n",
" Input:\n", " Input:\n",
...@@ -490,6 +498,7 @@ ...@@ -490,6 +498,7 @@
" Return:\n", " Return:\n",
" decode_matrix (512, 640): decoded matrix\n", " decode_matrix (512, 640): decoded matrix\n",
" \"\"\"\n", " \"\"\"\n",
" A = np.array([[3,0,-1],[0,3,3],[1,-3,-4]]) # the matrix for system of equation\n",
" # change the dictionary back to list\n", " # change the dictionary back to list\n",
" # !!!!!WARNING!!!! has to change this part, everytime you change the number of bins\n", " # !!!!!WARNING!!!! has to change this part, everytime you change the number of bins\n",
" the_keys0 = list(list_dic[0].keys())\n", " the_keys0 = list(list_dic[0].keys())\n",
...@@ -563,55 +572,68 @@ ...@@ -563,55 +572,68 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 158, "execution_count": 17,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"def read_from_file(filename):\n", "def read_from_file(filename):\n",
" with open(filename, 'r', encoding=\"ISO-8859-1\") as file:\n", " with open(filename, 'rb') as file:\n",
" return file.read()" " return file.read()"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 147, "execution_count": 20,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2080559\n",
"[189, 237, 174, 241, 149, 209, 142, 187, 71, 107, 178, 113]\n"
]
}
],
"source": [ "source": [
"scenes = file_extractor()\n", "scenes = file_extractor()\n",
"images = image_extractor(scenes)\n", "images = image_extractor(scenes)\n",
"oglist_dic, ogbins = make_dictionary(images[:10], 4, False)\n", "oglist_dic, ogbins = make_dictionary(images[:1], 4, False)\n",
"file_size_ratios = []\n", "file_size_ratios = []\n",
"np.save(\"first_dic.npy\", oglist_dic)\n", "np.save(\"first_dic.npy\", oglist_dic)\n",
"for i in range(10):\n", "for i in range(1):\n",
" list_dic, image, new_error, diff, bound, predict, bins, A = huffman(images[i], 4, False)\n", " list_dic, image, new_error, diff, bound, predict, bins = huffman(images[i], 4, False)\n",
" encoded_string = encoder(new_error, oglist_dic, diff, bound, ogbins)\n", " encoded_string1 = encoder(new_error, oglist_dic, diff, bound, ogbins)\n",
" # reconstruct_image = decoder(A, encoded_string, list_dic, bins, False)\n", " # reconstruct_image = decoder(A, encoded_string, list_dic, bins, False)\n",
" # print(np.allclose(image, reconstruct_image))\n", " # print(np.allclose(image, reconstruct_image))\n",
" inletters = bitstring_to_bytes(encoded_string)\n", " print(len(encoded_string1))\n",
" inletters = bitstring_to_bytes(encoded_string1)\n",
"\n", "\n",
" reconstruct_image = decoder(A, encoded_string, oglist_dic, ogbins, False)\n", " # reconstruct_image = decoder(encoded_string, oglist_dic, ogbins, False)\n",
" print(np.allclose(image, reconstruct_image))\n", " # print(np.allclose(image, reconstruct_image))\n",
" # print(len(list_dic))\n", " # print(len(list_dic))\n",
" if images[0][:-5] == \".tiff\":\n", " if images[0][:-5] == \".tiff\":\n",
" newname = images[0][:-5]\n", " newname = images[0][:-5]\n",
" else:\n", " else:\n",
" newname = images[0][:-4]\n", " newname = images[0][:-4]\n",
" with open(newname + \"_Compressed.txt\", 'w') as f:\n", "\n",
" f.write(inletters.decode(\"ISO-8859-1\"))\n", " # with open(newname + \"_Compressed.txt\", 'wb') as f:\n",
" with open(\"MatrixNowString.txt\", 'wb') as f:\n",
" \n",
" f.write(inletters)\n",
" file_size_ratios.append((os.path.getsize('MatrixNowString.txt'))/os.path.getsize('images/1626032610_393963/1626032610_393963_0.tiff'))" " file_size_ratios.append((os.path.getsize('MatrixNowString.txt'))/os.path.getsize('images/1626032610_393963/1626032610_393963_0.tiff'))"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 112, "execution_count": 12,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"0.603203605615972\n" "0.39572609126335023\n"
] ]
} }
], ],
...@@ -621,9 +643,20 @@ ...@@ -621,9 +643,20 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": 91,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [
{
"data": {
"text/plain": [
"0.6058229115470704"
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [ "source": [
"0.6058229115470704" "0.6058229115470704"
] ]
...@@ -647,64 +680,55 @@ ...@@ -647,64 +680,55 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 16, "execution_count": 46,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"[[ 37 216 73 ... 42 88 53]\n", "4\n",
" [ 16 140 368 ... 112 54 468]\n", "0b100\n"
" [ 0 42 20 ... 28 13 13]\n",
" ...\n",
" [ 37 6 32 ... 6 13 192]\n",
" [ 32 2 130 ... 88 150 23]\n",
" [ 48 6 20 ... 20 73 322]]\n"
] ]
} }
], ],
"source": [ "source": [
"print(diff)" "print(int(\"100\",2))\n",
"print(bin(4))"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 159, "execution_count": 24,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"M\n" "b'\\xe4\\x05%4E\\x1a\\xd3 h\\xb1\\xb5\\x982\\xc9\\x0e\\xbc\\x83\\x90\\x101\\xd23\\xd9\\x16>'\n",
] "1850876\n"
},
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m/home/bryce/git/master/SameTableEncoder.ipynb Cell 4'\u001b[0m in \u001b[0;36mdecode_string\u001b[0;34m(huffman_string, the_keys, the_values)\u001b[0m\n\u001b[1;32m <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000003?line=49'>50</a>\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000003?line=50'>51</a>\u001b[0m \u001b[39mreturn\u001b[39;00m (\u001b[39mint\u001b[39m(the_keys[the_values\u001b[39m.\u001b[39;49mindex(huffman_string[:i\u001b[39m+\u001b[39;49m\u001b[39m1\u001b[39;49m])]),huffman_string[i\u001b[39m+\u001b[39m\u001b[39m1\u001b[39m:])\n\u001b[1;32m <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000003?line=51'>52</a>\u001b[0m \u001b[39mexcept\u001b[39;00m:\n",
"\u001b[0;31mValueError\u001b[0m: 'MM\\x00*\\x00\\x00\\x00\\x08\\x00\\x13\\x00þ\\x00\\x04\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x04\\x00\\x00\\x00\\x01\\x00\\x00\\x02\\x80\\x01\\x01\\x00\\x04\\x00\\x00\\x00\\x01\\x00\\x00\\x02\\x01\\x01\\x02\\x00\\x03\\x00\\x00\\x00\\x01\\x00\\x10\\x00\\x00\\x01\\x06\\x00\\x03\\x00\\x00\\x00\\x01\\x00\\x01\\x00\\x00\\x01\\x0e\\x00\\x02\\x00\\x00\\x00A\\x00\\x00\\x01(\\x01\\x0f\\x00\\x02\\x00\\x00\\x00\\x07\\x00\\x00\\x01i\\x01\\x10\\x00\\x02\\x00\\x00\\x00\\x0c\\x00\\x00\\x01p\\x01\\x11\\x00\\x04\\x00\\x00\\x00\\x01\\x00\\x00\\x02-\\x01\\x12\\x00\\x03\\x00\\x00\\x00\\x01\\x00\\x01\\x00\\x00\\x01\\x15\\x00\\x03\\x00\\x00\\x00\\x01\\x00\\x01\\x00\\x00\\x01\\x16\\x00\\x03\\x00\\x00\\x00\\x01\\x02\\x01\\x00\\x00\\x01\\x17\\x00\\x04\\x00\\x00\\x00\\x01\\x00\\n\\x05\\x00\\x01)\\x00\\x03\\x00\\x00\\x00\\x02\\x00\\x03\\x00\\x04\\x011\\x00\\x02\\x00\\x00\\x00(\\x00\\x00\\x01|\\x012\\x00\\x02\\x00\\x00\\x00\\x14\\x00\\x00\\x01¤\\x87i\\x00\\x04\\x00\\x00\\x00\\x01\\x00\\x00\\x00ò\\x92\\x11\\x00\\x04\\x00\\x00\\x00\\x01\\x00\\x02\\x10¢Æ/\\x00\\x02\\x00\\x00\\x00\\x12\\x00\\x00\\x01¸\\x00\\x00\\x00\\x00\\x00\\x04\\x82\\x9a\\x00\\x05\\x00\\x00\\x00\\x01\\x00\\x00\\x01Ê\\x90\\x03\\x00\\x02\\x00\\x00\\x00\\x14\\x00\\x00\\x01Ò\\x92|\\x00\\x04\\x00\\x00\\x00\\x10\\x00\\x00\\x01æ\\x92\\x91\\x00\\x02\\x00\\x00\\x00\\x07\\x00\\x00\\x02&\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00Elphel\\x00BOSON640_15\\x00https://git.elphel.com/Elphel/elphel393\\x002021:07:11 13:58:16\\x0000:0E:64:10:D5:B7\\x00\\x00\\x00\\'\\x10\\x00\\x0fB@2021:07:11 13:58:16\\x00\\x00\\x02\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x02\\x00\\x00\\n9\\x04\\x00\\n9\\x04\\x00\\n9\\x04\\x00\\n9\\x04\\x00\\x02\\x80\\x00\\x00\\x02\\x01\\x00\\x00\\x00\\x11\\x11ü\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x05\\x00P\\x00\\x00\\x00\\xa0\\x00\\x00\\x01@437803\\x00\\x00\\x02\\x00\\x01Õ\\x8c\\x001lô20640A032-6PAAX\\x00\\x00\\x00\\x00\\x00500-0773\\x00\\x00\\x00\\x00\\x05\\x7f\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x00\\x00;w\\x00<\\x00\\x00\\x01ÿ\\x00\\x00\\x02\\x7fV\\x9eTÀX@\\x00\\x00\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02;\\x98\\x00\\x029\\xaddD\\x0c\\x1c\\x0c\\x1c\\x87U\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\"÷\\x00\\x00\\x00\\x08\\x07\\x00\\x00[\\x00V\\x00\\x05\\x011\\x01M\\x01_\\x00\\x00C\\x1d\\x00\\x00\\x01{\\x00\\x00\\x01i\\toep\\x00\\x00\\x05¦\\x00O\\x0f\\x0e\\x00\\x00\\x12¢\\x00\\x02\\x00\\x02\\x00\\x00°\\x1f\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00ZZ¥Z¥¥\\x00\\x00\\x00\\x00\\x00\\x00\\x01@\\x00\\x00\\x01\\x00\\x00\\x00\\x04+\\x00\\x00\\x00\\x00\\x00\\x00&_\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x08À\\x00·\\x00zÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿW\\x03W\\x14W\\x14W\\x19W)W*W\\x1cW\\x1aW\\x19W$W\\x10W\\tVóVçVðVÞVÜVÖVØVËVàVõVÛVâVúVôW\\x00VÔVøW\\x02W\\x01VîVêV÷VòVúW\\x0cVïW\\x1aW8W\\x17W7W\"W\\x0cW$W\\x16W\\x0cW\\x0eVöW\\x07W)W\\x10W;W\\x0fW%W\"W4WJW=WPW_WaWGWVWBWMWDWUWgWLWKWSWRWLWgWEW;WJW1W=WlWPWLWIWUWJWAWNWUWWWZWWW[WeWHWXWWWVWWWFWbW`WUW_W[WXWjWkW[WVWNWGWCW1W4W\"WDW.WQWXWQWRWJWFWDWXWQWHW:W9WBWBWHW_WEWKWJWPW`WfWZWJWXW\\\\W]W]WfWdWnWfWpWVW^WeW]WpW_W_WgWwWvWSW]W]WqWtWxWyW\\x7fWwWHWpWTWcWgWfW^WSWKWGW9W\\x1dW\\x1dW+W,W\\'W7W[WeWLWUW]W?WdW?WOWMWHWHWEWMWdW\\\\W`WXWbWCW]WSWGWGW9W.W?WWW_WIWYW]WBWUWIWfWGWFWOWMW=W WIWVWVWWWWW@WYW>W?WBW9WOWAW7W=W?WSW9W@WHW8WSWHWBW_WUWJW@WNWbWDWVWZWLWHWJW6WEWJW@WPWMWQWRWGWKWMWTW\\\\W\\\\W[WDW^WdWaW]WRW;WAWXWWWRWNWMWZWVWXW[WPWUWUWZWEWNWUWRWGWeW]W[WVW[WQW@WNW7W\"W:WJW?W8WUWVWIWDWeWSW\\x87WiWWWDWAWTW@WdWUWKWPW\\x1fW8WHWbWKW=WLWAW=VþW\\x0bW\\x04W!W7W\\x17W\\x0cW%W*WJWDW8W\\x1cW.WQWKWeWWW5W\\x1bW$W/W4W\"W=W0WBWPW%WDW6W+W1W<W#WLW/W9W<WDWBW/W:W:W?W<W5W)W\\x0eW#W\\x10VÿVÚV¹VãW\\x11W$W\\x1aW\\'W.W\\x1dW\\x0bVúVìVïV÷W\\x1fW\\x13VóVùW\\x04W\\x13W*W/W;W1W9WFWLW9W=W.W?W5W?W.WEW\\x12W\\x1cW\\x13VÓV÷W\\x18W?W\\x19W&W$W-W\\x1cW\\x17W\\x0bW\\x1cW\\nWAW,W=W-W*W5WEW5W5W9W)W\\x17W!VûW\\x05W\\x01VéW\\x08W&W W\\x03W\\x1fW\\x0cW\\x0eW\\x05W\\x13W\\x14W<W\\x17W.W\\x15W\\x1eW W/W\\x1fVòVÏVÑVðVñW(W\"W\\x1aW\\x1dW\\x04VìW\\x13VúVøVîW\\x0eW\\x12W\\x03W\\x01W\\x0fW#W3W\\x0fW W\\x0cW\\'W VýW\\x06W\\x07W\\x1cW!W,W\\x15W(WCW8W\\'W\\x1eW,W+W>W9W4W/W,W$W8W\"W\\x1aW\\x1bW)W6W#W\\x1fW\\x1eW\\x11W1W\\x1fW W9W1W6W0W\\'W-W;WIWAWEW;W0WNW@W/W5WKWBW3W\\x1cW\\x1cW\\x17W\\x0fW\\x1fW\\x1cW\\x1cW2W\\x18W!VÿW!W\\x05W\\x1eVòVõVøVßVþW\\x02W\\x01VÿVÙVþVÌV\\x9aV\\xadVßVÐVÔVÔVÖVåVÒVïVñVçVæVÛV½VØVÇV´VÄV¿VºV¬V¥VÏV¾VÆV¿VÏVÈV\\x9dV\\x83VLVHV\\x7fV\\x95VÊV½VæVÕVÀVÄVàVÏVÎV¾VÌVâVüVâW\\x08VÄVþW\\x1fW\\x1dW\\x1aW#W0W$W\\x1aW\\x18W\\x18W*W\\x1eW\\x1bW\\x01VùVÛVìVäVÙVÉVÎVàVßVØVÛVÖVóVëW\\x00W\\tVúW\\x12W\\x04VôVüW\\x01VûW\\x08VùW\\x15W)W8W*W\\x1fVýW\\nW\\x18VñW\\x0cVûW\\x12W\\x0cW\\x15W4W7W:W>WAW?WXW^WUWHWYWIWRWCW7WUWOWNWPWLWKWYWKWRWSWOWOWEWCWFWJWYWQWMW\\\\WnWjW[WeWNWfWXWYW`W`WYWkWIWNWQWMW_W_WVW[WpWaWTWKWLW<W#W7W7W.W1WLWPWCW^WMW\\\\WDWCW=WAW6W8WEWCW>W9WKWQWLWXWlWYWUWPWRWYW^WYW_WfWcWiWYW\\\\WSWPW`W_W_WkWgW\\\\WqWnWfWMW[WnWjWmWvW`WhW_WXWRW[WVWXW>W<W8W6W\\x05W#W2W0W&WIWVWYWpWiWKWXWRWMWJWNW>W[WHWZWOWNWVWXWCW@W?WNWOWIWPWEWNWUWWW-WZWbWJWUWXWSWJWDWMWOWMWIWTWVW_WJWQWOWSW@W;WCW9WBWCWLWMWOWIW<WEWNWBWTW@WKW^WEWPWLW_WRWTWOW^WPW;W?W@WCWYWGWJW`WaWJWWWLWRWYWQWJWUW]WjW_W\\\\WJWOW]WJWcW\\\\WXWUWLWLWdWjWJWXWKWWWSWQWCWCWLWEWbWRW_WUWUWNW@WOWGWMW>W?W7W=WLWIWJWAWWWrW|WtWgWQWPW0WNWSWbWHWBW%W6WKWOW_WWWHWSW5W\\x15VþW\\x06W+W&W\\x1fW\"W\\x1fW@WGW*W4W4WBWVWHWXW;W8W\"W(W&W7W\\x1eW<WFW;WUW#W2W1W(W:W2W8WOW9W0W8WDW1W=W&W6W:W?W3W5W$W\\x1dW\\x1aW\"W W\\x11W,W\\x17W0W$W\\x1bW8W\\x1aW\\x10VýVòW\\x1eW\\nVøVùVíW\\nVêW\\x11W\\x1eW<W:W;W:WJWHW=W:W!W1W#W4W8W9W\\x1eW@W.W\\x19W\\x14W\\x1aW\\'W\\x1eW/W4W-W!W%W\\x1cW\\x1eW W\\x1bW#W.W7W5W)W$W;W\\x1bW\\x1eW4W+W\\x17W\\x08VùVþVøW\\x1cW\\nW\\x17W\\x17W\\x06W1W\\x19W\\x16W&W\\x11W\\x17W\\x13W#W*W&W\\x1aW#W\\x18W\\x05VçV¾VúW\\x00W,W\\x1aW\\x1cW\\x15W VâVÚVÜVóVóW\\nW\\x1fW,W\\x12W\\x18W!W;W\\x16W\\x1eW\\x0cW\\x17W\\x1cW\\x15W\\x04W\\x18W\\x1cW!W(W\\x16W\\x13W,W0W\\x1cW2W*W#W9W1W<W*W\"W\\x1dW=W/W\\x0eW\\x16W*W,W!W3W$W W\\'W&W8W/W3W9W8WEW6W#W6W=WLW7W9W;W?W7W1W#W\\x1bW$W&W\\x12W\\nW&W\\x13W,WBW@W!VôW\\x15W\\x14W\\x10VåVØVìW\\x04VÿVøVÿV÷VøVÜW\\x02VóVàVáVÙVÔVÝVÝVÜVÝVËVÊVÍVïVêVØVÄVºV©V°VÆVÑV±V¸VÄV¶V¯VªV\\x99V®V¤V\\x96V\\x92V®VgV®V¢VÛVÌVÖVÂVºV¼V¥V¾VºVÕVãVñVîVÞVîVèVöW%W(W\\x1dW\\x12W\\tW\\x0bW\\x1fW\\x10W\\x1dW\\x1bW\\x17W\\x10W\\x03VáVÜVÍVÓVÌVºVÆVÝVòVìV·VòW\\tW\\x00W\\x04VÿVøVçVæVóVïW\\x06W\\x03VüW\\x03W\\x12W-W\\x1eW\"V÷VëVîVõW\\x1dW4W\\x05W\\x1cW1W3W;WBWWWeW?WOWUWaW]WPW]WPWOWRWNWGWJWLWHWWWkW:WHWNWRWFW?WUWcWZWdWaWaWOWmWbW\\\\WVW]WcWiWiW`W`WiWmWQWIWdWKWXWbWQWDWYWNW<WcW=WIW?W\"W8WBWHW>WIWPW;WIW@W?WGW8WHWBWUWBWLWBWMW1W@W:W[W_WKW\\\\WVWcWeWXW[WQW^W]WlW_W]WaW`WZWbW]WeWcWZWiWrWfWdWdW`WfWYWwW{WoWWWMWRWGW?WJWNW-W:W6W\\x1eW W4W6W0W/W-WFWNW[WeW=WDW[WVWOWNW)W[WKWOWVWEWLW=W>W=WJWEWAWNWCW8W@W>WBW?W?WKWGWFWZWcWXWMWTWIWHW[WDWEWOW<WFWAWMWIW?WGW<WZW[WHW?W@WFWIWHWOWEWVWJWSWVWPWWWHWEW<WAWAWJWNWJWGWKWDWOWNWZWUWYWFWBWGWWWYWZW_WpWiW^WZWLWFWXWTWXWdWRWDWBWIWSWYWJWRWIWQWHWRWQW`WPWjWcWaWqWaWQW}WTWEWWWAWSWDWLWTWVW?WKWGW@WZWqWiW\\x84WnWWW9W6W0WBWLW;W%W2W<WOW<WHWDWJWRW4W\\x12W\\x07W\\x00W\\x10W;W\\x18W\\x10W$W5WIW1W9W2W;WMWWWHW6W0W\\x19W(W\\'W?W2W2W>W7W:W2W.W)W+W4W%W-W,W2W9W+W;WAW>W>WIWLW?W=WNW\\x11W\\x12W+W!W!W\\x10W3W\\x1dW<W0W\\x1fW1W$W\\x0bW\\x06W\\x1cVñVÆVÑVÁVÍVÒVòW\\nW#W+W%W4WHWGW:WAW4W3W/W6W0W+W+W3W+W\\'W\\x15W\"W\\x0fW+W\\x1bW#W W2W0W;W\\x1cW!W1W.W(W4W+W\"W-W0W/W-W\\x15WAW:W3W\\x1fW\\nW\\x01W W*W5W)W\\x1fW\\x0fW#W\\x10W\\x12W\"W\\x19W\\x1fW\\x13W\\x1eW+W\\'W-W8W W\\x17W\\x1bW$W\\tW\\'W-W\\x1eW%W,W\\x12VùVòVìVýW\\x05W\\x1aW\\x13W\\x18W\\x1dW\\x07W W#W\\x1eW\\x1aW\\x1eW$W(W\\x11W\\x1aW\\x18W(W(W3W\\x18W W.W-W+W/W3W,W2W)W\\x1eW\\x13W0W(W*W\\x0eW\\x03W\\x1bW&W\\'W6W3W.W-W,W,W2W$W\\'W/W.W9W;W6W0W/W>WCW7W9W>W\\x1cW2WAW\\x18W\\x12W\\x19VúW\\x14W&W!W)W\\x1fW,W\\x1fW%W\\tW\\x11VåVåVéVóW\\nVôW\\x01W\\x08W\\x18VÊVóW\\x0fW\\x08VòVáVÓVüV×VÐVÜVÁVÊVÑVÈVèVÖVÐV¦V±V\\x92VºVÄVÄV\\x83VdVbV_V~V¸V\\x98V±V¨V\\x9aV£V\\x9eV±V±V£VªVæVÄV¨V\\x9bV\\x8cV¬VÕVÊVÕV\\x9cVÊVÀVÛVÈVÓVÚW#W W$W\\x14W\\x1eW\\x17W\\x16W\\x0cW\\x14W\\x1aW\\x1fW\\x0fW\\nVëVòVßVáVÇVÇV¶VÐVëVÒVÑVíVýW\\x13W\\x05W\\x10VúVúW\\x01W\\x08VýVýV÷W\\x01W\\x04W\\x08W\\x19W2W\\x17VøVÿVéW\\x18W\\'W.W)WIWCWHWGWYWKWPW=WPWKWVWJWdWBWEW:WHWYW\\\\W]WLWGWNW^WGWPWYW=WPWCW^W^WRWGWiWaWzW\\x80W\\x85WVWgWIWpW]WgWYWdWQW[WjW@WbWMWPW\\\\WRWEWEWYW[W^W5W,W@W8WBWSWRWTWQW?W1W/W3W/WFWNWHWEWOW>WAW:WJWMWYWUW[WdWZWUWdWeW[WbW_W_WQWMWOWgWiW]W[WBWQWKW_WVWbWdWnWcWqWeW\\\\WWWRWuW\\x7fWhWPWQWSWHW=W8W\\x19W/W.W1W0W\"W9W5W&W5W>W<WIW]WLWGW?WSW=WGWTW@WUWEWOW`WFWEWGW=W;W?WCWWW@WCW6WBW4WJWLWIWQW^WJWVWaWkWMWOWOWLWBW?WHWTWIW@WQWSWAWKW?WEWJWWWQW?WAW>WEW6WGW4WDWKWQWTWJWMWHWNWZWSWJWPWdWYWJW:WTWKWRWMWCWSWQWDWOWNWWWXWnW^WVWKWVWOWMWOWSWPWNWRWNWPWLWKWaWSWOW?WHWQWTWOWbW^WNW9W^WTWkWfWaWGW7WNW<WEW?WUWKWBWSWIWHW?W\\x84W{W\\x7fWpWmWcW\\\\W;WEW9W.W.W<W.W*W#WFW]WNWUWNW\\x12W\\x07W\\x16W!W5WEW#W\\x1dW)W@WSWYWQWRWHW?WWWDW\\x19W&W\\x18W6W2W2W9W6W7WFW(W5W-W4W;W8W$W\\x19W7W-W\\'W5W7WCWBWJW5WLWRWHWLW\\x1aW\\x16W\\x19W+W\\x1dW$W\\x1eW#W W)W3W&W-W!V÷W\\tVÛV\\x8aV¦V¡V¨VµVäW\\x1bW\"W+W?WEWHW6W3W6WFW8W=W4W?W(W*W@W&W1W4W5W\\x16W\\x15W\\'W W8WFW@W0W$W0W9W0W+W)W3W<W@W/W:W3W(W&W4W\\x18W\\x10W$W(W-W#W&W-W\\x1eW\\x12W!W0W\\x1cW%W(W\\x03W\\x0fW\\x1bW)W0W,W\\x16W\\nW4W\\x1dW\\x18W!W$W/W!W\\x1bW0W\\x1eW\\x14W$W\\x0eW\"W\\x19W\\x18VÿW\\x16W\\x1bW\\x1bW\\x1cW&W W\\x1eW W$W\"W\\x1dW!W+W9W<W3W.W\\x13W\\x11W%W\\x15W(W\\x1bW\\x1eW\\x1fW\\'W\\x1fW\\x10W/W.W/W W\\x17W+W(W8W0W3W+W.W)W\\x1cW/W6W*W3W=WFWAW5W&W+W#W.W6WGW3W7W8W\\x0bW\"W-W/W)W\\x1eW\\nVéVüVùW\\x0cVÿVïVáVúVáVçVóVÿVõW\\x02V÷VøVùVåVúVþVçVßVÓVÂVÌV´VºVÂV¼VºV©V£VËVÏVËV¿VÜV§VÈV¸VÍV\\x94VAV3V\\x7fV\\x9aV\\x9dV\\xa0V²V\\x92V\\x94V\\x9bV¡V¡V¯V£V¸V\\xa0V´V¢VsV\\xa0V«VªV\\x91V¡V\\x94V\\x91VyV\\x90V®V¢V²W\\x1aW(W\\x16W\\x16W&W\\x17W&W\\x0cW\\x18W#W\\x14W\\x10W\\x0cW\\x02VæVÒV£VÙVãVÊVÎVÆVÔVëW\\x00V÷W\\x14W\\x08W\\x0fVâVõVôVòW\\x01VúVùVþVýW\\x0bW\"W\\x0eW\\nW\"W\\x0fW\\x0bW\\x15W\\x16W8WOWAWQW:W`WPWPWVWTWbWPW\\\\WJW`W\\\\W[WMWRW`WVW`W9WVW[WSW^WIW_WUWtW^WeWoWhW`WhW_WmW\\x82WyWfWhW`W`WcWWWPWYWZWJWMW[W]WdWeWfWIWOW7W2W\\x1fW)W-W/WOWQWPWMWJWEW2W9W2W)W*W/W5WBWFW>WDW8W<WCWQW<WGWOW[WUWXW_WeW[WgW`WdWXWXWaW]WaWjWPW\\\\WQWAW\\\\WRWXWWWVWlWgWbW[WZWaW[WkWiWeW_WNWIW9W W#W-W\\x1eW)W2W,W(W\\x1cW/W(W9W)W=WRWMW:WMW+W;W3W9W<W1WEWVWHWQWNW<W9W=W=W6WEW>WDWFW<WNWVWUWUW[W[W^WWWXW\\\\WfWYWUWHWMWPWAWLWNWBWFWKWRWGWLW@WUWVWRWPWDWQWGWAWOWJWBWRWTWUW`WeWRWPWSWWWRWPWUWJWMWSW]W[WZW[WSWdWhWPWTWMWYWRWWWbW`WcWZWbWWW]WSW]WWWMWRWOWPW@WIW[WJWSW<WOWaWFWQWhWQWVW`WRWRW`WTWSWXW=WTWHWOWIWMWNWIWFW@W;WLWnW\\x83WyW[WpWlWVW)W3W*W@W-W\\x1cW3W?W5WQW_WJWUW@W\\x17VõW\\x02W\\x1bW7WFW2W/W?W5W\\\\WgWUWWWOWHWPWPW)W\\x17W\\x10W1W2W8W5W-WKW.WIW5WIW;WSW=W+W9W<WBW9W@WAW9W5W9W1W@W5W3W8W9W&W,W\\'W\\x0fW\\x18W/W\\x1eW4W0W-W$W\"W\\x1fW\\x0bW\\x18W\\x00VÛVÆVÂVÍVùV×W\\x02W\\x1fW,W=W:W;W5W5W3W(W,W+W0W;W=W.W\"W+W>W0W@W&W/W$W\\'W)WCW\\x1eW1W/W,W*W.W4W0W/W@W@W8WSWDWAW%W-W0W\\x1eW4W4W%W*W&W)W,W\\x1cW)W0W\\'W/W&W,W)W\\x1aW,W\\'W+W0W3W W\\x0eW\\x15W?W%W.W)W%W\\x1cW$W$W>W\\x1bW#W+W4W\\x04W\\x11W\\x19W\\'W\\x1cW(W\"W<W W@W8W*W6W0W\\'W@W&W7W\\x1cW,W\\'W\"W\\x0eW&W,W\\x1dW W W\\x1dW#W\\x19W,W!W\\x0bW\"W&W4W7W7W8W*W)W*W4W*W9W$W(W+W W3W#W\\x14W W\\nW\\x13W#W\\x1eW\\x1dW\\x0fW\\nW)W\\'W\\'W(W\\x1fVáVßW\\x1bW\\nVúV×VÃVÝVéVóVÎVÞVôVìVýVðVåVòVçV×VøVòVÝVÝVÃVÀV°V\\x9eV¯VÓV¤V\\x9dV\\x94V¶VÌV×VºV½VÑVÚVÆVÄV\\x96V\\x95V{V\\x8cV\\x85V¢V\\x9aV¡V\\x9fV\\x9aV¹V¯VpVjV\\x81V¹VáVÂV¨V«VcVrVkVpViV\\x1cV\\x1cV,VZV\\\\V\\x98V\\x90W\\x1aW\\x16W\\x12W\\x16W,W#W\\x1aVþW\\x1fW\\x16W W\\x15W$W\\x17VøVðVØVÑVÌVÙVÜVãVìVòVýW\\x0bVüW\\x06VùVÿW\\x05VþW\\x03W\\x0eVïW\\x01W\\x05W\\nW(W%W,W4W%W$W\\x18W W<WRWOW\\\\WjW@W]WSW_WpWWWKWTWVWOWNW_WOWBW>W^W\\\\WdWYWUWTW_WUWRWdWMWWWZWPW_W_WhWeWgWeWtWmWlWkWWW[WlWqWWW`WVW[W[WPWZWaWQWbWLW?W\\x19WDW\\x19W2WcWLWFWDWZW^W`WOWGWBW>WDWFWFW<WBWAWGWEWCWDWBW@WNWYWFW_WmWXWlWcWjW_WWWiWnWbWfW]WVWhWVW[WXWUWYWRW_W\\\\WlWmWgWqW_WnWqWcWtWYWhWkWkW=WMW?W1W=W W7W8W)W/W=W6W.W-W\"W0W:W?WIWQW8WLW@W8WDWGW=WLWpWGWQW[W3WIWJW6W2W8WJW?WLWZWGWsWlWzWZWWWXWYWNWTWFWWWWWEWOWQW`WYW3WVWWWPWNWDWBWHWXW]WZW@WPWQWKWHW^WXW[WMWVW_W\\\\WHWMWSWZWSWVWWWFWTW`W]W`WdWJWXW]WhWYWSWjWfW_WiWZWdWeWcWYWQWYWeWNWPWSW\\\\WSWSWCWNWkW^WNWRW_WcWXWfWgW^WOWKWFWXWyWdWhWdW:WTWaWWWPWOWFWEWTWXWRWEWrW~WfWwWjWiWSWLW\\x1fW?W\\'W/W5WTWNWdWgWdWUWZWEW\\x19W\\x17W#W<WNWCWBWTWZW@WIWfWdWHWPWIWPWOW@W*W2WOW7W?W,W.W;W\\x1bW\\'WDWAW>W;W;WPWHWHWKWEWFW>WAW@WFW5W;WBW7W?W8W4W>W7W(W1W2W!W4W*W\\x11W&W#W,W\\x1dW\"W#VúVíVýW\\x1eW\\x1dW#W&W3W1W<W/W%W\\x10W8W6W;W4W6W9W1W@W0W2W1WJWDWJWLWUW*W)WJWEW)W>W:W>W?W,W4W;WCW<W$W?W=W>WEW2W7W;W:W8WCW@W1W\\x11W\\x18VÿW\\x1cW5W,W8W;W\\x1fW\\x1fW*W\\x19W#W;WMWQW7W\\'W)W1W\\x1fW(W\\'W9W=W\\'W&W3WAW.W\\x18W\\'W0W\\x1aW%W\\'W0W W0W\\x19W9W-W5W5W/W1W)W2W(W\\x19W+W.W$W+W$W\"W!W\"W%W&W3W\\x14W\\x08W\\x18W(W W0W#W#W\\x17W=W&W\\'W0W<W>W6W>W>WGW;W/W\\x16VúVíVïVëVøW\\x06W\\x18W(W\\'W\\x11W\\x13VÎVöW\\x07W*W)W4W+W\\x19VùVÿVßVëVëVÿVüVâVøVíW\\x02W\\x19VîW\\x03VëV×VÅVÕVÒVÕVéVÔVÅV\\x97V\\x9bVÀV´VÃV\\xadV·VÆVæVÊV²V\\xa0V·V\\xadV¯V¤V\\x9eV\\x9dV\\x84V\\x90V¢V\\x92V¢V²V¾V±V¤VµV\\xa0VbV{VÒVÊVÔVÔV©V\\x84VdVQV\\x14U×UÐUöV VAV\\x86V\\x88VÉW\\nW\\x1cW&W\\x1dW!W.W\\x16W\\x04W\\x0fW\\x1aW\\x18W\\x1aW\\x07W\\x0bVùVíVíV×VÓVÕVðVýVúVëVÿW\\x0fW\\x03VïVóVüVÿVöVëVòVûW\\nW\\nW\\tW\"W1W1W!WAW W>WDWLWTWBWbWaWTWVWQWEWXW^WJWXWIWAWKW?WNWLWQWAW]WLWXWLWTWTWCWEWdWXWXWTWfW`WgWrWkWWWnWoWTW{WkWTWhWaWfWwWXWYWgWjWPWDWZWmWeWTW@W7W1W@W[WVW[WOW=WNW_WVWRWGWKWAWLW<WGW6W+WHWUW<WNWMW;WNWLWaWdWTWdWVWcW`WkWWWmWeWeW^W]WJWOW]WdWNWTW_WYWrWcWPWlWrWWWeW[WUWYWUWjWMWlWdWJW4W;W9W6W W$W#W0W-W/W*W/W0W+W(W\\'W(W/W+W;WBW4W;WCW1WGWKWUWTW\\\\WEW;W(WTW>W,WBWEWOW;W<WNW?WXWXWhWXWGWOWLWIWPWPWBWUWCWCW8WMW_WBWOWFWFWQWEW5WRWJWUWHWFWDWCWVWCWVWTWPWGWQWXWMWBWOWQWGWEWPW`WRW[WNWEW^WNWQWUWMWKWJWLWRWWWkWZW_W]WiWaW[WSWTWLWLWOW^WcWFW>W<WHWRWTWXW[WdWfW[WjWIWNWRWBWPWNWiWhWmWgWIWhWSWQW>WQWLW:WMWSWEWWWmWYWlW\\x8bW}WvW]WQW8W<W8WNW>WAWAW[WdWSW_WRW:W\\x12W\\x17W\\x1bWCW3WBWKWRWYW9W7WKWaWUWIWMW]WEW+W5W=W7W5W0WHWRW@W,W@W>WDW9W6WRWWWEW;W:W=W?WGW?W@W=WIW5W<W/W9W*W W.W8W\\'W&W.W#W+W\"W%W\\x19W\\x1aW\\x1fW<W)W\\x1fW\\x1fW\\x17W9W,W&W\\x1cW\\x1cW:W4W\"W&W4W+W+W2WGW.W/W+W>W,W#W3WOW>W4WJW4WGW/W6W?WEWHW7WBW@W5W6W2W6W8W\"W=W$W<W+W2W<WEW7WCWDW5W.W-W W\\tW\\x12W!WBW*W2W*W+W7W=W5W:W6WGW.W%W\\x1cW#W-W-W3W,W#W(W6W&W7WAW>W\"W.W W!W\"W)W$W#W\\x1eW\\'W/W(W\\'W>W*W#W,W\\x1eW\\x18W&W%W\\x1fW;W-W\"W\\x15W\\x14W\\x1fW\\'W!W!W\\x18W\\x07W\\x0bW\\x12W\\x19W$W+W+W0W\\x12W-W1W\\x19W0W+W6WFW8W;WBW\\x14VýV´V\\x8dVqV»V÷W/W\\x0cW%W8W.VàV¬VñW$W7W\"W\\x1eW\\x17W\\x03V÷VëVêVäV÷W\\x05W\\x06VùVúV÷W\\x01VæVóVØVÛVÆV¿VÂVÔVÌV¿V«V\\x9cV¡V\\x9eV·VÁVÁVÀV\\x95VÎVÔVÔV¹V»VÍVµV\\x91V\\x87VzV\\x84V{VxV¦V\\x94V³VÇV½VµVÐV®VµV¥VÂVÛVßVçVÙV\\x8bVAV\\x11V\\x05U¦U\\xa0UÆV\\x14V6VrV\\x92VÏVÍW#W\\x1cW W(W\\x1dW\\x19W\\x1eW\\x12W\\x11W\\x13W\\nW\\x18VøVüVüVéVôVùVÚVêVçVþVþVêVæW\\x01VÿVøVüV÷VòVäVëV÷W\\x08W W2W0WBW8W)WLWBWBW8WAWEWNWPW[WSWNWGWMWVWXW@W9WEW=WOWHW<WQWMWEWSWAWXWJWQWSWPWFWbWLWaWiWaWhWkWkWmWpWnW~WiWdWpWaWuWfWcW[WgWcWVWEWJWHW[WKWWWYW;W;W]WHWUW^WeWUWJWHW[WIWSWHWXW5WIWeWCW@W;W;WEW?W?WDWEWJWAWEWUWPWeWiWaWZWrWbWnWOW_WeWbW`WhWgWqW_WDWNWWWMWTWTWVWnWfWZWeWPWWWTWQWOWTWBWBWIW\\x1eW,W&W0W!W!W4W5W*W5W5W<W(W&W\\x19W!W\\x1dW*W/W?WRWMW#W4W@W<WGW@WYW.W&W%W0W:W4WDWDW@WMWNWTWkWhWeW[WPW_WGW?WGWJWPWAWNW:WAWJW?WEWJWFWAWCWLWJWLWHWCWOWCWFWBW<WOWEWOWUWMWUW8WHWYWPWIWPWDWAWEWSWhWPWKWPWPWNWdWaWVWOWSW[WOWPWaWrWhWsW]W^WPWXWOW]WEWPW\\\\WcWiWPWJWIWKWPW_WbW^WMW\\\\WQWWWVWXWoW\\\\W`WWWkW[WjWTWOWXWKWRWEWZWQW7WKWdWlWYWpWwWzW|WjW\\x84WfW^WIWTWYWdWaWTW\\\\WdWWWVWZWRWYW\\'W(W>W2W3WFWTWOWLW3W<WIW[WNWJW[WXWEW(WGW@WCW.W6W7WXWIWEWKW*W;W3WEWQW[W5WDW:WAW;WKWNW@WFW;W<W0W6W5W5WAW3W/W=W6W\\x1eW-W\\'W)W*W\"W\\x16W\\'W&W/W*VøW)W-W%W\\x0eVòVäW\\x0eW\"W2W6W(W+W8W=W1W6W:W5W0W9W/WBW:W:W1W7W/WEW!W@WEWMWEW9W8W9W-W5W6W4W;W0W6W1W<W9W2W*W,WGWQWEW@WHW=W3W1W$W-W@W\\x1fW\"W0W>W%W:W%W\\x1cW#W.W,W,W1W\\x15W-W.W0W7W\\'W\"W=W0W4W,WAW2W)W+W%W,W\\x19W$W)W)W&W-W1W9W\\'W\\'W$W)W)W0W\\x1cW\\x0cW+W-W&W5W-W\\'W\\x1eW.W\\x1bW.W\\x18W\\x14W\\x1eW\\x17W\\x1fW\\'W/W\\x1dW&W(WCW;W@W?W3W.W9W>W7W2W\\x1aVíV«VÍVÛVóVåW$W$W,W2W:W&W\\x18W\\x1fW\\x14W W\\x13W\\x12W\\x05VöVíVýVîW\\x00W\\x16W\\x02W\\x0cVùW\\x00VàVúVÝV»VÔVÞVÆVÇVËV©V°VÂVÀV\\xadV§V\\x84VÅVÇVúVÜVØVÌVÓVãVÙV¸V±V©V\\x8bVoV{V,V\\x1cV3V\\x83V\\x95V¦V¿VÈV\\xadVÙV»VÓVçVÓVçVïVáVÖVwV2UûUïUÂUÙV\\x1eViV©V³VØVÖVÅW/W\\x14W(W&W\\x16W W\\x1bW\\x11W\\x19W\\x0fVøVòVèV÷W\\x04VõW\\x03VçVúVåVæVøVóVòVíVÙV÷VóVòVÛVÜVäVþW\\x11W0W*W+W5WRW@W=W9W?W,WLWBW=WZWGWOWZWCWAWNWCWDWHW:WSWFWWWCWJWKWUWMWiWtW>WTWaWVWSWUWbWnWdWjWkWfWcWeWNWQWGW{WsWnW[WcWSWRWTWNWQWVWTW\\\\WQW\\\\WYW[WeWeWJWHWQWUWLWaW\\\\WcWOWJWUW@WIWHWOW7WDWPW<W7WIWGWEWOWQWHW:WYWUWLWXWRW[WdWuW_WeW_WbWVWZWwWfWnWcWhWiWKWRWIW`W^WeW`WeW_WXWPW^WSWcWLWNWBWGWKWBW7W\\x16W1W&W+W4W.W1WAW1W4W<W\"W\\x13W\\x11W\\'W\\x1bW\\x1eW\\'W7W1W$W(W,W0W.W.W&W.W7W#W8W0WBWAW,W2WSW[W\\x84WeW`WUW`WbWPWLWPWTWGW;WJWJWEWRW9W3W@W?WTWDWEWIWCWQWRWFWRW[WbWQWTWTWJWPWWWZWUW]WRWSWMWFWSWOWBWMWJWSWFWZWUWTWVWEWKWTWeWPWTWbW\\\\WQWdWoWnWkWgWHWSWUWZW9WBWIWMW`WaW^WAWIWFW=WhW_WmWiWWWeWSWVWpWjWZWbWaWRW\\\\WLWQWQWGWPW?WNWOWZWQWKWRWRWsW}W\\x86WqWaWkWwWmWkWTWbW[WTWiWWW]WYW?W?WRWVWRWbW5W1WEW2W?WiWHWjWLWGW=W=WcWSWKW;WVWAW:W=WCW>W*W@WDWFWKWQW]WJW<W;WEWIWAWGWJWAW>WOWBW?WFWTWRW:W?W=WCW@W2W0WAWCWEW@W2W.W2W#W0W#W\"W2W@W4WBWDW9W/W1W&W-W&W;W\\x15W\\x16W3W:W;W:W0WBWAWBWAWCW=W;WEW4W-W9W?W:W;WGWSWQWKWBWOW:WHWHW:WGWQW@W=W4WAWJW=WDWEWTWEWJWFW/WHW1W0W)W\\x1fW=W-W\\x1cW3W>WHW0W%W3W9W.WLW?W+W\\x1cW\\x19W\\x19W/W?W3W7W/W-W\\'W,W\\x0eW\\x1dW-W,W-W\\x1cW.W\\x0eW\\x19W!W7W)W7WAWEW<W;W8W0W#W\\x15W\\x03W\\x10W&WAW\\x1eW/W:W5W6W0W?W(W1W,W)W+W-W1W4W1W W6WLWLWFWHW6W3W6W/W2W,W%W,W#W\\x1fWAW0W)W#W%W*WBW8W2W\\x18W*W\\tW\\x03VõVâVçVëVíVúW\\x1fW\\x18W\\x15W\\x1aW\\x0eW\\x01VàVÙV¾VãVâVÙVÈVµV\\x84VyV\\x8fV\\x99VµV¸V»VÅV»VÑVæVïVåVâVíVÙVùVÙVºVÐVÇV´V\\\\VtVPVKVdV¨V¸V´VÆVÁVíV×VíVøVüVôVîVÕVÄVæV\\x97V:V=V_V\\x82V¡V¥VÖVéVÈVÏVÀW(W9W\\x19W&W\\x11W\\x1bW\\x0bW\\x13W\\x1bW\\x0fW\\x02VñVÿW\\x10W\\x05VèV÷VúVùVóVèVîVüVìVÚVáVÝVàW\\x00VìVøW\\x07W\\x0eW\\x18W#W3W\\'W3W;W@W@W6W3WKWVWOWHWRW^WPWJWDWjW`WOWPW_W>WPWPWIWLWSWTW<WWW`W\\\\WQWOW7WQWSWXWfW^WdWWWLWZWcWiWdW^WtW\\x81W`W\\\\WrWpWWWpWnWlWZWRWIWbWIW:WXWWWMWJWHWXWuWRWVWSWaWLWSW_WUW^WNW@WKW:WMWOWDWIWFWZWSWPWAW`WGWNWUWWWXWTWXWhWbWjW_W_WeWmW{W`WoWrW_WXW`WTWJWFW[WgWZW[WWWZW_WbWLWNWOWAWCWNWDWLW4W\\x1dW\\x1aW2W3W0W-W!W5W=W2W?W2W*W\\x15W.W&W1W\\x1bW\\x1eW\"W#W3W8W\\'W!W#W+W\\x13W\\x13W$W&W\\'W+W7W9W,WMWSWVWhW]W]WJWJWLWNW?WAWBW<W;WCWRW@WFW<WIWCWLWMWDWUWLWQWLWGWAWOWIWRWOWFWGWOWKWVWPWpWdW]WYWGWIWUWNWEWXWcW[WcWZWEWTWVWTWXW\\\\WdWZWfW[WeW^WaWtWnWpW^W]WSWIWHW>W*W=W@WDWSW=W>W8WMWNWTWUWnWBWAWFWEWHWTWhWZWaWMWAWIWEWNWPWAWRWDWJWSWfW`W]W\\\\WoWiW\\x80W\\x94W\\x84W[WZWbWnWmWNWJWeWVWjW_W]WPWSW\\x15W,WDWNWQW\"W#WDW7WAWWWJWEWOW6WCWRWPWWWHWJW>W8W\"W-W3W6W%W=W4WBW?WSWLW^WJWFWMW>W:WKW=WAW<WMWOWKWVW@W?WDW W\\'WBW;W/WMWFWHWUW:W7W@W\\x1fW/W\\x1cW\\x0fW\\x0cW W\\'W9W/W?W6W:W(W\\x1fW+W\"W#W%W\\x1aW7W3W@W:W0W\\x1cW>W6WCWJW>W3WAWFW3WOWNWGWGW;WKWJW5W@WCW<W:WLW>WAWDW7W=W<WIWKWMWBWDWAWUWJW4W/WDW-W\\x1cW#W\\x1bW\\x1bW\\'W\\tW\\x1bW\\'W4W.W5W4W8W2W:W-W\\x1cW!W,W\\x18W+W\\'W;W<W2W$W\\'W4W\\x1aW\\x19W+W$W1W4W*W$W$WDW<W;W1W9W4W,W-W,W\\x1bW\\nW\\x11W\\x15W\\x10W\\'W,W(W=W8W4W3W-W7W\\x16W-W\\x13W%W-W\\x16W\\x15W\\x1aW)W3W8W6W5W/W3W-W1W,W*W\"W$W.W!W\"W W\\x1fW;W4W!W=W)W1W2W\\x1dW\\x17VúVäVÃVÈVÅVóVóW\\x13W\\x10W\\x0fW\\x1cW\\x12W\\x05VúVâV¿VÀVªV®V¬V¯V]V[VjV\\x8fVÂVÃVÁVàVÑV»VÆVÖVêVóVéVãVáVßVöVìVÙVÐVêVøV¶V¤V\\x96V\\x88V±VÒVÊVÙVÝVÞVñVìVïVôVîVìVìVãVêVæVâVÖV¬V§V¹V¦VÂVµVÖVÌV®V\\xadW0W\\x19W%W\\x11W\\x12W\\nW\\nW\\x1aW\\x15VþW\\x13VóW\\x04W\\x0fVúVïVëW\\x0cVóVâVòW\\x03VéVóVìW\\x06VúVñVñVõW\\x0eW W\"W W;WHW/W.WKWAW[WOW@WeW;WYWQWbWOWJWXWSWCWTWOWVWXW@W[WLWTWKWFWMWPWCWHW]W]WRWQWPWSWpWQWRWcWvW\\x80WjWiWbWvWyWgWhWgWcWeW[WjWcWNWcWSWGW`WtW9WPWZWOWMWVWYW\\\\WoW[WZWVW[WOWEW_WYWIWFW9WDW8W9WIWCW3WNWJW@WVWBW[WTWUWaWEW`WUWQWVWZWjWYWaW\\\\W[WtWiWuWhWhWsWkWLWUWDWkWUWgWYWVWVWMWFWEWTWOWFW=W,W+W5W5W,W\\x1bW/W\\x1fW*W!W\\x1eW2WAW\\x1cW#W4W3W*W\\x15W.W$W\\x12W6W#W/W4W\\x1bW%W\\x12W\\x12W\\x19W\\x1bW\"W\\x17W>WLW?WOWKWCWSWWWPWgW]WmWTWNW@W@WIWJW8W9W?WIW>W<W=W-WGWNW<WTW?W\\\\WQW?W@WOWMWEWGWJWWWSWJWYWDW>W7WDWKWQWTWHWTWPWHWKWWWOW[WGWVWRWWWOWVWKWuWeWaW_WiWhWdWZW`WeWiW[W^WPW?WCW.WDWCWIW6WKWOW<W<W:WDWHWUWvW]W}WvWgWLWbWPWYWaWXWFWFW3WXW?W;WHW8WIW`WcW{W_WiW|W\\x83W\\x8cW\\x8fWkWPWPWuWqW~W`WOWTWdW\\\\WWWmWdWEW/W\\x1bWBW/W9W\\x17W\\'W7W9WAWEW.W<W6W<WHWBWXWBW;WGW:W0W\\'W(W:W:W+W5WCW8W@WFWIWDWDWDWGW2W2WGWBW@W]W;WHWCWMW<WAW:W@W?W@W:WUWDWHW;WKW?W2W<WBW*W4W,W\\x1eW\\x1fW*W!W,W#W8W@W\"W0W2W$WBW\\x1cW%W;W5WAWIW1WGW5W5WCWAW9W;WHW@WEWFWIWQW;W+WCWGWCWCWDW8WNWDWCWIWBW/W8W8WRWEWBWHW@W=WGWEWIW)W4W)W\\x17W\\x1aW&W2W(W!W\\x16W6W-W)W!W(W5W#W%W.W\\x14W\\x14W$W.W+W)W9WFW\\'W,W.W)W\\x14W,W\\x19W(W0W4W\"W9W!W:W6W-W1W>W8W-W,W3W>W\\x18W$W\\x1dW\"W&W.W1W-W6WCW,W%W8W W3W#W\\'W#W\\x1aW\\x1eW\\'W W\\x18W&W9W\\'W.W)W\\x1bW\\x1fW&W-W)W,W-W0WCW,W\\x1fW:WPW/W$W\\x1eW\\'W\\x10W&VýVÏVáVáV¬VÏVÖW\\x0eW$W(W\\x0fVüW\\x1cVþVòVçV¹VÈV\\x91V{VhV\\x8cV\\x80VlV\\x94VÍVÄVÓVÙVÙVÜVÁVËVéVõVçVòVÿVìW\\x01W\\x00W\\x07W\\x02VÿVöVÿVáVÕVÒVÅVÏV½V×VßVêVÚVðVÔVÜVøVîVíW\\x00VùVöVçVðVÛVäV×VÍV·V´V¿V«V\\x98V\\x99V\\x8dW$W-W\\x12W&W\\x1bW\\x1aW\\x1fW\\x1cW\\x1dW\\x1bW\\x04W\\x10W\\x0cVýVöVûVöVõVìVãVâVúVâVùVõVíVóVîW\\x1aW\\x16WSWDW8W,W5WMWYW@W2WYWQWIWPWcWUWdW`W`WPWOWKWIWQWPWHWIWIWLWXW^WXWRWHWRWGWRWOWQWSWnWFWMWLWQWTW[WXWmWaWaW\\x81WqW\\x88WtWxWrWyW`WgWnWeWXW^WLWGWEW]WUWIWcWeWUWSW_WOWDWiW\\\\W`WqWgWjWLWQWTWFWIWXWcWJWFWHWBWCW[WYWWW^W^WRWSWjWkW_WrWVWZWcWoWtW[WqWeWiW\\\\WbWgWjW]W[W`WIWNW`WdW^WVWYWYWPWQWOWYWEW9WCW<WAW1W5W%W\\'W\\x0bW;W)W1W.W,W&W\\x10W\\x17W\\x11W\\x1fW.W\\x1cW\\x10W!W!W%W.W\\x1dW8W2W\\x19W\\x11W\\x0eW\\x0fW\\nW$W!W%W<WgWPWKW_W]WHW@WJW]WPWXWUWEWKWCWXW`WKWMWHW>WFW@WVW8WMWXWAWVWSWLWUWNWYWSWNWDWAWMWZW`WLWRWOWIWJWMW<WKWbWNWZWcWVWVW_WPWTWNW\\\\WdWhW^WQWLWFWiWjWhWXWlWfW^WWW_WUWLWPWBWKWCW?WMWPWOWAWCWEW?WIWWWKWUWmW\\x85WtWlW\\x8cWMWLWUW[WXWXWKWEWFWIWFWUWbWIWHWtWuW£W\\x98W\\x8cWsWhW\\x84W\\x92W\\x86WlWaWiWnWuW\\x81WdWgWuWtWmW~WhW\\\\WgW@W4W<W2W$W W\\x11W\\x1eW=W5W@WNWCWBWQWPW`WIW2W?W5W?W\"W*W,W:W9W4W6WDW0W@WIWLW=W?WJWGW;WGWFWQWPWLWQWNWPWFWJW6W<WJWRWSW[WNWRWOWJW[WJW5WSWAWVWEWEWCW9WSW=W:W\\x1bW6W#W/W;W*W7W<W4W8W?W:WJW:W:W8W9W/W@W@W7WWWAWPWHWOW>WHW;WEWNWRWPW=WAWAWOWHWQW\\\\WDWEWGWAWJWNWMWTWGWUWFW7W*W$W\\x1fW#W!W/W\\x04W.W\\x1dW\\x10W\"W,W\\x18W\\x16W%WDWKW+W.W<W2W&W-W9W7WJW,W9WBW>W7W0W$W:W,W3W#W,W\\'WIW(WAW<WKWEWQWKW6WKW=W9W/W7W:W=WVW1W,W-W8WKW2W-W2W(W6W)W7WAW3W/W W,W\\x19W+W\\x16W\\x1eW&W\\x12W\\x1bW\\'W\\x1eW4WEWHWGW;W9W2WBWZW:W?W(W-W W\\x0fW\\x08VïW\\x01VóW\\x1aW\\x1aW\\x0bW\\x12W\\'W\"W\\x16W\\x1dW\\x08W\\tW\\x03VêVèVÄVÌV\\x8fVtV\\x97VªVµV¥V¯V®VÈVØVúVúVÓVýVáVëVûVñVÃVèW\\x0fV÷W\\x04VþVèVæVÈVÝVÅVïVÙVÎV·VãVäVæVòVñW\\x02VâVíVùVòVýW\\x06VýVèVþVôVìVéVëVúVÌV\\x95V\\x92V\\x81VtVSV\\x7fW5W1W5W\"W%W+W!W\\x12W\\x16VúW\\x0bW\\x07VüVøVâVéVêVëVæVÏVóVäVíVîVìVôVøW\\x01W\\x18W\"W4W6W6WEW4WBW9WCWAWQWXWLWJWHWTWqWLW]WBWSWHW<WEWQWGWLWJWRWQWGWAWUWOWCWIWPW`WUWpWmWdWOWNWVWOW[WfWmW_WnWsWrWmW\\x81WlW{W}WfWLWMWTW=WIWHWCW<WIW<WOW@WdWIWVWkW_W`WRWkWaWiWbWTWRW@W[WVWAWAWPWCW.WHWLWLWOWZWSWIWYW>WgWZWTW[W[WrWsWaWmWrWsWcWLWtWuWfWmWqWdWgW_WKWVWfW`WQWSWOWKWVW=W@WAWKWCWCW<W7W2W:W\\'W\\x10W+WHW7W.W3W(W\\x1dW\\x11W\\x00W\\x12W W\\x1cW\"W\\x1dW%W\\x1dW5W2W8W1W*W/W6W-W\"W*W$W/W3WKW^WjWVWNWgWVWAW\\\\WRW7W;WBWLWRWHW\\\\W<WHWAW5WDW@WPWOW@WPWNWGWhWKWGWRWSWRW`W]WAWBW_WaW^W]WNWMWQWKWSWIWTWMWQWWWgWaWHWoWJW`WPWWW^WaWZWbWtWRW]WhWNWoWnWhWbWOWYWSWNWEWJWXW7W#WBW0W\\x1dW2W>WMW@WZWbW?WGWPWdWqWhWeWUWUWSW@WRW^WPWXWOW:WTWSWFW<W_WvW\\x97W\\x9bW\\x97W|WmWkWoWjW\\\\WtWlW]W\\x86WnWiWKWeWhWtWiW^WDWMWbWGW0WEW8W#VÿW\\x07W W?W<WMW3W7W4W;WFWBWJWPW:W@WBW0WCW@WKWSW9WGW6W>W>WPWJWJWXW>WEW:W?WGW<WIWGWIWKWEWLWWWgW>WWWNWIWOWUWWWWWVW`WZWNW@WCWGWfW>W1W*W3W2W,W\\x1cW5W2W1W8WBW.W4W+W3W9W?W-W8WBW?W8W4W5W1W5W/W=WCWJW?W=WSW?WFW3WGWKWMWFWIWUWKW>WHWDWAW:W4W;W<WQWSW5WDWEW8W7W+W5W\\x17W\\x18W\\x0cW\\x04W!W\\x11W\\x1bW#W W*W\\x0eW\\x10W)W3W%W$W0W+W6W4W4W0W0W#W\\x17W4W\\x14W\\x1fW+W=W)W$W0W/W;W:W:W,WEW;W@WJW3W5W:W.W7WDWAWIW<WCW3W7W)W)W9W?W9W0W?W1WAWJW9W3W2W8W8W/W\"W)W\\x16W W5W\\x18W\\'W/W6WGWCWFWEWHW5W:W8W=W=WAW5W.W\\x1fW\\x00W\\x15W\\x1fW%W\\x0eW#W\"W$W*W\\x1bVùW\\x13VòVáW\\x02W\\x08W\\x12W\\x04VñVõVæVÙV·VËV×VÃVÃVÊVÁVûVáVòVûVâVÕVôVÿVöVêVæVôW\\x03VàVÜVÕV³VÃVÌVÓVéV×VâVéVìVïVøW\\x01V÷VñVöVîVùVúVñVøVöVÞVþVñVíVûVôVûVÑVµVtVQV9V`VwW W\\x10W<W\\x18W\\x1dW*W\\x15W\\x0bW\\x0eW\\x04W\\x10W\\x15W\\x1cW\\x05VõVöVöVæV÷VäVõVõW\\x01VíW\\x0bVÿW!W\\x1bW3WHWJW0WQWOWHWLWLWFW5WJW^WFWUWJWYWfW`WAWAWCWMW8WOWMWNWRWNWWWOW]W\\\\WeWSW;WSWcWTWWWnWlW_WhWbWwW\\x82WpWzWrWZWnWrWvWtWkWbWtW\\\\WRWbWPW`WOWTWOW@W>WTWTWcWXW[WMW^W]WYWtWcWeW]W\\x7fW]WQWZW=W?WCW[WMWWWEWFW]WQWXW]WoWGWeWQWNW]W]WgWkWaWtWqWuWgWdWmWfWcWnWpWxWqWkWnWXW_WNW^WRWdWIWSWQWMWWWPWFW:W@WCWMW5W6W\\x11W\\x15W\\x12W!W/W.W2W*W\\x1eW\\x1bW VþW\\x0cW\\x0fW\\x1eW\"VüW\\x17W5W&W+W:W6W%W/W(W0W*W:W<WGWBW3W9W[WiWHWlWQWHW?WHWBWDWWWOWEW]WPWTWVWAWFWHWPWUWNWMWKWUWUWQWZWNWGWYWSW]WcWXWUWOW^WcWKWXWRWbWPWcWJWSWOW^WZWNWMWRWPW`WoWPWMWWWrW`WtWpW`W\\\\WhWWW[WlW\\\\WgWWWYWSWJWKWNWPWFW3W\"W(W/W1W)W>WEWFWMWQW8W@W;W]WRW^WaWsW[WVWOW]WOW@WAWIW;WPWEWDWTWWW\\x82W\\x84W\\x94W\\x8fWvWiWeWgWhW|WnWuWdWmW{WhWgW\\x85W{WiWgWRW4WWWIWOW7WMW8W\\x1cW\\x16VóW#WFWGW`WIW@W:W4W>W?W_W:WEW;W0W7WGW9W>WLWHWLW1WRWBWJW4WAWIWIWQW?WfWIWOWDWTWQWXWIWOW]WVWWWcW9WEWJWMWMWRWEW]WEWKWBWAWEWUWBW(W?W5W,W3W2W;W/W9W$W%W-W3W\\x19W\\x1cW)W3W6W6W:W?WMW.W-W?W5W3WFWKWCWJWEW_WSW?WCWQWAWBW=WPWJWEW5W?W>WDWRW7W?W]W[WQWGWQWBW4W%W\\'W3W,W\\x19W+W.W8W!W.W*W2W\\x1eW\\nW!W;W@W+W-WKW-W8WBW5W2W6W)W4W8W\\x02W)W.W3W\\x16W%WAW6W>WRWCWJWDWYW]W5WFWIWDWAW(W,W/W=W,W)W/W+W7W<W0WGW,W8W6W1W0WGWWWFW.W0W&W\\x1fW\\x1fW$W\\x1dW\\x1aW#W\\x1aW*W;WEWAWDWJWFWBW\\x18W\\x17W/W\\x1dW/W6W9W4W0W#W/WDW8W4W9W1W1W%W6W\\x1cW\\x04W\\x08VéW\\x08VþW\\x12W\\x08VöVÿVþW\\x07VÃV°VéVÉVÓVõVîVöVüW\\x0bVðV¶VàVûVóVïVáVáVàVÔV«V®V\\x8cV¦VÔVÍVÖVøW\\x06W\\x11W\\x04VîVòVîVóVãVîVÿVãVøVÕVæVáVåVÖW\\x08W\\x1fW/W\\x1bVûVþVãVÎV¦VªV\\x91VzV\\x9eW%W:W(W W\\x0bW\\x16W\\x1cW\\x07W\\x11W\\x0fW\\x02W\\x0eW\\x0cW\\tVàVêVÚVìVðV÷VéVïVêVéV÷W\\x00W\\x15W\\x11WDW3W7W)WFWJW>W>W:WMWZW[W^W^WZWMWZWZWNWMWVWSWUW5WEWJWHWSW9WJWRWUWMWAWAW6W0W7WKWBWHWgWaWbWfWnWyWXWzWiWdWmWhWZW[WcWXWjWRWNW]WVWXWHWIWCWGWcWRW]WcWQW\\\\WZW\\\\W_WXWTWRWmWHWPWNWJWVWLWJWBWZWQWCWEWDWJW\\\\WEWhWZW^WZWXWWWVWgWZWsWoWtWcWjW`WkW^WbWoWKWlWaWZWXWTWLWGW^WOWNWMWKWWWRWZWRWLWSWFW+W1WEW&W%W W\\x1fW\\x11W\\x1eW%W9W\\x12W6W\\x1dW\\x16W\\x12W\\x11W\\x0bW\\x0fW5W\\x1eW\\x1aW$W\\'W\\x1fW9W4W6W=W9W.W,W,W8W@W>W?W0W,WXWUWDWWWIW<W0W;WHW7W8WOWUWdW?WVW]WNWZWNWQWTW[WNWFWPWRWKW^WJWOWDWIWPWYWNWIWFWNWQWQWGWKWSW^WYWUWMWOWVWZWZWUWPW\\\\W}WjWKWDW]W~WcWmWlWeWcWdWQWqWlW[WXWXW[WQWAW@WAWDW<W?W7W1W4W7W9W/WBW$W.W0W,W:W>WRWiWjWtWjWMWQWUWPW?W=W?WFWKWRWBW5WEW\\\\W~WjWgWrWqWkWlWzW~WoWVWmWjWkW[WZWaWlWlWZWiWFW>WQWBW>WHWHW8W\\x0eW\\x00W\\x15W(W9WCWGWXW8W\\'W3W(WUWRW2WAW9WVW>W<WCWHW@WDWAWUWGW.WFWUWJW6WMWPW\\\\WQWXWYWMWZWXWPWSWDWMWLWVWfWRWBWEWJWMWIWEWNW:WAWCW6WIWYW=WKW+W!W9W5WCW=W>W#W>W/WJW1W/W=W9W7W8W:W>WDW6W4WHWIW?W.WKW@WMWJW?WHW?WQW8WOWFWOWPWGWBW6WAWBW)W8WLWCWUW@W5WFW:WFW:W-W\\x18W%W5W/W0W0W-W/W\\x17W+W5W9W\\x00W$W\\x08W\\tW+W&W0W/W\\x0fW\\x16W.W.W\"W.W#W)W5W3W&W;W\"W/W8W=W.W3W>WFW9WDWSW?W@WNW=WFW:W-W?W-WEW8WGW3W5W0W9W:W/W:W9W)W1W@W9WVW-W1W+W\\x0cVüW\\x16W\\x12W\\x1fW\\x18W\\x13W\\x1bW,W*W,W/W>WHW8W?W-W\\x1cW\\x16W\\x1eW4W%W5W*W\\x1fW\"W4W3W,W7W\\x11W.W0W:W\\x11W\\x1eW\\x18W\\x19W,W\\x11W\\x11VúW\\x00VðVùVåVíV\\x9dV¦V¼V¹VÙVþVùVôW\\x16W\\tVÖVÆVËVòVðV×VäV¼VÄV¸V\\x8bVgVOV\\x88VåVäVùW\\x03W\\x13VîVõVïVðW\\x02VæVýW\\x01VñVÐV¹V©V¸VÝVùVôVñVöW\\x1cW\\nVûVòVèVËV\\x7fV\\x9dV¯V\\x98V£W\\x1eW\\x07W\\x15W\\nW\\x07W\\x13W\\x0fW\\x05W\\x0fW\\x15W\\x19W\\x03W\\tW\\x0eVôVöVíVúVþW\\x04W\\x05VùW\\x00VòW\\nW\\x10W$W\"WHW$W8W>W9W2WPWLWbWYWFWUWZWcWJWdWGWGWDWBW:WLWLWDWLWKW_W?WEW6W7W]WHW:W4W@W\\x05W0W-W:W@WLWbWTWvW]WyWkWxWoWvW]W_WeW^WgW^WaWQWAWZW`WeWaWTWNWTWEW[WYWgWVW]WhW[W_W]WXW_W_WEWZWPWPWRW=WOWGWKW\\\\WSWJWDWWWNWEW`WNWYWXWTWWW^WbWmWbWvWlWiW|W]WfW_W[WgWHWgWjWaWQWLWPWVWLWKWKWZWQWQWcWPWHW5WBWHW.W(W4W\\x1eW&W\\x19W\\'W\\x1aW\\x0fW\\x1bW*W\\x1aW\\x14W\\x19W\\x13W\\x02W\\x07VýW)W\\x19W#W.W\"W*W#W<W1W2W6W1W2W\"W?W5W8W,W\\x1fW6W.W>W3W8WRWUW:W0W1W<W>W:WIWDWTW[WJWYWmWhWiWYWQWUW/W)WAWCWKWJWcWXWDWKW]WRWIWJW^W5WMWCWMWFWBWNWQWEWEWHWIWLWPWZWMWSWJWeWIWVW^WwWyWbWjWfWcWSWlWTWXWOWGWKW9W0W2W.W6W>W<W>W5W<W,WAW<WHWCW6W5W7W,WEW6W?W3WWWCW7W@WAWNWOWIWCW>WEWBWAW>W.WKWKW\\\\WRWkWrWmW}W\\x94WjWnWaWgWpW\\\\WlWlW^WZWpWhWUWVWLW@W;WAW5W;WKWFW\\x13W\\x13W\\x1eW4W7WHWJWBW.W%W+W3WAWOW9W9WAWAW8WKW@W:W8W4WHWRWEWKWEWNW6W8W6WCWEWdW@W\\\\W_W[WZWZWUWhWQW_WYWHWUWUW2W>WNW9WAWHW,W4WCWDWKWTWYWEW=WIW;WBW?W+W5W0W0W@W2W\\x1eW.W(W6W<W3W\\'WGWGW@W6WOWUWDW?WGWCWIWGW>WRWAWKWCWQW?WFW@W@WPWOWUWMW9WQWTW@W.WNWAWKW2W,W*W\\x1aW)W0WEW/W\"W%W,W2WAWCW?W2W/W\\x04W\\x19W\\x16W\\x14W\\x17W0W1W\\x12W\\x14W\\x0eW W*W-W/W,W5W\\x15W6WGW<W*W(W8W.W7W=WQW:W`WRW=W+W#WSWEWCW-W=W-W5W.W/W6WCW=WKWHW;WBW3W9W)W4W@W;W8W#W\\x1aW!W%W\\x1bW\\x1bW\\x0eW\\x19W\\x13W\\x11W+W\\x10VûW\\x10W\\'WFW6W1W(W\\x19W#WBW1W-W2W\"W\\x15W\\x19W-W\"W\\x1dW\\x19' is not in list",
"\nDuring handling of the above exception, another exception occurred:\n",
"\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m/home/bryce/git/master/SameTableEncoder.ipynb Cell 17'\u001b[0m in \u001b[0;36m<cell line: 5>\u001b[0;34m()\u001b[0m\n\u001b[1;32m <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000015?line=2'>3</a>\u001b[0m encoded_string \u001b[39m=\u001b[39m read_from_file(images[\u001b[39m0\u001b[39m])\n\u001b[1;32m <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000015?line=3'>4</a>\u001b[0m \u001b[39mprint\u001b[39m(encoded_string[\u001b[39m0\u001b[39m])\n\u001b[0;32m----> <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000015?line=4'>5</a>\u001b[0m reconstruct_image \u001b[39m=\u001b[39m decoder(A, encoded_string, oglist_dic, ogbins, \u001b[39mFalse\u001b[39;49;00m)\n\u001b[1;32m <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000015?line=5'>6</a>\u001b[0m \u001b[39mprint\u001b[39m(np\u001b[39m.\u001b[39mallclose(image, reconstruct_image))\n",
"\u001b[1;32m/home/bryce/git/master/SameTableEncoder.ipynb Cell 9'\u001b[0m in \u001b[0;36mdecoder\u001b[0;34m(A, encoded_string, list_dic, bins, use_diff)\u001b[0m\n\u001b[1;32m <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000017?line=35'>36</a>\u001b[0m \u001b[39mfor\u001b[39;00m j \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(decode_matrix\u001b[39m.\u001b[39mshape[\u001b[39m1\u001b[39m]):\n\u001b[1;32m <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000017?line=36'>37</a>\u001b[0m \u001b[39m# if it's the very first pixel on the image\u001b[39;00m\n\u001b[1;32m <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000017?line=37'>38</a>\u001b[0m \u001b[39mif\u001b[39;00m i \u001b[39m==\u001b[39m \u001b[39m0\u001b[39m \u001b[39mand\u001b[39;00m j \u001b[39m==\u001b[39m \u001b[39m0\u001b[39m:\n\u001b[0;32m---> <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000017?line=38'>39</a>\u001b[0m colorvalue, encoded_string \u001b[39m=\u001b[39m decode_string(encoded_string,the_keys\u001b[39m=\u001b[39;49mthe_keys0, the_values\u001b[39m=\u001b[39;49mthe_values0)\n\u001b[1;32m <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000017?line=39'>40</a>\u001b[0m decode_matrix[i][j] \u001b[39m=\u001b[39m colorvalue\n\u001b[1;32m <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000017?line=41'>42</a>\u001b[0m \u001b[39m# if it's on the boundary (any of the 4 edges)\u001b[39;00m\n",
"\u001b[1;32m/home/bryce/git/master/SameTableEncoder.ipynb Cell 4'\u001b[0m in \u001b[0;36mdecode_string\u001b[0;34m(huffman_string, the_keys, the_values)\u001b[0m\n\u001b[1;32m <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000003?line=48'>49</a>\u001b[0m \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(\u001b[39mlen\u001b[39m(huffman_string)):\n\u001b[1;32m <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000003?line=49'>50</a>\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m---> <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000003?line=50'>51</a>\u001b[0m \u001b[39mreturn\u001b[39;00m (\u001b[39mint\u001b[39m(the_keys[the_values\u001b[39m.\u001b[39;49mindex(huffman_string[:i\u001b[39m+\u001b[39;49m\u001b[39m1\u001b[39;49m])]),huffman_string[i\u001b[39m+\u001b[39m\u001b[39m1\u001b[39m:])\n\u001b[1;32m <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000003?line=51'>52</a>\u001b[0m \u001b[39mexcept\u001b[39;00m:\n\u001b[1;32m <a href='vscode-notebook-cell:/home/bryce/git/master/SameTableEncoder.ipynb#ch0000003?line=52'>53</a>\u001b[0m \u001b[39mpass\u001b[39;00m\n",
"\u001b[0;31mKeyboardInterrupt\u001b[0m: "
] ]
} }
], ],
"source": [ "source": [
"oglist_dic = np.load(\"first_dic.npy\", allow_pickle=\"TRUE\")\n", "def bytes_to_bitstring(input_bytearray):\n",
" end_string = \"\"\n",
" print(input_bytearray[0:25])\n",
" # print(bytearray(input_bytearray,encoding=\"ISO-8859-1\").decode(\"utf-8\")[0:4])\n",
" int_array = [i for i in input_bytearray]\n",
" for item in int_array:\n",
" end_string += (bin(item)[2:])\n",
" return end_string\n",
"# oglist_dic = np.load(\"first_dic.npy\", allow_pickle=\"TRUE\")\n",
"\n",
"\n",
"ogbins = [12,60,180]\n", "ogbins = [12,60,180]\n",
"encoded_string = read_from_file(images[0])\n", "encoded_string2 = bytes_to_bitstring(read_from_file(\"images/1626033496_437803/1626033496_437803_11._Compressed.txt\"))\n",
"print(encoded_string)\n", "\n",
"reconstruct_image = decoder(A, encoded_string, oglist_dic, ogbins, False)\n", "print(len(encoded_string2))\n",
"print(np.allclose(image, reconstruct_image))" "reconstruct_image = decoder(encoded_string2, oglist_dic, ogbins, False)\n",
"# print(np.allclose(image, reconstruct_image))"
] ]
}, },
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment