Cadastro de imagens e outros arquivos usando o campo BLOB do MySQL


Estou disponibilizando para download um aplicação web muito simples para manipular campos Blob do MySQL.

 

O que é um campo do tipo Blob?

Um blob (do inglês: Binary Large OBject, basic large object, representa um conjunto de dados binários armazenados em um único campo de uma tabela. O uso mais apropriado para o campo blob é para armazenamento multimídia como imagens, videos e áudio, porém, seu uso não limita apenas a isto.

O MySQL oferece 4 tipos de campos Blob sendo eles;

TINYBLOB Consegue armazenar apenas 255 Bytes de dados, equivale a pequenos arquivos de textos e chaves criptográficas.
BLOB Consegue armazenar até 64 KB de dados, equivale a uma pequena imagem, um ícone.
MEDIUMBLOB Consegue armazenar até 16MB de dados, equivale a uma fotografia normal ou um arquivo de áudio MP3 de boa qualidade.
LONGBLOB Armazena até 4GB de dados.

E se eu precisar gravar mais do que 4Gb em um campo Blob?

Neste caso, o MySQL não resolve a sua necessidade. Você deverá partir para outros tipos de bancos como Oracle ou MS SQL.

 

Aplicação PHP para cadastro de arquivos

Download dos scripts PHP para gravar arquivos em campos blob.

gravarblob-ATUALIZADO-2017

Veja um screenshot da aplicação PHP em execução:

 

Aplicação PHP para cadastro de arquivos e imagens no campo Blob do MySQL

 

Estrutura do Banco de dados (bd_multimedia.sql )

Você encontrará o arquivo bd_multimedia.sql basta importá-lo para seu servidor. O banco possui uma única tabela seguindo a seguinte estrutura;

 

INSERT no campo BLOB (index.php)

O arquivo index.php contêm o script que executa o comando INSERT na tabela tb_arquivos.

O script de inserção necessita de um formulário que suporte a codificação de dados, ou seja, iremos codificar os dados em binários. Isso pode ser feito usando o atributo enctype=”multipart/form-data” na tag <FORM> conforme mostra a primeira linha do código;

<form enctype="multipart/form-data" method="post">
  <label>Arquivo</label>
  <input type="file" name="arquivo" class="form-control" required>

  <label>Descrição</label>
  <input type="text" name="titulo" size="30" class="form-control" required>

  <button type="submit" class="btn">Enviar arquivo</button>
</form>

Para fazer a inserção o script PHP necessita de um submit do tipo POST. O script faz a leitura do vetor $_FILES separando os dados do arquivo. O Script utiliza uma conexão PDO para se conectar ao banco.

 

<?php
 if ($_POST) {
   include("./core/dadosconexao.php");
   $arquivo = $_FILES["arquivo"]["tmp_name"];
   $tamanho = $_FILES["arquivo"]["size"];
   $tipo = $_FILES["arquivo"]["type"];
   $nome = $_FILES["arquivo"]["name"];
   $titulo = $_POST["titulo"];

  if ( $arquivo != "none" )
  {
    $fp = fopen($arquivo, "rb");
    $conteudo = fread($fp, $tamanho);
    $conteudo = addslashes($conteudo);
    fclose($fp);

    try {
      $conecta = new PDO("mysql:host=$servidor;dbname=$banco", $usuario , $senha); //istancia a classe PDO
	  $conecta->exec("set names utf8"); //permite caracteres latinos.
      $comandoSQL = "INSERT INTO tb_arquivos VALUES (0,'$nome','$titulo','$conteudo','$tipo')";
      $grava = $conecta->prepare($comandoSQL); //testa o comando SQL
      $grava->execute(array()); 
      echo '<br/><div class="alert alert-success" role="alert">
            Arquivo enviado com sucesso para o servidor!
            </div>';
 } catch(PDOException $e) { // caso retorne erro
     echo '<br/><div class="alert alert-error" role="alert">
           Erro ' . $e->getMessage() .
          '</div>';}
 }}
 ?>

OBS: O arquivo core/dadosconexao.php guarda os dados de conexão com o servidor e o banco.

 

Consultar e listar arquivos do tipo BLOB (lista-de-arquivos.php)

Outro arquivo legal desta aplicação PHP é o lista-de-arquivos.php que cria uma tabela baseada em uma consulta ao banco de dados, novamente usando PDO.

<?php
 include("./core/dadosconexao.php");
 try
 {
   $conecta = new PDO("mysql:host=$servidor;dbname=$banco", $usuario , $senha);
   $conecta->exec("set names utf8"); //permite caracteres latinos.
   $consultaSQL = "SELECT arquivo_id, arquivo_nome, arquivo_titulo, arquivo_tipo FROM tb_arquivos";
   $exComando = $conecta->prepare($consultaSQL); //testar o comando
   $exComando->execute(array());
 
   echo("
        <table class='table table-striped table-bordered table-hover'>
        <thead class='thead-dark'>
        <tr>
        <th>ID</th>
        <th>Nome</th>
        <th>Titulo</th>
        <th>Tipo</th>
        <th>Abrir</th>
        <th>Thumbnail</th>
        </tr>
        </thead>
        ");

 foreach($exComando as $resultado)
 {
   echo ("
         <tr>
         <td>$resultado[arquivo_id]</td>
         <td>$resultado[arquivo_nome]</td>
         <td>$resultado[arquivo_titulo]</td>
         <td>$resultado[arquivo_tipo]</td>
         <td><a href='abrir_arquivo.php?id=$resultado[arquivo_id]'>abrir</a></td>
         <td><img src='abrir_arquivo.php?id=$resultado[arquivo_id]' width='120px'/></td>
         </tr>
       ");
 } 
 echo("</table>");
 
}catch(PDOException $erro)
 {
    echo("Errrooooo! foi esse: " . $erro->getMessage());
 } ?>

 

Abrir e exibir valores de campo BLOB, imagens e outros arquivos (abrir-arquivo.php)

O arquivo abrir-arquivo.php permite exibir e fazer download do arquivo. Lembrando que dados BLOB são codificados em binário e precisamos fazer a decodificação para enfim exibir para o usuário.

Esta decodificação é feita logo no carregamento da página usando a função header do PHP. Para que a decodificação não gere erros no arquivo é importante saber o tipo de arquivo que será decodificado, se é uma imagem, um vídeo, um arquivo texto, etc…

Neste código, a linha mais importante é a header(“Content-Type: $tipo”);

<?php
 include("./core/dadosconexao.php");
 try
 {
   $conecta = new PDO("mysql:host=$servidor;dbname=$banco", $usuario , $senha);
   $conecta->exec("set names utf8"); //permite caracteres latinos.
   $consultaSQL = "SELECT arquivo_tipo, arquivo_conteudo FROM tb_arquivos WHERE arquivo_id=$_GET[id]";
   $exComando = $conecta->prepare($consultaSQL); //testar o comando
   $exComando->execute(array());
   foreach($exComando as $resultado)
   {
     $tipo = $resultado['arquivo_tipo'];
     $conteudo = $resultado['arquivo_conteudo'];
     header("Content-Type: $tipo");
     echo $conteudo;
   } 
  }catch(PDOException $erro)
   {
     echo("Errrooooo! foi esse: " . $erro->getMessage());
   } ?>

BD MULTIMEDIA

— phpMyAdmin SQL Dump
— version 4.6.4
https://www.phpmyadmin.net/

— Host: localhost
— Generation Time: 09-Nov-2017 às 15:50
— Versão do servidor: 5.7.16
— PHP Version: 5.6.26

SET SQL_MODE = “NO_AUTO_VALUE_ON_ZERO”;
SET time_zone = “+00:00”;

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;


— Database: `bd_multimedia`

CREATE DATABASE IF NOT EXISTS `bd_multimedia` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `bd_multimedia`;

— ——————————————————–


— Estrutura da tabela `tb_arquivos`

CREATE TABLE `tb_arquivos` (
`arquivo_id` int(11) NOT NULL,
`arquivo_nome` varchar(50) DEFAULT NULL,
`arquivo_titulo` varchar(50) DEFAULT NULL,
`arquivo_conteudo` longblob,
`arquivo_tipo` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


— Extraindo dados da tabela `tb_arquivos`

INSERT INTO `tb_arquivos` (`arquivo_id`, `arquivo_nome`, `arquivo_titulo`, `arquivo_conteudo`, `arquivo_tipo`) VALUES
(7, ‘image_2.png’, ‘Teste de envio com o servidor.’, 0x89504e470d0a1a0a0000000d49484452000001f400000122080200000080d3b7ef0000001974455874536f6674776172650041646f626520496d616765526561647971c9653c0000036669545874584d4c3a636f6d2e61646f62652e786d7000000000003c3f787061636b657420626567696e3d22efbbbf222069643d2257354d304d7043656869487a7265537a4e54637a6b633964223f3e203c783a786d706d65746120786d6c6e733a783d2261646f62653a6e733a6d6574612f2220783a786d70746b3d2241646f626520584d5020436f726520352e332d633031312036362e3134353636312c20323031322f30322f30362d31343a35363a32372020202020202020223e203c7264663a52444620786d6c6e733a7264663d22687474703a2f2f7777772e77332e6f72672f313939392f30322f32322d7264662d73796e7461782d6e7323223e203c7264663a4465736372697074696f6e207264663a61626f75743d222220786d6c6e733a786d704d4d3d22687474703a2f2f6e732e61646f62652e636f6d2f7861702f312e302f6d6d2f2220786d6c6e733a73745265663d22687474703a2f2f6e732e61646f62652e636f6d2f7861702f312e302f73547970652f5265736f75726365526566232220786d6c6e733a786d703d22687474703a2f2f6e732e61646f62652e636f6d2f7861702f312e302f2220786d704d4d3a4f726967696e616c446f63756d656e7449443d22786d702e6469643a43384536303842363146333845343131383044354230303343304336463334332220786d704d4d3a446f63756d656e7449443d22786d702e6469643a32393330393536344136443631314534383345304136463145324638323734302220786d704d4d3a496e7374616e636549443d22786d702e6969643a32393330393536334136443631314534383345304136463145324638323734302220786d703a43726561746f72546f6f6c3d2241646f62652050686f746f73686f7020435336202857696e646f777329223e203c786d704d4d3a4465726976656446726f6d2073745265663a696e7374616e636549443d22786d702e6969643a3242433137344236424334374534313138363346453345334346334245354230222073745265663a646f63756d656e7449443d22786d702e6469643a4338453630384236314633384534313138304435423030334330433646333433222f3e203c2f7264663a4465736372697074696f6e3e203c2f7264663a5244463e203c2f783a786d706d6574613e203c3f787061636b657420656e643d2272223f3ed34ec7c300005cd54944415478daecbd0b5c1bd799f77f9084ee4202098484040261713117d9d8d86013b07149ecda8ebbb935976e922675fbb6ddee2de965db7ffb76b7ed76b7dd4bdbedbedbecb6495aa76993b8b9d86b278e8971b021c626c180b9c8c8082424241048e8021292f8cf688410ba7033c6209eefc7e6337374e6cccc39677ee799e73c3393c0d8ff2802e2976f56e7af78db999919afd7cb1afee95c92fc7b50a500b021a0401500b148f0831266a02a0060c341822a00000000cb1d8837db7c71e37dfe3a545afc313303376720ee40dc09fac2fa9e10a6ee20eef1a8eca16d0c420fe20e6c60595f6021f2b22785fe42023f5ebc19ec581307053d28f420f120eec0fabe7a638878acbf6199892b9c1caae76432d46a1c087ae83221e861e920f19b5adcb9e959c724d397aee9d5508b1b41d9837f4317a26a7a98150fe21e97e21e5476e22f41a4150ffabee9c41d53f627b6f20464945e8ede68017d5fa7ca5e22e4c6d2f450710f5b0e2d075bb58bbfebf3f902eb131350b7f1a1ef41412712b1260eae866600fb7df359eec93481df86a3f3521f047d5fafca7e385f1455d0094824522c899feb1f7ea2ded4031b57dcc3f41d8318bf83121f29f4d001368bb85b1dde294cd911e8fbfa55f64fe7a5475576d22ca1121f5c0d33dba13ee3cc1b13aaef84940705dd37cb4c34a00e378d5b8645a687ac2e5ddfefdf53aa64cdae78bda3e363ef7ebc825141f44c6dd2687defdbd080d120943dcc9f1e947232994c4839b11026ee91120fc49fd91e26ee185eaf37d8f4412f5c50d3c1f9be69c45d207d42cc084b5bbabe4f8d0dfdd3b5518418a505e203e2d463db27ffe5e3f1e50d2d12268f8c46a1f5622b7b98a687293bd90fa1ec41ad0f0a3dd8ecf16dbf07059d58c0641dfb8b353db610cc49e87b58dc14109fe2ce4d1714911c97f5deac4cf1b12d5c5eb4a0094cdf97a3d493d7bbd57456d17d0c3642f826f23cf961319b9788772dcb98f974200e87ba6bbbbc4640f5df28f8a626c6df1aa71f93b0b0d5a2dae222e4d1f476bf3225f96271727aa23faa637aba4fd3f54aff266dcee2f4396f4c2c9b1dfb4ba150b005e26fa8d0074d78b830e258dfc30c76acc5b1058fc713d6ee586268402418eff129eec1d89803450b65f338c6de5aa60dce0e3e2123ce3e96c5b00c0cbcd46b41c9a263cab40777b8ffebdaa8353bf38000f5b4779f1c767393938b589e5e9dee9f26e5dfc8a7f404dc32ec07aaf83c87e1bf5a4c46c49067b378c39b59d94561ae98e042d04ec7343dec6f50f4c3a6588178f5c9040d76af1f42d9b1bf613909418798f73816776e8d3c491023be79ca6139df3ed06a434271325b3fbe0cef39835d2a4bdfc143a343f878b047c2663b2cffd36bb1622be3869775ac6f67a7ec46a3ef851ca0757cfcf2f8c2e730a9ee9f04650f252c368650704a0441e33dd23303421f07ae98489f0ca1ec1e3fc1e11cfb15eb09849786b0dcc1608f6f71b7befdb1815d2ecaa591224df5372e6b094137eac78d4bdb253d25e37b7519f8e6d3539a01ede95e3bb62c48244db926adc14c375d966c6e7a26b660bc962cdd5d52902bb7f7688d0d83766b7879f677fbad4fe489be542b18368f7fa4365cb741b32ea2ec84cd9e989818fcbb80f10ee21e37e21e69b6874649053360dd00fb8bfd4498eda0eff1ec964193a3afb4a027cb3364b479567be7c7da15843fce4ea82e11db7b2d5d1f250b6ae4fcfc7c79be78e40f1fe907c2061f9de6973a46e916e16eb1e0587972fecdae3f0e6eba86ec18c6473dc2788f7c24352c083268b053a9544cdcb18b19fb1b29ee20ebf1e7900915f7e9e9e9e08d5af0a7d030d950cf1e3cb01aa7e28e90309d9b4e9b9f34ed195e3d17c8b0cbaba431b8985213eb5b683c34ad1b0c3a6446dfbe36fab638fb6f8b384a8406a28d3fd76f6aaedfa47e7a7741519a000d6ec6501abfbe27844ea8865adf419f3b0161b38719ef040b3cb00a6c5ce33d28eede59b0c6c5f43d54d9099f4cd02d13ec3ca0ec712beec26cf9535bd878bccaf4d4b08f9a4ef86712693201bab24a2a7a45efd85bc4fd6c9eed0fc484aa84852ca6867959a85bb98974efcc14b6e8f67950222f938a06ddf3b270383c1af24c79366d73b61bf1c191783035d239138c9921c49d10f4a0c48779de41d9e34fdf09e1c65a3938894afc84353d61ce133fc1addb6611f71065b7bffb91fa0a123ceef7bf7b1cb66bab681febfb4fd0b23f2bcbfaabac2cac13da2de63fb41870a1cacbfd86844527a673a7dd7db734efe176fe489b84b137bfe07bf9d37d5d7a4fb6349f41cc07f8a626cca7b1e1611383eb7b42c2917c5198f51d1aec1894f8a0ac877ade436fcce10a8927b74c702a35d21b13160e1b3aba83db7d8392b0c807b205d2af94a6e0a13284b2137e1886e0f1ad8c8fae69e17d03ebee1a9e95e3d274ded1c28ca0871dbb7409f73af697360bb14cf513ea99097b1b01487cdcf8648808f760f8e3f4f4b4db8fcbe522fe1260cbc44f44b6b0d7124095c687e59efcf8565cd93dae89f32dfd57821ef6c9d157ae41d5ad6bae0f5b315bfd586146986726d2780f8578ac091e558d577d27343a68b313067bd4a7d8e0be2dcec53dab243d97e6b398f47f68331ba1aa369cbe1b2cd8f5f999ad92c8a799422367c2de4310fa360210f77812f760dc3ac25fcb1f08660f73c485ddb141ebc7adb8f326ed97da8df5c36ea8a60d4a9bc1fa6745d2e06aac57ba87395bc37cee7085c787d98eb5231100132be4316a8b83c4c7a7b85fbfa9850a8a33a286c087697aa85b06c43d6eda3da8f2914378ac0f2e02712bee407c5fed51bfd41169b3c3d51e1ff67bb07d83cb91dd0000710736aacd1ecb908f7cdf00b865e252dfc386f6853b06b0a121411580e88799f37091c7f1a01eebabe80058ee40fc5cf3b1743ceaad7a7ca840eb88e33b2dc3768f2f6eda914d21fda03cbd2c9515d5548fd5760b2b3e00963bb049adbf8d4b9c293b06763ad849c577ab0120ee0028fbe252187f0db4c04981be83b803000000710545a4b902b510d71677d1aa94d6fe936d4ffe3e3481ca5714efd8f3e0d34fdf97c781ca0680f527ee5005c09211553e1890725bffe56bd75adf7b11fbf7ab07fffbb7dfde714704de76e19bf7bc51f9fe2f8f0aa0ee0100c41db86364dffbc5afcd0aedd7b0ffa3977ff885afbef1c6577e5879fec7fb565fde5ded4def215409f50e002b007ceec0ca11ecf9f68fff4284dcefbd71e10e7cfacad5d1f40ed4310080e50edc0df24af621f4fba65e3d26f573a9b6fecbeffcea572f5ee830bb1162cbcaf63cf8a5e71edf11ee5cf1e77af18dcbad1afc1be96c9962c78e071f7cecbe3dd91c5bfb6fbef937bf6ac2b76efadea7b67d8fc8ffd8cb9f3c5fb2f08677f86cf3158d3b396675ebb1a6b01fb2defa9c803facad7adf045d02007107e2026a448afeddbf7ee45b0d762abff2e8d3791ce4d25f7be7bd9f7ee1c23b4ffff76fbf5612fc10afabfd277ffee4ef35ece27b8f3ebd0f4b75e9db9b2ebff123b3620fa6d154c18ea77f5c52f9ca177edaa078ec1f9fdf470c0bfcec4537bccd9311feee314909d973f5eaf5677b6ebf6ad2fee711e94e2a1a1abc79e8e20491f4f8a74abf9eee79fb7737be0b3d07007107d63336b319fbab900565b5f7375fc194bdf2b93ffdebe3d9b34afefc73b873fec52f7caf38e89bd7bff3d3df6b448ffdf79bcfef08f9f0bacbe6a2e1bfd3c4253bc4887a015b14e4edd8116af32fbce16d21de955242f6b9bc94129910f5acda270c323233ff49dcf90d3d7416604d019f3b703bf4bffbe27b08153fb8273b20b2d7def89506299e7b6e4ed971047b9e7bee41aafbbd9fbcde1b4819d574606a9a27a6cd2b8ec6a12db6c7156fb8f83dc8e7054c34697b65789a969af29de0f3fcacb4fffcccb6eb9f2bbbfeb96d67c409b6b9fc49dff974a93fbdacf1d334578caf1e4c8cd986106ddf8eac28f3c2ac64ac84167f092d8f147c278b8ab6e561ab7fdce1ff355fd188fdf460eebdfe63fbfba365d71f513c0e3d0e007107ee2c2e9bbefd9d9ffcf9677fd481648f3d77541c48eeb8f0861b291eaccc0ecf4fdb51731421c37bedfdc47af68e2354d4fac31fbede6b5bde8e57bce1a22e998cca1434641cfed90d4c8e993b4a097f13f5f99a8c3d6c5fbf46f7f58f4c1a2e336336fbd1fdb2875248a3c323fff0a1ee0262e453a3979a4476fd60d045e3a67cbd921d3696fc65155602ea550d7cfdc3e176c47c68b7ecf14f1c58f5640bf09ddc2ba627797d2e06fd3e21b6969acd462eabe315e87800883b7007c0273703ecbee7d34f7eeff7bd9ccae75efeedf3414ffaa85e83ebaf204a5c3a2dbbb80c21952620c99c7d5ffbd7c714a8e9479fbda7eacfbff9cae5fea54af58a375c847bb77232d0d4b58fedc838d26147d9c20cbf019db6238584ac962f371adfbb39f4e54e47c0778e92ef4b49446ec76fde1f7c63c0f8ddffb5f42f506b170d972749d932e9f3f3deee9556994a4263e6cf5d197d6f60e859ed14a232f66d31f55a118dcdb817b1efe3264e8c4cf47a69d9722aca67c9c8a87f7408ba20b074c0e70e2c9db98798b06545cd8e1d79d98228ee103e3f9afb9b8ae66715ec79fe8fe71fbcfcfa4fbff7abf77efad5f77e4a55dcfbb5e7a3c4d444b0e20d17827f3f26d628f1fe3f2bbb7f7614f97c0eba768b8c1df4c4e464c0617ed365de4d9c5b22958cd0a46bd6949e1c75237eccc2cd5feee437eee43c5423f9dc847736112f19a508af7f4e389be24164f73b56d7fd99f4fbc47ccc54d76bb5fd0cdefdc969f7d2e94968ea4237f44000c41db823843ec4b4006633664d47e8bb1bb922cdf0ec3d9fffe5f9cffb431b7ffe733ca6a6e9fb6ffe32e8e459c07e5fe98631d82ad8c14043c3631d53819168878c9d27e3a35b5eeca093180cac605cdfb312b1d3f2df2a4cbb319566d01e47c8afef540e75c1f27b54ff252dfd7a7aea77bcd3b34978c9ae91e1f277e7dbe39353a3995c7189371b395fef76bfcb72dd9fc179829c88ec8e771cd0030170cb007707812c0f13b9f6fe289121aefe8ed6796135f3a5faf11ffff17ffff15eaabbe9876fb42f7d7f2bde308ce7656c1a725e78bfff1b8d817f97ad48902e781a99ae8df91097f76f95c27bb764fce776ceecd036feeed834a2b21edf9ff16096f0ef3fcdcf5f6c17af3419aeba4925a9c1db1753d3888f962a78ab4a786f56f2bd5b33ff737f163e773a30d1ef46f9a94c6475fec681ae69a646c9f43c361ab58e5d83fe0580b803778bbccaa3546478e3726f84b65f6b780721d1bd25d9b14786fb1e7b1033f07bf5cb7dda75c51b066065ee484168ccf69390db8cff1a9d4264f67dbbd04f9af497eda47cb9e49f77a789c72c3db36e9577ae685f1ff36564a4ff7ff748f678c72fdb17db8bc3f4ddebb689905dfcec5df589612f5f26f9e77b72fe793bbf984d5c8ca60e2bfe0adf21ab591fd07a128dece9d78f43ef02c02d03dc35683b1e7baef88d1ffde29b3f29f9edf3736f131bbdfcd39fbee1a6defbfc4379b1b7755d7bef02a6ff65d9b3d63147a640a8e9c235dbd1fb168c618fd8709938061ff9dd60589abee94669e03154e397df0c8d799f9d3a758cffe07fc77f30973e1851aee9d93fce7b6055dfa3aa9af76cd4c44fdeeffc49c4663f7bf7939fc52e0400d648dc8b0e3f59299eec7de1b58b08553f7c3c8fa16f7af97427d4ebe625fba11fff6bc757fee6f75f38f05ee5d1a3c413aaef5de83023c5d3fffdfdb9b78bb5fffcc00f2f1797041f2af53fc7da61973df6f2e341fdcfdef36031fa51c3b70e3ddbfa5009968f5ff9d8e33bf44bd8100080e589bb68ffa3477239c8d2fbfbd72eda97b88d5ffde79e39771ad5cdf597d4f6651d245646196a8541638320def7f76fbe7ff4959ffed71befbed864c7dffd5273f4ef1effe243f3c259b26bbe58d2ff46fb3b4d2ab3fff11ffc0534cffdc7d71edc13fa7492f8a15ffe81f6f31ffefc9d375e6cc5723c58f6f41237dca038fb55a6377f872da47de673cc6c05742560adc45da1147390c78378e27211fac0b08c2d5dc68e4b9d4e915c2693080bab6b6deab7af2f636bb99447431668abbb4ac9f39f7cf2fcd2b30b763cfee3ff59e8794a4ec943dffeb787162d879377f4dbbf3dfaed7947b2a40d372498b25b3f39832d70b71d92fdcd3f40af03d648dc15723e138d76a95061a158a94006d53276e3b5a9d59d6af5758bdf8ee7f92d2ef9debabd0a010d3f02974daf6a3cddacc3520bf61f2a97f1fca91e974dd7d2452ddf85db64cccae3c72b5dfaa697db3887ab1462e269738fcbd87df6ed66f049027181a3eb7ad80200ac81b8971688981ecc02bf84f88a5d698a22a45aae9784afd8abe0d390c78259e1ecf2daea428177b4f7ca75134da12c9216d71eb6bd7cbab3ac3897471eedaabf6ea0f2b3640c53b7cee216726a6554dcf637799cc682b207c41cafb6b15ee5668b1442af06941d000060e5e25e2117525c7a356e5068cc65bbd2e4a5a873c9d6054d8cdbdd7e5bdba66da9c7b6ab900829c8a23e77f1ba1d21b585f7e811195f56843add1e0fa270a40a91a9e5d207c413796a97b796b0fdd5d89a1c7f7884ca2fc86234b75c3a0bf60db01c581492c3e38bbf93829605562ceeecbd227c362ca8d10809e57bd9d72f2d7162d4ef73c74c6c9745ad33fb53a8147c76d51cd8dee0c2149bc6e42374f1dc4554535e202dac91165658fa5ace7cd03d7f1fea7367a9fb6bcb73732b8fe496dbf4dd8437070096c20fcbd3bfdd32bc21f4fdc6b3475985a58bceac62ca8e9d14b42cb0527117954b05c835aad15a3c84252e904905694a36bab4c4ddccdadd41dc1ebf9ab311c2b55b4423fbb51e5bb4ab9b4fab9bd9a2a2ca9a7259aeb2bcbbfb83b0b2ccdd1fbcd6fd015fb1776f45a1b8a0acb45907f63bb034ca5259ef7e5abe6e0f2fe5d9b9658f6be8ead5b66f7dfb070d3f6caea9aef8f6dffd55d9f61268416095c55d8e87c938b5d7cf7d302bd0fe004769b908add4e3ddacd22b0462d9a1fd96d601242f97e0e1d09a4e844af71fe6dbd50366b7d78959f31cafd786bf9ec983787c59b97cd24525dbd3e40aaf5e65b07b6d936eec0ec0eb8546bcb3cccccc242424403dac3d3b772a1b2e36132a5fb1f7d398c4fff217ff28120997d576508d20ee0ba050f09998b6ab424cef4e8db94c2c162b152b9eceec3c5dcf395c5590bbab36d71f2dd3d14884b133f9b25c712e61ba8c7635e1f1f42dad6a595d9e58592b46a35df5164e5ade2e69219ec365d3b63640f03be87bdcdf7094e136fbf7ffefd7bff217df5ababe83b26f7212727272a016e2b369fd72fcc52f7e91e287ea87e6871e02b64afc44642393c92412292104a8c93bca030f3d8399e79855fe77dffacbbafb3e3b3d854f2125d225c1059773d0e7f331d832eb98aaa5e5e31ffee3cf4ebefeebe58ecd41b0a2bc5eafc78fdb8fcbe59a0ac1e587f889c8466c82fd254a80268b2bb70c10df5679980a80cdbe9660ca3ed0df8a2d3cf9d457838984b2e337a77e65f7fa9d8f98ce96966ec5f2afb87d239b18c41ac41d882b110f4b0c9a75a1820e97fdda5053bd1bab6ab14878eeddd7a80c6968b5fbfc78fd8c1a6f1076f4721539d8c4a11b86b6f8021d0300710736a4d6875de1c1db7642d941dfd7866f7df32f319bfde5177f211209bffedc5782751eaaec98a6077d292b13f7601307bd2b61ed0e6d0de20ec483fd1e29e841304dc7fe22bfcb1e1c326bc03665d1fd47effbc217fff69db77e7be4701d51f94165c7fe862afbed58ee41650f6dee48131e541ec41dd878de9848632d54dc83663b91874422a1d95959e08ef2e8678ffddbcf5e6869f964c78ed2a0ec46daec186dd76f281439de65c6ff12ed1eaaeca10b61a0c5a661001077607d796062996f985290c964622154d9894d40dcd786af7df5997ff8c1bffce9e48b91ca1e14776ca1f1d2954f1da85a99b887357ad842b05784f516681a10776003e87b98b27b4320c21fb19c84d007a32141dfd78663f7dffbf3fff89f8faeb42a4bb7467a638212ffcea973bffa7fffbc2c718f1cd7bdd188d477507610776063c87aa80726d45e23542368b313ca1e2aeec01a8055f597bff4e48f7ffcb3975ffa05d12284be872a7be78d5e3a9da6d892333d3dbdb26e10d6e844e191e67ca4a306007107d697ac07251bcdced18599ed984c04453c54d9c1e1bef61c3ab8ff97ffefc52b573e2e2cdc12a6ec04575a3eaea9deed76bb57d619827d2054dc31b03e1069bc13f3bae09f017107368cf11eeacf25449c3003899fc87e429f4d057d5f4b9e7dfad133efbe9f93230dfa6482fe196ce1ecd90ffee5a7ff7705e21e36911e1c2d82ca1e3a908459eed02820eec07ad7f7a0c986097ad01513b4d9896b1ede3d70773970a0ea91c7bef4f4938f447588630bb22c89cbe55a95011efb4b28fbb49fd0bb84a0091f3636400381b803ebd76c270853760a85423864c2c49d2801247e2dc9100b6bf6ff59d49fcaca4a56a0ec914fa506c53d68bc075d3491f1ef10020fe20eac6b6527b49b30db236d76c22113f4b687396440dcd7921ffcfd3716f8756a6aea76c41d4504447a42083a82b005089b0171073692be63324d04b3071f740cda71b1cc76205e3b43d0780f7d540a941dc41dd8789774f0e9d3b04462123568b3072d77205e3b4364d014e1a90b9dbc85a79940dc810d7031072fe9d0744cd089275183cfa646f5c900f1da1982121f3a611b34e7232d77d0f74d2eeec9455545a8b3b1737c89e9c0da5dcfc81fe61c4c0ffad9098b1e826436d56d5cd4c79543b51e9e63da74e29e5a525dca19f9e872977d550682b2d4a99bcd5707827344593b0fa499ce5f1d8066b933121fd4f7e0db6382b21ef5915450f9f8eb00a1121ff6be81a8af8a04b37d73883b292393ef9974a7e6a4a2f691d5d8f9b48f99539c650c9177e00e5fd528e4ed8084a0077df160b66f36e31d45bc74282a5063f12feed41c49d284a6d92aa9c8cc208d0c05eef0494959db4a7392f0723ce3461bf677e1f4509c9a1e97ac30babcd33394658a642a2e464e43e7d51eb34f58529d8f7a2eb61b67cd7e67f7c556fc30a88a8a7bb8fa0fae0ef8a03d17d477c2540f127c3f013c92ba09fb43ac4f7644cea382bec7bdb8b3738574b36a68ca8c26aa2539d4a13eff53d0a945db722843572ef6397d2466eece5d0244d8f4b1d2e70b38c7ddda63ae8a22efecfc3205cde8df9c2252ee29d966c374dc6c2f9425b391d18ed822ae6fd29d942e4243438824e2b21c5603287bac2b39f29b4aa12a1fe984017ddf2423fd02b63c820797363ea4256b7b66321ab98529b46f68d04c17e6b2fda9c9422e69428749b0dfc2eed34d04de451a2b3d029fb1b3c7cccc29cda287a62667a6526737f718b4660f9b9f8a9061d4ce481653fdc742b10d9add6cbe10cb2012b027c7f56e68cb255a6a61d36861af8b5a01d6f6df7ff7bb1f0efa97073ffcee777fdf6ef5ad1113372f5cd5af6e91c60fdf570f2e94ee7198c71cb1b61e567fb7cdb8c23ddfceb6cb27561f58f4f3aa40bc59eea939a90c46e2ee03e2c0fa64261b75d9511283e69974cef9595c01e74bacf418f22eac2a2ccd325e991b495834325b515d9d1b4cb16207ea33581d5bb842ecd764ca789f56e7ce2c130a913b99e9b1deb243532eaeef61267ca851bf646bdda3a9ffc5ef9ad0fecffff59e8cd916f4cde07ffc6f19c7e76b6702cb21782dfd3dc3b49c7c31035f9bb669d5fd0ece96fc0c46e077b77568503fe69cc60a4aa0f1a43999bc44841cda6e2d292b3f8319fb68b05d47ee2c8ca18eeedf8c06ee49e449cceaad920c3a69f94506d32d1dd747e8659cadcce85ba3450f28f69ed16235175975be49f3c0a0dee6c26b2e91999a959b8e1dd7f4689f6a82afc8494e5ca6150f818f9b4fdcf1a9d429cd8717fb02f671725155897f5a7562d245225183f9a82412f2bb4762a52f2cefb37e7c6477b8a65d2ac2bd1e825b3f3e294ace9270306d376299c63d6542a99b43b2f6418ce5ca243eecb5c08b3375f37a132b2707b574f7ef146511bdc7374348132eecfe169cf18505d53b86869c9ccc2c1a9eec1a55ab4d1e32d621e642ef5de316af20a730293101cd3874aa5b1a134b2e2033d2d3127b07f5298a745accae331319c11f25cffeadf915027c64b2dcea7ff963dd93bb25bcd8958466228e7f5e7ad2b63d49f3c34ae755315af48062374fe4b6a13517b5ea2646adcc8cfc2c261993f4b1fedefe41568184454e11278ddcd259b85949cb70d480ac6f4671f74fa5ea3e99f37c8c6bcc9e9dfe6955a31515c97299237edf7a56263f91f0ad8fc7488f2def9da97b4a84c84b78dec70d665f99a228d5dc398299fc246a12933461c77eb28f587df912be5fdbb13583d557244ba5390747a02157e0758db4e517d7f60155bbb0e4997de8f4afdbd515990afaac2af9b5cf7f271f10a9d042ad231652722ed39f68379ac9e22d62877a00cd45625005928cd92363f298149dcb3d334347245e0a73486fb20b25acd87a88160fe808ba19c8dcece4e2c171e3e40cd7a77fe3ea74657556e0567474e04746f6df6de5fb8bf45af4b73ebce5f6fa1099c7f95481984f0948afff089d5d57f5686b6e211379c6b4ef763bcd24e4f0a04c51fa7db95c0abe9b29757b6fe3c4cc940f0985c2c30a9eff1a9bb11a3467fbdc2e129aa2328f6d930afda99e097dc30d9b1a213aa2560951c4c984d65cf4aae388b338819aa3f092e84356ace630db9d96ca25f79a463d1c3e192d5bdf81cd23eeec5c217342336fc6d2de6774dee39f56edfce4d6b6d25dd552bca78ef7196c32a2c49118e931e5dddcd535b2675bfaece8d175f546516961d58144bc6f7a27873b2f77e2ba6f1e7752d393263484493f3e348ed2d31d46984c5d0da15f0256d5c7ed393bbf9c968676e6bcdf7eab664b018bd0f3a02c852ecf3261b19158022a91c6926cc1b699b2a358aaecb2397d0c118df88dc3654e1bad53334cda42b2bdf049cc1f00fc1a9f1038d8d0e72f67d7b07f2ed564c623956cac575afb6ffdb6cbf47f8a532928987f6636f3f8d58ee9824a458e3f226cca8dc8c4efa30efb76f99fb34998d9dd7d5577d5ccdd9d829065f02d6de2fd95322e6966caa879b17df8e96d42ba6fa4f11347daf6dc5a2cb3cfded13a84980bd4dce25567b5b968acc04840e1b2134d13b699142ef47210f7d8d8bb2e5f084f73f75d39df4774c081d6c690c78eb4b36a1d237dcefaef6c6c9c2fef9d8de73be76c4443e7154314076aeb85a17965846c02dc618caaabb714158771b9c82ccc39dd7ecb5a50bcb87678a73d33b424e6d276e1d40f8c51445bd8b3eb342ad5edc28675da6a1cbfcf31d83dd691ccdd4b8d1a993b77a7ba2d8b380012372ba9e092d38490384a365a0acbddd13f2e94f358240a3de8844c4e2a60133e7d169789ba1c4e94c2341a26d32498b2e3374b74615241ef84c98732c79ccd1cce5f139949ec2d120a1a5b79cd792cfdfa296e56e6ac9b9dc6484436a70b7169d07141dc0160616d1fec302598defec58fdf265c3ac8a13216ef14e2862ceedd0958c0090968be55e99e9a9eb5e8e759dc28c2f6740ef7699d4959b93ccabc5b8b99dbbb31c30a68b8d1d38090884a11f253bea0e053823f84644b98db25891c9c7025915933d31627123351f08867b7622ab64959ba91f72f9b5c3cce81bc743ed52fde24322564d7fedc4eab73e6d6d8c02b9ad91f1229996e64774e2750d9c130317a22256c523b5acd45afba69cbc02d2349942366869e373ef901dd16c41d0016b10c07ba9a4d5b6a1fde914678715dfa8ffed43168dc29142eb22199bca4401ca74135e84cc9ce15dc014bb33a30a11afbe43ca1312a1e971b33df097d9db6a2c4cc58c633899991999591e9b5eb075ebb3efcf04e313b7a3e26978114193907d2e75f6ecc4464c55fbe4c89720ccba8b9e9718d7a84929123e12442370542ba275401b014a606bbaf3895db8a73b202288a8bb7989abb063c8b6d4965d2125c4ee7c2fe9221d5a02b552e8f5076d7f474229d7907ce874917a369abff490ae4b3a986429f9398fe446723fc22169d5d95c25c74f862b313171e92f8e98c21f5d0909b30a4bd9e297f6c700a73d798adcbee8d760c4bac39e41eeb578fd0321511caee9a72231a8b013d172c77005858dbbbda90f26171c8b366eccc822dce773a6e55d42cb26d5212737064c28562cd8aa249836edced4143bd9db3f32989c9f23c3c927bc2eaa0b052ef88d73865db56fbbbadaa4b94041aa25665b3a4e6e08925eda68efef1b2dee343141ee7f182d41817c9f827cda6769440f1cd3828d4bd05e9ec052eb314e9235b74e7afaa7e878b7a42766acafd85a914526ad5b6e9868ebe17f039056a959cbd6564993587c687f40e0f72dcea0c1e3d2ba3283b1913fd71db342385033d77139390939303b510c73cf9e49377ff201cba1e2d92e6c78c688c8177bcbf7784215f20ceddd17ff9266b8f322d6e9b6f85358726877afb3da2c2a5c4b903e096018095c212a5d3277486c9650a9bc1e8e64ad2695073cbadb9e951bd952a1283b26f6ec02d03ac01649eac90b76c6193e4e741cdada4e61205f24201f43a107700d8b8866df61e25d402004403dc3200000020ee00000000883b00000000e20e00000080b80300000020ee00000020ee000000c00606e2dc81c5712ef2f62ae08ec06486bf32cde7f34d4e4eba5caef5f9eda48484041a8dc662b1a08f81b8af147a6a06c736343205edb79642b3e48f6803b70ba6dd51c50e4b2493c9e9e9e9ebb32db0c3b65aad0e876365fa0e7decae893b2539b7283f2399457cf96eda61ec6aee8af5f152e9ce2a6e5f63e71dfa6e353b33b720596f1c59fc75b3c06a41f203f5b036c4fac4b6dbed4e4b4bf37abdebf6c8391c8ec9645a99b8431fbb3be24eca50ee29e03a359d97af98dd3e44a1a726b3ac310b15f199e80e0aaf5dd57c1e9a6ecdc51db319a11eeeba69bcce3f667d3b47087decae887b6a51aec03d78e96a5fc013e2991a093845d8d2b2d2dc242afed9189f4dd779b5c72c2ca9c8172492bdcaea6a9fdbd8dedc334ecf50962992f14fdbf89c063c0b669690f8f93b0b857412d6a28958837a5d56ed2757fbec24bea2ac30838b1d16d9e730f57dd23e84ef26b9a82ad7d6654b2f9270121d831f36bb4a0fa499ce5ff57fa2355ae181341f2227a24953cf957603d8f8000080b847909cca4d741835d17cdc4eaba6e7f2386ecdd315157bf315bacb3ded8dd49d073227db026e19767e998266bc72b1cfe9a388947b4ab6d92eb60e3115f922cfad8b17877c88242ca9ca473d98b223aab4ac4438ddd37cde308548ccdc9dbb76163a1bbbfca57073f25d3d573f30f8bf9d9335e7a189567846710163e4d2051576bc24fc2395a0ec00006cbabbed2567f37f583212df84d94c7c3d6c6ac4e62251223ee3989c994a9dd0f5f945d963d09a3d6c7e2a42892492cf4bf8157d6e9f8f94e8ff64a5309deb1ee933f807119fb34f6326f133f84431de094d27a1ec8b176e77b858c27c29fec1629fdbee744333afd61d375402d4339c7b9cb965703f0aaef011d33cfe595611d7ffdd771229d11339c3ca66d1c86c4575756e30c58aedd4d8d335525152bd4fe1f321df94b9e73afe81b5642e1db94df660464cf5690c3642f827c43c2e679439a618857735b74af3730bf7e4929c23aa8e2e83133e020f0000887b24e323d669b138973ea00af3cc64942a33bc3d972ffa7ddafca2aac2c86d31337adaa5bad86e0c4ba73328ce5bcd5706424a1cb74e212eaee6017da79248ae49fb420716ab70cfb8b6f3aa161b7af2772acb0aa7ee58dc0e0000c0fa64896e991195c64acfdc599291e4b7d11189ca4c6252b1b18144f6b81db85d4c6266e504bf643ce59a2651e844d9e306b32f4d5114f8ca30899ac4f67f6499cb65fa26c33d2643fa71aa302fc39f81c4cc95f17de343e605479de8850735de6a9d04a37d9d616c7ae14caf3f86dbd97be68526e31ddb91c7a2d55a60be65a538fa1b1afa1d1ba223852e2e253b58eef3981a68bde22e2cce2dbba7c01fabe4f5da86ae5e51696fe9d28bcaf7eff37a7163d9e81011826ed41a64255bf7efcb7718db9abbbaaede282a2dac3a4004c84f0e775eee9c4236b38d545cbaff0051fc341168e31bfaa495b2adb4629f024bf34d99fb5abb1631b9c7a3159ea1dca748463e1f22917cce11550f98ed77eef27abb737685ca15490bcb2a8ac5cc55df8fa5ebe46bdad227efcda52d9aaf8bff40a5905833f79e6b623ef0088fb7199bc6d6f7fe7983e26055163d3ece67a95de0f6cc016de33967d9a13c667cd4d9d21f62c2030daf18c253cd3d572ef6ccadf6cd6aaeeaca45d5dcc810b1a5485995ebeb6c383f42185678a04d8eb4c73c807c1303ad8d031112ded9d818ba3e70f5fc40ecc2d150db852150deb54152fd44e062f0d8b4cd674e373256ff021cd5b491d3989d6a5b6e2167a17cce51ad19f183abc25dcf3cb23e2beda5975e1a1898ebe55959594f3df5d4aaee61ac5fc54ce3a874b6ac5c4e3c74b3a57681dbc3acd7225ed9a6b3dc57196a22d963b5cdde325338748a771a825a367857e248155274da6c41b942dce372c25c767cd688c66dfc56fe130bd844b6de3327d5f2070ee5455cbb1e7d77ab507958d456af1e2d54ce7df7d9a96f6b6c6c1bb0bab17b86a2da630a5bfdc55603f25a4e1a28885f76b046660bdd673037992129abad5106ee2fb0e352cb1e15abeb1b55a649c4485354d556c9fc8760d334fa13bd58f159653535c5c2d51bb26a6a6a5e7ef9e5d0d5d56d0aafbe4f27293820e83bdf3f965b921274b3f4246ea5f55dd1d89117b1b377ee2e11d217489f1d26da4fb773f6d564b382abadccea4faded9011ab0b2c86cbd8517fae4587352cd6e6c54cf65c81364d4bd31595bff3a41554d454e4f1dcdaa6fa2695dd4e3e7b12bb1955ec7da058e8ef350df5adba49ef6c2e5c2f3da31df5f5adf8b664469abcaab646b64ec7cfbb24eedade9b82e28a7d193e9f8f4422f9a6c635aded06d0c70d8dc7a9576bb965b5c215f810340d67da78071fc88b7295b8341d2a45718590e3649ed28d2a05814b7bb4edd459bdf28127eec5ae378fd3856834e9a183647c4409ba656c21865fdba9465be591a7eec524dda56f7aebada6aa872bc544e7ef3ed7c43b7cf073559876dbbacebcdaa279b25646b375d53791cb1f7e464cc34fcce6a6aeeacd884c26c3ac75c278c716b0d5556d89299ddaaa50a65039b992b63efdd672f1ec539f83edbaca03878ba8789696f38d7db3221d2b1d27253b7ffa23832d9b4819d30d721507d658cc627481c570f6d69fd6ca1f7ee610c7dfe8a7cf4e32f6ceca1e95a7a87ca0f25eac07b8b48d279ad4d24379d2ca23350833070e064d10bcd738abb00268c88509fac98bb4276a65647df3db5ae9c34fddcbf10f1236f7fabd33ba4b6f72c0bd2f972f5cb870f1e245fc6f73dbc0044c7c6e4874174fbc40f09b936dcc9a23cbb0ab66070563d3997aa7f250a5309aa5e1d2aa750a791a0571e445fcd66ebd2768ca71f6d6109614a2306994c50c3f8eb24c4a5cb3347179a5b4b35be79afd59a12c1410dacd91c9256abd05b77dd1dceb5b284c0e73d58da0a0b5beea663b9a320e228584e317668555ad9b8b4763e6e60afd0f9420ba2437d3a51b752c9c4e548a4441efe91ff32f8f0cf427678bd6d88d1fbd0b2c8a45d36928280bd80b347159992ce48d3c349e8043b4298d9f26d2996d510a30aa5ac595e5627fd7a009e40a915a6bf284750d0e671dfbe7e195bfc06d31e773c7ac9baefad7ce4475ad2c7009b69e3bad13d43e19631b9bba535750815b588826954b3ee8d0948b7369c86db379798aa55e57e1b929fc345cc36b657e135fc48fb26b9ea25679f1d4abbfe32bcacb8ae542ceaa5f2784f14e2cac6ec9369d6a74d47ef6cd8f03eb02e35456605a95963867ccd138ec718b1321d602e92820f8f2b4b681919294147dffa028bb84bab63d2c4617587c4cb098439b96c660845af5fa8ee656d5a8135128c86941f26886bfc5e2edeefc4d77686797bb11455a76507beee44b2a6959599942caa3addf6b13c41d582d6882c232c5a57af5685ea4f91ef33586369ef27e79dbe916ed1355d2c8ce38aa6e3379ed6fbfd0395790c699bb16d10c145e61ede71436a3baa3e5e4256fd9fd878b05ab7dadacbecdee779cf4abb8bb8e7e6ad615e3e86f680a4eabda6daea06abb6cf6645ea02263a507200b25a2abfdfa82699d2133bb7c8ddfec7507ba804b53ff6a57dafd750ff86fd8fcd343317216dd3f376d3477ff23ad3cf6549945ab6aad3fd1c4af3d52235ba7d63b883bb08ac4d2708bc58042e2584290cac502216faffab5737d0f1fca6546b853987b1f7d2c1820e1d137bedca2b1e51532981ca4c6ec4be1922e2b268f470ecded319b7412d1129495c211e6551e91a5bdf7b2ca5c2c10ae7265adbacd8e0253a9b9257302cc1265d383d3aad383fdc6fc14dc033335d0dd4f93ec0f087aacf4a0ba8b73b3dbba5b5de3d95bcbd7b643c5ee028bde1dd2787c03ee6e996d7477b0735af46a91bc22e08a43ce494bd4eda91c0eb9d36c41425ef4d2a5c5b55251dbef5bb44ed93a8d9d84b72703ab856bb4abad9b5b281104f454abd6137e6da7a6a3c3b2a0fae65655a04b0dbdf33d9f1e935a252992875cc514714199b34d3d8a282245a9adb5b98f7846c9e3b439f105328d860d2351dca7424599adb555433cc1e2d2b734a90a8a976c6eb92cf6492e87b6219a604aa736492429a149b853a5bf4fef5736ae2c65a4e9cc9933a7df3edfcfd95d159c358d953e474ab6c269722ab253d658db63778145e1490bf8ddad813ee51aedee50914364df647605fa6c6bdb64701063b22de6d9e7def03d799a9bba46894eec71d92c364fb8e7c6ec66d2d6ed4b8ac172076e0b7c42f562c0d4e166290fcecea80acbef2facaf7ff505ab1b8f24acada930b52e540c27afaa427db2b1573ce7b00fc448cc5755815cc97cad5b5f5425de75a4a6adf1bd131ff843210b6a8f553129344959b5fad46bd8f164ed7ff4dedcd0cd94c76a3b1a4ebd74ce1f0a5950f370341fd0bc5b8dae53efb518b0b2f1703745c5a1aa8df124143dabea70781a595c7ebf1877d060a61c2bada828bb28d2c48b96ceca0e731bb1e5a2b58e0c59b00b2c26aa9cc2ba83ee86b77e7d118f712da8d9bb57d412907d4575f9b9b3275e084438d695993581a20b6a6467cffde60537b5fcfea79442acd71ca65ebaf4ea25939be8dd35354a8e57db78ba41659ef4fa93f090db753bee27e4e4e48042c5314f3ef9e4ed17e2743a9392924824127c056d0d989999f1f97c13131391df50359bcd6969692b2bd6d1df7015ed0c06ac2f9a1e8adbd87abe4fb87f8f64298132269389cfe7431f03cb1d008075cc48fb99abfdd389d995d5123ad406883b0000eb8d0837cb22e901524b0e1d2a81dadb88c0842a000000883b00000000e20e00c0eae2f3f9e0f00010776035813086bb5ecf140ac56ab5ae5b01c50e0c3b3cec20a18fad0760421558121313135009771d0683e1743a474747d7ed1162cace98f71617e86320eec03a2632e01ab82b50a9f85bbbbc5eefccccccfabce72093c9c441421fdb10e29e5c5455961efe1896f5e6f9ab03507f007037f41d005645dcc73b1bcffbdfc996b5f340e6646b63277c9314000060e38b7b6cd8d2b2d2dc24cc9220937d814f5c2344cf5096e572b18249898964ec167272a4f372972f7f67918849c272229f6da8fd8a0a06888d82db0d1f400480cd26ee4eaba6e7f2b8d9edf37fe23a5fa1bbdc63cfd8aa608d5fbdd86527be7b9d3c72b57324b9b04ae8525dbc62c0b49fc26653ec50f11b04c2b7cbe170a02a006063717ba190be0933aeec1853233617899288974822fb3cc4ab31dd2e0fa25030c3de619b2225672a846c6c2cf1d8ed5350ef000000ebd772a724e716e58bb854925fd3133d2378a2b6a33b6dd7de7da2691f2ee4373b54b899ae6dbd3295abc82dab2af44d683baff78d7ba0ea010000d6a7b867942a33bc3d972f1a70a5e6175515068ae4d07dc3ed973bcda14f5af89c23aab6111589292a292bdb36fdc1d50178900d0000e08e713b6e190a89ec713b70912631b3725267832593390cf79435ba76fb9ce34e30da370a337ea01e0060b359eeda5bbaf4a2f2fdfbbc5ee419d71a1d22ff48411ab7da7265350764fe3c5ed7a8ea6a9b5356a114d17d3e442221f7c4cd0e2d98ed0000007792d5fe12135b51b13379e4cad53ea75fbf49226555aea71d42e3ef1ab7f32526c272f7783c102d03001b8ed57e71582295e27339a602963989cea2913cee69a8670000803565b5df2d33ded7672e5554ef53f87d3024b7ddd8f3890ac2da01000036b6b8a32943e71503d4eb26e3d6ad5bcbca0f9f6507800d27eec026253d3d1dbb55239663c5d8242424f87cbee1e161a82e00b8d3c0c73a80d5814c26539600966d5577ebb168b59668d1b5cede332f3419a15d00b0dc01e076c51d63e12fe9ac346a1e13ea13177511c945f71faf44bde79a980f3cc2e3613aaf6d3ce72c3b9407ef0507001077603559f41b692bfd881a33efd0f13cff92b1e98556fe13a102beeb9947024b66bd16f1caa0190000c41dd8f804d45e6a6eaa6f52d9ede4b3273b1152ec7da0785e64bec7d2dbdcd0dc6d72931992b2da1aa518ac7b00c41d009604f1c4d3a26e993bf43e03a6b4f2480dc274fee0ac55ef9cfbd1a5b9f8965af2c0535598e03b358d6f9d6aab7b4429802603e21b985005e21da7a6cb525e994798f24c99426e579b2c502d0058ee00b0b1b19975e6ced75eb8149254e4826a0140dc0160c323a97e02a268804d06b865807887c94bd399ccf0a66900c41d0036246426db628ef2401347ae94ab9a9ab536e2278fd36203af0c10ff805b068817040535b2b3e77ef3829b5a7eff53ca9050489aacf6617253e35b2f9f9df42232234d56515bcba1418501f14d02bcc229be599bf7b9dfba754b2a95522894454321b1d2b45a2df43a00b8e396fbe4e424d402b00a66c2d29e3e5de943aa00002c53dca10a8055617070102a010040dc81b802dc2c00b0de806819000000107700000000c41d00000000710700000040dc01000080d517775aba5c9e4c852a040000587fac341492965ebc2d974b41c9a41bed37c7dd5091000000f160b9739239fe71812edc5ab205ec77000080f8b0dc27dd98b54e47b3fa8eeea6fdce293e78b85cca212364539f7bb55e133d57cdc3c76593cd2f9dea409c82dabd42edd90615343f000020eef3615043adf5a5eb3b26b10adeec8ad76dd1f7369f6dd62e6fdfe5c79e91597efd5a436055beb7544ad6d6bf7a4e8d381cdb12b697e44aa55cb21ca9d4d0fe4bc36ab5422500c02610776a5a712e3fcca1b3747d771bfcf633e22baa2acb15c5d507cd27ce2ec388e61408d96414f20d4c2987e9b61ad4b8acdb96a2eda8fbd44bddd0f2cb81cd66432500409c8a3b8dc3410e9bcb47e1480ab7ca92a26d87e97bd174ebc79a25be66d2ac6a3c45e33d55c11123848bbbb4e2c8de3c1107bf23f0da0c5d974e11167df191a7ca506baba708f7bcb81d3644c7b3c89f79468e9c7aad5d281561abbc8ae3c72b88518353507b70978c4725e3e388457de56c7d7798e463255630342f10a67f8cbd0200006c02719f8d8d59188f55d5a959de0b84196472604971b0ba986fefa83fddac46e2f29a3a65ed11fbc9531d7e5da6f2cbca9cdac693afaacc416d9e73cbcc39d371bbbea2ae5246d6369d3cd76de62b6a6babaa0ed7da5fad8f25d80bed15000060e3b29468196a9a42164bd9dde37d9f345dc268ba7af5e30ed332e654396245d5b1c2346431e166bbb250ccb468ea9b71ef8a4ddf72aacb4416298a66f3926dbd67ebfdcabe08e27219df6beac494dd7f6b507f496be3888ae4b1b22fbc57000080b8b6dcdda68e1b4ce556099b1269aab7dd0808bacfe55aa2b25345b80f0511f3a91d0d979af5d8328f4a764f9ae72ce6168b4d29131423e4b7c76de6e6a519d37c260d390d1dc175bdc1ee9671a408459f3b5d78af000000712deeb8ba6ada6e246c2fce60865afad65bcb32d583638561d68702000000dc1996fa1013899bc667cecf3ce574acde719827dd54067fee4b9de53c0e72da963d04686c4ec4e41407d7c52236d53d69bcc37b050000d890e24ee2cab7178bf04796a6c647ec9e402a9db38a4fa676f41a9d3c595d859c837be3cb8f14a62193a6356a56a7c7830b78d44f36db5ab566b2a8a8ae808ff058cbdabd528e4ddfd6bd0a7b050000d8482cee96095176c3f56b6a1be2b8fcfe778f556f5ac567525567cf320fd6296b1f2dae45c8eb34759f7bab25ba9f5d7d5d55b85f59f1e8f10aa7b6f1c4d9f9ca6d6b3ed740a9abaa7ce07815c2432135cda7cf695763af0000001b89049148b4d0efd4b4e2ed0a3c5426a0ec041c999ca1579be07d61eb9f2f7de94b2bde76c68fc7e3613299509300104f963b4356842bbbc7aebbd1a609b1686d1a35d8b7c01c030303cbca9f959505950600774ddc29e22d12a6c7aae9b8a173f8a0aa8005494f4f27914841933ffa7d624282cfe71b1e1e86ea0280bb29eee4c9e18eab26ab0b6a09581cb29f45c5ddebf56e8cf3f18ed47f681c10657c3e3f39f2474b5fcf8b03e4237bb7e4d2a0e5975d7bc0dd1777d7b809841d5896b863f2bd409e58a2bf188e1bcdfd6f3a23925385df2949bd632794402721ca6c3499c770f3c723bce0ee28943bfb854a5d7be74b23cca76a73244bdd62e472bdf1c2fc0a992bc4a53f73694c972afc7c492a71c17bccb77edbe64ccf931f923042aa59fbda47d6e03bfc52a889a559696599c9f4dbae3d60dd893b002cef825e50d997922106d42c85e0093c04d7a356599a11fd21051bb798e977f25d9564c19e6ac19ec08a6f78649e9dc396e5ffb56ce3340c4d7c8f7ce2bfd5a62b66de1e7e224263ad9d4e2b9bf770a8b2cf9299cabb4788c9c28cc368fde0e6508bc1fef42e29efb66a0f00710780e824b2f9e97e2177386e5930adca10a6b3438cfa1ba2ac3a8af1cccda95b9c94e776889179f0629f4d659fb162e6279379a844266391889cbd2271b9d3f48ec13386500e9f5bb7552a48c49d0896c1fe33eaa95b3ecc1e4f5070b8753b24bc395b98ad69d7bc39826533fea0de8898dcbfaa90224dcfbfabd16776e76f6561e94e5d97f69c715aef4329747a7551e6562e35684da3c20c9e71f803b3d78a120a4569870a537143d835dada666c228e909a585698b98bcf8875f2766c5f46d6b3324f5397a3cb87b854fafe92e02e960a5b263d64ec7fbdc7b0758f04f599def7501e2a92441d1be949c932217e564828ca33dcfc4597f59c26e561993f657afcc60de25c426bcf35dca33963c04f9f454a900b85758502fabc3b099ba67de8cc085ee7b3e0f713bcd5382f00c41db8e31071938bba6556ea99598821adee4f9e848c0c6e29978d4b2795c4e6263f5498cc4396cb1f9b4fb40f61724c0859975a6f4f4eaa2ba222abed43adf51d351b770adb86b08181224affaa9ce1b18ca96d617704344941fa7edbd02916ffb9021e2251b05dd8e77e9d1eeeec7fc948dab745b09f36631d1a7bf39adab323af941b70495ce81a5288528e14915c23e3670cc60f92d88724144df7f0d929da433bc45924d780c14aa632163943bbf555156d7fbe603b7277a926de6cd30bab6582e555122baf88abf8c87aae5d4319f128b2b2f2584b500711bf52a57fdf386e97b1d8c8d1fbf1d0390ff333e522816ffc4adbd8efae93ffcf0e31c5a87d75c853b845fab030c16eb40c90a8616e9cd19ec1132394872a0bf2a86ecd8d5b27c699cf5667a71375b80ae70580b803f18bc34d3ab2376f6e6e9323d9934f2c31ca32accd03d398b51fd06b0aab6e7b663a6e96b25c23036f5a1d7694cc767b8c086550a93c1a0b4b1708c38a275112a9b8fb1893755a840abb463e36ce6466a4efc9f4cf1c0a12461b463f183097067ddf6cded14231ae7742b2ce686cb7380e49182edcc79340a333e834561e2765291eafca4279a9ff03393c47cfc70353e64924602cb39a581975598eff187062371f5fcde52cd1a1c3c62c69bb1bafc071d3453b2ac76e8338d86130aa158ee6ae89814971c6a4c781d52b8dcea6d1d89949e9e12538cdd619c4646630c87868b59086465c66074a67adde790120ee40dcc264a68744ad78acba2b3db65ea7571f08e00db9d367d166ddc7247c46d4e7bf8de0a71e491efcc3c0e0bf6929e5f2b4b28c143a79c9bbb64ff5225492cc0dac9239e9ccd166c7947d763849e33083962cb6e0c0f7c892e7b272da1c272e75e570d99505193256e2a2d7299f1db815a0f82f59cf4a62935da316ffbb439c539669c44b5cdec676abcb8490a9bdeb42c8516187c1ce48fbd490fefdce9b5d2a5aa522bd54c899af294c3e37010d398726bd790c8fc6e84214269fb5bae70580b8039bc28cd7fee99ad5c2e51edd2d4c6750ed7ee7f81cd4c468b11f9cdced05cfd98c377a2d1fded4b7181c2b99428c018f498b26d5d98fd538745a6353bffdc447aa7d255bf6a42eec6b4ea42f1273b9f84cb5c7a03b654df85411dfde33fae60dc35f28454bb8f85d7637364c51676b837c70bb6c2b33e49e063faa945d7bb85b47f4d7fbac673b07ae1b857f3e1b934320c8977ec63af87a13fe9e901426f3b3c49dd352cf0b583910ac04c417ce6915425bb3a498b223341db055977021d039a2b21d795f90273aec8ea1a5bfef944dcf4368687cf603e25edbb013b1584b88e321b324b29c87ef49df4799b960b8fdef8fb384d8cdc3b83de4f1b07123562a3331a0cbd386fa2e1757282c13a6572b68c83c76d1b8e8db437c168da9c983b667f0b1d361736969c83b6443741a63f61f6d56c4c9ec54e99e8a82678509fa115bf8236a66f30776fa133545dfa92dfa72454e2e870c9d142c770058418f4e4843a877c8b03589651f30368d2f6113b3f6b28d22e7f37814f7103e185069e19705899688d088b975849ce123f384dcb95f68a9db85e3ff33345c4f77c919f8846a33221fc9e22f7c73d1d735e2152667b0a99e09bbd183c4d4dbbf0c19b26ca6b8cdf17af3adfd32268be433de1a7bdf9db02f5fe81f66dcbaeeb1ab14fa5379027c4f22f1a1c1fed77b06f352722511ce99a989718dd1867cd3c6217b93d54b61f32a8988c9e4b46a76ffeb37357c24dc2aa44c59ecc671923c3f1d19fa7ba73959a92cb6071b14671085147e6f444fcc22394e3474126b5c0aed1e65562944c580b803c0f248ce389a71eb4f43e6ffb864cee1a71cda4e7be7da62c63b1593f7b116b519b3d753e8b423caac88e74e19b905293b3f1e3bdbaee752d80f09b9218679627a51eeb3d4c10ffa479bfda1909fd991b995bbf00d3189e29bfab05dabf7475e96a4f2ff6c351ee3a4f0658f29751ff4d8ce75e11f5a1033e99fd92eddea7f2bb7c7ac3b3732b33d2f6356ca672367ba47c25c28188323961378dc275602ed9ec28cada2a459b166e5edc8fcec0dc3876afd859b81a8c73cfc6c66d4fdc3676ffa3761339fd891393fdcc5d6db6919e5267d368318c17c437d63a73a87b3f66482f4dc69167b2b24b0c1599bb7420e0c0c48a5520a85b2682824569a56ab8517876d16ccb7feadcd5d17782000c7d2d7f31f03d4676b73d2a172ee30e0730756c94c58dad3a72b7d4815d898502942e4e91d1ab3bb26a75c939611cd875a8f58c403655f03e0de08581d060707a112807038923f2b1a38d7a3ff77ff2773f0f7d5c833ea32e16d6220eec00601dc2c402cdf005d987d54888e424dac7dd5431500000080b803000000f12deeb474b93c19a255010000d6212bf5b9d3d28bb7e57229289974a3fde6387c291b0000202e2c774e32f17e20ba706bc916b0df010000e243dc27dd416bfdeeea3ba7a0f6608de20eef445a5157572e5e2847f191a78e3f5c03fd09008075c24add320c6aa89ae3fa8e16f5cf600258218a1c042caa175e6b58c6aec5758fd6d13a5f3ad5e15f93e44aa55cb21ca9d477b096e45299d46b432d7ae8300000c4b1b853d38a73f96136ff12f4bde3d44b8420a39a878fcb269b67f57979f0e53c0e9a0cae769f7aa9fb8ed752c36b2f34405f0100201ec59dc6e12087cde5a37024855b6549d1b6c3f4bd68baf563cde44a0e445a71646fa1c8ff3a50b7457de56c7db70d4bac7aa056c1a7fadf11ea766adb4ea8f98f56ca3888cc2b7fe69972cce6fff5490b763bc0d0f86d7f6cc810d9d46ea19c8fdf1e786d86ae4e8bb88cd81e5bebb8782a607ae3fbca137166735d3ad5ac0ddc5994a15e35352fb089dbacaa3fd9a89d3f18a529eb6a94529eff9842370e3993f0833edb06fd0c00807529eeb3b1310be3b1aa3a57a6ec4871b0ba986f6d39f96a9b995f5057575559e7d49d1c28df5bc0b1b49c7cabcd8cf852a598ad46aab657557ea56d9935fb8be795c3914a0d2d275fc04a511e3b525e5cc1377734bcdaaca62a8f1c292f2c2b6ed17704f665efa83fddac46e2f29a3a65ed11fbc9531d36ff3d89a850a2697aeb64b79923af3d5c5b505ed1a86d9eb70793d36268ed3cdba1b771e475876bf394c5cddad01b10716dc441030000ac394b9950a5a62964b194dd3ddef749d3258ca6ab573fee30ad3026b2384f4833759dc2f4102173f7398385cc13162014f2567fb3b6ada3dbb67849164d03514a9bdaec46367d73b3da86af69cc6e2ac3ff966d65a19869d1d4fbd36dfa96535d26b24851143c1f53e7b96ebc009bbade60411c4171f81e542d8d98b2fb7318ecb38586b08283060000b81b96bbdbd47183a9dc2a6153224df5b61b0141f7b95c2b8f76e733a8649ef2f87165884a3391beb94d73b0b2fc81678acc5a55476b8bcabcf8a14e9a43c5d4eb8e9c02e551c9f372b5586c4a19aee17efbdb695b641e805f505b5326e5d1fc1a4e26234bd8ef2b3868000080bbe49641364ddb8d84edc519cc504bdf7a6bc5a67a145936449960ed3ef75a375f515e56ac28ae39a690b59c38d77177ab4b71f0609570b2bbe9ad465cb4f1f09f884fb5dbd6dd410300b009596a9c3b899bc667cecf3ce574acd65158dc5e2a5b143d90dcac6a3977f2c46bdd16a65856bc0afb324fe2be144e70bd9cc759dc5e9f45cc61bacdaac68039cea6c68aee5fed83060000b803e24ee2cab7178bf0af6d4d8d8fd8673f5a46e7acda934b6d5d7a27475a5d572cc645972f2d2857ce7f2e892f613390c7e5c4975d5e4465a74957baaf8e5ea39327abab9063bbe288cb8f14a62193a675891b3bfda3907f5379c531f9c29fca0c3d68000080356571b74c88b21bae5f53db10c7e5f7bf7bacfad573caa8ce9e65d6d52a2b0e3f5a81afe211842d6df2ba476b64816fa57bdde6eec6667fe44973875a5a253f785c8e2cdd2fbc6659d1be0ed6296b1f2daec5ca759abacfbdd5b2d459cf965695b4b6a0f6d1e3b5fe3848b5b9385cdf631c340000c09ab2d83754a969c5db1578a84c40d90938323943af36c1fbc2d63f6bf30d5500003696e5ce9015e1caeeb1eb6eb46942ac5b9b460d117e0000001b53dc29e22d12a6c7aae9b8a173f8a0aa000000e243dcc993c31d574d5617d4120000401c89bb6bdc04c20e0000b011816fa802000080b80300000020ee00000000883b00000000e20e00000080b803000080b80300000020ee00000000883b00000000e20e00000080b80300006c7a285005c0a290c964a8040000cb1d00000000710700000040dc010000001077000080cdc82213aa4e2a6f59c531dd16a853000000b0dc01000080cd26ee350f1f7fea48f15aee465a5157572e8e92a7f8c853c71fae810e0300c0c660ade3dc3905b50777c978547fdcb4d7edd4b79d38dbb6da3b293ff68cccf2ebd71a56b07bb95426f5da508b1ebac6fac26db738a6679696372191c56353a1ce0010f7a5939090902d4ecb16a7522864bb73ead690c9303abe9c022aea2ae54c53dbd9a616ad5b2c93cb6554db1d183f846c32b2ac6cf70dafbdd000bd621de2f1cd2c39ef8ccf8310883b00e2be0ce412e116497ae72d9d636a4ac4e771d98ce5897bb18043b6684eb568f115bda64daf09fe24ad38b2b750c4c14d6ab7457de56c7db72d8ad12de7e1d7acd766e8ba74aa591b618c7b2d6a9d5b2a49c332c99f79468e9cfaa657cf762f65f7b3d43c7c5c36d9fcd2a90e6c99af3c585726c50f09dba1c6ee418b1c2cb66d9ae9ac815f5bc0a7228bea85d736cf3071ebd6ad65e5cfc9c959d17ec8b4e424e642199c13e32e2f5cd600b05c71170b928746c7b5c6516c79cc6a5ff6de3a466d15c5a2ba02ceb930e9561cac2ee65b5b4ebeda66e617d4d55555d63975279b43f27030a35b8634f5afd6ab91bca2aeaab8faa0f9c459953f1d37c64f37b4e8a9d2023eea56d5171f79aa82a189e29689b9fba8e75a535b2ef6aaf13ddaf8ca2307cb99b377030b1c2c47564b35779d7eb5456fdb6c3d293d3d9d440a4ce1ccccccc4baf3f3f97cc3c3c3b7b72bef94cd36e99949a030381c7ab41723785de3e32ef0cf009b9be54da86a4d66496a4a76461a357165cefae6960e135956f5e8334f3c5057aee0074dea3c21cdd475aacd8c2d9bbbcf192c649eb0609ed95e26e53bb597309d45c8a66eee32bb993c991853e07219df6b683de51753b3b65ba55dc9eea36a7b9188e73675fbf788cc6da7d4e6a51c2cd9a3bf786a132a3bf2bf7f86b20456e335352eb7071f3c663c6e57306dda611d9f7046f3cf6c68ecfd37be7fee46a763336b94bdf3f2f5ef5f1eb0872f03ab6ab9f70f99a6a7bd795922855484097daf46eff5f996373c34bf75a2535c5c56562053d6c80a8bbbeb4f366a119f4125f394c78f2be7325ae6dd7dcb384cc4e11d3e7e7c2ec94dc3c59949434e43c76dee3e1a7cdafc92ed6e376210bf2c70b06eab41bb497b12d90f669b2f90279645bf4c68548adb6fb95369b3d26e77ba7d881ce2bda17896e49fc1c4427d72563ab914ea8e2de2bd52ee720fc833d4f3c39194ef29d3d6acb63d9681f31dd6cec919ecd83358b422b964773a7b63741497b54f6db836eceaf510d7195599b3923a075659dc317426b3c16c11097885b20c169d76b54bbdec7ddaf41d0dfa0ec42938787f95a24cd9a8c5e355dc8680a73b26d1bcd82b09938cbafbe5b1f8c16e4a1656f6a5645802ce897137899994cc09b9e99c9a9cf6dd469134c623791c3af28ef68ffd6fb7c6821487a58ce56cef1b1e71adad3eeade6db1f43018f76de5b0917b5867b34c6f90d7763a74a7af985b3d095bd3788fa753295ef7a8d13e0a93dfeb44dc31bc5eafce68f678bc3b0a726e63d7b66e9d759794813f026b717ba96c911875c48a40343b5d288d578e504b58bacb85f81c4ce23b6e67f751f718563223e84e58f460813bccccf4d4a407cdd89dd3330877bc27ba6f6f0e954293a48b30bb57964e9d3a67a81f19bb4f9a4141bea9e1fe77bbecd73d88452217c9c507b253fc578be9d239035216e48ede7c43e7a188d3eef398df3061e986ef63e92cdedfeec9b2b45dffb589f94cdd16c9ac6be55f6e5203abd3e6b68f0d0d56af35b877ff2694514dc3cd891edb0c96ce67310f2be532566c97a975b215a1da3c4591ff564196316b78c5de2fbe3cccfe62b6e752a7fd860fdb05e7c17209ba899f821921b9807f78bb84173cbbad529e517f7ed46b259177e565de9732f1ee35f31517560f941ae5961d026a40a73b356fe9f1cdf92cf6b1edd9120689b813ea1467df47193edd3ba9e6f0bfb14b429f3beec99e764cd9290fecce2f4a0a5c4ec183c7c7e86555025e99639d1dfee3c44f81775f71962011451c03f7333eeb9b6eee5f56cb78c1dbac1bee7bb717ed16c4f9239ccb3bbdc21c4941760687c56033e9196929932ef7f2f6a6aca92b2f908939d822475c5c579446b59955d84a5b97dec99156d715fb7fe24b0bca958a791bea5b3466945678accaef28e78865caf262fc51237da7c14216951e29c737e48815c50558aad3e3414c4e3167c9bb8f86bed364a3a615d4cafd47545027e7cf8afba207bb4915d7cfede7599aad3c6d9f24a2de673c53f6d58b8f215330fd9e9ef1601230aa3ed16eb70bf84f96a41d93507437b57fe8990bafede956fd6184b4630bef407a9264abf80066e80b04dfa8567ca35cbca07364b2af4df7b69bf1d9eae2efd566ddcfc2fa61f237f664619bd0a9243637e5b3bb15dfd82dc877395f6ed32ee456a627cab163d09ba69667ce584edcf41515a53db9854177d84e5cec7ed7c1baaf24ed9174f2f0a8f992763298b1fe864ec34c3e5622f834cb7ba5bbffdf9b2d6c59da935bb9f924cfffb66bfdb3e1d3c3edea5f9bc8353be4dfd82dde4db2ffbab93f384bae1b1c7ca3775a20e13d90c5a1cf33db4d6d362414a707953dfcb4965509c8de734dfbae83766cb7e26fcbf9e916cb4b1feba6a21c43b24242452ebb26d07ad33aa30b51583241fc3f9cbf3ccbdd6273e46408c58264fcd670dad3dad3bfccdd31d20a2b654aa269bd6e8ba6b1bede6fffaace9e65d6d52a2b0e3f5ae1777b38b56d2df3bc25b6e6730d94da0a45cd030535fe6dcdea46dc8ad7379c6d221fdc557cf851dc05eeb5691a3abad5d75585fb95158f1eaf706a1b4f848442c6dc7d5475afbfd471646f61eda3c76b91d769ead25a8a0356fea2070bacc550125cf4f956a548af7b74d0d4e641722e2649937d6ae7108df395128900fb295d407176bd3c38a2cbe71146f19097f1c5fdf2f4d923a06042414aa4d31675e63847312353c049a7611bf064693ad4ef1a45082f3329736f2191276387d472b91f7f4953cc7122497c406c3fa1ffffd93bbf9f36ae2c8e5f6263f08f090336fe859d4c3ac4d814b756619d380d8a5547d6a2062d52a4a8d1566aa448346fbbd2ee3fb08f7dd8873eec432b556a25a468a322a52211150a2b22d238eb0d955b431c9c3a71b019c3c44ec6193306c74e77664c80046c30717e723e429167e6de39f7decc7cefb967ee9d497c7189ee34aadd6d3a95642b525573f8ddfdd626c1b53948450617149ffc81104ceb25f1b944e041663518d5d074d4dac2eb32b18bbb18e0f4247158e88010ce4d4ddc5964b248bf6bfefadcef6dfb4d1d4dfc7e55976d61d29ffe2dc9b793a8e14b92be23b6d6baf53199dc34421f8aea51a25e9534c2fdf931161de4bdfbdd7cdd4deeb6cc4f53e968d66495af2b4381fb304407e618078ea342922f27b947a387b0ccb38277ef01ffb77d6b81e181522a980a8c9c5b776cecdcd7abf21e193f1f19df28bc327a2ef44c31fd4303fe0accaf31b3d662cc3774d6b72699af7c619fca0bbc412c30ff1c59f6ebf636aa8f591b10ba37c7abb056a5594e51ab6994a2648e594026a5b8a309db963a2834fcb959766e49a397b251ba80b0baa2893c33732df4f0e6426176b9a72a1f8696e93b3afe4ede9b9ca62fc5e98978eae3aeb6aea6dacdacd76a946bb694ab2f05e4757c61cd22319d52bed6e336299705562aaa459e2fe142f626ffcfadc83f6ead266b5de963950a7ddde66d210691969ba5183baaa81132e9c57984e603c1d1356a96dfb00c129d554bff34cf30565c758f0d20c951e38e787e0b9fd903763cc507aa52b9a60153d556ffc9647e694537e5ad0ea3679cfaeab2f024876c68f8dc2186a417ee7eef679806bcef43835e2e1363e55b19063777389a3bb2b33ffa9217a71356d79ed276976ff6faba2d1518576e29dd015bab5bbb3a62906eaa254a591be2e2cc43a417ba150da1fd4c8f9277e98bc5e70fdb6904c9c75d64c76a8f5523ddb8e0bb4c26958ece4499c79ab9ec02d668ddbd23ae6b1077e0cd42b1bbb1cc1a55eee1766e82e507aa6b50e979df2e9d4922ade8593f4a3ec8f3a671e596cea7125656e51797f86e83dfca25d9d56702192a79adb6e12f1f11f8ba788567df5ebd7cc5d6962790c8b5563cf9dfecefe5ed56194c6e455c34bd586f5657904b895be5cc0f141d2771532daac70d04dff673f4f61a41d550af4399388bba9ab630b549a33e58773740cdb4d2e8fdb6e6fa9d71ab6c22eef07e76e075e2c9d2d3178e9c20152d3fb3170277dd7a599e498f0981da665309ffb19ebf8de87bd76989e9b104d7e32a5ca69cc98e4ddd5511aa0c7d6f6c4d20b35e29d364d35f8efc52dc54cb15c7ba4842ba4b87d0cdf86c47832a732771e5fe2685cbdc099da7650e934225418bf7992b49d46254f19d53beb4dd6a8f75745dfafb13d4ec0569eee05e0c2da4e7a882febd3d9a4db23574d854819f33df5c9ef2f0fa2eccae793cb7b23eabc246404d3a3796f9f77444830c1d7ae9e20376eebea4b5dd5022468f13baf80fd4c34524ffa349be43ee16f0dc8137e342dd55b354d8ea5b2177f197f573ae4d956ac84f3f98b934c57c478b5321f79b8fee2b356d56dedaa13e703d7531106f90629fe871bd9ef8f4feadefe3cc574986d4e07def4abe9d12133ea2af4d65a47af567dae26b499726a7d3df87e6fffa81b9cfc4a74f7e793929cc4aecaa3fef7f54a66cf50d729c7a78692a934642d9ac7b8c47ad82072d2d65b7fad4eadfb37c2e8b5e8ad3ff9aa1d1ae9a360c376dad554f7527aeff9aba762b598c95abeba49d5ab9a0c84d953502efbb5b9dc49f83d4d8adf8e834df0e35ad7a83b54cac69dfeef7671efca6c14c929d72cfd4180c06508eb7983367ce6c3b6f71e6623e9fc730ac7ccadbb76f9bcd66a954bae90a55fe6cb1586cbb2f0e434f5e0db6c537886d9aeca5f2d4847781c7f140f09b6ce3df5c7b5470a5be681e4607ae3d6cdd01d3dbc17307aaed266c6df5693516a9beccf84c35a997d72a51f6e66c5a23ac032a64e6a84b34eab43583b2bf501699c4dc62217e2b1d51e27d9a1df4ed391077a03accccccbc9ef199d7e866d313a7b2d11f43d12fc4197b2dca3ac77b64975e0e17cf0b2519a5bfa38545b99f779977543f0a6199b79c9713960100e075033e900d000000e20e00000080b80300000020ee00000000883b00000000e20e000000e20e00000080b80300000020ee00000000883b00000000e20e000000e20e4d000000f0f6b1c95bf338195ed1e9e0cb4d000000e0b9030000003b50dcdd27fa4ff5da77d07f87bdf754ff09375c9600003c2f2ffb630698cdd37380c065c56f48e6382a30301ca8b61167df6982f9e6dcd8c647d5368fbbd3ac56143fad5ec8b1b1c0d991005c0a0000ec5c71afa9a9d967d4ee33364ba5920cb7787b964e242bfac4bacb7b8854d081e1abfe58ce48902421635f40ffa153495089d8bfd97dc26bc1b84478ec3f8130858c169b4d978dc0750000c08e1677d2a4db6fd24fde8e2f2c2e1ad478834a5e99b8db359884890ef963c206150d50d155d575f51e6e376082479f6322ff1d1e0db11bf8fc242ef8db053671e3ca902fb66e2c506022f19cd9a4e51391a74f9388a3ae9e1d0ead3947b7d38273d1e1b323c5bc880afba9b0f84bebf0ba1de6e5d3ac9edf7da25f4b0f27d41e9b5a8698f0d7fc704028699b017bb620f6de532e79f4eb95f1029f93c8fabe1d0a2273f7718f455d1cace4b8d8f258a5547d0000005ebab81b358db3c907b1f924fffb7e3a53b1b5609275d90d5e1b36f28c745b7a8ed8d569ffe0d9404a6df37abb0f79b9f8a06f4d1a8cf7f909141d3d3b1a41a4cbdb6d3fd2931a180e8bfb85b1c085313f2533dbd428141e2dcaec4661994e831aa5421baa28cd318989c9e120c562a4f798a7cd61f7c58245d3844796ba71e1ac9f629f9434131cbde08b20a3d3ed75787a338343c1d20310a3e7b00d63fc83e70329a4363b8caa48b9fa0000005485ca1ea8c6e894a9b9695f8b5656bbbd60bdcf1fa42544f7c9d39f1ef73a2dea158fbe4d5747df18e2e50ff1e23b926024b8cef694dbde695673b12ba3115e44d988ef462aa7c00923af9c4e425d484c0c89c29b8a85c265bd5f3ba640b91cb3b11087fde34151bed948229393c9570a27c953978b06781ced4605131df58905a1fc43376889c1d251b6ce92d59fa9582028766ba5ea030000f02a3cf73bb3f4a34785b6bd068bd9c00bfd74942a3c7e5c59f7e03b3f3069b47776da08879b68b7874607c763482d974970477fbf633521a3589b8de06519c38ff5f7afeecad509f2aba8435c22588586283e66c5eb442996ac8dd9e7d289d52e03974972d9d46af7e0675807a1b1f383925227a67c8168cf21e7f1d31da9583838e10fa7cad5070000e015883b4f9c4e25528c4183b7132dcafabaffdda8fc69244b05c7a820c26c3d7feab6743ac66342083a9710e3d3652846bc9ff1c52b8b0ab19ccb20536d70c4d2d3d3adcb86ae9e1f17b4578ceb3c67c36292271e3b1b1a3917525b9c9d768bdddd6721fc0323c1ead4070000a03a6199228542213e9ffaf5b7195d53c373986643f1744e222e8165720599ca50262c91e296784fd7b97effd21252605b96c430ef73ab098f79dd0123a6c8a5c2a2b2f3a864b29205c90a111b6c65db8963886337e8946cd853438f54d83f3238702ec4288c84bd747d0000005e85b8b7bf63b2ed6bc1947295a2be45db945dca5566cde1f63a6d8451d046cc68f77668656c4a788818b8417198f988d72e1e529b6d4e87e5e9d8863f9a42daf6be6e314e8f190987d32ef405d464829118deef750a1931a3c56ee3f772f9bca0f8d8062192d1c91887919e135ea7a59883201d36de1427f62ea4b08b74f591a50324c1e9790e27bc2e31a9d1d9dbae457474423812653984693da458039b97544bd6877e4c2a39ca2f71a5eb030000f02ac2320cbbf04e8bcea869e47f2f3dca4fdcbc53a139b9b6fd10e128ca5e21c744c7474729d1a51e1e56783d0ed7b1932e61539830e87f6a5d11eb1b19937a5c16f7719b5bcc9b8a8cfb05b91e1bbe2ae939603f765288d717d8e8583014f925dcfe91c375b2dfc5c5c607d64e85e4c579f807cee576b6d9dd84c35d2c45622210f24f84cd1e9be764bf479c971849d94be9bb50d21eafc373d2eee133737468e4bc5f0cc1b363be90da63299e831f0684690b29ec27bd27dd04f6a4caa9d0b82f52a63e00000055a1c6603094390c2f0e7bd33973e6ccb6f3fe2e92cfe7310c83960480b7392c0300000080b803000000af864d62ee106601000000cf1d00000000710700000040dc010000802d2285260036a550284023000078ee00000000883b000000506dfe2fc0003857106bdac5baeb0000000049454e44ae426082, ‘image/png’);


— Indexes for dumped tables


— Indexes for table `tb_arquivos`

ALTER TABLE `tb_arquivos`
ADD PRIMARY KEY (`arquivo_id`);


— AUTO_INCREMENT for dumped tables


— AUTO_INCREMENT for table `tb_arquivos`

ALTER TABLE `tb_arquivos`
MODIFY `arquivo_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

 

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s