From a648a7d9a025f4b2fde4e8dd97242915649bbe00 Mon Sep 17 00:00:00 2001 From: YvesCesar Date: Tue, 30 Jun 2026 17:11:56 -0400 Subject: [PATCH 01/13] feat(danfse): generate DANFSe PDF locally instead of via ADN API Signed-off-by: YvesCesar --- README.md | 2 +- REUSE.toml | 3 +- composer.json | 5 +- src/Config/EnvironmentConfig.php | 7 - src/Contracts/NfseClientInterface.php | 5 +- src/Danfse/Config/DanfseConfig.php | 29 + src/Danfse/Config/LogoLoader.php | 32 + src/Danfse/Config/MunicipalityBranding.php | 30 + src/Danfse/DanfseGenerator.php | 75 + src/Danfse/DanfseTemplate.php | 296 + src/Danfse/Data/Municipios.php | 5603 +++++++++++++++++++ src/Danfse/Enum/OpSimpNac.php | 33 + src/Danfse/Enum/RegApTribSN.php | 33 + src/Danfse/Enum/RegEspTrib.php | 41 + src/Danfse/Enum/TpRetISSQN.php | 33 + src/Danfse/Enum/TribISSQN.php | 35 + src/Danfse/Formatter.php | 128 + src/Danfse/XmlToArray.php | 72 + src/Danfse/template.php | 583 ++ src/Exception/ArtifactException.php | 3 +- src/Exception/NfseErrorCode.php | 2 +- src/Http/NfseClient.php | 64 +- tests/Unit/Config/EnvironmentConfigTest.php | 22 - tests/Unit/Danfse/DanfseGeneratorTest.php | 80 + tests/Unit/Danfse/DanfseTemplateTest.php | 102 + tests/Unit/Danfse/EnumLabelsTest.php | 41 + tests/Unit/Danfse/FormatterTest.php | 83 + tests/Unit/Danfse/MunicipiosTest.php | 28 + tests/Unit/Danfse/XmlToArrayTest.php | 63 + tests/Unit/Http/NfseClientTest.php | 48 +- tests/fixtures/nfse_exemplo.xml | 138 + 31 files changed, 7589 insertions(+), 130 deletions(-) create mode 100644 src/Danfse/Config/DanfseConfig.php create mode 100644 src/Danfse/Config/LogoLoader.php create mode 100644 src/Danfse/Config/MunicipalityBranding.php create mode 100644 src/Danfse/DanfseGenerator.php create mode 100644 src/Danfse/DanfseTemplate.php create mode 100644 src/Danfse/Data/Municipios.php create mode 100644 src/Danfse/Enum/OpSimpNac.php create mode 100644 src/Danfse/Enum/RegApTribSN.php create mode 100644 src/Danfse/Enum/RegEspTrib.php create mode 100644 src/Danfse/Enum/TpRetISSQN.php create mode 100644 src/Danfse/Enum/TribISSQN.php create mode 100644 src/Danfse/Formatter.php create mode 100644 src/Danfse/XmlToArray.php create mode 100644 src/Danfse/template.php create mode 100644 tests/Unit/Danfse/DanfseGeneratorTest.php create mode 100644 tests/Unit/Danfse/DanfseTemplateTest.php create mode 100644 tests/Unit/Danfse/EnumLabelsTest.php create mode 100644 tests/Unit/Danfse/FormatterTest.php create mode 100644 tests/Unit/Danfse/MunicipiosTest.php create mode 100644 tests/Unit/Danfse/XmlToArrayTest.php create mode 100644 tests/fixtures/nfse_exemplo.xml diff --git a/README.md b/README.md index a90326c..f10943c 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later - Emit NFS-e (`emit`) - Query NFS-e (`query`) - Cancel NFS-e (`cancel`) -- Retrieve DANFSE bytes (`getDanfse`) +- Generate the DANFSe PDF locally from the NFS-e XML (`getDanfse` / `Danfse\DanfseGenerator`) - Sign DPS XML with PFX credentials - Read secrets from OpenBao/Vault or an in-memory store diff --git a/REUSE.toml b/REUSE.toml index 25b9f4e..d975731 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -14,7 +14,8 @@ default-copyright = "2026 LibreCode coop and contributors" path = [ ".gitignore", "composer.json", - "tests/Integration/.gitkeep" + "tests/Integration/.gitkeep", + "tests/fixtures/nfse_exemplo.xml" ] precedence = "aggregate" SPDX-FileCopyrightText = "2026 LibreCode coop and contributors" diff --git a/composer.json b/composer.json index d347048..f6f42a8 100644 --- a/composer.json +++ b/composer.json @@ -19,10 +19,13 @@ }, "require": { "php": "^8.2", - "ext-openssl": "*", "ext-dom": "*", + "ext-mbstring": "*", + "ext-openssl": "*", "ext-soap": "*", + "bacon/bacon-qr-code": "^3.0", "csharpru/vault-php": "^4.4", + "dompdf/dompdf": "^3.0", "psr/http-client": "^1.0", "psr/http-factory": "^1.0" }, diff --git a/src/Config/EnvironmentConfig.php b/src/Config/EnvironmentConfig.php index 461971c..81fb94e 100644 --- a/src/Config/EnvironmentConfig.php +++ b/src/Config/EnvironmentConfig.php @@ -20,22 +20,15 @@ { private const BASE_URL_PROD = 'https://sefin.nfse.gov.br/SefinNacional'; private const BASE_URL_SANDBOX = 'https://sefin.producaorestrita.nfse.gov.br/SefinNacional'; - private const DANFSE_BASE_URL_PROD = 'https://adn.nfse.gov.br/danfse'; - private const DANFSE_BASE_URL_SANDBOX = 'https://adn.producaorestrita.nfse.gov.br/danfse'; public string $baseUrl; - public string $danfseBaseUrl; public function __construct( public bool $sandboxMode = false, ?string $baseUrl = null, - ?string $danfseBaseUrl = null, ) { $this->baseUrl = $baseUrl ?? ($sandboxMode ? self::BASE_URL_SANDBOX : self::BASE_URL_PROD); - $this->danfseBaseUrl = $danfseBaseUrl ?? ($sandboxMode - ? self::DANFSE_BASE_URL_SANDBOX - : self::DANFSE_BASE_URL_PROD); } } diff --git a/src/Contracts/NfseClientInterface.php b/src/Contracts/NfseClientInterface.php index b150419..341c33d 100644 --- a/src/Contracts/NfseClientInterface.php +++ b/src/Contracts/NfseClientInterface.php @@ -28,9 +28,10 @@ public function query(string $chaveAcesso): ReceiptData; public function cancel(string $chaveAcesso, string $motivo): bool; /** - * Retrieve the DANFSE (PDF rendering document) for an NFS-e from ADN. + * Generate the DANFSe (PDF auxiliary document) locally from an authorized + * NFS-e XML (the XML returned by emit()/query() in ReceiptData::$rawXml). * * Returns the raw PDF bytes as a string. */ - public function getDanfse(string $chaveAcesso): string; + public function getDanfse(string $nfseXml): string; } diff --git a/src/Danfse/Config/DanfseConfig.php b/src/Danfse/Config/DanfseConfig.php new file mode 100644 index 0000000..279ad0e --- /dev/null +++ b/src/Danfse/Config/DanfseConfig.php @@ -0,0 +1,29 @@ +logoDataUri = $logoDataUri + ?? ($logoPath !== null ? LogoLoader::pathToDataUri($logoPath) : null); + } +} diff --git a/src/Danfse/Config/LogoLoader.php b/src/Danfse/Config/LogoLoader.php new file mode 100644 index 0000000..6c025e5 --- /dev/null +++ b/src/Danfse/Config/LogoLoader.php @@ -0,0 +1,32 @@ +logoDataUri = $logoDataUri + ?? ($logoPath !== null ? LogoLoader::pathToDataUri($logoPath) : null); + } +} diff --git a/src/Danfse/DanfseGenerator.php b/src/Danfse/DanfseGenerator.php new file mode 100644 index 0000000..6a2f995 --- /dev/null +++ b/src/Danfse/DanfseGenerator.php @@ -0,0 +1,75 @@ +generateFromXml($nfseXml); + */ +final class DanfseGenerator +{ + public function __construct( + private readonly DanfseConfig $config = new DanfseConfig(), + ) { + } + + /** + * Render the DANFSe PDF from the NFS-e XML and return its raw bytes. + */ + public function generateFromXml(string $xml): string + { + $html = $this->generateHtml($xml); + + try { + $options = new Options(); + $options->set('isHtml5ParserEnabled', true); + $options->set('isRemoteEnabled', false); + $options->set('defaultFont', 'Helvetica'); + + $dompdf = new Dompdf($options); + $dompdf->loadHtml($html, 'UTF-8'); + $dompdf->setPaper('A4', 'portrait'); + $dompdf->render(); + + return (string) $dompdf->output(); + } catch (\Throwable $e) { + throw new ArtifactException( + 'Failed to render DANFSe PDF: ' . $e->getMessage(), + NfseErrorCode::ArtifactRetrievalFailed, + previous: $e, + ); + } + } + + /** + * Render the intermediate HTML (useful for inspection and testing). + */ + public function generateHtml(string $xml): string + { + try { + $data = (new XmlToArray())->convert($xml); + } catch (\Throwable $e) { + throw new ArtifactException( + 'Failed to parse NFS-e XML for DANFSe generation: ' . $e->getMessage(), + NfseErrorCode::ArtifactRetrievalFailed, + previous: $e, + ); + } + + return (new DanfseTemplate())->render($data, $this->config); + } +} diff --git a/src/Danfse/DanfseTemplate.php b/src/Danfse/DanfseTemplate.php new file mode 100644 index 0000000..6045c85 --- /dev/null +++ b/src/Danfse/DanfseTemplate.php @@ -0,0 +1,296 @@ +fmt = new Formatter(); + } + + /** + * Render the full HTML document. + * + * @param array $nfse + */ + public function render(array $nfse, DanfseConfig $config): string + { + $data = $this->buildData($nfse); + $logo = $config->logoDataUri; + $municipality = $config->municipality; + $qrCode = $this->generateQrCode($data['chave_acesso']); + + array_walk_recursive($data, static function (mixed &$v): void { + if (is_string($v)) { + $v = htmlspecialchars($v, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); + } + }); + + ob_start(); + include __DIR__ . '/template.php'; + + return (string) ob_get_clean(); + } + + /** + * Flatten the NFS-e array into the template's data structure. + * + * @param array $nfse + * @return array + */ + public function buildData(array $nfse): array + { + $inf = $this->node($nfse, 'infNFSe'); + $infDps = $this->node($inf, 'DPS', 'infDPS'); + $prest = $this->node($infDps, 'prest'); + $regTrib = $this->node($prest, 'regTrib'); + $emit = $this->node($inf, 'emit'); + $enderEmit = $this->node($emit, 'enderNac'); + $toma = $this->node($infDps, 'toma'); + $endToma = $this->node($toma, 'end'); + $interm = $this->node($infDps, 'interm'); + $endInterm = $this->node($interm, 'end'); + $serv = $this->node($infDps, 'serv'); + $cServ = $this->node($serv, 'cServ'); + $valores = $this->node($infDps, 'valores'); + $tribMun = $this->node($valores, 'trib', 'tribMun'); + $tribFed = $this->node($valores, 'trib', 'tribFed'); + $totTrib = $this->node($valores, 'trib', 'totTrib', 'pTotTrib'); + + $id = $this->val($inf, 'Id'); + $chaveAcesso = str_starts_with($id, 'NFS') ? substr($id, 3) : $id; + + return [ + 'chave_acesso' => $chaveAcesso, + 'numero_nfse' => $this->val($inf, 'nNFSe') ?: '-', + 'competencia' => $this->fmt->date($this->val($infDps, 'dCompet')), + 'emissao_nfse' => $this->fmt->dateTime($this->val($inf, 'dhProc')), + 'numero_dps' => $this->val($infDps, 'nDPS') ?: '-', + 'serie_dps' => $this->val($infDps, 'serie') ?: '-', + 'emissao_dps' => $this->fmt->dateTime($this->val($infDps, 'dhEmi')), + 'ambiente' => (int) ($this->val($infDps, 'tpAmb') ?: '1'), + + 'emitente' => [ + 'nome' => $this->val($emit, 'xNome') ?: '-', + 'cnpj_cpf' => $this->fmt->cnpjCpf($this->documento($emit)), + 'im' => '-', + 'telefone' => $this->fmt->phone($this->val($emit, 'fone')), + 'email' => strtolower($this->val($emit, 'email')), + 'endereco' => $this->address($enderEmit), + 'municipio' => $this->cityWithUf($this->val($inf, 'xLocEmi'), $this->val($enderEmit, 'UF')), + 'cep' => $this->fmt->cep($this->val($enderEmit, 'CEP')), + 'simples_nacional' => OpSimpNac::labelFor($this->val($regTrib, 'opSimpNac')), + 'regime_sn' => RegApTribSN::labelFor($this->val($regTrib, 'regApTribSN')), + ], + + 'tomador' => [ + 'nome' => $this->val($toma, 'xNome') ?: '-', + 'cnpj_cpf' => $this->fmt->cnpjCpf($this->documento($toma)), + 'im' => $this->val($toma, 'IM') ?: '-', + 'telefone' => $this->fmt->phone($this->val($toma, 'fone')), + 'email' => strtolower($this->val($toma, 'email')), + 'endereco' => $this->address($endToma), + 'municipio' => $this->city($this->val($endToma, 'endNac', 'cMun')), + 'cep' => $this->fmt->cep($this->val($endToma, 'endNac', 'CEP')), + ], + + 'intermediario' => $interm === [] ? null : [ + 'nome' => $this->val($interm, 'xNome') ?: '-', + 'cnpj_cpf' => $this->fmt->cnpjCpf($this->documento($interm)), + 'im' => $this->val($interm, 'IMPrestMun') ?: '-', + 'telefone' => $this->fmt->phone($this->val($interm, 'fone')), + 'email' => strtolower($this->val($interm, 'email')), + 'endereco' => $this->address($endInterm), + 'municipio' => $this->city($this->val($endInterm, 'endNac', 'cMun')), + 'cep' => $this->fmt->cep($this->val($endInterm, 'endNac', 'CEP')), + ], + + 'servico' => [ + 'codigo_trib_nacional' => $this->fmt->codTribNacional($this->val($cServ, 'cTribNac')), + 'desc_trib_nacional' => $this->fmt->limit(trim($this->val($inf, 'xTribNac')), 60), + 'codigo_trib_municipal' => $this->val($cServ, 'cTribMun') ?: '-', + 'desc_trib_municipal' => $this->fmt->limit(trim($this->val($inf, 'xTribMun')), 60), + 'local_prestacao' => $this->val($inf, 'xLocPrestacao') ?: '-', + 'pais_prestacao' => $this->val($serv, 'locPrest', 'cPaisPrestacao') ?: '-', + 'descricao' => $this->val($cServ, 'xDescServ') ?: '-', + ], + + 'tributacao_municipal' => [ + 'tributacao_issqn' => TribISSQN::labelFor($this->val($tribMun, 'tribISSQN')), + 'municipio_incidencia' => $this->val($inf, 'xLocIncid') ?: '-', + 'regime_especial' => RegEspTrib::labelFor($this->val($regTrib, 'regEspTrib')), + 'valor_servico' => $this->fmt->currency($this->val($valores, 'vServPrest', 'vServ')), + 'bc_issqn' => $this->currencyOrDash($this->val($tribMun, 'vBC')), + 'aliquota' => ($p = $this->val($tribMun, 'pAliq')) !== '' ? $p . '%' : '-', + 'retencao_issqn' => TpRetISSQN::labelFor($this->val($tribMun, 'tpRetISSQN')), + 'issqn_apurado' => $this->currencyOrDash($this->val($tribMun, 'vISSQN')), + ], + + 'tributacao_federal' => [ + 'irrf' => $this->currencyOrDash($this->val($tribFed, 'vRetIRRF')), + 'cp' => $this->currencyOrDash($this->val($tribFed, 'vRetCP')), + 'csll' => $this->currencyOrDash($this->val($tribFed, 'vRetCSLL')), + 'pis' => $this->currencyOrDash($this->val($tribFed, 'piscofins', 'vPis')), + 'cofins' => $this->currencyOrDash($this->val($tribFed, 'piscofins', 'vCofins')), + ], + + 'totais' => [ + 'valor_servico' => $this->fmt->currency($this->val($valores, 'vServPrest', 'vServ')), + 'desconto_condicionado' => $this->currencyOrDash($this->val($tribMun, 'vDescCond')), + 'desconto_incondicionado' => $this->currencyOrDash($this->val($tribMun, 'vDescIncond')), + 'issqn_retido' => ($this->val($tribMun, 'vISSQN') !== '' && ($this->val($tribMun, 'tpRetISSQN') ?: '1') !== '1') + ? $this->fmt->currency($this->val($tribMun, 'vISSQN')) + : '-', + 'retencoes_federais' => $this->sumCurrency( + $this->val($tribFed, 'vRetIRRF'), + $this->val($tribFed, 'vRetCP'), + $this->val($tribFed, 'vRetCSLL'), + ), + 'pis_cofins' => $this->sumCurrency( + $this->val($tribFed, 'piscofins', 'vPis'), + $this->val($tribFed, 'piscofins', 'vCofins'), + ), + 'valor_liquido' => $this->fmt->currency($this->val($inf, 'valores', 'vLiq')), + ], + + 'totais_tributos' => [ + 'federais' => ($f = $this->val($totTrib, 'pTotTribFed')) !== '' ? $f . '%' : '-', + 'estaduais' => ($e = $this->val($totTrib, 'pTotTribEst')) !== '' ? $e . '%' : '-', + 'municipais' => ($m = $this->val($totTrib, 'pTotTribMun')) !== '' ? $m . '%' : '-', + ], + + 'informacoes_complementares' => $this->val($serv, 'infoCompl', 'xInfComp'), + ]; + } + + /** + * Navigate to a nested sub-array, returning [] when any step is missing. + * + * @param array $arr + * @return array + */ + private function node(array $arr, string ...$keys): array + { + foreach ($keys as $key) { + if (!is_array($arr[$key] ?? null)) { + return []; + } + /** @var array $arr */ + $arr = $arr[$key]; + } + + return $arr; + } + + /** + * Navigate to a nested scalar value, returning '' when missing or non-scalar. + * + * @param array $arr + */ + private function val(array $arr, string ...$keys): string + { + $last = array_pop($keys); + if ($last === null) { + return ''; + } + + $node = $this->node($arr, ...$keys); + $value = $node[$last] ?? null; + + return is_scalar($value) ? trim((string) $value) : ''; + } + + /** + * Resolve the party document (CNPJ, CPF or NIF). + * + * @param array $party + */ + private function documento(array $party): string + { + return $this->val($party, 'CNPJ') + ?: ($this->val($party, 'CPF') + ?: $this->val($party, 'NIF')); + } + + /** + * @param array $end + */ + private function address(array $end): string + { + $parts = array_filter([ + $this->val($end, 'xLgr'), + $this->val($end, 'nro'), + $this->val($end, 'xBairro'), + ], static fn (string $v): bool => $v !== ''); + + return $parts === [] ? '-' : implode(', ', $parts); + } + + private function cityWithUf(string $city, string $uf): string + { + return ($city !== '' && $uf !== '') ? $city . ' - ' . $uf : '-'; + } + + private function city(string $cMun): string + { + return $cMun !== '' ? Municipios::lookup($cMun) : '-'; + } + + private function currencyOrDash(string $value): string + { + return $value !== '' ? $this->fmt->currency($value) : '-'; + } + + private function sumCurrency(string ...$values): string + { + $sum = 0.0; + $hasValue = false; + foreach ($values as $v) { + if ($v !== '') { + $sum += (float) $v; + $hasValue = true; + } + } + + return $hasValue ? $this->fmt->currency((string) $sum) : '-'; + } + + private function generateQrCode(string $chaveAcesso): string + { + $renderer = new ImageRenderer( + new RendererStyle(200), + new SvgImageBackEnd(), + ); + $svg = (new Writer($renderer))->writeString(self::QR_BASE_URL . $chaveAcesso); + + return 'data:image/svg+xml;base64,' . base64_encode($svg); + } +} diff --git a/src/Danfse/Data/Municipios.php b/src/Danfse/Data/Municipios.php new file mode 100644 index 0000000..f1e0900 --- /dev/null +++ b/src/Danfse/Data/Municipios.php @@ -0,0 +1,5603 @@ + ['nome' => 'Abadia de Goiás', 'uf' => 'GO'], + 3100104 => ['nome' => 'Abadia dos Dourados', 'uf' => 'MG'], + 5200100 => ['nome' => 'Abadiânia', 'uf' => 'GO'], + 3100203 => ['nome' => 'Abaeté', 'uf' => 'MG'], + 1500107 => ['nome' => 'Abaetetuba', 'uf' => 'PA'], + 2300101 => ['nome' => 'Abaiara', 'uf' => 'CE'], + 2900108 => ['nome' => 'Abaíra', 'uf' => 'BA'], + 2900207 => ['nome' => 'Abaré', 'uf' => 'BA'], + 4100103 => ['nome' => 'Abatiá', 'uf' => 'PR'], + 4200051 => ['nome' => 'Abdon Batista', 'uf' => 'SC'], + 1500131 => ['nome' => 'Abel Figueiredo', 'uf' => 'PA'], + 4200101 => ['nome' => 'Abelardo Luz', 'uf' => 'SC'], + 3100302 => ['nome' => 'Abre Campo', 'uf' => 'MG'], + 2600054 => ['nome' => 'Abreu e Lima', 'uf' => 'PE'], + 1700251 => ['nome' => 'Abreulândia', 'uf' => 'TO'], + 3100401 => ['nome' => 'Acaiaca', 'uf' => 'MG'], + 2100055 => ['nome' => 'Açailândia', 'uf' => 'MA'], + 2900306 => ['nome' => 'Acajutiba', 'uf' => 'BA'], + 1500206 => ['nome' => 'Acará', 'uf' => 'PA'], + 2300150 => ['nome' => 'Acarape', 'uf' => 'CE'], + 2300200 => ['nome' => 'Acaraú', 'uf' => 'CE'], + 2400109 => ['nome' => 'Acari', 'uf' => 'RN'], + 2200053 => ['nome' => 'Acauã', 'uf' => 'PI'], + 4300034 => ['nome' => 'Aceguá', 'uf' => 'RS'], + 2300309 => ['nome' => 'Acopiara', 'uf' => 'CE'], + 5100102 => ['nome' => 'Acorizal', 'uf' => 'MT'], + 1200013 => ['nome' => 'Acrelândia', 'uf' => 'AC'], + 5200134 => ['nome' => 'Acreúna', 'uf' => 'GO'], + 2400208 => ['nome' => 'Açu', 'uf' => 'RN'], + 3100500 => ['nome' => 'Açucena', 'uf' => 'MG'], + 3500105 => ['nome' => 'Adamantina', 'uf' => 'SP'], + 5200159 => ['nome' => 'Adelândia', 'uf' => 'GO'], + 3500204 => ['nome' => 'Adolfo', 'uf' => 'SP'], + 4100202 => ['nome' => 'Adrianópolis', 'uf' => 'PR'], + 2900355 => ['nome' => 'Adustina', 'uf' => 'BA'], + 2600104 => ['nome' => 'Afogados da Ingazeira', 'uf' => 'PE'], + 2400307 => ['nome' => 'Afonso Bezerra', 'uf' => 'RN'], + 3200102 => ['nome' => 'Afonso Cláudio', 'uf' => 'ES'], + 2100105 => ['nome' => 'Afonso Cunha', 'uf' => 'MA'], + 2600203 => ['nome' => 'Afrânio', 'uf' => 'PE'], + 1500305 => ['nome' => 'Afuá', 'uf' => 'PA'], + 2600302 => ['nome' => 'Agrestina', 'uf' => 'PE'], + 2200103 => ['nome' => 'Agricolândia', 'uf' => 'PI'], + 4200200 => ['nome' => 'Agrolândia', 'uf' => 'SC'], + 4200309 => ['nome' => 'Agronômica', 'uf' => 'SC'], + 1500347 => ['nome' => 'Água Azul do Norte', 'uf' => 'PA'], + 3100609 => ['nome' => 'Água Boa', 'uf' => 'MG'], + 5100201 => ['nome' => 'Água Boa', 'uf' => 'MT'], + 2200202 => ['nome' => 'Água Branca', 'uf' => 'PI'], + 2500106 => ['nome' => 'Água Branca', 'uf' => 'PB'], + 2700102 => ['nome' => 'Água Branca', 'uf' => 'AL'], + 5000203 => ['nome' => 'Água Clara', 'uf' => 'MS'], + 3100708 => ['nome' => 'Água Comprida', 'uf' => 'MG'], + 4200408 => ['nome' => 'Água Doce', 'uf' => 'SC'], + 2100154 => ['nome' => 'Água Doce do Maranhão', 'uf' => 'MA'], + 3200169 => ['nome' => 'Água Doce do Norte', 'uf' => 'ES'], + 2900405 => ['nome' => 'Água Fria', 'uf' => 'BA'], + 5200175 => ['nome' => 'Água Fria de Goiás', 'uf' => 'GO'], + 5200209 => ['nome' => 'Água Limpa', 'uf' => 'GO'], + 2400406 => ['nome' => 'Água Nova', 'uf' => 'RN'], + 2600401 => ['nome' => 'Água Preta', 'uf' => 'PE'], + 4300059 => ['nome' => 'Água Santa', 'uf' => 'RS'], + 3500303 => ['nome' => 'Aguaí', 'uf' => 'SP'], + 3100807 => ['nome' => 'Aguanil', 'uf' => 'MG'], + 2600500 => ['nome' => 'Águas Belas', 'uf' => 'PE'], + 3500402 => ['nome' => 'Águas da Prata', 'uf' => 'SP'], + 4200507 => ['nome' => 'Águas de Chapecó', 'uf' => 'SC'], + 3500501 => ['nome' => 'Águas de Lindóia', 'uf' => 'SP'], + 3500550 => ['nome' => 'Águas de Santa Bárbara', 'uf' => 'SP'], + 3500600 => ['nome' => 'Águas de São Pedro', 'uf' => 'SP'], + 3100906 => ['nome' => 'Águas Formosas', 'uf' => 'MG'], + 4200556 => ['nome' => 'Águas Frias', 'uf' => 'SC'], + 5200258 => ['nome' => 'Águas Lindas de Goiás', 'uf' => 'GO'], + 4200606 => ['nome' => 'Águas Mornas', 'uf' => 'SC'], + 3101003 => ['nome' => 'Águas Vermelhas', 'uf' => 'MG'], + 4300109 => ['nome' => 'Agudo', 'uf' => 'RS'], + 3500709 => ['nome' => 'Agudos', 'uf' => 'SP'], + 4100301 => ['nome' => 'Agudos do Sul', 'uf' => 'PR'], + 3200136 => ['nome' => 'Águia Branca', 'uf' => 'ES'], + 2500205 => ['nome' => 'Aguiar', 'uf' => 'PB'], + 1700301 => ['nome' => 'Aguiarnópolis', 'uf' => 'TO'], + 3101102 => ['nome' => 'Aimorés', 'uf' => 'MG'], + 2900603 => ['nome' => 'Aiquara', 'uf' => 'BA'], + 2300408 => ['nome' => 'Aiuaba', 'uf' => 'CE'], + 3101201 => ['nome' => 'Aiuruoca', 'uf' => 'MG'], + 4300208 => ['nome' => 'Ajuricaba', 'uf' => 'RS'], + 3101300 => ['nome' => 'Alagoa', 'uf' => 'MG'], + 2500304 => ['nome' => 'Alagoa Grande', 'uf' => 'PB'], + 2500403 => ['nome' => 'Alagoa Nova', 'uf' => 'PB'], + 2500502 => ['nome' => 'Alagoinha', 'uf' => 'PB'], + 2600609 => ['nome' => 'Alagoinha', 'uf' => 'PE'], + 2200251 => ['nome' => 'Alagoinha do Piauí', 'uf' => 'PI'], + 2900702 => ['nome' => 'Alagoinhas', 'uf' => 'BA'], + 3500758 => ['nome' => 'Alambari', 'uf' => 'SP'], + 3101409 => ['nome' => 'Albertina', 'uf' => 'MG'], + 2100204 => ['nome' => 'Alcântara', 'uf' => 'MA'], + 2300507 => ['nome' => 'Alcântaras', 'uf' => 'CE'], + 2500536 => ['nome' => 'Alcantil', 'uf' => 'PB'], + 5000252 => ['nome' => 'Alcinópolis', 'uf' => 'MS'], + 2900801 => ['nome' => 'Alcobaça', 'uf' => 'BA'], + 2100303 => ['nome' => 'Aldeias Altas', 'uf' => 'MA'], + 4300307 => ['nome' => 'Alecrim', 'uf' => 'RS'], + 3200201 => ['nome' => 'Alegre', 'uf' => 'ES'], + 4300406 => ['nome' => 'Alegrete', 'uf' => 'RS'], + 2200277 => ['nome' => 'Alegrete do Piauí', 'uf' => 'PI'], + 4300455 => ['nome' => 'Alegria', 'uf' => 'RS'], + 3101508 => ['nome' => 'Além Paraíba', 'uf' => 'MG'], + 1500404 => ['nome' => 'Alenquer', 'uf' => 'PA'], + 2400505 => ['nome' => 'Alexandria', 'uf' => 'RN'], + 5200308 => ['nome' => 'Alexânia', 'uf' => 'GO'], + 3101607 => ['nome' => 'Alfenas', 'uf' => 'MG'], + 3200300 => ['nome' => 'Alfredo Chaves', 'uf' => 'ES'], + 3500808 => ['nome' => 'Alfredo Marcondes', 'uf' => 'SP'], + 3101631 => ['nome' => 'Alfredo Vasconcelos', 'uf' => 'MG'], + 4200705 => ['nome' => 'Alfredo Wagner', 'uf' => 'SC'], + 2500577 => ['nome' => 'Algodão de Jandaíra', 'uf' => 'PB'], + 2500601 => ['nome' => 'Alhandra', 'uf' => 'PB'], + 2600708 => ['nome' => 'Aliança', 'uf' => 'PE'], + 1700350 => ['nome' => 'Aliança do Tocantins', 'uf' => 'TO'], + 2900900 => ['nome' => 'Almadina', 'uf' => 'BA'], + 1700400 => ['nome' => 'Almas', 'uf' => 'TO'], + 1500503 => ['nome' => 'Almeirim', 'uf' => 'PA'], + 3101706 => ['nome' => 'Almenara', 'uf' => 'MG'], + 2400604 => ['nome' => 'Almino Afonso', 'uf' => 'RN'], + 4100400 => ['nome' => 'Almirante Tamandaré', 'uf' => 'PR'], + 4300471 => ['nome' => 'Almirante Tamandaré do Sul', 'uf' => 'RS'], + 5200506 => ['nome' => 'Aloândia', 'uf' => 'GO'], + 3101805 => ['nome' => 'Alpercata', 'uf' => 'MG'], + 4300505 => ['nome' => 'Alpestre', 'uf' => 'RS'], + 3101904 => ['nome' => 'Alpinópolis', 'uf' => 'MG'], + 5100250 => ['nome' => 'Alta Floresta', 'uf' => 'MT'], + 1100015 => ['nome' => 'Alta Floresta D\'Oeste', 'uf' => 'RO'], + 3500907 => ['nome' => 'Altair', 'uf' => 'SP'], + 1500602 => ['nome' => 'Altamira', 'uf' => 'PA'], + 2100402 => ['nome' => 'Altamira do Maranhão', 'uf' => 'MA'], + 4100459 => ['nome' => 'Altamira do Paraná', 'uf' => 'PR'], + 2300606 => ['nome' => 'Altaneira', 'uf' => 'CE'], + 3102001 => ['nome' => 'Alterosa', 'uf' => 'MG'], + 2600807 => ['nome' => 'Altinho', 'uf' => 'PE'], + 3501004 => ['nome' => 'Altinópolis', 'uf' => 'SP'], + 3501103 => ['nome' => 'Alto Alegre', 'uf' => 'SP'], + 1400050 => ['nome' => 'Alto Alegre', 'uf' => 'RR'], + 4300554 => ['nome' => 'Alto Alegre', 'uf' => 'RS'], + 2100436 => ['nome' => 'Alto Alegre do Maranhão', 'uf' => 'MA'], + 2100477 => ['nome' => 'Alto Alegre do Pindaré', 'uf' => 'MA'], + 1100379 => ['nome' => 'Alto Alegre dos Parecis', 'uf' => 'RO'], + 5100300 => ['nome' => 'Alto Araguaia', 'uf' => 'MT'], + 4200754 => ['nome' => 'Alto Bela Vista', 'uf' => 'SC'], + 5100359 => ['nome' => 'Alto Boa Vista', 'uf' => 'MT'], + 3102050 => ['nome' => 'Alto Caparaó', 'uf' => 'MG'], + 2400703 => ['nome' => 'Alto do Rodrigues', 'uf' => 'RN'], + 4300570 => ['nome' => 'Alto Feliz', 'uf' => 'RS'], + 5100409 => ['nome' => 'Alto Garças', 'uf' => 'MT'], + 5200555 => ['nome' => 'Alto Horizonte', 'uf' => 'GO'], + 3153509 => ['nome' => 'Alto Jequitibá', 'uf' => 'MG'], + 2200301 => ['nome' => 'Alto Longá', 'uf' => 'PI'], + 5100508 => ['nome' => 'Alto Paraguai', 'uf' => 'MT'], + 4128625 => ['nome' => 'Alto Paraíso', 'uf' => 'PR'], + 1100403 => ['nome' => 'Alto Paraíso', 'uf' => 'RO'], + 5200605 => ['nome' => 'Alto Paraíso de Goiás', 'uf' => 'GO'], + 4100608 => ['nome' => 'Alto Paraná', 'uf' => 'PR'], + 2100501 => ['nome' => 'Alto Parnaíba', 'uf' => 'MA'], + 4100707 => ['nome' => 'Alto Piquiri', 'uf' => 'PR'], + 3102100 => ['nome' => 'Alto Rio Doce', 'uf' => 'MG'], + 3200359 => ['nome' => 'Alto Rio Novo', 'uf' => 'ES'], + 2300705 => ['nome' => 'Alto Santo', 'uf' => 'CE'], + 5100607 => ['nome' => 'Alto Taquari', 'uf' => 'MT'], + 4100509 => ['nome' => 'Altônia', 'uf' => 'PR'], + 2200400 => ['nome' => 'Altos', 'uf' => 'PI'], + 3501152 => ['nome' => 'Alumínio', 'uf' => 'SP'], + 1300029 => ['nome' => 'Alvarães', 'uf' => 'AM'], + 3102209 => ['nome' => 'Alvarenga', 'uf' => 'MG'], + 3501202 => ['nome' => 'Álvares Florence', 'uf' => 'SP'], + 3501301 => ['nome' => 'Álvares Machado', 'uf' => 'SP'], + 3501400 => ['nome' => 'Álvaro de Carvalho', 'uf' => 'SP'], + 3501509 => ['nome' => 'Alvinlândia', 'uf' => 'SP'], + 3102308 => ['nome' => 'Alvinópolis', 'uf' => 'MG'], + 1700707 => ['nome' => 'Alvorada', 'uf' => 'TO'], + 4300604 => ['nome' => 'Alvorada', 'uf' => 'RS'], + 1100346 => ['nome' => 'Alvorada D\'Oeste', 'uf' => 'RO'], + 3102407 => ['nome' => 'Alvorada de Minas', 'uf' => 'MG'], + 2200459 => ['nome' => 'Alvorada do Gurguéia', 'uf' => 'PI'], + 5200803 => ['nome' => 'Alvorada do Norte', 'uf' => 'GO'], + 4100806 => ['nome' => 'Alvorada do Sul', 'uf' => 'PR'], + 1400027 => ['nome' => 'Amajari', 'uf' => 'RR'], + 5000609 => ['nome' => 'Amambai', 'uf' => 'MS'], + 1600105 => ['nome' => 'Amapá', 'uf' => 'AP'], + 2100550 => ['nome' => 'Amapá do Maranhão', 'uf' => 'MA'], + 4100905 => ['nome' => 'Amaporã', 'uf' => 'PR'], + 2600906 => ['nome' => 'Amaraji', 'uf' => 'PE'], + 4300638 => ['nome' => 'Amaral Ferrador', 'uf' => 'RS'], + 5200829 => ['nome' => 'Amaralina', 'uf' => 'GO'], + 2200509 => ['nome' => 'Amarante', 'uf' => 'PI'], + 2100600 => ['nome' => 'Amarante do Maranhão', 'uf' => 'MA'], + 2901007 => ['nome' => 'Amargosa', 'uf' => 'BA'], + 1300060 => ['nome' => 'Amaturá', 'uf' => 'AM'], + 2901106 => ['nome' => 'Amélia Rodrigues', 'uf' => 'BA'], + 2901155 => ['nome' => 'América Dourada', 'uf' => 'BA'], + 3501608 => ['nome' => 'Americana', 'uf' => 'SP'], + 5200852 => ['nome' => 'Americano do Brasil', 'uf' => 'GO'], + 3501707 => ['nome' => 'Américo Brasiliense', 'uf' => 'SP'], + 3501806 => ['nome' => 'Américo de Campos', 'uf' => 'SP'], + 4300646 => ['nome' => 'Ametista do Sul', 'uf' => 'RS'], + 2300754 => ['nome' => 'Amontada', 'uf' => 'CE'], + 5200902 => ['nome' => 'Amorinópolis', 'uf' => 'GO'], + 2500734 => ['nome' => 'Amparo', 'uf' => 'PB'], + 3501905 => ['nome' => 'Amparo', 'uf' => 'SP'], + 2800100 => ['nome' => 'Amparo de São Francisco', 'uf' => 'SE'], + 3102506 => ['nome' => 'Amparo do Serra', 'uf' => 'MG'], + 4101002 => ['nome' => 'Ampére', 'uf' => 'PR'], + 2700201 => ['nome' => 'Anadia', 'uf' => 'AL'], + 2901205 => ['nome' => 'Anagé', 'uf' => 'BA'], + 4101051 => ['nome' => 'Anahy', 'uf' => 'PR'], + 1500701 => ['nome' => 'Anajás', 'uf' => 'PA'], + 2100709 => ['nome' => 'Anajatuba', 'uf' => 'MA'], + 3502002 => ['nome' => 'Analândia', 'uf' => 'SP'], + 1300086 => ['nome' => 'Anamã', 'uf' => 'AM'], + 1701002 => ['nome' => 'Ananás', 'uf' => 'TO'], + 1500800 => ['nome' => 'Ananindeua', 'uf' => 'PA'], + 5201108 => ['nome' => 'Anápolis', 'uf' => 'GO'], + 1500859 => ['nome' => 'Anapu', 'uf' => 'PA'], + 2100808 => ['nome' => 'Anapurus', 'uf' => 'MA'], + 5000708 => ['nome' => 'Anastácio', 'uf' => 'MS'], + 5000807 => ['nome' => 'Anaurilândia', 'uf' => 'MS'], + 4200804 => ['nome' => 'Anchieta', 'uf' => 'SC'], + 3200409 => ['nome' => 'Anchieta', 'uf' => 'ES'], + 2901304 => ['nome' => 'Andaraí', 'uf' => 'BA'], + 4101101 => ['nome' => 'Andirá', 'uf' => 'PR'], + 2901353 => ['nome' => 'Andorinha', 'uf' => 'BA'], + 3102605 => ['nome' => 'Andradas', 'uf' => 'MG'], + 3502101 => ['nome' => 'Andradina', 'uf' => 'SP'], + 4300661 => ['nome' => 'André da Rocha', 'uf' => 'RS'], + 3102803 => ['nome' => 'Andrelândia', 'uf' => 'MG'], + 3502200 => ['nome' => 'Angatuba', 'uf' => 'SP'], + 3102852 => ['nome' => 'Angelândia', 'uf' => 'MG'], + 5000856 => ['nome' => 'Angélica', 'uf' => 'MS'], + 2601003 => ['nome' => 'Angelim', 'uf' => 'PE'], + 4200903 => ['nome' => 'Angelina', 'uf' => 'SC'], + 2901403 => ['nome' => 'Angical', 'uf' => 'BA'], + 2200608 => ['nome' => 'Angical do Piauí', 'uf' => 'PI'], + 1701051 => ['nome' => 'Angico', 'uf' => 'TO'], + 2400802 => ['nome' => 'Angicos', 'uf' => 'RN'], + 3300100 => ['nome' => 'Angra dos Reis', 'uf' => 'RJ'], + 2901502 => ['nome' => 'Anguera', 'uf' => 'BA'], + 4101150 => ['nome' => 'Ângulo', 'uf' => 'PR'], + 5201207 => ['nome' => 'Anhanguera', 'uf' => 'GO'], + 3502309 => ['nome' => 'Anhembi', 'uf' => 'SP'], + 3502408 => ['nome' => 'Anhumas', 'uf' => 'SP'], + 5201306 => ['nome' => 'Anicuns', 'uf' => 'GO'], + 2200707 => ['nome' => 'Anísio de Abreu', 'uf' => 'PI'], + 4201000 => ['nome' => 'Anita Garibaldi', 'uf' => 'SC'], + 4201109 => ['nome' => 'Anitápolis', 'uf' => 'SC'], + 1300102 => ['nome' => 'Anori', 'uf' => 'AM'], + 4300703 => ['nome' => 'Anta Gorda', 'uf' => 'RS'], + 2901601 => ['nome' => 'Antas', 'uf' => 'BA'], + 4101200 => ['nome' => 'Antonina', 'uf' => 'PR'], + 2300804 => ['nome' => 'Antonina do Norte', 'uf' => 'CE'], + 2200806 => ['nome' => 'Antônio Almeida', 'uf' => 'PI'], + 2901700 => ['nome' => 'Antônio Cardoso', 'uf' => 'BA'], + 4201208 => ['nome' => 'Antônio Carlos', 'uf' => 'SC'], + 3102902 => ['nome' => 'Antônio Carlos', 'uf' => 'MG'], + 3103009 => ['nome' => 'Antônio Dias', 'uf' => 'MG'], + 2901809 => ['nome' => 'Antônio Gonçalves', 'uf' => 'BA'], + 5000906 => ['nome' => 'Antônio João', 'uf' => 'MS'], + 2400901 => ['nome' => 'Antônio Martins', 'uf' => 'RN'], + 4101309 => ['nome' => 'Antônio Olinto', 'uf' => 'PR'], + 4300802 => ['nome' => 'Antônio Prado', 'uf' => 'RS'], + 3103108 => ['nome' => 'Antônio Prado de Minas', 'uf' => 'MG'], + 2500775 => ['nome' => 'Aparecida', 'uf' => 'PB'], + 3502507 => ['nome' => 'Aparecida', 'uf' => 'SP'], + 3502606 => ['nome' => 'Aparecida d\'Oeste', 'uf' => 'SP'], + 5201405 => ['nome' => 'Aparecida de Goiânia', 'uf' => 'GO'], + 5201454 => ['nome' => 'Aparecida do Rio Doce', 'uf' => 'GO'], + 1701101 => ['nome' => 'Aparecida do Rio Negro', 'uf' => 'TO'], + 5001003 => ['nome' => 'Aparecida do Taboado', 'uf' => 'MS'], + 3300159 => ['nome' => 'Aperibé', 'uf' => 'RJ'], + 3200508 => ['nome' => 'Apiacá', 'uf' => 'ES'], + 5100805 => ['nome' => 'Apiacás', 'uf' => 'MT'], + 3502705 => ['nome' => 'Apiaí', 'uf' => 'SP'], + 2100832 => ['nome' => 'Apicum-Açu', 'uf' => 'MA'], + 4201257 => ['nome' => 'Apiúna', 'uf' => 'SC'], + 2401008 => ['nome' => 'Apodi', 'uf' => 'RN'], + 2901908 => ['nome' => 'Aporá', 'uf' => 'BA'], + 5201504 => ['nome' => 'Aporé', 'uf' => 'GO'], + 2901957 => ['nome' => 'Apuarema', 'uf' => 'BA'], + 4101408 => ['nome' => 'Apucarana', 'uf' => 'PR'], + 1300144 => ['nome' => 'Apuí', 'uf' => 'AM'], + 2300903 => ['nome' => 'Apuiarés', 'uf' => 'CE'], + 2800209 => ['nome' => 'Aquidabã', 'uf' => 'SE'], + 5001102 => ['nome' => 'Aquidauana', 'uf' => 'MS'], + 2301000 => ['nome' => 'Aquiraz', 'uf' => 'CE'], + 4201273 => ['nome' => 'Arabutã', 'uf' => 'SC'], + 2500809 => ['nome' => 'Araçagi', 'uf' => 'PB'], + 3103207 => ['nome' => 'Araçaí', 'uf' => 'MG'], + 2800308 => ['nome' => 'Aracaju', 'uf' => 'SE'], + 3502754 => ['nome' => 'Araçariguama', 'uf' => 'SP'], + 2902054 => ['nome' => 'Araças', 'uf' => 'BA'], + 2301109 => ['nome' => 'Aracati', 'uf' => 'CE'], + 2902005 => ['nome' => 'Aracatu', 'uf' => 'BA'], + 3502804 => ['nome' => 'Araçatuba', 'uf' => 'SP'], + 2902104 => ['nome' => 'Araci', 'uf' => 'BA'], + 3103306 => ['nome' => 'Aracitaba', 'uf' => 'MG'], + 2601052 => ['nome' => 'Araçoiaba', 'uf' => 'PE'], + 2301208 => ['nome' => 'Aracoiaba', 'uf' => 'CE'], + 3502903 => ['nome' => 'Araçoiaba da Serra', 'uf' => 'SP'], + 3200607 => ['nome' => 'Aracruz', 'uf' => 'ES'], + 5201603 => ['nome' => 'Araçu', 'uf' => 'GO'], + 3103405 => ['nome' => 'Araçuaí', 'uf' => 'MG'], + 5201702 => ['nome' => 'Aragarças', 'uf' => 'GO'], + 5201801 => ['nome' => 'Aragoiânia', 'uf' => 'GO'], + 1701309 => ['nome' => 'Aragominas', 'uf' => 'TO'], + 1701903 => ['nome' => 'Araguacema', 'uf' => 'TO'], + 1702000 => ['nome' => 'Araguaçu', 'uf' => 'TO'], + 5101001 => ['nome' => 'Araguaiana', 'uf' => 'MT'], + 1702109 => ['nome' => 'Araguaína', 'uf' => 'TO'], + 5101209 => ['nome' => 'Araguainha', 'uf' => 'MT'], + 1702158 => ['nome' => 'Araguanã', 'uf' => 'TO'], + 2100873 => ['nome' => 'Araguanã', 'uf' => 'MA'], + 5202155 => ['nome' => 'Araguapaz', 'uf' => 'GO'], + 3103504 => ['nome' => 'Araguari', 'uf' => 'MG'], + 1702208 => ['nome' => 'Araguatins', 'uf' => 'TO'], + 2100907 => ['nome' => 'Araioses', 'uf' => 'MA'], + 5001243 => ['nome' => 'Aral Moreira', 'uf' => 'MS'], + 2902203 => ['nome' => 'Aramari', 'uf' => 'BA'], + 4300851 => ['nome' => 'Arambaré', 'uf' => 'RS'], + 2100956 => ['nome' => 'Arame', 'uf' => 'MA'], + 3503000 => ['nome' => 'Aramina', 'uf' => 'SP'], + 3503109 => ['nome' => 'Arandu', 'uf' => 'SP'], + 3103603 => ['nome' => 'Arantina', 'uf' => 'MG'], + 3503158 => ['nome' => 'Arapeí', 'uf' => 'SP'], + 2700300 => ['nome' => 'Arapiraca', 'uf' => 'AL'], + 1702307 => ['nome' => 'Arapoema', 'uf' => 'TO'], + 3103702 => ['nome' => 'Araponga', 'uf' => 'MG'], + 4101507 => ['nome' => 'Arapongas', 'uf' => 'PR'], + 3103751 => ['nome' => 'Araporã', 'uf' => 'MG'], + 4101606 => ['nome' => 'Arapoti', 'uf' => 'PR'], + 4101655 => ['nome' => 'Arapuã', 'uf' => 'PR'], + 3103801 => ['nome' => 'Arapuá', 'uf' => 'MG'], + 5101258 => ['nome' => 'Araputanga', 'uf' => 'MT'], + 4201307 => ['nome' => 'Araquari', 'uf' => 'SC'], + 2500908 => ['nome' => 'Arara', 'uf' => 'PB'], + 4201406 => ['nome' => 'Araranguá', 'uf' => 'SC'], + 3503208 => ['nome' => 'Araraquara', 'uf' => 'SP'], + 3503307 => ['nome' => 'Araras', 'uf' => 'SP'], + 2301257 => ['nome' => 'Ararendá', 'uf' => 'CE'], + 2101004 => ['nome' => 'Arari', 'uf' => 'MA'], + 4300877 => ['nome' => 'Araricá', 'uf' => 'RS'], + 2301307 => ['nome' => 'Araripe', 'uf' => 'CE'], + 2601102 => ['nome' => 'Araripina', 'uf' => 'PE'], + 3300209 => ['nome' => 'Araruama', 'uf' => 'RJ'], + 4101705 => ['nome' => 'Araruna', 'uf' => 'PR'], + 2501005 => ['nome' => 'Araruna', 'uf' => 'PB'], + 2902252 => ['nome' => 'Arataca', 'uf' => 'BA'], + 4300901 => ['nome' => 'Aratiba', 'uf' => 'RS'], + 2301406 => ['nome' => 'Aratuba', 'uf' => 'CE'], + 2902302 => ['nome' => 'Aratuípe', 'uf' => 'BA'], + 2800407 => ['nome' => 'Arauá', 'uf' => 'SE'], + 4101804 => ['nome' => 'Araucária', 'uf' => 'PR'], + 3103900 => ['nome' => 'Araújos', 'uf' => 'MG'], + 3104007 => ['nome' => 'Araxá', 'uf' => 'MG'], + 3104106 => ['nome' => 'Arceburgo', 'uf' => 'MG'], + 3503356 => ['nome' => 'Arco-Íris', 'uf' => 'SP'], + 3104205 => ['nome' => 'Arcos', 'uf' => 'MG'], + 2601201 => ['nome' => 'Arcoverde', 'uf' => 'PE'], + 3104304 => ['nome' => 'Areado', 'uf' => 'MG'], + 3300225 => ['nome' => 'Areal', 'uf' => 'RJ'], + 3503406 => ['nome' => 'Arealva', 'uf' => 'SP'], + 2501104 => ['nome' => 'Areia', 'uf' => 'PB'], + 2401107 => ['nome' => 'Areia Branca', 'uf' => 'RN'], + 2800506 => ['nome' => 'Areia Branca', 'uf' => 'SE'], + 2501153 => ['nome' => 'Areia de Baraúnas', 'uf' => 'PB'], + 2501203 => ['nome' => 'Areial', 'uf' => 'PB'], + 3503505 => ['nome' => 'Areias', 'uf' => 'SP'], + 3503604 => ['nome' => 'Areiópolis', 'uf' => 'SP'], + 5101308 => ['nome' => 'Arenápolis', 'uf' => 'MT'], + 5202353 => ['nome' => 'Arenópolis', 'uf' => 'GO'], + 2401206 => ['nome' => 'Arês', 'uf' => 'RN'], + 3104403 => ['nome' => 'Argirita', 'uf' => 'MG'], + 3104452 => ['nome' => 'Aricanduva', 'uf' => 'MG'], + 3104502 => ['nome' => 'Arinos', 'uf' => 'MG'], + 5101407 => ['nome' => 'Aripuanã', 'uf' => 'MT'], + 1100023 => ['nome' => 'Ariquemes', 'uf' => 'RO'], + 3503703 => ['nome' => 'Ariranha', 'uf' => 'SP'], + 4101853 => ['nome' => 'Ariranha do Ivaí', 'uf' => 'PR'], + 3300233 => ['nome' => 'Armação dos Búzios', 'uf' => 'RJ'], + 4201505 => ['nome' => 'Armazém', 'uf' => 'SC'], + 2301505 => ['nome' => 'Arneiroz', 'uf' => 'CE'], + 2200905 => ['nome' => 'Aroazes', 'uf' => 'PI'], + 2501302 => ['nome' => 'Aroeiras', 'uf' => 'PB'], + 2200954 => ['nome' => 'Aroeiras do Itaim', 'uf' => 'PI'], + 2201002 => ['nome' => 'Arraial', 'uf' => 'PI'], + 3300258 => ['nome' => 'Arraial do Cabo', 'uf' => 'RJ'], + 1702406 => ['nome' => 'Arraias', 'uf' => 'TO'], + 4301008 => ['nome' => 'Arroio do Meio', 'uf' => 'RS'], + 4301073 => ['nome' => 'Arroio do Padre', 'uf' => 'RS'], + 4301057 => ['nome' => 'Arroio do Sal', 'uf' => 'RS'], + 4301206 => ['nome' => 'Arroio do Tigre', 'uf' => 'RS'], + 4301107 => ['nome' => 'Arroio dos Ratos', 'uf' => 'RS'], + 4301305 => ['nome' => 'Arroio Grande', 'uf' => 'RS'], + 4201604 => ['nome' => 'Arroio Trinta', 'uf' => 'SC'], + 3503802 => ['nome' => 'Artur Nogueira', 'uf' => 'SP'], + 5202502 => ['nome' => 'Aruanã', 'uf' => 'GO'], + 3503901 => ['nome' => 'Arujá', 'uf' => 'SP'], + 4201653 => ['nome' => 'Arvoredo', 'uf' => 'SC'], + 4301404 => ['nome' => 'Arvorezinha', 'uf' => 'RS'], + 4201703 => ['nome' => 'Ascurra', 'uf' => 'SC'], + 3503950 => ['nome' => 'Aspásia', 'uf' => 'SP'], + 4101903 => ['nome' => 'Assaí', 'uf' => 'PR'], + 2301604 => ['nome' => 'Assaré', 'uf' => 'CE'], + 3504008 => ['nome' => 'Assis', 'uf' => 'SP'], + 1200054 => ['nome' => 'Assis Brasil', 'uf' => 'AC'], + 4102000 => ['nome' => 'Assis Chateaubriand', 'uf' => 'PR'], + 2501351 => ['nome' => 'Assunção', 'uf' => 'PB'], + 2201051 => ['nome' => 'Assunção do Piauí', 'uf' => 'PI'], + 3104601 => ['nome' => 'Astolfo Dutra', 'uf' => 'MG'], + 4102109 => ['nome' => 'Astorga', 'uf' => 'PR'], + 4102208 => ['nome' => 'Atalaia', 'uf' => 'PR'], + 2700409 => ['nome' => 'Atalaia', 'uf' => 'AL'], + 1300201 => ['nome' => 'Atalaia do Norte', 'uf' => 'AM'], + 4201802 => ['nome' => 'Atalanta', 'uf' => 'SC'], + 3104700 => ['nome' => 'Ataléia', 'uf' => 'MG'], + 3504107 => ['nome' => 'Atibaia', 'uf' => 'SP'], + 3200706 => ['nome' => 'Atilio Vivacqua', 'uf' => 'ES'], + 1702554 => ['nome' => 'Augustinópolis', 'uf' => 'TO'], + 1500909 => ['nome' => 'Augusto Corrêa', 'uf' => 'PA'], + 3104809 => ['nome' => 'Augusto de Lima', 'uf' => 'MG'], + 4301503 => ['nome' => 'Augusto Pestana', 'uf' => 'RS'], + 2401305 => ['nome' => 'Augusto Severo (Campo Grande)', 'uf' => 'RN'], + 4301552 => ['nome' => 'Áurea', 'uf' => 'RS'], + 2902401 => ['nome' => 'Aurelino Leal', 'uf' => 'BA'], + 3504206 => ['nome' => 'Auriflama', 'uf' => 'SP'], + 5202601 => ['nome' => 'Aurilândia', 'uf' => 'GO'], + 2301703 => ['nome' => 'Aurora', 'uf' => 'CE'], + 4201901 => ['nome' => 'Aurora', 'uf' => 'SC'], + 1500958 => ['nome' => 'Aurora do Pará', 'uf' => 'PA'], + 1702703 => ['nome' => 'Aurora do Tocantins', 'uf' => 'TO'], + 1300300 => ['nome' => 'Autazes', 'uf' => 'AM'], + 3504305 => ['nome' => 'Avaí', 'uf' => 'SP'], + 3504404 => ['nome' => 'Avanhandava', 'uf' => 'SP'], + 3504503 => ['nome' => 'Avaré', 'uf' => 'SP'], + 1501006 => ['nome' => 'Aveiro', 'uf' => 'PA'], + 2201101 => ['nome' => 'Avelino Lopes', 'uf' => 'PI'], + 5202809 => ['nome' => 'Avelinópolis', 'uf' => 'GO'], + 2101103 => ['nome' => 'Axixá', 'uf' => 'MA'], + 1702901 => ['nome' => 'Axixá do Tocantins', 'uf' => 'TO'], + 1703008 => ['nome' => 'Babaçulândia', 'uf' => 'TO'], + 2101202 => ['nome' => 'Bacabal', 'uf' => 'MA'], + 2101251 => ['nome' => 'Bacabeira', 'uf' => 'MA'], + 2101301 => ['nome' => 'Bacuri', 'uf' => 'MA'], + 2101350 => ['nome' => 'Bacurituba', 'uf' => 'MA'], + 3504602 => ['nome' => 'Bady Bassitt', 'uf' => 'SP'], + 3104908 => ['nome' => 'Baependi', 'uf' => 'MG'], + 4301602 => ['nome' => 'Bagé', 'uf' => 'RS'], + 1501105 => ['nome' => 'Bagre', 'uf' => 'PA'], + 2501401 => ['nome' => 'Baía da Traição', 'uf' => 'PB'], + 2401404 => ['nome' => 'Baía Formosa', 'uf' => 'RN'], + 2902500 => ['nome' => 'Baianópolis', 'uf' => 'BA'], + 1501204 => ['nome' => 'Baião', 'uf' => 'PA'], + 2902609 => ['nome' => 'Baixa Grande', 'uf' => 'BA'], + 2201150 => ['nome' => 'Baixa Grande do Ribeiro', 'uf' => 'PI'], + 2301802 => ['nome' => 'Baixio', 'uf' => 'CE'], + 3200805 => ['nome' => 'Baixo Guandu', 'uf' => 'ES'], + 3504701 => ['nome' => 'Balbinos', 'uf' => 'SP'], + 3105004 => ['nome' => 'Baldim', 'uf' => 'MG'], + 5203104 => ['nome' => 'Baliza', 'uf' => 'GO'], + 4201950 => ['nome' => 'Balneário Arroio do Silva', 'uf' => 'SC'], + 4202057 => ['nome' => 'Balneário Barra do Sul', 'uf' => 'SC'], + 4202008 => ['nome' => 'Balneário Camboriú', 'uf' => 'SC'], + 4202073 => ['nome' => 'Balneário Gaivota', 'uf' => 'SC'], + 4212809 => ['nome' => 'Balneário Piçarras', 'uf' => 'SC'], + 4301636 => ['nome' => 'Balneário Pinhal', 'uf' => 'RS'], + 4220000 => ['nome' => 'Balneário Rincão', 'uf' => 'SC'], + 4102307 => ['nome' => 'Balsa Nova', 'uf' => 'PR'], + 3504800 => ['nome' => 'Bálsamo', 'uf' => 'SP'], + 2101400 => ['nome' => 'Balsas', 'uf' => 'MA'], + 3105103 => ['nome' => 'Bambuí', 'uf' => 'MG'], + 2301851 => ['nome' => 'Banabuiú', 'uf' => 'CE'], + 3504909 => ['nome' => 'Bananal', 'uf' => 'SP'], + 2501500 => ['nome' => 'Bananeiras', 'uf' => 'PB'], + 3105202 => ['nome' => 'Bandeira', 'uf' => 'MG'], + 3105301 => ['nome' => 'Bandeira do Sul', 'uf' => 'MG'], + 4202081 => ['nome' => 'Bandeirante', 'uf' => 'SC'], + 5001508 => ['nome' => 'Bandeirantes', 'uf' => 'MS'], + 4102406 => ['nome' => 'Bandeirantes', 'uf' => 'PR'], + 1703057 => ['nome' => 'Bandeirantes do Tocantins', 'uf' => 'TO'], + 1501253 => ['nome' => 'Bannach', 'uf' => 'PA'], + 2902658 => ['nome' => 'Banzaê', 'uf' => 'BA'], + 4301651 => ['nome' => 'Barão', 'uf' => 'RS'], + 3505005 => ['nome' => 'Barão de Antonina', 'uf' => 'SP'], + 3105400 => ['nome' => 'Barão de Cocais', 'uf' => 'MG'], + 4301701 => ['nome' => 'Barão de Cotegipe', 'uf' => 'RS'], + 2101509 => ['nome' => 'Barão de Grajaú', 'uf' => 'MA'], + 5101605 => ['nome' => 'Barão de Melgaço', 'uf' => 'MT'], + 3105509 => ['nome' => 'Barão de Monte Alto', 'uf' => 'MG'], + 4301750 => ['nome' => 'Barão do Triunfo', 'uf' => 'RS'], + 2401453 => ['nome' => 'Baraúna', 'uf' => 'RN'], + 2501534 => ['nome' => 'Baraúna', 'uf' => 'PB'], + 3105608 => ['nome' => 'Barbacena', 'uf' => 'MG'], + 2301901 => ['nome' => 'Barbalha', 'uf' => 'CE'], + 3505104 => ['nome' => 'Barbosa', 'uf' => 'SP'], + 4102505 => ['nome' => 'Barbosa Ferraz', 'uf' => 'PR'], + 1501303 => ['nome' => 'Barcarena', 'uf' => 'PA'], + 2401503 => ['nome' => 'Barcelona', 'uf' => 'RN'], + 1300409 => ['nome' => 'Barcelos', 'uf' => 'AM'], + 3505203 => ['nome' => 'Bariri', 'uf' => 'SP'], + 2902708 => ['nome' => 'Barra', 'uf' => 'BA'], + 4202099 => ['nome' => 'Barra Bonita', 'uf' => 'SC'], + 3505302 => ['nome' => 'Barra Bonita', 'uf' => 'SP'], + 2201176 => ['nome' => 'Barra D\'Alcântara', 'uf' => 'PI'], + 2902807 => ['nome' => 'Barra da Estiva', 'uf' => 'BA'], + 2601300 => ['nome' => 'Barra de Guabiraba', 'uf' => 'PE'], + 2501609 => ['nome' => 'Barra de Santa Rosa', 'uf' => 'PB'], + 2501575 => ['nome' => 'Barra de Santana', 'uf' => 'PB'], + 2700508 => ['nome' => 'Barra de Santo Antônio', 'uf' => 'AL'], + 3200904 => ['nome' => 'Barra de São Francisco', 'uf' => 'ES'], + 2501708 => ['nome' => 'Barra de São Miguel', 'uf' => 'PB'], + 2700607 => ['nome' => 'Barra de São Miguel', 'uf' => 'AL'], + 5101704 => ['nome' => 'Barra do Bugres', 'uf' => 'MT'], + 3505351 => ['nome' => 'Barra do Chapéu', 'uf' => 'SP'], + 2902906 => ['nome' => 'Barra do Choça', 'uf' => 'BA'], + 2101608 => ['nome' => 'Barra do Corda', 'uf' => 'MA'], + 5101803 => ['nome' => 'Barra do Garças', 'uf' => 'MT'], + 4301859 => ['nome' => 'Barra do Guarita', 'uf' => 'RS'], + 4102703 => ['nome' => 'Barra do Jacaré', 'uf' => 'PR'], + 2903003 => ['nome' => 'Barra do Mendes', 'uf' => 'BA'], + 1703073 => ['nome' => 'Barra do Ouro', 'uf' => 'TO'], + 3300308 => ['nome' => 'Barra do Piraí', 'uf' => 'RJ'], + 4301875 => ['nome' => 'Barra do Quaraí', 'uf' => 'RS'], + 4301909 => ['nome' => 'Barra do Ribeiro', 'uf' => 'RS'], + 4301925 => ['nome' => 'Barra do Rio Azul', 'uf' => 'RS'], + 2903102 => ['nome' => 'Barra do Rocha', 'uf' => 'BA'], + 3505401 => ['nome' => 'Barra do Turvo', 'uf' => 'SP'], + 2800605 => ['nome' => 'Barra dos Coqueiros', 'uf' => 'SE'], + 4301958 => ['nome' => 'Barra Funda', 'uf' => 'RS'], + 3105707 => ['nome' => 'Barra Longa', 'uf' => 'MG'], + 3300407 => ['nome' => 'Barra Mansa', 'uf' => 'RJ'], + 4202107 => ['nome' => 'Barra Velha', 'uf' => 'SC'], + 4301800 => ['nome' => 'Barracão', 'uf' => 'RS'], + 4102604 => ['nome' => 'Barracão', 'uf' => 'PR'], + 2201200 => ['nome' => 'Barras', 'uf' => 'PI'], + 2301950 => ['nome' => 'Barreira', 'uf' => 'CE'], + 2903201 => ['nome' => 'Barreiras', 'uf' => 'BA'], + 2201309 => ['nome' => 'Barreiras do Piauí', 'uf' => 'PI'], + 1300508 => ['nome' => 'Barreirinha', 'uf' => 'AM'], + 2101707 => ['nome' => 'Barreirinhas', 'uf' => 'MA'], + 2601409 => ['nome' => 'Barreiros', 'uf' => 'PE'], + 3505500 => ['nome' => 'Barretos', 'uf' => 'SP'], + 3505609 => ['nome' => 'Barrinha', 'uf' => 'SP'], + 2302008 => ['nome' => 'Barro', 'uf' => 'CE'], + 2903235 => ['nome' => 'Barro Alto', 'uf' => 'BA'], + 5203203 => ['nome' => 'Barro Alto', 'uf' => 'GO'], + 2201408 => ['nome' => 'Barro Duro', 'uf' => 'PI'], + 2903300 => ['nome' => 'Barro Preto', 'uf' => 'BA'], + 2903276 => ['nome' => 'Barrocas', 'uf' => 'BA'], + 1703107 => ['nome' => 'Barrolândia', 'uf' => 'TO'], + 2302057 => ['nome' => 'Barroquinha', 'uf' => 'CE'], + 4302006 => ['nome' => 'Barros Cassal', 'uf' => 'RS'], + 3105905 => ['nome' => 'Barroso', 'uf' => 'MG'], + 3505708 => ['nome' => 'Barueri', 'uf' => 'SP'], + 3505807 => ['nome' => 'Bastos', 'uf' => 'SP'], + 5001904 => ['nome' => 'Bataguassu', 'uf' => 'MS'], + 2201507 => ['nome' => 'Batalha', 'uf' => 'PI'], + 2700706 => ['nome' => 'Batalha', 'uf' => 'AL'], + 3505906 => ['nome' => 'Batatais', 'uf' => 'SP'], + 5002001 => ['nome' => 'Batayporã', 'uf' => 'MS'], + 2302107 => ['nome' => 'Baturité', 'uf' => 'CE'], + 3506003 => ['nome' => 'Bauru', 'uf' => 'SP'], + 2501807 => ['nome' => 'Bayeux', 'uf' => 'PB'], + 3506102 => ['nome' => 'Bebedouro', 'uf' => 'SP'], + 2302206 => ['nome' => 'Beberibe', 'uf' => 'CE'], + 2302305 => ['nome' => 'Bela Cruz', 'uf' => 'CE'], + 5002100 => ['nome' => 'Bela Vista', 'uf' => 'MS'], + 4102752 => ['nome' => 'Bela Vista da Caroba', 'uf' => 'PR'], + 5203302 => ['nome' => 'Bela Vista de Goiás', 'uf' => 'GO'], + 3106002 => ['nome' => 'Bela Vista de Minas', 'uf' => 'MG'], + 2101772 => ['nome' => 'Bela Vista do Maranhão', 'uf' => 'MA'], + 4102802 => ['nome' => 'Bela Vista do Paraíso', 'uf' => 'PR'], + 2201556 => ['nome' => 'Bela Vista do Piauí', 'uf' => 'PI'], + 4202131 => ['nome' => 'Bela Vista do Toldo', 'uf' => 'SC'], + 2101731 => ['nome' => 'Belágua', 'uf' => 'MA'], + 1501402 => ['nome' => 'Belém', 'uf' => 'PA'], + 2501906 => ['nome' => 'Belém', 'uf' => 'PB'], + 2700805 => ['nome' => 'Belém', 'uf' => 'AL'], + 2601508 => ['nome' => 'Belém de Maria', 'uf' => 'PE'], + 2502003 => ['nome' => 'Belém do Brejo do Cruz', 'uf' => 'PB'], + 2201572 => ['nome' => 'Belém do Piauí', 'uf' => 'PI'], + 2601607 => ['nome' => 'Belém do São Francisco', 'uf' => 'PE'], + 3300456 => ['nome' => 'Belford Roxo', 'uf' => 'RJ'], + 3106101 => ['nome' => 'Belmiro Braga', 'uf' => 'MG'], + 4202156 => ['nome' => 'Belmonte', 'uf' => 'SC'], + 2903409 => ['nome' => 'Belmonte', 'uf' => 'BA'], + 2903508 => ['nome' => 'Belo Campo', 'uf' => 'BA'], + 3106200 => ['nome' => 'Belo Horizonte', 'uf' => 'MG'], + 2601706 => ['nome' => 'Belo Jardim', 'uf' => 'PE'], + 2700904 => ['nome' => 'Belo Monte', 'uf' => 'AL'], + 3106309 => ['nome' => 'Belo Oriente', 'uf' => 'MG'], + 3106408 => ['nome' => 'Belo Vale', 'uf' => 'MG'], + 1501451 => ['nome' => 'Belterra', 'uf' => 'PA'], + 2201606 => ['nome' => 'Beneditinos', 'uf' => 'PI'], + 2101806 => ['nome' => 'Benedito Leite', 'uf' => 'MA'], + 4202206 => ['nome' => 'Benedito Novo', 'uf' => 'SC'], + 1501501 => ['nome' => 'Benevides', 'uf' => 'PA'], + 1300607 => ['nome' => 'Benjamin Constant', 'uf' => 'AM'], + 4302055 => ['nome' => 'Benjamin Constant do Sul', 'uf' => 'RS'], + 3506201 => ['nome' => 'Bento de Abreu', 'uf' => 'SP'], + 2401602 => ['nome' => 'Bento Fernandes', 'uf' => 'RN'], + 4302105 => ['nome' => 'Bento Gonçalves', 'uf' => 'RS'], + 2101905 => ['nome' => 'Bequimão', 'uf' => 'MA'], + 3106507 => ['nome' => 'Berilo', 'uf' => 'MG'], + 3106655 => ['nome' => 'Berizal', 'uf' => 'MG'], + 2502052 => ['nome' => 'Bernardino Batista', 'uf' => 'PB'], + 3506300 => ['nome' => 'Bernardino de Campos', 'uf' => 'SP'], + 2101939 => ['nome' => 'Bernardo do Mearim', 'uf' => 'MA'], + 1703206 => ['nome' => 'Bernardo Sayão', 'uf' => 'TO'], + 3506359 => ['nome' => 'Bertioga', 'uf' => 'SP'], + 2201705 => ['nome' => 'Bertolínia', 'uf' => 'PI'], + 3106606 => ['nome' => 'Bertópolis', 'uf' => 'MG'], + 1300631 => ['nome' => 'Beruri', 'uf' => 'AM'], + 2601805 => ['nome' => 'Betânia', 'uf' => 'PE'], + 2201739 => ['nome' => 'Betânia do Piauí', 'uf' => 'PI'], + 3106705 => ['nome' => 'Betim', 'uf' => 'MG'], + 2601904 => ['nome' => 'Bezerros', 'uf' => 'PE'], + 3106804 => ['nome' => 'Bias Fortes', 'uf' => 'MG'], + 3106903 => ['nome' => 'Bicas', 'uf' => 'MG'], + 4202305 => ['nome' => 'Biguaçu', 'uf' => 'SC'], + 3506409 => ['nome' => 'Bilac', 'uf' => 'SP'], + 3107000 => ['nome' => 'Biquinhas', 'uf' => 'MG'], + 3506508 => ['nome' => 'Birigui', 'uf' => 'SP'], + 3506607 => ['nome' => 'Biritiba-Mirim', 'uf' => 'SP'], + 2903607 => ['nome' => 'Biritinga', 'uf' => 'BA'], + 4102901 => ['nome' => 'Bituruna', 'uf' => 'PR'], + 4202404 => ['nome' => 'Blumenau', 'uf' => 'SC'], + 4103008 => ['nome' => 'Boa Esperança', 'uf' => 'PR'], + 3107109 => ['nome' => 'Boa Esperança', 'uf' => 'MG'], + 3201001 => ['nome' => 'Boa Esperança', 'uf' => 'ES'], + 4103024 => ['nome' => 'Boa Esperança do Iguaçu', 'uf' => 'PR'], + 3506706 => ['nome' => 'Boa Esperança do Sul', 'uf' => 'SP'], + 2201770 => ['nome' => 'Boa Hora', 'uf' => 'PI'], + 2903706 => ['nome' => 'Boa Nova', 'uf' => 'BA'], + 2502102 => ['nome' => 'Boa Ventura', 'uf' => 'PB'], + 4103040 => ['nome' => 'Boa Ventura de São Roque', 'uf' => 'PR'], + 2302404 => ['nome' => 'Boa Viagem', 'uf' => 'CE'], + 1400100 => ['nome' => 'Boa Vista', 'uf' => 'RR'], + 2502151 => ['nome' => 'Boa Vista', 'uf' => 'PB'], + 4103057 => ['nome' => 'Boa Vista da Aparecida', 'uf' => 'PR'], + 4302154 => ['nome' => 'Boa Vista das Missões', 'uf' => 'RS'], + 4302204 => ['nome' => 'Boa Vista do Buricá', 'uf' => 'RS'], + 4302220 => ['nome' => 'Boa Vista do Cadeado', 'uf' => 'RS'], + 2101970 => ['nome' => 'Boa Vista do Gurupi', 'uf' => 'MA'], + 4302238 => ['nome' => 'Boa Vista do Incra', 'uf' => 'RS'], + 1300680 => ['nome' => 'Boa Vista do Ramos', 'uf' => 'AM'], + 4302253 => ['nome' => 'Boa Vista do Sul', 'uf' => 'RS'], + 2903805 => ['nome' => 'Boa Vista do Tupim', 'uf' => 'BA'], + 2701001 => ['nome' => 'Boca da Mata', 'uf' => 'AL'], + 1300706 => ['nome' => 'Boca do Acre', 'uf' => 'AM'], + 2201804 => ['nome' => 'Bocaina', 'uf' => 'PI'], + 3506805 => ['nome' => 'Bocaina', 'uf' => 'SP'], + 3107208 => ['nome' => 'Bocaina de Minas', 'uf' => 'MG'], + 4202438 => ['nome' => 'Bocaina do Sul', 'uf' => 'SC'], + 3107307 => ['nome' => 'Bocaiúva', 'uf' => 'MG'], + 4103107 => ['nome' => 'Bocaiúva do Sul', 'uf' => 'PR'], + 2401651 => ['nome' => 'Bodó', 'uf' => 'RN'], + 2602001 => ['nome' => 'Bodocó', 'uf' => 'PE'], + 5002159 => ['nome' => 'Bodoquena', 'uf' => 'MS'], + 3506904 => ['nome' => 'Bofete', 'uf' => 'SP'], + 3507001 => ['nome' => 'Boituva', 'uf' => 'SP'], + 2602100 => ['nome' => 'Bom Conselho', 'uf' => 'PE'], + 3107406 => ['nome' => 'Bom Despacho', 'uf' => 'MG'], + 3300506 => ['nome' => 'Bom Jardim', 'uf' => 'RJ'], + 2602209 => ['nome' => 'Bom Jardim', 'uf' => 'PE'], + 2102002 => ['nome' => 'Bom Jardim', 'uf' => 'MA'], + 4202503 => ['nome' => 'Bom Jardim da Serra', 'uf' => 'SC'], + 5203401 => ['nome' => 'Bom Jardim de Goiás', 'uf' => 'GO'], + 3107505 => ['nome' => 'Bom Jardim de Minas', 'uf' => 'MG'], + 4202537 => ['nome' => 'Bom Jesus', 'uf' => 'SC'], + 4302303 => ['nome' => 'Bom Jesus', 'uf' => 'RS'], + 2201903 => ['nome' => 'Bom Jesus', 'uf' => 'PI'], + 2401701 => ['nome' => 'Bom Jesus', 'uf' => 'RN'], + 2502201 => ['nome' => 'Bom Jesus', 'uf' => 'PB'], + 2903904 => ['nome' => 'Bom Jesus da Lapa', 'uf' => 'BA'], + 3107604 => ['nome' => 'Bom Jesus da Penha', 'uf' => 'MG'], + 2903953 => ['nome' => 'Bom Jesus da Serra', 'uf' => 'BA'], + 2102036 => ['nome' => 'Bom Jesus das Selvas', 'uf' => 'MA'], + 5203500 => ['nome' => 'Bom Jesus de Goiás', 'uf' => 'GO'], + 3107703 => ['nome' => 'Bom Jesus do Amparo', 'uf' => 'MG'], + 5101852 => ['nome' => 'Bom Jesus do Araguaia', 'uf' => 'MT'], + 3107802 => ['nome' => 'Bom Jesus do Galho', 'uf' => 'MG'], + 3300605 => ['nome' => 'Bom Jesus do Itabapoana', 'uf' => 'RJ'], + 3201100 => ['nome' => 'Bom Jesus do Norte', 'uf' => 'ES'], + 4202578 => ['nome' => 'Bom Jesus do Oeste', 'uf' => 'SC'], + 4103156 => ['nome' => 'Bom Jesus do Sul', 'uf' => 'PR'], + 1501576 => ['nome' => 'Bom Jesus do Tocantins', 'uf' => 'PA'], + 1703305 => ['nome' => 'Bom Jesus do Tocantins', 'uf' => 'TO'], + 3507100 => ['nome' => 'Bom Jesus dos Perdões', 'uf' => 'SP'], + 2102077 => ['nome' => 'Bom Lugar', 'uf' => 'MA'], + 4302352 => ['nome' => 'Bom Princípio', 'uf' => 'RS'], + 2201919 => ['nome' => 'Bom Princípio do Piauí', 'uf' => 'PI'], + 4302378 => ['nome' => 'Bom Progresso', 'uf' => 'RS'], + 3107901 => ['nome' => 'Bom Repouso', 'uf' => 'MG'], + 4202602 => ['nome' => 'Bom Retiro', 'uf' => 'SC'], + 4302402 => ['nome' => 'Bom Retiro do Sul', 'uf' => 'RS'], + 3108008 => ['nome' => 'Bom Sucesso', 'uf' => 'MG'], + 4103206 => ['nome' => 'Bom Sucesso', 'uf' => 'PR'], + 2502300 => ['nome' => 'Bom Sucesso', 'uf' => 'PB'], + 3507159 => ['nome' => 'Bom Sucesso de Itararé', 'uf' => 'SP'], + 4103222 => ['nome' => 'Bom Sucesso do Sul', 'uf' => 'PR'], + 4202453 => ['nome' => 'Bombinhas', 'uf' => 'SC'], + 1400159 => ['nome' => 'Bonfim', 'uf' => 'RR'], + 3108107 => ['nome' => 'Bonfim', 'uf' => 'MG'], + 2201929 => ['nome' => 'Bonfim do Piauí', 'uf' => 'PI'], + 5203559 => ['nome' => 'Bonfinópolis', 'uf' => 'GO'], + 3108206 => ['nome' => 'Bonfinópolis de Minas', 'uf' => 'MG'], + 2904001 => ['nome' => 'Boninal', 'uf' => 'BA'], + 2602308 => ['nome' => 'Bonito', 'uf' => 'PE'], + 2904050 => ['nome' => 'Bonito', 'uf' => 'BA'], + 1501600 => ['nome' => 'Bonito', 'uf' => 'PA'], + 5002209 => ['nome' => 'Bonito', 'uf' => 'MS'], + 3108255 => ['nome' => 'Bonito de Minas', 'uf' => 'MG'], + 2502409 => ['nome' => 'Bonito de Santa Fé', 'uf' => 'PB'], + 5203575 => ['nome' => 'Bonópolis', 'uf' => 'GO'], + 2502508 => ['nome' => 'Boqueirão', 'uf' => 'PB'], + 4302451 => ['nome' => 'Boqueirão do Leão', 'uf' => 'RS'], + 2201945 => ['nome' => 'Boqueirão do Piauí', 'uf' => 'PI'], + 2800670 => ['nome' => 'Boquim', 'uf' => 'SE'], + 2904100 => ['nome' => 'Boquira', 'uf' => 'BA'], + 3507209 => ['nome' => 'Borá', 'uf' => 'SP'], + 3507308 => ['nome' => 'Boracéia', 'uf' => 'SP'], + 1300805 => ['nome' => 'Borba', 'uf' => 'AM'], + 2502706 => ['nome' => 'Borborema', 'uf' => 'PB'], + 3507407 => ['nome' => 'Borborema', 'uf' => 'SP'], + 3108305 => ['nome' => 'Borda da Mata', 'uf' => 'MG'], + 3507456 => ['nome' => 'Borebi', 'uf' => 'SP'], + 4103305 => ['nome' => 'Borrazópolis', 'uf' => 'PR'], + 4302501 => ['nome' => 'Bossoroca', 'uf' => 'RS'], + 3108404 => ['nome' => 'Botelhos', 'uf' => 'MG'], + 3507506 => ['nome' => 'Botucatu', 'uf' => 'SP'], + 3108503 => ['nome' => 'Botumirim', 'uf' => 'MG'], + 2904209 => ['nome' => 'Botuporã', 'uf' => 'BA'], + 4202701 => ['nome' => 'Botuverá', 'uf' => 'SC'], + 4302584 => ['nome' => 'Bozano', 'uf' => 'RS'], + 4202800 => ['nome' => 'Braço do Norte', 'uf' => 'SC'], + 4202859 => ['nome' => 'Braço do Trombudo', 'uf' => 'SC'], + 4302600 => ['nome' => 'Braga', 'uf' => 'RS'], + 1501709 => ['nome' => 'Bragança', 'uf' => 'PA'], + 3507605 => ['nome' => 'Bragança Paulista', 'uf' => 'SP'], + 4103354 => ['nome' => 'Braganey', 'uf' => 'PR'], + 2701100 => ['nome' => 'Branquinha', 'uf' => 'AL'], + 3108701 => ['nome' => 'Brás Pires', 'uf' => 'MG'], + 1501725 => ['nome' => 'Brasil Novo', 'uf' => 'PA'], + 5002308 => ['nome' => 'Brasilândia', 'uf' => 'MS'], + 3108552 => ['nome' => 'Brasilândia de Minas', 'uf' => 'MG'], + 4103370 => ['nome' => 'Brasilândia do Sul', 'uf' => 'PR'], + 1703602 => ['nome' => 'Brasilândia do Tocantins', 'uf' => 'TO'], + 1200104 => ['nome' => 'Brasiléia', 'uf' => 'AC'], + 2201960 => ['nome' => 'Brasileira', 'uf' => 'PI'], + 5300108 => ['nome' => 'Brasília', 'uf' => 'DF'], + 3108602 => ['nome' => 'Brasília de Minas', 'uf' => 'MG'], + 5101902 => ['nome' => 'Brasnorte', 'uf' => 'MT'], + 3507704 => ['nome' => 'Braúna', 'uf' => 'SP'], + 3108800 => ['nome' => 'Braúnas', 'uf' => 'MG'], + 5203609 => ['nome' => 'Brazabrantes', 'uf' => 'GO'], + 3108909 => ['nome' => 'Brazópolis', 'uf' => 'MG'], + 2602407 => ['nome' => 'Brejão', 'uf' => 'PE'], + 3201159 => ['nome' => 'Brejetuba', 'uf' => 'ES'], + 2401800 => ['nome' => 'Brejinho', 'uf' => 'RN'], + 2602506 => ['nome' => 'Brejinho', 'uf' => 'PE'], + 1703701 => ['nome' => 'Brejinho de Nazaré', 'uf' => 'TO'], + 2102101 => ['nome' => 'Brejo', 'uf' => 'MA'], + 3507753 => ['nome' => 'Brejo Alegre', 'uf' => 'SP'], + 2602605 => ['nome' => 'Brejo da Madre de Deus', 'uf' => 'PE'], + 2102150 => ['nome' => 'Brejo de Areia', 'uf' => 'MA'], + 2502805 => ['nome' => 'Brejo do Cruz', 'uf' => 'PB'], + 2201988 => ['nome' => 'Brejo do Piauí', 'uf' => 'PI'], + 2502904 => ['nome' => 'Brejo dos Santos', 'uf' => 'PB'], + 2800704 => ['nome' => 'Brejo Grande', 'uf' => 'SE'], + 1501758 => ['nome' => 'Brejo Grande do Araguaia', 'uf' => 'PA'], + 2302503 => ['nome' => 'Brejo Santo', 'uf' => 'CE'], + 2904308 => ['nome' => 'Brejões', 'uf' => 'BA'], + 2904407 => ['nome' => 'Brejolândia', 'uf' => 'BA'], + 1501782 => ['nome' => 'Breu Branco', 'uf' => 'PA'], + 1501808 => ['nome' => 'Breves', 'uf' => 'PA'], + 5203807 => ['nome' => 'Britânia', 'uf' => 'GO'], + 4302659 => ['nome' => 'Brochier', 'uf' => 'RS'], + 3507803 => ['nome' => 'Brodowski', 'uf' => 'SP'], + 3507902 => ['nome' => 'Brotas', 'uf' => 'SP'], + 2904506 => ['nome' => 'Brotas de Macaúbas', 'uf' => 'BA'], + 3109006 => ['nome' => 'Brumadinho', 'uf' => 'MG'], + 2904605 => ['nome' => 'Brumado', 'uf' => 'BA'], + 4202875 => ['nome' => 'Brunópolis', 'uf' => 'SC'], + 4202909 => ['nome' => 'Brusque', 'uf' => 'SC'], + 3109105 => ['nome' => 'Bueno Brandão', 'uf' => 'MG'], + 3109204 => ['nome' => 'Buenópolis', 'uf' => 'MG'], + 2602704 => ['nome' => 'Buenos Aires', 'uf' => 'PE'], + 2904704 => ['nome' => 'Buerarema', 'uf' => 'BA'], + 3109253 => ['nome' => 'Bugre', 'uf' => 'MG'], + 2602803 => ['nome' => 'Buíque', 'uf' => 'PE'], + 1200138 => ['nome' => 'Bujari', 'uf' => 'AC'], + 1501907 => ['nome' => 'Bujaru', 'uf' => 'PA'], + 3508009 => ['nome' => 'Buri', 'uf' => 'SP'], + 3508108 => ['nome' => 'Buritama', 'uf' => 'SP'], + 2102200 => ['nome' => 'Buriti', 'uf' => 'MA'], + 5203906 => ['nome' => 'Buriti Alegre', 'uf' => 'GO'], + 2102309 => ['nome' => 'Buriti Bravo', 'uf' => 'MA'], + 5203939 => ['nome' => 'Buriti de Goiás', 'uf' => 'GO'], + 1703800 => ['nome' => 'Buriti do Tocantins', 'uf' => 'TO'], + 2202000 => ['nome' => 'Buriti dos Lopes', 'uf' => 'PI'], + 2202026 => ['nome' => 'Buriti dos Montes', 'uf' => 'PI'], + 2102325 => ['nome' => 'Buriticupu', 'uf' => 'MA'], + 5203962 => ['nome' => 'Buritinópolis', 'uf' => 'GO'], + 2904753 => ['nome' => 'Buritirama', 'uf' => 'BA'], + 2102358 => ['nome' => 'Buritirana', 'uf' => 'MA'], + 1100452 => ['nome' => 'Buritis', 'uf' => 'RO'], + 3109303 => ['nome' => 'Buritis', 'uf' => 'MG'], + 3508207 => ['nome' => 'Buritizal', 'uf' => 'SP'], + 3109402 => ['nome' => 'Buritizeiro', 'uf' => 'MG'], + 4302709 => ['nome' => 'Butiá', 'uf' => 'RS'], + 1300839 => ['nome' => 'Caapiranga', 'uf' => 'AM'], + 2503001 => ['nome' => 'Caaporã', 'uf' => 'PB'], + 5002407 => ['nome' => 'Caarapó', 'uf' => 'MS'], + 2904803 => ['nome' => 'Caatiba', 'uf' => 'BA'], + 2503100 => ['nome' => 'Cabaceiras', 'uf' => 'PB'], + 2904852 => ['nome' => 'Cabaceiras do Paraguaçu', 'uf' => 'BA'], + 3109451 => ['nome' => 'Cabeceira Grande', 'uf' => 'MG'], + 5204003 => ['nome' => 'Cabeceiras', 'uf' => 'GO'], + 2202059 => ['nome' => 'Cabeceiras do Piauí', 'uf' => 'PI'], + 2503209 => ['nome' => 'Cabedelo', 'uf' => 'PB'], + 1100031 => ['nome' => 'Cabixi', 'uf' => 'RO'], + 2602902 => ['nome' => 'Cabo de Santo Agostinho', 'uf' => 'PE'], + 3300704 => ['nome' => 'Cabo Frio', 'uf' => 'RJ'], + 3109501 => ['nome' => 'Cabo Verde', 'uf' => 'MG'], + 3508306 => ['nome' => 'Cabrália Paulista', 'uf' => 'SP'], + 3508405 => ['nome' => 'Cabreúva', 'uf' => 'SP'], + 2603009 => ['nome' => 'Cabrobó', 'uf' => 'PE'], + 4203006 => ['nome' => 'Caçador', 'uf' => 'SC'], + 3508504 => ['nome' => 'Caçapava', 'uf' => 'SP'], + 4302808 => ['nome' => 'Caçapava do Sul', 'uf' => 'RS'], + 1100601 => ['nome' => 'Cacaulândia', 'uf' => 'RO'], + 4302907 => ['nome' => 'Cacequi', 'uf' => 'RS'], + 5102504 => ['nome' => 'Cáceres', 'uf' => 'MT'], + 2904902 => ['nome' => 'Cachoeira', 'uf' => 'BA'], + 5204102 => ['nome' => 'Cachoeira Alta', 'uf' => 'GO'], + 3109600 => ['nome' => 'Cachoeira da Prata', 'uf' => 'MG'], + 5204201 => ['nome' => 'Cachoeira de Goiás', 'uf' => 'GO'], + 3109709 => ['nome' => 'Cachoeira de Minas', 'uf' => 'MG'], + 3102704 => ['nome' => 'Cachoeira de Pajeú', 'uf' => 'MG'], + 1502004 => ['nome' => 'Cachoeira do Arari', 'uf' => 'PA'], + 1501956 => ['nome' => 'Cachoeira do Piriá', 'uf' => 'PA'], + 4303004 => ['nome' => 'Cachoeira do Sul', 'uf' => 'RS'], + 2503308 => ['nome' => 'Cachoeira dos Índios', 'uf' => 'PB'], + 5204250 => ['nome' => 'Cachoeira Dourada', 'uf' => 'GO'], + 3109808 => ['nome' => 'Cachoeira Dourada', 'uf' => 'MG'], + 2102374 => ['nome' => 'Cachoeira Grande', 'uf' => 'MA'], + 3508603 => ['nome' => 'Cachoeira Paulista', 'uf' => 'SP'], + 3300803 => ['nome' => 'Cachoeiras de Macacu', 'uf' => 'RJ'], + 1703826 => ['nome' => 'Cachoeirinha', 'uf' => 'TO'], + 2603108 => ['nome' => 'Cachoeirinha', 'uf' => 'PE'], + 4303103 => ['nome' => 'Cachoeirinha', 'uf' => 'RS'], + 3201209 => ['nome' => 'Cachoeiro de Itapemirim', 'uf' => 'ES'], + 2503407 => ['nome' => 'Cacimba de Areia', 'uf' => 'PB'], + 2503506 => ['nome' => 'Cacimba de Dentro', 'uf' => 'PB'], + 2503555 => ['nome' => 'Cacimbas', 'uf' => 'PB'], + 2701209 => ['nome' => 'Cacimbinhas', 'uf' => 'AL'], + 4303202 => ['nome' => 'Cacique Doble', 'uf' => 'RS'], + 1100049 => ['nome' => 'Cacoal', 'uf' => 'RO'], + 3508702 => ['nome' => 'Caconde', 'uf' => 'SP'], + 5204300 => ['nome' => 'Caçu', 'uf' => 'GO'], + 2905008 => ['nome' => 'Caculé', 'uf' => 'BA'], + 2905107 => ['nome' => 'Caém', 'uf' => 'BA'], + 3109907 => ['nome' => 'Caetanópolis', 'uf' => 'MG'], + 2905156 => ['nome' => 'Caetanos', 'uf' => 'BA'], + 3110004 => ['nome' => 'Caeté', 'uf' => 'MG'], + 2603207 => ['nome' => 'Caetés', 'uf' => 'PE'], + 2905206 => ['nome' => 'Caetité', 'uf' => 'BA'], + 2905305 => ['nome' => 'Cafarnaum', 'uf' => 'BA'], + 4103404 => ['nome' => 'Cafeara', 'uf' => 'PR'], + 3508801 => ['nome' => 'Cafelândia', 'uf' => 'SP'], + 4103453 => ['nome' => 'Cafelândia', 'uf' => 'PR'], + 4103479 => ['nome' => 'Cafezal do Sul', 'uf' => 'PR'], + 3508900 => ['nome' => 'Caiabu', 'uf' => 'SP'], + 3110103 => ['nome' => 'Caiana', 'uf' => 'MG'], + 5204409 => ['nome' => 'Caiapônia', 'uf' => 'GO'], + 4303301 => ['nome' => 'Caibaté', 'uf' => 'RS'], + 4203105 => ['nome' => 'Caibi', 'uf' => 'SC'], + 4303400 => ['nome' => 'Caiçara', 'uf' => 'RS'], + 2503605 => ['nome' => 'Caiçara', 'uf' => 'PB'], + 2401859 => ['nome' => 'Caiçara do Norte', 'uf' => 'RN'], + 2401909 => ['nome' => 'Caiçara do Rio do Vento', 'uf' => 'RN'], + 2402006 => ['nome' => 'Caicó', 'uf' => 'RN'], + 3509007 => ['nome' => 'Caieiras', 'uf' => 'SP'], + 2905404 => ['nome' => 'Cairu', 'uf' => 'BA'], + 3509106 => ['nome' => 'Caiuá', 'uf' => 'SP'], + 3509205 => ['nome' => 'Cajamar', 'uf' => 'SP'], + 2102408 => ['nome' => 'Cajapió', 'uf' => 'MA'], + 2102507 => ['nome' => 'Cajari', 'uf' => 'MA'], + 3509254 => ['nome' => 'Cajati', 'uf' => 'SP'], + 2503704 => ['nome' => 'Cajazeiras', 'uf' => 'PB'], + 2202075 => ['nome' => 'Cajazeiras do Piauí', 'uf' => 'PI'], + 2503753 => ['nome' => 'Cajazeirinhas', 'uf' => 'PB'], + 3509304 => ['nome' => 'Cajobi', 'uf' => 'SP'], + 2701308 => ['nome' => 'Cajueiro', 'uf' => 'AL'], + 2202083 => ['nome' => 'Cajueiro da Praia', 'uf' => 'PI'], + 3110202 => ['nome' => 'Cajuri', 'uf' => 'MG'], + 3509403 => ['nome' => 'Cajuru', 'uf' => 'SP'], + 2603306 => ['nome' => 'Calçado', 'uf' => 'PE'], + 1600204 => ['nome' => 'Calçoene', 'uf' => 'AP'], + 3110301 => ['nome' => 'Caldas', 'uf' => 'MG'], + 2503803 => ['nome' => 'Caldas Brandão', 'uf' => 'PB'], + 5204508 => ['nome' => 'Caldas Novas', 'uf' => 'GO'], + 5204557 => ['nome' => 'Caldazinha', 'uf' => 'GO'], + 2905503 => ['nome' => 'Caldeirão Grande', 'uf' => 'BA'], + 2202091 => ['nome' => 'Caldeirão Grande do Piauí', 'uf' => 'PI'], + 4103503 => ['nome' => 'Califórnia', 'uf' => 'PR'], + 4203154 => ['nome' => 'Calmon', 'uf' => 'SC'], + 2603405 => ['nome' => 'Calumbi', 'uf' => 'PE'], + 2905602 => ['nome' => 'Camacan', 'uf' => 'BA'], + 2905701 => ['nome' => 'Camaçari', 'uf' => 'BA'], + 3110400 => ['nome' => 'Camacho', 'uf' => 'MG'], + 2503902 => ['nome' => 'Camalaú', 'uf' => 'PB'], + 2905800 => ['nome' => 'Camamu', 'uf' => 'BA'], + 3110509 => ['nome' => 'Camanducaia', 'uf' => 'MG'], + 5002605 => ['nome' => 'Camapuã', 'uf' => 'MS'], + 4303509 => ['nome' => 'Camaquã', 'uf' => 'RS'], + 2603454 => ['nome' => 'Camaragibe', 'uf' => 'PE'], + 4303558 => ['nome' => 'Camargo', 'uf' => 'RS'], + 4103602 => ['nome' => 'Cambará', 'uf' => 'PR'], + 4303608 => ['nome' => 'Cambará do Sul', 'uf' => 'RS'], + 4103701 => ['nome' => 'Cambé', 'uf' => 'PR'], + 4103800 => ['nome' => 'Cambira', 'uf' => 'PR'], + 4203204 => ['nome' => 'Camboriú', 'uf' => 'SC'], + 3300902 => ['nome' => 'Cambuci', 'uf' => 'RJ'], + 3110608 => ['nome' => 'Cambuí', 'uf' => 'MG'], + 3110707 => ['nome' => 'Cambuquira', 'uf' => 'MG'], + 1502103 => ['nome' => 'Cametá', 'uf' => 'PA'], + 2302602 => ['nome' => 'Camocim', 'uf' => 'CE'], + 2603504 => ['nome' => 'Camocim de São Félix', 'uf' => 'PE'], + 3110806 => ['nome' => 'Campanário', 'uf' => 'MG'], + 3110905 => ['nome' => 'Campanha', 'uf' => 'MG'], + 3111002 => ['nome' => 'Campestre', 'uf' => 'MG'], + 2701357 => ['nome' => 'Campestre', 'uf' => 'AL'], + 4303673 => ['nome' => 'Campestre da Serra', 'uf' => 'RS'], + 5204607 => ['nome' => 'Campestre de Goiás', 'uf' => 'GO'], + 2102556 => ['nome' => 'Campestre do Maranhão', 'uf' => 'MA'], + 4103909 => ['nome' => 'Campina da Lagoa', 'uf' => 'PR'], + 4303707 => ['nome' => 'Campina das Missões', 'uf' => 'RS'], + 3509452 => ['nome' => 'Campina do Monte Alegre', 'uf' => 'SP'], + 4103958 => ['nome' => 'Campina do Simão', 'uf' => 'PR'], + 2504009 => ['nome' => 'Campina Grande', 'uf' => 'PB'], + 4104006 => ['nome' => 'Campina Grande do Sul', 'uf' => 'PR'], + 3111101 => ['nome' => 'Campina Verde', 'uf' => 'MG'], + 5204656 => ['nome' => 'Campinaçu', 'uf' => 'GO'], + 5102603 => ['nome' => 'Campinápolis', 'uf' => 'MT'], + 3509502 => ['nome' => 'Campinas', 'uf' => 'SP'], + 2202109 => ['nome' => 'Campinas do Piauí', 'uf' => 'PI'], + 4303806 => ['nome' => 'Campinas do Sul', 'uf' => 'RS'], + 5204706 => ['nome' => 'Campinorte', 'uf' => 'GO'], + 4203303 => ['nome' => 'Campo Alegre', 'uf' => 'SC'], + 2701407 => ['nome' => 'Campo Alegre', 'uf' => 'AL'], + 5204805 => ['nome' => 'Campo Alegre de Goiás', 'uf' => 'GO'], + 2905909 => ['nome' => 'Campo Alegre de Lourdes', 'uf' => 'BA'], + 2202117 => ['nome' => 'Campo Alegre do Fidalgo', 'uf' => 'PI'], + 3111150 => ['nome' => 'Campo Azul', 'uf' => 'MG'], + 3111200 => ['nome' => 'Campo Belo', 'uf' => 'MG'], + 4203402 => ['nome' => 'Campo Belo do Sul', 'uf' => 'SC'], + 4303905 => ['nome' => 'Campo Bom', 'uf' => 'RS'], + 4104055 => ['nome' => 'Campo Bonito', 'uf' => 'PR'], + 2801009 => ['nome' => 'Campo do Brito', 'uf' => 'SE'], + 3111309 => ['nome' => 'Campo do Meio', 'uf' => 'MG'], + 4104105 => ['nome' => 'Campo do Tenente', 'uf' => 'PR'], + 4203501 => ['nome' => 'Campo Erê', 'uf' => 'SC'], + 3111408 => ['nome' => 'Campo Florido', 'uf' => 'MG'], + 2906006 => ['nome' => 'Campo Formoso', 'uf' => 'BA'], + 2701506 => ['nome' => 'Campo Grande', 'uf' => 'AL'], + 5002704 => ['nome' => 'Campo Grande', 'uf' => 'MS'], + 2202133 => ['nome' => 'Campo Grande do Piauí', 'uf' => 'PI'], + 4104204 => ['nome' => 'Campo Largo', 'uf' => 'PR'], + 2202174 => ['nome' => 'Campo Largo do Piauí', 'uf' => 'PI'], + 5204854 => ['nome' => 'Campo Limpo de Goiás', 'uf' => 'GO'], + 3509601 => ['nome' => 'Campo Limpo Paulista', 'uf' => 'SP'], + 4104253 => ['nome' => 'Campo Magro', 'uf' => 'PR'], + 2202208 => ['nome' => 'Campo Maior', 'uf' => 'PI'], + 4104303 => ['nome' => 'Campo Mourão', 'uf' => 'PR'], + 4304002 => ['nome' => 'Campo Novo', 'uf' => 'RS'], + 1100700 => ['nome' => 'Campo Novo de Rondônia', 'uf' => 'RO'], + 5102637 => ['nome' => 'Campo Novo do Parecis', 'uf' => 'MT'], + 2402105 => ['nome' => 'Campo Redondo', 'uf' => 'RN'], + 5102678 => ['nome' => 'Campo Verde', 'uf' => 'MT'], + 3111507 => ['nome' => 'Campos Altos', 'uf' => 'MG'], + 5204904 => ['nome' => 'Campos Belos', 'uf' => 'GO'], + 4304101 => ['nome' => 'Campos Borges', 'uf' => 'RS'], + 5102686 => ['nome' => 'Campos de Júlio', 'uf' => 'MT'], + 3509700 => ['nome' => 'Campos do Jordão', 'uf' => 'SP'], + 3301009 => ['nome' => 'Campos dos Goytacazes', 'uf' => 'RJ'], + 3111606 => ['nome' => 'Campos Gerais', 'uf' => 'MG'], + 1703842 => ['nome' => 'Campos Lindos', 'uf' => 'TO'], + 4203600 => ['nome' => 'Campos Novos', 'uf' => 'SC'], + 3509809 => ['nome' => 'Campos Novos Paulista', 'uf' => 'SP'], + 2302701 => ['nome' => 'Campos Sales', 'uf' => 'CE'], + 5204953 => ['nome' => 'Campos Verdes', 'uf' => 'GO'], + 2603603 => ['nome' => 'Camutanga', 'uf' => 'PE'], + 3111903 => ['nome' => 'Cana Verde', 'uf' => 'MG'], + 3111705 => ['nome' => 'Canaã', 'uf' => 'MG'], + 1502152 => ['nome' => 'Canaã dos Carajás', 'uf' => 'PA'], + 5102694 => ['nome' => 'Canabrava do Norte', 'uf' => 'MT'], + 3509908 => ['nome' => 'Cananéia', 'uf' => 'SP'], + 2701605 => ['nome' => 'Canapi', 'uf' => 'AL'], + 2906105 => ['nome' => 'Canápolis', 'uf' => 'BA'], + 3111804 => ['nome' => 'Canápolis', 'uf' => 'MG'], + 2906204 => ['nome' => 'Canarana', 'uf' => 'BA'], + 5102702 => ['nome' => 'Canarana', 'uf' => 'MT'], + 3509957 => ['nome' => 'Canas', 'uf' => 'SP'], + 2202251 => ['nome' => 'Canavieira', 'uf' => 'PI'], + 2906303 => ['nome' => 'Canavieiras', 'uf' => 'BA'], + 2906402 => ['nome' => 'Candeal', 'uf' => 'BA'], + 2906501 => ['nome' => 'Candeias', 'uf' => 'BA'], + 3112000 => ['nome' => 'Candeias', 'uf' => 'MG'], + 1100809 => ['nome' => 'Candeias do Jamari', 'uf' => 'RO'], + 4304200 => ['nome' => 'Candelária', 'uf' => 'RS'], + 2906600 => ['nome' => 'Candiba', 'uf' => 'BA'], + 4104402 => ['nome' => 'Cândido de Abreu', 'uf' => 'PR'], + 4304309 => ['nome' => 'Cândido Godói', 'uf' => 'RS'], + 2102606 => ['nome' => 'Cândido Mendes', 'uf' => 'MA'], + 3510005 => ['nome' => 'Cândido Mota', 'uf' => 'SP'], + 3510104 => ['nome' => 'Cândido Rodrigues', 'uf' => 'SP'], + 2906709 => ['nome' => 'Cândido Sales', 'uf' => 'BA'], + 4304358 => ['nome' => 'Candiota', 'uf' => 'RS'], + 4104428 => ['nome' => 'Candói', 'uf' => 'PR'], + 4304408 => ['nome' => 'Canela', 'uf' => 'RS'], + 4203709 => ['nome' => 'Canelinha', 'uf' => 'SC'], + 2402204 => ['nome' => 'Canguaretama', 'uf' => 'RN'], + 4304507 => ['nome' => 'Canguçu', 'uf' => 'RS'], + 2801108 => ['nome' => 'Canhoba', 'uf' => 'SE'], + 2603702 => ['nome' => 'Canhotinho', 'uf' => 'PE'], + 2302800 => ['nome' => 'Canindé', 'uf' => 'CE'], + 2801207 => ['nome' => 'Canindé de São Francisco', 'uf' => 'SE'], + 3510153 => ['nome' => 'Canitar', 'uf' => 'SP'], + 4304606 => ['nome' => 'Canoas', 'uf' => 'RS'], + 4203808 => ['nome' => 'Canoinhas', 'uf' => 'SC'], + 2906808 => ['nome' => 'Cansanção', 'uf' => 'BA'], + 1400175 => ['nome' => 'Cantá', 'uf' => 'RR'], + 3301108 => ['nome' => 'Cantagalo', 'uf' => 'RJ'], + 4104451 => ['nome' => 'Cantagalo', 'uf' => 'PR'], + 3112059 => ['nome' => 'Cantagalo', 'uf' => 'MG'], + 2102705 => ['nome' => 'Cantanhede', 'uf' => 'MA'], + 2202307 => ['nome' => 'Canto do Buriti', 'uf' => 'PI'], + 2906824 => ['nome' => 'Canudos', 'uf' => 'BA'], + 4304614 => ['nome' => 'Canudos do Vale', 'uf' => 'RS'], + 1300904 => ['nome' => 'Canutama', 'uf' => 'AM'], + 1502202 => ['nome' => 'Capanema', 'uf' => 'PA'], + 4104501 => ['nome' => 'Capanema', 'uf' => 'PR'], + 4203253 => ['nome' => 'Capão Alto', 'uf' => 'SC'], + 3510203 => ['nome' => 'Capão Bonito', 'uf' => 'SP'], + 4304622 => ['nome' => 'Capão Bonito do Sul', 'uf' => 'RS'], + 4304630 => ['nome' => 'Capão da Canoa', 'uf' => 'RS'], + 4304655 => ['nome' => 'Capão do Cipó', 'uf' => 'RS'], + 4304663 => ['nome' => 'Capão do Leão', 'uf' => 'RS'], + 3112109 => ['nome' => 'Caparaó', 'uf' => 'MG'], + 2701704 => ['nome' => 'Capela', 'uf' => 'AL'], + 2801306 => ['nome' => 'Capela', 'uf' => 'SE'], + 4304689 => ['nome' => 'Capela de Santana', 'uf' => 'RS'], + 3510302 => ['nome' => 'Capela do Alto', 'uf' => 'SP'], + 2906857 => ['nome' => 'Capela do Alto Alegre', 'uf' => 'BA'], + 3112208 => ['nome' => 'Capela Nova', 'uf' => 'MG'], + 3112307 => ['nome' => 'Capelinha', 'uf' => 'MG'], + 3112406 => ['nome' => 'Capetinga', 'uf' => 'MG'], + 2504033 => ['nome' => 'Capim', 'uf' => 'PB'], + 3112505 => ['nome' => 'Capim Branco', 'uf' => 'MG'], + 2906873 => ['nome' => 'Capim Grosso', 'uf' => 'BA'], + 3112604 => ['nome' => 'Capinópolis', 'uf' => 'MG'], + 4203907 => ['nome' => 'Capinzal', 'uf' => 'SC'], + 2102754 => ['nome' => 'Capinzal do Norte', 'uf' => 'MA'], + 2302909 => ['nome' => 'Capistrano', 'uf' => 'CE'], + 4304697 => ['nome' => 'Capitão', 'uf' => 'RS'], + 3112653 => ['nome' => 'Capitão Andrade', 'uf' => 'MG'], + 2202406 => ['nome' => 'Capitão de Campos', 'uf' => 'PI'], + 3112703 => ['nome' => 'Capitão Enéas', 'uf' => 'MG'], + 2202455 => ['nome' => 'Capitão Gervásio Oliveira', 'uf' => 'PI'], + 4104600 => ['nome' => 'Capitão Leônidas Marques', 'uf' => 'PR'], + 1502301 => ['nome' => 'Capitão Poço', 'uf' => 'PA'], + 3112802 => ['nome' => 'Capitólio', 'uf' => 'MG'], + 3510401 => ['nome' => 'Capivari', 'uf' => 'SP'], + 4203956 => ['nome' => 'Capivari de Baixo', 'uf' => 'SC'], + 4304671 => ['nome' => 'Capivari do Sul', 'uf' => 'RS'], + 1200179 => ['nome' => 'Capixaba', 'uf' => 'AC'], + 2603801 => ['nome' => 'Capoeiras', 'uf' => 'PE'], + 3112901 => ['nome' => 'Caputira', 'uf' => 'MG'], + 4304713 => ['nome' => 'Caraá', 'uf' => 'RS'], + 1400209 => ['nome' => 'Caracaraí', 'uf' => 'RR'], + 2202505 => ['nome' => 'Caracol', 'uf' => 'PI'], + 5002803 => ['nome' => 'Caracol', 'uf' => 'MS'], + 3510500 => ['nome' => 'Caraguatatuba', 'uf' => 'SP'], + 3113008 => ['nome' => 'Caraí', 'uf' => 'MG'], + 2906899 => ['nome' => 'Caraíbas', 'uf' => 'BA'], + 4104659 => ['nome' => 'Carambeí', 'uf' => 'PR'], + 3113107 => ['nome' => 'Caranaíba', 'uf' => 'MG'], + 3113206 => ['nome' => 'Carandaí', 'uf' => 'MG'], + 3113305 => ['nome' => 'Carangola', 'uf' => 'MG'], + 3300936 => ['nome' => 'Carapebus', 'uf' => 'RJ'], + 3510609 => ['nome' => 'Carapicuíba', 'uf' => 'SP'], + 3113404 => ['nome' => 'Caratinga', 'uf' => 'MG'], + 1301001 => ['nome' => 'Carauari', 'uf' => 'AM'], + 2402303 => ['nome' => 'Caraúbas', 'uf' => 'RN'], + 2504074 => ['nome' => 'Caraúbas', 'uf' => 'PB'], + 2202539 => ['nome' => 'Caraúbas do Piauí', 'uf' => 'PI'], + 2906907 => ['nome' => 'Caravelas', 'uf' => 'BA'], + 4304705 => ['nome' => 'Carazinho', 'uf' => 'RS'], + 3113503 => ['nome' => 'Carbonita', 'uf' => 'MG'], + 2907004 => ['nome' => 'Cardeal da Silva', 'uf' => 'BA'], + 3510708 => ['nome' => 'Cardoso', 'uf' => 'SP'], + 3301157 => ['nome' => 'Cardoso Moreira', 'uf' => 'RJ'], + 3113602 => ['nome' => 'Careaçu', 'uf' => 'MG'], + 1301100 => ['nome' => 'Careiro', 'uf' => 'AM'], + 1301159 => ['nome' => 'Careiro da Várzea', 'uf' => 'AM'], + 3201308 => ['nome' => 'Cariacica', 'uf' => 'ES'], + 2303006 => ['nome' => 'Caridade', 'uf' => 'CE'], + 2202554 => ['nome' => 'Caridade do Piauí', 'uf' => 'PI'], + 2907103 => ['nome' => 'Carinhanha', 'uf' => 'BA'], + 2801405 => ['nome' => 'Carira', 'uf' => 'SE'], + 2303105 => ['nome' => 'Cariré', 'uf' => 'CE'], + 1703867 => ['nome' => 'Cariri do Tocantins', 'uf' => 'TO'], + 2303204 => ['nome' => 'Caririaçu', 'uf' => 'CE'], + 2303303 => ['nome' => 'Cariús', 'uf' => 'CE'], + 5102793 => ['nome' => 'Carlinda', 'uf' => 'MT'], + 4104709 => ['nome' => 'Carlópolis', 'uf' => 'PR'], + 4304804 => ['nome' => 'Carlos Barbosa', 'uf' => 'RS'], + 3113701 => ['nome' => 'Carlos Chagas', 'uf' => 'MG'], + 4304853 => ['nome' => 'Carlos Gomes', 'uf' => 'RS'], + 3113800 => ['nome' => 'Carmésia', 'uf' => 'MG'], + 3301207 => ['nome' => 'Carmo', 'uf' => 'RJ'], + 3113909 => ['nome' => 'Carmo da Cachoeira', 'uf' => 'MG'], + 3114006 => ['nome' => 'Carmo da Mata', 'uf' => 'MG'], + 3114105 => ['nome' => 'Carmo de Minas', 'uf' => 'MG'], + 3114204 => ['nome' => 'Carmo do Cajuru', 'uf' => 'MG'], + 3114303 => ['nome' => 'Carmo do Paranaíba', 'uf' => 'MG'], + 3114402 => ['nome' => 'Carmo do Rio Claro', 'uf' => 'MG'], + 5205000 => ['nome' => 'Carmo do Rio Verde', 'uf' => 'GO'], + 1703883 => ['nome' => 'Carmolândia', 'uf' => 'TO'], + 2801504 => ['nome' => 'Carmópolis', 'uf' => 'SE'], + 3114501 => ['nome' => 'Carmópolis de Minas', 'uf' => 'MG'], + 2603900 => ['nome' => 'Carnaíba', 'uf' => 'PE'], + 2402402 => ['nome' => 'Carnaúba dos Dantas', 'uf' => 'RN'], + 2402501 => ['nome' => 'Carnaubais', 'uf' => 'RN'], + 2303402 => ['nome' => 'Carnaubal', 'uf' => 'CE'], + 2603926 => ['nome' => 'Carnaubeira da Penha', 'uf' => 'PE'], + 3114550 => ['nome' => 'Carneirinho', 'uf' => 'MG'], + 2701803 => ['nome' => 'Carneiros', 'uf' => 'AL'], + 1400233 => ['nome' => 'Caroebe', 'uf' => 'RR'], + 2102804 => ['nome' => 'Carolina', 'uf' => 'MA'], + 2604007 => ['nome' => 'Carpina', 'uf' => 'PE'], + 3114600 => ['nome' => 'Carrancas', 'uf' => 'MG'], + 2504108 => ['nome' => 'Carrapateira', 'uf' => 'PB'], + 1703891 => ['nome' => 'Carrasco Bonito', 'uf' => 'TO'], + 2604106 => ['nome' => 'Caruaru', 'uf' => 'PE'], + 2102903 => ['nome' => 'Carutapera', 'uf' => 'MA'], + 3114709 => ['nome' => 'Carvalhópolis', 'uf' => 'MG'], + 3114808 => ['nome' => 'Carvalhos', 'uf' => 'MG'], + 3510807 => ['nome' => 'Casa Branca', 'uf' => 'SP'], + 3114907 => ['nome' => 'Casa Grande', 'uf' => 'MG'], + 2907202 => ['nome' => 'Casa Nova', 'uf' => 'BA'], + 4304903 => ['nome' => 'Casca', 'uf' => 'RS'], + 3115003 => ['nome' => 'Cascalho Rico', 'uf' => 'MG'], + 4104808 => ['nome' => 'Cascavel', 'uf' => 'PR'], + 2303501 => ['nome' => 'Cascavel', 'uf' => 'CE'], + 1703909 => ['nome' => 'Caseara', 'uf' => 'TO'], + 4304952 => ['nome' => 'Caseiros', 'uf' => 'RS'], + 3301306 => ['nome' => 'Casimiro de Abreu', 'uf' => 'RJ'], + 2604155 => ['nome' => 'Casinhas', 'uf' => 'PE'], + 2504157 => ['nome' => 'Casserengue', 'uf' => 'PB'], + 3115102 => ['nome' => 'Cássia', 'uf' => 'MG'], + 3510906 => ['nome' => 'Cássia dos Coqueiros', 'uf' => 'SP'], + 5002902 => ['nome' => 'Cassilândia', 'uf' => 'MS'], + 1502400 => ['nome' => 'Castanhal', 'uf' => 'PA'], + 5102850 => ['nome' => 'Castanheira', 'uf' => 'MT'], + 1100908 => ['nome' => 'Castanheiras', 'uf' => 'RO'], + 5205059 => ['nome' => 'Castelândia', 'uf' => 'GO'], + 3201407 => ['nome' => 'Castelo', 'uf' => 'ES'], + 2202604 => ['nome' => 'Castelo do Piauí', 'uf' => 'PI'], + 3511003 => ['nome' => 'Castilho', 'uf' => 'SP'], + 4104907 => ['nome' => 'Castro', 'uf' => 'PR'], + 2907301 => ['nome' => 'Castro Alves', 'uf' => 'BA'], + 3115300 => ['nome' => 'Cataguases', 'uf' => 'MG'], + 5205109 => ['nome' => 'Catalão', 'uf' => 'GO'], + 3511102 => ['nome' => 'Catanduva', 'uf' => 'SP'], + 4105003 => ['nome' => 'Catanduvas', 'uf' => 'PR'], + 4204004 => ['nome' => 'Catanduvas', 'uf' => 'SC'], + 2303600 => ['nome' => 'Catarina', 'uf' => 'CE'], + 3115359 => ['nome' => 'Catas Altas', 'uf' => 'MG'], + 3115409 => ['nome' => 'Catas Altas da Noruega', 'uf' => 'MG'], + 2604205 => ['nome' => 'Catende', 'uf' => 'PE'], + 3511201 => ['nome' => 'Catiguá', 'uf' => 'SP'], + 2504207 => ['nome' => 'Catingueira', 'uf' => 'PB'], + 2907400 => ['nome' => 'Catolândia', 'uf' => 'BA'], + 2504306 => ['nome' => 'Catolé do Rocha', 'uf' => 'PB'], + 2907509 => ['nome' => 'Catu', 'uf' => 'BA'], + 4305009 => ['nome' => 'Catuípe', 'uf' => 'RS'], + 3115458 => ['nome' => 'Catuji', 'uf' => 'MG'], + 2303659 => ['nome' => 'Catunda', 'uf' => 'CE'], + 5205208 => ['nome' => 'Caturaí', 'uf' => 'GO'], + 2907558 => ['nome' => 'Caturama', 'uf' => 'BA'], + 2504355 => ['nome' => 'Caturité', 'uf' => 'PB'], + 3115474 => ['nome' => 'Catuti', 'uf' => 'MG'], + 2303709 => ['nome' => 'Caucaia', 'uf' => 'CE'], + 5205307 => ['nome' => 'Cavalcante', 'uf' => 'GO'], + 3115508 => ['nome' => 'Caxambu', 'uf' => 'MG'], + 4204103 => ['nome' => 'Caxambu do Sul', 'uf' => 'SC'], + 2103000 => ['nome' => 'Caxias', 'uf' => 'MA'], + 4305108 => ['nome' => 'Caxias do Sul', 'uf' => 'RS'], + 2202653 => ['nome' => 'Caxingó', 'uf' => 'PI'], + 2402600 => ['nome' => 'Ceará-Mirim', 'uf' => 'RN'], + 2103109 => ['nome' => 'Cedral', 'uf' => 'MA'], + 3511300 => ['nome' => 'Cedral', 'uf' => 'SP'], + 2303808 => ['nome' => 'Cedro', 'uf' => 'CE'], + 2604304 => ['nome' => 'Cedro', 'uf' => 'PE'], + 2801603 => ['nome' => 'Cedro de São João', 'uf' => 'SE'], + 3115607 => ['nome' => 'Cedro do Abaeté', 'uf' => 'MG'], + 4204152 => ['nome' => 'Celso Ramos', 'uf' => 'SC'], + 4305116 => ['nome' => 'Centenário', 'uf' => 'RS'], + 1704105 => ['nome' => 'Centenário', 'uf' => 'TO'], + 4105102 => ['nome' => 'Centenário do Sul', 'uf' => 'PR'], + 2907608 => ['nome' => 'Central', 'uf' => 'BA'], + 3115706 => ['nome' => 'Central de Minas', 'uf' => 'MG'], + 2103125 => ['nome' => 'Central do Maranhão', 'uf' => 'MA'], + 3115805 => ['nome' => 'Centralina', 'uf' => 'MG'], + 2103158 => ['nome' => 'Centro do Guilherme', 'uf' => 'MA'], + 2103174 => ['nome' => 'Centro Novo do Maranhão', 'uf' => 'MA'], + 1100056 => ['nome' => 'Cerejeiras', 'uf' => 'RO'], + 5205406 => ['nome' => 'Ceres', 'uf' => 'GO'], + 3511409 => ['nome' => 'Cerqueira César', 'uf' => 'SP'], + 3511508 => ['nome' => 'Cerquilho', 'uf' => 'SP'], + 4305124 => ['nome' => 'Cerrito', 'uf' => 'RS'], + 4105201 => ['nome' => 'Cerro Azul', 'uf' => 'PR'], + 4305132 => ['nome' => 'Cerro Branco', 'uf' => 'RS'], + 2402709 => ['nome' => 'Cerro Corá', 'uf' => 'RN'], + 4305157 => ['nome' => 'Cerro Grande', 'uf' => 'RS'], + 4305173 => ['nome' => 'Cerro Grande do Sul', 'uf' => 'RS'], + 4305207 => ['nome' => 'Cerro Largo', 'uf' => 'RS'], + 4204178 => ['nome' => 'Cerro Negro', 'uf' => 'SC'], + 3511607 => ['nome' => 'Cesário Lange', 'uf' => 'SP'], + 4105300 => ['nome' => 'Céu Azul', 'uf' => 'PR'], + 5205455 => ['nome' => 'Cezarina', 'uf' => 'GO'], + 2604403 => ['nome' => 'Chã de Alegria', 'uf' => 'PE'], + 2604502 => ['nome' => 'Chã Grande', 'uf' => 'PE'], + 2701902 => ['nome' => 'Chã Preta', 'uf' => 'AL'], + 3115904 => ['nome' => 'Chácara', 'uf' => 'MG'], + 3116001 => ['nome' => 'Chalé', 'uf' => 'MG'], + 4305306 => ['nome' => 'Chapada', 'uf' => 'RS'], + 1705102 => ['nome' => 'Chapada da Natividade', 'uf' => 'TO'], + 1704600 => ['nome' => 'Chapada de Areia', 'uf' => 'TO'], + 3116100 => ['nome' => 'Chapada do Norte', 'uf' => 'MG'], + 5103007 => ['nome' => 'Chapada dos Guimarães', 'uf' => 'MT'], + 3116159 => ['nome' => 'Chapada Gaúcha', 'uf' => 'MG'], + 5205471 => ['nome' => 'Chapadão do Céu', 'uf' => 'GO'], + 4204194 => ['nome' => 'Chapadão do Lageado', 'uf' => 'SC'], + 5002951 => ['nome' => 'Chapadão do Sul', 'uf' => 'MS'], + 2103208 => ['nome' => 'Chapadinha', 'uf' => 'MA'], + 4204202 => ['nome' => 'Chapecó', 'uf' => 'SC'], + 3511706 => ['nome' => 'Charqueada', 'uf' => 'SP'], + 4305355 => ['nome' => 'Charqueadas', 'uf' => 'RS'], + 4305371 => ['nome' => 'Charrua', 'uf' => 'RS'], + 2303907 => ['nome' => 'Chaval', 'uf' => 'CE'], + 3557204 => ['nome' => 'Chavantes', 'uf' => 'SP'], + 1502509 => ['nome' => 'Chaves', 'uf' => 'PA'], + 3116209 => ['nome' => 'Chiador', 'uf' => 'MG'], + 4305405 => ['nome' => 'Chiapetta', 'uf' => 'RS'], + 4105409 => ['nome' => 'Chopinzinho', 'uf' => 'PR'], + 2303931 => ['nome' => 'Choró', 'uf' => 'CE'], + 2303956 => ['nome' => 'Chorozinho', 'uf' => 'CE'], + 2907707 => ['nome' => 'Chorrochó', 'uf' => 'BA'], + 4305439 => ['nome' => 'Chuí', 'uf' => 'RS'], + 1100924 => ['nome' => 'Chupinguaia', 'uf' => 'RO'], + 4305447 => ['nome' => 'Chuvisca', 'uf' => 'RS'], + 4105508 => ['nome' => 'Cianorte', 'uf' => 'PR'], + 2907806 => ['nome' => 'Cícero Dantas', 'uf' => 'BA'], + 4105607 => ['nome' => 'Cidade Gaúcha', 'uf' => 'PR'], + 5205497 => ['nome' => 'Cidade Ocidental', 'uf' => 'GO'], + 2103257 => ['nome' => 'Cidelândia', 'uf' => 'MA'], + 4305454 => ['nome' => 'Cidreira', 'uf' => 'RS'], + 2907905 => ['nome' => 'Cipó', 'uf' => 'BA'], + 3116308 => ['nome' => 'Cipotânea', 'uf' => 'MG'], + 4305504 => ['nome' => 'Ciríaco', 'uf' => 'RS'], + 3116407 => ['nome' => 'Claraval', 'uf' => 'MG'], + 3116506 => ['nome' => 'Claro dos Poções', 'uf' => 'MG'], + 5103056 => ['nome' => 'Cláudia', 'uf' => 'MT'], + 3116605 => ['nome' => 'Cláudio', 'uf' => 'MG'], + 3511904 => ['nome' => 'Clementina', 'uf' => 'SP'], + 4105706 => ['nome' => 'Clevelândia', 'uf' => 'PR'], + 2908002 => ['nome' => 'Coaraci', 'uf' => 'BA'], + 1301209 => ['nome' => 'Coari', 'uf' => 'AM'], + 2202703 => ['nome' => 'Cocal', 'uf' => 'PI'], + 2202711 => ['nome' => 'Cocal de Telha', 'uf' => 'PI'], + 4204251 => ['nome' => 'Cocal do Sul', 'uf' => 'SC'], + 2202729 => ['nome' => 'Cocal dos Alves', 'uf' => 'PI'], + 5103106 => ['nome' => 'Cocalinho', 'uf' => 'MT'], + 5205513 => ['nome' => 'Cocalzinho de Goiás', 'uf' => 'GO'], + 2908101 => ['nome' => 'Cocos', 'uf' => 'BA'], + 1301308 => ['nome' => 'Codajás', 'uf' => 'AM'], + 2103307 => ['nome' => 'Codó', 'uf' => 'MA'], + 2103406 => ['nome' => 'Coelho Neto', 'uf' => 'MA'], + 3116704 => ['nome' => 'Coimbra', 'uf' => 'MG'], + 2702009 => ['nome' => 'Coité do Nóia', 'uf' => 'AL'], + 2202737 => ['nome' => 'Coivaras', 'uf' => 'PI'], + 1502608 => ['nome' => 'Colares', 'uf' => 'PA'], + 3201506 => ['nome' => 'Colatina', 'uf' => 'ES'], + 5103205 => ['nome' => 'Colíder', 'uf' => 'MT'], + 3512001 => ['nome' => 'Colina', 'uf' => 'SP'], + 4305587 => ['nome' => 'Colinas', 'uf' => 'RS'], + 2103505 => ['nome' => 'Colinas', 'uf' => 'MA'], + 5205521 => ['nome' => 'Colinas do Sul', 'uf' => 'GO'], + 1705508 => ['nome' => 'Colinas do Tocantins', 'uf' => 'TO'], + 1716703 => ['nome' => 'Colméia', 'uf' => 'TO'], + 5103254 => ['nome' => 'Colniza', 'uf' => 'MT'], + 3512100 => ['nome' => 'Colômbia', 'uf' => 'SP'], + 4105805 => ['nome' => 'Colombo', 'uf' => 'PR'], + 2202752 => ['nome' => 'Colônia do Gurguéia', 'uf' => 'PI'], + 2202778 => ['nome' => 'Colônia do Piauí', 'uf' => 'PI'], + 2702108 => ['nome' => 'Colônia Leopoldina', 'uf' => 'AL'], + 4305603 => ['nome' => 'Colorado', 'uf' => 'RS'], + 4105904 => ['nome' => 'Colorado', 'uf' => 'PR'], + 1100064 => ['nome' => 'Colorado do Oeste', 'uf' => 'RO'], + 3116803 => ['nome' => 'Coluna', 'uf' => 'MG'], + 1705557 => ['nome' => 'Combinado', 'uf' => 'TO'], + 3116902 => ['nome' => 'Comendador Gomes', 'uf' => 'MG'], + 3300951 => ['nome' => 'Comendador Levy Gasparian', 'uf' => 'RJ'], + 3117009 => ['nome' => 'Comercinho', 'uf' => 'MG'], + 5103304 => ['nome' => 'Comodoro', 'uf' => 'MT'], + 2504405 => ['nome' => 'Conceição', 'uf' => 'PB'], + 3117108 => ['nome' => 'Conceição da Aparecida', 'uf' => 'MG'], + 3201605 => ['nome' => 'Conceição da Barra', 'uf' => 'ES'], + 3115201 => ['nome' => 'Conceição da Barra de Minas', 'uf' => 'MG'], + 2908200 => ['nome' => 'Conceição da Feira', 'uf' => 'BA'], + 3117306 => ['nome' => 'Conceição das Alagoas', 'uf' => 'MG'], + 3117207 => ['nome' => 'Conceição das Pedras', 'uf' => 'MG'], + 3117405 => ['nome' => 'Conceição de Ipanema', 'uf' => 'MG'], + 3301405 => ['nome' => 'Conceição de Macabu', 'uf' => 'RJ'], + 2908309 => ['nome' => 'Conceição do Almeida', 'uf' => 'BA'], + 1502707 => ['nome' => 'Conceição do Araguaia', 'uf' => 'PA'], + 2202802 => ['nome' => 'Conceição do Canindé', 'uf' => 'PI'], + 3201704 => ['nome' => 'Conceição do Castelo', 'uf' => 'ES'], + 2908408 => ['nome' => 'Conceição do Coité', 'uf' => 'BA'], + 2908507 => ['nome' => 'Conceição do Jacuípe', 'uf' => 'BA'], + 2103554 => ['nome' => 'Conceição do Lago-Açu', 'uf' => 'MA'], + 3117504 => ['nome' => 'Conceição do Mato Dentro', 'uf' => 'MG'], + 3117603 => ['nome' => 'Conceição do Pará', 'uf' => 'MG'], + 3117702 => ['nome' => 'Conceição do Rio Verde', 'uf' => 'MG'], + 1705607 => ['nome' => 'Conceição do Tocantins', 'uf' => 'TO'], + 3117801 => ['nome' => 'Conceição dos Ouros', 'uf' => 'MG'], + 3512209 => ['nome' => 'Conchal', 'uf' => 'SP'], + 3512308 => ['nome' => 'Conchas', 'uf' => 'SP'], + 4204301 => ['nome' => 'Concórdia', 'uf' => 'SC'], + 1502756 => ['nome' => 'Concórdia do Pará', 'uf' => 'PA'], + 2504504 => ['nome' => 'Condado', 'uf' => 'PB'], + 2604601 => ['nome' => 'Condado', 'uf' => 'PE'], + 2504603 => ['nome' => 'Conde', 'uf' => 'PB'], + 2908606 => ['nome' => 'Conde', 'uf' => 'BA'], + 2908705 => ['nome' => 'Condeúba', 'uf' => 'BA'], + 4305702 => ['nome' => 'Condor', 'uf' => 'RS'], + 3117836 => ['nome' => 'Cônego Marinho', 'uf' => 'MG'], + 3117876 => ['nome' => 'Confins', 'uf' => 'MG'], + 5103353 => ['nome' => 'Confresa', 'uf' => 'MT'], + 2504702 => ['nome' => 'Congo', 'uf' => 'PB'], + 3117900 => ['nome' => 'Congonhal', 'uf' => 'MG'], + 3118007 => ['nome' => 'Congonhas', 'uf' => 'MG'], + 3118106 => ['nome' => 'Congonhas do Norte', 'uf' => 'MG'], + 4106001 => ['nome' => 'Congonhinhas', 'uf' => 'PR'], + 3118205 => ['nome' => 'Conquista', 'uf' => 'MG'], + 5103361 => ['nome' => 'Conquista D\'Oeste', 'uf' => 'MT'], + 3118304 => ['nome' => 'Conselheiro Lafaiete', 'uf' => 'MG'], + 4106100 => ['nome' => 'Conselheiro Mairinck', 'uf' => 'PR'], + 3118403 => ['nome' => 'Conselheiro Pena', 'uf' => 'MG'], + 3118502 => ['nome' => 'Consolação', 'uf' => 'MG'], + 4305801 => ['nome' => 'Constantina', 'uf' => 'RS'], + 3118601 => ['nome' => 'Contagem', 'uf' => 'MG'], + 4106209 => ['nome' => 'Contenda', 'uf' => 'PR'], + 2908804 => ['nome' => 'Contendas do Sincorá', 'uf' => 'BA'], + 3118700 => ['nome' => 'Coqueiral', 'uf' => 'MG'], + 4305835 => ['nome' => 'Coqueiro Baixo', 'uf' => 'RS'], + 2702207 => ['nome' => 'Coqueiro Seco', 'uf' => 'AL'], + 4305850 => ['nome' => 'Coqueiros do Sul', 'uf' => 'RS'], + 3118809 => ['nome' => 'Coração de Jesus', 'uf' => 'MG'], + 2908903 => ['nome' => 'Coração de Maria', 'uf' => 'BA'], + 4106308 => ['nome' => 'Corbélia', 'uf' => 'PR'], + 3301504 => ['nome' => 'Cordeiro', 'uf' => 'RJ'], + 3512407 => ['nome' => 'Cordeirópolis', 'uf' => 'SP'], + 2909000 => ['nome' => 'Cordeiros', 'uf' => 'BA'], + 4204350 => ['nome' => 'Cordilheira Alta', 'uf' => 'SC'], + 3118908 => ['nome' => 'Cordisburgo', 'uf' => 'MG'], + 3119005 => ['nome' => 'Cordislândia', 'uf' => 'MG'], + 2304004 => ['nome' => 'Coreaú', 'uf' => 'CE'], + 2504801 => ['nome' => 'Coremas', 'uf' => 'PB'], + 5003108 => ['nome' => 'Corguinho', 'uf' => 'MS'], + 2909109 => ['nome' => 'Coribe', 'uf' => 'BA'], + 3119104 => ['nome' => 'Corinto', 'uf' => 'MG'], + 4106407 => ['nome' => 'Cornélio Procópio', 'uf' => 'PR'], + 3119203 => ['nome' => 'Coroaci', 'uf' => 'MG'], + 3512506 => ['nome' => 'Coroados', 'uf' => 'SP'], + 2103604 => ['nome' => 'Coroatá', 'uf' => 'MA'], + 3119302 => ['nome' => 'Coromandel', 'uf' => 'MG'], + 4305871 => ['nome' => 'Coronel Barros', 'uf' => 'RS'], + 4305900 => ['nome' => 'Coronel Bicaco', 'uf' => 'RS'], + 4106456 => ['nome' => 'Coronel Domingos Soares', 'uf' => 'PR'], + 2402808 => ['nome' => 'Coronel Ezequiel', 'uf' => 'RN'], + 3119401 => ['nome' => 'Coronel Fabriciano', 'uf' => 'MG'], + 4204400 => ['nome' => 'Coronel Freitas', 'uf' => 'SC'], + 2402907 => ['nome' => 'Coronel João Pessoa', 'uf' => 'RN'], + 2909208 => ['nome' => 'Coronel João Sá', 'uf' => 'BA'], + 2202851 => ['nome' => 'Coronel José Dias', 'uf' => 'PI'], + 3512605 => ['nome' => 'Coronel Macedo', 'uf' => 'SP'], + 4204459 => ['nome' => 'Coronel Martins', 'uf' => 'SC'], + 3119500 => ['nome' => 'Coronel Murta', 'uf' => 'MG'], + 3119609 => ['nome' => 'Coronel Pacheco', 'uf' => 'MG'], + 4305934 => ['nome' => 'Coronel Pilar', 'uf' => 'RS'], + 5003157 => ['nome' => 'Coronel Sapucaia', 'uf' => 'MS'], + 4106506 => ['nome' => 'Coronel Vivida', 'uf' => 'PR'], + 3119708 => ['nome' => 'Coronel Xavier Chaves', 'uf' => 'MG'], + 3119807 => ['nome' => 'Córrego Danta', 'uf' => 'MG'], + 3119906 => ['nome' => 'Córrego do Bom Jesus', 'uf' => 'MG'], + 5205703 => ['nome' => 'Córrego do Ouro', 'uf' => 'GO'], + 3119955 => ['nome' => 'Córrego Fundo', 'uf' => 'MG'], + 3120003 => ['nome' => 'Córrego Novo', 'uf' => 'MG'], + 4204558 => ['nome' => 'Correia Pinto', 'uf' => 'SC'], + 2202901 => ['nome' => 'Corrente', 'uf' => 'PI'], + 2604700 => ['nome' => 'Correntes', 'uf' => 'PE'], + 2909307 => ['nome' => 'Correntina', 'uf' => 'BA'], + 2604809 => ['nome' => 'Cortês', 'uf' => 'PE'], + 5003207 => ['nome' => 'Corumbá', 'uf' => 'MS'], + 5205802 => ['nome' => 'Corumbá de Goiás', 'uf' => 'GO'], + 5205901 => ['nome' => 'Corumbaíba', 'uf' => 'GO'], + 3512704 => ['nome' => 'Corumbataí', 'uf' => 'SP'], + 4106555 => ['nome' => 'Corumbataí do Sul', 'uf' => 'PR'], + 1100072 => ['nome' => 'Corumbiara', 'uf' => 'RO'], + 4204509 => ['nome' => 'Corupá', 'uf' => 'SC'], + 2702306 => ['nome' => 'Coruripe', 'uf' => 'AL'], + 3512803 => ['nome' => 'Cosmópolis', 'uf' => 'SP'], + 3512902 => ['nome' => 'Cosmorama', 'uf' => 'SP'], + 1100080 => ['nome' => 'Costa Marques', 'uf' => 'RO'], + 5003256 => ['nome' => 'Costa Rica', 'uf' => 'MS'], + 2909406 => ['nome' => 'Cotegipe', 'uf' => 'BA'], + 3513009 => ['nome' => 'Cotia', 'uf' => 'SP'], + 4305959 => ['nome' => 'Cotiporã', 'uf' => 'RS'], + 5103379 => ['nome' => 'Cotriguaçu', 'uf' => 'MT'], + 3120102 => ['nome' => 'Couto de Magalhães de Minas', 'uf' => 'MG'], + 1706001 => ['nome' => 'Couto Magalhães', 'uf' => 'TO'], + 4305975 => ['nome' => 'Coxilha', 'uf' => 'RS'], + 5003306 => ['nome' => 'Coxim', 'uf' => 'MS'], + 2504850 => ['nome' => 'Coxixola', 'uf' => 'PB'], + 2702355 => ['nome' => 'Craíbas', 'uf' => 'AL'], + 2304103 => ['nome' => 'Crateús', 'uf' => 'CE'], + 2304202 => ['nome' => 'Crato', 'uf' => 'CE'], + 3513108 => ['nome' => 'Cravinhos', 'uf' => 'SP'], + 2909505 => ['nome' => 'Cravolândia', 'uf' => 'BA'], + 4204608 => ['nome' => 'Criciúma', 'uf' => 'SC'], + 3120151 => ['nome' => 'Crisólita', 'uf' => 'MG'], + 2909604 => ['nome' => 'Crisópolis', 'uf' => 'BA'], + 4306007 => ['nome' => 'Crissiumal', 'uf' => 'RS'], + 3120201 => ['nome' => 'Cristais', 'uf' => 'MG'], + 3513207 => ['nome' => 'Cristais Paulista', 'uf' => 'SP'], + 4306056 => ['nome' => 'Cristal', 'uf' => 'RS'], + 4306072 => ['nome' => 'Cristal do Sul', 'uf' => 'RS'], + 1706100 => ['nome' => 'Cristalândia', 'uf' => 'TO'], + 2203008 => ['nome' => 'Cristalândia do Piauí', 'uf' => 'PI'], + 3120300 => ['nome' => 'Cristália', 'uf' => 'MG'], + 5206206 => ['nome' => 'Cristalina', 'uf' => 'GO'], + 3120409 => ['nome' => 'Cristiano Otoni', 'uf' => 'MG'], + 5206305 => ['nome' => 'Cristianópolis', 'uf' => 'GO'], + 3120508 => ['nome' => 'Cristina', 'uf' => 'MG'], + 2801702 => ['nome' => 'Cristinápolis', 'uf' => 'SE'], + 2203107 => ['nome' => 'Cristino Castro', 'uf' => 'PI'], + 2909703 => ['nome' => 'Cristópolis', 'uf' => 'BA'], + 5206404 => ['nome' => 'Crixás', 'uf' => 'GO'], + 1706258 => ['nome' => 'Crixás do Tocantins', 'uf' => 'TO'], + 2304236 => ['nome' => 'Croatá', 'uf' => 'CE'], + 5206503 => ['nome' => 'Cromínia', 'uf' => 'GO'], + 3120607 => ['nome' => 'Crucilândia', 'uf' => 'MG'], + 2304251 => ['nome' => 'Cruz', 'uf' => 'CE'], + 4306106 => ['nome' => 'Cruz Alta', 'uf' => 'RS'], + 2909802 => ['nome' => 'Cruz das Almas', 'uf' => 'BA'], + 2504900 => ['nome' => 'Cruz do Espírito Santo', 'uf' => 'PB'], + 4106803 => ['nome' => 'Cruz Machado', 'uf' => 'PR'], + 3513306 => ['nome' => 'Cruzália', 'uf' => 'SP'], + 4306130 => ['nome' => 'Cruzaltense', 'uf' => 'RS'], + 3513405 => ['nome' => 'Cruzeiro', 'uf' => 'SP'], + 3120706 => ['nome' => 'Cruzeiro da Fortaleza', 'uf' => 'MG'], + 4106571 => ['nome' => 'Cruzeiro do Iguaçu', 'uf' => 'PR'], + 4106605 => ['nome' => 'Cruzeiro do Oeste', 'uf' => 'PR'], + 4106704 => ['nome' => 'Cruzeiro do Sul', 'uf' => 'PR'], + 4306205 => ['nome' => 'Cruzeiro do Sul', 'uf' => 'RS'], + 1200203 => ['nome' => 'Cruzeiro do Sul', 'uf' => 'AC'], + 2403004 => ['nome' => 'Cruzeta', 'uf' => 'RN'], + 3120805 => ['nome' => 'Cruzília', 'uf' => 'MG'], + 4106852 => ['nome' => 'Cruzmaltina', 'uf' => 'PR'], + 3513504 => ['nome' => 'Cubatão', 'uf' => 'SP'], + 2505006 => ['nome' => 'Cubati', 'uf' => 'PB'], + 5103403 => ['nome' => 'Cuiabá', 'uf' => 'MT'], + 2505105 => ['nome' => 'Cuité', 'uf' => 'PB'], + 2505238 => ['nome' => 'Cuité de Mamanguape', 'uf' => 'PB'], + 2505204 => ['nome' => 'Cuitegi', 'uf' => 'PB'], + 1100940 => ['nome' => 'Cujubim', 'uf' => 'RO'], + 5206602 => ['nome' => 'Cumari', 'uf' => 'GO'], + 2604908 => ['nome' => 'Cumaru', 'uf' => 'PE'], + 1502764 => ['nome' => 'Cumaru do Norte', 'uf' => 'PA'], + 2801900 => ['nome' => 'Cumbe', 'uf' => 'SE'], + 3513603 => ['nome' => 'Cunha', 'uf' => 'SP'], + 4204707 => ['nome' => 'Cunha Porã', 'uf' => 'SC'], + 4204756 => ['nome' => 'Cunhataí', 'uf' => 'SC'], + 3120839 => ['nome' => 'Cuparaque', 'uf' => 'MG'], + 2605004 => ['nome' => 'Cupira', 'uf' => 'PE'], + 2909901 => ['nome' => 'Curaçá', 'uf' => 'BA'], + 2203206 => ['nome' => 'Curimatá', 'uf' => 'PI'], + 1502772 => ['nome' => 'Curionópolis', 'uf' => 'PA'], + 4106902 => ['nome' => 'Curitiba', 'uf' => 'PR'], + 4204806 => ['nome' => 'Curitibanos', 'uf' => 'SC'], + 4107009 => ['nome' => 'Curiúva', 'uf' => 'PR'], + 2203230 => ['nome' => 'Currais', 'uf' => 'PI'], + 2403103 => ['nome' => 'Currais Novos', 'uf' => 'RN'], + 2505279 => ['nome' => 'Curral de Cima', 'uf' => 'PB'], + 3120870 => ['nome' => 'Curral de Dentro', 'uf' => 'MG'], + 2203271 => ['nome' => 'Curral Novo do Piauí', 'uf' => 'PI'], + 2505303 => ['nome' => 'Curral Velho', 'uf' => 'PB'], + 1502806 => ['nome' => 'Curralinho', 'uf' => 'PA'], + 2203255 => ['nome' => 'Curralinhos', 'uf' => 'PI'], + 1502855 => ['nome' => 'Curuá', 'uf' => 'PA'], + 1502905 => ['nome' => 'Curuçá', 'uf' => 'PA'], + 2103703 => ['nome' => 'Cururupu', 'uf' => 'MA'], + 5103437 => ['nome' => 'Curvelândia', 'uf' => 'MT'], + 3120904 => ['nome' => 'Curvelo', 'uf' => 'MG'], + 2605103 => ['nome' => 'Custódia', 'uf' => 'PE'], + 1600212 => ['nome' => 'Cutias', 'uf' => 'AP'], + 5206701 => ['nome' => 'Damianópolis', 'uf' => 'GO'], + 2505352 => ['nome' => 'Damião', 'uf' => 'PB'], + 5206800 => ['nome' => 'Damolândia', 'uf' => 'GO'], + 1706506 => ['nome' => 'Darcinópolis', 'uf' => 'TO'], + 2910008 => ['nome' => 'Dário Meira', 'uf' => 'BA'], + 3121001 => ['nome' => 'Datas', 'uf' => 'MG'], + 4306304 => ['nome' => 'David Canabarro', 'uf' => 'RS'], + 2103752 => ['nome' => 'Davinópolis', 'uf' => 'MA'], + 5206909 => ['nome' => 'Davinópolis', 'uf' => 'GO'], + 3121100 => ['nome' => 'Delfim Moreira', 'uf' => 'MG'], + 3121209 => ['nome' => 'Delfinópolis', 'uf' => 'MG'], + 2702405 => ['nome' => 'Delmiro Gouveia', 'uf' => 'AL'], + 3121258 => ['nome' => 'Delta', 'uf' => 'MG'], + 2203305 => ['nome' => 'Demerval Lobão', 'uf' => 'PI'], + 5103452 => ['nome' => 'Denise', 'uf' => 'MT'], + 5003454 => ['nome' => 'Deodápolis', 'uf' => 'MS'], + 2304269 => ['nome' => 'Deputado Irapuan Pinheiro', 'uf' => 'CE'], + 4306320 => ['nome' => 'Derrubadas', 'uf' => 'RS'], + 3513702 => ['nome' => 'Descalvado', 'uf' => 'SP'], + 4204905 => ['nome' => 'Descanso', 'uf' => 'SC'], + 3121308 => ['nome' => 'Descoberto', 'uf' => 'MG'], + 2505402 => ['nome' => 'Desterro', 'uf' => 'PB'], + 3121407 => ['nome' => 'Desterro de Entre Rios', 'uf' => 'MG'], + 3121506 => ['nome' => 'Desterro do Melo', 'uf' => 'MG'], + 4306353 => ['nome' => 'Dezesseis de Novembro', 'uf' => 'RS'], + 3513801 => ['nome' => 'Diadema', 'uf' => 'SP'], + 2505600 => ['nome' => 'Diamante', 'uf' => 'PB'], + 4107157 => ['nome' => 'Diamante D\'Oeste', 'uf' => 'PR'], + 4107108 => ['nome' => 'Diamante do Norte', 'uf' => 'PR'], + 4107124 => ['nome' => 'Diamante do Sul', 'uf' => 'PR'], + 3121605 => ['nome' => 'Diamantina', 'uf' => 'MG'], + 5103502 => ['nome' => 'Diamantino', 'uf' => 'MT'], + 1707009 => ['nome' => 'Dianópolis', 'uf' => 'TO'], + 2910057 => ['nome' => 'Dias d\'Ávila', 'uf' => 'BA'], + 4306379 => ['nome' => 'Dilermando de Aguiar', 'uf' => 'RS'], + 3121704 => ['nome' => 'Diogo de Vasconcelos', 'uf' => 'MG'], + 3121803 => ['nome' => 'Dionísio', 'uf' => 'MG'], + 4205001 => ['nome' => 'Dionísio Cerqueira', 'uf' => 'SC'], + 5207105 => ['nome' => 'Diorama', 'uf' => 'GO'], + 3513850 => ['nome' => 'Dirce Reis', 'uf' => 'SP'], + 2203354 => ['nome' => 'Dirceu Arcoverde', 'uf' => 'PI'], + 2802007 => ['nome' => 'Divina Pastora', 'uf' => 'SE'], + 3121902 => ['nome' => 'Divinésia', 'uf' => 'MG'], + 3122009 => ['nome' => 'Divino', 'uf' => 'MG'], + 3122108 => ['nome' => 'Divino das Laranjeiras', 'uf' => 'MG'], + 3201803 => ['nome' => 'Divino de São Lourenço', 'uf' => 'ES'], + 3513900 => ['nome' => 'Divinolândia', 'uf' => 'SP'], + 3122207 => ['nome' => 'Divinolândia de Minas', 'uf' => 'MG'], + 3122306 => ['nome' => 'Divinópolis', 'uf' => 'MG'], + 5208301 => ['nome' => 'Divinópolis de Goiás', 'uf' => 'GO'], + 1707108 => ['nome' => 'Divinópolis do Tocantins', 'uf' => 'TO'], + 3122355 => ['nome' => 'Divisa Alegre', 'uf' => 'MG'], + 3122405 => ['nome' => 'Divisa Nova', 'uf' => 'MG'], + 3122454 => ['nome' => 'Divisópolis', 'uf' => 'MG'], + 3514007 => ['nome' => 'Dobrada', 'uf' => 'SP'], + 3514106 => ['nome' => 'Dois Córregos', 'uf' => 'SP'], + 4306403 => ['nome' => 'Dois Irmãos', 'uf' => 'RS'], + 4306429 => ['nome' => 'Dois Irmãos das Missões', 'uf' => 'RS'], + 5003488 => ['nome' => 'Dois Irmãos do Buriti', 'uf' => 'MS'], + 1707207 => ['nome' => 'Dois Irmãos do Tocantins', 'uf' => 'TO'], + 4306452 => ['nome' => 'Dois Lajeados', 'uf' => 'RS'], + 2702504 => ['nome' => 'Dois Riachos', 'uf' => 'AL'], + 4107207 => ['nome' => 'Dois Vizinhos', 'uf' => 'PR'], + 3514205 => ['nome' => 'Dolcinópolis', 'uf' => 'SP'], + 5103601 => ['nome' => 'Dom Aquino', 'uf' => 'MT'], + 2910107 => ['nome' => 'Dom Basílio', 'uf' => 'BA'], + 3122470 => ['nome' => 'Dom Bosco', 'uf' => 'MG'], + 3122504 => ['nome' => 'Dom Cavati', 'uf' => 'MG'], + 1502939 => ['nome' => 'Dom Eliseu', 'uf' => 'PA'], + 2203404 => ['nome' => 'Dom Expedito Lopes', 'uf' => 'PI'], + 4306502 => ['nome' => 'Dom Feliciano', 'uf' => 'RS'], + 2203453 => ['nome' => 'Dom Inocêncio', 'uf' => 'PI'], + 3122603 => ['nome' => 'Dom Joaquim', 'uf' => 'MG'], + 2910206 => ['nome' => 'Dom Macedo Costa', 'uf' => 'BA'], + 4306601 => ['nome' => 'Dom Pedrito', 'uf' => 'RS'], + 2103802 => ['nome' => 'Dom Pedro', 'uf' => 'MA'], + 4306551 => ['nome' => 'Dom Pedro de Alcântara', 'uf' => 'RS'], + 3122702 => ['nome' => 'Dom Silvério', 'uf' => 'MG'], + 3122801 => ['nome' => 'Dom Viçoso', 'uf' => 'MG'], + 3201902 => ['nome' => 'Domingos Martins', 'uf' => 'ES'], + 2203420 => ['nome' => 'Domingos Mourão', 'uf' => 'PI'], + 4205100 => ['nome' => 'Dona Emma', 'uf' => 'SC'], + 3122900 => ['nome' => 'Dona Eusébia', 'uf' => 'MG'], + 4306700 => ['nome' => 'Dona Francisca', 'uf' => 'RS'], + 2505709 => ['nome' => 'Dona Inês', 'uf' => 'PB'], + 3123007 => ['nome' => 'Dores de Campos', 'uf' => 'MG'], + 3123106 => ['nome' => 'Dores de Guanhães', 'uf' => 'MG'], + 3123205 => ['nome' => 'Dores do Indaiá', 'uf' => 'MG'], + 3202009 => ['nome' => 'Dores do Rio Preto', 'uf' => 'ES'], + 3123304 => ['nome' => 'Dores do Turvo', 'uf' => 'MG'], + 3123403 => ['nome' => 'Doresópolis', 'uf' => 'MG'], + 2605152 => ['nome' => 'Dormentes', 'uf' => 'PE'], + 5003504 => ['nome' => 'Douradina', 'uf' => 'MS'], + 4107256 => ['nome' => 'Douradina', 'uf' => 'PR'], + 3514304 => ['nome' => 'Dourado', 'uf' => 'SP'], + 3123502 => ['nome' => 'Douradoquara', 'uf' => 'MG'], + 5003702 => ['nome' => 'Dourados', 'uf' => 'MS'], + 4107306 => ['nome' => 'Doutor Camargo', 'uf' => 'PR'], + 4306734 => ['nome' => 'Doutor Maurício Cardoso', 'uf' => 'RS'], + 4205159 => ['nome' => 'Doutor Pedrinho', 'uf' => 'SC'], + 4306759 => ['nome' => 'Doutor Ricardo', 'uf' => 'RS'], + 2403202 => ['nome' => 'Doutor Severiano', 'uf' => 'RN'], + 4128633 => ['nome' => 'Doutor Ulysses', 'uf' => 'PR'], + 5207253 => ['nome' => 'Doverlândia', 'uf' => 'GO'], + 3514403 => ['nome' => 'Dracena', 'uf' => 'SP'], + 3514502 => ['nome' => 'Duartina', 'uf' => 'SP'], + 3301603 => ['nome' => 'Duas Barras', 'uf' => 'RJ'], + 2505808 => ['nome' => 'Duas Estradas', 'uf' => 'PB'], + 1707306 => ['nome' => 'Dueré', 'uf' => 'TO'], + 3514601 => ['nome' => 'Dumont', 'uf' => 'SP'], + 2103901 => ['nome' => 'Duque Bacelar', 'uf' => 'MA'], + 3301702 => ['nome' => 'Duque de Caxias', 'uf' => 'RJ'], + 3123528 => ['nome' => 'Durandé', 'uf' => 'MG'], + 3514700 => ['nome' => 'Echaporã', 'uf' => 'SP'], + 3202108 => ['nome' => 'Ecoporanga', 'uf' => 'ES'], + 5207352 => ['nome' => 'Edealina', 'uf' => 'GO'], + 5207402 => ['nome' => 'Edéia', 'uf' => 'GO'], + 1301407 => ['nome' => 'Eirunepé', 'uf' => 'AM'], + 5003751 => ['nome' => 'Eldorado', 'uf' => 'MS'], + 3514809 => ['nome' => 'Eldorado', 'uf' => 'SP'], + 1502954 => ['nome' => 'Eldorado do Carajás', 'uf' => 'PA'], + 4306767 => ['nome' => 'Eldorado do Sul', 'uf' => 'RS'], + 2203503 => ['nome' => 'Elesbão Veloso', 'uf' => 'PI'], + 3514908 => ['nome' => 'Elias Fausto', 'uf' => 'SP'], + 2203602 => ['nome' => 'Eliseu Martins', 'uf' => 'PI'], + 3514924 => ['nome' => 'Elisiário', 'uf' => 'SP'], + 2910305 => ['nome' => 'Elísio Medrado', 'uf' => 'BA'], + 3123601 => ['nome' => 'Elói Mendes', 'uf' => 'MG'], + 2505907 => ['nome' => 'Emas', 'uf' => 'PB'], + 3514957 => ['nome' => 'Embaúba', 'uf' => 'SP'], + 3515004 => ['nome' => 'Embu das Artes', 'uf' => 'SP'], + 3515103 => ['nome' => 'Embu-Guaçu', 'uf' => 'SP'], + 3515129 => ['nome' => 'Emilianópolis', 'uf' => 'SP'], + 4306809 => ['nome' => 'Encantado', 'uf' => 'RS'], + 2403301 => ['nome' => 'Encanto', 'uf' => 'RN'], + 2910404 => ['nome' => 'Encruzilhada', 'uf' => 'BA'], + 4306908 => ['nome' => 'Encruzilhada do Sul', 'uf' => 'RS'], + 4107405 => ['nome' => 'Enéas Marques', 'uf' => 'PR'], + 4107504 => ['nome' => 'Engenheiro Beltrão', 'uf' => 'PR'], + 3123700 => ['nome' => 'Engenheiro Caldas', 'uf' => 'MG'], + 3515152 => ['nome' => 'Engenheiro Coelho', 'uf' => 'SP'], + 3123809 => ['nome' => 'Engenheiro Navarro', 'uf' => 'MG'], + 3301801 => ['nome' => 'Engenheiro Paulo de Frontin', 'uf' => 'RJ'], + 4306924 => ['nome' => 'Engenho Velho', 'uf' => 'RS'], + 3123858 => ['nome' => 'Entre Folhas', 'uf' => 'MG'], + 2910503 => ['nome' => 'Entre Rios', 'uf' => 'BA'], + 4205175 => ['nome' => 'Entre Rios', 'uf' => 'SC'], + 3123908 => ['nome' => 'Entre Rios de Minas', 'uf' => 'MG'], + 4107538 => ['nome' => 'Entre Rios do Oeste', 'uf' => 'PR'], + 4306957 => ['nome' => 'Entre Rios do Sul', 'uf' => 'RS'], + 4306932 => ['nome' => 'Entre-Ijuís', 'uf' => 'RS'], + 1301506 => ['nome' => 'Envira', 'uf' => 'AM'], + 1200252 => ['nome' => 'Epitaciolândia', 'uf' => 'AC'], + 2403400 => ['nome' => 'Equador', 'uf' => 'RN'], + 4306973 => ['nome' => 'Erebango', 'uf' => 'RS'], + 4307005 => ['nome' => 'Erechim', 'uf' => 'RS'], + 2304277 => ['nome' => 'Ererê', 'uf' => 'CE'], + 2900504 => ['nome' => 'Érico Cardoso', 'uf' => 'BA'], + 4205191 => ['nome' => 'Ermo', 'uf' => 'SC'], + 4307054 => ['nome' => 'Ernestina', 'uf' => 'RS'], + 4307203 => ['nome' => 'Erval Grande', 'uf' => 'RS'], + 4307302 => ['nome' => 'Erval Seco', 'uf' => 'RS'], + 4205209 => ['nome' => 'Erval Velho', 'uf' => 'SC'], + 3124005 => ['nome' => 'Ervália', 'uf' => 'MG'], + 2605202 => ['nome' => 'Escada', 'uf' => 'PE'], + 4307401 => ['nome' => 'Esmeralda', 'uf' => 'RS'], + 3124104 => ['nome' => 'Esmeraldas', 'uf' => 'MG'], + 3124203 => ['nome' => 'Espera Feliz', 'uf' => 'MG'], + 2506004 => ['nome' => 'Esperança', 'uf' => 'PB'], + 4307450 => ['nome' => 'Esperança do Sul', 'uf' => 'RS'], + 4107520 => ['nome' => 'Esperança Nova', 'uf' => 'PR'], + 1707405 => ['nome' => 'Esperantina', 'uf' => 'TO'], + 2203701 => ['nome' => 'Esperantina', 'uf' => 'PI'], + 2104008 => ['nome' => 'Esperantinópolis', 'uf' => 'MA'], + 4107546 => ['nome' => 'Espigão Alto do Iguaçu', 'uf' => 'PR'], + 1100098 => ['nome' => 'Espigão D\'Oeste', 'uf' => 'RO'], + 3124302 => ['nome' => 'Espinosa', 'uf' => 'MG'], + 2403509 => ['nome' => 'Espírito Santo', 'uf' => 'RN'], + 3124401 => ['nome' => 'Espírito Santo do Dourado', 'uf' => 'MG'], + 3515186 => ['nome' => 'Espírito Santo do Pinhal', 'uf' => 'SP'], + 3515194 => ['nome' => 'Espírito Santo do Turvo', 'uf' => 'SP'], + 2910602 => ['nome' => 'Esplanada', 'uf' => 'BA'], + 4307500 => ['nome' => 'Espumoso', 'uf' => 'RS'], + 4307559 => ['nome' => 'Estação', 'uf' => 'RS'], + 2802106 => ['nome' => 'Estância', 'uf' => 'SE'], + 4307609 => ['nome' => 'Estância Velha', 'uf' => 'RS'], + 4307708 => ['nome' => 'Esteio', 'uf' => 'RS'], + 3124500 => ['nome' => 'Estiva', 'uf' => 'MG'], + 3557303 => ['nome' => 'Estiva Gerbi', 'uf' => 'SP'], + 2104057 => ['nome' => 'Estreito', 'uf' => 'MA'], + 4307807 => ['nome' => 'Estrela', 'uf' => 'RS'], + 3515202 => ['nome' => 'Estrela d\'Oeste', 'uf' => 'SP'], + 3124609 => ['nome' => 'Estrela Dalva', 'uf' => 'MG'], + 2702553 => ['nome' => 'Estrela de Alagoas', 'uf' => 'AL'], + 3124708 => ['nome' => 'Estrela do Indaiá', 'uf' => 'MG'], + 5207501 => ['nome' => 'Estrela do Norte', 'uf' => 'GO'], + 3515301 => ['nome' => 'Estrela do Norte', 'uf' => 'SP'], + 3124807 => ['nome' => 'Estrela do Sul', 'uf' => 'MG'], + 4307815 => ['nome' => 'Estrela Velha', 'uf' => 'RS'], + 2910701 => ['nome' => 'Euclides da Cunha', 'uf' => 'BA'], + 3515350 => ['nome' => 'Euclides da Cunha Paulista', 'uf' => 'SP'], + 4307831 => ['nome' => 'Eugênio de Castro', 'uf' => 'RS'], + 3124906 => ['nome' => 'Eugenópolis', 'uf' => 'MG'], + 2910727 => ['nome' => 'Eunápolis', 'uf' => 'BA'], + 2304285 => ['nome' => 'Eusébio', 'uf' => 'CE'], + 3125002 => ['nome' => 'Ewbank da Câmara', 'uf' => 'MG'], + 3125101 => ['nome' => 'Extrema', 'uf' => 'MG'], + 2403608 => ['nome' => 'Extremoz', 'uf' => 'RN'], + 2605301 => ['nome' => 'Exu', 'uf' => 'PE'], + 2506103 => ['nome' => 'Fagundes', 'uf' => 'PB'], + 4307864 => ['nome' => 'Fagundes Varela', 'uf' => 'RS'], + 5207535 => ['nome' => 'Faina', 'uf' => 'GO'], + 3125200 => ['nome' => 'Fama', 'uf' => 'MG'], + 3125309 => ['nome' => 'Faria Lemos', 'uf' => 'MG'], + 2304301 => ['nome' => 'Farias Brito', 'uf' => 'CE'], + 1503002 => ['nome' => 'Faro', 'uf' => 'PA'], + 4107553 => ['nome' => 'Farol', 'uf' => 'PR'], + 4307906 => ['nome' => 'Farroupilha', 'uf' => 'RS'], + 3515400 => ['nome' => 'Fartura', 'uf' => 'SP'], + 2203750 => ['nome' => 'Fartura do Piauí', 'uf' => 'PI'], + 1707553 => ['nome' => 'Fátima', 'uf' => 'TO'], + 2910750 => ['nome' => 'Fátima', 'uf' => 'BA'], + 5003801 => ['nome' => 'Fátima do Sul', 'uf' => 'MS'], + 4107603 => ['nome' => 'Faxinal', 'uf' => 'PR'], + 4308003 => ['nome' => 'Faxinal do Soturno', 'uf' => 'RS'], + 4205308 => ['nome' => 'Faxinal dos Guedes', 'uf' => 'SC'], + 4308052 => ['nome' => 'Faxinalzinho', 'uf' => 'RS'], + 5207600 => ['nome' => 'Fazenda Nova', 'uf' => 'GO'], + 4107652 => ['nome' => 'Fazenda Rio Grande', 'uf' => 'PR'], + 4308078 => ['nome' => 'Fazenda Vilanova', 'uf' => 'RS'], + 1200302 => ['nome' => 'Feijó', 'uf' => 'AC'], + 2910776 => ['nome' => 'Feira da Mata', 'uf' => 'BA'], + 2910800 => ['nome' => 'Feira de Santana', 'uf' => 'BA'], + 2702603 => ['nome' => 'Feira Grande', 'uf' => 'AL'], + 2605400 => ['nome' => 'Feira Nova', 'uf' => 'PE'], + 2802205 => ['nome' => 'Feira Nova', 'uf' => 'SE'], + 2104073 => ['nome' => 'Feira Nova do Maranhão', 'uf' => 'MA'], + 3125408 => ['nome' => 'Felício dos Santos', 'uf' => 'MG'], + 2403707 => ['nome' => 'Felipe Guerra', 'uf' => 'RN'], + 3125606 => ['nome' => 'Felisburgo', 'uf' => 'MG'], + 3125705 => ['nome' => 'Felixlândia', 'uf' => 'MG'], + 4308102 => ['nome' => 'Feliz', 'uf' => 'RS'], + 2702702 => ['nome' => 'Feliz Deserto', 'uf' => 'AL'], + 5103700 => ['nome' => 'Feliz Natal', 'uf' => 'MT'], + 4107702 => ['nome' => 'Fênix', 'uf' => 'PR'], + 4107736 => ['nome' => 'Fernandes Pinheiro', 'uf' => 'PR'], + 3125804 => ['nome' => 'Fernandes Tourinho', 'uf' => 'MG'], + 2605459 => ['nome' => 'Fernando de Noronha', 'uf' => 'PE'], + 2104081 => ['nome' => 'Fernando Falcão', 'uf' => 'MA'], + 2403756 => ['nome' => 'Fernando Pedroza', 'uf' => 'RN'], + 3515608 => ['nome' => 'Fernando Prestes', 'uf' => 'SP'], + 3515509 => ['nome' => 'Fernandópolis', 'uf' => 'SP'], + 3515657 => ['nome' => 'Fernão', 'uf' => 'SP'], + 3515707 => ['nome' => 'Ferraz de Vasconcelos', 'uf' => 'SP'], + 1600238 => ['nome' => 'Ferreira Gomes', 'uf' => 'AP'], + 2605509 => ['nome' => 'Ferreiros', 'uf' => 'PE'], + 3125903 => ['nome' => 'Ferros', 'uf' => 'MG'], + 3125952 => ['nome' => 'Fervedouro', 'uf' => 'MG'], + 4107751 => ['nome' => 'Figueira', 'uf' => 'PR'], + 5003900 => ['nome' => 'Figueirão', 'uf' => 'MS'], + 1707652 => ['nome' => 'Figueirópolis', 'uf' => 'TO'], + 5103809 => ['nome' => 'Figueirópolis D\'Oeste', 'uf' => 'MT'], + 1707702 => ['nome' => 'Filadélfia', 'uf' => 'TO'], + 2910859 => ['nome' => 'Filadélfia', 'uf' => 'BA'], + 2910909 => ['nome' => 'Firmino Alves', 'uf' => 'BA'], + 5207808 => ['nome' => 'Firminópolis', 'uf' => 'GO'], + 2702801 => ['nome' => 'Flexeiras', 'uf' => 'AL'], + 4107850 => ['nome' => 'Flor da Serra do Sul', 'uf' => 'PR'], + 4205357 => ['nome' => 'Flor do Sertão', 'uf' => 'SC'], + 3515806 => ['nome' => 'Flora Rica', 'uf' => 'SP'], + 4107801 => ['nome' => 'Floraí', 'uf' => 'PR'], + 2403806 => ['nome' => 'Florânia', 'uf' => 'RN'], + 3515905 => ['nome' => 'Floreal', 'uf' => 'SP'], + 2605608 => ['nome' => 'Flores', 'uf' => 'PE'], + 4308201 => ['nome' => 'Flores da Cunha', 'uf' => 'RS'], + 5207907 => ['nome' => 'Flores de Goiás', 'uf' => 'GO'], + 2203800 => ['nome' => 'Flores do Piauí', 'uf' => 'PI'], + 4107900 => ['nome' => 'Floresta', 'uf' => 'PR'], + 2605707 => ['nome' => 'Floresta', 'uf' => 'PE'], + 2911006 => ['nome' => 'Floresta Azul', 'uf' => 'BA'], + 1503044 => ['nome' => 'Floresta do Araguaia', 'uf' => 'PA'], + 2203859 => ['nome' => 'Floresta do Piauí', 'uf' => 'PI'], + 3126000 => ['nome' => 'Florestal', 'uf' => 'MG'], + 4108007 => ['nome' => 'Florestópolis', 'uf' => 'PR'], + 2203909 => ['nome' => 'Floriano', 'uf' => 'PI'], + 4308250 => ['nome' => 'Floriano Peixoto', 'uf' => 'RS'], + 4205407 => ['nome' => 'Florianópolis', 'uf' => 'SC'], + 4108106 => ['nome' => 'Flórida', 'uf' => 'PR'], + 3516002 => ['nome' => 'Flórida Paulista', 'uf' => 'SP'], + 3516101 => ['nome' => 'Florínia', 'uf' => 'SP'], + 1301605 => ['nome' => 'Fonte Boa', 'uf' => 'AM'], + 4308300 => ['nome' => 'Fontoura Xavier', 'uf' => 'RS'], + 3126109 => ['nome' => 'Formiga', 'uf' => 'MG'], + 4308409 => ['nome' => 'Formigueiro', 'uf' => 'RS'], + 5208004 => ['nome' => 'Formosa', 'uf' => 'GO'], + 2104099 => ['nome' => 'Formosa da Serra Negra', 'uf' => 'MA'], + 4108205 => ['nome' => 'Formosa do Oeste', 'uf' => 'PR'], + 2911105 => ['nome' => 'Formosa do Rio Preto', 'uf' => 'BA'], + 4205431 => ['nome' => 'Formosa do Sul', 'uf' => 'SC'], + 5208103 => ['nome' => 'Formoso', 'uf' => 'GO'], + 3126208 => ['nome' => 'Formoso', 'uf' => 'MG'], + 1708205 => ['nome' => 'Formoso do Araguaia', 'uf' => 'TO'], + 4308433 => ['nome' => 'Forquetinha', 'uf' => 'RS'], + 2304350 => ['nome' => 'Forquilha', 'uf' => 'CE'], + 4205456 => ['nome' => 'Forquilhinha', 'uf' => 'SC'], + 2304400 => ['nome' => 'Fortaleza', 'uf' => 'CE'], + 3126307 => ['nome' => 'Fortaleza de Minas', 'uf' => 'MG'], + 1708254 => ['nome' => 'Fortaleza do Tabocão', 'uf' => 'TO'], + 2104107 => ['nome' => 'Fortaleza dos Nogueiras', 'uf' => 'MA'], + 4308458 => ['nome' => 'Fortaleza dos Valos', 'uf' => 'RS'], + 2304459 => ['nome' => 'Fortim', 'uf' => 'CE'], + 2104206 => ['nome' => 'Fortuna', 'uf' => 'MA'], + 3126406 => ['nome' => 'Fortuna de Minas', 'uf' => 'MG'], + 4108304 => ['nome' => 'Foz do Iguaçu', 'uf' => 'PR'], + 4108452 => ['nome' => 'Foz do Jordão', 'uf' => 'PR'], + 4205506 => ['nome' => 'Fraiburgo', 'uf' => 'SC'], + 3516200 => ['nome' => 'Franca', 'uf' => 'SP'], + 2204006 => ['nome' => 'Francinópolis', 'uf' => 'PI'], + 4108320 => ['nome' => 'Francisco Alves', 'uf' => 'PR'], + 2204105 => ['nome' => 'Francisco Ayres', 'uf' => 'PI'], + 3126505 => ['nome' => 'Francisco Badaró', 'uf' => 'MG'], + 4108403 => ['nome' => 'Francisco Beltrão', 'uf' => 'PR'], + 2403905 => ['nome' => 'Francisco Dantas', 'uf' => 'RN'], + 3126604 => ['nome' => 'Francisco Dumont', 'uf' => 'MG'], + 2204154 => ['nome' => 'Francisco Macedo', 'uf' => 'PI'], + 3516309 => ['nome' => 'Francisco Morato', 'uf' => 'SP'], + 3126703 => ['nome' => 'Francisco Sá', 'uf' => 'MG'], + 2204204 => ['nome' => 'Francisco Santos', 'uf' => 'PI'], + 3126752 => ['nome' => 'Franciscópolis', 'uf' => 'MG'], + 3516408 => ['nome' => 'Franco da Rocha', 'uf' => 'SP'], + 2304509 => ['nome' => 'Frecheirinha', 'uf' => 'CE'], + 4308508 => ['nome' => 'Frederico Westphalen', 'uf' => 'RS'], + 3126802 => ['nome' => 'Frei Gaspar', 'uf' => 'MG'], + 3126901 => ['nome' => 'Frei Inocêncio', 'uf' => 'MG'], + 3126950 => ['nome' => 'Frei Lagonegro', 'uf' => 'MG'], + 2506202 => ['nome' => 'Frei Martinho', 'uf' => 'PB'], + 2605806 => ['nome' => 'Frei Miguelinho', 'uf' => 'PE'], + 2802304 => ['nome' => 'Frei Paulo', 'uf' => 'SE'], + 4205555 => ['nome' => 'Frei Rogério', 'uf' => 'SC'], + 3127008 => ['nome' => 'Fronteira', 'uf' => 'MG'], + 3127057 => ['nome' => 'Fronteira dos Vales', 'uf' => 'MG'], + 2204303 => ['nome' => 'Fronteiras', 'uf' => 'PI'], + 3127073 => ['nome' => 'Fruta de Leite', 'uf' => 'MG'], + 3127107 => ['nome' => 'Frutal', 'uf' => 'MG'], + 2404002 => ['nome' => 'Frutuoso Gomes', 'uf' => 'RN'], + 3202207 => ['nome' => 'Fundão', 'uf' => 'ES'], + 3127206 => ['nome' => 'Funilândia', 'uf' => 'MG'], + 3516507 => ['nome' => 'Gabriel Monteiro', 'uf' => 'SP'], + 2506251 => ['nome' => 'Gado Bravo', 'uf' => 'PB'], + 3516606 => ['nome' => 'Gália', 'uf' => 'SP'], + 3127305 => ['nome' => 'Galiléia', 'uf' => 'MG'], + 2404101 => ['nome' => 'Galinhos', 'uf' => 'RN'], + 4205605 => ['nome' => 'Galvão', 'uf' => 'SC'], + 2605905 => ['nome' => 'Gameleira', 'uf' => 'PE'], + 5208152 => ['nome' => 'Gameleira de Goiás', 'uf' => 'GO'], + 3127339 => ['nome' => 'Gameleiras', 'uf' => 'MG'], + 2911204 => ['nome' => 'Gandu', 'uf' => 'BA'], + 2606002 => ['nome' => 'Garanhuns', 'uf' => 'PE'], + 2802403 => ['nome' => 'Gararu', 'uf' => 'SE'], + 3516705 => ['nome' => 'Garça', 'uf' => 'SP'], + 4308607 => ['nome' => 'Garibaldi', 'uf' => 'RS'], + 4205704 => ['nome' => 'Garopaba', 'uf' => 'SC'], + 1503077 => ['nome' => 'Garrafão do Norte', 'uf' => 'PA'], + 4308656 => ['nome' => 'Garruchos', 'uf' => 'RS'], + 4205803 => ['nome' => 'Garuva', 'uf' => 'SC'], + 4205902 => ['nome' => 'Gaspar', 'uf' => 'SC'], + 3516804 => ['nome' => 'Gastão Vidigal', 'uf' => 'SP'], + 5103858 => ['nome' => 'Gaúcha do Norte', 'uf' => 'MT'], + 4308706 => ['nome' => 'Gaurama', 'uf' => 'RS'], + 2911253 => ['nome' => 'Gavião', 'uf' => 'BA'], + 3516853 => ['nome' => 'Gavião Peixoto', 'uf' => 'SP'], + 2204352 => ['nome' => 'Geminiano', 'uf' => 'PI'], + 4308805 => ['nome' => 'General Câmara', 'uf' => 'RS'], + 5103908 => ['nome' => 'General Carneiro', 'uf' => 'MT'], + 4108502 => ['nome' => 'General Carneiro', 'uf' => 'PR'], + 2802502 => ['nome' => 'General Maynard', 'uf' => 'SE'], + 3516903 => ['nome' => 'General Salgado', 'uf' => 'SP'], + 2304608 => ['nome' => 'General Sampaio', 'uf' => 'CE'], + 4308854 => ['nome' => 'Gentil', 'uf' => 'RS'], + 2911303 => ['nome' => 'Gentio do Ouro', 'uf' => 'BA'], + 3517000 => ['nome' => 'Getulina', 'uf' => 'SP'], + 4308904 => ['nome' => 'Getúlio Vargas', 'uf' => 'RS'], + 2204402 => ['nome' => 'Gilbués', 'uf' => 'PI'], + 2702900 => ['nome' => 'Girau do Ponciano', 'uf' => 'AL'], + 4309001 => ['nome' => 'Giruá', 'uf' => 'RS'], + 3127354 => ['nome' => 'Glaucilândia', 'uf' => 'MG'], + 3517109 => ['nome' => 'Glicério', 'uf' => 'SP'], + 2911402 => ['nome' => 'Glória', 'uf' => 'BA'], + 5103957 => ['nome' => 'Glória D\'Oeste', 'uf' => 'MT'], + 5004007 => ['nome' => 'Glória de Dourados', 'uf' => 'MS'], + 2606101 => ['nome' => 'Glória do Goitá', 'uf' => 'PE'], + 4309050 => ['nome' => 'Glorinha', 'uf' => 'RS'], + 2104305 => ['nome' => 'Godofredo Viana', 'uf' => 'MA'], + 4108551 => ['nome' => 'Godoy Moreira', 'uf' => 'PR'], + 3127370 => ['nome' => 'Goiabeira', 'uf' => 'MG'], + 3127388 => ['nome' => 'Goianá', 'uf' => 'MG'], + 2606200 => ['nome' => 'Goiana', 'uf' => 'PE'], + 5208400 => ['nome' => 'Goianápolis', 'uf' => 'GO'], + 5208509 => ['nome' => 'Goiandira', 'uf' => 'GO'], + 5208608 => ['nome' => 'Goianésia', 'uf' => 'GO'], + 1503093 => ['nome' => 'Goianésia do Pará', 'uf' => 'PA'], + 5208707 => ['nome' => 'Goiânia', 'uf' => 'GO'], + 2404200 => ['nome' => 'Goianinha', 'uf' => 'RN'], + 5208806 => ['nome' => 'Goianira', 'uf' => 'GO'], + 1708304 => ['nome' => 'Goianorte', 'uf' => 'TO'], + 5208905 => ['nome' => 'Goiás', 'uf' => 'GO'], + 1709005 => ['nome' => 'Goiatins', 'uf' => 'TO'], + 5209101 => ['nome' => 'Goiatuba', 'uf' => 'GO'], + 4108601 => ['nome' => 'Goioerê', 'uf' => 'PR'], + 4108650 => ['nome' => 'Goioxim', 'uf' => 'PR'], + 3127404 => ['nome' => 'Gonçalves', 'uf' => 'MG'], + 2104404 => ['nome' => 'Gonçalves Dias', 'uf' => 'MA'], + 2911501 => ['nome' => 'Gongogi', 'uf' => 'BA'], + 3127503 => ['nome' => 'Gonzaga', 'uf' => 'MG'], + 3127602 => ['nome' => 'Gouveia', 'uf' => 'MG'], + 5209150 => ['nome' => 'Gouvelândia', 'uf' => 'GO'], + 2104503 => ['nome' => 'Governador Archer', 'uf' => 'MA'], + 4206009 => ['nome' => 'Governador Celso Ramos', 'uf' => 'SC'], + 2404309 => ['nome' => 'Governador Dix-Sept Rosado', 'uf' => 'RN'], + 2104552 => ['nome' => 'Governador Edison Lobão', 'uf' => 'MA'], + 2104602 => ['nome' => 'Governador Eugênio Barros', 'uf' => 'MA'], + 1101005 => ['nome' => 'Governador Jorge Teixeira', 'uf' => 'RO'], + 3202256 => ['nome' => 'Governador Lindenberg', 'uf' => 'ES'], + 2104628 => ['nome' => 'Governador Luiz Rocha', 'uf' => 'MA'], + 2911600 => ['nome' => 'Governador Mangabeira', 'uf' => 'BA'], + 2104651 => ['nome' => 'Governador Newton Bello', 'uf' => 'MA'], + 2104677 => ['nome' => 'Governador Nunes Freire', 'uf' => 'MA'], + 3127701 => ['nome' => 'Governador Valadares', 'uf' => 'MG'], + 2304657 => ['nome' => 'Graça', 'uf' => 'CE'], + 2104701 => ['nome' => 'Graça Aranha', 'uf' => 'MA'], + 2802601 => ['nome' => 'Gracho Cardoso', 'uf' => 'SE'], + 2104800 => ['nome' => 'Grajaú', 'uf' => 'MA'], + 4309100 => ['nome' => 'Gramado', 'uf' => 'RS'], + 4309126 => ['nome' => 'Gramado dos Loureiros', 'uf' => 'RS'], + 4309159 => ['nome' => 'Gramado Xavier', 'uf' => 'RS'], + 4108700 => ['nome' => 'Grandes Rios', 'uf' => 'PR'], + 2606309 => ['nome' => 'Granito', 'uf' => 'PE'], + 2304707 => ['nome' => 'Granja', 'uf' => 'CE'], + 2304806 => ['nome' => 'Granjeiro', 'uf' => 'CE'], + 3127800 => ['nome' => 'Grão Mogol', 'uf' => 'MG'], + 4206108 => ['nome' => 'Grão Pará', 'uf' => 'SC'], + 2606408 => ['nome' => 'Gravatá', 'uf' => 'PE'], + 4309209 => ['nome' => 'Gravataí', 'uf' => 'RS'], + 4206207 => ['nome' => 'Gravatal', 'uf' => 'SC'], + 2304905 => ['nome' => 'Groaíras', 'uf' => 'CE'], + 2404408 => ['nome' => 'Grossos', 'uf' => 'RN'], + 3127909 => ['nome' => 'Grupiara', 'uf' => 'MG'], + 4309258 => ['nome' => 'Guabiju', 'uf' => 'RS'], + 4206306 => ['nome' => 'Guabiruba', 'uf' => 'SC'], + 3202306 => ['nome' => 'Guaçuí', 'uf' => 'ES'], + 2204501 => ['nome' => 'Guadalupe', 'uf' => 'PI'], + 4309308 => ['nome' => 'Guaíba', 'uf' => 'RS'], + 3517208 => ['nome' => 'Guaiçara', 'uf' => 'SP'], + 3517307 => ['nome' => 'Guaimbê', 'uf' => 'SP'], + 3517406 => ['nome' => 'Guaíra', 'uf' => 'SP'], + 4108809 => ['nome' => 'Guaíra', 'uf' => 'PR'], + 4108908 => ['nome' => 'Guairaçá', 'uf' => 'PR'], + 2304954 => ['nome' => 'Guaiúba', 'uf' => 'CE'], + 1301654 => ['nome' => 'Guajará', 'uf' => 'AM'], + 1100106 => ['nome' => 'Guajará-Mirim', 'uf' => 'RO'], + 2911659 => ['nome' => 'Guajeru', 'uf' => 'BA'], + 2404507 => ['nome' => 'Guamaré', 'uf' => 'RN'], + 4108957 => ['nome' => 'Guamiranga', 'uf' => 'PR'], + 2911709 => ['nome' => 'Guanambi', 'uf' => 'BA'], + 3128006 => ['nome' => 'Guanhães', 'uf' => 'MG'], + 3128105 => ['nome' => 'Guapé', 'uf' => 'MG'], + 3517505 => ['nome' => 'Guapiaçu', 'uf' => 'SP'], + 3517604 => ['nome' => 'Guapiara', 'uf' => 'SP'], + 3301850 => ['nome' => 'Guapimirim', 'uf' => 'RJ'], + 4109005 => ['nome' => 'Guapirama', 'uf' => 'PR'], + 5209200 => ['nome' => 'Guapó', 'uf' => 'GO'], + 4309407 => ['nome' => 'Guaporé', 'uf' => 'RS'], + 4109104 => ['nome' => 'Guaporema', 'uf' => 'PR'], + 3517703 => ['nome' => 'Guará', 'uf' => 'SP'], + 2506301 => ['nome' => 'Guarabira', 'uf' => 'PB'], + 3517802 => ['nome' => 'Guaraçaí', 'uf' => 'SP'], + 3517901 => ['nome' => 'Guaraci', 'uf' => 'SP'], + 4109203 => ['nome' => 'Guaraci', 'uf' => 'PR'], + 3128204 => ['nome' => 'Guaraciaba', 'uf' => 'MG'], + 4206405 => ['nome' => 'Guaraciaba', 'uf' => 'SC'], + 2305001 => ['nome' => 'Guaraciaba do Norte', 'uf' => 'CE'], + 3128253 => ['nome' => 'Guaraciama', 'uf' => 'MG'], + 1709302 => ['nome' => 'Guaraí', 'uf' => 'TO'], + 5209291 => ['nome' => 'Guaraíta', 'uf' => 'GO'], + 2305100 => ['nome' => 'Guaramiranga', 'uf' => 'CE'], + 4206504 => ['nome' => 'Guaramirim', 'uf' => 'SC'], + 3128303 => ['nome' => 'Guaranésia', 'uf' => 'MG'], + 3128402 => ['nome' => 'Guarani', 'uf' => 'MG'], + 3518008 => ['nome' => 'Guarani d\'Oeste', 'uf' => 'SP'], + 4309506 => ['nome' => 'Guarani das Missões', 'uf' => 'RS'], + 5209408 => ['nome' => 'Guarani de Goiás', 'uf' => 'GO'], + 4109302 => ['nome' => 'Guaraniaçu', 'uf' => 'PR'], + 3518107 => ['nome' => 'Guarantã', 'uf' => 'SP'], + 5104104 => ['nome' => 'Guarantã do Norte', 'uf' => 'MT'], + 3202405 => ['nome' => 'Guarapari', 'uf' => 'ES'], + 4109401 => ['nome' => 'Guarapuava', 'uf' => 'PR'], + 4109500 => ['nome' => 'Guaraqueçaba', 'uf' => 'PR'], + 3128501 => ['nome' => 'Guarará', 'uf' => 'MG'], + 3518206 => ['nome' => 'Guararapes', 'uf' => 'SP'], + 3518305 => ['nome' => 'Guararema', 'uf' => 'SP'], + 2911808 => ['nome' => 'Guaratinga', 'uf' => 'BA'], + 3518404 => ['nome' => 'Guaratinguetá', 'uf' => 'SP'], + 4109609 => ['nome' => 'Guaratuba', 'uf' => 'PR'], + 3128600 => ['nome' => 'Guarda-Mor', 'uf' => 'MG'], + 3518503 => ['nome' => 'Guareí', 'uf' => 'SP'], + 3518602 => ['nome' => 'Guariba', 'uf' => 'SP'], + 2204550 => ['nome' => 'Guaribas', 'uf' => 'PI'], + 5209457 => ['nome' => 'Guarinos', 'uf' => 'GO'], + 3518701 => ['nome' => 'Guarujá', 'uf' => 'SP'], + 4206603 => ['nome' => 'Guarujá do Sul', 'uf' => 'SC'], + 3518800 => ['nome' => 'Guarulhos', 'uf' => 'SP'], + 4206652 => ['nome' => 'Guatambú', 'uf' => 'SC'], + 3518859 => ['nome' => 'Guatapará', 'uf' => 'SP'], + 3128709 => ['nome' => 'Guaxupé', 'uf' => 'MG'], + 5004106 => ['nome' => 'Guia Lopes da Laguna', 'uf' => 'MS'], + 3128808 => ['nome' => 'Guidoval', 'uf' => 'MG'], + 2104909 => ['nome' => 'Guimarães', 'uf' => 'MA'], + 3128907 => ['nome' => 'Guimarânia', 'uf' => 'MG'], + 5104203 => ['nome' => 'Guiratinga', 'uf' => 'MT'], + 3129004 => ['nome' => 'Guiricema', 'uf' => 'MG'], + 3129103 => ['nome' => 'Gurinhatã', 'uf' => 'MG'], + 2506400 => ['nome' => 'Gurinhém', 'uf' => 'PB'], + 2506509 => ['nome' => 'Gurjão', 'uf' => 'PB'], + 1503101 => ['nome' => 'Gurupá', 'uf' => 'PA'], + 1709500 => ['nome' => 'Gurupi', 'uf' => 'TO'], + 3518909 => ['nome' => 'Guzolândia', 'uf' => 'SP'], + 4309555 => ['nome' => 'Harmonia', 'uf' => 'RS'], + 5209606 => ['nome' => 'Heitoraí', 'uf' => 'GO'], + 3129202 => ['nome' => 'Heliodora', 'uf' => 'MG'], + 2911857 => ['nome' => 'Heliópolis', 'uf' => 'BA'], + 3519006 => ['nome' => 'Herculândia', 'uf' => 'SP'], + 4307104 => ['nome' => 'Herval', 'uf' => 'RS'], + 4206702 => ['nome' => 'Herval d\'Oeste', 'uf' => 'SC'], + 4309571 => ['nome' => 'Herveiras', 'uf' => 'RS'], + 5209705 => ['nome' => 'Hidrolândia', 'uf' => 'GO'], + 2305209 => ['nome' => 'Hidrolândia', 'uf' => 'CE'], + 5209804 => ['nome' => 'Hidrolina', 'uf' => 'GO'], + 3519055 => ['nome' => 'Holambra', 'uf' => 'SP'], + 4109658 => ['nome' => 'Honório Serpa', 'uf' => 'PR'], + 2305233 => ['nome' => 'Horizonte', 'uf' => 'CE'], + 4309605 => ['nome' => 'Horizontina', 'uf' => 'RS'], + 3519071 => ['nome' => 'Hortolândia', 'uf' => 'SP'], + 2204600 => ['nome' => 'Hugo Napoleão', 'uf' => 'PI'], + 4309654 => ['nome' => 'Hulha Negra', 'uf' => 'RS'], + 4309704 => ['nome' => 'Humaitá', 'uf' => 'RS'], + 1301704 => ['nome' => 'Humaitá', 'uf' => 'AM'], + 2105005 => ['nome' => 'Humberto de Campos', 'uf' => 'MA'], + 3519105 => ['nome' => 'Iacanga', 'uf' => 'SP'], + 5209903 => ['nome' => 'Iaciara', 'uf' => 'GO'], + 3519204 => ['nome' => 'Iacri', 'uf' => 'SP'], + 2911907 => ['nome' => 'Iaçu', 'uf' => 'BA'], + 3129301 => ['nome' => 'Iapu', 'uf' => 'MG'], + 3519253 => ['nome' => 'Iaras', 'uf' => 'SP'], + 2606507 => ['nome' => 'Iati', 'uf' => 'PE'], + 4109708 => ['nome' => 'Ibaiti', 'uf' => 'PR'], + 4309753 => ['nome' => 'Ibarama', 'uf' => 'RS'], + 2305266 => ['nome' => 'Ibaretama', 'uf' => 'CE'], + 3519303 => ['nome' => 'Ibaté', 'uf' => 'SP'], + 2703007 => ['nome' => 'Ibateguara', 'uf' => 'AL'], + 3202454 => ['nome' => 'Ibatiba', 'uf' => 'ES'], + 4109757 => ['nome' => 'Ibema', 'uf' => 'PR'], + 3129400 => ['nome' => 'Ibertioga', 'uf' => 'MG'], + 3129509 => ['nome' => 'Ibiá', 'uf' => 'MG'], + 4309803 => ['nome' => 'Ibiaçá', 'uf' => 'RS'], + 3129608 => ['nome' => 'Ibiaí', 'uf' => 'MG'], + 4206751 => ['nome' => 'Ibiam', 'uf' => 'SC'], + 2305308 => ['nome' => 'Ibiapina', 'uf' => 'CE'], + 2506608 => ['nome' => 'Ibiara', 'uf' => 'PB'], + 2912004 => ['nome' => 'Ibiassucê', 'uf' => 'BA'], + 2912103 => ['nome' => 'Ibicaraí', 'uf' => 'BA'], + 4206801 => ['nome' => 'Ibicaré', 'uf' => 'SC'], + 2912202 => ['nome' => 'Ibicoara', 'uf' => 'BA'], + 2912301 => ['nome' => 'Ibicuí', 'uf' => 'BA'], + 2305332 => ['nome' => 'Ibicuitinga', 'uf' => 'CE'], + 2606606 => ['nome' => 'Ibimirim', 'uf' => 'PE'], + 2912400 => ['nome' => 'Ibipeba', 'uf' => 'BA'], + 2912509 => ['nome' => 'Ibipitanga', 'uf' => 'BA'], + 4109807 => ['nome' => 'Ibiporã', 'uf' => 'PR'], + 2912608 => ['nome' => 'Ibiquera', 'uf' => 'BA'], + 3519402 => ['nome' => 'Ibirá', 'uf' => 'SP'], + 3129657 => ['nome' => 'Ibiracatu', 'uf' => 'MG'], + 3129707 => ['nome' => 'Ibiraci', 'uf' => 'MG'], + 3202504 => ['nome' => 'Ibiraçu', 'uf' => 'ES'], + 4309902 => ['nome' => 'Ibiraiaras', 'uf' => 'RS'], + 2606705 => ['nome' => 'Ibirajuba', 'uf' => 'PE'], + 4206900 => ['nome' => 'Ibirama', 'uf' => 'SC'], + 2912707 => ['nome' => 'Ibirapitanga', 'uf' => 'BA'], + 2912806 => ['nome' => 'Ibirapuã', 'uf' => 'BA'], + 4309951 => ['nome' => 'Ibirapuitã', 'uf' => 'RS'], + 3519501 => ['nome' => 'Ibirarema', 'uf' => 'SP'], + 2912905 => ['nome' => 'Ibirataia', 'uf' => 'BA'], + 3129806 => ['nome' => 'Ibirité', 'uf' => 'MG'], + 4310009 => ['nome' => 'Ibirubá', 'uf' => 'RS'], + 2913002 => ['nome' => 'Ibitiara', 'uf' => 'BA'], + 3519600 => ['nome' => 'Ibitinga', 'uf' => 'SP'], + 3202553 => ['nome' => 'Ibitirama', 'uf' => 'ES'], + 2913101 => ['nome' => 'Ibititá', 'uf' => 'BA'], + 3129905 => ['nome' => 'Ibitiúra de Minas', 'uf' => 'MG'], + 3130002 => ['nome' => 'Ibituruna', 'uf' => 'MG'], + 3519709 => ['nome' => 'Ibiúna', 'uf' => 'SP'], + 2913200 => ['nome' => 'Ibotirama', 'uf' => 'BA'], + 2305357 => ['nome' => 'Icapuí', 'uf' => 'CE'], + 4207007 => ['nome' => 'Içara', 'uf' => 'SC'], + 3130051 => ['nome' => 'Icaraí de Minas', 'uf' => 'MG'], + 4109906 => ['nome' => 'Icaraíma', 'uf' => 'PR'], + 2105104 => ['nome' => 'Icatu', 'uf' => 'MA'], + 3519808 => ['nome' => 'Icém', 'uf' => 'SP'], + 2913309 => ['nome' => 'Ichu', 'uf' => 'BA'], + 2305407 => ['nome' => 'Icó', 'uf' => 'CE'], + 3202603 => ['nome' => 'Iconha', 'uf' => 'ES'], + 2404606 => ['nome' => 'Ielmo Marinho', 'uf' => 'RN'], + 3519907 => ['nome' => 'Iepê', 'uf' => 'SP'], + 2703106 => ['nome' => 'Igaci', 'uf' => 'AL'], + 2913408 => ['nome' => 'Igaporã', 'uf' => 'BA'], + 3520004 => ['nome' => 'Igaraçu do Tietê', 'uf' => 'SP'], + 2502607 => ['nome' => 'Igaracy', 'uf' => 'PB'], + 3520103 => ['nome' => 'Igarapava', 'uf' => 'SP'], + 3130101 => ['nome' => 'Igarapé', 'uf' => 'MG'], + 2105153 => ['nome' => 'Igarapé do Meio', 'uf' => 'MA'], + 2105203 => ['nome' => 'Igarapé Grande', 'uf' => 'MA'], + 1503200 => ['nome' => 'Igarapé-Açu', 'uf' => 'PA'], + 1503309 => ['nome' => 'Igarapé-Miri', 'uf' => 'PA'], + 2606804 => ['nome' => 'Igarassu', 'uf' => 'PE'], + 3520202 => ['nome' => 'Igaratá', 'uf' => 'SP'], + 3130200 => ['nome' => 'Igaratinga', 'uf' => 'MG'], + 2913457 => ['nome' => 'Igrapiúna', 'uf' => 'BA'], + 2703205 => ['nome' => 'Igreja Nova', 'uf' => 'AL'], + 4310108 => ['nome' => 'Igrejinha', 'uf' => 'RS'], + 3301876 => ['nome' => 'Iguaba Grande', 'uf' => 'RJ'], + 2913507 => ['nome' => 'Iguaí', 'uf' => 'BA'], + 3520301 => ['nome' => 'Iguape', 'uf' => 'SP'], + 4110003 => ['nome' => 'Iguaraçu', 'uf' => 'PR'], + 2606903 => ['nome' => 'Iguaracy', 'uf' => 'PE'], + 3130309 => ['nome' => 'Iguatama', 'uf' => 'MG'], + 5004304 => ['nome' => 'Iguatemi', 'uf' => 'MS'], + 2305506 => ['nome' => 'Iguatu', 'uf' => 'CE'], + 4110052 => ['nome' => 'Iguatu', 'uf' => 'PR'], + 3130408 => ['nome' => 'Ijaci', 'uf' => 'MG'], + 4310207 => ['nome' => 'Ijuí', 'uf' => 'RS'], + 3520426 => ['nome' => 'Ilha Comprida', 'uf' => 'SP'], + 2802700 => ['nome' => 'Ilha das Flores', 'uf' => 'SE'], + 2607604 => ['nome' => 'Ilha de Itamaracá', 'uf' => 'PE'], + 2204659 => ['nome' => 'Ilha Grande', 'uf' => 'PI'], + 3520442 => ['nome' => 'Ilha Solteira', 'uf' => 'SP'], + 3520400 => ['nome' => 'Ilhabela', 'uf' => 'SP'], + 2913606 => ['nome' => 'Ilhéus', 'uf' => 'BA'], + 4207106 => ['nome' => 'Ilhota', 'uf' => 'SC'], + 3130507 => ['nome' => 'Ilicínea', 'uf' => 'MG'], + 4310306 => ['nome' => 'Ilópolis', 'uf' => 'RS'], + 2506707 => ['nome' => 'Imaculada', 'uf' => 'PB'], + 4207205 => ['nome' => 'Imaruí', 'uf' => 'SC'], + 4110078 => ['nome' => 'Imbaú', 'uf' => 'PR'], + 4310330 => ['nome' => 'Imbé', 'uf' => 'RS'], + 3130556 => ['nome' => 'Imbé de Minas', 'uf' => 'MG'], + 4207304 => ['nome' => 'Imbituba', 'uf' => 'SC'], + 4110102 => ['nome' => 'Imbituva', 'uf' => 'PR'], + 4207403 => ['nome' => 'Imbuia', 'uf' => 'SC'], + 4310363 => ['nome' => 'Imigrante', 'uf' => 'RS'], + 2105302 => ['nome' => 'Imperatriz', 'uf' => 'MA'], + 4110201 => ['nome' => 'Inácio Martins', 'uf' => 'PR'], + 5209937 => ['nome' => 'Inaciolândia', 'uf' => 'GO'], + 2607000 => ['nome' => 'Inajá', 'uf' => 'PE'], + 4110300 => ['nome' => 'Inajá', 'uf' => 'PR'], + 3130606 => ['nome' => 'Inconfidentes', 'uf' => 'MG'], + 3130655 => ['nome' => 'Indaiabira', 'uf' => 'MG'], + 4207502 => ['nome' => 'Indaial', 'uf' => 'SC'], + 3520509 => ['nome' => 'Indaiatuba', 'uf' => 'SP'], + 4310405 => ['nome' => 'Independência', 'uf' => 'RS'], + 2305605 => ['nome' => 'Independência', 'uf' => 'CE'], + 3520608 => ['nome' => 'Indiana', 'uf' => 'SP'], + 4110409 => ['nome' => 'Indianópolis', 'uf' => 'PR'], + 3130705 => ['nome' => 'Indianópolis', 'uf' => 'MG'], + 3520707 => ['nome' => 'Indiaporã', 'uf' => 'SP'], + 5209952 => ['nome' => 'Indiara', 'uf' => 'GO'], + 2802809 => ['nome' => 'Indiaroba', 'uf' => 'SE'], + 5104500 => ['nome' => 'Indiavaí', 'uf' => 'MT'], + 2506806 => ['nome' => 'Ingá', 'uf' => 'PB'], + 3130804 => ['nome' => 'Ingaí', 'uf' => 'MG'], + 2607109 => ['nome' => 'Ingazeira', 'uf' => 'PE'], + 4310413 => ['nome' => 'Inhacorá', 'uf' => 'RS'], + 2913705 => ['nome' => 'Inhambupe', 'uf' => 'BA'], + 1503408 => ['nome' => 'Inhangapi', 'uf' => 'PA'], + 2703304 => ['nome' => 'Inhapi', 'uf' => 'AL'], + 3130903 => ['nome' => 'Inhapim', 'uf' => 'MG'], + 3131000 => ['nome' => 'Inhaúma', 'uf' => 'MG'], + 2204709 => ['nome' => 'Inhuma', 'uf' => 'PI'], + 5210000 => ['nome' => 'Inhumas', 'uf' => 'GO'], + 3131109 => ['nome' => 'Inimutaba', 'uf' => 'MG'], + 5004403 => ['nome' => 'Inocência', 'uf' => 'MS'], + 3520806 => ['nome' => 'Inúbia Paulista', 'uf' => 'SP'], + 4207577 => ['nome' => 'Iomerê', 'uf' => 'SC'], + 3131158 => ['nome' => 'Ipaba', 'uf' => 'MG'], + 5210109 => ['nome' => 'Ipameri', 'uf' => 'GO'], + 3131208 => ['nome' => 'Ipanema', 'uf' => 'MG'], + 2404705 => ['nome' => 'Ipanguaçu', 'uf' => 'RN'], + 2305654 => ['nome' => 'Ipaporanga', 'uf' => 'CE'], + 3131307 => ['nome' => 'Ipatinga', 'uf' => 'MG'], + 2305704 => ['nome' => 'Ipaumirim', 'uf' => 'CE'], + 3520905 => ['nome' => 'Ipaussu', 'uf' => 'SP'], + 4310439 => ['nome' => 'Ipê', 'uf' => 'RS'], + 2913804 => ['nome' => 'Ipecaetá', 'uf' => 'BA'], + 3521002 => ['nome' => 'Iperó', 'uf' => 'SP'], + 3521101 => ['nome' => 'Ipeúna', 'uf' => 'SP'], + 3131406 => ['nome' => 'Ipiaçu', 'uf' => 'MG'], + 2913903 => ['nome' => 'Ipiaú', 'uf' => 'BA'], + 3521150 => ['nome' => 'Ipiguá', 'uf' => 'SP'], + 2914000 => ['nome' => 'Ipirá', 'uf' => 'BA'], + 4207601 => ['nome' => 'Ipira', 'uf' => 'SC'], + 4110508 => ['nome' => 'Ipiranga', 'uf' => 'PR'], + 5210158 => ['nome' => 'Ipiranga de Goiás', 'uf' => 'GO'], + 5104526 => ['nome' => 'Ipiranga do Norte', 'uf' => 'MT'], + 2204808 => ['nome' => 'Ipiranga do Piauí', 'uf' => 'PI'], + 4310462 => ['nome' => 'Ipiranga do Sul', 'uf' => 'RS'], + 1301803 => ['nome' => 'Ipixuna', 'uf' => 'AM'], + 1503457 => ['nome' => 'Ipixuna do Pará', 'uf' => 'PA'], + 2607208 => ['nome' => 'Ipojuca', 'uf' => 'PE'], + 4110607 => ['nome' => 'Iporã', 'uf' => 'PR'], + 5210208 => ['nome' => 'Iporá', 'uf' => 'GO'], + 4207650 => ['nome' => 'Iporã do Oeste', 'uf' => 'SC'], + 3521200 => ['nome' => 'Iporanga', 'uf' => 'SP'], + 2305803 => ['nome' => 'Ipu', 'uf' => 'CE'], + 3521309 => ['nome' => 'Ipuã', 'uf' => 'SP'], + 4207684 => ['nome' => 'Ipuaçu', 'uf' => 'SC'], + 2607307 => ['nome' => 'Ipubi', 'uf' => 'PE'], + 2404804 => ['nome' => 'Ipueira', 'uf' => 'RN'], + 1709807 => ['nome' => 'Ipueiras', 'uf' => 'TO'], + 2305902 => ['nome' => 'Ipueiras', 'uf' => 'CE'], + 3131505 => ['nome' => 'Ipuiúna', 'uf' => 'MG'], + 4207700 => ['nome' => 'Ipumirim', 'uf' => 'SC'], + 2914109 => ['nome' => 'Ipupiara', 'uf' => 'BA'], + 1400282 => ['nome' => 'Iracema', 'uf' => 'RR'], + 2306009 => ['nome' => 'Iracema', 'uf' => 'CE'], + 4110656 => ['nome' => 'Iracema do Oeste', 'uf' => 'PR'], + 3521408 => ['nome' => 'Iracemápolis', 'uf' => 'SP'], + 4207759 => ['nome' => 'Iraceminha', 'uf' => 'SC'], + 4310504 => ['nome' => 'Iraí', 'uf' => 'RS'], + 3131604 => ['nome' => 'Iraí de Minas', 'uf' => 'MG'], + 2914208 => ['nome' => 'Irajuba', 'uf' => 'BA'], + 2914307 => ['nome' => 'Iramaia', 'uf' => 'BA'], + 1301852 => ['nome' => 'Iranduba', 'uf' => 'AM'], + 4207809 => ['nome' => 'Irani', 'uf' => 'SC'], + 3521507 => ['nome' => 'Irapuã', 'uf' => 'SP'], + 3521606 => ['nome' => 'Irapuru', 'uf' => 'SP'], + 2914406 => ['nome' => 'Iraquara', 'uf' => 'BA'], + 2914505 => ['nome' => 'Irará', 'uf' => 'BA'], + 4110706 => ['nome' => 'Irati', 'uf' => 'PR'], + 4207858 => ['nome' => 'Irati', 'uf' => 'SC'], + 2306108 => ['nome' => 'Irauçuba', 'uf' => 'CE'], + 2914604 => ['nome' => 'Irecê', 'uf' => 'BA'], + 4110805 => ['nome' => 'Iretama', 'uf' => 'PR'], + 4207908 => ['nome' => 'Irineópolis', 'uf' => 'SC'], + 1503507 => ['nome' => 'Irituia', 'uf' => 'PA'], + 3202652 => ['nome' => 'Irupi', 'uf' => 'ES'], + 2204907 => ['nome' => 'Isaías Coelho', 'uf' => 'PI'], + 5210307 => ['nome' => 'Israelândia', 'uf' => 'GO'], + 4208005 => ['nome' => 'Itá', 'uf' => 'SC'], + 4310538 => ['nome' => 'Itaara', 'uf' => 'RS'], + 2506905 => ['nome' => 'Itabaiana', 'uf' => 'PB'], + 2802908 => ['nome' => 'Itabaiana', 'uf' => 'SE'], + 2803005 => ['nome' => 'Itabaianinha', 'uf' => 'SE'], + 2914653 => ['nome' => 'Itabela', 'uf' => 'BA'], + 3521705 => ['nome' => 'Itaberá', 'uf' => 'SP'], + 2914703 => ['nome' => 'Itaberaba', 'uf' => 'BA'], + 5210406 => ['nome' => 'Itaberaí', 'uf' => 'GO'], + 2803104 => ['nome' => 'Itabi', 'uf' => 'SE'], + 3131703 => ['nome' => 'Itabira', 'uf' => 'MG'], + 3131802 => ['nome' => 'Itabirinha', 'uf' => 'MG'], + 3131901 => ['nome' => 'Itabirito', 'uf' => 'MG'], + 3301900 => ['nome' => 'Itaboraí', 'uf' => 'RJ'], + 2914802 => ['nome' => 'Itabuna', 'uf' => 'BA'], + 1710508 => ['nome' => 'Itacajá', 'uf' => 'TO'], + 3132008 => ['nome' => 'Itacambira', 'uf' => 'MG'], + 3132107 => ['nome' => 'Itacarambi', 'uf' => 'MG'], + 2914901 => ['nome' => 'Itacaré', 'uf' => 'BA'], + 1301902 => ['nome' => 'Itacoatiara', 'uf' => 'AM'], + 2607406 => ['nome' => 'Itacuruba', 'uf' => 'PE'], + 4310553 => ['nome' => 'Itacurubi', 'uf' => 'RS'], + 2915007 => ['nome' => 'Itaeté', 'uf' => 'BA'], + 2915106 => ['nome' => 'Itagi', 'uf' => 'BA'], + 2915205 => ['nome' => 'Itagibá', 'uf' => 'BA'], + 2915304 => ['nome' => 'Itagimirim', 'uf' => 'BA'], + 3202702 => ['nome' => 'Itaguaçu', 'uf' => 'ES'], + 2915353 => ['nome' => 'Itaguaçu da Bahia', 'uf' => 'BA'], + 3302007 => ['nome' => 'Itaguaí', 'uf' => 'RJ'], + 4110904 => ['nome' => 'Itaguajé', 'uf' => 'PR'], + 3132206 => ['nome' => 'Itaguara', 'uf' => 'MG'], + 5210562 => ['nome' => 'Itaguari', 'uf' => 'GO'], + 5210604 => ['nome' => 'Itaguaru', 'uf' => 'GO'], + 1710706 => ['nome' => 'Itaguatins', 'uf' => 'TO'], + 3521804 => ['nome' => 'Itaí', 'uf' => 'SP'], + 2607505 => ['nome' => 'Itaíba', 'uf' => 'PE'], + 2306207 => ['nome' => 'Itaiçaba', 'uf' => 'CE'], + 2205003 => ['nome' => 'Itainópolis', 'uf' => 'PI'], + 4208104 => ['nome' => 'Itaiópolis', 'uf' => 'SC'], + 2105351 => ['nome' => 'Itaipava do Grajaú', 'uf' => 'MA'], + 3132305 => ['nome' => 'Itaipé', 'uf' => 'MG'], + 4110953 => ['nome' => 'Itaipulândia', 'uf' => 'PR'], + 2306256 => ['nome' => 'Itaitinga', 'uf' => 'CE'], + 1503606 => ['nome' => 'Itaituba', 'uf' => 'PA'], + 2404853 => ['nome' => 'Itajá', 'uf' => 'RN'], + 5210802 => ['nome' => 'Itajá', 'uf' => 'GO'], + 4208203 => ['nome' => 'Itajaí', 'uf' => 'SC'], + 3521903 => ['nome' => 'Itajobi', 'uf' => 'SP'], + 3522000 => ['nome' => 'Itaju', 'uf' => 'SP'], + 2915403 => ['nome' => 'Itaju do Colônia', 'uf' => 'BA'], + 3132404 => ['nome' => 'Itajubá', 'uf' => 'MG'], + 2915502 => ['nome' => 'Itajuípe', 'uf' => 'BA'], + 3302056 => ['nome' => 'Italva', 'uf' => 'RJ'], + 2915601 => ['nome' => 'Itamaraju', 'uf' => 'BA'], + 3132503 => ['nome' => 'Itamarandiba', 'uf' => 'MG'], + 1301951 => ['nome' => 'Itamarati', 'uf' => 'AM'], + 3132602 => ['nome' => 'Itamarati de Minas', 'uf' => 'MG'], + 2915700 => ['nome' => 'Itamari', 'uf' => 'BA'], + 3132701 => ['nome' => 'Itambacuri', 'uf' => 'MG'], + 4111001 => ['nome' => 'Itambaracá', 'uf' => 'PR'], + 4111100 => ['nome' => 'Itambé', 'uf' => 'PR'], + 2607653 => ['nome' => 'Itambé', 'uf' => 'PE'], + 2915809 => ['nome' => 'Itambé', 'uf' => 'BA'], + 3132800 => ['nome' => 'Itambé do Mato Dentro', 'uf' => 'MG'], + 3132909 => ['nome' => 'Itamogi', 'uf' => 'MG'], + 3133006 => ['nome' => 'Itamonte', 'uf' => 'MG'], + 2915908 => ['nome' => 'Itanagra', 'uf' => 'BA'], + 3522109 => ['nome' => 'Itanhaém', 'uf' => 'SP'], + 3133105 => ['nome' => 'Itanhandu', 'uf' => 'MG'], + 5104542 => ['nome' => 'Itanhangá', 'uf' => 'MT'], + 2916005 => ['nome' => 'Itanhém', 'uf' => 'BA'], + 3133204 => ['nome' => 'Itanhomi', 'uf' => 'MG'], + 3133303 => ['nome' => 'Itaobim', 'uf' => 'MG'], + 3522158 => ['nome' => 'Itaóca', 'uf' => 'SP'], + 3302106 => ['nome' => 'Itaocara', 'uf' => 'RJ'], + 5210901 => ['nome' => 'Itapaci', 'uf' => 'GO'], + 3133402 => ['nome' => 'Itapagipe', 'uf' => 'MG'], + 2306306 => ['nome' => 'Itapajé', 'uf' => 'CE'], + 2916104 => ['nome' => 'Itaparica', 'uf' => 'BA'], + 2916203 => ['nome' => 'Itapé', 'uf' => 'BA'], + 2916302 => ['nome' => 'Itapebi', 'uf' => 'BA'], + 3133501 => ['nome' => 'Itapecerica', 'uf' => 'MG'], + 3522208 => ['nome' => 'Itapecerica da Serra', 'uf' => 'SP'], + 2105401 => ['nome' => 'Itapecuru Mirim', 'uf' => 'MA'], + 4111209 => ['nome' => 'Itapejara d\'Oeste', 'uf' => 'PR'], + 4208302 => ['nome' => 'Itapema', 'uf' => 'SC'], + 3202801 => ['nome' => 'Itapemirim', 'uf' => 'ES'], + 4111258 => ['nome' => 'Itaperuçu', 'uf' => 'PR'], + 3302205 => ['nome' => 'Itaperuna', 'uf' => 'RJ'], + 2607703 => ['nome' => 'Itapetim', 'uf' => 'PE'], + 2916401 => ['nome' => 'Itapetinga', 'uf' => 'BA'], + 3522307 => ['nome' => 'Itapetininga', 'uf' => 'SP'], + 3522406 => ['nome' => 'Itapeva', 'uf' => 'SP'], + 3133600 => ['nome' => 'Itapeva', 'uf' => 'MG'], + 3522505 => ['nome' => 'Itapevi', 'uf' => 'SP'], + 2916500 => ['nome' => 'Itapicuru', 'uf' => 'BA'], + 2306405 => ['nome' => 'Itapipoca', 'uf' => 'CE'], + 3522604 => ['nome' => 'Itapira', 'uf' => 'SP'], + 1302009 => ['nome' => 'Itapiranga', 'uf' => 'AM'], + 4208401 => ['nome' => 'Itapiranga', 'uf' => 'SC'], + 5211008 => ['nome' => 'Itapirapuã', 'uf' => 'GO'], + 3522653 => ['nome' => 'Itapirapuã Paulista', 'uf' => 'SP'], + 1710904 => ['nome' => 'Itapiratins', 'uf' => 'TO'], + 2607752 => ['nome' => 'Itapissuma', 'uf' => 'PE'], + 2916609 => ['nome' => 'Itapitanga', 'uf' => 'BA'], + 2306504 => ['nome' => 'Itapiúna', 'uf' => 'CE'], + 4208450 => ['nome' => 'Itapoá', 'uf' => 'SC'], + 3522703 => ['nome' => 'Itápolis', 'uf' => 'SP'], + 5004502 => ['nome' => 'Itaporã', 'uf' => 'MS'], + 1711100 => ['nome' => 'Itaporã do Tocantins', 'uf' => 'TO'], + 3522802 => ['nome' => 'Itaporanga', 'uf' => 'SP'], + 2507002 => ['nome' => 'Itaporanga', 'uf' => 'PB'], + 2803203 => ['nome' => 'Itaporanga d\'Ajuda', 'uf' => 'SE'], + 2507101 => ['nome' => 'Itapororoca', 'uf' => 'PB'], + 1101104 => ['nome' => 'Itapuã do Oeste', 'uf' => 'RO'], + 4310579 => ['nome' => 'Itapuca', 'uf' => 'RS'], + 3522901 => ['nome' => 'Itapuí', 'uf' => 'SP'], + 3523008 => ['nome' => 'Itapura', 'uf' => 'SP'], + 5211206 => ['nome' => 'Itapuranga', 'uf' => 'GO'], + 3523107 => ['nome' => 'Itaquaquecetuba', 'uf' => 'SP'], + 2916708 => ['nome' => 'Itaquara', 'uf' => 'BA'], + 4310603 => ['nome' => 'Itaqui', 'uf' => 'RS'], + 5004601 => ['nome' => 'Itaquiraí', 'uf' => 'MS'], + 2607802 => ['nome' => 'Itaquitinga', 'uf' => 'PE'], + 3202900 => ['nome' => 'Itarana', 'uf' => 'ES'], + 2916807 => ['nome' => 'Itarantim', 'uf' => 'BA'], + 3523206 => ['nome' => 'Itararé', 'uf' => 'SP'], + 2306553 => ['nome' => 'Itarema', 'uf' => 'CE'], + 3523305 => ['nome' => 'Itariri', 'uf' => 'SP'], + 5211305 => ['nome' => 'Itarumã', 'uf' => 'GO'], + 4310652 => ['nome' => 'Itati', 'uf' => 'RS'], + 3302254 => ['nome' => 'Itatiaia', 'uf' => 'RJ'], + 3133709 => ['nome' => 'Itatiaiuçu', 'uf' => 'MG'], + 3523404 => ['nome' => 'Itatiba', 'uf' => 'SP'], + 4310702 => ['nome' => 'Itatiba do Sul', 'uf' => 'RS'], + 2916856 => ['nome' => 'Itatim', 'uf' => 'BA'], + 3523503 => ['nome' => 'Itatinga', 'uf' => 'SP'], + 2306603 => ['nome' => 'Itatira', 'uf' => 'CE'], + 2507200 => ['nome' => 'Itatuba', 'uf' => 'PB'], + 2404903 => ['nome' => 'Itaú', 'uf' => 'RN'], + 3133758 => ['nome' => 'Itaú de Minas', 'uf' => 'MG'], + 5104559 => ['nome' => 'Itaúba', 'uf' => 'MT'], + 1600253 => ['nome' => 'Itaubal', 'uf' => 'AP'], + 5211404 => ['nome' => 'Itauçu', 'uf' => 'GO'], + 2205102 => ['nome' => 'Itaueira', 'uf' => 'PI'], + 3133808 => ['nome' => 'Itaúna', 'uf' => 'MG'], + 4111308 => ['nome' => 'Itaúna do Sul', 'uf' => 'PR'], + 3133907 => ['nome' => 'Itaverava', 'uf' => 'MG'], + 3134004 => ['nome' => 'Itinga', 'uf' => 'MG'], + 2105427 => ['nome' => 'Itinga do Maranhão', 'uf' => 'MA'], + 5104609 => ['nome' => 'Itiquira', 'uf' => 'MT'], + 3523602 => ['nome' => 'Itirapina', 'uf' => 'SP'], + 3523701 => ['nome' => 'Itirapuã', 'uf' => 'SP'], + 2916906 => ['nome' => 'Itiruçu', 'uf' => 'BA'], + 2917003 => ['nome' => 'Itiúba', 'uf' => 'BA'], + 3523800 => ['nome' => 'Itobi', 'uf' => 'SP'], + 2917102 => ['nome' => 'Itororó', 'uf' => 'BA'], + 3523909 => ['nome' => 'Itu', 'uf' => 'SP'], + 2917201 => ['nome' => 'Ituaçu', 'uf' => 'BA'], + 2917300 => ['nome' => 'Ituberá', 'uf' => 'BA'], + 3134103 => ['nome' => 'Itueta', 'uf' => 'MG'], + 3134202 => ['nome' => 'Ituiutaba', 'uf' => 'MG'], + 5211503 => ['nome' => 'Itumbiara', 'uf' => 'GO'], + 3134301 => ['nome' => 'Itumirim', 'uf' => 'MG'], + 3524006 => ['nome' => 'Itupeva', 'uf' => 'SP'], + 1503705 => ['nome' => 'Itupiranga', 'uf' => 'PA'], + 4208500 => ['nome' => 'Ituporanga', 'uf' => 'SC'], + 3134400 => ['nome' => 'Iturama', 'uf' => 'MG'], + 3134509 => ['nome' => 'Itutinga', 'uf' => 'MG'], + 3524105 => ['nome' => 'Ituverava', 'uf' => 'SP'], + 2917334 => ['nome' => 'Iuiú', 'uf' => 'BA'], + 3203007 => ['nome' => 'Iúna', 'uf' => 'ES'], + 4111407 => ['nome' => 'Ivaí', 'uf' => 'PR'], + 4111506 => ['nome' => 'Ivaiporã', 'uf' => 'PR'], + 4111555 => ['nome' => 'Ivaté', 'uf' => 'PR'], + 4111605 => ['nome' => 'Ivatuba', 'uf' => 'PR'], + 5004700 => ['nome' => 'Ivinhema', 'uf' => 'MS'], + 5211602 => ['nome' => 'Ivolândia', 'uf' => 'GO'], + 4310751 => ['nome' => 'Ivorá', 'uf' => 'RS'], + 4310801 => ['nome' => 'Ivoti', 'uf' => 'RS'], + 2607901 => ['nome' => 'Jaboatão dos Guararapes', 'uf' => 'PE'], + 4208609 => ['nome' => 'Jaborá', 'uf' => 'SC'], + 2917359 => ['nome' => 'Jaborandi', 'uf' => 'BA'], + 3524204 => ['nome' => 'Jaborandi', 'uf' => 'SP'], + 4111704 => ['nome' => 'Jaboti', 'uf' => 'PR'], + 4310850 => ['nome' => 'Jaboticaba', 'uf' => 'RS'], + 3524303 => ['nome' => 'Jaboticabal', 'uf' => 'SP'], + 3134608 => ['nome' => 'Jaboticatubas', 'uf' => 'MG'], + 2405009 => ['nome' => 'Jaçanã', 'uf' => 'RN'], + 2917409 => ['nome' => 'Jacaraci', 'uf' => 'BA'], + 2507309 => ['nome' => 'Jacaraú', 'uf' => 'PB'], + 2703403 => ['nome' => 'Jacaré dos Homens', 'uf' => 'AL'], + 1503754 => ['nome' => 'Jacareacanga', 'uf' => 'PA'], + 3524402 => ['nome' => 'Jacareí', 'uf' => 'SP'], + 4111803 => ['nome' => 'Jacarezinho', 'uf' => 'PR'], + 3524501 => ['nome' => 'Jaci', 'uf' => 'SP'], + 5104807 => ['nome' => 'Jaciara', 'uf' => 'MT'], + 3134707 => ['nome' => 'Jacinto', 'uf' => 'MG'], + 4208708 => ['nome' => 'Jacinto Machado', 'uf' => 'SC'], + 2917508 => ['nome' => 'Jacobina', 'uf' => 'BA'], + 2205151 => ['nome' => 'Jacobina do Piauí', 'uf' => 'PI'], + 3134806 => ['nome' => 'Jacuí', 'uf' => 'MG'], + 2703502 => ['nome' => 'Jacuípe', 'uf' => 'AL'], + 4310876 => ['nome' => 'Jacuizinho', 'uf' => 'RS'], + 1503804 => ['nome' => 'Jacundá', 'uf' => 'PA'], + 3524600 => ['nome' => 'Jacupiranga', 'uf' => 'SP'], + 4310900 => ['nome' => 'Jacutinga', 'uf' => 'RS'], + 3134905 => ['nome' => 'Jacutinga', 'uf' => 'MG'], + 4111902 => ['nome' => 'Jaguapitã', 'uf' => 'PR'], + 2917607 => ['nome' => 'Jaguaquara', 'uf' => 'BA'], + 3135001 => ['nome' => 'Jaguaraçu', 'uf' => 'MG'], + 4311007 => ['nome' => 'Jaguarão', 'uf' => 'RS'], + 2917706 => ['nome' => 'Jaguarari', 'uf' => 'BA'], + 3203056 => ['nome' => 'Jaguaré', 'uf' => 'ES'], + 2306702 => ['nome' => 'Jaguaretama', 'uf' => 'CE'], + 4311106 => ['nome' => 'Jaguari', 'uf' => 'RS'], + 4112009 => ['nome' => 'Jaguariaíva', 'uf' => 'PR'], + 2306801 => ['nome' => 'Jaguaribara', 'uf' => 'CE'], + 2306900 => ['nome' => 'Jaguaribe', 'uf' => 'CE'], + 2917805 => ['nome' => 'Jaguaripe', 'uf' => 'BA'], + 3524709 => ['nome' => 'Jaguariúna', 'uf' => 'SP'], + 2307007 => ['nome' => 'Jaguaruana', 'uf' => 'CE'], + 4208807 => ['nome' => 'Jaguaruna', 'uf' => 'SC'], + 3135050 => ['nome' => 'Jaíba', 'uf' => 'MG'], + 2205201 => ['nome' => 'Jaicós', 'uf' => 'PI'], + 3524808 => ['nome' => 'Jales', 'uf' => 'SP'], + 3524907 => ['nome' => 'Jambeiro', 'uf' => 'SP'], + 3135076 => ['nome' => 'Jampruca', 'uf' => 'MG'], + 3135100 => ['nome' => 'Janaúba', 'uf' => 'MG'], + 5211701 => ['nome' => 'Jandaia', 'uf' => 'GO'], + 4112108 => ['nome' => 'Jandaia do Sul', 'uf' => 'PR'], + 2405108 => ['nome' => 'Jandaíra', 'uf' => 'RN'], + 2917904 => ['nome' => 'Jandaíra', 'uf' => 'BA'], + 3525003 => ['nome' => 'Jandira', 'uf' => 'SP'], + 2405207 => ['nome' => 'Janduís', 'uf' => 'RN'], + 5104906 => ['nome' => 'Jangada', 'uf' => 'MT'], + 4112207 => ['nome' => 'Janiópolis', 'uf' => 'PR'], + 3135209 => ['nome' => 'Januária', 'uf' => 'MG'], + 2405306 => ['nome' => 'Januário Cicco (Boa Saúde)', 'uf' => 'RN'], + 3135308 => ['nome' => 'Japaraíba', 'uf' => 'MG'], + 2703601 => ['nome' => 'Japaratinga', 'uf' => 'AL'], + 2803302 => ['nome' => 'Japaratuba', 'uf' => 'SE'], + 3302270 => ['nome' => 'Japeri', 'uf' => 'RJ'], + 2405405 => ['nome' => 'Japi', 'uf' => 'RN'], + 4112306 => ['nome' => 'Japira', 'uf' => 'PR'], + 2803401 => ['nome' => 'Japoatã', 'uf' => 'SE'], + 3135357 => ['nome' => 'Japonvar', 'uf' => 'MG'], + 5004809 => ['nome' => 'Japorã', 'uf' => 'MS'], + 4112405 => ['nome' => 'Japurá', 'uf' => 'PR'], + 1302108 => ['nome' => 'Japurá', 'uf' => 'AM'], + 2607950 => ['nome' => 'Jaqueira', 'uf' => 'PE'], + 4311122 => ['nome' => 'Jaquirana', 'uf' => 'RS'], + 5211800 => ['nome' => 'Jaraguá', 'uf' => 'GO'], + 4208906 => ['nome' => 'Jaraguá do Sul', 'uf' => 'SC'], + 5004908 => ['nome' => 'Jaraguari', 'uf' => 'MS'], + 2703700 => ['nome' => 'Jaramataia', 'uf' => 'AL'], + 2307106 => ['nome' => 'Jardim', 'uf' => 'CE'], + 5005004 => ['nome' => 'Jardim', 'uf' => 'MS'], + 4112504 => ['nome' => 'Jardim Alegre', 'uf' => 'PR'], + 2405504 => ['nome' => 'Jardim de Angicos', 'uf' => 'RN'], + 2405603 => ['nome' => 'Jardim de Piranhas', 'uf' => 'RN'], + 2205250 => ['nome' => 'Jardim do Mulato', 'uf' => 'PI'], + 2405702 => ['nome' => 'Jardim do Seridó', 'uf' => 'RN'], + 4112603 => ['nome' => 'Jardim Olinda', 'uf' => 'PR'], + 3525102 => ['nome' => 'Jardinópolis', 'uf' => 'SP'], + 4208955 => ['nome' => 'Jardinópolis', 'uf' => 'SC'], + 4311130 => ['nome' => 'Jari', 'uf' => 'RS'], + 3525201 => ['nome' => 'Jarinu', 'uf' => 'SP'], + 1100114 => ['nome' => 'Jaru', 'uf' => 'RO'], + 5211909 => ['nome' => 'Jataí', 'uf' => 'GO'], + 4112702 => ['nome' => 'Jataizinho', 'uf' => 'PR'], + 2608008 => ['nome' => 'Jataúba', 'uf' => 'PE'], + 5005103 => ['nome' => 'Jateí', 'uf' => 'MS'], + 2307205 => ['nome' => 'Jati', 'uf' => 'CE'], + 2105450 => ['nome' => 'Jatobá', 'uf' => 'MA'], + 2608057 => ['nome' => 'Jatobá', 'uf' => 'PE'], + 2205276 => ['nome' => 'Jatobá do Piauí', 'uf' => 'PI'], + 3525300 => ['nome' => 'Jaú', 'uf' => 'SP'], + 1711506 => ['nome' => 'Jaú do Tocantins', 'uf' => 'TO'], + 5212006 => ['nome' => 'Jaupaci', 'uf' => 'GO'], + 5105002 => ['nome' => 'Jauru', 'uf' => 'MT'], + 3135407 => ['nome' => 'Jeceaba', 'uf' => 'MG'], + 3135456 => ['nome' => 'Jenipapo de Minas', 'uf' => 'MG'], + 2105476 => ['nome' => 'Jenipapo dos Vieiras', 'uf' => 'MA'], + 3135506 => ['nome' => 'Jequeri', 'uf' => 'MG'], + 2703759 => ['nome' => 'Jequiá da Praia', 'uf' => 'AL'], + 2918001 => ['nome' => 'Jequié', 'uf' => 'BA'], + 3135605 => ['nome' => 'Jequitaí', 'uf' => 'MG'], + 3135704 => ['nome' => 'Jequitibá', 'uf' => 'MG'], + 3135803 => ['nome' => 'Jequitinhonha', 'uf' => 'MG'], + 2918100 => ['nome' => 'Jeremoabo', 'uf' => 'BA'], + 2507408 => ['nome' => 'Jericó', 'uf' => 'PB'], + 3525409 => ['nome' => 'Jeriquara', 'uf' => 'SP'], + 3203106 => ['nome' => 'Jerônimo Monteiro', 'uf' => 'ES'], + 2205300 => ['nome' => 'Jerumenha', 'uf' => 'PI'], + 3135902 => ['nome' => 'Jesuânia', 'uf' => 'MG'], + 4112751 => ['nome' => 'Jesuítas', 'uf' => 'PR'], + 5212055 => ['nome' => 'Jesúpolis', 'uf' => 'GO'], + 1100122 => ['nome' => 'Ji-Paraná', 'uf' => 'RO'], + 2307254 => ['nome' => 'Jijoca de Jericoacoara', 'uf' => 'CE'], + 2918209 => ['nome' => 'Jiquiriçá', 'uf' => 'BA'], + 2918308 => ['nome' => 'Jitaúna', 'uf' => 'BA'], + 4209003 => ['nome' => 'Joaçaba', 'uf' => 'SC'], + 3136009 => ['nome' => 'Joaíma', 'uf' => 'MG'], + 3136108 => ['nome' => 'Joanésia', 'uf' => 'MG'], + 3525508 => ['nome' => 'Joanópolis', 'uf' => 'SP'], + 2608107 => ['nome' => 'João Alfredo', 'uf' => 'PE'], + 2405801 => ['nome' => 'João Câmara', 'uf' => 'RN'], + 2205359 => ['nome' => 'João Costa', 'uf' => 'PI'], + 2405900 => ['nome' => 'João Dias', 'uf' => 'RN'], + 2918357 => ['nome' => 'João Dourado', 'uf' => 'BA'], + 2105500 => ['nome' => 'João Lisboa', 'uf' => 'MA'], + 3136207 => ['nome' => 'João Monlevade', 'uf' => 'MG'], + 3203130 => ['nome' => 'João Neiva', 'uf' => 'ES'], + 2507507 => ['nome' => 'João Pessoa', 'uf' => 'PB'], + 3136306 => ['nome' => 'João Pinheiro', 'uf' => 'MG'], + 3525607 => ['nome' => 'João Ramalho', 'uf' => 'SP'], + 3136405 => ['nome' => 'Joaquim Felício', 'uf' => 'MG'], + 2703809 => ['nome' => 'Joaquim Gomes', 'uf' => 'AL'], + 2608206 => ['nome' => 'Joaquim Nabuco', 'uf' => 'PE'], + 2205409 => ['nome' => 'Joaquim Pires', 'uf' => 'PI'], + 4112801 => ['nome' => 'Joaquim Távora', 'uf' => 'PR'], + 2513653 => ['nome' => 'Joca Claudino', 'uf' => 'PB'], + 2205458 => ['nome' => 'Joca Marques', 'uf' => 'PI'], + 4311155 => ['nome' => 'Jóia', 'uf' => 'RS'], + 4209102 => ['nome' => 'Joinville', 'uf' => 'SC'], + 3136504 => ['nome' => 'Jordânia', 'uf' => 'MG'], + 1200328 => ['nome' => 'Jordão', 'uf' => 'AC'], + 4209151 => ['nome' => 'José Boiteux', 'uf' => 'SC'], + 3525706 => ['nome' => 'José Bonifácio', 'uf' => 'SP'], + 2406007 => ['nome' => 'José da Penha', 'uf' => 'RN'], + 2205508 => ['nome' => 'José de Freitas', 'uf' => 'PI'], + 3136520 => ['nome' => 'José Gonçalves de Minas', 'uf' => 'MG'], + 3136553 => ['nome' => 'José Raydan', 'uf' => 'MG'], + 2105609 => ['nome' => 'Joselândia', 'uf' => 'MA'], + 3136579 => ['nome' => 'Josenópolis', 'uf' => 'MG'], + 5212105 => ['nome' => 'Joviânia', 'uf' => 'GO'], + 5105101 => ['nome' => 'Juara', 'uf' => 'MT'], + 2507606 => ['nome' => 'Juarez Távora', 'uf' => 'PB'], + 1711803 => ['nome' => 'Juarina', 'uf' => 'TO'], + 3136652 => ['nome' => 'Juatuba', 'uf' => 'MG'], + 2507705 => ['nome' => 'Juazeirinho', 'uf' => 'PB'], + 2918407 => ['nome' => 'Juazeiro', 'uf' => 'BA'], + 2307304 => ['nome' => 'Juazeiro do Norte', 'uf' => 'CE'], + 2205516 => ['nome' => 'Juazeiro do Piauí', 'uf' => 'PI'], + 2307403 => ['nome' => 'Jucás', 'uf' => 'CE'], + 2608255 => ['nome' => 'Jucati', 'uf' => 'PE'], + 2918456 => ['nome' => 'Jucuruçu', 'uf' => 'BA'], + 2406106 => ['nome' => 'Jucurutu', 'uf' => 'RN'], + 5105150 => ['nome' => 'Juína', 'uf' => 'MT'], + 3136702 => ['nome' => 'Juiz de Fora', 'uf' => 'MG'], + 2205524 => ['nome' => 'Júlio Borges', 'uf' => 'PI'], + 4311205 => ['nome' => 'Júlio de Castilhos', 'uf' => 'RS'], + 3525805 => ['nome' => 'Júlio Mesquita', 'uf' => 'SP'], + 3525854 => ['nome' => 'Jumirim', 'uf' => 'SP'], + 2105658 => ['nome' => 'Junco do Maranhão', 'uf' => 'MA'], + 2507804 => ['nome' => 'Junco do Seridó', 'uf' => 'PB'], + 2406155 => ['nome' => 'Jundiá', 'uf' => 'RN'], + 2703908 => ['nome' => 'Jundiá', 'uf' => 'AL'], + 3525904 => ['nome' => 'Jundiaí', 'uf' => 'SP'], + 4112900 => ['nome' => 'Jundiaí do Sul', 'uf' => 'PR'], + 2704005 => ['nome' => 'Junqueiro', 'uf' => 'AL'], + 3526001 => ['nome' => 'Junqueirópolis', 'uf' => 'SP'], + 2608305 => ['nome' => 'Jupi', 'uf' => 'PE'], + 4209177 => ['nome' => 'Jupiá', 'uf' => 'SC'], + 3526100 => ['nome' => 'Juquiá', 'uf' => 'SP'], + 3526209 => ['nome' => 'Juquitiba', 'uf' => 'SP'], + 3136801 => ['nome' => 'Juramento', 'uf' => 'MG'], + 4112959 => ['nome' => 'Juranda', 'uf' => 'PR'], + 2608404 => ['nome' => 'Jurema', 'uf' => 'PE'], + 2205532 => ['nome' => 'Jurema', 'uf' => 'PI'], + 2507903 => ['nome' => 'Juripiranga', 'uf' => 'PB'], + 2508000 => ['nome' => 'Juru', 'uf' => 'PB'], + 1302207 => ['nome' => 'Juruá', 'uf' => 'AM'], + 3136900 => ['nome' => 'Juruaia', 'uf' => 'MG'], + 5105176 => ['nome' => 'Juruena', 'uf' => 'MT'], + 1503903 => ['nome' => 'Juruti', 'uf' => 'PA'], + 5105200 => ['nome' => 'Juscimeira', 'uf' => 'MT'], + 2918506 => ['nome' => 'Jussara', 'uf' => 'BA'], + 5212204 => ['nome' => 'Jussara', 'uf' => 'GO'], + 4113007 => ['nome' => 'Jussara', 'uf' => 'PR'], + 2918555 => ['nome' => 'Jussari', 'uf' => 'BA'], + 2918605 => ['nome' => 'Jussiape', 'uf' => 'BA'], + 1302306 => ['nome' => 'Jutaí', 'uf' => 'AM'], + 5005152 => ['nome' => 'Juti', 'uf' => 'MS'], + 3136959 => ['nome' => 'Juvenília', 'uf' => 'MG'], + 4113106 => ['nome' => 'Kaloré', 'uf' => 'PR'], + 1302405 => ['nome' => 'Lábrea', 'uf' => 'AM'], + 4209201 => ['nome' => 'Lacerdópolis', 'uf' => 'SC'], + 3137007 => ['nome' => 'Ladainha', 'uf' => 'MG'], + 5005202 => ['nome' => 'Ladário', 'uf' => 'MS'], + 2918704 => ['nome' => 'Lafaiete Coutinho', 'uf' => 'BA'], + 3137106 => ['nome' => 'Lagamar', 'uf' => 'MG'], + 2803500 => ['nome' => 'Lagarto', 'uf' => 'SE'], + 4209300 => ['nome' => 'Lages', 'uf' => 'SC'], + 2105708 => ['nome' => 'Lago da Pedra', 'uf' => 'MA'], + 2105807 => ['nome' => 'Lago do Junco', 'uf' => 'MA'], + 2105948 => ['nome' => 'Lago dos Rodrigues', 'uf' => 'MA'], + 2105906 => ['nome' => 'Lago Verde', 'uf' => 'MA'], + 2508109 => ['nome' => 'Lagoa', 'uf' => 'PB'], + 2205557 => ['nome' => 'Lagoa Alegre', 'uf' => 'PI'], + 4311239 => ['nome' => 'Lagoa Bonita do Sul', 'uf' => 'RS'], + 2406205 => ['nome' => 'Lagoa d\'Anta', 'uf' => 'RN'], + 2704104 => ['nome' => 'Lagoa da Canoa', 'uf' => 'AL'], + 1711902 => ['nome' => 'Lagoa da Confusão', 'uf' => 'TO'], + 3137205 => ['nome' => 'Lagoa da Prata', 'uf' => 'MG'], + 2508208 => ['nome' => 'Lagoa de Dentro', 'uf' => 'PB'], + 2608503 => ['nome' => 'Lagoa de Itaenga', 'uf' => 'PE'], + 2406304 => ['nome' => 'Lagoa de Pedras', 'uf' => 'RN'], + 2205573 => ['nome' => 'Lagoa de São Francisco', 'uf' => 'PI'], + 2406403 => ['nome' => 'Lagoa de Velhos', 'uf' => 'RN'], + 2205565 => ['nome' => 'Lagoa do Barro do Piauí', 'uf' => 'PI'], + 2608453 => ['nome' => 'Lagoa do Carro', 'uf' => 'PE'], + 2105922 => ['nome' => 'Lagoa do Mato', 'uf' => 'MA'], + 2608602 => ['nome' => 'Lagoa do Ouro', 'uf' => 'PE'], + 2205581 => ['nome' => 'Lagoa do Piauí', 'uf' => 'PI'], + 2205599 => ['nome' => 'Lagoa do Sítio', 'uf' => 'PI'], + 1711951 => ['nome' => 'Lagoa do Tocantins', 'uf' => 'TO'], + 2608701 => ['nome' => 'Lagoa dos Gatos', 'uf' => 'PE'], + 3137304 => ['nome' => 'Lagoa dos Patos', 'uf' => 'MG'], + 4311270 => ['nome' => 'Lagoa dos Três Cantos', 'uf' => 'RS'], + 3137403 => ['nome' => 'Lagoa Dourada', 'uf' => 'MG'], + 3137502 => ['nome' => 'Lagoa Formosa', 'uf' => 'MG'], + 3137536 => ['nome' => 'Lagoa Grande', 'uf' => 'MG'], + 2608750 => ['nome' => 'Lagoa Grande', 'uf' => 'PE'], + 2105963 => ['nome' => 'Lagoa Grande do Maranhão', 'uf' => 'MA'], + 2406502 => ['nome' => 'Lagoa Nova', 'uf' => 'RN'], + 2918753 => ['nome' => 'Lagoa Real', 'uf' => 'BA'], + 2406601 => ['nome' => 'Lagoa Salgada', 'uf' => 'RN'], + 5212253 => ['nome' => 'Lagoa Santa', 'uf' => 'GO'], + 3137601 => ['nome' => 'Lagoa Santa', 'uf' => 'MG'], + 2508307 => ['nome' => 'Lagoa Seca', 'uf' => 'PB'], + 4311304 => ['nome' => 'Lagoa Vermelha', 'uf' => 'RS'], + 4311254 => ['nome' => 'Lagoão', 'uf' => 'RS'], + 3526308 => ['nome' => 'Lagoinha', 'uf' => 'SP'], + 2205540 => ['nome' => 'Lagoinha do Piauí', 'uf' => 'PI'], + 4209409 => ['nome' => 'Laguna', 'uf' => 'SC'], + 5005251 => ['nome' => 'Laguna Carapã', 'uf' => 'MS'], + 2918803 => ['nome' => 'Laje', 'uf' => 'BA'], + 3302304 => ['nome' => 'Laje do Muriaé', 'uf' => 'RJ'], + 1712009 => ['nome' => 'Lajeado', 'uf' => 'TO'], + 4311403 => ['nome' => 'Lajeado', 'uf' => 'RS'], + 4311429 => ['nome' => 'Lajeado do Bugre', 'uf' => 'RS'], + 4209458 => ['nome' => 'Lajeado Grande', 'uf' => 'SC'], + 2105989 => ['nome' => 'Lajeado Novo', 'uf' => 'MA'], + 2918902 => ['nome' => 'Lajedão', 'uf' => 'BA'], + 2919009 => ['nome' => 'Lajedinho', 'uf' => 'BA'], + 2608800 => ['nome' => 'Lajedo', 'uf' => 'PE'], + 2919058 => ['nome' => 'Lajedo do Tabocal', 'uf' => 'BA'], + 2406700 => ['nome' => 'Lajes', 'uf' => 'RN'], + 2406809 => ['nome' => 'Lajes Pintadas', 'uf' => 'RN'], + 3137700 => ['nome' => 'Lajinha', 'uf' => 'MG'], + 2919108 => ['nome' => 'Lamarão', 'uf' => 'BA'], + 3137809 => ['nome' => 'Lambari', 'uf' => 'MG'], + 5105234 => ['nome' => 'Lambari D\'Oeste', 'uf' => 'MT'], + 3137908 => ['nome' => 'Lamim', 'uf' => 'MG'], + 2205607 => ['nome' => 'Landri Sales', 'uf' => 'PI'], + 4113205 => ['nome' => 'Lapa', 'uf' => 'PR'], + 2919157 => ['nome' => 'Lapão', 'uf' => 'BA'], + 3203163 => ['nome' => 'Laranja da Terra', 'uf' => 'ES'], + 3138005 => ['nome' => 'Laranjal', 'uf' => 'MG'], + 4113254 => ['nome' => 'Laranjal', 'uf' => 'PR'], + 1600279 => ['nome' => 'Laranjal do Jari', 'uf' => 'AP'], + 3526407 => ['nome' => 'Laranjal Paulista', 'uf' => 'SP'], + 2803609 => ['nome' => 'Laranjeiras', 'uf' => 'SE'], + 4113304 => ['nome' => 'Laranjeiras do Sul', 'uf' => 'PR'], + 3138104 => ['nome' => 'Lassance', 'uf' => 'MG'], + 2508406 => ['nome' => 'Lastro', 'uf' => 'PB'], + 4209508 => ['nome' => 'Laurentino', 'uf' => 'SC'], + 2919207 => ['nome' => 'Lauro de Freitas', 'uf' => 'BA'], + 4209607 => ['nome' => 'Lauro Muller', 'uf' => 'SC'], + 1712157 => ['nome' => 'Lavandeira', 'uf' => 'TO'], + 3526506 => ['nome' => 'Lavínia', 'uf' => 'SP'], + 3138203 => ['nome' => 'Lavras', 'uf' => 'MG'], + 2307502 => ['nome' => 'Lavras da Mangabeira', 'uf' => 'CE'], + 4311502 => ['nome' => 'Lavras do Sul', 'uf' => 'RS'], + 3526605 => ['nome' => 'Lavrinhas', 'uf' => 'SP'], + 3138302 => ['nome' => 'Leandro Ferreira', 'uf' => 'MG'], + 4209706 => ['nome' => 'Lebon Régis', 'uf' => 'SC'], + 3526704 => ['nome' => 'Leme', 'uf' => 'SP'], + 3138351 => ['nome' => 'Leme do Prado', 'uf' => 'MG'], + 2919306 => ['nome' => 'Lençóis', 'uf' => 'BA'], + 3526803 => ['nome' => 'Lençóis Paulista', 'uf' => 'SP'], + 4209805 => ['nome' => 'Leoberto Leal', 'uf' => 'SC'], + 3138401 => ['nome' => 'Leopoldina', 'uf' => 'MG'], + 5212303 => ['nome' => 'Leopoldo de Bulhões', 'uf' => 'GO'], + 4113403 => ['nome' => 'Leópolis', 'uf' => 'PR'], + 4311601 => ['nome' => 'Liberato Salzano', 'uf' => 'RS'], + 3138500 => ['nome' => 'Liberdade', 'uf' => 'MG'], + 2919405 => ['nome' => 'Licínio de Almeida', 'uf' => 'BA'], + 4113429 => ['nome' => 'Lidianópolis', 'uf' => 'PR'], + 2106003 => ['nome' => 'Lima Campos', 'uf' => 'MA'], + 3138609 => ['nome' => 'Lima Duarte', 'uf' => 'MG'], + 3526902 => ['nome' => 'Limeira', 'uf' => 'SP'], + 3138625 => ['nome' => 'Limeira do Oeste', 'uf' => 'MG'], + 2608909 => ['nome' => 'Limoeiro', 'uf' => 'PE'], + 2704203 => ['nome' => 'Limoeiro de Anadia', 'uf' => 'AL'], + 1504000 => ['nome' => 'Limoeiro do Ajuru', 'uf' => 'PA'], + 2307601 => ['nome' => 'Limoeiro do Norte', 'uf' => 'CE'], + 4113452 => ['nome' => 'Lindoeste', 'uf' => 'PR'], + 3527009 => ['nome' => 'Lindóia', 'uf' => 'SP'], + 4209854 => ['nome' => 'Lindóia do Sul', 'uf' => 'SC'], + 4311627 => ['nome' => 'Lindolfo Collor', 'uf' => 'RS'], + 4311643 => ['nome' => 'Linha Nova', 'uf' => 'RS'], + 3203205 => ['nome' => 'Linhares', 'uf' => 'ES'], + 3527108 => ['nome' => 'Lins', 'uf' => 'SP'], + 2508505 => ['nome' => 'Livramento', 'uf' => 'PB'], + 2919504 => ['nome' => 'Livramento de Nossa Senhora', 'uf' => 'BA'], + 1712405 => ['nome' => 'Lizarda', 'uf' => 'TO'], + 4113502 => ['nome' => 'Loanda', 'uf' => 'PR'], + 4113601 => ['nome' => 'Lobato', 'uf' => 'PR'], + 2508554 => ['nome' => 'Logradouro', 'uf' => 'PB'], + 4113700 => ['nome' => 'Londrina', 'uf' => 'PR'], + 3138658 => ['nome' => 'Lontra', 'uf' => 'MG'], + 4209904 => ['nome' => 'Lontras', 'uf' => 'SC'], + 3527207 => ['nome' => 'Lorena', 'uf' => 'SP'], + 2106102 => ['nome' => 'Loreto', 'uf' => 'MA'], + 3527256 => ['nome' => 'Lourdes', 'uf' => 'SP'], + 3527306 => ['nome' => 'Louveira', 'uf' => 'SP'], + 5105259 => ['nome' => 'Lucas do Rio Verde', 'uf' => 'MT'], + 3527405 => ['nome' => 'Lucélia', 'uf' => 'SP'], + 2508604 => ['nome' => 'Lucena', 'uf' => 'PB'], + 3527504 => ['nome' => 'Lucianópolis', 'uf' => 'SP'], + 5105309 => ['nome' => 'Luciara', 'uf' => 'MT'], + 2406908 => ['nome' => 'Lucrécia', 'uf' => 'RN'], + 3527603 => ['nome' => 'Luís Antônio', 'uf' => 'SP'], + 2205706 => ['nome' => 'Luís Correia', 'uf' => 'PI'], + 2106201 => ['nome' => 'Luís Domingues', 'uf' => 'MA'], + 2919553 => ['nome' => 'Luís Eduardo Magalhães', 'uf' => 'BA'], + 2407005 => ['nome' => 'Luís Gomes', 'uf' => 'RN'], + 3138674 => ['nome' => 'Luisburgo', 'uf' => 'MG'], + 3138682 => ['nome' => 'Luislândia', 'uf' => 'MG'], + 4210001 => ['nome' => 'Luiz Alves', 'uf' => 'SC'], + 4113734 => ['nome' => 'Luiziana', 'uf' => 'PR'], + 3527702 => ['nome' => 'Luiziânia', 'uf' => 'SP'], + 3138708 => ['nome' => 'Luminárias', 'uf' => 'MG'], + 4113759 => ['nome' => 'Lunardelli', 'uf' => 'PR'], + 3527801 => ['nome' => 'Lupércio', 'uf' => 'SP'], + 4113809 => ['nome' => 'Lupionópolis', 'uf' => 'PR'], + 3527900 => ['nome' => 'Lutécia', 'uf' => 'SP'], + 3138807 => ['nome' => 'Luz', 'uf' => 'MG'], + 4210035 => ['nome' => 'Luzerna', 'uf' => 'SC'], + 5212501 => ['nome' => 'Luziânia', 'uf' => 'GO'], + 2205805 => ['nome' => 'Luzilândia', 'uf' => 'PI'], + 1712454 => ['nome' => 'Luzinópolis', 'uf' => 'TO'], + 3302403 => ['nome' => 'Macaé', 'uf' => 'RJ'], + 2407104 => ['nome' => 'Macaíba', 'uf' => 'RN'], + 2919603 => ['nome' => 'Macajuba', 'uf' => 'BA'], + 4311718 => ['nome' => 'Maçambará', 'uf' => 'RS'], + 2803708 => ['nome' => 'Macambira', 'uf' => 'SE'], + 1600303 => ['nome' => 'Macapá', 'uf' => 'AP'], + 2609006 => ['nome' => 'Macaparana', 'uf' => 'PE'], + 2919702 => ['nome' => 'Macarani', 'uf' => 'BA'], + 3528007 => ['nome' => 'Macatuba', 'uf' => 'SP'], + 2407203 => ['nome' => 'Macau', 'uf' => 'RN'], + 3528106 => ['nome' => 'Macaubal', 'uf' => 'SP'], + 2919801 => ['nome' => 'Macaúbas', 'uf' => 'BA'], + 3528205 => ['nome' => 'Macedônia', 'uf' => 'SP'], + 2704302 => ['nome' => 'Maceió', 'uf' => 'AL'], + 3138906 => ['nome' => 'Machacalis', 'uf' => 'MG'], + 4311700 => ['nome' => 'Machadinho', 'uf' => 'RS'], + 1100130 => ['nome' => 'Machadinho D\'Oeste', 'uf' => 'RO'], + 3139003 => ['nome' => 'Machado', 'uf' => 'MG'], + 2609105 => ['nome' => 'Machados', 'uf' => 'PE'], + 4210050 => ['nome' => 'Macieira', 'uf' => 'SC'], + 3302452 => ['nome' => 'Macuco', 'uf' => 'RJ'], + 2919900 => ['nome' => 'Macururé', 'uf' => 'BA'], + 2307635 => ['nome' => 'Madalena', 'uf' => 'CE'], + 2205854 => ['nome' => 'Madeiro', 'uf' => 'PI'], + 2919926 => ['nome' => 'Madre de Deus', 'uf' => 'BA'], + 3139102 => ['nome' => 'Madre de Deus de Minas', 'uf' => 'MG'], + 2508703 => ['nome' => 'Mãe d\'Água', 'uf' => 'PB'], + 1504059 => ['nome' => 'Mãe do Rio', 'uf' => 'PA'], + 2919959 => ['nome' => 'Maetinga', 'uf' => 'BA'], + 4210100 => ['nome' => 'Mafra', 'uf' => 'SC'], + 1504109 => ['nome' => 'Magalhães Barata', 'uf' => 'PA'], + 2106300 => ['nome' => 'Magalhães de Almeida', 'uf' => 'MA'], + 3528304 => ['nome' => 'Magda', 'uf' => 'SP'], + 3302502 => ['nome' => 'Magé', 'uf' => 'RJ'], + 2920007 => ['nome' => 'Maiquinique', 'uf' => 'BA'], + 2920106 => ['nome' => 'Mairi', 'uf' => 'BA'], + 3528403 => ['nome' => 'Mairinque', 'uf' => 'SP'], + 3528502 => ['nome' => 'Mairiporã', 'uf' => 'SP'], + 5212600 => ['nome' => 'Mairipotaba', 'uf' => 'GO'], + 4210209 => ['nome' => 'Major Gercino', 'uf' => 'SC'], + 2704401 => ['nome' => 'Major Isidoro', 'uf' => 'AL'], + 2407252 => ['nome' => 'Major Sales', 'uf' => 'RN'], + 4210308 => ['nome' => 'Major Vieira', 'uf' => 'SC'], + 3139201 => ['nome' => 'Malacacheta', 'uf' => 'MG'], + 2920205 => ['nome' => 'Malhada', 'uf' => 'BA'], + 2920304 => ['nome' => 'Malhada de Pedras', 'uf' => 'BA'], + 2803807 => ['nome' => 'Malhada dos Bois', 'uf' => 'SE'], + 2803906 => ['nome' => 'Malhador', 'uf' => 'SE'], + 4113908 => ['nome' => 'Mallet', 'uf' => 'PR'], + 2508802 => ['nome' => 'Malta', 'uf' => 'PB'], + 2508901 => ['nome' => 'Mamanguape', 'uf' => 'PB'], + 5212709 => ['nome' => 'Mambaí', 'uf' => 'GO'], + 4114005 => ['nome' => 'Mamborê', 'uf' => 'PR'], + 3139250 => ['nome' => 'Mamonas', 'uf' => 'MG'], + 4311734 => ['nome' => 'Mampituba', 'uf' => 'RS'], + 1302504 => ['nome' => 'Manacapuru', 'uf' => 'AM'], + 2509008 => ['nome' => 'Manaíra', 'uf' => 'PB'], + 1302553 => ['nome' => 'Manaquiri', 'uf' => 'AM'], + 2609154 => ['nome' => 'Manari', 'uf' => 'PE'], + 1302603 => ['nome' => 'Manaus', 'uf' => 'AM'], + 1200336 => ['nome' => 'Mâncio Lima', 'uf' => 'AC'], + 4114104 => ['nome' => 'Mandaguaçu', 'uf' => 'PR'], + 4114203 => ['nome' => 'Mandaguari', 'uf' => 'PR'], + 4114302 => ['nome' => 'Mandirituba', 'uf' => 'PR'], + 3528601 => ['nome' => 'Manduri', 'uf' => 'SP'], + 4114351 => ['nome' => 'Manfrinópolis', 'uf' => 'PR'], + 3139300 => ['nome' => 'Manga', 'uf' => 'MG'], + 3302601 => ['nome' => 'Mangaratiba', 'uf' => 'RJ'], + 4114401 => ['nome' => 'Mangueirinha', 'uf' => 'PR'], + 3139409 => ['nome' => 'Manhuaçu', 'uf' => 'MG'], + 3139508 => ['nome' => 'Manhumirim', 'uf' => 'MG'], + 1302702 => ['nome' => 'Manicoré', 'uf' => 'AM'], + 2205904 => ['nome' => 'Manoel Emídio', 'uf' => 'PI'], + 4114500 => ['nome' => 'Manoel Ribas', 'uf' => 'PR'], + 1200344 => ['nome' => 'Manoel Urbano', 'uf' => 'AC'], + 4311759 => ['nome' => 'Manoel Viana', 'uf' => 'RS'], + 2920403 => ['nome' => 'Manoel Vitorino', 'uf' => 'BA'], + 2920452 => ['nome' => 'Mansidão', 'uf' => 'BA'], + 3139607 => ['nome' => 'Mantena', 'uf' => 'MG'], + 3203304 => ['nome' => 'Mantenópolis', 'uf' => 'ES'], + 4311775 => ['nome' => 'Maquiné', 'uf' => 'RS'], + 3139805 => ['nome' => 'Mar de Espanha', 'uf' => 'MG'], + 2704906 => ['nome' => 'Mar Vermelho', 'uf' => 'AL'], + 5212808 => ['nome' => 'Mara Rosa', 'uf' => 'GO'], + 1302801 => ['nome' => 'Maraã', 'uf' => 'AM'], + 1504208 => ['nome' => 'Marabá', 'uf' => 'PA'], + 3528700 => ['nome' => 'Marabá Paulista', 'uf' => 'SP'], + 2106326 => ['nome' => 'Maracaçumé', 'uf' => 'MA'], + 3528809 => ['nome' => 'Maracaí', 'uf' => 'SP'], + 4210407 => ['nome' => 'Maracajá', 'uf' => 'SC'], + 5005400 => ['nome' => 'Maracaju', 'uf' => 'MS'], + 1504307 => ['nome' => 'Maracanã', 'uf' => 'PA'], + 2307650 => ['nome' => 'Maracanaú', 'uf' => 'CE'], + 2920502 => ['nome' => 'Maracás', 'uf' => 'BA'], + 2704500 => ['nome' => 'Maragogi', 'uf' => 'AL'], + 2920601 => ['nome' => 'Maragogipe', 'uf' => 'BA'], + 2609204 => ['nome' => 'Maraial', 'uf' => 'PE'], + 2106359 => ['nome' => 'Marajá do Sena', 'uf' => 'MA'], + 2307700 => ['nome' => 'Maranguape', 'uf' => 'CE'], + 2106375 => ['nome' => 'Maranhãozinho', 'uf' => 'MA'], + 1504406 => ['nome' => 'Marapanim', 'uf' => 'PA'], + 3528858 => ['nome' => 'Marapoama', 'uf' => 'SP'], + 4311791 => ['nome' => 'Maratá', 'uf' => 'RS'], + 3203320 => ['nome' => 'Marataízes', 'uf' => 'ES'], + 4311809 => ['nome' => 'Marau', 'uf' => 'RS'], + 2920700 => ['nome' => 'Maraú', 'uf' => 'BA'], + 2704609 => ['nome' => 'Maravilha', 'uf' => 'AL'], + 4210506 => ['nome' => 'Maravilha', 'uf' => 'SC'], + 3139706 => ['nome' => 'Maravilhas', 'uf' => 'MG'], + 2509057 => ['nome' => 'Marcação', 'uf' => 'PB'], + 5105580 => ['nome' => 'Marcelândia', 'uf' => 'MT'], + 4311908 => ['nome' => 'Marcelino Ramos', 'uf' => 'RS'], + 2407302 => ['nome' => 'Marcelino Vieira', 'uf' => 'RN'], + 2920809 => ['nome' => 'Marcionílio Souza', 'uf' => 'BA'], + 2307809 => ['nome' => 'Marco', 'uf' => 'CE'], + 2205953 => ['nome' => 'Marcolândia', 'uf' => 'PI'], + 2206001 => ['nome' => 'Marcos Parente', 'uf' => 'PI'], + 4114609 => ['nome' => 'Marechal Cândido Rondon', 'uf' => 'PR'], + 2704708 => ['nome' => 'Marechal Deodoro', 'uf' => 'AL'], + 3203346 => ['nome' => 'Marechal Floriano', 'uf' => 'ES'], + 1200351 => ['nome' => 'Marechal Thaumaturgo', 'uf' => 'AC'], + 4210555 => ['nome' => 'Marema', 'uf' => 'SC'], + 2509107 => ['nome' => 'Mari', 'uf' => 'PB'], + 3139904 => ['nome' => 'Maria da Fé', 'uf' => 'MG'], + 4114708 => ['nome' => 'Maria Helena', 'uf' => 'PR'], + 4114807 => ['nome' => 'Marialva', 'uf' => 'PR'], + 3140001 => ['nome' => 'Mariana', 'uf' => 'MG'], + 4311981 => ['nome' => 'Mariana Pimentel', 'uf' => 'RS'], + 4312005 => ['nome' => 'Mariano Moro', 'uf' => 'RS'], + 1712504 => ['nome' => 'Marianópolis do Tocantins', 'uf' => 'TO'], + 3528908 => ['nome' => 'Mariápolis', 'uf' => 'SP'], + 2704807 => ['nome' => 'Maribondo', 'uf' => 'AL'], + 3302700 => ['nome' => 'Maricá', 'uf' => 'RJ'], + 3140100 => ['nome' => 'Marilac', 'uf' => 'MG'], + 3203353 => ['nome' => 'Marilândia', 'uf' => 'ES'], + 4114906 => ['nome' => 'Marilândia do Sul', 'uf' => 'PR'], + 4115002 => ['nome' => 'Marilena', 'uf' => 'PR'], + 3529005 => ['nome' => 'Marília', 'uf' => 'SP'], + 4115101 => ['nome' => 'Mariluz', 'uf' => 'PR'], + 4115200 => ['nome' => 'Maringá', 'uf' => 'PR'], + 3529104 => ['nome' => 'Marinópolis', 'uf' => 'SP'], + 3140159 => ['nome' => 'Mário Campos', 'uf' => 'MG'], + 4115309 => ['nome' => 'Mariópolis', 'uf' => 'PR'], + 4115358 => ['nome' => 'Maripá', 'uf' => 'PR'], + 3140209 => ['nome' => 'Maripá de Minas', 'uf' => 'MG'], + 1504422 => ['nome' => 'Marituba', 'uf' => 'PA'], + 2509156 => ['nome' => 'Marizópolis', 'uf' => 'PB'], + 3140308 => ['nome' => 'Marliéria', 'uf' => 'MG'], + 4115408 => ['nome' => 'Marmeleiro', 'uf' => 'PR'], + 3140407 => ['nome' => 'Marmelópolis', 'uf' => 'MG'], + 4312054 => ['nome' => 'Marques de Souza', 'uf' => 'RS'], + 4115457 => ['nome' => 'Marquinho', 'uf' => 'PR'], + 3140506 => ['nome' => 'Martinho Campos', 'uf' => 'MG'], + 2307908 => ['nome' => 'Martinópole', 'uf' => 'CE'], + 3529203 => ['nome' => 'Martinópolis', 'uf' => 'SP'], + 2407401 => ['nome' => 'Martins', 'uf' => 'RN'], + 3140530 => ['nome' => 'Martins Soares', 'uf' => 'MG'], + 2804003 => ['nome' => 'Maruim', 'uf' => 'SE'], + 4115507 => ['nome' => 'Marumbi', 'uf' => 'PR'], + 5212907 => ['nome' => 'Marzagão', 'uf' => 'GO'], + 2920908 => ['nome' => 'Mascote', 'uf' => 'BA'], + 2308005 => ['nome' => 'Massapê', 'uf' => 'CE'], + 2206050 => ['nome' => 'Massapê do Piauí', 'uf' => 'PI'], + 2509206 => ['nome' => 'Massaranduba', 'uf' => 'PB'], + 4210605 => ['nome' => 'Massaranduba', 'uf' => 'SC'], + 4312104 => ['nome' => 'Mata', 'uf' => 'RS'], + 2921005 => ['nome' => 'Mata de São João', 'uf' => 'BA'], + 2705002 => ['nome' => 'Mata Grande', 'uf' => 'AL'], + 2106409 => ['nome' => 'Mata Roma', 'uf' => 'MA'], + 3140555 => ['nome' => 'Mata Verde', 'uf' => 'MG'], + 3529302 => ['nome' => 'Matão', 'uf' => 'SP'], + 2509305 => ['nome' => 'Mataraca', 'uf' => 'PB'], + 1712702 => ['nome' => 'Mateiros', 'uf' => 'TO'], + 4115606 => ['nome' => 'Matelândia', 'uf' => 'PR'], + 3140605 => ['nome' => 'Materlândia', 'uf' => 'MG'], + 3140704 => ['nome' => 'Mateus Leme', 'uf' => 'MG'], + 3171501 => ['nome' => 'Mathias Lobato', 'uf' => 'MG'], + 3140803 => ['nome' => 'Matias Barbosa', 'uf' => 'MG'], + 3140852 => ['nome' => 'Matias Cardoso', 'uf' => 'MG'], + 2206100 => ['nome' => 'Matias Olímpio', 'uf' => 'PI'], + 2921054 => ['nome' => 'Matina', 'uf' => 'BA'], + 2106508 => ['nome' => 'Matinha', 'uf' => 'MA'], + 2509339 => ['nome' => 'Matinhas', 'uf' => 'PB'], + 4115705 => ['nome' => 'Matinhos', 'uf' => 'PR'], + 3140902 => ['nome' => 'Matipó', 'uf' => 'MG'], + 4312138 => ['nome' => 'Mato Castelhano', 'uf' => 'RS'], + 2509370 => ['nome' => 'Mato Grosso', 'uf' => 'PB'], + 4312153 => ['nome' => 'Mato Leitão', 'uf' => 'RS'], + 4312179 => ['nome' => 'Mato Queimado', 'uf' => 'RS'], + 4115739 => ['nome' => 'Mato Rico', 'uf' => 'PR'], + 3141009 => ['nome' => 'Mato Verde', 'uf' => 'MG'], + 2106607 => ['nome' => 'Matões', 'uf' => 'MA'], + 2106631 => ['nome' => 'Matões do Norte', 'uf' => 'MA'], + 4210704 => ['nome' => 'Matos Costa', 'uf' => 'SC'], + 3141108 => ['nome' => 'Matozinhos', 'uf' => 'MG'], + 5212956 => ['nome' => 'Matrinchã', 'uf' => 'GO'], + 2705101 => ['nome' => 'Matriz de Camaragibe', 'uf' => 'AL'], + 5105606 => ['nome' => 'Matupá', 'uf' => 'MT'], + 2509396 => ['nome' => 'Maturéia', 'uf' => 'PB'], + 3141207 => ['nome' => 'Matutina', 'uf' => 'MG'], + 3529401 => ['nome' => 'Mauá', 'uf' => 'SP'], + 4115754 => ['nome' => 'Mauá da Serra', 'uf' => 'PR'], + 1302900 => ['nome' => 'Maués', 'uf' => 'AM'], + 5213004 => ['nome' => 'Maurilândia', 'uf' => 'GO'], + 1712801 => ['nome' => 'Maurilândia do Tocantins', 'uf' => 'TO'], + 2308104 => ['nome' => 'Mauriti', 'uf' => 'CE'], + 2407500 => ['nome' => 'Maxaranguape', 'uf' => 'RN'], + 4312203 => ['nome' => 'Maximiliano de Almeida', 'uf' => 'RS'], + 1600402 => ['nome' => 'Mazagão', 'uf' => 'AP'], + 3141306 => ['nome' => 'Medeiros', 'uf' => 'MG'], + 2921104 => ['nome' => 'Medeiros Neto', 'uf' => 'BA'], + 4115804 => ['nome' => 'Medianeira', 'uf' => 'PR'], + 1504455 => ['nome' => 'Medicilândia', 'uf' => 'PA'], + 3141405 => ['nome' => 'Medina', 'uf' => 'MG'], + 4210803 => ['nome' => 'Meleiro', 'uf' => 'SC'], + 1504505 => ['nome' => 'Melgaço', 'uf' => 'PA'], + 3302809 => ['nome' => 'Mendes', 'uf' => 'RJ'], + 3141504 => ['nome' => 'Mendes Pimentel', 'uf' => 'MG'], + 3529500 => ['nome' => 'Mendonça', 'uf' => 'SP'], + 4115853 => ['nome' => 'Mercedes', 'uf' => 'PR'], + 3141603 => ['nome' => 'Mercês', 'uf' => 'MG'], + 3529609 => ['nome' => 'Meridiano', 'uf' => 'SP'], + 2308203 => ['nome' => 'Meruoca', 'uf' => 'CE'], + 3529658 => ['nome' => 'Mesópolis', 'uf' => 'SP'], + 3302858 => ['nome' => 'Mesquita', 'uf' => 'RJ'], + 3141702 => ['nome' => 'Mesquita', 'uf' => 'MG'], + 2705200 => ['nome' => 'Messias', 'uf' => 'AL'], + 2407609 => ['nome' => 'Messias Targino', 'uf' => 'RN'], + 2206209 => ['nome' => 'Miguel Alves', 'uf' => 'PI'], + 2921203 => ['nome' => 'Miguel Calmon', 'uf' => 'BA'], + 2206308 => ['nome' => 'Miguel Leão', 'uf' => 'PI'], + 3302908 => ['nome' => 'Miguel Pereira', 'uf' => 'RJ'], + 3529708 => ['nome' => 'Miguelópolis', 'uf' => 'SP'], + 2308302 => ['nome' => 'Milagres', 'uf' => 'CE'], + 2921302 => ['nome' => 'Milagres', 'uf' => 'BA'], + 2106672 => ['nome' => 'Milagres do Maranhão', 'uf' => 'MA'], + 2308351 => ['nome' => 'Milhã', 'uf' => 'CE'], + 2206357 => ['nome' => 'Milton Brandão', 'uf' => 'PI'], + 5213053 => ['nome' => 'Mimoso de Goiás', 'uf' => 'GO'], + 3203403 => ['nome' => 'Mimoso do Sul', 'uf' => 'ES'], + 5213087 => ['nome' => 'Minaçu', 'uf' => 'GO'], + 2705309 => ['nome' => 'Minador do Negrão', 'uf' => 'AL'], + 4312252 => ['nome' => 'Minas do Leão', 'uf' => 'RS'], + 3141801 => ['nome' => 'Minas Novas', 'uf' => 'MG'], + 3141900 => ['nome' => 'Minduri', 'uf' => 'MG'], + 5213103 => ['nome' => 'Mineiros', 'uf' => 'GO'], + 3529807 => ['nome' => 'Mineiros do Tietê', 'uf' => 'SP'], + 1101203 => ['nome' => 'Ministro Andreazza', 'uf' => 'RO'], + 3530003 => ['nome' => 'Mira Estrela', 'uf' => 'SP'], + 3142007 => ['nome' => 'Mirabela', 'uf' => 'MG'], + 3529906 => ['nome' => 'Miracatu', 'uf' => 'SP'], + 3303005 => ['nome' => 'Miracema', 'uf' => 'RJ'], + 1713205 => ['nome' => 'Miracema do Tocantins', 'uf' => 'TO'], + 2106706 => ['nome' => 'Mirador', 'uf' => 'MA'], + 4115903 => ['nome' => 'Mirador', 'uf' => 'PR'], + 3142106 => ['nome' => 'Miradouro', 'uf' => 'MG'], + 4312302 => ['nome' => 'Miraguaí', 'uf' => 'RS'], + 3142205 => ['nome' => 'Miraí', 'uf' => 'MG'], + 2308377 => ['nome' => 'Miraíma', 'uf' => 'CE'], + 5005608 => ['nome' => 'Miranda', 'uf' => 'MS'], + 2106755 => ['nome' => 'Miranda do Norte', 'uf' => 'MA'], + 2609303 => ['nome' => 'Mirandiba', 'uf' => 'PE'], + 3530102 => ['nome' => 'Mirandópolis', 'uf' => 'SP'], + 2921401 => ['nome' => 'Mirangaba', 'uf' => 'BA'], + 1713304 => ['nome' => 'Miranorte', 'uf' => 'TO'], + 2921450 => ['nome' => 'Mirante', 'uf' => 'BA'], + 1101302 => ['nome' => 'Mirante da Serra', 'uf' => 'RO'], + 3530201 => ['nome' => 'Mirante do Paranapanema', 'uf' => 'SP'], + 4116000 => ['nome' => 'Miraselva', 'uf' => 'PR'], + 3530300 => ['nome' => 'Mirassol', 'uf' => 'SP'], + 5105622 => ['nome' => 'Mirassol d\'Oeste', 'uf' => 'MT'], + 3530409 => ['nome' => 'Mirassolândia', 'uf' => 'SP'], + 3142254 => ['nome' => 'Miravânia', 'uf' => 'MG'], + 4210852 => ['nome' => 'Mirim Doce', 'uf' => 'SC'], + 2106805 => ['nome' => 'Mirinzal', 'uf' => 'MA'], + 4116059 => ['nome' => 'Missal', 'uf' => 'PR'], + 2308401 => ['nome' => 'Missão Velha', 'uf' => 'CE'], + 1504604 => ['nome' => 'Mocajuba', 'uf' => 'PA'], + 3530508 => ['nome' => 'Mococa', 'uf' => 'SP'], + 4210902 => ['nome' => 'Modelo', 'uf' => 'SC'], + 3142304 => ['nome' => 'Moeda', 'uf' => 'MG'], + 3142403 => ['nome' => 'Moema', 'uf' => 'MG'], + 2509404 => ['nome' => 'Mogeiro', 'uf' => 'PB'], + 3530607 => ['nome' => 'Mogi das Cruzes', 'uf' => 'SP'], + 3530706 => ['nome' => 'Mogi Guaçu', 'uf' => 'SP'], + 3530805 => ['nome' => 'Mogi Mirim', 'uf' => 'SP'], + 5213400 => ['nome' => 'Moiporá', 'uf' => 'GO'], + 2804102 => ['nome' => 'Moita Bonita', 'uf' => 'SE'], + 1504703 => ['nome' => 'Moju', 'uf' => 'PA'], + 1504752 => ['nome' => 'Mojuí dos Campos', 'uf' => 'PA'], + 2308500 => ['nome' => 'Mombaça', 'uf' => 'CE'], + 3530904 => ['nome' => 'Mombuca', 'uf' => 'SP'], + 2106904 => ['nome' => 'Monção', 'uf' => 'MA'], + 3531001 => ['nome' => 'Monções', 'uf' => 'SP'], + 4211009 => ['nome' => 'Mondaí', 'uf' => 'SC'], + 3531100 => ['nome' => 'Mongaguá', 'uf' => 'SP'], + 3142502 => ['nome' => 'Monjolos', 'uf' => 'MG'], + 2206407 => ['nome' => 'Monsenhor Gil', 'uf' => 'PI'], + 2206506 => ['nome' => 'Monsenhor Hipólito', 'uf' => 'PI'], + 3142601 => ['nome' => 'Monsenhor Paulo', 'uf' => 'MG'], + 2308609 => ['nome' => 'Monsenhor Tabosa', 'uf' => 'CE'], + 2509503 => ['nome' => 'Montadas', 'uf' => 'PB'], + 3142700 => ['nome' => 'Montalvânia', 'uf' => 'MG'], + 3203502 => ['nome' => 'Montanha', 'uf' => 'ES'], + 2407708 => ['nome' => 'Montanhas', 'uf' => 'RN'], + 4312351 => ['nome' => 'Montauri', 'uf' => 'RS'], + 1504802 => ['nome' => 'Monte Alegre', 'uf' => 'PA'], + 2407807 => ['nome' => 'Monte Alegre', 'uf' => 'RN'], + 5213509 => ['nome' => 'Monte Alegre de Goiás', 'uf' => 'GO'], + 3142809 => ['nome' => 'Monte Alegre de Minas', 'uf' => 'MG'], + 2804201 => ['nome' => 'Monte Alegre de Sergipe', 'uf' => 'SE'], + 2206605 => ['nome' => 'Monte Alegre do Piauí', 'uf' => 'PI'], + 3531209 => ['nome' => 'Monte Alegre do Sul', 'uf' => 'SP'], + 4312377 => ['nome' => 'Monte Alegre dos Campos', 'uf' => 'RS'], + 3531308 => ['nome' => 'Monte Alto', 'uf' => 'SP'], + 3531407 => ['nome' => 'Monte Aprazível', 'uf' => 'SP'], + 3142908 => ['nome' => 'Monte Azul', 'uf' => 'MG'], + 3531506 => ['nome' => 'Monte Azul Paulista', 'uf' => 'SP'], + 3143005 => ['nome' => 'Monte Belo', 'uf' => 'MG'], + 4312385 => ['nome' => 'Monte Belo do Sul', 'uf' => 'RS'], + 4211058 => ['nome' => 'Monte Carlo', 'uf' => 'SC'], + 3143104 => ['nome' => 'Monte Carmelo', 'uf' => 'MG'], + 4211108 => ['nome' => 'Monte Castelo', 'uf' => 'SC'], + 3531605 => ['nome' => 'Monte Castelo', 'uf' => 'SP'], + 2407906 => ['nome' => 'Monte das Gameleiras', 'uf' => 'RN'], + 1713601 => ['nome' => 'Monte do Carmo', 'uf' => 'TO'], + 3143153 => ['nome' => 'Monte Formoso', 'uf' => 'MG'], + 2509602 => ['nome' => 'Monte Horebe', 'uf' => 'PB'], + 3531803 => ['nome' => 'Monte Mor', 'uf' => 'SP'], + 1101401 => ['nome' => 'Monte Negro', 'uf' => 'RO'], + 2921500 => ['nome' => 'Monte Santo', 'uf' => 'BA'], + 3143203 => ['nome' => 'Monte Santo de Minas', 'uf' => 'MG'], + 1713700 => ['nome' => 'Monte Santo do Tocantins', 'uf' => 'TO'], + 3143401 => ['nome' => 'Monte Sião', 'uf' => 'MG'], + 2509701 => ['nome' => 'Monteiro', 'uf' => 'PB'], + 3531704 => ['nome' => 'Monteiro Lobato', 'uf' => 'SP'], + 2705408 => ['nome' => 'Monteirópolis', 'uf' => 'AL'], + 4312401 => ['nome' => 'Montenegro', 'uf' => 'RS'], + 2107001 => ['nome' => 'Montes Altos', 'uf' => 'MA'], + 3143302 => ['nome' => 'Montes Claros', 'uf' => 'MG'], + 5213707 => ['nome' => 'Montes Claros de Goiás', 'uf' => 'GO'], + 3143450 => ['nome' => 'Montezuma', 'uf' => 'MG'], + 5213756 => ['nome' => 'Montividiu', 'uf' => 'GO'], + 5213772 => ['nome' => 'Montividiu do Norte', 'uf' => 'GO'], + 2308708 => ['nome' => 'Morada Nova', 'uf' => 'CE'], + 3143500 => ['nome' => 'Morada Nova de Minas', 'uf' => 'MG'], + 2308807 => ['nome' => 'Moraújo', 'uf' => 'CE'], + 2614303 => ['nome' => 'Moreilândia', 'uf' => 'PE'], + 4116109 => ['nome' => 'Moreira Sales', 'uf' => 'PR'], + 2609402 => ['nome' => 'Moreno', 'uf' => 'PE'], + 4312427 => ['nome' => 'Mormaço', 'uf' => 'RS'], + 2921609 => ['nome' => 'Morpará', 'uf' => 'BA'], + 4116208 => ['nome' => 'Morretes', 'uf' => 'PR'], + 5213806 => ['nome' => 'Morrinhos', 'uf' => 'GO'], + 2308906 => ['nome' => 'Morrinhos', 'uf' => 'CE'], + 4312443 => ['nome' => 'Morrinhos do Sul', 'uf' => 'RS'], + 3531902 => ['nome' => 'Morro Agudo', 'uf' => 'SP'], + 5213855 => ['nome' => 'Morro Agudo de Goiás', 'uf' => 'GO'], + 2206654 => ['nome' => 'Morro Cabeça no Tempo', 'uf' => 'PI'], + 4211207 => ['nome' => 'Morro da Fumaça', 'uf' => 'SC'], + 3143609 => ['nome' => 'Morro da Garça', 'uf' => 'MG'], + 2921708 => ['nome' => 'Morro do Chapéu', 'uf' => 'BA'], + 2206670 => ['nome' => 'Morro do Chapéu do Piauí', 'uf' => 'PI'], + 3143708 => ['nome' => 'Morro do Pilar', 'uf' => 'MG'], + 4211256 => ['nome' => 'Morro Grande', 'uf' => 'SC'], + 4312450 => ['nome' => 'Morro Redondo', 'uf' => 'RS'], + 4312476 => ['nome' => 'Morro Reuter', 'uf' => 'RS'], + 2107100 => ['nome' => 'Morros', 'uf' => 'MA'], + 2921807 => ['nome' => 'Mortugaba', 'uf' => 'BA'], + 3532009 => ['nome' => 'Morungaba', 'uf' => 'SP'], + 5213905 => ['nome' => 'Mossâmedes', 'uf' => 'GO'], + 2408003 => ['nome' => 'Mossoró', 'uf' => 'RN'], + 4312500 => ['nome' => 'Mostardas', 'uf' => 'RS'], + 3532058 => ['nome' => 'Motuca', 'uf' => 'SP'], + 5214002 => ['nome' => 'Mozarlândia', 'uf' => 'GO'], + 1504901 => ['nome' => 'Muaná', 'uf' => 'PA'], + 1400308 => ['nome' => 'Mucajaí', 'uf' => 'RR'], + 2309003 => ['nome' => 'Mucambo', 'uf' => 'CE'], + 2921906 => ['nome' => 'Mucugê', 'uf' => 'BA'], + 4312609 => ['nome' => 'Muçum', 'uf' => 'RS'], + 2922003 => ['nome' => 'Mucuri', 'uf' => 'BA'], + 3203601 => ['nome' => 'Mucurici', 'uf' => 'ES'], + 4312617 => ['nome' => 'Muitos Capões', 'uf' => 'RS'], + 4312625 => ['nome' => 'Muliterno', 'uf' => 'RS'], + 2509800 => ['nome' => 'Mulungu', 'uf' => 'PB'], + 2309102 => ['nome' => 'Mulungu', 'uf' => 'CE'], + 2922052 => ['nome' => 'Mulungu do Morro', 'uf' => 'BA'], + 2922102 => ['nome' => 'Mundo Novo', 'uf' => 'BA'], + 5005681 => ['nome' => 'Mundo Novo', 'uf' => 'MS'], + 5214051 => ['nome' => 'Mundo Novo', 'uf' => 'GO'], + 3143807 => ['nome' => 'Munhoz', 'uf' => 'MG'], + 4116307 => ['nome' => 'Munhoz de Melo', 'uf' => 'PR'], + 2922201 => ['nome' => 'Muniz Ferreira', 'uf' => 'BA'], + 3203700 => ['nome' => 'Muniz Freire', 'uf' => 'ES'], + 2922250 => ['nome' => 'Muquém de São Francisco', 'uf' => 'BA'], + 3203809 => ['nome' => 'Muqui', 'uf' => 'ES'], + 3143906 => ['nome' => 'Muriaé', 'uf' => 'MG'], + 2804300 => ['nome' => 'Muribeca', 'uf' => 'SE'], + 2705507 => ['nome' => 'Murici', 'uf' => 'AL'], + 2206696 => ['nome' => 'Murici dos Portelas', 'uf' => 'PI'], + 1713957 => ['nome' => 'Muricilândia', 'uf' => 'TO'], + 2922300 => ['nome' => 'Muritiba', 'uf' => 'BA'], + 3532108 => ['nome' => 'Murutinga do Sul', 'uf' => 'SP'], + 2922409 => ['nome' => 'Mutuípe', 'uf' => 'BA'], + 3144003 => ['nome' => 'Mutum', 'uf' => 'MG'], + 5214101 => ['nome' => 'Mutunópolis', 'uf' => 'GO'], + 3144102 => ['nome' => 'Muzambinho', 'uf' => 'MG'], + 3144201 => ['nome' => 'Nacip Raydan', 'uf' => 'MG'], + 3532157 => ['nome' => 'Nantes', 'uf' => 'SP'], + 3144300 => ['nome' => 'Nanuque', 'uf' => 'MG'], + 4312658 => ['nome' => 'Não-Me-Toque', 'uf' => 'RS'], + 3144359 => ['nome' => 'Naque', 'uf' => 'MG'], + 3532207 => ['nome' => 'Narandiba', 'uf' => 'SP'], + 2408102 => ['nome' => 'Natal', 'uf' => 'RN'], + 3144375 => ['nome' => 'Natalândia', 'uf' => 'MG'], + 3144409 => ['nome' => 'Natércia', 'uf' => 'MG'], + 1714203 => ['nome' => 'Natividade', 'uf' => 'TO'], + 3303104 => ['nome' => 'Natividade', 'uf' => 'RJ'], + 3532306 => ['nome' => 'Natividade da Serra', 'uf' => 'SP'], + 2509909 => ['nome' => 'Natuba', 'uf' => 'PB'], + 4211306 => ['nome' => 'Navegantes', 'uf' => 'SC'], + 5005707 => ['nome' => 'Naviraí', 'uf' => 'MS'], + 2922508 => ['nome' => 'Nazaré', 'uf' => 'BA'], + 1714302 => ['nome' => 'Nazaré', 'uf' => 'TO'], + 2609501 => ['nome' => 'Nazaré da Mata', 'uf' => 'PE'], + 2206704 => ['nome' => 'Nazaré do Piauí', 'uf' => 'PI'], + 3532405 => ['nome' => 'Nazaré Paulista', 'uf' => 'SP'], + 3144508 => ['nome' => 'Nazareno', 'uf' => 'MG'], + 2510006 => ['nome' => 'Nazarezinho', 'uf' => 'PB'], + 2206720 => ['nome' => 'Nazária', 'uf' => 'PI'], + 5214408 => ['nome' => 'Nazário', 'uf' => 'GO'], + 2804409 => ['nome' => 'Neópolis', 'uf' => 'SE'], + 3144607 => ['nome' => 'Nepomuceno', 'uf' => 'MG'], + 5214507 => ['nome' => 'Nerópolis', 'uf' => 'GO'], + 3532504 => ['nome' => 'Neves Paulista', 'uf' => 'SP'], + 1303007 => ['nome' => 'Nhamundá', 'uf' => 'AM'], + 3532603 => ['nome' => 'Nhandeara', 'uf' => 'SP'], + 4312674 => ['nome' => 'Nicolau Vergueiro', 'uf' => 'RS'], + 2922607 => ['nome' => 'Nilo Peçanha', 'uf' => 'BA'], + 3303203 => ['nome' => 'Nilópolis', 'uf' => 'RJ'], + 2107209 => ['nome' => 'Nina Rodrigues', 'uf' => 'MA'], + 3144656 => ['nome' => 'Ninheira', 'uf' => 'MG'], + 5005806 => ['nome' => 'Nioaque', 'uf' => 'MS'], + 3532702 => ['nome' => 'Nipoã', 'uf' => 'SP'], + 5214606 => ['nome' => 'Niquelândia', 'uf' => 'GO'], + 2408201 => ['nome' => 'Nísia Floresta', 'uf' => 'RN'], + 3303302 => ['nome' => 'Niterói', 'uf' => 'RJ'], + 5105903 => ['nome' => 'Nobres', 'uf' => 'MT'], + 4312708 => ['nome' => 'Nonoai', 'uf' => 'RS'], + 2922656 => ['nome' => 'Nordestina', 'uf' => 'BA'], + 1400407 => ['nome' => 'Normandia', 'uf' => 'RR'], + 5106000 => ['nome' => 'Nortelândia', 'uf' => 'MT'], + 2804458 => ['nome' => 'Nossa Senhora Aparecida', 'uf' => 'SE'], + 2804508 => ['nome' => 'Nossa Senhora da Glória', 'uf' => 'SE'], + 2804607 => ['nome' => 'Nossa Senhora das Dores', 'uf' => 'SE'], + 4116406 => ['nome' => 'Nossa Senhora das Graças', 'uf' => 'PR'], + 2804706 => ['nome' => 'Nossa Senhora de Lourdes', 'uf' => 'SE'], + 2206753 => ['nome' => 'Nossa Senhora de Nazaré', 'uf' => 'PI'], + 5106109 => ['nome' => 'Nossa Senhora do Livramento', 'uf' => 'MT'], + 2804805 => ['nome' => 'Nossa Senhora do Socorro', 'uf' => 'SE'], + 2206803 => ['nome' => 'Nossa Senhora dos Remédios', 'uf' => 'PI'], + 3532801 => ['nome' => 'Nova Aliança', 'uf' => 'SP'], + 4116505 => ['nome' => 'Nova Aliança do Ivaí', 'uf' => 'PR'], + 4312757 => ['nome' => 'Nova Alvorada', 'uf' => 'RS'], + 5006002 => ['nome' => 'Nova Alvorada do Sul', 'uf' => 'MS'], + 5214705 => ['nome' => 'Nova América', 'uf' => 'GO'], + 4116604 => ['nome' => 'Nova América da Colina', 'uf' => 'PR'], + 5006200 => ['nome' => 'Nova Andradina', 'uf' => 'MS'], + 4312807 => ['nome' => 'Nova Araçá', 'uf' => 'RS'], + 4116703 => ['nome' => 'Nova Aurora', 'uf' => 'PR'], + 5214804 => ['nome' => 'Nova Aurora', 'uf' => 'GO'], + 5106158 => ['nome' => 'Nova Bandeirantes', 'uf' => 'MT'], + 4312906 => ['nome' => 'Nova Bassano', 'uf' => 'RS'], + 3144672 => ['nome' => 'Nova Belém', 'uf' => 'MG'], + 4312955 => ['nome' => 'Nova Boa Vista', 'uf' => 'RS'], + 5106208 => ['nome' => 'Nova Brasilândia', 'uf' => 'MT'], + 1100148 => ['nome' => 'Nova Brasilândia D\'Oeste', 'uf' => 'RO'], + 4313003 => ['nome' => 'Nova Bréscia', 'uf' => 'RS'], + 3532827 => ['nome' => 'Nova Campina', 'uf' => 'SP'], + 2922706 => ['nome' => 'Nova Canaã', 'uf' => 'BA'], + 5106216 => ['nome' => 'Nova Canaã do Norte', 'uf' => 'MT'], + 3532843 => ['nome' => 'Nova Canaã Paulista', 'uf' => 'SP'], + 4313011 => ['nome' => 'Nova Candelária', 'uf' => 'RS'], + 4116802 => ['nome' => 'Nova Cantu', 'uf' => 'PR'], + 3532868 => ['nome' => 'Nova Castilho', 'uf' => 'SP'], + 2107258 => ['nome' => 'Nova Colinas', 'uf' => 'MA'], + 5214838 => ['nome' => 'Nova Crixás', 'uf' => 'GO'], + 2408300 => ['nome' => 'Nova Cruz', 'uf' => 'RN'], + 3144706 => ['nome' => 'Nova Era', 'uf' => 'MG'], + 4211405 => ['nome' => 'Nova Erechim', 'uf' => 'SC'], + 4116901 => ['nome' => 'Nova Esperança', 'uf' => 'PR'], + 1504950 => ['nome' => 'Nova Esperança do Piriá', 'uf' => 'PA'], + 4116950 => ['nome' => 'Nova Esperança do Sudoeste', 'uf' => 'PR'], + 4313037 => ['nome' => 'Nova Esperança do Sul', 'uf' => 'RS'], + 3532900 => ['nome' => 'Nova Europa', 'uf' => 'SP'], + 4117008 => ['nome' => 'Nova Fátima', 'uf' => 'PR'], + 2922730 => ['nome' => 'Nova Fátima', 'uf' => 'BA'], + 2510105 => ['nome' => 'Nova Floresta', 'uf' => 'PB'], + 3303401 => ['nome' => 'Nova Friburgo', 'uf' => 'RJ'], + 5214861 => ['nome' => 'Nova Glória', 'uf' => 'GO'], + 3533007 => ['nome' => 'Nova Granada', 'uf' => 'SP'], + 5108808 => ['nome' => 'Nova Guarita', 'uf' => 'MT'], + 3533106 => ['nome' => 'Nova Guataporanga', 'uf' => 'SP'], + 4313060 => ['nome' => 'Nova Hartz', 'uf' => 'RS'], + 2922755 => ['nome' => 'Nova Ibiá', 'uf' => 'BA'], + 3303500 => ['nome' => 'Nova Iguaçu', 'uf' => 'RJ'], + 5214879 => ['nome' => 'Nova Iguaçu de Goiás', 'uf' => 'GO'], + 3533205 => ['nome' => 'Nova Independência', 'uf' => 'SP'], + 2107308 => ['nome' => 'Nova Iorque', 'uf' => 'MA'], + 1504976 => ['nome' => 'Nova Ipixuna', 'uf' => 'PA'], + 4211454 => ['nome' => 'Nova Itaberaba', 'uf' => 'SC'], + 2922805 => ['nome' => 'Nova Itarana', 'uf' => 'BA'], + 5106182 => ['nome' => 'Nova Lacerda', 'uf' => 'MT'], + 4117057 => ['nome' => 'Nova Laranjeiras', 'uf' => 'PR'], + 3144805 => ['nome' => 'Nova Lima', 'uf' => 'MG'], + 4117107 => ['nome' => 'Nova Londrina', 'uf' => 'PR'], + 3533304 => ['nome' => 'Nova Luzitânia', 'uf' => 'SP'], + 1100338 => ['nome' => 'Nova Mamoré', 'uf' => 'RO'], + 5108857 => ['nome' => 'Nova Marilândia', 'uf' => 'MT'], + 5108907 => ['nome' => 'Nova Maringá', 'uf' => 'MT'], + 3144904 => ['nome' => 'Nova Módica', 'uf' => 'MG'], + 5108956 => ['nome' => 'Nova Monte Verde', 'uf' => 'MT'], + 5106224 => ['nome' => 'Nova Mutum', 'uf' => 'MT'], + 5106174 => ['nome' => 'Nova Nazaré', 'uf' => 'MT'], + 3533403 => ['nome' => 'Nova Odessa', 'uf' => 'SP'], + 4117206 => ['nome' => 'Nova Olímpia', 'uf' => 'PR'], + 5106232 => ['nome' => 'Nova Olímpia', 'uf' => 'MT'], + 1714880 => ['nome' => 'Nova Olinda', 'uf' => 'TO'], + 2309201 => ['nome' => 'Nova Olinda', 'uf' => 'CE'], + 2510204 => ['nome' => 'Nova Olinda', 'uf' => 'PB'], + 2107357 => ['nome' => 'Nova Olinda do Maranhão', 'uf' => 'MA'], + 1303106 => ['nome' => 'Nova Olinda do Norte', 'uf' => 'AM'], + 4313086 => ['nome' => 'Nova Pádua', 'uf' => 'RS'], + 4313102 => ['nome' => 'Nova Palma', 'uf' => 'RS'], + 2510303 => ['nome' => 'Nova Palmeira', 'uf' => 'PB'], + 4313201 => ['nome' => 'Nova Petrópolis', 'uf' => 'RS'], + 3145000 => ['nome' => 'Nova Ponte', 'uf' => 'MG'], + 3145059 => ['nome' => 'Nova Porteirinha', 'uf' => 'MG'], + 4313300 => ['nome' => 'Nova Prata', 'uf' => 'RS'], + 4117255 => ['nome' => 'Nova Prata do Iguaçu', 'uf' => 'PR'], + 4313334 => ['nome' => 'Nova Ramada', 'uf' => 'RS'], + 2922854 => ['nome' => 'Nova Redenção', 'uf' => 'BA'], + 3145109 => ['nome' => 'Nova Resende', 'uf' => 'MG'], + 5214903 => ['nome' => 'Nova Roma', 'uf' => 'GO'], + 4313359 => ['nome' => 'Nova Roma do Sul', 'uf' => 'RS'], + 1715002 => ['nome' => 'Nova Rosalândia', 'uf' => 'TO'], + 2309300 => ['nome' => 'Nova Russas', 'uf' => 'CE'], + 4117214 => ['nome' => 'Nova Santa Bárbara', 'uf' => 'PR'], + 5106190 => ['nome' => 'Nova Santa Helena', 'uf' => 'MT'], + 4313375 => ['nome' => 'Nova Santa Rita', 'uf' => 'RS'], + 2207959 => ['nome' => 'Nova Santa Rita', 'uf' => 'PI'], + 4117222 => ['nome' => 'Nova Santa Rosa', 'uf' => 'PR'], + 3145208 => ['nome' => 'Nova Serrana', 'uf' => 'MG'], + 2922904 => ['nome' => 'Nova Soure', 'uf' => 'BA'], + 4117271 => ['nome' => 'Nova Tebas', 'uf' => 'PR'], + 1505007 => ['nome' => 'Nova Timboteua', 'uf' => 'PA'], + 4211504 => ['nome' => 'Nova Trento', 'uf' => 'SC'], + 5106240 => ['nome' => 'Nova Ubiratã', 'uf' => 'MT'], + 3136603 => ['nome' => 'Nova União', 'uf' => 'MG'], + 1101435 => ['nome' => 'Nova União', 'uf' => 'RO'], + 3203908 => ['nome' => 'Nova Venécia', 'uf' => 'ES'], + 4211603 => ['nome' => 'Nova Veneza', 'uf' => 'SC'], + 5215009 => ['nome' => 'Nova Veneza', 'uf' => 'GO'], + 2923001 => ['nome' => 'Nova Viçosa', 'uf' => 'BA'], + 5106257 => ['nome' => 'Nova Xavantina', 'uf' => 'MT'], + 3533254 => ['nome' => 'Novais', 'uf' => 'SP'], + 1715101 => ['nome' => 'Novo Acordo', 'uf' => 'TO'], + 1303205 => ['nome' => 'Novo Airão', 'uf' => 'AM'], + 1715150 => ['nome' => 'Novo Alegre', 'uf' => 'TO'], + 1303304 => ['nome' => 'Novo Aripuanã', 'uf' => 'AM'], + 4313490 => ['nome' => 'Novo Barreiro', 'uf' => 'RS'], + 5215207 => ['nome' => 'Novo Brasil', 'uf' => 'GO'], + 4313391 => ['nome' => 'Novo Cabrais', 'uf' => 'RS'], + 3145307 => ['nome' => 'Novo Cruzeiro', 'uf' => 'MG'], + 5215231 => ['nome' => 'Novo Gama', 'uf' => 'GO'], + 4313409 => ['nome' => 'Novo Hamburgo', 'uf' => 'RS'], + 4211652 => ['nome' => 'Novo Horizonte', 'uf' => 'SC'], + 3533502 => ['nome' => 'Novo Horizonte', 'uf' => 'SP'], + 2923035 => ['nome' => 'Novo Horizonte', 'uf' => 'BA'], + 5106273 => ['nome' => 'Novo Horizonte do Norte', 'uf' => 'MT'], + 1100502 => ['nome' => 'Novo Horizonte do Oeste', 'uf' => 'RO'], + 5006259 => ['nome' => 'Novo Horizonte do Sul', 'uf' => 'MS'], + 4117297 => ['nome' => 'Novo Itacolomi', 'uf' => 'PR'], + 1715259 => ['nome' => 'Novo Jardim', 'uf' => 'TO'], + 2705606 => ['nome' => 'Novo Lino', 'uf' => 'AL'], + 4313425 => ['nome' => 'Novo Machado', 'uf' => 'RS'], + 5106265 => ['nome' => 'Novo Mundo', 'uf' => 'MT'], + 2309409 => ['nome' => 'Novo Oriente', 'uf' => 'CE'], + 3145356 => ['nome' => 'Novo Oriente de Minas', 'uf' => 'MG'], + 2206902 => ['nome' => 'Novo Oriente do Piauí', 'uf' => 'PI'], + 5215256 => ['nome' => 'Novo Planalto', 'uf' => 'GO'], + 1505031 => ['nome' => 'Novo Progresso', 'uf' => 'PA'], + 1505064 => ['nome' => 'Novo Repartimento', 'uf' => 'PA'], + 2206951 => ['nome' => 'Novo Santo Antônio', 'uf' => 'PI'], + 5106315 => ['nome' => 'Novo Santo Antônio', 'uf' => 'MT'], + 5106281 => ['nome' => 'Novo São Joaquim', 'uf' => 'MT'], + 4313441 => ['nome' => 'Novo Tiradentes', 'uf' => 'RS'], + 2923050 => ['nome' => 'Novo Triunfo', 'uf' => 'BA'], + 4313466 => ['nome' => 'Novo Xingu', 'uf' => 'RS'], + 3145372 => ['nome' => 'Novorizonte', 'uf' => 'MG'], + 3533601 => ['nome' => 'Nuporanga', 'uf' => 'SP'], + 1505106 => ['nome' => 'Óbidos', 'uf' => 'PA'], + 2309458 => ['nome' => 'Ocara', 'uf' => 'CE'], + 3533700 => ['nome' => 'Ocauçu', 'uf' => 'SP'], + 2207009 => ['nome' => 'Oeiras', 'uf' => 'PI'], + 1505205 => ['nome' => 'Oeiras do Pará', 'uf' => 'PA'], + 1600501 => ['nome' => 'Oiapoque', 'uf' => 'AP'], + 3145406 => ['nome' => 'Olaria', 'uf' => 'MG'], + 3533809 => ['nome' => 'Óleo', 'uf' => 'SP'], + 2510402 => ['nome' => 'Olho d\'Água', 'uf' => 'PB'], + 2107407 => ['nome' => 'Olho d\'Água das Cunhãs', 'uf' => 'MA'], + 2705705 => ['nome' => 'Olho d\'Água das Flores', 'uf' => 'AL'], + 2705804 => ['nome' => 'Olho d\'Água do Casado', 'uf' => 'AL'], + 2207108 => ['nome' => 'Olho D\'Água do Piauí', 'uf' => 'PI'], + 2705903 => ['nome' => 'Olho d\'Água Grande', 'uf' => 'AL'], + 2408409 => ['nome' => 'Olho-d\'Água do Borges', 'uf' => 'RN'], + 3145455 => ['nome' => 'Olhos d\'Água', 'uf' => 'MG'], + 3533908 => ['nome' => 'Olímpia', 'uf' => 'SP'], + 3145505 => ['nome' => 'Olímpio Noronha', 'uf' => 'MG'], + 2609600 => ['nome' => 'Olinda', 'uf' => 'PE'], + 2107456 => ['nome' => 'Olinda Nova do Maranhão', 'uf' => 'MA'], + 2923100 => ['nome' => 'Olindina', 'uf' => 'BA'], + 2510501 => ['nome' => 'Olivedos', 'uf' => 'PB'], + 3145604 => ['nome' => 'Oliveira', 'uf' => 'MG'], + 1715507 => ['nome' => 'Oliveira de Fátima', 'uf' => 'TO'], + 2923209 => ['nome' => 'Oliveira dos Brejinhos', 'uf' => 'BA'], + 3145703 => ['nome' => 'Oliveira Fortes', 'uf' => 'MG'], + 2706000 => ['nome' => 'Olivença', 'uf' => 'AL'], + 3145802 => ['nome' => 'Onça de Pitangui', 'uf' => 'MG'], + 3534005 => ['nome' => 'Onda Verde', 'uf' => 'SP'], + 3145851 => ['nome' => 'Oratórios', 'uf' => 'MG'], + 3534104 => ['nome' => 'Oriente', 'uf' => 'SP'], + 3534203 => ['nome' => 'Orindiúva', 'uf' => 'SP'], + 1505304 => ['nome' => 'Oriximiná', 'uf' => 'PA'], + 3145877 => ['nome' => 'Orizânia', 'uf' => 'MG'], + 5215306 => ['nome' => 'Orizona', 'uf' => 'GO'], + 3534302 => ['nome' => 'Orlândia', 'uf' => 'SP'], + 4211702 => ['nome' => 'Orleans', 'uf' => 'SC'], + 2609709 => ['nome' => 'Orobó', 'uf' => 'PE'], + 2609808 => ['nome' => 'Orocó', 'uf' => 'PE'], + 2309508 => ['nome' => 'Orós', 'uf' => 'CE'], + 4117305 => ['nome' => 'Ortigueira', 'uf' => 'PR'], + 3534401 => ['nome' => 'Osasco', 'uf' => 'SP'], + 3534500 => ['nome' => 'Oscar Bressane', 'uf' => 'SP'], + 4313508 => ['nome' => 'Osório', 'uf' => 'RS'], + 3534609 => ['nome' => 'Osvaldo Cruz', 'uf' => 'SP'], + 4211751 => ['nome' => 'Otacílio Costa', 'uf' => 'SC'], + 1505403 => ['nome' => 'Ourém', 'uf' => 'PA'], + 2923308 => ['nome' => 'Ouriçangas', 'uf' => 'BA'], + 2609907 => ['nome' => 'Ouricuri', 'uf' => 'PE'], + 1505437 => ['nome' => 'Ourilândia do Norte', 'uf' => 'PA'], + 3534708 => ['nome' => 'Ourinhos', 'uf' => 'SP'], + 4117404 => ['nome' => 'Ourizona', 'uf' => 'PR'], + 4211801 => ['nome' => 'Ouro', 'uf' => 'SC'], + 3145901 => ['nome' => 'Ouro Branco', 'uf' => 'MG'], + 2408508 => ['nome' => 'Ouro Branco', 'uf' => 'RN'], + 2706109 => ['nome' => 'Ouro Branco', 'uf' => 'AL'], + 3146008 => ['nome' => 'Ouro Fino', 'uf' => 'MG'], + 3146107 => ['nome' => 'Ouro Preto', 'uf' => 'MG'], + 1100155 => ['nome' => 'Ouro Preto do Oeste', 'uf' => 'RO'], + 2510600 => ['nome' => 'Ouro Velho', 'uf' => 'PB'], + 4211850 => ['nome' => 'Ouro Verde', 'uf' => 'SC'], + 3534807 => ['nome' => 'Ouro Verde', 'uf' => 'SP'], + 5215405 => ['nome' => 'Ouro Verde de Goiás', 'uf' => 'GO'], + 3146206 => ['nome' => 'Ouro Verde de Minas', 'uf' => 'MG'], + 4117453 => ['nome' => 'Ouro Verde do Oeste', 'uf' => 'PR'], + 3534757 => ['nome' => 'Ouroeste', 'uf' => 'SP'], + 2923357 => ['nome' => 'Ourolândia', 'uf' => 'BA'], + 5215504 => ['nome' => 'Ouvidor', 'uf' => 'GO'], + 3534906 => ['nome' => 'Pacaembu', 'uf' => 'SP'], + 1505486 => ['nome' => 'Pacajá', 'uf' => 'PA'], + 2309607 => ['nome' => 'Pacajus', 'uf' => 'CE'], + 1400456 => ['nome' => 'Pacaraima', 'uf' => 'RR'], + 2309706 => ['nome' => 'Pacatuba', 'uf' => 'CE'], + 2804904 => ['nome' => 'Pacatuba', 'uf' => 'SE'], + 2107506 => ['nome' => 'Paço do Lumiar', 'uf' => 'MA'], + 2309805 => ['nome' => 'Pacoti', 'uf' => 'CE'], + 2309904 => ['nome' => 'Pacujá', 'uf' => 'CE'], + 5215603 => ['nome' => 'Padre Bernardo', 'uf' => 'GO'], + 3146255 => ['nome' => 'Padre Carvalho', 'uf' => 'MG'], + 2207207 => ['nome' => 'Padre Marcos', 'uf' => 'PI'], + 3146305 => ['nome' => 'Padre Paraíso', 'uf' => 'MG'], + 2207306 => ['nome' => 'Paes Landim', 'uf' => 'PI'], + 3146552 => ['nome' => 'Pai Pedro', 'uf' => 'MG'], + 4211876 => ['nome' => 'Paial', 'uf' => 'SC'], + 4117503 => ['nome' => 'Paiçandu', 'uf' => 'PR'], + 4313607 => ['nome' => 'Paim Filho', 'uf' => 'RS'], + 3146404 => ['nome' => 'Paineiras', 'uf' => 'MG'], + 4211892 => ['nome' => 'Painel', 'uf' => 'SC'], + 3146503 => ['nome' => 'Pains', 'uf' => 'MG'], + 3146602 => ['nome' => 'Paiva', 'uf' => 'MG'], + 2207355 => ['nome' => 'Pajeú do Piauí', 'uf' => 'PI'], + 2706208 => ['nome' => 'Palestina', 'uf' => 'AL'], + 3535002 => ['nome' => 'Palestina', 'uf' => 'SP'], + 5215652 => ['nome' => 'Palestina de Goiás', 'uf' => 'GO'], + 1505494 => ['nome' => 'Palestina do Pará', 'uf' => 'PA'], + 2310001 => ['nome' => 'Palhano', 'uf' => 'CE'], + 4211900 => ['nome' => 'Palhoça', 'uf' => 'SC'], + 3146701 => ['nome' => 'Palma', 'uf' => 'MG'], + 4212007 => ['nome' => 'Palma Sola', 'uf' => 'SC'], + 2310100 => ['nome' => 'Palmácia', 'uf' => 'CE'], + 2610004 => ['nome' => 'Palmares', 'uf' => 'PE'], + 4313656 => ['nome' => 'Palmares do Sul', 'uf' => 'RS'], + 3535101 => ['nome' => 'Palmares Paulista', 'uf' => 'SP'], + 4117602 => ['nome' => 'Palmas', 'uf' => 'PR'], + 1721000 => ['nome' => 'Palmas', 'uf' => 'TO'], + 2923407 => ['nome' => 'Palmas de Monte Alto', 'uf' => 'BA'], + 4117701 => ['nome' => 'Palmeira', 'uf' => 'PR'], + 4212056 => ['nome' => 'Palmeira', 'uf' => 'SC'], + 3535200 => ['nome' => 'Palmeira d\'Oeste', 'uf' => 'SP'], + 4313706 => ['nome' => 'Palmeira das Missões', 'uf' => 'RS'], + 2207405 => ['nome' => 'Palmeira do Piauí', 'uf' => 'PI'], + 2706307 => ['nome' => 'Palmeira dos Índios', 'uf' => 'AL'], + 2207504 => ['nome' => 'Palmeirais', 'uf' => 'PI'], + 2107605 => ['nome' => 'Palmeirândia', 'uf' => 'MA'], + 1715705 => ['nome' => 'Palmeirante', 'uf' => 'TO'], + 2923506 => ['nome' => 'Palmeiras', 'uf' => 'BA'], + 5215702 => ['nome' => 'Palmeiras de Goiás', 'uf' => 'GO'], + 1713809 => ['nome' => 'Palmeiras do Tocantins', 'uf' => 'TO'], + 2610103 => ['nome' => 'Palmeirina', 'uf' => 'PE'], + 1715754 => ['nome' => 'Palmeirópolis', 'uf' => 'TO'], + 5215801 => ['nome' => 'Palmelo', 'uf' => 'GO'], + 5215900 => ['nome' => 'Palminópolis', 'uf' => 'GO'], + 3535309 => ['nome' => 'Palmital', 'uf' => 'SP'], + 4117800 => ['nome' => 'Palmital', 'uf' => 'PR'], + 4313805 => ['nome' => 'Palmitinho', 'uf' => 'RS'], + 4212106 => ['nome' => 'Palmitos', 'uf' => 'SC'], + 3146750 => ['nome' => 'Palmópolis', 'uf' => 'MG'], + 4117909 => ['nome' => 'Palotina', 'uf' => 'PR'], + 5216007 => ['nome' => 'Panamá', 'uf' => 'GO'], + 4313904 => ['nome' => 'Panambi', 'uf' => 'RS'], + 3204005 => ['nome' => 'Pancas', 'uf' => 'ES'], + 2610202 => ['nome' => 'Panelas', 'uf' => 'PE'], + 3535408 => ['nome' => 'Panorama', 'uf' => 'SP'], + 4313953 => ['nome' => 'Pantano Grande', 'uf' => 'RS'], + 2706406 => ['nome' => 'Pão de Açúcar', 'uf' => 'AL'], + 3146909 => ['nome' => 'Papagaios', 'uf' => 'MG'], + 4212205 => ['nome' => 'Papanduva', 'uf' => 'SC'], + 2207553 => ['nome' => 'Paquetá', 'uf' => 'PI'], + 3147105 => ['nome' => 'Pará de Minas', 'uf' => 'MG'], + 3303609 => ['nome' => 'Paracambi', 'uf' => 'RJ'], + 3147006 => ['nome' => 'Paracatu', 'uf' => 'MG'], + 2310209 => ['nome' => 'Paracuru', 'uf' => 'CE'], + 1505502 => ['nome' => 'Paragominas', 'uf' => 'PA'], + 3147204 => ['nome' => 'Paraguaçu', 'uf' => 'MG'], + 3535507 => ['nome' => 'Paraguaçu Paulista', 'uf' => 'SP'], + 4314001 => ['nome' => 'Paraí', 'uf' => 'RS'], + 3303708 => ['nome' => 'Paraíba do Sul', 'uf' => 'RJ'], + 2107704 => ['nome' => 'Paraibano', 'uf' => 'MA'], + 3535606 => ['nome' => 'Paraibuna', 'uf' => 'SP'], + 2310258 => ['nome' => 'Paraipaba', 'uf' => 'CE'], + 3535705 => ['nome' => 'Paraíso', 'uf' => 'SP'], + 4212239 => ['nome' => 'Paraíso', 'uf' => 'SC'], + 5006275 => ['nome' => 'Paraíso das Águas', 'uf' => 'MS'], + 4118006 => ['nome' => 'Paraíso do Norte', 'uf' => 'PR'], + 4314027 => ['nome' => 'Paraíso do Sul', 'uf' => 'RS'], + 1716109 => ['nome' => 'Paraíso do Tocantins', 'uf' => 'TO'], + 3147303 => ['nome' => 'Paraisópolis', 'uf' => 'MG'], + 2310308 => ['nome' => 'Parambu', 'uf' => 'CE'], + 2923605 => ['nome' => 'Paramirim', 'uf' => 'BA'], + 2310407 => ['nome' => 'Paramoti', 'uf' => 'CE'], + 1716208 => ['nome' => 'Paranã', 'uf' => 'TO'], + 2408607 => ['nome' => 'Paraná', 'uf' => 'RN'], + 4118105 => ['nome' => 'Paranacity', 'uf' => 'PR'], + 4118204 => ['nome' => 'Paranaguá', 'uf' => 'PR'], + 5006309 => ['nome' => 'Paranaíba', 'uf' => 'MS'], + 5216304 => ['nome' => 'Paranaiguara', 'uf' => 'GO'], + 5106299 => ['nome' => 'Paranaíta', 'uf' => 'MT'], + 3535804 => ['nome' => 'Paranapanema', 'uf' => 'SP'], + 4118303 => ['nome' => 'Paranapoema', 'uf' => 'PR'], + 3535903 => ['nome' => 'Paranapuã', 'uf' => 'SP'], + 2610301 => ['nome' => 'Paranatama', 'uf' => 'PE'], + 5106307 => ['nome' => 'Paranatinga', 'uf' => 'MT'], + 4118402 => ['nome' => 'Paranavaí', 'uf' => 'PR'], + 5006358 => ['nome' => 'Paranhos', 'uf' => 'MS'], + 3147402 => ['nome' => 'Paraopeba', 'uf' => 'MG'], + 3536000 => ['nome' => 'Parapuã', 'uf' => 'SP'], + 2510659 => ['nome' => 'Parari', 'uf' => 'PB'], + 2923704 => ['nome' => 'Paratinga', 'uf' => 'BA'], + 3303807 => ['nome' => 'Paraty', 'uf' => 'RJ'], + 2408706 => ['nome' => 'Paraú', 'uf' => 'RN'], + 1505536 => ['nome' => 'Parauapebas', 'uf' => 'PA'], + 5216403 => ['nome' => 'Paraúna', 'uf' => 'GO'], + 2408805 => ['nome' => 'Parazinho', 'uf' => 'RN'], + 3536109 => ['nome' => 'Pardinho', 'uf' => 'SP'], + 4314035 => ['nome' => 'Pareci Novo', 'uf' => 'RS'], + 1101450 => ['nome' => 'Parecis', 'uf' => 'RO'], + 2408904 => ['nome' => 'Parelhas', 'uf' => 'RN'], + 2706422 => ['nome' => 'Pariconha', 'uf' => 'AL'], + 1303403 => ['nome' => 'Parintins', 'uf' => 'AM'], + 2923803 => ['nome' => 'Paripiranga', 'uf' => 'BA'], + 2706448 => ['nome' => 'Paripueira', 'uf' => 'AL'], + 3536208 => ['nome' => 'Pariquera-Açu', 'uf' => 'SP'], + 3536257 => ['nome' => 'Parisi', 'uf' => 'SP'], + 2207603 => ['nome' => 'Parnaguá', 'uf' => 'PI'], + 2207702 => ['nome' => 'Parnaíba', 'uf' => 'PI'], + 2403251 => ['nome' => 'Parnamirim', 'uf' => 'RN'], + 2610400 => ['nome' => 'Parnamirim', 'uf' => 'PE'], + 2107803 => ['nome' => 'Parnarama', 'uf' => 'MA'], + 4314050 => ['nome' => 'Parobé', 'uf' => 'RS'], + 2409100 => ['nome' => 'Passa e Fica', 'uf' => 'RN'], + 3147600 => ['nome' => 'Passa Quatro', 'uf' => 'MG'], + 4314068 => ['nome' => 'Passa Sete', 'uf' => 'RS'], + 3147709 => ['nome' => 'Passa Tempo', 'uf' => 'MG'], + 3147808 => ['nome' => 'Passa-Vinte', 'uf' => 'MG'], + 3147501 => ['nome' => 'Passabém', 'uf' => 'MG'], + 2409209 => ['nome' => 'Passagem', 'uf' => 'RN'], + 2510709 => ['nome' => 'Passagem', 'uf' => 'PB'], + 2107902 => ['nome' => 'Passagem Franca', 'uf' => 'MA'], + 2207751 => ['nome' => 'Passagem Franca do Piauí', 'uf' => 'PI'], + 2610509 => ['nome' => 'Passira', 'uf' => 'PE'], + 2706505 => ['nome' => 'Passo de Camaragibe', 'uf' => 'AL'], + 4212254 => ['nome' => 'Passo de Torres', 'uf' => 'SC'], + 4314076 => ['nome' => 'Passo do Sobrado', 'uf' => 'RS'], + 4314100 => ['nome' => 'Passo Fundo', 'uf' => 'RS'], + 3147907 => ['nome' => 'Passos', 'uf' => 'MG'], + 4212270 => ['nome' => 'Passos Maia', 'uf' => 'SC'], + 2108009 => ['nome' => 'Pastos Bons', 'uf' => 'MA'], + 3147956 => ['nome' => 'Patis', 'uf' => 'MG'], + 4118451 => ['nome' => 'Pato Bragado', 'uf' => 'PR'], + 4118501 => ['nome' => 'Pato Branco', 'uf' => 'PR'], + 2510808 => ['nome' => 'Patos', 'uf' => 'PB'], + 3148004 => ['nome' => 'Patos de Minas', 'uf' => 'MG'], + 2207777 => ['nome' => 'Patos do Piauí', 'uf' => 'PI'], + 3148103 => ['nome' => 'Patrocínio', 'uf' => 'MG'], + 3148202 => ['nome' => 'Patrocínio do Muriaé', 'uf' => 'MG'], + 3536307 => ['nome' => 'Patrocínio Paulista', 'uf' => 'SP'], + 2409308 => ['nome' => 'Patu', 'uf' => 'RN'], + 3303856 => ['nome' => 'Paty do Alferes', 'uf' => 'RJ'], + 2923902 => ['nome' => 'Pau Brasil', 'uf' => 'BA'], + 1505551 => ['nome' => 'Pau d\'Arco', 'uf' => 'PA'], + 1716307 => ['nome' => 'Pau D\'Arco', 'uf' => 'TO'], + 2207793 => ['nome' => 'Pau D\'Arco do Piauí', 'uf' => 'PI'], + 2409407 => ['nome' => 'Pau dos Ferros', 'uf' => 'RN'], + 2610608 => ['nome' => 'Paudalho', 'uf' => 'PE'], + 1303502 => ['nome' => 'Pauini', 'uf' => 'AM'], + 3148301 => ['nome' => 'Paula Cândido', 'uf' => 'MG'], + 4118600 => ['nome' => 'Paula Freitas', 'uf' => 'PR'], + 3536406 => ['nome' => 'Paulicéia', 'uf' => 'SP'], + 3536505 => ['nome' => 'Paulínia', 'uf' => 'SP'], + 2108058 => ['nome' => 'Paulino Neves', 'uf' => 'MA'], + 2510907 => ['nome' => 'Paulista', 'uf' => 'PB'], + 2610707 => ['nome' => 'Paulista', 'uf' => 'PE'], + 2207801 => ['nome' => 'Paulistana', 'uf' => 'PI'], + 3536570 => ['nome' => 'Paulistânia', 'uf' => 'SP'], + 3148400 => ['nome' => 'Paulistas', 'uf' => 'MG'], + 2924009 => ['nome' => 'Paulo Afonso', 'uf' => 'BA'], + 4314134 => ['nome' => 'Paulo Bento', 'uf' => 'RS'], + 3536604 => ['nome' => 'Paulo de Faria', 'uf' => 'SP'], + 4118709 => ['nome' => 'Paulo Frontin', 'uf' => 'PR'], + 2706604 => ['nome' => 'Paulo Jacinto', 'uf' => 'AL'], + 4212304 => ['nome' => 'Paulo Lopes', 'uf' => 'SC'], + 2108108 => ['nome' => 'Paulo Ramos', 'uf' => 'MA'], + 3148509 => ['nome' => 'Pavão', 'uf' => 'MG'], + 4314159 => ['nome' => 'Paverama', 'uf' => 'RS'], + 2207850 => ['nome' => 'Pavussu', 'uf' => 'PI'], + 2924058 => ['nome' => 'Pé de Serra', 'uf' => 'BA'], + 4118808 => ['nome' => 'Peabiru', 'uf' => 'PR'], + 3148608 => ['nome' => 'Peçanha', 'uf' => 'MG'], + 3536703 => ['nome' => 'Pederneiras', 'uf' => 'SP'], + 2610806 => ['nome' => 'Pedra', 'uf' => 'PE'], + 3148707 => ['nome' => 'Pedra Azul', 'uf' => 'MG'], + 3536802 => ['nome' => 'Pedra Bela', 'uf' => 'SP'], + 3148756 => ['nome' => 'Pedra Bonita', 'uf' => 'MG'], + 2511004 => ['nome' => 'Pedra Branca', 'uf' => 'PB'], + 2310506 => ['nome' => 'Pedra Branca', 'uf' => 'CE'], + 1600154 => ['nome' => 'Pedra Branca do Amapari', 'uf' => 'AP'], + 3148806 => ['nome' => 'Pedra do Anta', 'uf' => 'MG'], + 3148905 => ['nome' => 'Pedra do Indaiá', 'uf' => 'MG'], + 3149002 => ['nome' => 'Pedra Dourada', 'uf' => 'MG'], + 2409506 => ['nome' => 'Pedra Grande', 'uf' => 'RN'], + 2511103 => ['nome' => 'Pedra Lavrada', 'uf' => 'PB'], + 2805000 => ['nome' => 'Pedra Mole', 'uf' => 'SE'], + 2409605 => ['nome' => 'Pedra Preta', 'uf' => 'RN'], + 5106372 => ['nome' => 'Pedra Preta', 'uf' => 'MT'], + 3149101 => ['nome' => 'Pedralva', 'uf' => 'MG'], + 3536901 => ['nome' => 'Pedranópolis', 'uf' => 'SP'], + 2924108 => ['nome' => 'Pedrão', 'uf' => 'BA'], + 4314175 => ['nome' => 'Pedras Altas', 'uf' => 'RS'], + 2511202 => ['nome' => 'Pedras de Fogo', 'uf' => 'PB'], + 3149150 => ['nome' => 'Pedras de Maria da Cruz', 'uf' => 'MG'], + 4212403 => ['nome' => 'Pedras Grandes', 'uf' => 'SC'], + 3537008 => ['nome' => 'Pedregulho', 'uf' => 'SP'], + 3537107 => ['nome' => 'Pedreira', 'uf' => 'SP'], + 2108207 => ['nome' => 'Pedreiras', 'uf' => 'MA'], + 2805109 => ['nome' => 'Pedrinhas', 'uf' => 'SE'], + 3537156 => ['nome' => 'Pedrinhas Paulista', 'uf' => 'SP'], + 3149200 => ['nome' => 'Pedrinópolis', 'uf' => 'MG'], + 1716505 => ['nome' => 'Pedro Afonso', 'uf' => 'TO'], + 2924207 => ['nome' => 'Pedro Alexandre', 'uf' => 'BA'], + 2409704 => ['nome' => 'Pedro Avelino', 'uf' => 'RN'], + 3204054 => ['nome' => 'Pedro Canário', 'uf' => 'ES'], + 3537206 => ['nome' => 'Pedro de Toledo', 'uf' => 'SP'], + 2108256 => ['nome' => 'Pedro do Rosário', 'uf' => 'MA'], + 5006408 => ['nome' => 'Pedro Gomes', 'uf' => 'MS'], + 2207900 => ['nome' => 'Pedro II', 'uf' => 'PI'], + 2207934 => ['nome' => 'Pedro Laurentino', 'uf' => 'PI'], + 3149309 => ['nome' => 'Pedro Leopoldo', 'uf' => 'MG'], + 4314209 => ['nome' => 'Pedro Osório', 'uf' => 'RS'], + 2512721 => ['nome' => 'Pedro Régis', 'uf' => 'PB'], + 3149408 => ['nome' => 'Pedro Teixeira', 'uf' => 'MG'], + 2409803 => ['nome' => 'Pedro Velho', 'uf' => 'RN'], + 1716604 => ['nome' => 'Peixe', 'uf' => 'TO'], + 1505601 => ['nome' => 'Peixe-Boi', 'uf' => 'PA'], + 5106422 => ['nome' => 'Peixoto de Azevedo', 'uf' => 'MT'], + 4314308 => ['nome' => 'Pejuçara', 'uf' => 'RS'], + 4314407 => ['nome' => 'Pelotas', 'uf' => 'RS'], + 2310605 => ['nome' => 'Penaforte', 'uf' => 'CE'], + 2108306 => ['nome' => 'Penalva', 'uf' => 'MA'], + 3537305 => ['nome' => 'Penápolis', 'uf' => 'SP'], + 2409902 => ['nome' => 'Pendências', 'uf' => 'RN'], + 2706703 => ['nome' => 'Penedo', 'uf' => 'AL'], + 4212502 => ['nome' => 'Penha', 'uf' => 'SC'], + 2310704 => ['nome' => 'Pentecoste', 'uf' => 'CE'], + 3149507 => ['nome' => 'Pequeri', 'uf' => 'MG'], + 3149606 => ['nome' => 'Pequi', 'uf' => 'MG'], + 1716653 => ['nome' => 'Pequizeiro', 'uf' => 'TO'], + 3149705 => ['nome' => 'Perdigão', 'uf' => 'MG'], + 3149804 => ['nome' => 'Perdizes', 'uf' => 'MG'], + 3149903 => ['nome' => 'Perdões', 'uf' => 'MG'], + 3537404 => ['nome' => 'Pereira Barreto', 'uf' => 'SP'], + 3537503 => ['nome' => 'Pereiras', 'uf' => 'SP'], + 2310803 => ['nome' => 'Pereiro', 'uf' => 'CE'], + 2108405 => ['nome' => 'Peri Mirim', 'uf' => 'MA'], + 3149952 => ['nome' => 'Periquito', 'uf' => 'MG'], + 4212601 => ['nome' => 'Peritiba', 'uf' => 'SC'], + 2108454 => ['nome' => 'Peritoró', 'uf' => 'MA'], + 4118857 => ['nome' => 'Perobal', 'uf' => 'PR'], + 4118907 => ['nome' => 'Pérola', 'uf' => 'PR'], + 4119004 => ['nome' => 'Pérola d\'Oeste', 'uf' => 'PR'], + 5216452 => ['nome' => 'Perolândia', 'uf' => 'GO'], + 3537602 => ['nome' => 'Peruíbe', 'uf' => 'SP'], + 3150000 => ['nome' => 'Pescador', 'uf' => 'MG'], + 4212650 => ['nome' => 'Pescaria Brava', 'uf' => 'SC'], + 2610905 => ['nome' => 'Pesqueira', 'uf' => 'PE'], + 2611002 => ['nome' => 'Petrolândia', 'uf' => 'PE'], + 4212700 => ['nome' => 'Petrolândia', 'uf' => 'SC'], + 2611101 => ['nome' => 'Petrolina', 'uf' => 'PE'], + 5216809 => ['nome' => 'Petrolina de Goiás', 'uf' => 'GO'], + 3303906 => ['nome' => 'Petrópolis', 'uf' => 'RJ'], + 2706802 => ['nome' => 'Piaçabuçu', 'uf' => 'AL'], + 3537701 => ['nome' => 'Piacatu', 'uf' => 'SP'], + 2511301 => ['nome' => 'Piancó', 'uf' => 'PB'], + 2924306 => ['nome' => 'Piatã', 'uf' => 'BA'], + 3150109 => ['nome' => 'Piau', 'uf' => 'MG'], + 4314423 => ['nome' => 'Picada Café', 'uf' => 'RS'], + 1505635 => ['nome' => 'Piçarra', 'uf' => 'PA'], + 2208007 => ['nome' => 'Picos', 'uf' => 'PI'], + 2511400 => ['nome' => 'Picuí', 'uf' => 'PB'], + 3537800 => ['nome' => 'Piedade', 'uf' => 'SP'], + 3150158 => ['nome' => 'Piedade de Caratinga', 'uf' => 'MG'], + 3150208 => ['nome' => 'Piedade de Ponte Nova', 'uf' => 'MG'], + 3150307 => ['nome' => 'Piedade do Rio Grande', 'uf' => 'MG'], + 3150406 => ['nome' => 'Piedade dos Gerais', 'uf' => 'MG'], + 4119103 => ['nome' => 'Piên', 'uf' => 'PR'], + 2924405 => ['nome' => 'Pilão Arcado', 'uf' => 'BA'], + 2511509 => ['nome' => 'Pilar', 'uf' => 'PB'], + 2706901 => ['nome' => 'Pilar', 'uf' => 'AL'], + 5216908 => ['nome' => 'Pilar de Goiás', 'uf' => 'GO'], + 3537909 => ['nome' => 'Pilar do Sul', 'uf' => 'SP'], + 2410009 => ['nome' => 'Pilões', 'uf' => 'RN'], + 2511608 => ['nome' => 'Pilões', 'uf' => 'PB'], + 2511707 => ['nome' => 'Pilõezinhos', 'uf' => 'PB'], + 3150505 => ['nome' => 'Pimenta', 'uf' => 'MG'], + 1100189 => ['nome' => 'Pimenta Bueno', 'uf' => 'RO'], + 2208106 => ['nome' => 'Pimenteiras', 'uf' => 'PI'], + 1101468 => ['nome' => 'Pimenteiras do Oeste', 'uf' => 'RO'], + 2924504 => ['nome' => 'Pindaí', 'uf' => 'BA'], + 3538006 => ['nome' => 'Pindamonhangaba', 'uf' => 'SP'], + 2108504 => ['nome' => 'Pindaré-Mirim', 'uf' => 'MA'], + 2707008 => ['nome' => 'Pindoba', 'uf' => 'AL'], + 2924603 => ['nome' => 'Pindobaçu', 'uf' => 'BA'], + 3538105 => ['nome' => 'Pindorama', 'uf' => 'SP'], + 1717008 => ['nome' => 'Pindorama do Tocantins', 'uf' => 'TO'], + 2310852 => ['nome' => 'Pindoretama', 'uf' => 'CE'], + 3150539 => ['nome' => 'Pingo-d\'Água', 'uf' => 'MG'], + 4119152 => ['nome' => 'Pinhais', 'uf' => 'PR'], + 4314456 => ['nome' => 'Pinhal', 'uf' => 'RS'], + 4314464 => ['nome' => 'Pinhal da Serra', 'uf' => 'RS'], + 4119251 => ['nome' => 'Pinhal de São Bento', 'uf' => 'PR'], + 4314472 => ['nome' => 'Pinhal Grande', 'uf' => 'RS'], + 4119202 => ['nome' => 'Pinhalão', 'uf' => 'PR'], + 3538204 => ['nome' => 'Pinhalzinho', 'uf' => 'SP'], + 4212908 => ['nome' => 'Pinhalzinho', 'uf' => 'SC'], + 2805208 => ['nome' => 'Pinhão', 'uf' => 'SE'], + 4119301 => ['nome' => 'Pinhão', 'uf' => 'PR'], + 3303955 => ['nome' => 'Pinheiral', 'uf' => 'RJ'], + 4314498 => ['nome' => 'Pinheirinho do Vale', 'uf' => 'RS'], + 2108603 => ['nome' => 'Pinheiro', 'uf' => 'MA'], + 4314506 => ['nome' => 'Pinheiro Machado', 'uf' => 'RS'], + 4213005 => ['nome' => 'Pinheiro Preto', 'uf' => 'SC'], + 3204104 => ['nome' => 'Pinheiros', 'uf' => 'ES'], + 2924652 => ['nome' => 'Pintadas', 'uf' => 'BA'], + 4314548 => ['nome' => 'Pinto Bandeira', 'uf' => 'RS'], + 3150570 => ['nome' => 'Pintópolis', 'uf' => 'MG'], + 2208205 => ['nome' => 'Pio IX', 'uf' => 'PI'], + 2108702 => ['nome' => 'Pio XII', 'uf' => 'MA'], + 3538303 => ['nome' => 'Piquerobi', 'uf' => 'SP'], + 2310902 => ['nome' => 'Piquet Carneiro', 'uf' => 'CE'], + 3538501 => ['nome' => 'Piquete', 'uf' => 'SP'], + 3538600 => ['nome' => 'Piracaia', 'uf' => 'SP'], + 5217104 => ['nome' => 'Piracanjuba', 'uf' => 'GO'], + 3150604 => ['nome' => 'Piracema', 'uf' => 'MG'], + 3538709 => ['nome' => 'Piracicaba', 'uf' => 'SP'], + 2208304 => ['nome' => 'Piracuruca', 'uf' => 'PI'], + 3304003 => ['nome' => 'Piraí', 'uf' => 'RJ'], + 2924678 => ['nome' => 'Piraí do Norte', 'uf' => 'BA'], + 4119400 => ['nome' => 'Piraí do Sul', 'uf' => 'PR'], + 3538808 => ['nome' => 'Piraju', 'uf' => 'SP'], + 3150703 => ['nome' => 'Pirajuba', 'uf' => 'MG'], + 3538907 => ['nome' => 'Pirajuí', 'uf' => 'SP'], + 2805307 => ['nome' => 'Pirambu', 'uf' => 'SE'], + 3150802 => ['nome' => 'Piranga', 'uf' => 'MG'], + 3539004 => ['nome' => 'Pirangi', 'uf' => 'SP'], + 3150901 => ['nome' => 'Piranguçu', 'uf' => 'MG'], + 3151008 => ['nome' => 'Piranguinho', 'uf' => 'MG'], + 2707107 => ['nome' => 'Piranhas', 'uf' => 'AL'], + 5217203 => ['nome' => 'Piranhas', 'uf' => 'GO'], + 2108801 => ['nome' => 'Pirapemas', 'uf' => 'MA'], + 3151107 => ['nome' => 'Pirapetinga', 'uf' => 'MG'], + 4314555 => ['nome' => 'Pirapó', 'uf' => 'RS'], + 3151206 => ['nome' => 'Pirapora', 'uf' => 'MG'], + 3539103 => ['nome' => 'Pirapora do Bom Jesus', 'uf' => 'SP'], + 3539202 => ['nome' => 'Pirapozinho', 'uf' => 'SP'], + 4119509 => ['nome' => 'Piraquara', 'uf' => 'PR'], + 1717206 => ['nome' => 'Piraquê', 'uf' => 'TO'], + 3539301 => ['nome' => 'Pirassununga', 'uf' => 'SP'], + 4314605 => ['nome' => 'Piratini', 'uf' => 'RS'], + 3539400 => ['nome' => 'Piratininga', 'uf' => 'SP'], + 4213104 => ['nome' => 'Piratuba', 'uf' => 'SC'], + 3151305 => ['nome' => 'Piraúba', 'uf' => 'MG'], + 5217302 => ['nome' => 'Pirenópolis', 'uf' => 'GO'], + 5217401 => ['nome' => 'Pires do Rio', 'uf' => 'GO'], + 2310951 => ['nome' => 'Pires Ferreira', 'uf' => 'CE'], + 2924702 => ['nome' => 'Piripá', 'uf' => 'BA'], + 2208403 => ['nome' => 'Piripiri', 'uf' => 'PI'], + 2924801 => ['nome' => 'Piritiba', 'uf' => 'BA'], + 2511806 => ['nome' => 'Pirpirituba', 'uf' => 'PB'], + 4119608 => ['nome' => 'Pitanga', 'uf' => 'PR'], + 3539509 => ['nome' => 'Pitangueiras', 'uf' => 'SP'], + 4119657 => ['nome' => 'Pitangueiras', 'uf' => 'PR'], + 3151404 => ['nome' => 'Pitangui', 'uf' => 'MG'], + 2511905 => ['nome' => 'Pitimbu', 'uf' => 'PB'], + 1717503 => ['nome' => 'Pium', 'uf' => 'TO'], + 3204203 => ['nome' => 'Piúma', 'uf' => 'ES'], + 3151503 => ['nome' => 'Piumhi', 'uf' => 'MG'], + 1505650 => ['nome' => 'Placas', 'uf' => 'PA'], + 1200385 => ['nome' => 'Plácido de Castro', 'uf' => 'AC'], + 5217609 => ['nome' => 'Planaltina', 'uf' => 'GO'], + 4119707 => ['nome' => 'Planaltina do Paraná', 'uf' => 'PR'], + 2924900 => ['nome' => 'Planaltino', 'uf' => 'BA'], + 2925006 => ['nome' => 'Planalto', 'uf' => 'BA'], + 4314704 => ['nome' => 'Planalto', 'uf' => 'RS'], + 3539608 => ['nome' => 'Planalto', 'uf' => 'SP'], + 4119806 => ['nome' => 'Planalto', 'uf' => 'PR'], + 4213153 => ['nome' => 'Planalto Alegre', 'uf' => 'SC'], + 5106455 => ['nome' => 'Planalto da Serra', 'uf' => 'MT'], + 3151602 => ['nome' => 'Planura', 'uf' => 'MG'], + 3539707 => ['nome' => 'Platina', 'uf' => 'SP'], + 3539806 => ['nome' => 'Poá', 'uf' => 'SP'], + 2611200 => ['nome' => 'Poção', 'uf' => 'PE'], + 2108900 => ['nome' => 'Poção de Pedras', 'uf' => 'MA'], + 2512002 => ['nome' => 'Pocinhos', 'uf' => 'PB'], + 2410108 => ['nome' => 'Poço Branco', 'uf' => 'RN'], + 2512036 => ['nome' => 'Poço Dantas', 'uf' => 'PB'], + 4314753 => ['nome' => 'Poço das Antas', 'uf' => 'RS'], + 2707206 => ['nome' => 'Poço das Trincheiras', 'uf' => 'AL'], + 2512077 => ['nome' => 'Poço de José de Moura', 'uf' => 'PB'], + 3151701 => ['nome' => 'Poço Fundo', 'uf' => 'MG'], + 2805406 => ['nome' => 'Poço Redondo', 'uf' => 'SE'], + 2805505 => ['nome' => 'Poço Verde', 'uf' => 'SE'], + 2925105 => ['nome' => 'Poções', 'uf' => 'BA'], + 5106505 => ['nome' => 'Poconé', 'uf' => 'MT'], + 3151800 => ['nome' => 'Poços de Caldas', 'uf' => 'MG'], + 3151909 => ['nome' => 'Pocrane', 'uf' => 'MG'], + 2925204 => ['nome' => 'Pojuca', 'uf' => 'BA'], + 3539905 => ['nome' => 'Poloni', 'uf' => 'SP'], + 2512101 => ['nome' => 'Pombal', 'uf' => 'PB'], + 2611309 => ['nome' => 'Pombos', 'uf' => 'PE'], + 4213203 => ['nome' => 'Pomerode', 'uf' => 'SC'], + 3540002 => ['nome' => 'Pompéia', 'uf' => 'SP'], + 3152006 => ['nome' => 'Pompéu', 'uf' => 'MG'], + 3540101 => ['nome' => 'Pongaí', 'uf' => 'SP'], + 1505700 => ['nome' => 'Ponta de Pedras', 'uf' => 'PA'], + 4119905 => ['nome' => 'Ponta Grossa', 'uf' => 'PR'], + 5006606 => ['nome' => 'Ponta Porã', 'uf' => 'MS'], + 3540200 => ['nome' => 'Pontal', 'uf' => 'SP'], + 5106653 => ['nome' => 'Pontal do Araguaia', 'uf' => 'MT'], + 4119954 => ['nome' => 'Pontal do Paraná', 'uf' => 'PR'], + 5217708 => ['nome' => 'Pontalina', 'uf' => 'GO'], + 3540259 => ['nome' => 'Pontalinda', 'uf' => 'SP'], + 4314779 => ['nome' => 'Pontão', 'uf' => 'RS'], + 4213302 => ['nome' => 'Ponte Alta', 'uf' => 'SC'], + 1717800 => ['nome' => 'Ponte Alta do Bom Jesus', 'uf' => 'TO'], + 4213351 => ['nome' => 'Ponte Alta do Norte', 'uf' => 'SC'], + 1717909 => ['nome' => 'Ponte Alta do Tocantins', 'uf' => 'TO'], + 5106703 => ['nome' => 'Ponte Branca', 'uf' => 'MT'], + 3152105 => ['nome' => 'Ponte Nova', 'uf' => 'MG'], + 4314787 => ['nome' => 'Ponte Preta', 'uf' => 'RS'], + 4213401 => ['nome' => 'Ponte Serrada', 'uf' => 'SC'], + 5106752 => ['nome' => 'Pontes e Lacerda', 'uf' => 'MT'], + 3540309 => ['nome' => 'Pontes Gestal', 'uf' => 'SP'], + 3204252 => ['nome' => 'Ponto Belo', 'uf' => 'ES'], + 3152131 => ['nome' => 'Ponto Chique', 'uf' => 'MG'], + 3152170 => ['nome' => 'Ponto dos Volantes', 'uf' => 'MG'], + 2925253 => ['nome' => 'Ponto Novo', 'uf' => 'BA'], + 3540408 => ['nome' => 'Populina', 'uf' => 'SP'], + 2311009 => ['nome' => 'Poranga', 'uf' => 'CE'], + 3540507 => ['nome' => 'Porangaba', 'uf' => 'SP'], + 5218003 => ['nome' => 'Porangatu', 'uf' => 'GO'], + 3304102 => ['nome' => 'Porciúncula', 'uf' => 'RJ'], + 4120002 => ['nome' => 'Porecatu', 'uf' => 'PR'], + 2410207 => ['nome' => 'Portalegre', 'uf' => 'RN'], + 4314803 => ['nome' => 'Portão', 'uf' => 'RS'], + 5218052 => ['nome' => 'Porteirão', 'uf' => 'GO'], + 2311108 => ['nome' => 'Porteiras', 'uf' => 'CE'], + 3152204 => ['nome' => 'Porteirinha', 'uf' => 'MG'], + 1505809 => ['nome' => 'Portel', 'uf' => 'PA'], + 5218102 => ['nome' => 'Portelândia', 'uf' => 'GO'], + 2208502 => ['nome' => 'Porto', 'uf' => 'PI'], + 1200807 => ['nome' => 'Porto Acre', 'uf' => 'AC'], + 4314902 => ['nome' => 'Porto Alegre', 'uf' => 'RS'], + 5106778 => ['nome' => 'Porto Alegre do Norte', 'uf' => 'MT'], + 2208551 => ['nome' => 'Porto Alegre do Piauí', 'uf' => 'PI'], + 1718006 => ['nome' => 'Porto Alegre do Tocantins', 'uf' => 'TO'], + 4120101 => ['nome' => 'Porto Amazonas', 'uf' => 'PR'], + 4120150 => ['nome' => 'Porto Barreiro', 'uf' => 'PR'], + 4213500 => ['nome' => 'Porto Belo', 'uf' => 'SC'], + 2707305 => ['nome' => 'Porto Calvo', 'uf' => 'AL'], + 2805604 => ['nome' => 'Porto da Folha', 'uf' => 'SE'], + 1505908 => ['nome' => 'Porto de Moz', 'uf' => 'PA'], + 2707404 => ['nome' => 'Porto de Pedras', 'uf' => 'AL'], + 2410256 => ['nome' => 'Porto do Mangue', 'uf' => 'RN'], + 5106802 => ['nome' => 'Porto dos Gaúchos', 'uf' => 'MT'], + 5106828 => ['nome' => 'Porto Esperidião', 'uf' => 'MT'], + 5106851 => ['nome' => 'Porto Estrela', 'uf' => 'MT'], + 3540606 => ['nome' => 'Porto Feliz', 'uf' => 'SP'], + 3540705 => ['nome' => 'Porto Ferreira', 'uf' => 'SP'], + 3152303 => ['nome' => 'Porto Firme', 'uf' => 'MG'], + 2109007 => ['nome' => 'Porto Franco', 'uf' => 'MA'], + 1600535 => ['nome' => 'Porto Grande', 'uf' => 'AP'], + 4315008 => ['nome' => 'Porto Lucena', 'uf' => 'RS'], + 4315057 => ['nome' => 'Porto Mauá', 'uf' => 'RS'], + 5006903 => ['nome' => 'Porto Murtinho', 'uf' => 'MS'], + 1718204 => ['nome' => 'Porto Nacional', 'uf' => 'TO'], + 3304110 => ['nome' => 'Porto Real', 'uf' => 'RJ'], + 2707503 => ['nome' => 'Porto Real do Colégio', 'uf' => 'AL'], + 4120200 => ['nome' => 'Porto Rico', 'uf' => 'PR'], + 2109056 => ['nome' => 'Porto Rico do Maranhão', 'uf' => 'MA'], + 2925303 => ['nome' => 'Porto Seguro', 'uf' => 'BA'], + 4213609 => ['nome' => 'Porto União', 'uf' => 'SC'], + 1100205 => ['nome' => 'Porto Velho', 'uf' => 'RO'], + 4315073 => ['nome' => 'Porto Vera Cruz', 'uf' => 'RS'], + 4120309 => ['nome' => 'Porto Vitória', 'uf' => 'PR'], + 1200393 => ['nome' => 'Porto Walter', 'uf' => 'AC'], + 4315107 => ['nome' => 'Porto Xavier', 'uf' => 'RS'], + 5218300 => ['nome' => 'Posse', 'uf' => 'GO'], + 3152402 => ['nome' => 'Poté', 'uf' => 'MG'], + 2311207 => ['nome' => 'Potengi', 'uf' => 'CE'], + 3540754 => ['nome' => 'Potim', 'uf' => 'SP'], + 2925402 => ['nome' => 'Potiraguá', 'uf' => 'BA'], + 3540804 => ['nome' => 'Potirendaba', 'uf' => 'SP'], + 2311231 => ['nome' => 'Potiretama', 'uf' => 'CE'], + 3152501 => ['nome' => 'Pouso Alegre', 'uf' => 'MG'], + 3152600 => ['nome' => 'Pouso Alto', 'uf' => 'MG'], + 4315131 => ['nome' => 'Pouso Novo', 'uf' => 'RS'], + 4213708 => ['nome' => 'Pouso Redondo', 'uf' => 'SC'], + 5107008 => ['nome' => 'Poxoréu', 'uf' => 'MT'], + 3540853 => ['nome' => 'Pracinha', 'uf' => 'SP'], + 1600550 => ['nome' => 'Pracuúba', 'uf' => 'AP'], + 2925501 => ['nome' => 'Prado', 'uf' => 'BA'], + 4120333 => ['nome' => 'Prado Ferreira', 'uf' => 'PR'], + 3540903 => ['nome' => 'Pradópolis', 'uf' => 'SP'], + 3152709 => ['nome' => 'Prados', 'uf' => 'MG'], + 3541000 => ['nome' => 'Praia Grande', 'uf' => 'SP'], + 4213807 => ['nome' => 'Praia Grande', 'uf' => 'SC'], + 1718303 => ['nome' => 'Praia Norte', 'uf' => 'TO'], + 1506005 => ['nome' => 'Prainha', 'uf' => 'PA'], + 4120358 => ['nome' => 'Pranchita', 'uf' => 'PR'], + 3152808 => ['nome' => 'Prata', 'uf' => 'MG'], + 2512200 => ['nome' => 'Prata', 'uf' => 'PB'], + 2208601 => ['nome' => 'Prata do Piauí', 'uf' => 'PI'], + 3541059 => ['nome' => 'Pratânia', 'uf' => 'SP'], + 3152907 => ['nome' => 'Pratápolis', 'uf' => 'MG'], + 3153004 => ['nome' => 'Pratinha', 'uf' => 'MG'], + 3541109 => ['nome' => 'Presidente Alves', 'uf' => 'SP'], + 3541208 => ['nome' => 'Presidente Bernardes', 'uf' => 'SP'], + 3153103 => ['nome' => 'Presidente Bernardes', 'uf' => 'MG'], + 4213906 => ['nome' => 'Presidente Castello Branco', 'uf' => 'SC'], + 4120408 => ['nome' => 'Presidente Castelo Branco', 'uf' => 'PR'], + 2925600 => ['nome' => 'Presidente Dutra', 'uf' => 'BA'], + 2109106 => ['nome' => 'Presidente Dutra', 'uf' => 'MA'], + 3541307 => ['nome' => 'Presidente Epitácio', 'uf' => 'SP'], + 1303536 => ['nome' => 'Presidente Figueiredo', 'uf' => 'AM'], + 4214003 => ['nome' => 'Presidente Getúlio', 'uf' => 'SC'], + 2925709 => ['nome' => 'Presidente Jânio Quadros', 'uf' => 'BA'], + 3153202 => ['nome' => 'Presidente Juscelino', 'uf' => 'MG'], + 2109205 => ['nome' => 'Presidente Juscelino', 'uf' => 'MA'], + 1718402 => ['nome' => 'Presidente Kennedy', 'uf' => 'TO'], + 3204302 => ['nome' => 'Presidente Kennedy', 'uf' => 'ES'], + 3153301 => ['nome' => 'Presidente Kubitschek', 'uf' => 'MG'], + 4315149 => ['nome' => 'Presidente Lucena', 'uf' => 'RS'], + 1100254 => ['nome' => 'Presidente Médici', 'uf' => 'RO'], + 2109239 => ['nome' => 'Presidente Médici', 'uf' => 'MA'], + 4214102 => ['nome' => 'Presidente Nereu', 'uf' => 'SC'], + 3153400 => ['nome' => 'Presidente Olegário', 'uf' => 'MG'], + 3541406 => ['nome' => 'Presidente Prudente', 'uf' => 'SP'], + 2109270 => ['nome' => 'Presidente Sarney', 'uf' => 'MA'], + 2925758 => ['nome' => 'Presidente Tancredo Neves', 'uf' => 'BA'], + 2109304 => ['nome' => 'Presidente Vargas', 'uf' => 'MA'], + 3541505 => ['nome' => 'Presidente Venceslau', 'uf' => 'SP'], + 2611408 => ['nome' => 'Primavera', 'uf' => 'PE'], + 1506104 => ['nome' => 'Primavera', 'uf' => 'PA'], + 1101476 => ['nome' => 'Primavera de Rondônia', 'uf' => 'RO'], + 5107040 => ['nome' => 'Primavera do Leste', 'uf' => 'MT'], + 2109403 => ['nome' => 'Primeira Cruz', 'uf' => 'MA'], + 4120507 => ['nome' => 'Primeiro de Maio', 'uf' => 'PR'], + 4214151 => ['nome' => 'Princesa', 'uf' => 'SC'], + 2512309 => ['nome' => 'Princesa Isabel', 'uf' => 'PB'], + 5218391 => ['nome' => 'Professor Jamil', 'uf' => 'GO'], + 4315156 => ['nome' => 'Progresso', 'uf' => 'RS'], + 3541604 => ['nome' => 'Promissão', 'uf' => 'SP'], + 2805703 => ['nome' => 'Propriá', 'uf' => 'SE'], + 4315172 => ['nome' => 'Protásio Alves', 'uf' => 'RS'], + 3153608 => ['nome' => 'Prudente de Morais', 'uf' => 'MG'], + 4120606 => ['nome' => 'Prudentópolis', 'uf' => 'PR'], + 1718451 => ['nome' => 'Pugmil', 'uf' => 'TO'], + 2410405 => ['nome' => 'Pureza', 'uf' => 'RN'], + 4315206 => ['nome' => 'Putinga', 'uf' => 'RS'], + 2512408 => ['nome' => 'Puxinanã', 'uf' => 'PB'], + 3541653 => ['nome' => 'Quadra', 'uf' => 'SP'], + 4315305 => ['nome' => 'Quaraí', 'uf' => 'RS'], + 3153707 => ['nome' => 'Quartel Geral', 'uf' => 'MG'], + 4120655 => ['nome' => 'Quarto Centenário', 'uf' => 'PR'], + 3541703 => ['nome' => 'Quatá', 'uf' => 'SP'], + 4120705 => ['nome' => 'Quatiguá', 'uf' => 'PR'], + 1506112 => ['nome' => 'Quatipuru', 'uf' => 'PA'], + 3304128 => ['nome' => 'Quatis', 'uf' => 'RJ'], + 4120804 => ['nome' => 'Quatro Barras', 'uf' => 'PR'], + 4315313 => ['nome' => 'Quatro Irmãos', 'uf' => 'RS'], + 4120853 => ['nome' => 'Quatro Pontes', 'uf' => 'PR'], + 2707602 => ['nome' => 'Quebrangulo', 'uf' => 'AL'], + 4120903 => ['nome' => 'Quedas do Iguaçu', 'uf' => 'PR'], + 2208650 => ['nome' => 'Queimada Nova', 'uf' => 'PI'], + 2512507 => ['nome' => 'Queimadas', 'uf' => 'PB'], + 2925808 => ['nome' => 'Queimadas', 'uf' => 'BA'], + 3304144 => ['nome' => 'Queimados', 'uf' => 'RJ'], + 3541802 => ['nome' => 'Queiroz', 'uf' => 'SP'], + 3541901 => ['nome' => 'Queluz', 'uf' => 'SP'], + 3153806 => ['nome' => 'Queluzito', 'uf' => 'MG'], + 5107065 => ['nome' => 'Querência', 'uf' => 'MT'], + 4121000 => ['nome' => 'Querência do Norte', 'uf' => 'PR'], + 4315321 => ['nome' => 'Quevedos', 'uf' => 'RS'], + 2925907 => ['nome' => 'Quijingue', 'uf' => 'BA'], + 4214201 => ['nome' => 'Quilombo', 'uf' => 'SC'], + 4121109 => ['nome' => 'Quinta do Sol', 'uf' => 'PR'], + 3542008 => ['nome' => 'Quintana', 'uf' => 'SP'], + 4315354 => ['nome' => 'Quinze de Novembro', 'uf' => 'RS'], + 2611507 => ['nome' => 'Quipapá', 'uf' => 'PE'], + 5218508 => ['nome' => 'Quirinópolis', 'uf' => 'GO'], + 3304151 => ['nome' => 'Quissamã', 'uf' => 'RJ'], + 4121208 => ['nome' => 'Quitandinha', 'uf' => 'PR'], + 2311264 => ['nome' => 'Quiterianópolis', 'uf' => 'CE'], + 2512606 => ['nome' => 'Quixabá', 'uf' => 'PB'], + 2611533 => ['nome' => 'Quixaba', 'uf' => 'PE'], + 2925931 => ['nome' => 'Quixabeira', 'uf' => 'BA'], + 2311306 => ['nome' => 'Quixadá', 'uf' => 'CE'], + 2311355 => ['nome' => 'Quixelô', 'uf' => 'CE'], + 2311405 => ['nome' => 'Quixeramobim', 'uf' => 'CE'], + 2311504 => ['nome' => 'Quixeré', 'uf' => 'CE'], + 2410504 => ['nome' => 'Rafael Fernandes', 'uf' => 'RN'], + 2410603 => ['nome' => 'Rafael Godeiro', 'uf' => 'RN'], + 2925956 => ['nome' => 'Rafael Jambeiro', 'uf' => 'BA'], + 3542107 => ['nome' => 'Rafard', 'uf' => 'SP'], + 4121257 => ['nome' => 'Ramilândia', 'uf' => 'PR'], + 3542206 => ['nome' => 'Rancharia', 'uf' => 'SP'], + 4121307 => ['nome' => 'Rancho Alegre', 'uf' => 'PR'], + 4121356 => ['nome' => 'Rancho Alegre D\'Oeste', 'uf' => 'PR'], + 4214300 => ['nome' => 'Rancho Queimado', 'uf' => 'SC'], + 2109452 => ['nome' => 'Raposa', 'uf' => 'MA'], + 3153905 => ['nome' => 'Raposos', 'uf' => 'MG'], + 3154002 => ['nome' => 'Raul Soares', 'uf' => 'MG'], + 4121406 => ['nome' => 'Realeza', 'uf' => 'PR'], + 4121505 => ['nome' => 'Rebouças', 'uf' => 'PR'], + 2611606 => ['nome' => 'Recife', 'uf' => 'PE'], + 3154101 => ['nome' => 'Recreio', 'uf' => 'MG'], + 1718501 => ['nome' => 'Recursolândia', 'uf' => 'TO'], + 1506138 => ['nome' => 'Redenção', 'uf' => 'PA'], + 2311603 => ['nome' => 'Redenção', 'uf' => 'CE'], + 3542305 => ['nome' => 'Redenção da Serra', 'uf' => 'SP'], + 2208700 => ['nome' => 'Redenção do Gurguéia', 'uf' => 'PI'], + 4315404 => ['nome' => 'Redentora', 'uf' => 'RS'], + 3154150 => ['nome' => 'Reduto', 'uf' => 'MG'], + 2208809 => ['nome' => 'Regeneração', 'uf' => 'PI'], + 3542404 => ['nome' => 'Regente Feijó', 'uf' => 'SP'], + 3542503 => ['nome' => 'Reginópolis', 'uf' => 'SP'], + 3542602 => ['nome' => 'Registro', 'uf' => 'SP'], + 4315453 => ['nome' => 'Relvado', 'uf' => 'RS'], + 2926004 => ['nome' => 'Remanso', 'uf' => 'BA'], + 2512705 => ['nome' => 'Remígio', 'uf' => 'PB'], + 4121604 => ['nome' => 'Renascença', 'uf' => 'PR'], + 2311702 => ['nome' => 'Reriutaba', 'uf' => 'CE'], + 3304201 => ['nome' => 'Resende', 'uf' => 'RJ'], + 3154200 => ['nome' => 'Resende Costa', 'uf' => 'MG'], + 4121703 => ['nome' => 'Reserva', 'uf' => 'PR'], + 5107156 => ['nome' => 'Reserva do Cabaçal', 'uf' => 'MT'], + 4121752 => ['nome' => 'Reserva do Iguaçu', 'uf' => 'PR'], + 3154309 => ['nome' => 'Resplendor', 'uf' => 'MG'], + 3154408 => ['nome' => 'Ressaquinha', 'uf' => 'MG'], + 3542701 => ['nome' => 'Restinga', 'uf' => 'SP'], + 4315503 => ['nome' => 'Restinga Sêca', 'uf' => 'RS'], + 2926103 => ['nome' => 'Retirolândia', 'uf' => 'BA'], + 2512747 => ['nome' => 'Riachão', 'uf' => 'PB'], + 2109502 => ['nome' => 'Riachão', 'uf' => 'MA'], + 2926202 => ['nome' => 'Riachão das Neves', 'uf' => 'BA'], + 2512754 => ['nome' => 'Riachão do Bacamarte', 'uf' => 'PB'], + 2805802 => ['nome' => 'Riachão do Dantas', 'uf' => 'SE'], + 2926301 => ['nome' => 'Riachão do Jacuípe', 'uf' => 'BA'], + 2512762 => ['nome' => 'Riachão do Poço', 'uf' => 'PB'], + 1718550 => ['nome' => 'Riachinho', 'uf' => 'TO'], + 3154457 => ['nome' => 'Riachinho', 'uf' => 'MG'], + 2410702 => ['nome' => 'Riacho da Cruz', 'uf' => 'RN'], + 2611705 => ['nome' => 'Riacho das Almas', 'uf' => 'PE'], + 2410801 => ['nome' => 'Riacho de Santana', 'uf' => 'RN'], + 2926400 => ['nome' => 'Riacho de Santana', 'uf' => 'BA'], + 2512788 => ['nome' => 'Riacho de Santo Antônio', 'uf' => 'PB'], + 2512804 => ['nome' => 'Riacho dos Cavalos', 'uf' => 'PB'], + 3154507 => ['nome' => 'Riacho dos Machados', 'uf' => 'MG'], + 2208858 => ['nome' => 'Riacho Frio', 'uf' => 'PI'], + 2410900 => ['nome' => 'Riachuelo', 'uf' => 'RN'], + 2805901 => ['nome' => 'Riachuelo', 'uf' => 'SE'], + 5218607 => ['nome' => 'Rialma', 'uf' => 'GO'], + 5218706 => ['nome' => 'Rianápolis', 'uf' => 'GO'], + 2109551 => ['nome' => 'Ribamar Fiquene', 'uf' => 'MA'], + 5007109 => ['nome' => 'Ribas do Rio Pardo', 'uf' => 'MS'], + 3542800 => ['nome' => 'Ribeira', 'uf' => 'SP'], + 2926509 => ['nome' => 'Ribeira do Amparo', 'uf' => 'BA'], + 2208874 => ['nome' => 'Ribeira do Piauí', 'uf' => 'PI'], + 2926608 => ['nome' => 'Ribeira do Pombal', 'uf' => 'BA'], + 2611804 => ['nome' => 'Ribeirão', 'uf' => 'PE'], + 3542909 => ['nome' => 'Ribeirão Bonito', 'uf' => 'SP'], + 3543006 => ['nome' => 'Ribeirão Branco', 'uf' => 'SP'], + 5107180 => ['nome' => 'Ribeirão Cascalheira', 'uf' => 'MT'], + 4121802 => ['nome' => 'Ribeirão Claro', 'uf' => 'PR'], + 3543105 => ['nome' => 'Ribeirão Corrente', 'uf' => 'SP'], + 3154606 => ['nome' => 'Ribeirão das Neves', 'uf' => 'MG'], + 2926657 => ['nome' => 'Ribeirão do Largo', 'uf' => 'BA'], + 4121901 => ['nome' => 'Ribeirão do Pinhal', 'uf' => 'PR'], + 3543204 => ['nome' => 'Ribeirão do Sul', 'uf' => 'SP'], + 3543238 => ['nome' => 'Ribeirão dos Índios', 'uf' => 'SP'], + 3543253 => ['nome' => 'Ribeirão Grande', 'uf' => 'SP'], + 3543303 => ['nome' => 'Ribeirão Pires', 'uf' => 'SP'], + 3543402 => ['nome' => 'Ribeirão Preto', 'uf' => 'SP'], + 3154705 => ['nome' => 'Ribeirão Vermelho', 'uf' => 'MG'], + 5107198 => ['nome' => 'Ribeirãozinho', 'uf' => 'MT'], + 2208908 => ['nome' => 'Ribeiro Gonçalves', 'uf' => 'PI'], + 2806008 => ['nome' => 'Ribeirópolis', 'uf' => 'SE'], + 3543600 => ['nome' => 'Rifaina', 'uf' => 'SP'], + 3543709 => ['nome' => 'Rincão', 'uf' => 'SP'], + 3543808 => ['nome' => 'Rinópolis', 'uf' => 'SP'], + 3154804 => ['nome' => 'Rio Acima', 'uf' => 'MG'], + 4122008 => ['nome' => 'Rio Azul', 'uf' => 'PR'], + 3204351 => ['nome' => 'Rio Bananal', 'uf' => 'ES'], + 4122107 => ['nome' => 'Rio Bom', 'uf' => 'PR'], + 3304300 => ['nome' => 'Rio Bonito', 'uf' => 'RJ'], + 4122156 => ['nome' => 'Rio Bonito do Iguaçu', 'uf' => 'PR'], + 5107206 => ['nome' => 'Rio Branco', 'uf' => 'MT'], + 1200401 => ['nome' => 'Rio Branco', 'uf' => 'AC'], + 4122172 => ['nome' => 'Rio Branco do Ivaí', 'uf' => 'PR'], + 4122206 => ['nome' => 'Rio Branco do Sul', 'uf' => 'PR'], + 5007208 => ['nome' => 'Rio Brilhante', 'uf' => 'MS'], + 3154903 => ['nome' => 'Rio Casca', 'uf' => 'MG'], + 3304409 => ['nome' => 'Rio Claro', 'uf' => 'RJ'], + 3543907 => ['nome' => 'Rio Claro', 'uf' => 'SP'], + 1100262 => ['nome' => 'Rio Crespo', 'uf' => 'RO'], + 1718659 => ['nome' => 'Rio da Conceição', 'uf' => 'TO'], + 4214409 => ['nome' => 'Rio das Antas', 'uf' => 'SC'], + 3304508 => ['nome' => 'Rio das Flores', 'uf' => 'RJ'], + 3304524 => ['nome' => 'Rio das Ostras', 'uf' => 'RJ'], + 3544004 => ['nome' => 'Rio das Pedras', 'uf' => 'SP'], + 2926707 => ['nome' => 'Rio de Contas', 'uf' => 'BA'], + 3304557 => ['nome' => 'Rio de Janeiro', 'uf' => 'RJ'], + 2926806 => ['nome' => 'Rio do Antônio', 'uf' => 'BA'], + 4214508 => ['nome' => 'Rio do Campo', 'uf' => 'SC'], + 2408953 => ['nome' => 'Rio do Fogo', 'uf' => 'RN'], + 4214607 => ['nome' => 'Rio do Oeste', 'uf' => 'SC'], + 2926905 => ['nome' => 'Rio do Pires', 'uf' => 'BA'], + 3155108 => ['nome' => 'Rio do Prado', 'uf' => 'MG'], + 4214805 => ['nome' => 'Rio do Sul', 'uf' => 'SC'], + 3155009 => ['nome' => 'Rio Doce', 'uf' => 'MG'], + 1718709 => ['nome' => 'Rio dos Bois', 'uf' => 'TO'], + 4214706 => ['nome' => 'Rio dos Cedros', 'uf' => 'SC'], + 4315552 => ['nome' => 'Rio dos Índios', 'uf' => 'RS'], + 3155207 => ['nome' => 'Rio Espera', 'uf' => 'MG'], + 2611903 => ['nome' => 'Rio Formoso', 'uf' => 'PE'], + 4214904 => ['nome' => 'Rio Fortuna', 'uf' => 'SC'], + 4315602 => ['nome' => 'Rio Grande', 'uf' => 'RS'], + 3544103 => ['nome' => 'Rio Grande da Serra', 'uf' => 'SP'], + 2209005 => ['nome' => 'Rio Grande do Piauí', 'uf' => 'PI'], + 2707701 => ['nome' => 'Rio Largo', 'uf' => 'AL'], + 3155306 => ['nome' => 'Rio Manso', 'uf' => 'MG'], + 1506161 => ['nome' => 'Rio Maria', 'uf' => 'PA'], + 4215000 => ['nome' => 'Rio Negrinho', 'uf' => 'SC'], + 5007307 => ['nome' => 'Rio Negro', 'uf' => 'MS'], + 4122305 => ['nome' => 'Rio Negro', 'uf' => 'PR'], + 3155405 => ['nome' => 'Rio Novo', 'uf' => 'MG'], + 3204401 => ['nome' => 'Rio Novo do Sul', 'uf' => 'ES'], + 3155504 => ['nome' => 'Rio Paranaíba', 'uf' => 'MG'], + 4315701 => ['nome' => 'Rio Pardo', 'uf' => 'RS'], + 3155603 => ['nome' => 'Rio Pardo de Minas', 'uf' => 'MG'], + 3155702 => ['nome' => 'Rio Piracicaba', 'uf' => 'MG'], + 3155801 => ['nome' => 'Rio Pomba', 'uf' => 'MG'], + 3155900 => ['nome' => 'Rio Preto', 'uf' => 'MG'], + 1303569 => ['nome' => 'Rio Preto da Eva', 'uf' => 'AM'], + 5218789 => ['nome' => 'Rio Quente', 'uf' => 'GO'], + 2927002 => ['nome' => 'Rio Real', 'uf' => 'BA'], + 4215059 => ['nome' => 'Rio Rufino', 'uf' => 'SC'], + 1718758 => ['nome' => 'Rio Sono', 'uf' => 'TO'], + 2512903 => ['nome' => 'Rio Tinto', 'uf' => 'PB'], + 5218805 => ['nome' => 'Rio Verde', 'uf' => 'GO'], + 5007406 => ['nome' => 'Rio Verde de Mato Grosso', 'uf' => 'MS'], + 3156007 => ['nome' => 'Rio Vermelho', 'uf' => 'MG'], + 3544202 => ['nome' => 'Riolândia', 'uf' => 'SP'], + 4315750 => ['nome' => 'Riozinho', 'uf' => 'RS'], + 4215075 => ['nome' => 'Riqueza', 'uf' => 'SC'], + 3156106 => ['nome' => 'Ritápolis', 'uf' => 'MG'], + 3543501 => ['nome' => 'Riversul', 'uf' => 'SP'], + 4315800 => ['nome' => 'Roca Sales', 'uf' => 'RS'], + 5007505 => ['nome' => 'Rochedo', 'uf' => 'MS'], + 3156205 => ['nome' => 'Rochedo de Minas', 'uf' => 'MG'], + 4215109 => ['nome' => 'Rodeio', 'uf' => 'SC'], + 4315909 => ['nome' => 'Rodeio Bonito', 'uf' => 'RS'], + 3156304 => ['nome' => 'Rodeiro', 'uf' => 'MG'], + 2927101 => ['nome' => 'Rodelas', 'uf' => 'BA'], + 2411007 => ['nome' => 'Rodolfo Fernandes', 'uf' => 'RN'], + 1200427 => ['nome' => 'Rodrigues Alves', 'uf' => 'AC'], + 4315958 => ['nome' => 'Rolador', 'uf' => 'RS'], + 4122404 => ['nome' => 'Rolândia', 'uf' => 'PR'], + 4316006 => ['nome' => 'Rolante', 'uf' => 'RS'], + 1100288 => ['nome' => 'Rolim de Moura', 'uf' => 'RO'], + 3156403 => ['nome' => 'Romaria', 'uf' => 'MG'], + 4215208 => ['nome' => 'Romelândia', 'uf' => 'SC'], + 4122503 => ['nome' => 'Roncador', 'uf' => 'PR'], + 4316105 => ['nome' => 'Ronda Alta', 'uf' => 'RS'], + 4316204 => ['nome' => 'Rondinha', 'uf' => 'RS'], + 5107578 => ['nome' => 'Rondolândia', 'uf' => 'MT'], + 4122602 => ['nome' => 'Rondon', 'uf' => 'PR'], + 1506187 => ['nome' => 'Rondon do Pará', 'uf' => 'PA'], + 5107602 => ['nome' => 'Rondonópolis', 'uf' => 'MT'], + 4316303 => ['nome' => 'Roque Gonzales', 'uf' => 'RS'], + 1400472 => ['nome' => 'Rorainópolis', 'uf' => 'RR'], + 3544251 => ['nome' => 'Rosana', 'uf' => 'SP'], + 2109601 => ['nome' => 'Rosário', 'uf' => 'MA'], + 3156452 => ['nome' => 'Rosário da Limeira', 'uf' => 'MG'], + 2806107 => ['nome' => 'Rosário do Catete', 'uf' => 'SE'], + 4122651 => ['nome' => 'Rosário do Ivaí', 'uf' => 'PR'], + 4316402 => ['nome' => 'Rosário do Sul', 'uf' => 'RS'], + 5107701 => ['nome' => 'Rosário Oeste', 'uf' => 'MT'], + 3544301 => ['nome' => 'Roseira', 'uf' => 'SP'], + 2707800 => ['nome' => 'Roteiro', 'uf' => 'AL'], + 3156502 => ['nome' => 'Rubelita', 'uf' => 'MG'], + 3544400 => ['nome' => 'Rubiácea', 'uf' => 'SP'], + 5218904 => ['nome' => 'Rubiataba', 'uf' => 'GO'], + 3156601 => ['nome' => 'Rubim', 'uf' => 'MG'], + 3544509 => ['nome' => 'Rubinéia', 'uf' => 'SP'], + 1506195 => ['nome' => 'Rurópolis', 'uf' => 'PA'], + 2311801 => ['nome' => 'Russas', 'uf' => 'CE'], + 2411106 => ['nome' => 'Ruy Barbosa', 'uf' => 'RN'], + 2927200 => ['nome' => 'Ruy Barbosa', 'uf' => 'BA'], + 3156700 => ['nome' => 'Sabará', 'uf' => 'MG'], + 4122701 => ['nome' => 'Sabáudia', 'uf' => 'PR'], + 3544608 => ['nome' => 'Sabino', 'uf' => 'SP'], + 3156809 => ['nome' => 'Sabinópolis', 'uf' => 'MG'], + 2311900 => ['nome' => 'Saboeiro', 'uf' => 'CE'], + 3156908 => ['nome' => 'Sacramento', 'uf' => 'MG'], + 4316428 => ['nome' => 'Sagrada Família', 'uf' => 'RS'], + 3544707 => ['nome' => 'Sagres', 'uf' => 'SP'], + 2612000 => ['nome' => 'Sairé', 'uf' => 'PE'], + 4316436 => ['nome' => 'Saldanha Marinho', 'uf' => 'RS'], + 3544806 => ['nome' => 'Sales', 'uf' => 'SP'], + 3544905 => ['nome' => 'Sales Oliveira', 'uf' => 'SP'], + 3545001 => ['nome' => 'Salesópolis', 'uf' => 'SP'], + 4215307 => ['nome' => 'Salete', 'uf' => 'SC'], + 2513000 => ['nome' => 'Salgadinho', 'uf' => 'PB'], + 2612109 => ['nome' => 'Salgadinho', 'uf' => 'PE'], + 2806206 => ['nome' => 'Salgado', 'uf' => 'SE'], + 2513109 => ['nome' => 'Salgado de São Félix', 'uf' => 'PB'], + 4122800 => ['nome' => 'Salgado Filho', 'uf' => 'PR'], + 2612208 => ['nome' => 'Salgueiro', 'uf' => 'PE'], + 3157005 => ['nome' => 'Salinas', 'uf' => 'MG'], + 2927309 => ['nome' => 'Salinas da Margarida', 'uf' => 'BA'], + 1506203 => ['nome' => 'Salinópolis', 'uf' => 'PA'], + 2311959 => ['nome' => 'Salitre', 'uf' => 'CE'], + 3545100 => ['nome' => 'Salmourão', 'uf' => 'SP'], + 2612307 => ['nome' => 'Saloá', 'uf' => 'PE'], + 4215356 => ['nome' => 'Saltinho', 'uf' => 'SC'], + 3545159 => ['nome' => 'Saltinho', 'uf' => 'SP'], + 3545209 => ['nome' => 'Salto', 'uf' => 'SP'], + 3157104 => ['nome' => 'Salto da Divisa', 'uf' => 'MG'], + 3545308 => ['nome' => 'Salto de Pirapora', 'uf' => 'SP'], + 5107750 => ['nome' => 'Salto do Céu', 'uf' => 'MT'], + 4122909 => ['nome' => 'Salto do Itararé', 'uf' => 'PR'], + 4316451 => ['nome' => 'Salto do Jacuí', 'uf' => 'RS'], + 4123006 => ['nome' => 'Salto do Lontra', 'uf' => 'PR'], + 3545407 => ['nome' => 'Salto Grande', 'uf' => 'SP'], + 4215406 => ['nome' => 'Salto Veloso', 'uf' => 'SC'], + 2927408 => ['nome' => 'Salvador', 'uf' => 'BA'], + 4316477 => ['nome' => 'Salvador das Missões', 'uf' => 'RS'], + 4316501 => ['nome' => 'Salvador do Sul', 'uf' => 'RS'], + 1506302 => ['nome' => 'Salvaterra', 'uf' => 'PA'], + 2109700 => ['nome' => 'Sambaíba', 'uf' => 'MA'], + 1718808 => ['nome' => 'Sampaio', 'uf' => 'TO'], + 4316600 => ['nome' => 'Sananduva', 'uf' => 'RS'], + 5219001 => ['nome' => 'Sanclerlândia', 'uf' => 'GO'], + 1718840 => ['nome' => 'Sandolândia', 'uf' => 'TO'], + 3545506 => ['nome' => 'Sandovalina', 'uf' => 'SP'], + 4215455 => ['nome' => 'Sangão', 'uf' => 'SC'], + 2612406 => ['nome' => 'Sanharó', 'uf' => 'PE'], + 4317103 => ['nome' => 'Sant\'Ana do Livramento', 'uf' => 'RS'], + 3545605 => ['nome' => 'Santa Adélia', 'uf' => 'SP'], + 3545704 => ['nome' => 'Santa Albertina', 'uf' => 'SP'], + 4123105 => ['nome' => 'Santa Amélia', 'uf' => 'PR'], + 2927507 => ['nome' => 'Santa Bárbara', 'uf' => 'BA'], + 3157203 => ['nome' => 'Santa Bárbara', 'uf' => 'MG'], + 3545803 => ['nome' => 'Santa Bárbara d\'Oeste', 'uf' => 'SP'], + 5219100 => ['nome' => 'Santa Bárbara de Goiás', 'uf' => 'GO'], + 3157252 => ['nome' => 'Santa Bárbara do Leste', 'uf' => 'MG'], + 3157278 => ['nome' => 'Santa Bárbara do Monte Verde', 'uf' => 'MG'], + 1506351 => ['nome' => 'Santa Bárbara do Pará', 'uf' => 'PA'], + 4316709 => ['nome' => 'Santa Bárbara do Sul', 'uf' => 'RS'], + 3157302 => ['nome' => 'Santa Bárbara do Tugúrio', 'uf' => 'MG'], + 3546009 => ['nome' => 'Santa Branca', 'uf' => 'SP'], + 2927606 => ['nome' => 'Santa Brígida', 'uf' => 'BA'], + 5107248 => ['nome' => 'Santa Carmem', 'uf' => 'MT'], + 4215505 => ['nome' => 'Santa Cecília', 'uf' => 'SC'], + 2513158 => ['nome' => 'Santa Cecília', 'uf' => 'PB'], + 4123204 => ['nome' => 'Santa Cecília do Pavão', 'uf' => 'PR'], + 4316733 => ['nome' => 'Santa Cecília do Sul', 'uf' => 'RS'], + 3546108 => ['nome' => 'Santa Clara d\'Oeste', 'uf' => 'SP'], + 4316758 => ['nome' => 'Santa Clara do Sul', 'uf' => 'RS'], + 2411205 => ['nome' => 'Santa Cruz', 'uf' => 'RN'], + 2513208 => ['nome' => 'Santa Cruz', 'uf' => 'PB'], + 2612455 => ['nome' => 'Santa Cruz', 'uf' => 'PE'], + 2927705 => ['nome' => 'Santa Cruz Cabrália', 'uf' => 'BA'], + 2612471 => ['nome' => 'Santa Cruz da Baixa Verde', 'uf' => 'PE'], + 3546207 => ['nome' => 'Santa Cruz da Conceição', 'uf' => 'SP'], + 3546256 => ['nome' => 'Santa Cruz da Esperança', 'uf' => 'SP'], + 2927804 => ['nome' => 'Santa Cruz da Vitória', 'uf' => 'BA'], + 3546306 => ['nome' => 'Santa Cruz das Palmeiras', 'uf' => 'SP'], + 5219209 => ['nome' => 'Santa Cruz de Goiás', 'uf' => 'GO'], + 3157336 => ['nome' => 'Santa Cruz de Minas', 'uf' => 'MG'], + 4123303 => ['nome' => 'Santa Cruz de Monte Castelo', 'uf' => 'PR'], + 3157377 => ['nome' => 'Santa Cruz de Salinas', 'uf' => 'MG'], + 1506401 => ['nome' => 'Santa Cruz do Arari', 'uf' => 'PA'], + 2612505 => ['nome' => 'Santa Cruz do Capibaribe', 'uf' => 'PE'], + 3157401 => ['nome' => 'Santa Cruz do Escalvado', 'uf' => 'MG'], + 2209104 => ['nome' => 'Santa Cruz do Piauí', 'uf' => 'PI'], + 3546405 => ['nome' => 'Santa Cruz do Rio Pardo', 'uf' => 'SP'], + 4316808 => ['nome' => 'Santa Cruz do Sul', 'uf' => 'RS'], + 5107743 => ['nome' => 'Santa Cruz do Xingu', 'uf' => 'MT'], + 2209153 => ['nome' => 'Santa Cruz dos Milagres', 'uf' => 'PI'], + 3157500 => ['nome' => 'Santa Efigênia de Minas', 'uf' => 'MG'], + 3546504 => ['nome' => 'Santa Ernestina', 'uf' => 'SP'], + 4123402 => ['nome' => 'Santa Fé', 'uf' => 'PR'], + 5219258 => ['nome' => 'Santa Fé de Goiás', 'uf' => 'GO'], + 3157609 => ['nome' => 'Santa Fé de Minas', 'uf' => 'MG'], + 1718865 => ['nome' => 'Santa Fé do Araguaia', 'uf' => 'TO'], + 3546603 => ['nome' => 'Santa Fé do Sul', 'uf' => 'SP'], + 2209203 => ['nome' => 'Santa Filomena', 'uf' => 'PI'], + 2612554 => ['nome' => 'Santa Filomena', 'uf' => 'PE'], + 2109759 => ['nome' => 'Santa Filomena do Maranhão', 'uf' => 'MA'], + 3546702 => ['nome' => 'Santa Gertrudes', 'uf' => 'SP'], + 4123501 => ['nome' => 'Santa Helena', 'uf' => 'PR'], + 4215554 => ['nome' => 'Santa Helena', 'uf' => 'SC'], + 2109809 => ['nome' => 'Santa Helena', 'uf' => 'MA'], + 2513307 => ['nome' => 'Santa Helena', 'uf' => 'PB'], + 5219308 => ['nome' => 'Santa Helena de Goiás', 'uf' => 'GO'], + 3157658 => ['nome' => 'Santa Helena de Minas', 'uf' => 'MG'], + 2927903 => ['nome' => 'Santa Inês', 'uf' => 'BA'], + 4123600 => ['nome' => 'Santa Inês', 'uf' => 'PR'], + 2513356 => ['nome' => 'Santa Inês', 'uf' => 'PB'], + 2109908 => ['nome' => 'Santa Inês', 'uf' => 'MA'], + 3546801 => ['nome' => 'Santa Isabel', 'uf' => 'SP'], + 5219357 => ['nome' => 'Santa Isabel', 'uf' => 'GO'], + 4123709 => ['nome' => 'Santa Isabel do Ivaí', 'uf' => 'PR'], + 1303601 => ['nome' => 'Santa Isabel do Rio Negro', 'uf' => 'AM'], + 4123808 => ['nome' => 'Santa Izabel do Oeste', 'uf' => 'PR'], + 1506500 => ['nome' => 'Santa Izabel do Pará', 'uf' => 'PA'], + 3157708 => ['nome' => 'Santa Juliana', 'uf' => 'MG'], + 3204500 => ['nome' => 'Santa Leopoldina', 'uf' => 'ES'], + 3546900 => ['nome' => 'Santa Lúcia', 'uf' => 'SP'], + 4123824 => ['nome' => 'Santa Lúcia', 'uf' => 'PR'], + 2209302 => ['nome' => 'Santa Luz', 'uf' => 'PI'], + 2110005 => ['nome' => 'Santa Luzia', 'uf' => 'MA'], + 2928059 => ['nome' => 'Santa Luzia', 'uf' => 'BA'], + 3157807 => ['nome' => 'Santa Luzia', 'uf' => 'MG'], + 2513406 => ['nome' => 'Santa Luzia', 'uf' => 'PB'], + 1100296 => ['nome' => 'Santa Luzia D\'Oeste', 'uf' => 'RO'], + 2806305 => ['nome' => 'Santa Luzia do Itanhy', 'uf' => 'SE'], + 2707909 => ['nome' => 'Santa Luzia do Norte', 'uf' => 'AL'], + 1506559 => ['nome' => 'Santa Luzia do Pará', 'uf' => 'PA'], + 2110039 => ['nome' => 'Santa Luzia do Paruá', 'uf' => 'MA'], + 3157906 => ['nome' => 'Santa Margarida', 'uf' => 'MG'], + 4316972 => ['nome' => 'Santa Margarida do Sul', 'uf' => 'RS'], + 4316907 => ['nome' => 'Santa Maria', 'uf' => 'RS'], + 2409332 => ['nome' => 'Santa Maria', 'uf' => 'RN'], + 2612604 => ['nome' => 'Santa Maria da Boa Vista', 'uf' => 'PE'], + 3547007 => ['nome' => 'Santa Maria da Serra', 'uf' => 'SP'], + 2928109 => ['nome' => 'Santa Maria da Vitória', 'uf' => 'BA'], + 1506583 => ['nome' => 'Santa Maria das Barreiras', 'uf' => 'PA'], + 3158003 => ['nome' => 'Santa Maria de Itabira', 'uf' => 'MG'], + 3204559 => ['nome' => 'Santa Maria de Jetibá', 'uf' => 'ES'], + 2612703 => ['nome' => 'Santa Maria do Cambucá', 'uf' => 'PE'], + 4316956 => ['nome' => 'Santa Maria do Herval', 'uf' => 'RS'], + 4123857 => ['nome' => 'Santa Maria do Oeste', 'uf' => 'PR'], + 1506609 => ['nome' => 'Santa Maria do Pará', 'uf' => 'PA'], + 3158102 => ['nome' => 'Santa Maria do Salto', 'uf' => 'MG'], + 3158201 => ['nome' => 'Santa Maria do Suaçuí', 'uf' => 'MG'], + 1718881 => ['nome' => 'Santa Maria do Tocantins', 'uf' => 'TO'], + 3304607 => ['nome' => 'Santa Maria Madalena', 'uf' => 'RJ'], + 4123907 => ['nome' => 'Santa Mariana', 'uf' => 'PR'], + 3547106 => ['nome' => 'Santa Mercedes', 'uf' => 'SP'], + 4123956 => ['nome' => 'Santa Mônica', 'uf' => 'PR'], + 2312205 => ['nome' => 'Santa Quitéria', 'uf' => 'CE'], + 2110104 => ['nome' => 'Santa Quitéria do Maranhão', 'uf' => 'MA'], + 2110203 => ['nome' => 'Santa Rita', 'uf' => 'MA'], + 2513703 => ['nome' => 'Santa Rita', 'uf' => 'PB'], + 3547403 => ['nome' => 'Santa Rita d\'Oeste', 'uf' => 'SP'], + 3159209 => ['nome' => 'Santa Rita de Caldas', 'uf' => 'MG'], + 2928406 => ['nome' => 'Santa Rita de Cássia', 'uf' => 'BA'], + 3159407 => ['nome' => 'Santa Rita de Ibitipoca', 'uf' => 'MG'], + 3159308 => ['nome' => 'Santa Rita de Jacutinga', 'uf' => 'MG'], + 3159357 => ['nome' => 'Santa Rita de Minas', 'uf' => 'MG'], + 5219407 => ['nome' => 'Santa Rita do Araguaia', 'uf' => 'GO'], + 3159506 => ['nome' => 'Santa Rita do Itueto', 'uf' => 'MG'], + 5219456 => ['nome' => 'Santa Rita do Novo Destino', 'uf' => 'GO'], + 5007554 => ['nome' => 'Santa Rita do Pardo', 'uf' => 'MS'], + 3547502 => ['nome' => 'Santa Rita do Passa Quatro', 'uf' => 'SP'], + 3159605 => ['nome' => 'Santa Rita do Sapucaí', 'uf' => 'MG'], + 1718899 => ['nome' => 'Santa Rita do Tocantins', 'uf' => 'TO'], + 5107768 => ['nome' => 'Santa Rita do Trivelato', 'uf' => 'MT'], + 4317202 => ['nome' => 'Santa Rosa', 'uf' => 'RS'], + 3159704 => ['nome' => 'Santa Rosa da Serra', 'uf' => 'MG'], + 5219506 => ['nome' => 'Santa Rosa de Goiás', 'uf' => 'GO'], + 4215604 => ['nome' => 'Santa Rosa de Lima', 'uf' => 'SC'], + 2806503 => ['nome' => 'Santa Rosa de Lima', 'uf' => 'SE'], + 3547601 => ['nome' => 'Santa Rosa de Viterbo', 'uf' => 'SP'], + 2209377 => ['nome' => 'Santa Rosa do Piauí', 'uf' => 'PI'], + 1200435 => ['nome' => 'Santa Rosa do Purus', 'uf' => 'AC'], + 4215653 => ['nome' => 'Santa Rosa do Sul', 'uf' => 'SC'], + 1718907 => ['nome' => 'Santa Rosa do Tocantins', 'uf' => 'TO'], + 3547650 => ['nome' => 'Santa Salete', 'uf' => 'SP'], + 3204609 => ['nome' => 'Santa Teresa', 'uf' => 'ES'], + 2928505 => ['nome' => 'Santa Teresinha', 'uf' => 'BA'], + 2513802 => ['nome' => 'Santa Teresinha', 'uf' => 'PB'], + 4317251 => ['nome' => 'Santa Tereza', 'uf' => 'RS'], + 5219605 => ['nome' => 'Santa Tereza de Goiás', 'uf' => 'GO'], + 4124020 => ['nome' => 'Santa Tereza do Oeste', 'uf' => 'PR'], + 1719004 => ['nome' => 'Santa Tereza do Tocantins', 'uf' => 'TO'], + 4215679 => ['nome' => 'Santa Terezinha', 'uf' => 'SC'], + 5107776 => ['nome' => 'Santa Terezinha', 'uf' => 'MT'], + 2612802 => ['nome' => 'Santa Terezinha', 'uf' => 'PE'], + 5219704 => ['nome' => 'Santa Terezinha de Goiás', 'uf' => 'GO'], + 4124053 => ['nome' => 'Santa Terezinha de Itaipu', 'uf' => 'PR'], + 4215687 => ['nome' => 'Santa Terezinha do Progresso', 'uf' => 'SC'], + 1720002 => ['nome' => 'Santa Terezinha do Tocantins', 'uf' => 'TO'], + 3159803 => ['nome' => 'Santa Vitória', 'uf' => 'MG'], + 4317301 => ['nome' => 'Santa Vitória do Palmar', 'uf' => 'RS'], + 2928000 => ['nome' => 'Santaluz', 'uf' => 'BA'], + 2928208 => ['nome' => 'Santana', 'uf' => 'BA'], + 1600600 => ['nome' => 'Santana', 'uf' => 'AP'], + 4317004 => ['nome' => 'Santana da Boa Vista', 'uf' => 'RS'], + 3547205 => ['nome' => 'Santana da Ponte Pensa', 'uf' => 'SP'], + 3158300 => ['nome' => 'Santana da Vargem', 'uf' => 'MG'], + 3158409 => ['nome' => 'Santana de Cataguases', 'uf' => 'MG'], + 2513505 => ['nome' => 'Santana de Mangueira', 'uf' => 'PB'], + 3547304 => ['nome' => 'Santana de Parnaíba', 'uf' => 'SP'], + 3158508 => ['nome' => 'Santana de Pirapama', 'uf' => 'MG'], + 2312007 => ['nome' => 'Santana do Acaraú', 'uf' => 'CE'], + 1506708 => ['nome' => 'Santana do Araguaia', 'uf' => 'PA'], + 2312106 => ['nome' => 'Santana do Cariri', 'uf' => 'CE'], + 3158607 => ['nome' => 'Santana do Deserto', 'uf' => 'MG'], + 3158706 => ['nome' => 'Santana do Garambéu', 'uf' => 'MG'], + 2708006 => ['nome' => 'Santana do Ipanema', 'uf' => 'AL'], + 4124004 => ['nome' => 'Santana do Itararé', 'uf' => 'PR'], + 3158805 => ['nome' => 'Santana do Jacaré', 'uf' => 'MG'], + 3158904 => ['nome' => 'Santana do Manhuaçu', 'uf' => 'MG'], + 2110237 => ['nome' => 'Santana do Maranhão', 'uf' => 'MA'], + 2411403 => ['nome' => 'Santana do Matos', 'uf' => 'RN'], + 2708105 => ['nome' => 'Santana do Mundaú', 'uf' => 'AL'], + 3158953 => ['nome' => 'Santana do Paraíso', 'uf' => 'MG'], + 2209351 => ['nome' => 'Santana do Piauí', 'uf' => 'PI'], + 3159001 => ['nome' => 'Santana do Riacho', 'uf' => 'MG'], + 2806404 => ['nome' => 'Santana do São Francisco', 'uf' => 'SE'], + 2411429 => ['nome' => 'Santana do Seridó', 'uf' => 'RN'], + 2513604 => ['nome' => 'Santana dos Garrotes', 'uf' => 'PB'], + 3159100 => ['nome' => 'Santana dos Montes', 'uf' => 'MG'], + 2928307 => ['nome' => 'Santanópolis', 'uf' => 'BA'], + 1506807 => ['nome' => 'Santarém', 'uf' => 'PA'], + 1506906 => ['nome' => 'Santarém Novo', 'uf' => 'PA'], + 4317400 => ['nome' => 'Santiago', 'uf' => 'RS'], + 4215695 => ['nome' => 'Santiago do Sul', 'uf' => 'SC'], + 5107263 => ['nome' => 'Santo Afonso', 'uf' => 'MT'], + 2928604 => ['nome' => 'Santo Amaro', 'uf' => 'BA'], + 4215703 => ['nome' => 'Santo Amaro da Imperatriz', 'uf' => 'SC'], + 2806602 => ['nome' => 'Santo Amaro das Brotas', 'uf' => 'SE'], + 2110278 => ['nome' => 'Santo Amaro do Maranhão', 'uf' => 'MA'], + 3547700 => ['nome' => 'Santo Anastácio', 'uf' => 'SP'], + 3547809 => ['nome' => 'Santo André', 'uf' => 'SP'], + 2513851 => ['nome' => 'Santo André', 'uf' => 'PB'], + 4317509 => ['nome' => 'Santo Ângelo', 'uf' => 'RS'], + 2411502 => ['nome' => 'Santo Antônio', 'uf' => 'RN'], + 3547908 => ['nome' => 'Santo Antônio da Alegria', 'uf' => 'SP'], + 5219712 => ['nome' => 'Santo Antônio da Barra', 'uf' => 'GO'], + 4317608 => ['nome' => 'Santo Antônio da Patrulha', 'uf' => 'RS'], + 4124103 => ['nome' => 'Santo Antônio da Platina', 'uf' => 'PR'], + 4317707 => ['nome' => 'Santo Antônio das Missões', 'uf' => 'RS'], + 5219738 => ['nome' => 'Santo Antônio de Goiás', 'uf' => 'GO'], + 2928703 => ['nome' => 'Santo Antônio de Jesus', 'uf' => 'BA'], + 2209401 => ['nome' => 'Santo Antônio de Lisboa', 'uf' => 'PI'], + 3304706 => ['nome' => 'Santo Antônio de Pádua', 'uf' => 'RJ'], + 3548005 => ['nome' => 'Santo Antônio de Posse', 'uf' => 'SP'], + 3159902 => ['nome' => 'Santo Antônio do Amparo', 'uf' => 'MG'], + 3548054 => ['nome' => 'Santo Antônio do Aracanguá', 'uf' => 'SP'], + 3160009 => ['nome' => 'Santo Antônio do Aventureiro', 'uf' => 'MG'], + 4124202 => ['nome' => 'Santo Antônio do Caiuá', 'uf' => 'PR'], + 5219753 => ['nome' => 'Santo Antônio do Descoberto', 'uf' => 'GO'], + 3160108 => ['nome' => 'Santo Antônio do Grama', 'uf' => 'MG'], + 1303700 => ['nome' => 'Santo Antônio do Içá', 'uf' => 'AM'], + 3160207 => ['nome' => 'Santo Antônio do Itambé', 'uf' => 'MG'], + 3160306 => ['nome' => 'Santo Antônio do Jacinto', 'uf' => 'MG'], + 3548104 => ['nome' => 'Santo Antônio do Jardim', 'uf' => 'SP'], + 5107792 => ['nome' => 'Santo Antônio do Leste', 'uf' => 'MT'], + 5107800 => ['nome' => 'Santo Antônio do Leverger', 'uf' => 'MT'], + 3160405 => ['nome' => 'Santo Antônio do Monte', 'uf' => 'MG'], + 4317558 => ['nome' => 'Santo Antônio do Palma', 'uf' => 'RS'], + 4124301 => ['nome' => 'Santo Antônio do Paraíso', 'uf' => 'PR'], + 3548203 => ['nome' => 'Santo Antônio do Pinhal', 'uf' => 'SP'], + 4317756 => ['nome' => 'Santo Antônio do Planalto', 'uf' => 'RS'], + 3160454 => ['nome' => 'Santo Antônio do Retiro', 'uf' => 'MG'], + 3160504 => ['nome' => 'Santo Antônio do Rio Abaixo', 'uf' => 'MG'], + 4124400 => ['nome' => 'Santo Antônio do Sudoeste', 'uf' => 'PR'], + 1507003 => ['nome' => 'Santo Antônio do Tauá', 'uf' => 'PA'], + 2110302 => ['nome' => 'Santo Antônio dos Lopes', 'uf' => 'MA'], + 2209450 => ['nome' => 'Santo Antônio dos Milagres', 'uf' => 'PI'], + 4317806 => ['nome' => 'Santo Augusto', 'uf' => 'RS'], + 4317905 => ['nome' => 'Santo Cristo', 'uf' => 'RS'], + 2928802 => ['nome' => 'Santo Estêvão', 'uf' => 'BA'], + 3548302 => ['nome' => 'Santo Expedito', 'uf' => 'SP'], + 4317954 => ['nome' => 'Santo Expedito do Sul', 'uf' => 'RS'], + 3160603 => ['nome' => 'Santo Hipólito', 'uf' => 'MG'], + 4124509 => ['nome' => 'Santo Inácio', 'uf' => 'PR'], + 2209500 => ['nome' => 'Santo Inácio do Piauí', 'uf' => 'PI'], + 3548401 => ['nome' => 'Santópolis do Aguapeí', 'uf' => 'SP'], + 3548500 => ['nome' => 'Santos', 'uf' => 'SP'], + 3160702 => ['nome' => 'Santos Dumont', 'uf' => 'MG'], + 2312304 => ['nome' => 'São Benedito', 'uf' => 'CE'], + 2110401 => ['nome' => 'São Benedito do Rio Preto', 'uf' => 'MA'], + 2612901 => ['nome' => 'São Benedito do Sul', 'uf' => 'PE'], + 2513927 => ['nome' => 'São Bentinho', 'uf' => 'PB'], + 2513901 => ['nome' => 'São Bento', 'uf' => 'PB'], + 2110500 => ['nome' => 'São Bento', 'uf' => 'MA'], + 3160801 => ['nome' => 'São Bento Abade', 'uf' => 'MG'], + 2411601 => ['nome' => 'São Bento do Norte', 'uf' => 'RN'], + 3548609 => ['nome' => 'São Bento do Sapucaí', 'uf' => 'SP'], + 4215802 => ['nome' => 'São Bento do Sul', 'uf' => 'SC'], + 1720101 => ['nome' => 'São Bento do Tocantins', 'uf' => 'TO'], + 2411700 => ['nome' => 'São Bento do Trairí', 'uf' => 'RN'], + 2613008 => ['nome' => 'São Bento do Una', 'uf' => 'PE'], + 4215752 => ['nome' => 'São Bernardino', 'uf' => 'SC'], + 2110609 => ['nome' => 'São Bernardo', 'uf' => 'MA'], + 3548708 => ['nome' => 'São Bernardo do Campo', 'uf' => 'SP'], + 4215901 => ['nome' => 'São Bonifácio', 'uf' => 'SC'], + 4318002 => ['nome' => 'São Borja', 'uf' => 'RS'], + 2708204 => ['nome' => 'São Brás', 'uf' => 'AL'], + 3160900 => ['nome' => 'São Brás do Suaçuí', 'uf' => 'MG'], + 2209559 => ['nome' => 'São Braz do Piauí', 'uf' => 'PI'], + 2613107 => ['nome' => 'São Caetano', 'uf' => 'PE'], + 1507102 => ['nome' => 'São Caetano de Odivelas', 'uf' => 'PA'], + 3548807 => ['nome' => 'São Caetano do Sul', 'uf' => 'SP'], + 3548906 => ['nome' => 'São Carlos', 'uf' => 'SP'], + 4216008 => ['nome' => 'São Carlos', 'uf' => 'SC'], + 4124608 => ['nome' => 'São Carlos do Ivaí', 'uf' => 'PR'], + 2806701 => ['nome' => 'São Cristóvão', 'uf' => 'SE'], + 4216057 => ['nome' => 'São Cristovão do Sul', 'uf' => 'SC'], + 2928901 => ['nome' => 'São Desidério', 'uf' => 'BA'], + 2928950 => ['nome' => 'São Domingos', 'uf' => 'BA'], + 4216107 => ['nome' => 'São Domingos', 'uf' => 'SC'], + 2513968 => ['nome' => 'São Domingos', 'uf' => 'PB'], + 2806800 => ['nome' => 'São Domingos', 'uf' => 'SE'], + 5219803 => ['nome' => 'São Domingos', 'uf' => 'GO'], + 3160959 => ['nome' => 'São Domingos das Dores', 'uf' => 'MG'], + 1507151 => ['nome' => 'São Domingos do Araguaia', 'uf' => 'PA'], + 2110658 => ['nome' => 'São Domingos do Azeitão', 'uf' => 'MA'], + 1507201 => ['nome' => 'São Domingos do Capim', 'uf' => 'PA'], + 2513943 => ['nome' => 'São Domingos do Cariri', 'uf' => 'PB'], + 2110708 => ['nome' => 'São Domingos do Maranhão', 'uf' => 'MA'], + 3204658 => ['nome' => 'São Domingos do Norte', 'uf' => 'ES'], + 3161007 => ['nome' => 'São Domingos do Prata', 'uf' => 'MG'], + 4318051 => ['nome' => 'São Domingos do Sul', 'uf' => 'RS'], + 2929107 => ['nome' => 'São Felipe', 'uf' => 'BA'], + 1101484 => ['nome' => 'São Felipe D\'Oeste', 'uf' => 'RO'], + 2929008 => ['nome' => 'São Félix', 'uf' => 'BA'], + 2110807 => ['nome' => 'São Félix de Balsas', 'uf' => 'MA'], + 3161056 => ['nome' => 'São Félix de Minas', 'uf' => 'MG'], + 5107859 => ['nome' => 'São Félix do Araguaia', 'uf' => 'MT'], + 2929057 => ['nome' => 'São Félix do Coribe', 'uf' => 'BA'], + 2209609 => ['nome' => 'São Félix do Piauí', 'uf' => 'PI'], + 1720150 => ['nome' => 'São Félix do Tocantins', 'uf' => 'TO'], + 1507300 => ['nome' => 'São Félix do Xingu', 'uf' => 'PA'], + 2411809 => ['nome' => 'São Fernando', 'uf' => 'RN'], + 3304805 => ['nome' => 'São Fidélis', 'uf' => 'RJ'], + 3549003 => ['nome' => 'São Francisco', 'uf' => 'SP'], + 2513984 => ['nome' => 'São Francisco', 'uf' => 'PB'], + 2806909 => ['nome' => 'São Francisco', 'uf' => 'SE'], + 3161106 => ['nome' => 'São Francisco', 'uf' => 'MG'], + 4318101 => ['nome' => 'São Francisco de Assis', 'uf' => 'RS'], + 2209658 => ['nome' => 'São Francisco de Assis do Piauí', 'uf' => 'PI'], + 5219902 => ['nome' => 'São Francisco de Goiás', 'uf' => 'GO'], + 3304755 => ['nome' => 'São Francisco de Itabapoana', 'uf' => 'RJ'], + 4318200 => ['nome' => 'São Francisco de Paula', 'uf' => 'RS'], + 3161205 => ['nome' => 'São Francisco de Paula', 'uf' => 'MG'], + 3161304 => ['nome' => 'São Francisco de Sales', 'uf' => 'MG'], + 2110856 => ['nome' => 'São Francisco do Brejão', 'uf' => 'MA'], + 2929206 => ['nome' => 'São Francisco do Conde', 'uf' => 'BA'], + 3161403 => ['nome' => 'São Francisco do Glória', 'uf' => 'MG'], + 1101492 => ['nome' => 'São Francisco do Guaporé', 'uf' => 'RO'], + 2110906 => ['nome' => 'São Francisco do Maranhão', 'uf' => 'MA'], + 2411908 => ['nome' => 'São Francisco do Oeste', 'uf' => 'RN'], + 1507409 => ['nome' => 'São Francisco do Pará', 'uf' => 'PA'], + 2209708 => ['nome' => 'São Francisco do Piauí', 'uf' => 'PI'], + 4216206 => ['nome' => 'São Francisco do Sul', 'uf' => 'SC'], + 4318309 => ['nome' => 'São Gabriel', 'uf' => 'RS'], + 2929255 => ['nome' => 'São Gabriel', 'uf' => 'BA'], + 1303809 => ['nome' => 'São Gabriel da Cachoeira', 'uf' => 'AM'], + 3204708 => ['nome' => 'São Gabriel da Palha', 'uf' => 'ES'], + 5007695 => ['nome' => 'São Gabriel do Oeste', 'uf' => 'MS'], + 3161502 => ['nome' => 'São Geraldo', 'uf' => 'MG'], + 3161601 => ['nome' => 'São Geraldo da Piedade', 'uf' => 'MG'], + 1507458 => ['nome' => 'São Geraldo do Araguaia', 'uf' => 'PA'], + 3161650 => ['nome' => 'São Geraldo do Baixio', 'uf' => 'MG'], + 3304904 => ['nome' => 'São Gonçalo', 'uf' => 'RJ'], + 3161700 => ['nome' => 'São Gonçalo do Abaeté', 'uf' => 'MG'], + 2412005 => ['nome' => 'São Gonçalo do Amarante', 'uf' => 'RN'], + 2312403 => ['nome' => 'São Gonçalo do Amarante', 'uf' => 'CE'], + 2209757 => ['nome' => 'São Gonçalo do Gurguéia', 'uf' => 'PI'], + 3161809 => ['nome' => 'São Gonçalo do Pará', 'uf' => 'MG'], + 2209807 => ['nome' => 'São Gonçalo do Piauí', 'uf' => 'PI'], + 3161908 => ['nome' => 'São Gonçalo do Rio Abaixo', 'uf' => 'MG'], + 3125507 => ['nome' => 'São Gonçalo do Rio Preto', 'uf' => 'MG'], + 3162005 => ['nome' => 'São Gonçalo do Sapucaí', 'uf' => 'MG'], + 2929305 => ['nome' => 'São Gonçalo dos Campos', 'uf' => 'BA'], + 3162104 => ['nome' => 'São Gotardo', 'uf' => 'MG'], + 4318408 => ['nome' => 'São Jerônimo', 'uf' => 'RS'], + 4124707 => ['nome' => 'São Jerônimo da Serra', 'uf' => 'PR'], + 4124806 => ['nome' => 'São João', 'uf' => 'PR'], + 2613206 => ['nome' => 'São João', 'uf' => 'PE'], + 2111003 => ['nome' => 'São João Batista', 'uf' => 'MA'], + 4216305 => ['nome' => 'São João Batista', 'uf' => 'SC'], + 3162203 => ['nome' => 'São João Batista do Glória', 'uf' => 'MG'], + 5220009 => ['nome' => 'São João d\'Aliança', 'uf' => 'GO'], + 1400506 => ['nome' => 'São João da Baliza', 'uf' => 'RR'], + 3305000 => ['nome' => 'São João da Barra', 'uf' => 'RJ'], + 3549102 => ['nome' => 'São João da Boa Vista', 'uf' => 'SP'], + 2209856 => ['nome' => 'São João da Canabrava', 'uf' => 'PI'], + 2209872 => ['nome' => 'São João da Fronteira', 'uf' => 'PI'], + 3162252 => ['nome' => 'São João da Lagoa', 'uf' => 'MG'], + 3162302 => ['nome' => 'São João da Mata', 'uf' => 'MG'], + 5220058 => ['nome' => 'São João da Paraúna', 'uf' => 'GO'], + 1507466 => ['nome' => 'São João da Ponta', 'uf' => 'PA'], + 3162401 => ['nome' => 'São João da Ponte', 'uf' => 'MG'], + 2209906 => ['nome' => 'São João da Serra', 'uf' => 'PI'], + 4318424 => ['nome' => 'São João da Urtiga', 'uf' => 'RS'], + 2209955 => ['nome' => 'São João da Varjota', 'uf' => 'PI'], + 3549201 => ['nome' => 'São João das Duas Pontes', 'uf' => 'SP'], + 3162450 => ['nome' => 'São João das Missões', 'uf' => 'MG'], + 3549250 => ['nome' => 'São João de Iracema', 'uf' => 'SP'], + 3305109 => ['nome' => 'São João de Meriti', 'uf' => 'RJ'], + 1507474 => ['nome' => 'São João de Pirabas', 'uf' => 'PA'], + 3162500 => ['nome' => 'São João del Rei', 'uf' => 'MG'], + 1507508 => ['nome' => 'São João do Araguaia', 'uf' => 'PA'], + 2209971 => ['nome' => 'São João do Arraial', 'uf' => 'PI'], + 4124905 => ['nome' => 'São João do Caiuá', 'uf' => 'PR'], + 2514008 => ['nome' => 'São João do Cariri', 'uf' => 'PB'], + 2111029 => ['nome' => 'São João do Carú', 'uf' => 'MA'], + 4216354 => ['nome' => 'São João do Itaperiú', 'uf' => 'SC'], + 4125001 => ['nome' => 'São João do Ivaí', 'uf' => 'PR'], + 2312502 => ['nome' => 'São João do Jaguaribe', 'uf' => 'CE'], + 3162559 => ['nome' => 'São João do Manhuaçu', 'uf' => 'MG'], + 3162575 => ['nome' => 'São João do Manteninha', 'uf' => 'MG'], + 4216255 => ['nome' => 'São João do Oeste', 'uf' => 'SC'], + 3162609 => ['nome' => 'São João do Oriente', 'uf' => 'MG'], + 3162658 => ['nome' => 'São João do Pacuí', 'uf' => 'MG'], + 3162708 => ['nome' => 'São João do Paraíso', 'uf' => 'MG'], + 2111052 => ['nome' => 'São João do Paraíso', 'uf' => 'MA'], + 3549300 => ['nome' => 'São João do Pau d\'Alho', 'uf' => 'SP'], + 2210003 => ['nome' => 'São João do Piauí', 'uf' => 'PI'], + 4318432 => ['nome' => 'São João do Polêsine', 'uf' => 'RS'], + 2500700 => ['nome' => 'São João do Rio do Peixe', 'uf' => 'PB'], + 2412104 => ['nome' => 'São João do Sabugi', 'uf' => 'RN'], + 2111078 => ['nome' => 'São João do Soter', 'uf' => 'MA'], + 4216404 => ['nome' => 'São João do Sul', 'uf' => 'SC'], + 2514107 => ['nome' => 'São João do Tigre', 'uf' => 'PB'], + 4125100 => ['nome' => 'São João do Triunfo', 'uf' => 'PR'], + 2111102 => ['nome' => 'São João dos Patos', 'uf' => 'MA'], + 3162807 => ['nome' => 'São João Evangelista', 'uf' => 'MG'], + 3162906 => ['nome' => 'São João Nepomuceno', 'uf' => 'MG'], + 4216503 => ['nome' => 'São Joaquim', 'uf' => 'SC'], + 3549409 => ['nome' => 'São Joaquim da Barra', 'uf' => 'SP'], + 3162922 => ['nome' => 'São Joaquim de Bicas', 'uf' => 'MG'], + 2613305 => ['nome' => 'São Joaquim do Monte', 'uf' => 'PE'], + 4318440 => ['nome' => 'São Jorge', 'uf' => 'RS'], + 4125209 => ['nome' => 'São Jorge d\'Oeste', 'uf' => 'PR'], + 4125308 => ['nome' => 'São Jorge do Ivaí', 'uf' => 'PR'], + 4125357 => ['nome' => 'São Jorge do Patrocínio', 'uf' => 'PR'], + 4216602 => ['nome' => 'São José', 'uf' => 'SC'], + 3162948 => ['nome' => 'São José da Barra', 'uf' => 'MG'], + 3549508 => ['nome' => 'São José da Bela Vista', 'uf' => 'SP'], + 4125407 => ['nome' => 'São José da Boa Vista', 'uf' => 'PR'], + 2613404 => ['nome' => 'São José da Coroa Grande', 'uf' => 'PE'], + 2514206 => ['nome' => 'São José da Lagoa Tapada', 'uf' => 'PB'], + 2708303 => ['nome' => 'São José da Laje', 'uf' => 'AL'], + 3162955 => ['nome' => 'São José da Lapa', 'uf' => 'MG'], + 3163003 => ['nome' => 'São José da Safira', 'uf' => 'MG'], + 2708402 => ['nome' => 'São José da Tapera', 'uf' => 'AL'], + 3163102 => ['nome' => 'São José da Varginha', 'uf' => 'MG'], + 2929354 => ['nome' => 'São José da Vitória', 'uf' => 'BA'], + 4318457 => ['nome' => 'São José das Missões', 'uf' => 'RS'], + 4125456 => ['nome' => 'São José das Palmeiras', 'uf' => 'PR'], + 2514305 => ['nome' => 'São José de Caiana', 'uf' => 'PB'], + 2514404 => ['nome' => 'São José de Espinharas', 'uf' => 'PB'], + 2412203 => ['nome' => 'São José de Mipibu', 'uf' => 'RN'], + 2514503 => ['nome' => 'São José de Piranhas', 'uf' => 'PB'], + 2514552 => ['nome' => 'São José de Princesa', 'uf' => 'PB'], + 2111201 => ['nome' => 'São José de Ribamar', 'uf' => 'MA'], + 3305133 => ['nome' => 'São José de Ubá', 'uf' => 'RJ'], + 3163201 => ['nome' => 'São José do Alegre', 'uf' => 'MG'], + 3549607 => ['nome' => 'São José do Barreiro', 'uf' => 'SP'], + 2613503 => ['nome' => 'São José do Belmonte', 'uf' => 'PE'], + 2514602 => ['nome' => 'São José do Bonfim', 'uf' => 'PB'], + 2514651 => ['nome' => 'São José do Brejo do Cruz', 'uf' => 'PB'], + 3204807 => ['nome' => 'São José do Calçado', 'uf' => 'ES'], + 2412302 => ['nome' => 'São José do Campestre', 'uf' => 'RN'], + 4216701 => ['nome' => 'São José do Cedro', 'uf' => 'SC'], + 4216800 => ['nome' => 'São José do Cerrito', 'uf' => 'SC'], + 2210052 => ['nome' => 'São José do Divino', 'uf' => 'PI'], + 3163300 => ['nome' => 'São José do Divino', 'uf' => 'MG'], + 2613602 => ['nome' => 'São José do Egito', 'uf' => 'PE'], + 3163409 => ['nome' => 'São José do Goiabal', 'uf' => 'MG'], + 4318465 => ['nome' => 'São José do Herval', 'uf' => 'RS'], + 4318481 => ['nome' => 'São José do Hortêncio', 'uf' => 'RS'], + 4318499 => ['nome' => 'São José do Inhacorá', 'uf' => 'RS'], + 2929370 => ['nome' => 'São José do Jacuípe', 'uf' => 'BA'], + 3163508 => ['nome' => 'São José do Jacuri', 'uf' => 'MG'], + 3163607 => ['nome' => 'São José do Mantimento', 'uf' => 'MG'], + 4318507 => ['nome' => 'São José do Norte', 'uf' => 'RS'], + 4318606 => ['nome' => 'São José do Ouro', 'uf' => 'RS'], + 2210102 => ['nome' => 'São José do Peixe', 'uf' => 'PI'], + 2210201 => ['nome' => 'São José do Piauí', 'uf' => 'PI'], + 5107297 => ['nome' => 'São José do Povo', 'uf' => 'MT'], + 5107305 => ['nome' => 'São José do Rio Claro', 'uf' => 'MT'], + 3549706 => ['nome' => 'São José do Rio Pardo', 'uf' => 'SP'], + 3549805 => ['nome' => 'São José do Rio Preto', 'uf' => 'SP'], + 2514701 => ['nome' => 'São José do Sabugi', 'uf' => 'PB'], + 2412401 => ['nome' => 'São José do Seridó', 'uf' => 'RN'], + 4318614 => ['nome' => 'São José do Sul', 'uf' => 'RS'], + 3305158 => ['nome' => 'São José do Vale do Rio Preto', 'uf' => 'RJ'], + 5107354 => ['nome' => 'São José do Xingu', 'uf' => 'MT'], + 4318622 => ['nome' => 'São José dos Ausentes', 'uf' => 'RS'], + 2111250 => ['nome' => 'São José dos Basílios', 'uf' => 'MA'], + 3549904 => ['nome' => 'São José dos Campos', 'uf' => 'SP'], + 2514800 => ['nome' => 'São José dos Cordeiros', 'uf' => 'PB'], + 4125506 => ['nome' => 'São José dos Pinhais', 'uf' => 'PR'], + 5107107 => ['nome' => 'São José dos Quatro Marcos', 'uf' => 'MT'], + 2514453 => ['nome' => 'São José dos Ramos', 'uf' => 'PB'], + 2210300 => ['nome' => 'São Julião', 'uf' => 'PI'], + 4318705 => ['nome' => 'São Leopoldo', 'uf' => 'RS'], + 3163706 => ['nome' => 'São Lourenço', 'uf' => 'MG'], + 2613701 => ['nome' => 'São Lourenço da Mata', 'uf' => 'PE'], + 3549953 => ['nome' => 'São Lourenço da Serra', 'uf' => 'SP'], + 4216909 => ['nome' => 'São Lourenço do Oeste', 'uf' => 'SC'], + 2210359 => ['nome' => 'São Lourenço do Piauí', 'uf' => 'PI'], + 4318804 => ['nome' => 'São Lourenço do Sul', 'uf' => 'RS'], + 4217006 => ['nome' => 'São Ludgero', 'uf' => 'SC'], + 2111300 => ['nome' => 'São Luís', 'uf' => 'MA'], + 5220108 => ['nome' => 'São Luís de Montes Belos', 'uf' => 'GO'], + 2312601 => ['nome' => 'São Luís do Curu', 'uf' => 'CE'], + 2210375 => ['nome' => 'São Luis do Piauí', 'uf' => 'PI'], + 2708501 => ['nome' => 'São Luís do Quitunde', 'uf' => 'AL'], + 2111409 => ['nome' => 'São Luís Gonzaga do Maranhão', 'uf' => 'MA'], + 1400605 => ['nome' => 'São Luiz', 'uf' => 'RR'], + 5220157 => ['nome' => 'São Luiz do Norte', 'uf' => 'GO'], + 3550001 => ['nome' => 'São Luiz do Paraitinga', 'uf' => 'SP'], + 4318903 => ['nome' => 'São Luiz Gonzaga', 'uf' => 'RS'], + 2514909 => ['nome' => 'São Mamede', 'uf' => 'PB'], + 4125555 => ['nome' => 'São Manoel do Paraná', 'uf' => 'PR'], + 3550100 => ['nome' => 'São Manuel', 'uf' => 'SP'], + 4319000 => ['nome' => 'São Marcos', 'uf' => 'RS'], + 4217105 => ['nome' => 'São Martinho', 'uf' => 'SC'], + 4319109 => ['nome' => 'São Martinho', 'uf' => 'RS'], + 4319125 => ['nome' => 'São Martinho da Serra', 'uf' => 'RS'], + 3204906 => ['nome' => 'São Mateus', 'uf' => 'ES'], + 2111508 => ['nome' => 'São Mateus do Maranhão', 'uf' => 'MA'], + 4125605 => ['nome' => 'São Mateus do Sul', 'uf' => 'PR'], + 2412500 => ['nome' => 'São Miguel', 'uf' => 'RN'], + 3550209 => ['nome' => 'São Miguel Arcanjo', 'uf' => 'SP'], + 2210383 => ['nome' => 'São Miguel da Baixa Grande', 'uf' => 'PI'], + 4217154 => ['nome' => 'São Miguel da Boa Vista', 'uf' => 'SC'], + 2929404 => ['nome' => 'São Miguel das Matas', 'uf' => 'BA'], + 4319158 => ['nome' => 'São Miguel das Missões', 'uf' => 'RS'], + 2515005 => ['nome' => 'São Miguel de Taipu', 'uf' => 'PB'], + 2807006 => ['nome' => 'São Miguel do Aleixo', 'uf' => 'SE'], + 3163805 => ['nome' => 'São Miguel do Anta', 'uf' => 'MG'], + 5220207 => ['nome' => 'São Miguel do Araguaia', 'uf' => 'GO'], + 2210391 => ['nome' => 'São Miguel do Fidalgo', 'uf' => 'PI'], + 2412559 => ['nome' => 'São Miguel do Gostoso', 'uf' => 'RN'], + 1507607 => ['nome' => 'São Miguel do Guamá', 'uf' => 'PA'], + 1100320 => ['nome' => 'São Miguel do Guaporé', 'uf' => 'RO'], + 4125704 => ['nome' => 'São Miguel do Iguaçu', 'uf' => 'PR'], + 4217204 => ['nome' => 'São Miguel do Oeste', 'uf' => 'SC'], + 5220264 => ['nome' => 'São Miguel do Passa Quatro', 'uf' => 'GO'], + 2210409 => ['nome' => 'São Miguel do Tapuio', 'uf' => 'PI'], + 1720200 => ['nome' => 'São Miguel do Tocantins', 'uf' => 'TO'], + 2708600 => ['nome' => 'São Miguel dos Campos', 'uf' => 'AL'], + 2708709 => ['nome' => 'São Miguel dos Milagres', 'uf' => 'AL'], + 4319208 => ['nome' => 'São Nicolau', 'uf' => 'RS'], + 5220280 => ['nome' => 'São Patrício', 'uf' => 'GO'], + 3550308 => ['nome' => 'São Paulo', 'uf' => 'SP'], + 4319307 => ['nome' => 'São Paulo das Missões', 'uf' => 'RS'], + 1303908 => ['nome' => 'São Paulo de Olivença', 'uf' => 'AM'], + 2412609 => ['nome' => 'São Paulo do Potengi', 'uf' => 'RN'], + 2412708 => ['nome' => 'São Pedro', 'uf' => 'RN'], + 3550407 => ['nome' => 'São Pedro', 'uf' => 'SP'], + 2111532 => ['nome' => 'São Pedro da Água Branca', 'uf' => 'MA'], + 3305208 => ['nome' => 'São Pedro da Aldeia', 'uf' => 'RJ'], + 5107404 => ['nome' => 'São Pedro da Cipa', 'uf' => 'MT'], + 4319356 => ['nome' => 'São Pedro da Serra', 'uf' => 'RS'], + 3163904 => ['nome' => 'São Pedro da União', 'uf' => 'MG'], + 4319364 => ['nome' => 'São Pedro das Missões', 'uf' => 'RS'], + 4217253 => ['nome' => 'São Pedro de Alcântara', 'uf' => 'SC'], + 4319372 => ['nome' => 'São Pedro do Butiá', 'uf' => 'RS'], + 4125753 => ['nome' => 'São Pedro do Iguaçu', 'uf' => 'PR'], + 4125803 => ['nome' => 'São Pedro do Ivaí', 'uf' => 'PR'], + 4125902 => ['nome' => 'São Pedro do Paraná', 'uf' => 'PR'], + 2210508 => ['nome' => 'São Pedro do Piauí', 'uf' => 'PI'], + 3164100 => ['nome' => 'São Pedro do Suaçuí', 'uf' => 'MG'], + 4319406 => ['nome' => 'São Pedro do Sul', 'uf' => 'RS'], + 3550506 => ['nome' => 'São Pedro do Turvo', 'uf' => 'SP'], + 2111573 => ['nome' => 'São Pedro dos Crentes', 'uf' => 'MA'], + 3164001 => ['nome' => 'São Pedro dos Ferros', 'uf' => 'MG'], + 2412807 => ['nome' => 'São Rafael', 'uf' => 'RN'], + 2111607 => ['nome' => 'São Raimundo das Mangabeiras', 'uf' => 'MA'], + 2111631 => ['nome' => 'São Raimundo do Doca Bezerra', 'uf' => 'MA'], + 2210607 => ['nome' => 'São Raimundo Nonato', 'uf' => 'PI'], + 2111672 => ['nome' => 'São Roberto', 'uf' => 'MA'], + 3164209 => ['nome' => 'São Romão', 'uf' => 'MG'], + 3550605 => ['nome' => 'São Roque', 'uf' => 'SP'], + 3164308 => ['nome' => 'São Roque de Minas', 'uf' => 'MG'], + 3204955 => ['nome' => 'São Roque do Canaã', 'uf' => 'ES'], + 1720259 => ['nome' => 'São Salvador do Tocantins', 'uf' => 'TO'], + 3550704 => ['nome' => 'São Sebastião', 'uf' => 'SP'], + 2708808 => ['nome' => 'São Sebastião', 'uf' => 'AL'], + 4126009 => ['nome' => 'São Sebastião da Amoreira', 'uf' => 'PR'], + 3164407 => ['nome' => 'São Sebastião da Bela Vista', 'uf' => 'MG'], + 1507706 => ['nome' => 'São Sebastião da Boa Vista', 'uf' => 'PA'], + 3550803 => ['nome' => 'São Sebastião da Grama', 'uf' => 'SP'], + 3164431 => ['nome' => 'São Sebastião da Vargem Alegre', 'uf' => 'MG'], + 2515104 => ['nome' => 'São Sebastião de Lagoa de Roça', 'uf' => 'PB'], + 3305307 => ['nome' => 'São Sebastião do Alto', 'uf' => 'RJ'], + 3164472 => ['nome' => 'São Sebastião do Anta', 'uf' => 'MG'], + 4319505 => ['nome' => 'São Sebastião do Caí', 'uf' => 'RS'], + 3164506 => ['nome' => 'São Sebastião do Maranhão', 'uf' => 'MG'], + 3164605 => ['nome' => 'São Sebastião do Oeste', 'uf' => 'MG'], + 3164704 => ['nome' => 'São Sebastião do Paraíso', 'uf' => 'MG'], + 2929503 => ['nome' => 'São Sebastião do Passé', 'uf' => 'BA'], + 3164803 => ['nome' => 'São Sebastião do Rio Preto', 'uf' => 'MG'], + 3164902 => ['nome' => 'São Sebastião do Rio Verde', 'uf' => 'MG'], + 1720309 => ['nome' => 'São Sebastião do Tocantins', 'uf' => 'TO'], + 1303957 => ['nome' => 'São Sebastião do Uatumã', 'uf' => 'AM'], + 2515203 => ['nome' => 'São Sebastião do Umbuzeiro', 'uf' => 'PB'], + 4319604 => ['nome' => 'São Sepé', 'uf' => 'RS'], + 3550902 => ['nome' => 'São Simão', 'uf' => 'SP'], + 5220405 => ['nome' => 'São Simão', 'uf' => 'GO'], + 3165206 => ['nome' => 'São Thomé das Letras', 'uf' => 'MG'], + 3165008 => ['nome' => 'São Tiago', 'uf' => 'MG'], + 3165107 => ['nome' => 'São Tomás de Aquino', 'uf' => 'MG'], + 4126108 => ['nome' => 'São Tomé', 'uf' => 'PR'], + 2412906 => ['nome' => 'São Tomé', 'uf' => 'RN'], + 4319703 => ['nome' => 'São Valentim', 'uf' => 'RS'], + 4319711 => ['nome' => 'São Valentim do Sul', 'uf' => 'RS'], + 1720499 => ['nome' => 'São Valério', 'uf' => 'TO'], + 4319737 => ['nome' => 'São Valério do Sul', 'uf' => 'RS'], + 4319752 => ['nome' => 'São Vendelino', 'uf' => 'RS'], + 3551009 => ['nome' => 'São Vicente', 'uf' => 'SP'], + 2413003 => ['nome' => 'São Vicente', 'uf' => 'RN'], + 3165305 => ['nome' => 'São Vicente de Minas', 'uf' => 'MG'], + 2515401 => ['nome' => 'São Vicente do Seridó', 'uf' => 'PB'], + 4319802 => ['nome' => 'São Vicente do Sul', 'uf' => 'RS'], + 2613800 => ['nome' => 'São Vicente Ferrer', 'uf' => 'PE'], + 2111706 => ['nome' => 'São Vicente Ferrer', 'uf' => 'MA'], + 2515302 => ['nome' => 'Sapé', 'uf' => 'PB'], + 2929602 => ['nome' => 'Sapeaçu', 'uf' => 'BA'], + 5107875 => ['nome' => 'Sapezal', 'uf' => 'MT'], + 4319901 => ['nome' => 'Sapiranga', 'uf' => 'RS'], + 4126207 => ['nome' => 'Sapopema', 'uf' => 'PR'], + 3165404 => ['nome' => 'Sapucaí-Mirim', 'uf' => 'MG'], + 1507755 => ['nome' => 'Sapucaia', 'uf' => 'PA'], + 3305406 => ['nome' => 'Sapucaia', 'uf' => 'RJ'], + 4320008 => ['nome' => 'Sapucaia do Sul', 'uf' => 'RS'], + 3305505 => ['nome' => 'Saquarema', 'uf' => 'RJ'], + 4126256 => ['nome' => 'Sarandi', 'uf' => 'PR'], + 4320107 => ['nome' => 'Sarandi', 'uf' => 'RS'], + 3551108 => ['nome' => 'Sarapuí', 'uf' => 'SP'], + 3165503 => ['nome' => 'Sardoá', 'uf' => 'MG'], + 3551207 => ['nome' => 'Sarutaiá', 'uf' => 'SP'], + 3165537 => ['nome' => 'Sarzedo', 'uf' => 'MG'], + 2929701 => ['nome' => 'Sátiro Dias', 'uf' => 'BA'], + 2708907 => ['nome' => 'Satuba', 'uf' => 'AL'], + 2111722 => ['nome' => 'Satubinha', 'uf' => 'MA'], + 2929750 => ['nome' => 'Saubara', 'uf' => 'BA'], + 4126272 => ['nome' => 'Saudade do Iguaçu', 'uf' => 'PR'], + 4217303 => ['nome' => 'Saudades', 'uf' => 'SC'], + 2929800 => ['nome' => 'Saúde', 'uf' => 'BA'], + 4217402 => ['nome' => 'Schroeder', 'uf' => 'SC'], + 2929909 => ['nome' => 'Seabra', 'uf' => 'BA'], + 4217501 => ['nome' => 'Seara', 'uf' => 'SC'], + 3551306 => ['nome' => 'Sebastianópolis do Sul', 'uf' => 'SP'], + 2210623 => ['nome' => 'Sebastião Barros', 'uf' => 'PI'], + 2930006 => ['nome' => 'Sebastião Laranjeiras', 'uf' => 'BA'], + 2210631 => ['nome' => 'Sebastião Leal', 'uf' => 'PI'], + 4320206 => ['nome' => 'Seberi', 'uf' => 'RS'], + 4320230 => ['nome' => 'Sede Nova', 'uf' => 'RS'], + 4320263 => ['nome' => 'Segredo', 'uf' => 'RS'], + 4320305 => ['nome' => 'Selbach', 'uf' => 'RS'], + 5007802 => ['nome' => 'Selvíria', 'uf' => 'MS'], + 3165560 => ['nome' => 'Sem-Peixe', 'uf' => 'MG'], + 1200500 => ['nome' => 'Sena Madureira', 'uf' => 'AC'], + 2111748 => ['nome' => 'Senador Alexandre Costa', 'uf' => 'MA'], + 3165578 => ['nome' => 'Senador Amaral', 'uf' => 'MG'], + 5220454 => ['nome' => 'Senador Canedo', 'uf' => 'GO'], + 3165602 => ['nome' => 'Senador Cortes', 'uf' => 'MG'], + 2413102 => ['nome' => 'Senador Elói de Souza', 'uf' => 'RN'], + 3165701 => ['nome' => 'Senador Firmino', 'uf' => 'MG'], + 2413201 => ['nome' => 'Senador Georgino Avelino', 'uf' => 'RN'], + 1200450 => ['nome' => 'Senador Guiomard', 'uf' => 'AC'], + 3165800 => ['nome' => 'Senador José Bento', 'uf' => 'MG'], + 1507805 => ['nome' => 'Senador José Porfírio', 'uf' => 'PA'], + 2111763 => ['nome' => 'Senador La Rocque', 'uf' => 'MA'], + 3165909 => ['nome' => 'Senador Modestino Gonçalves', 'uf' => 'MG'], + 2312700 => ['nome' => 'Senador Pompeu', 'uf' => 'CE'], + 2708956 => ['nome' => 'Senador Rui Palmeira', 'uf' => 'AL'], + 2312809 => ['nome' => 'Senador Sá', 'uf' => 'CE'], + 4320321 => ['nome' => 'Senador Salgado Filho', 'uf' => 'RS'], + 4126306 => ['nome' => 'Sengés', 'uf' => 'PR'], + 2930105 => ['nome' => 'Senhor do Bonfim', 'uf' => 'BA'], + 3166006 => ['nome' => 'Senhora de Oliveira', 'uf' => 'MG'], + 3166105 => ['nome' => 'Senhora do Porto', 'uf' => 'MG'], + 3166204 => ['nome' => 'Senhora dos Remédios', 'uf' => 'MG'], + 4320354 => ['nome' => 'Sentinela do Sul', 'uf' => 'RS'], + 2930204 => ['nome' => 'Sento Sé', 'uf' => 'BA'], + 4320404 => ['nome' => 'Serafina Corrêa', 'uf' => 'RS'], + 3166303 => ['nome' => 'Sericita', 'uf' => 'MG'], + 1101500 => ['nome' => 'Seringueiras', 'uf' => 'RO'], + 4320453 => ['nome' => 'Sério', 'uf' => 'RS'], + 3166402 => ['nome' => 'Seritinga', 'uf' => 'MG'], + 3305554 => ['nome' => 'Seropédica', 'uf' => 'RJ'], + 3205002 => ['nome' => 'Serra', 'uf' => 'ES'], + 4217550 => ['nome' => 'Serra Alta', 'uf' => 'SC'], + 3551405 => ['nome' => 'Serra Azul', 'uf' => 'SP'], + 3166501 => ['nome' => 'Serra Azul de Minas', 'uf' => 'MG'], + 2515500 => ['nome' => 'Serra Branca', 'uf' => 'PB'], + 2410306 => ['nome' => 'Serra Caiada', 'uf' => 'RN'], + 2515609 => ['nome' => 'Serra da Raiz', 'uf' => 'PB'], + 3166600 => ['nome' => 'Serra da Saudade', 'uf' => 'MG'], + 2413300 => ['nome' => 'Serra de São Bento', 'uf' => 'RN'], + 2413359 => ['nome' => 'Serra do Mel', 'uf' => 'RN'], + 1600055 => ['nome' => 'Serra do Navio', 'uf' => 'AP'], + 2930154 => ['nome' => 'Serra do Ramalho', 'uf' => 'BA'], + 3166808 => ['nome' => 'Serra do Salitre', 'uf' => 'MG'], + 3166709 => ['nome' => 'Serra dos Aimorés', 'uf' => 'MG'], + 2930303 => ['nome' => 'Serra Dourada', 'uf' => 'BA'], + 2515708 => ['nome' => 'Serra Grande', 'uf' => 'PB'], + 3551603 => ['nome' => 'Serra Negra', 'uf' => 'SP'], + 2413409 => ['nome' => 'Serra Negra do Norte', 'uf' => 'RN'], + 5107883 => ['nome' => 'Serra Nova Dourada', 'uf' => 'MT'], + 2930402 => ['nome' => 'Serra Preta', 'uf' => 'BA'], + 2515807 => ['nome' => 'Serra Redonda', 'uf' => 'PB'], + 2613909 => ['nome' => 'Serra Talhada', 'uf' => 'PE'], + 3551504 => ['nome' => 'Serrana', 'uf' => 'SP'], + 3166907 => ['nome' => 'Serrania', 'uf' => 'MG'], + 2111789 => ['nome' => 'Serrano do Maranhão', 'uf' => 'MA'], + 5220504 => ['nome' => 'Serranópolis', 'uf' => 'GO'], + 3166956 => ['nome' => 'Serranópolis de Minas', 'uf' => 'MG'], + 4126355 => ['nome' => 'Serranópolis do Iguaçu', 'uf' => 'PR'], + 3167004 => ['nome' => 'Serranos', 'uf' => 'MG'], + 2515906 => ['nome' => 'Serraria', 'uf' => 'PB'], + 2413508 => ['nome' => 'Serrinha', 'uf' => 'RN'], + 2930501 => ['nome' => 'Serrinha', 'uf' => 'BA'], + 2413557 => ['nome' => 'Serrinha dos Pintos', 'uf' => 'RN'], + 2614006 => ['nome' => 'Serrita', 'uf' => 'PE'], + 3167103 => ['nome' => 'Serro', 'uf' => 'MG'], + 2930600 => ['nome' => 'Serrolândia', 'uf' => 'BA'], + 4126405 => ['nome' => 'Sertaneja', 'uf' => 'PR'], + 2614105 => ['nome' => 'Sertânia', 'uf' => 'PE'], + 4126504 => ['nome' => 'Sertanópolis', 'uf' => 'PR'], + 4320503 => ['nome' => 'Sertão', 'uf' => 'RS'], + 4320552 => ['nome' => 'Sertão Santana', 'uf' => 'RS'], + 3551702 => ['nome' => 'Sertãozinho', 'uf' => 'SP'], + 2515930 => ['nome' => 'Sertãozinho', 'uf' => 'PB'], + 3551801 => ['nome' => 'Sete Barras', 'uf' => 'SP'], + 4320578 => ['nome' => 'Sete de Setembro', 'uf' => 'RS'], + 3167202 => ['nome' => 'Sete Lagoas', 'uf' => 'MG'], + 5007703 => ['nome' => 'Sete Quedas', 'uf' => 'MS'], + 3165552 => ['nome' => 'Setubinha', 'uf' => 'MG'], + 4320602 => ['nome' => 'Severiano de Almeida', 'uf' => 'RS'], + 2413607 => ['nome' => 'Severiano Melo', 'uf' => 'RN'], + 3551900 => ['nome' => 'Severínia', 'uf' => 'SP'], + 4217600 => ['nome' => 'Siderópolis', 'uf' => 'SC'], + 5007901 => ['nome' => 'Sidrolândia', 'uf' => 'MS'], + 2210656 => ['nome' => 'Sigefredo Pacheco', 'uf' => 'PI'], + 3305604 => ['nome' => 'Silva Jardim', 'uf' => 'RJ'], + 5220603 => ['nome' => 'Silvânia', 'uf' => 'GO'], + 1720655 => ['nome' => 'Silvanópolis', 'uf' => 'TO'], + 4320651 => ['nome' => 'Silveira Martins', 'uf' => 'RS'], + 3167301 => ['nome' => 'Silveirânia', 'uf' => 'MG'], + 3552007 => ['nome' => 'Silveiras', 'uf' => 'SP'], + 1304005 => ['nome' => 'Silves', 'uf' => 'AM'], + 3167400 => ['nome' => 'Silvianópolis', 'uf' => 'MG'], + 2807105 => ['nome' => 'Simão Dias', 'uf' => 'SE'], + 3167509 => ['nome' => 'Simão Pereira', 'uf' => 'MG'], + 2210706 => ['nome' => 'Simões', 'uf' => 'PI'], + 2930709 => ['nome' => 'Simões Filho', 'uf' => 'BA'], + 5220686 => ['nome' => 'Simolândia', 'uf' => 'GO'], + 3167608 => ['nome' => 'Simonésia', 'uf' => 'MG'], + 2210805 => ['nome' => 'Simplício Mendes', 'uf' => 'PI'], + 4320677 => ['nome' => 'Sinimbu', 'uf' => 'RS'], + 5107909 => ['nome' => 'Sinop', 'uf' => 'MT'], + 4126603 => ['nome' => 'Siqueira Campos', 'uf' => 'PR'], + 2614204 => ['nome' => 'Sirinhaém', 'uf' => 'PE'], + 2807204 => ['nome' => 'Siriri', 'uf' => 'SE'], + 5220702 => ['nome' => 'Sítio d\'Abadia', 'uf' => 'GO'], + 2930758 => ['nome' => 'Sítio do Mato', 'uf' => 'BA'], + 2930766 => ['nome' => 'Sítio do Quinto', 'uf' => 'BA'], + 2111805 => ['nome' => 'Sítio Novo', 'uf' => 'MA'], + 2413706 => ['nome' => 'Sítio Novo', 'uf' => 'RN'], + 1720804 => ['nome' => 'Sítio Novo do Tocantins', 'uf' => 'TO'], + 2930774 => ['nome' => 'Sobradinho', 'uf' => 'BA'], + 4320701 => ['nome' => 'Sobradinho', 'uf' => 'RS'], + 2515971 => ['nome' => 'Sobrado', 'uf' => 'PB'], + 2312908 => ['nome' => 'Sobral', 'uf' => 'CE'], + 3167707 => ['nome' => 'Sobrália', 'uf' => 'MG'], + 3552106 => ['nome' => 'Socorro', 'uf' => 'SP'], + 2210904 => ['nome' => 'Socorro do Piauí', 'uf' => 'PI'], + 2516003 => ['nome' => 'Solânea', 'uf' => 'PB'], + 2516102 => ['nome' => 'Soledade', 'uf' => 'PB'], + 4320800 => ['nome' => 'Soledade', 'uf' => 'RS'], + 3167806 => ['nome' => 'Soledade de Minas', 'uf' => 'MG'], + 2614402 => ['nome' => 'Solidão', 'uf' => 'PE'], + 2313005 => ['nome' => 'Solonópole', 'uf' => 'CE'], + 4217709 => ['nome' => 'Sombrio', 'uf' => 'SC'], + 5007935 => ['nome' => 'Sonora', 'uf' => 'MS'], + 3205010 => ['nome' => 'Sooretama', 'uf' => 'ES'], + 3552205 => ['nome' => 'Sorocaba', 'uf' => 'SP'], + 5107925 => ['nome' => 'Sorriso', 'uf' => 'MT'], + 2516151 => ['nome' => 'Sossêgo', 'uf' => 'PB'], + 1507904 => ['nome' => 'Soure', 'uf' => 'PA'], + 2516201 => ['nome' => 'Sousa', 'uf' => 'PB'], + 2930808 => ['nome' => 'Souto Soares', 'uf' => 'BA'], + 1720853 => ['nome' => 'Sucupira', 'uf' => 'TO'], + 2111904 => ['nome' => 'Sucupira do Norte', 'uf' => 'MA'], + 2111953 => ['nome' => 'Sucupira do Riachão', 'uf' => 'MA'], + 3552304 => ['nome' => 'Sud Mennucci', 'uf' => 'SP'], + 4217758 => ['nome' => 'Sul Brasil', 'uf' => 'SC'], + 4126652 => ['nome' => 'Sulina', 'uf' => 'PR'], + 3552403 => ['nome' => 'Sumaré', 'uf' => 'SP'], + 2516300 => ['nome' => 'Sumé', 'uf' => 'PB'], + 3305703 => ['nome' => 'Sumidouro', 'uf' => 'RJ'], + 2614501 => ['nome' => 'Surubim', 'uf' => 'PE'], + 2210938 => ['nome' => 'Sussuapara', 'uf' => 'PI'], + 3552551 => ['nome' => 'Suzanápolis', 'uf' => 'SP'], + 3552502 => ['nome' => 'Suzano', 'uf' => 'SP'], + 4320859 => ['nome' => 'Tabaí', 'uf' => 'RS'], + 5107941 => ['nome' => 'Tabaporã', 'uf' => 'MT'], + 3552601 => ['nome' => 'Tabapuã', 'uf' => 'SP'], + 3552700 => ['nome' => 'Tabatinga', 'uf' => 'SP'], + 1304062 => ['nome' => 'Tabatinga', 'uf' => 'AM'], + 2614600 => ['nome' => 'Tabira', 'uf' => 'PE'], + 3552809 => ['nome' => 'Taboão da Serra', 'uf' => 'SP'], + 2930907 => ['nome' => 'Tabocas do Brejo Velho', 'uf' => 'BA'], + 2413805 => ['nome' => 'Taboleiro Grande', 'uf' => 'RN'], + 3167905 => ['nome' => 'Tabuleiro', 'uf' => 'MG'], + 2313104 => ['nome' => 'Tabuleiro do Norte', 'uf' => 'CE'], + 2614709 => ['nome' => 'Tacaimbó', 'uf' => 'PE'], + 2614808 => ['nome' => 'Tacaratu', 'uf' => 'PE'], + 3552908 => ['nome' => 'Taciba', 'uf' => 'SP'], + 2516409 => ['nome' => 'Tacima', 'uf' => 'PB'], + 5007950 => ['nome' => 'Tacuru', 'uf' => 'MS'], + 3553005 => ['nome' => 'Taguaí', 'uf' => 'SP'], + 1720903 => ['nome' => 'Taguatinga', 'uf' => 'TO'], + 3553104 => ['nome' => 'Taiaçu', 'uf' => 'SP'], + 1507953 => ['nome' => 'Tailândia', 'uf' => 'PA'], + 4217808 => ['nome' => 'Taió', 'uf' => 'SC'], + 3168002 => ['nome' => 'Taiobeiras', 'uf' => 'MG'], + 1720937 => ['nome' => 'Taipas do Tocantins', 'uf' => 'TO'], + 2413904 => ['nome' => 'Taipu', 'uf' => 'RN'], + 3553203 => ['nome' => 'Taiúva', 'uf' => 'SP'], + 1720978 => ['nome' => 'Talismã', 'uf' => 'TO'], + 2614857 => ['nome' => 'Tamandaré', 'uf' => 'PE'], + 4126678 => ['nome' => 'Tamarana', 'uf' => 'PR'], + 3553302 => ['nome' => 'Tambaú', 'uf' => 'SP'], + 4126702 => ['nome' => 'Tamboara', 'uf' => 'PR'], + 2313203 => ['nome' => 'Tamboril', 'uf' => 'CE'], + 2210953 => ['nome' => 'Tamboril do Piauí', 'uf' => 'PI'], + 3553401 => ['nome' => 'Tanabi', 'uf' => 'SP'], + 2414001 => ['nome' => 'Tangará', 'uf' => 'RN'], + 4217907 => ['nome' => 'Tangará', 'uf' => 'SC'], + 5107958 => ['nome' => 'Tangará da Serra', 'uf' => 'MT'], + 3305752 => ['nome' => 'Tanguá', 'uf' => 'RJ'], + 2931004 => ['nome' => 'Tanhaçu', 'uf' => 'BA'], + 2709004 => ['nome' => 'Tanque d\'Arca', 'uf' => 'AL'], + 2210979 => ['nome' => 'Tanque do Piauí', 'uf' => 'PI'], + 2931053 => ['nome' => 'Tanque Novo', 'uf' => 'BA'], + 2931103 => ['nome' => 'Tanquinho', 'uf' => 'BA'], + 3168051 => ['nome' => 'Taparuba', 'uf' => 'MG'], + 1304104 => ['nome' => 'Tapauá', 'uf' => 'AM'], + 4126801 => ['nome' => 'Tapejara', 'uf' => 'PR'], + 4320909 => ['nome' => 'Tapejara', 'uf' => 'RS'], + 4321006 => ['nome' => 'Tapera', 'uf' => 'RS'], + 2931202 => ['nome' => 'Taperoá', 'uf' => 'BA'], + 2516508 => ['nome' => 'Taperoá', 'uf' => 'PB'], + 4321105 => ['nome' => 'Tapes', 'uf' => 'RS'], + 4126900 => ['nome' => 'Tapira', 'uf' => 'PR'], + 3168101 => ['nome' => 'Tapira', 'uf' => 'MG'], + 3168200 => ['nome' => 'Tapiraí', 'uf' => 'MG'], + 3553500 => ['nome' => 'Tapiraí', 'uf' => 'SP'], + 2931301 => ['nome' => 'Tapiramutá', 'uf' => 'BA'], + 3553609 => ['nome' => 'Tapiratiba', 'uf' => 'SP'], + 5108006 => ['nome' => 'Tapurah', 'uf' => 'MT'], + 4321204 => ['nome' => 'Taquara', 'uf' => 'RS'], + 3168309 => ['nome' => 'Taquaraçu de Minas', 'uf' => 'MG'], + 3553658 => ['nome' => 'Taquaral', 'uf' => 'SP'], + 5221007 => ['nome' => 'Taquaral de Goiás', 'uf' => 'GO'], + 2709103 => ['nome' => 'Taquarana', 'uf' => 'AL'], + 4321303 => ['nome' => 'Taquari', 'uf' => 'RS'], + 3553708 => ['nome' => 'Taquaritinga', 'uf' => 'SP'], + 2615003 => ['nome' => 'Taquaritinga do Norte', 'uf' => 'PE'], + 3553807 => ['nome' => 'Taquarituba', 'uf' => 'SP'], + 3553856 => ['nome' => 'Taquarivaí', 'uf' => 'SP'], + 4321329 => ['nome' => 'Taquaruçu do Sul', 'uf' => 'RS'], + 5007976 => ['nome' => 'Taquarussu', 'uf' => 'MS'], + 3553906 => ['nome' => 'Tarabai', 'uf' => 'SP'], + 1200609 => ['nome' => 'Tarauacá', 'uf' => 'AC'], + 2313252 => ['nome' => 'Tarrafas', 'uf' => 'CE'], + 1600709 => ['nome' => 'Tartarugalzinho', 'uf' => 'AP'], + 3553955 => ['nome' => 'Tarumã', 'uf' => 'SP'], + 3168408 => ['nome' => 'Tarumirim', 'uf' => 'MG'], + 2112001 => ['nome' => 'Tasso Fragoso', 'uf' => 'MA'], + 3554003 => ['nome' => 'Tatuí', 'uf' => 'SP'], + 2313302 => ['nome' => 'Tauá', 'uf' => 'CE'], + 3554102 => ['nome' => 'Taubaté', 'uf' => 'SP'], + 4321352 => ['nome' => 'Tavares', 'uf' => 'RS'], + 2516607 => ['nome' => 'Tavares', 'uf' => 'PB'], + 1304203 => ['nome' => 'Tefé', 'uf' => 'AM'], + 2516706 => ['nome' => 'Teixeira', 'uf' => 'PB'], + 2931350 => ['nome' => 'Teixeira de Freitas', 'uf' => 'BA'], + 4127007 => ['nome' => 'Teixeira Soares', 'uf' => 'PR'], + 3168507 => ['nome' => 'Teixeiras', 'uf' => 'MG'], + 1101559 => ['nome' => 'Teixeirópolis', 'uf' => 'RO'], + 2313351 => ['nome' => 'Tejuçuoca', 'uf' => 'CE'], + 3554201 => ['nome' => 'Tejupá', 'uf' => 'SP'], + 4127106 => ['nome' => 'Telêmaco Borba', 'uf' => 'PR'], + 2807303 => ['nome' => 'Telha', 'uf' => 'SE'], + 2414100 => ['nome' => 'Tenente Ananias', 'uf' => 'RN'], + 2414159 => ['nome' => 'Tenente Laurentino Cruz', 'uf' => 'RN'], + 4321402 => ['nome' => 'Tenente Portela', 'uf' => 'RS'], + 2516755 => ['nome' => 'Tenório', 'uf' => 'PB'], + 2931400 => ['nome' => 'Teodoro Sampaio', 'uf' => 'BA'], + 3554300 => ['nome' => 'Teodoro Sampaio', 'uf' => 'SP'], + 2931509 => ['nome' => 'Teofilândia', 'uf' => 'BA'], + 3168606 => ['nome' => 'Teófilo Otoni', 'uf' => 'MG'], + 2931608 => ['nome' => 'Teolândia', 'uf' => 'BA'], + 2709152 => ['nome' => 'Teotônio Vilela', 'uf' => 'AL'], + 5008008 => ['nome' => 'Terenos', 'uf' => 'MS'], + 2211001 => ['nome' => 'Teresina', 'uf' => 'PI'], + 5221080 => ['nome' => 'Teresina de Goiás', 'uf' => 'GO'], + 3305802 => ['nome' => 'Teresópolis', 'uf' => 'RJ'], + 2615102 => ['nome' => 'Terezinha', 'uf' => 'PE'], + 5221197 => ['nome' => 'Terezópolis de Goiás', 'uf' => 'GO'], + 1507961 => ['nome' => 'Terra Alta', 'uf' => 'PA'], + 4127205 => ['nome' => 'Terra Boa', 'uf' => 'PR'], + 4321436 => ['nome' => 'Terra de Areia', 'uf' => 'RS'], + 2931707 => ['nome' => 'Terra Nova', 'uf' => 'BA'], + 2615201 => ['nome' => 'Terra Nova', 'uf' => 'PE'], + 5108055 => ['nome' => 'Terra Nova do Norte', 'uf' => 'MT'], + 4127304 => ['nome' => 'Terra Rica', 'uf' => 'PR'], + 4127403 => ['nome' => 'Terra Roxa', 'uf' => 'PR'], + 3554409 => ['nome' => 'Terra Roxa', 'uf' => 'SP'], + 1507979 => ['nome' => 'Terra Santa', 'uf' => 'PA'], + 5108105 => ['nome' => 'Tesouro', 'uf' => 'MT'], + 4321451 => ['nome' => 'Teutônia', 'uf' => 'RS'], + 1101609 => ['nome' => 'Theobroma', 'uf' => 'RO'], + 2313401 => ['nome' => 'Tianguá', 'uf' => 'CE'], + 4127502 => ['nome' => 'Tibagi', 'uf' => 'PR'], + 2411056 => ['nome' => 'Tibau', 'uf' => 'RN'], + 2414209 => ['nome' => 'Tibau do Sul', 'uf' => 'RN'], + 3554508 => ['nome' => 'Tietê', 'uf' => 'SP'], + 4217956 => ['nome' => 'Tigrinhos', 'uf' => 'SC'], + 4218004 => ['nome' => 'Tijucas', 'uf' => 'SC'], + 4127601 => ['nome' => 'Tijucas do Sul', 'uf' => 'PR'], + 2615300 => ['nome' => 'Timbaúba', 'uf' => 'PE'], + 2414308 => ['nome' => 'Timbaúba dos Batistas', 'uf' => 'RN'], + 4218103 => ['nome' => 'Timbé do Sul', 'uf' => 'SC'], + 2112100 => ['nome' => 'Timbiras', 'uf' => 'MA'], + 4218202 => ['nome' => 'Timbó', 'uf' => 'SC'], + 4218251 => ['nome' => 'Timbó Grande', 'uf' => 'SC'], + 3554607 => ['nome' => 'Timburi', 'uf' => 'SP'], + 2112209 => ['nome' => 'Timon', 'uf' => 'MA'], + 3168705 => ['nome' => 'Timóteo', 'uf' => 'MG'], + 4321469 => ['nome' => 'Tio Hugo', 'uf' => 'RS'], + 3168804 => ['nome' => 'Tiradentes', 'uf' => 'MG'], + 4321477 => ['nome' => 'Tiradentes do Sul', 'uf' => 'RS'], + 3168903 => ['nome' => 'Tiros', 'uf' => 'MG'], + 2807402 => ['nome' => 'Tobias Barreto', 'uf' => 'SE'], + 1721109 => ['nome' => 'Tocantínia', 'uf' => 'TO'], + 1721208 => ['nome' => 'Tocantinópolis', 'uf' => 'TO'], + 3169000 => ['nome' => 'Tocantins', 'uf' => 'MG'], + 3169059 => ['nome' => 'Tocos do Moji', 'uf' => 'MG'], + 3169109 => ['nome' => 'Toledo', 'uf' => 'MG'], + 4127700 => ['nome' => 'Toledo', 'uf' => 'PR'], + 2807501 => ['nome' => 'Tomar do Geru', 'uf' => 'SE'], + 4127809 => ['nome' => 'Tomazina', 'uf' => 'PR'], + 3169208 => ['nome' => 'Tombos', 'uf' => 'MG'], + 1508001 => ['nome' => 'Tomé-Açu', 'uf' => 'PA'], + 1304237 => ['nome' => 'Tonantins', 'uf' => 'AM'], + 2615409 => ['nome' => 'Toritama', 'uf' => 'PE'], + 5108204 => ['nome' => 'Torixoréu', 'uf' => 'MT'], + 4321493 => ['nome' => 'Toropi', 'uf' => 'RS'], + 3554656 => ['nome' => 'Torre de Pedra', 'uf' => 'SP'], + 4321501 => ['nome' => 'Torres', 'uf' => 'RS'], + 3554706 => ['nome' => 'Torrinha', 'uf' => 'SP'], + 2414407 => ['nome' => 'Touros', 'uf' => 'RN'], + 3554755 => ['nome' => 'Trabiju', 'uf' => 'SP'], + 1508035 => ['nome' => 'Tracuateua', 'uf' => 'PA'], + 2615508 => ['nome' => 'Tracunhaém', 'uf' => 'PE'], + 2709202 => ['nome' => 'Traipu', 'uf' => 'AL'], + 1508050 => ['nome' => 'Trairão', 'uf' => 'PA'], + 2313500 => ['nome' => 'Trairi', 'uf' => 'CE'], + 3305901 => ['nome' => 'Trajano de Moraes', 'uf' => 'RJ'], + 4321600 => ['nome' => 'Tramandaí', 'uf' => 'RS'], + 4321626 => ['nome' => 'Travesseiro', 'uf' => 'RS'], + 2931806 => ['nome' => 'Tremedal', 'uf' => 'BA'], + 3554805 => ['nome' => 'Tremembé', 'uf' => 'SP'], + 4321634 => ['nome' => 'Três Arroios', 'uf' => 'RS'], + 4218301 => ['nome' => 'Três Barras', 'uf' => 'SC'], + 4127858 => ['nome' => 'Três Barras do Paraná', 'uf' => 'PR'], + 4321667 => ['nome' => 'Três Cachoeiras', 'uf' => 'RS'], + 3169307 => ['nome' => 'Três Corações', 'uf' => 'MG'], + 4321709 => ['nome' => 'Três Coroas', 'uf' => 'RS'], + 4321808 => ['nome' => 'Três de Maio', 'uf' => 'RS'], + 4321832 => ['nome' => 'Três Forquilhas', 'uf' => 'RS'], + 3554904 => ['nome' => 'Três Fronteiras', 'uf' => 'SP'], + 5008305 => ['nome' => 'Três Lagoas', 'uf' => 'MS'], + 3169356 => ['nome' => 'Três Marias', 'uf' => 'MG'], + 4321857 => ['nome' => 'Três Palmeiras', 'uf' => 'RS'], + 4321907 => ['nome' => 'Três Passos', 'uf' => 'RS'], + 3169406 => ['nome' => 'Três Pontas', 'uf' => 'MG'], + 5221304 => ['nome' => 'Três Ranchos', 'uf' => 'GO'], + 3306008 => ['nome' => 'Três Rios', 'uf' => 'RJ'], + 4218350 => ['nome' => 'Treviso', 'uf' => 'SC'], + 4218400 => ['nome' => 'Treze de Maio', 'uf' => 'SC'], + 4218509 => ['nome' => 'Treze Tílias', 'uf' => 'SC'], + 5221403 => ['nome' => 'Trindade', 'uf' => 'GO'], + 2615607 => ['nome' => 'Trindade', 'uf' => 'PE'], + 4321956 => ['nome' => 'Trindade do Sul', 'uf' => 'RS'], + 4322004 => ['nome' => 'Triunfo', 'uf' => 'RS'], + 2516805 => ['nome' => 'Triunfo', 'uf' => 'PB'], + 2615706 => ['nome' => 'Triunfo', 'uf' => 'PE'], + 2414456 => ['nome' => 'Triunfo Potiguar', 'uf' => 'RN'], + 2112233 => ['nome' => 'Trizidela do Vale', 'uf' => 'MA'], + 5221452 => ['nome' => 'Trombas', 'uf' => 'GO'], + 4218608 => ['nome' => 'Trombudo Central', 'uf' => 'SC'], + 4218707 => ['nome' => 'Tubarão', 'uf' => 'SC'], + 2931905 => ['nome' => 'Tucano', 'uf' => 'BA'], + 1508084 => ['nome' => 'Tucumã', 'uf' => 'PA'], + 4322103 => ['nome' => 'Tucunduva', 'uf' => 'RS'], + 1508100 => ['nome' => 'Tucuruí', 'uf' => 'PA'], + 2112274 => ['nome' => 'Tufilândia', 'uf' => 'MA'], + 3554953 => ['nome' => 'Tuiuti', 'uf' => 'SP'], + 3169505 => ['nome' => 'Tumiritinga', 'uf' => 'MG'], + 4218756 => ['nome' => 'Tunápolis', 'uf' => 'SC'], + 4322152 => ['nome' => 'Tunas', 'uf' => 'RS'], + 4127882 => ['nome' => 'Tunas do Paraná', 'uf' => 'PR'], + 4127908 => ['nome' => 'Tuneiras do Oeste', 'uf' => 'PR'], + 2112308 => ['nome' => 'Tuntum', 'uf' => 'MA'], + 3555000 => ['nome' => 'Tupã', 'uf' => 'SP'], + 3169604 => ['nome' => 'Tupaciguara', 'uf' => 'MG'], + 2615805 => ['nome' => 'Tupanatinga', 'uf' => 'PE'], + 4322186 => ['nome' => 'Tupanci do Sul', 'uf' => 'RS'], + 4322202 => ['nome' => 'Tupanciretã', 'uf' => 'RS'], + 4322251 => ['nome' => 'Tupandi', 'uf' => 'RS'], + 4322301 => ['nome' => 'Tuparendi', 'uf' => 'RS'], + 2615904 => ['nome' => 'Tuparetama', 'uf' => 'PE'], + 4127957 => ['nome' => 'Tupãssi', 'uf' => 'PR'], + 3555109 => ['nome' => 'Tupi Paulista', 'uf' => 'SP'], + 1721257 => ['nome' => 'Tupirama', 'uf' => 'TO'], + 1721307 => ['nome' => 'Tupiratins', 'uf' => 'TO'], + 2112407 => ['nome' => 'Turiaçu', 'uf' => 'MA'], + 2112456 => ['nome' => 'Turilândia', 'uf' => 'MA'], + 3555208 => ['nome' => 'Turiúba', 'uf' => 'SP'], + 3555307 => ['nome' => 'Turmalina', 'uf' => 'SP'], + 3169703 => ['nome' => 'Turmalina', 'uf' => 'MG'], + 4322327 => ['nome' => 'Turuçu', 'uf' => 'RS'], + 2313559 => ['nome' => 'Tururu', 'uf' => 'CE'], + 5221502 => ['nome' => 'Turvânia', 'uf' => 'GO'], + 5221551 => ['nome' => 'Turvelândia', 'uf' => 'GO'], + 4127965 => ['nome' => 'Turvo', 'uf' => 'PR'], + 4218806 => ['nome' => 'Turvo', 'uf' => 'SC'], + 3169802 => ['nome' => 'Turvolândia', 'uf' => 'MG'], + 2112506 => ['nome' => 'Tutóia', 'uf' => 'MA'], + 1304260 => ['nome' => 'Uarini', 'uf' => 'AM'], + 2932002 => ['nome' => 'Uauá', 'uf' => 'BA'], + 3169901 => ['nome' => 'Ubá', 'uf' => 'MG'], + 3170008 => ['nome' => 'Ubaí', 'uf' => 'MG'], + 2932101 => ['nome' => 'Ubaíra', 'uf' => 'BA'], + 2932200 => ['nome' => 'Ubaitaba', 'uf' => 'BA'], + 2313609 => ['nome' => 'Ubajara', 'uf' => 'CE'], + 3170057 => ['nome' => 'Ubaporanga', 'uf' => 'MG'], + 3555356 => ['nome' => 'Ubarana', 'uf' => 'SP'], + 2932309 => ['nome' => 'Ubatã', 'uf' => 'BA'], + 3555406 => ['nome' => 'Ubatuba', 'uf' => 'SP'], + 3170107 => ['nome' => 'Uberaba', 'uf' => 'MG'], + 3170206 => ['nome' => 'Uberlândia', 'uf' => 'MG'], + 3555505 => ['nome' => 'Ubirajara', 'uf' => 'SP'], + 4128005 => ['nome' => 'Ubiratã', 'uf' => 'PR'], + 4322343 => ['nome' => 'Ubiretama', 'uf' => 'RS'], + 3555604 => ['nome' => 'Uchoa', 'uf' => 'SP'], + 2932408 => ['nome' => 'Uibaí', 'uf' => 'BA'], + 1400704 => ['nome' => 'Uiramutã', 'uf' => 'RR'], + 5221577 => ['nome' => 'Uirapuru', 'uf' => 'GO'], + 2516904 => ['nome' => 'Uiraúna', 'uf' => 'PB'], + 1508126 => ['nome' => 'Ulianópolis', 'uf' => 'PA'], + 2313708 => ['nome' => 'Umari', 'uf' => 'CE'], + 2414506 => ['nome' => 'Umarizal', 'uf' => 'RN'], + 2807600 => ['nome' => 'Umbaúba', 'uf' => 'SE'], + 2932457 => ['nome' => 'Umburanas', 'uf' => 'BA'], + 3170305 => ['nome' => 'Umburatiba', 'uf' => 'MG'], + 2517001 => ['nome' => 'Umbuzeiro', 'uf' => 'PB'], + 2313757 => ['nome' => 'Umirim', 'uf' => 'CE'], + 4128104 => ['nome' => 'Umuarama', 'uf' => 'PR'], + 2932507 => ['nome' => 'Una', 'uf' => 'BA'], + 3170404 => ['nome' => 'Unaí', 'uf' => 'MG'], + 2211100 => ['nome' => 'União', 'uf' => 'PI'], + 4322350 => ['nome' => 'União da Serra', 'uf' => 'RS'], + 4128203 => ['nome' => 'União da Vitória', 'uf' => 'PR'], + 3170438 => ['nome' => 'União de Minas', 'uf' => 'MG'], + 4218855 => ['nome' => 'União do Oeste', 'uf' => 'SC'], + 5108303 => ['nome' => 'União do Sul', 'uf' => 'MT'], + 2709301 => ['nome' => 'União dos Palmares', 'uf' => 'AL'], + 3555703 => ['nome' => 'União Paulista', 'uf' => 'SP'], + 4128302 => ['nome' => 'Uniflor', 'uf' => 'PR'], + 4322376 => ['nome' => 'Unistalda', 'uf' => 'RS'], + 2414605 => ['nome' => 'Upanema', 'uf' => 'RN'], + 4128401 => ['nome' => 'Uraí', 'uf' => 'PR'], + 2932606 => ['nome' => 'Urandi', 'uf' => 'BA'], + 3555802 => ['nome' => 'Urânia', 'uf' => 'SP'], + 2112605 => ['nome' => 'Urbano Santos', 'uf' => 'MA'], + 3555901 => ['nome' => 'Uru', 'uf' => 'SP'], + 5221601 => ['nome' => 'Uruaçu', 'uf' => 'GO'], + 5221700 => ['nome' => 'Uruana', 'uf' => 'GO'], + 3170479 => ['nome' => 'Uruana de Minas', 'uf' => 'MG'], + 1508159 => ['nome' => 'Uruará', 'uf' => 'PA'], + 4218905 => ['nome' => 'Urubici', 'uf' => 'SC'], + 2313807 => ['nome' => 'Uruburetama', 'uf' => 'CE'], + 3170503 => ['nome' => 'Urucânia', 'uf' => 'MG'], + 1304302 => ['nome' => 'Urucará', 'uf' => 'AM'], + 2932705 => ['nome' => 'Uruçuca', 'uf' => 'BA'], + 2211209 => ['nome' => 'Uruçuí', 'uf' => 'PI'], + 3170529 => ['nome' => 'Urucuia', 'uf' => 'MG'], + 1304401 => ['nome' => 'Urucurituba', 'uf' => 'AM'], + 4322400 => ['nome' => 'Uruguaiana', 'uf' => 'RS'], + 2313906 => ['nome' => 'Uruoca', 'uf' => 'CE'], + 1101708 => ['nome' => 'Urupá', 'uf' => 'RO'], + 4218954 => ['nome' => 'Urupema', 'uf' => 'SC'], + 3556008 => ['nome' => 'Urupês', 'uf' => 'SP'], + 4219002 => ['nome' => 'Urussanga', 'uf' => 'SC'], + 5221809 => ['nome' => 'Urutaí', 'uf' => 'GO'], + 2932804 => ['nome' => 'Utinga', 'uf' => 'BA'], + 4322509 => ['nome' => 'Vacaria', 'uf' => 'RS'], + 5108352 => ['nome' => 'Vale de São Domingos', 'uf' => 'MT'], + 1101757 => ['nome' => 'Vale do Anari', 'uf' => 'RO'], + 1101807 => ['nome' => 'Vale do Paraíso', 'uf' => 'RO'], + 4322533 => ['nome' => 'Vale do Sol', 'uf' => 'RS'], + 4322541 => ['nome' => 'Vale Real', 'uf' => 'RS'], + 4322525 => ['nome' => 'Vale Verde', 'uf' => 'RS'], + 2932903 => ['nome' => 'Valença', 'uf' => 'BA'], + 3306107 => ['nome' => 'Valença', 'uf' => 'RJ'], + 2211308 => ['nome' => 'Valença do Piauí', 'uf' => 'PI'], + 2933000 => ['nome' => 'Valente', 'uf' => 'BA'], + 3556107 => ['nome' => 'Valentim Gentil', 'uf' => 'SP'], + 3556206 => ['nome' => 'Valinhos', 'uf' => 'SP'], + 3556305 => ['nome' => 'Valparaíso', 'uf' => 'SP'], + 5221858 => ['nome' => 'Valparaíso de Goiás', 'uf' => 'GO'], + 4322558 => ['nome' => 'Vanini', 'uf' => 'RS'], + 4219101 => ['nome' => 'Vargeão', 'uf' => 'SC'], + 4219150 => ['nome' => 'Vargem', 'uf' => 'SC'], + 3556354 => ['nome' => 'Vargem', 'uf' => 'SP'], + 3170578 => ['nome' => 'Vargem Alegre', 'uf' => 'MG'], + 3205036 => ['nome' => 'Vargem Alta', 'uf' => 'ES'], + 3170602 => ['nome' => 'Vargem Bonita', 'uf' => 'MG'], + 4219176 => ['nome' => 'Vargem Bonita', 'uf' => 'SC'], + 2112704 => ['nome' => 'Vargem Grande', 'uf' => 'MA'], + 3170651 => ['nome' => 'Vargem Grande do Rio Pardo', 'uf' => 'MG'], + 3556404 => ['nome' => 'Vargem Grande do Sul', 'uf' => 'SP'], + 3556453 => ['nome' => 'Vargem Grande Paulista', 'uf' => 'SP'], + 3170701 => ['nome' => 'Varginha', 'uf' => 'MG'], + 5221908 => ['nome' => 'Varjão', 'uf' => 'GO'], + 3170750 => ['nome' => 'Varjão de Minas', 'uf' => 'MG'], + 2313955 => ['nome' => 'Varjota', 'uf' => 'CE'], + 3306156 => ['nome' => 'Varre-Sai', 'uf' => 'RJ'], + 2414704 => ['nome' => 'Várzea', 'uf' => 'RN'], + 2517100 => ['nome' => 'Várzea', 'uf' => 'PB'], + 2314003 => ['nome' => 'Várzea Alegre', 'uf' => 'CE'], + 2211357 => ['nome' => 'Várzea Branca', 'uf' => 'PI'], + 3170800 => ['nome' => 'Várzea da Palma', 'uf' => 'MG'], + 2933059 => ['nome' => 'Várzea da Roça', 'uf' => 'BA'], + 2933109 => ['nome' => 'Várzea do Poço', 'uf' => 'BA'], + 2211407 => ['nome' => 'Várzea Grande', 'uf' => 'PI'], + 5108402 => ['nome' => 'Várzea Grande', 'uf' => 'MT'], + 2933158 => ['nome' => 'Várzea Nova', 'uf' => 'BA'], + 3556503 => ['nome' => 'Várzea Paulista', 'uf' => 'SP'], + 2933174 => ['nome' => 'Varzedo', 'uf' => 'BA'], + 3170909 => ['nome' => 'Varzelândia', 'uf' => 'MG'], + 3306206 => ['nome' => 'Vassouras', 'uf' => 'RJ'], + 3171006 => ['nome' => 'Vazante', 'uf' => 'MG'], + 4322608 => ['nome' => 'Venâncio Aires', 'uf' => 'RS'], + 3205069 => ['nome' => 'Venda Nova do Imigrante', 'uf' => 'ES'], + 2414753 => ['nome' => 'Venha-Ver', 'uf' => 'RN'], + 4128534 => ['nome' => 'Ventania', 'uf' => 'PR'], + 2616001 => ['nome' => 'Venturosa', 'uf' => 'PE'], + 5108501 => ['nome' => 'Vera', 'uf' => 'MT'], + 2414803 => ['nome' => 'Vera Cruz', 'uf' => 'RN'], + 2933208 => ['nome' => 'Vera Cruz', 'uf' => 'BA'], + 4322707 => ['nome' => 'Vera Cruz', 'uf' => 'RS'], + 3556602 => ['nome' => 'Vera Cruz', 'uf' => 'SP'], + 4128559 => ['nome' => 'Vera Cruz do Oeste', 'uf' => 'PR'], + 2211506 => ['nome' => 'Vera Mendes', 'uf' => 'PI'], + 4322806 => ['nome' => 'Veranópolis', 'uf' => 'RS'], + 2616100 => ['nome' => 'Verdejante', 'uf' => 'PE'], + 3171030 => ['nome' => 'Verdelândia', 'uf' => 'MG'], + 4128609 => ['nome' => 'Verê', 'uf' => 'PR'], + 2933257 => ['nome' => 'Vereda', 'uf' => 'BA'], + 3171071 => ['nome' => 'Veredinha', 'uf' => 'MG'], + 3171105 => ['nome' => 'Veríssimo', 'uf' => 'MG'], + 3171154 => ['nome' => 'Vermelho Novo', 'uf' => 'MG'], + 2616183 => ['nome' => 'Vertente do Lério', 'uf' => 'PE'], + 2616209 => ['nome' => 'Vertentes', 'uf' => 'PE'], + 3171204 => ['nome' => 'Vespasiano', 'uf' => 'MG'], + 4322855 => ['nome' => 'Vespasiano Corrêa', 'uf' => 'RS'], + 4322905 => ['nome' => 'Viadutos', 'uf' => 'RS'], + 4323002 => ['nome' => 'Viamão', 'uf' => 'RS'], + 3205101 => ['nome' => 'Viana', 'uf' => 'ES'], + 2112803 => ['nome' => 'Viana', 'uf' => 'MA'], + 5222005 => ['nome' => 'Vianópolis', 'uf' => 'GO'], + 2616308 => ['nome' => 'Vicência', 'uf' => 'PE'], + 4323101 => ['nome' => 'Vicente Dutra', 'uf' => 'RS'], + 5008404 => ['nome' => 'Vicentina', 'uf' => 'MS'], + 5222054 => ['nome' => 'Vicentinópolis', 'uf' => 'GO'], + 2414902 => ['nome' => 'Viçosa', 'uf' => 'RN'], + 2709400 => ['nome' => 'Viçosa', 'uf' => 'AL'], + 3171303 => ['nome' => 'Viçosa', 'uf' => 'MG'], + 2314102 => ['nome' => 'Viçosa do Ceará', 'uf' => 'CE'], + 4323200 => ['nome' => 'Victor Graeff', 'uf' => 'RS'], + 4219200 => ['nome' => 'Vidal Ramos', 'uf' => 'SC'], + 4219309 => ['nome' => 'Videira', 'uf' => 'SC'], + 3171402 => ['nome' => 'Vieiras', 'uf' => 'MG'], + 2517209 => ['nome' => 'Vieirópolis', 'uf' => 'PB'], + 1508209 => ['nome' => 'Vigia', 'uf' => 'PA'], + 5105507 => ['nome' => 'Vila Bela da Santíssima Trindade', 'uf' => 'MT'], + 5222203 => ['nome' => 'Vila Boa', 'uf' => 'GO'], + 2415008 => ['nome' => 'Vila Flor', 'uf' => 'RN'], + 4323309 => ['nome' => 'Vila Flores', 'uf' => 'RS'], + 4323358 => ['nome' => 'Vila Lângaro', 'uf' => 'RS'], + 4323408 => ['nome' => 'Vila Maria', 'uf' => 'RS'], + 2211605 => ['nome' => 'Vila Nova do Piauí', 'uf' => 'PI'], + 4323457 => ['nome' => 'Vila Nova do Sul', 'uf' => 'RS'], + 2112852 => ['nome' => 'Vila Nova dos Martírios', 'uf' => 'MA'], + 3205150 => ['nome' => 'Vila Pavão', 'uf' => 'ES'], + 5222302 => ['nome' => 'Vila Propício', 'uf' => 'GO'], + 5108600 => ['nome' => 'Vila Rica', 'uf' => 'MT'], + 3205176 => ['nome' => 'Vila Valério', 'uf' => 'ES'], + 3205200 => ['nome' => 'Vila Velha', 'uf' => 'ES'], + 1100304 => ['nome' => 'Vilhena', 'uf' => 'RO'], + 3556701 => ['nome' => 'Vinhedo', 'uf' => 'SP'], + 3556800 => ['nome' => 'Viradouro', 'uf' => 'SP'], + 3171600 => ['nome' => 'Virgem da Lapa', 'uf' => 'MG'], + 3171709 => ['nome' => 'Virgínia', 'uf' => 'MG'], + 3171808 => ['nome' => 'Virginópolis', 'uf' => 'MG'], + 3171907 => ['nome' => 'Virgolândia', 'uf' => 'MG'], + 4128658 => ['nome' => 'Virmond', 'uf' => 'PR'], + 3172004 => ['nome' => 'Visconde do Rio Branco', 'uf' => 'MG'], + 1508308 => ['nome' => 'Viseu', 'uf' => 'PA'], + 4323507 => ['nome' => 'Vista Alegre', 'uf' => 'RS'], + 3556909 => ['nome' => 'Vista Alegre do Alto', 'uf' => 'SP'], + 4323606 => ['nome' => 'Vista Alegre do Prata', 'uf' => 'RS'], + 4323705 => ['nome' => 'Vista Gaúcha', 'uf' => 'RS'], + 2505501 => ['nome' => 'Vista Serrana', 'uf' => 'PB'], + 4219358 => ['nome' => 'Vitor Meireles', 'uf' => 'SC'], + 3205309 => ['nome' => 'Vitória', 'uf' => 'ES'], + 3556958 => ['nome' => 'Vitória Brasil', 'uf' => 'SP'], + 2933307 => ['nome' => 'Vitória da Conquista', 'uf' => 'BA'], + 4323754 => ['nome' => 'Vitória das Missões', 'uf' => 'RS'], + 2616407 => ['nome' => 'Vitória de Santo Antão', 'uf' => 'PE'], + 1600808 => ['nome' => 'Vitória do Jari', 'uf' => 'AP'], + 2112902 => ['nome' => 'Vitória do Mearim', 'uf' => 'MA'], + 1508357 => ['nome' => 'Vitória do Xingu', 'uf' => 'PA'], + 4128708 => ['nome' => 'Vitorino', 'uf' => 'PR'], + 2113009 => ['nome' => 'Vitorino Freire', 'uf' => 'MA'], + 3172103 => ['nome' => 'Volta Grande', 'uf' => 'MG'], + 3306305 => ['nome' => 'Volta Redonda', 'uf' => 'RJ'], + 3557006 => ['nome' => 'Votorantim', 'uf' => 'SP'], + 3557105 => ['nome' => 'Votuporanga', 'uf' => 'SP'], + 2933406 => ['nome' => 'Wagner', 'uf' => 'BA'], + 2211704 => ['nome' => 'Wall Ferraz', 'uf' => 'PI'], + 1722081 => ['nome' => 'Wanderlândia', 'uf' => 'TO'], + 2933455 => ['nome' => 'Wanderley', 'uf' => 'BA'], + 3172202 => ['nome' => 'Wenceslau Braz', 'uf' => 'MG'], + 4128500 => ['nome' => 'Wenceslau Braz', 'uf' => 'PR'], + 2933505 => ['nome' => 'Wenceslau Guimarães', 'uf' => 'BA'], + 4323770 => ['nome' => 'Westfália', 'uf' => 'RS'], + 4219408 => ['nome' => 'Witmarsum', 'uf' => 'SC'], + 1722107 => ['nome' => 'Xambioá', 'uf' => 'TO'], + 4128807 => ['nome' => 'Xambrê', 'uf' => 'PR'], + 4323804 => ['nome' => 'Xangri-lá', 'uf' => 'RS'], + 4219507 => ['nome' => 'Xanxerê', 'uf' => 'SC'], + 1200708 => ['nome' => 'Xapuri', 'uf' => 'AC'], + 4219606 => ['nome' => 'Xavantina', 'uf' => 'SC'], + 4219705 => ['nome' => 'Xaxim', 'uf' => 'SC'], + 2616506 => ['nome' => 'Xexéu', 'uf' => 'PE'], + 1508407 => ['nome' => 'Xinguara', 'uf' => 'PA'], + 2933604 => ['nome' => 'Xique-Xique', 'uf' => 'BA'], + 2517407 => ['nome' => 'Zabelê', 'uf' => 'PB'], + 3557154 => ['nome' => 'Zacarias', 'uf' => 'SP'], + 2114007 => ['nome' => 'Zé Doca', 'uf' => 'MA'], + 4219853 => ['nome' => 'Zortéa', 'uf' => 'SC'], + 5101837 => ['nome' => 'Boa Esperança do Norte', 'uf' => 'MT'], + ]; + + /** + * Retorna "Nome - UF" para o código IBGE informado, ou o próprio código se não encontrado. + */ + public static function lookup(string|int $cMun): string + { + $code = (int) $cMun; + $m = self::MAP[$code] ?? null; + return $m !== null ? $m['nome'] . ' - ' . $m['uf'] : (string) $cMun; + } +} diff --git a/src/Danfse/Enum/OpSimpNac.php b/src/Danfse/Enum/OpSimpNac.php new file mode 100644 index 0000000..c16d3b5 --- /dev/null +++ b/src/Danfse/Enum/OpSimpNac.php @@ -0,0 +1,33 @@ + 'Não Optante', + self::MEI => 'Optante - Microempreendedor Individual (MEI)', + self::ME_EPP => 'Optante - Microempresa ou Empresa de Pequeno Porte (ME/EPP)', + }; + } + + public static function labelFor(string $value): string + { + if (!is_numeric($value)) { + return '-'; + } + + return self::tryFrom((int) $value)?->label() ?? '-'; + } +} diff --git a/src/Danfse/Enum/RegApTribSN.php b/src/Danfse/Enum/RegApTribSN.php new file mode 100644 index 0000000..7a63fbb --- /dev/null +++ b/src/Danfse/Enum/RegApTribSN.php @@ -0,0 +1,33 @@ + 'Regime de apuração dos tributos federais e municipal pelo Simples Nacional', + self::SN_FEDERAL_ISSQN_NFSE => 'Regime de apuração dos tributos federais pelo SN e o ISSQN pela NFS-e conforme respectiva legislação municipal do tributo', + self::NFSE_FEDERAL_MUNICIPAL => 'Regime de apuração dos tributos federais e municipal pela NFS-e conforme respectivas legislações federal e municipal de cada tributo', + }; + } + + public static function labelFor(string $value): string + { + if (!is_numeric($value)) { + return '-'; + } + + return self::tryFrom((int) $value)?->label() ?? '-'; + } +} diff --git a/src/Danfse/Enum/RegEspTrib.php b/src/Danfse/Enum/RegEspTrib.php new file mode 100644 index 0000000..d39ea77 --- /dev/null +++ b/src/Danfse/Enum/RegEspTrib.php @@ -0,0 +1,41 @@ + 'Nenhum', + self::COOPERATIVA => 'Ato Cooperado (Cooperativa)', + self::ESTIMATIVA => 'Estimativa', + self::MICROEMPRESA_MUNICIPAL => 'Microempresa Municipal', + self::NOTARIO_REGISTRADOR => 'Notário ou Registrador', + self::PROFISSIONAL_AUTONOMO => 'Profissional Autônomo', + self::SOCIEDADE_PROFISSIONAIS => 'Sociedade de Profissionais', + }; + } + + public static function labelFor(string $value): string + { + if (!is_numeric($value)) { + return '-'; + } + + return self::tryFrom((int) $value)?->label() ?? '-'; + } +} diff --git a/src/Danfse/Enum/TpRetISSQN.php b/src/Danfse/Enum/TpRetISSQN.php new file mode 100644 index 0000000..a44a7ca --- /dev/null +++ b/src/Danfse/Enum/TpRetISSQN.php @@ -0,0 +1,33 @@ + 'Não Retido', + self::RETIDO_TOMADOR => 'Retido pelo Tomador', + self::RETIDO_INTERMEDIARIO => 'Retido pelo Intermediário', + }; + } + + public static function labelFor(string $value): string + { + if (!is_numeric($value)) { + return '-'; + } + + return self::tryFrom((int) $value)?->label() ?? '-'; + } +} diff --git a/src/Danfse/Enum/TribISSQN.php b/src/Danfse/Enum/TribISSQN.php new file mode 100644 index 0000000..454676c --- /dev/null +++ b/src/Danfse/Enum/TribISSQN.php @@ -0,0 +1,35 @@ + 'Operação Tributável', + self::IMUNIDADE => 'Imunidade', + self::EXPORTACAO => 'Exportação de Serviço', + self::NAO_INCIDENCIA => 'Não Incidência', + }; + } + + public static function labelFor(string $value): string + { + if (!is_numeric($value)) { + return '-'; + } + + return self::tryFrom((int) $value)?->label() ?? '-'; + } +} diff --git a/src/Danfse/Formatter.php b/src/Danfse/Formatter.php new file mode 100644 index 0000000..ef8c844 --- /dev/null +++ b/src/Danfse/Formatter.php @@ -0,0 +1,128 @@ +reformat($value, 'd/m/Y'); + } + + public function dateTime(string $value): string + { + return $this->reformat($value, 'd/m/Y H:i:s'); + } + + public function currency(string|float $value): string + { + if ($value === '' || $value === '-') { + return '-'; + } + + return 'R$ ' . number_format((float) $value, 2, ',', '.'); + } + + /** + * Format the national taxation code to the XX.XX.XX pattern. + */ + public function codTribNacional(string $value): string + { + if ($value === '' || $value === '-') { + return '-'; + } + + $digits = preg_replace('/\D/', '', $value) ?? ''; + + if (strlen($digits) === 6) { + return preg_replace('/(\d{2})(\d{2})(\d{2})/', '$1.$2.$3', $digits) ?? $digits; + } + + return $digits; + } + + public function limit(string $value, int $limit, string $end = '...'): string + { + if (mb_strlen($value) <= $limit) { + return $value; + } + + return mb_substr($value, 0, $limit) . $end; + } + + private function reformat(string $value, string $format): string + { + if ($value === '' || $value === '-') { + return '-'; + } + + try { + return (new \DateTimeImmutable($value))->format($format); + } catch (\Exception) { + return $value; + } + } +} diff --git a/src/Danfse/XmlToArray.php b/src/Danfse/XmlToArray.php new file mode 100644 index 0000000..f32ec56 --- /dev/null +++ b/src/Danfse/XmlToArray.php @@ -0,0 +1,72 @@ + + */ + public function convert(string $xml): array + { + $previous = libxml_use_internal_errors(true); + + try { + $root = new \SimpleXMLElement($xml); + } finally { + libxml_clear_errors(); + libxml_use_internal_errors($previous); + } + + $result = $this->nodeToArray($root); + + return is_array($result) ? $result : []; + } + + /** + * @return array|string + */ + private function nodeToArray(\SimpleXMLElement $node): array|string + { + $result = []; + + foreach ($node->attributes() ?? [] as $key => $value) { + $result[$key] = (string) $value; + } + + $nsChildren = $node->children(self::NFSE_NS); + if ($nsChildren !== null && $nsChildren->count() > 0) { + foreach ($nsChildren as $name => $child) { + $result[$name] = $this->nodeToArray($child); + } + } else { + // Fallback for XMLs that omit the namespace on children. + foreach ($node->children() ?? [] as $name => $child) { + if (!isset($result[$name])) { + $result[$name] = $this->nodeToArray($child); + } + } + } + + // Leaf element without attributes or children: return its text directly. + if ($result === []) { + return trim((string) $node); + } + + return $result; + } +} diff --git a/src/Danfse/template.php b/src/Danfse/template.php new file mode 100644 index 0000000..d8eb4f5 --- /dev/null +++ b/src/Danfse/template.php @@ -0,0 +1,583 @@ + $data */ +/** @var ?string $logo */ +/** @var string $qrCode */ +/** @var ?\LibreCodeCoop\NfsePHP\Danfse\Config\MunicipalityBranding $municipality */ +?> + + + + + DANFSe - <?= $data['numero_nfse'] ?> + + + + +
HOMOLOGAÇÃO
+ + + + + + + + + +
+ + Logo + + +
DANFSe v1.0
+
Documento Auxiliar da NFS-e
+ +
NFS-e SEM VALIDADE JURÍDICA
+ +
+ + + + logoDataUri): ?> + + + + +
Prefeitura + name) ?>
+ department): ?> + department) ?>
+ + email): ?> + email) ?> + +
+ +
+ + +
+ + + + + + + + + + + + + + + +
+ Chave de Acesso da NFS-e + + +
+ QR Code +
+ A autenticidade desta NFS-e pode ser verificada pela leitura deste código QR ou pela consulta da chave de acesso no portal nacional da NFS-e +
+
+
+ Número da NFS-e + + + Competência da NFS-e + + + Data e Hora da emissão da NFS-e + +
+ Número do DPS + + + Série do DPS + + + Data e Hora da emissão da DPS + +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + +
+ EMITENTE DA NFS-e + Prestador do Serviço + + CNPJ / CPF / NIF + + + Inscrição Municipal + + + Telefone + +
+ Nome / Nome Empresarial + + + E-mail + +
+ Endereço + + + Município + + + CEP + +
+ Simples Nacional na Data de Competência + + + Regime de Apuração Tributária pelo SN + +
+
+ + +
+ + + + + + + + + + + + + + + + +
+ TOMADOR DO SERVIÇO + + CNPJ / CPF / NIF + + + Inscrição Municipal + + + Telefone + +
+ Nome / Nome Empresarial + + + E-mail + +
+ Endereço + + + Município + + + CEP + +
+
+ + + +
+ + + + + + + + + + + + + + + + +
+ INTERMEDIÁRIO DO SERVIÇO + + CNPJ / CPF + + + Inscrição Municipal + + + Telefone + +
+ Nome / Nome Empresarial + + + E-mail + +
+ Endereço + + + Município + + + CEP + +
+
+ +
+ INTERMEDIÁRIO DO SERVIÇO NÃO IDENTIFICADO NA NFS-e +
+ + + +
+ + + + + + + + + + + + + +
+ SERVIÇO PRESTADO +
+ Código de Tributação Nacional + - + + Código de Tributação Municipal + - + + Local da Prestação + + + País da Prestação + +
+ Descrição do Serviço + +
+
+ + +
+ + + + + + + + + + + + + + + + +
+ TRIBUTAÇÃO MUNICIPAL +
+ Tributação do ISSQN + + + Município de Incidência do ISSQN + + + Regime Especial de Tributação + + + ISSQN Apurado + +
+ Valor do Serviço + + + BC ISSQN + + + Alíquota Aplicada + + + Retenção do ISSQN + +
+
+ + +
+ + + + + + + + + + + + + + +
+ TRIBUTAÇÃO FEDERAL +
+ IRRF + + + Contribuição Previdenciária - Retida + + + CSLL - Retida + +
+ PIS - Débito Apuração Própria + + + COFINS - Débito Apuração Própria + +
+
+ + +
+ + + + + + + + + + + + + + + +
+ VALOR TOTAL DA NFS-e +
+ Valor do Serviço + + + Desconto Condicionado + + + Desconto Incondicionado + + + ISSQN Retido + +
+ Total das Retenções Federais + + + PIS/COFINS - Débito Apur. Própria + + + Valor Líquido da NFS-e + +
+
+ + +
+ + + + + + + + + +
+ TOTAIS APROXIMADOS DOS TRIBUTOS +
+ Federais + + + Estaduais + + + Municipais + +
+
+ + +
+ + + + + + + +
+ INFORMAÇÕES COMPLEMENTARES +
+ +
+
+ + diff --git a/src/Exception/ArtifactException.php b/src/Exception/ArtifactException.php index 5a34be0..5dc715a 100644 --- a/src/Exception/ArtifactException.php +++ b/src/Exception/ArtifactException.php @@ -8,7 +8,8 @@ namespace LibreCodeCoop\NfsePHP\Exception; /** - * Thrown when the ADN gateway returns an error during DANFSE artifact retrieval. + * Thrown when the DANFSe PDF cannot be generated locally (invalid NFS-e XML or + * a PDF rendering failure). */ class ArtifactException extends GatewayException { diff --git a/src/Exception/NfseErrorCode.php b/src/Exception/NfseErrorCode.php index 2c00563..ff4ead0 100644 --- a/src/Exception/NfseErrorCode.php +++ b/src/Exception/NfseErrorCode.php @@ -30,6 +30,6 @@ enum NfseErrorCode: string /** Gateway returned an error when querying an NFS-e (HTTP 4xx/5xx). */ case QueryFailed = 'QUERY_FAILED'; - /** ADN gateway returned an error when retrieving DANFSE artifact (HTTP 4xx/5xx). */ + /** DANFSe PDF could not be generated locally (invalid NFS-e XML or render error). */ case ArtifactRetrievalFailed = 'ARTIFACT_RETRIEVAL_FAILED'; } diff --git a/src/Http/NfseClient.php b/src/Http/NfseClient.php index b94cb7a..7e88a4e 100644 --- a/src/Http/NfseClient.php +++ b/src/Http/NfseClient.php @@ -12,9 +12,9 @@ use LibreCodeCoop\NfsePHP\Contracts\NfseClientInterface; use LibreCodeCoop\NfsePHP\Contracts\SecretStoreInterface; use LibreCodeCoop\NfsePHP\Contracts\XmlSignerInterface; +use LibreCodeCoop\NfsePHP\Danfse\DanfseGenerator; use LibreCodeCoop\NfsePHP\Dto\DpsData; use LibreCodeCoop\NfsePHP\Dto\ReceiptData; -use LibreCodeCoop\NfsePHP\Exception\ArtifactException; use LibreCodeCoop\NfsePHP\Exception\CancellationException; use LibreCodeCoop\NfsePHP\Exception\IssuanceException; use LibreCodeCoop\NfsePHP\Exception\NetworkException; @@ -33,15 +33,18 @@ class NfseClient implements NfseClientInterface { private readonly string $baseUrl; private readonly XmlSignerInterface $signer; + private readonly DanfseGenerator $danfseGenerator; public function __construct( private readonly EnvironmentConfig $environment, private readonly CertConfig $cert, private readonly SecretStoreInterface $secretStore, ?XmlSignerInterface $signer = null, + ?DanfseGenerator $danfseGenerator = null, ) { - $this->baseUrl = $environment->baseUrl; - $this->signer = $signer ?? new DpsSigner($secretStore); + $this->baseUrl = $environment->baseUrl; + $this->signer = $signer ?? new DpsSigner($secretStore); + $this->danfseGenerator = $danfseGenerator ?? new DanfseGenerator(); } public function emit(DpsData $dps): ReceiptData @@ -108,31 +111,9 @@ public function cancel(string $chaveAcesso, string $motivo): bool } #[\Override] - public function getDanfse(string $chaveAcesso): string + public function getDanfse(string $nfseXml): string { - $url = $this->environment->danfseBaseUrl . '/' . $chaveAcesso; - - [$httpStatus, $body] = $this->getRawBytes($url); - - if ($httpStatus >= 400) { - throw new ArtifactException( - 'ADN gateway returned error for DANFSE retrieval (HTTP ' . $httpStatus . ')', - NfseErrorCode::ArtifactRetrievalFailed, - $httpStatus, - [], - ); - } - - if ($body === '') { - throw new ArtifactException( - 'ADN gateway returned empty body for DANFSE retrieval', - NfseErrorCode::ArtifactRetrievalFailed, - $httpStatus, - [], - ); - } - - return $body; + return $this->danfseGenerator->generateFromXml($nfseXml); } // ------------------------------------------------------------------------- @@ -296,35 +277,6 @@ private function fetchAndDecode(string $path, mixed $context): array return [$httpStatus, $decoded]; } - /** - * Fetch a URL and return raw response bytes without JSON decoding. - * - * Used for binary endpoints such as ADN DANFSE (PDF artifact retrieval). - * - * @return array{int, string} - */ - private function getRawBytes(string $url): array - { - $context = stream_context_create([ - 'http' => [ - 'method' => 'GET', - 'header' => "Accept: application/pdf\r\n", - 'ignore_errors' => true, - ], - 'ssl' => $this->sslContextOptions(), - ]); - - $http_response_header = []; - $body = file_get_contents($url, false, $context); - $httpStatus = $this->parseHttpStatus($http_response_header); - - if ($body === false) { - throw new NetworkException('Failed to connect to ADN DANFSE gateway at ' . $url); - } - - return [$httpStatus, $body]; - } - /** * Extract the HTTP status code from the first response header line. * diff --git a/tests/Unit/Config/EnvironmentConfigTest.php b/tests/Unit/Config/EnvironmentConfigTest.php index 4f81bf4..7d5eba8 100644 --- a/tests/Unit/Config/EnvironmentConfigTest.php +++ b/tests/Unit/Config/EnvironmentConfigTest.php @@ -53,26 +53,4 @@ public function testCustomBaseUrlOverridesSandboxUrl(): void self::assertSame($custom, $config->baseUrl); } - - public function testDanfseBaseUrlDefaultsToProductionAdn(): void - { - $config = new EnvironmentConfig(sandboxMode: false); - - self::assertSame('https://adn.nfse.gov.br/danfse', $config->danfseBaseUrl); - } - - public function testDanfseBaseUrlDefaultsToSandboxAdn(): void - { - $config = new EnvironmentConfig(sandboxMode: true); - - self::assertSame('https://adn.producaorestrita.nfse.gov.br/danfse', $config->danfseBaseUrl); - } - - public function testCustomDanfseBaseUrlOverridesDefault(): void - { - $custom = 'http://localhost:9999/danfse'; - $config = new EnvironmentConfig(danfseBaseUrl: $custom); - - self::assertSame($custom, $config->danfseBaseUrl); - } } diff --git a/tests/Unit/Danfse/DanfseGeneratorTest.php b/tests/Unit/Danfse/DanfseGeneratorTest.php new file mode 100644 index 0000000..8c1c109 --- /dev/null +++ b/tests/Unit/Danfse/DanfseGeneratorTest.php @@ -0,0 +1,80 @@ +xml = $xml; + } + + public function testGenerateFromXmlReturnsPdfBinary(): void + { + $pdf = (new DanfseGenerator())->generateFromXml($this->xml); + + self::assertStringStartsWith('%PDF-', $pdf); + } + + public function testGeneratedPdfSizeIsReasonable(): void + { + $pdf = (new DanfseGenerator())->generateFromXml($this->xml); + + $size = strlen($pdf); + self::assertGreaterThan(1000, $size); + self::assertLessThan(5_000_000, $size); + } + + public function testGenerateWithMunicipalityConfig(): void + { + $config = new DanfseConfig( + municipality: new MunicipalityBranding( + name: 'Prefeitura de Niterói', + department: 'Secretaria Municipal de Fazenda', + email: 'iss@fazenda.niteroi.rj.gov.br', + ), + ); + + $pdf = (new DanfseGenerator($config))->generateFromXml($this->xml); + + self::assertStringStartsWith('%PDF-', $pdf); + } + + public function testGenerateHtmlContainsHomologacaoWatermark(): void + { + $xml = str_replace('1', '2', $this->xml); + + $html = (new DanfseGenerator())->generateHtml($xml); + + self::assertStringContainsString('HOMOLOGAÇÃO', $html); + } + + public function testInvalidXmlThrowsArtifactException(): void + { + try { + (new DanfseGenerator())->generateFromXml('not-valid-xml'); + self::fail('Expected ArtifactException'); + } catch (ArtifactException $e) { + self::assertSame(NfseErrorCode::ArtifactRetrievalFailed, $e->errorCode); + } + } +} diff --git a/tests/Unit/Danfse/DanfseTemplateTest.php b/tests/Unit/Danfse/DanfseTemplateTest.php new file mode 100644 index 0000000..e20528c --- /dev/null +++ b/tests/Unit/Danfse/DanfseTemplateTest.php @@ -0,0 +1,102 @@ + + */ + private function fixtureArray(): array + { + $xml = file_get_contents(__DIR__ . '/../../fixtures/nfse_exemplo.xml'); + self::assertNotFalse($xml); + + return (new XmlToArray())->convert($xml); + } + + public function testBuildDataMapsKeyFields(): void + { + $data = (new DanfseTemplate())->buildData($this->fixtureArray()); + + // Access key (NFS prefix stripped) + self::assertSame('3303302112233450000195000000000000100000000001', $data['chave_acesso']); + self::assertSame('10', $data['numero_nfse']); + self::assertSame(1, $data['ambiente']); + + // Emitente + self::assertSame('11.222.333/0001-81', $data['emitente']['cnpj_cpf']); + self::assertSame('EMPRESA EXEMPLO DESENVOLVIMENTO LTDA', $data['emitente']['nome']); + self::assertSame('Niterói - RJ', $data['emitente']['municipio']); + self::assertSame('24020-005', $data['emitente']['cep']); + self::assertSame('Não Optante', $data['emitente']['simples_nacional']); + + // Tomador (municipality resolved via IBGE map) + self::assertSame('91.712.343/0001-34', $data['tomador']['cnpj_cpf']); + self::assertSame('CLIENTE FICTICIO COMERCIO S.A.', $data['tomador']['nome']); + self::assertSame('São Paulo - SP', $data['tomador']['municipio']); + + // Intermediário present + self::assertNotNull($data['intermediario']); + self::assertSame('INTERMEDIARIO FICTICIO LTDA', $data['intermediario']['nome']); + + // Serviço + self::assertSame('01.07.00', $data['servico']['codigo_trib_nacional']); + + // Tributação municipal labels + self::assertSame('Operação Tributável', $data['tributacao_municipal']['tributacao_issqn']); + self::assertSame('Retido pelo Tomador', $data['tributacao_municipal']['retencao_issqn']); + self::assertSame('Sociedade de Profissionais', $data['tributacao_municipal']['regime_especial']); + self::assertSame('Niterói', $data['tributacao_municipal']['municipio_incidencia']); + + // Totais + self::assertSame('R$ 1.500,00', $data['totais']['valor_servico']); + self::assertSame('R$ 1.292,75', $data['totais']['valor_liquido']); + } + + public function testIntermediarioIsNullWhenAbsent(): void + { + $arr = $this->fixtureArray(); + unset($arr['infNFSe']['DPS']['infDPS']['interm']); + + $data = (new DanfseTemplate())->buildData($arr); + + self::assertNull($data['intermediario']); + } + + public function testRenderProducesHtmlWithQrCodeAndAccessKey(): void + { + $html = (new DanfseTemplate())->render($this->fixtureArray(), new DanfseConfig()); + + self::assertStringContainsString('', $html); + self::assertStringContainsString('3303302112233450000195000000000000100000000001', $html); + self::assertStringContainsString('data:image/svg+xml;base64,', $html); + // Production environment: no homologação watermark + self::assertStringNotContainsString('HOMOLOGAÇÃO', $html); + } + + public function testHomologacaoEnvironmentShowsWatermark(): void + { + $arr = $this->fixtureArray(); + $arr['infNFSe']['DPS']['infDPS']['tpAmb'] = '2'; + + $data = (new DanfseTemplate())->buildData($arr); + self::assertSame(2, $data['ambiente']); + + $html = (new DanfseTemplate())->render($arr, new DanfseConfig()); + self::assertStringContainsString('HOMOLOGAÇÃO', $html); + } +} diff --git a/tests/Unit/Danfse/EnumLabelsTest.php b/tests/Unit/Danfse/EnumLabelsTest.php new file mode 100644 index 0000000..84f798e --- /dev/null +++ b/tests/Unit/Danfse/EnumLabelsTest.php @@ -0,0 +1,41 @@ +fmt = new Formatter(); + } + + public function testCnpjIsFormatted(): void + { + self::assertSame('11.222.333/0001-81', $this->fmt->cnpjCpf('11222333000181')); + } + + public function testCpfIsFormatted(): void + { + self::assertSame('123.456.789-09', $this->fmt->cnpjCpf('12345678909')); + } + + public function testCnpjCpfReturnsDashForEmpty(): void + { + self::assertSame('-', $this->fmt->cnpjCpf('')); + self::assertSame('-', $this->fmt->cnpjCpf('-')); + } + + public function testCnpjCpfReturnsRawWhenLengthUnexpected(): void + { + self::assertSame('12345', $this->fmt->cnpjCpf('12345')); + } + + public function testPhoneWithEightDigitsLocalAndMobile(): void + { + self::assertSame('(21) 3000-1234', $this->fmt->phone('2130001234')); + self::assertSame('(11) 98765-4321', $this->fmt->phone('11987654321')); + } + + public function testCepIsFormatted(): void + { + self::assertSame('24020-005', $this->fmt->cep('24020005')); + self::assertSame('-', $this->fmt->cep('')); + } + + public function testDateAndDateTime(): void + { + self::assertSame('15/01/2026', $this->fmt->date('2026-01-15')); + self::assertSame('15/01/2026 14:30:00', $this->fmt->dateTime('2026-01-15T14:30:00-03:00')); + self::assertSame('-', $this->fmt->date('')); + } + + public function testCurrency(): void + { + self::assertSame('R$ 1.500,00', $this->fmt->currency('1500.00')); + self::assertSame('R$ 1.292,75', $this->fmt->currency('1292.75')); + self::assertSame('-', $this->fmt->currency('')); + } + + public function testCodTribNacional(): void + { + self::assertSame('01.07.00', $this->fmt->codTribNacional('010700')); + self::assertSame('-', $this->fmt->codTribNacional('')); + } + + public function testLimitTruncatesWithEllipsis(): void + { + self::assertSame('abc', $this->fmt->limit('abc', 5)); + self::assertSame('abcde...', $this->fmt->limit('abcdefgh', 5)); + } +} diff --git a/tests/Unit/Danfse/MunicipiosTest.php b/tests/Unit/Danfse/MunicipiosTest.php new file mode 100644 index 0000000..3f0fffe --- /dev/null +++ b/tests/Unit/Danfse/MunicipiosTest.php @@ -0,0 +1,28 @@ +convert($this->fixture()); + + // Root attribute is captured + self::assertSame('1.01', $arr['versao']); + + $inf = $arr['infNFSe']; + // Id attribute on infNFSe + self::assertSame('NFS3303302112233450000195000000000000100000000001', $inf['Id']); + self::assertSame('10', $inf['nNFSe']); + self::assertSame('Niterói', $inf['xLocEmi']); + + // Nested leaf text + self::assertSame('EMPRESA EXEMPLO DESENVOLVIMENTO LTDA', $inf['emit']['xNome']); + self::assertSame('11222333000181', $inf['emit']['CNPJ']); + self::assertSame('24020005', $inf['emit']['enderNac']['CEP']); + + // Deeply nested under DPS/infDPS + self::assertSame('1', $inf['DPS']['infDPS']['tpAmb']); + self::assertSame('CLIENTE FICTICIO COMERCIO S.A.', $inf['DPS']['infDPS']['toma']['xNome']); + self::assertSame('1500.00', $inf['DPS']['infDPS']['valores']['vServPrest']['vServ']); + } + + public function testIgnoresDigitalSignature(): void + { + $signed = str_replace( + '', + 'abc', + $this->fixture(), + ); + + $arr = (new XmlToArray())->convert($signed); + + self::assertArrayNotHasKey('Signature', $arr); + self::assertArrayHasKey('infNFSe', $arr); + } +} diff --git a/tests/Unit/Http/NfseClientTest.php b/tests/Unit/Http/NfseClientTest.php index f35b793..a4fa1dc 100644 --- a/tests/Unit/Http/NfseClientTest.php +++ b/tests/Unit/Http/NfseClientTest.php @@ -283,61 +283,33 @@ public function testCancellationExceptionCarriesErrorCodeAndHttpStatus(): void // getDanfse tests // ------------------------------------------------------------------------- - public function testGetDanfseReturnsPdfBytesOnSuccess(): void + public function testGetDanfseGeneratesPdfLocallyFromXml(): void { - $fakePdfBytes = '%PDF-1.4 fake pdf content for testing'; + $xml = file_get_contents(__DIR__ . '/../../fixtures/nfse_exemplo.xml'); + self::assertNotFalse($xml); - self::$server->setResponseOfPath( - '/danfse/abc-danfse-key-123', - new Response($fakePdfBytes, ['Content-Type' => 'application/pdf'], 200) - ); - - $client = $this->makeClient($this->signer, danfseBaseUrl: self::$server->getServerRoot() . '/danfse'); + $client = $this->makeClient($this->signer); - $pdf = $client->getDanfse('abc-danfse-key-123'); + $pdf = $client->getDanfse($xml); - self::assertSame($fakePdfBytes, $pdf); + self::assertStringStartsWith('%PDF-', $pdf); } - public function testGetDanfseThrowsArtifactExceptionWhenGatewayReturnsError(): void + public function testGetDanfseThrowsArtifactExceptionForInvalidXml(): void { - self::$server->setResponseOfPath( - '/danfse/not-found-key', - new Response('not found', ['Content-Type' => 'text/plain'], 404) - ); - - $client = $this->makeClient($this->signer, danfseBaseUrl: self::$server->getServerRoot() . '/danfse'); + $client = $this->makeClient($this->signer); $this->expectException(ArtifactException::class); - $client->getDanfse('not-found-key'); - } - - public function testArtifactExceptionCarriesErrorCodeAndHttpStatus(): void - { - self::$server->setResponseOfPath( - '/danfse/server-error-key', - new Response('internal error', ['Content-Type' => 'text/plain'], 500) - ); - - $client = $this->makeClient($this->signer, danfseBaseUrl: self::$server->getServerRoot() . '/danfse'); - - try { - $client->getDanfse('server-error-key'); - self::fail('Expected ArtifactException'); - } catch (ArtifactException $e) { - self::assertSame(NfseErrorCode::ArtifactRetrievalFailed, $e->errorCode); - self::assertSame(500, $e->httpStatus); - } + $client->getDanfse('not-valid-xml'); } // ------------------------------------------------------------------------- - private function makeClient(?XmlSignerInterface $signer = null, ?string $danfseBaseUrl = null): NfseClient + private function makeClient(?XmlSignerInterface $signer = null): NfseClient { return new NfseClient( environment: new EnvironmentConfig( baseUrl: self::$server->getServerRoot() . '/SefinNacional', - danfseBaseUrl: $danfseBaseUrl ?? self::$server->getServerRoot() . '/danfse', ), cert: new CertConfig( cnpj: '29842527000145', diff --git a/tests/fixtures/nfse_exemplo.xml b/tests/fixtures/nfse_exemplo.xml new file mode 100644 index 0000000..3e72197 --- /dev/null +++ b/tests/fixtures/nfse_exemplo.xml @@ -0,0 +1,138 @@ + + + + Niterói + Niterói + 10 + 3303302 + Niterói + Desenvolvimento e licenciamento de programas de computador customizáveis. + Desenvolvimento e licenciamento de programas de computador customizáveis. + EXEMPLO_1.0.0 + 1 + 1 + 1 + 100 + 2026-01-15T14:30:00-03:00 + 9900001 + + 11222333000181 + EMPRESA EXEMPLO DESENVOLVIMENTO LTDA + + Rua Visconde do Rio Branco + 100 + Centro + 3303302 + RJ + 24020005 + + 2130001234 + financeiro@example.org + + + 1292.75 + + + + 1 + 2026-01-15T14:00:00-03:00 + EXEMPLO_1.0.0 + 20261 + 5 + 2026-01-15 + 1 + 3303302 + + 11222333000181 + 2130001234 + financeiro@empresaexemplo.com.br + + 1 + 6 + + + + 91712343000134 + 654321 + CLIENTE FICTICIO COMERCIO S.A. + + + 3550308 + 01310100 + + Avenida Paulista + 1000 + Bela Vista + + 11987654321 + contato@clienteficticio.com.br + + + 77150344000101 + INTERMEDIARIO FICTICIO LTDA + + + 3518800 + 07095130 + + Rua Santa Conceição + 333 + Guarulhos + + 1133334444 + contato@intermediarioficticio.com.br + 123456 + + + + 3303302 + + + 010700 + 007 + Desenvolvimento de sistema de gestão empresarial - Contrato #2026-001 + + + Referente ao contrato de prestação de serviços nº 2026-001, firmado em 02/01/2026. Pagamento conforme cronograma acordado. Pedido de compra: PC-00123. + + + + + 1500.00 + + + + 1 + 2 + 2.00 + 1350.00 + 27.00 + 50.00 + 100.00 + + + + 01 + 1500.00 + 0.65 + 3.00 + 9.75 + 45.00 + + 22.50 + 15.00 + 15.00 + + + + 4.50 + 0.10 + 2.00 + + + + + + + + From 3b54e52fc13f51acdde8228429b004fa68fbface Mon Sep 17 00:00:00 2001 From: YvesCesar Date: Tue, 30 Jun 2026 17:36:24 -0400 Subject: [PATCH 02/13] fix: improve local DANFSe validation and sandbox output Signed-off-by: YvesCesar --- src/Danfse/DanfseGenerator.php | 30 ++++++++++++ src/Danfse/DanfseTemplate.php | 60 +++++++++++++++-------- tests/Unit/Danfse/DanfseGeneratorTest.php | 29 +++++++++++ tests/Unit/Danfse/DanfseTemplateTest.php | 46 +++++++++++++---- tests/Unit/Danfse/XmlToArrayTest.php | 12 ++--- 5 files changed, 141 insertions(+), 36 deletions(-) diff --git a/src/Danfse/DanfseGenerator.php b/src/Danfse/DanfseGenerator.php index 6a2f995..075f790 100644 --- a/src/Danfse/DanfseGenerator.php +++ b/src/Danfse/DanfseGenerator.php @@ -70,6 +70,36 @@ public function generateHtml(string $xml): string ); } + $this->assertAuthorizedNfse($data); + return (new DanfseTemplate())->render($data, $this->config); } + + /** + * @param array $data + */ + private function assertAuthorizedNfse(array $data): void + { + $infNfse = $data['infNFSe'] ?? null; + if (!is_array($infNfse)) { + throw $this->invalidNfseXml(); + } + + $id = $infNfse['Id'] ?? null; + if (!is_string($id) || trim($id) === '' || !str_starts_with(trim($id), 'NFS')) { + throw $this->invalidNfseXml(); + } + + if (!is_array($infNfse['DPS']['infDPS'] ?? null)) { + throw $this->invalidNfseXml(); + } + } + + private function invalidNfseXml(): ArtifactException + { + return new ArtifactException( + 'Failed to generate DANFSe: XML does not contain an authorized NFS-e.', + NfseErrorCode::ArtifactRetrievalFailed, + ); + } } diff --git a/src/Danfse/DanfseTemplate.php b/src/Danfse/DanfseTemplate.php index 6045c85..5b2a8bc 100644 --- a/src/Danfse/DanfseTemplate.php +++ b/src/Danfse/DanfseTemplate.php @@ -27,7 +27,8 @@ */ final class DanfseTemplate { - private const QR_BASE_URL = 'https://www.nfse.gov.br/ConsultaPublica/?tpc=1&chave='; + private const QR_BASE_URL_PROD = 'https://www.nfse.gov.br/ConsultaPublica/?tpc=1&chave='; + private const QR_BASE_URL_SANDBOX = 'https://www.producaorestrita.nfse.gov.br/ConsultaPublica/?tpc=1&chave='; private readonly Formatter $fmt; @@ -46,7 +47,7 @@ public function render(array $nfse, DanfseConfig $config): string $data = $this->buildData($nfse); $logo = $config->logoDataUri; $municipality = $config->municipality; - $qrCode = $this->generateQrCode($data['chave_acesso']); + $qrCode = $this->generateQrCode((string) $data['chave_acesso'], (int) $data['ambiente']); array_walk_recursive($data, static function (mixed &$v): void { if (is_string($v)) { @@ -100,7 +101,7 @@ public function buildData(array $nfse): array 'emitente' => [ 'nome' => $this->val($emit, 'xNome') ?: '-', - 'cnpj_cpf' => $this->fmt->cnpjCpf($this->documento($emit)), + 'cnpj_cpf' => $this->formattedDocument($emit), 'im' => '-', 'telefone' => $this->fmt->phone($this->val($emit, 'fone')), 'email' => strtolower($this->val($emit, 'email')), @@ -113,7 +114,7 @@ public function buildData(array $nfse): array 'tomador' => [ 'nome' => $this->val($toma, 'xNome') ?: '-', - 'cnpj_cpf' => $this->fmt->cnpjCpf($this->documento($toma)), + 'cnpj_cpf' => $this->formattedDocument($toma), 'im' => $this->val($toma, 'IM') ?: '-', 'telefone' => $this->fmt->phone($this->val($toma, 'fone')), 'email' => strtolower($this->val($toma, 'email')), @@ -124,7 +125,7 @@ public function buildData(array $nfse): array 'intermediario' => $interm === [] ? null : [ 'nome' => $this->val($interm, 'xNome') ?: '-', - 'cnpj_cpf' => $this->fmt->cnpjCpf($this->documento($interm)), + 'cnpj_cpf' => $this->formattedDocument($interm), 'im' => $this->val($interm, 'IMPrestMun') ?: '-', 'telefone' => $this->fmt->phone($this->val($interm, 'fone')), 'email' => strtolower($this->val($interm, 'email')), @@ -194,35 +195,37 @@ public function buildData(array $nfse): array /** * Navigate to a nested sub-array, returning [] when any step is missing. * - * @param array $arr + * @param array $source * @return array */ - private function node(array $arr, string ...$keys): array + private function node(array $source, string ...$keys): array { + $currentNode = $source; + foreach ($keys as $key) { - if (!is_array($arr[$key] ?? null)) { + if (!is_array($currentNode[$key] ?? null)) { return []; } - /** @var array $arr */ - $arr = $arr[$key]; + /** @var array $currentNode */ + $currentNode = $currentNode[$key]; } - return $arr; + return $currentNode; } /** * Navigate to a nested scalar value, returning '' when missing or non-scalar. * - * @param array $arr + * @param array $source */ - private function val(array $arr, string ...$keys): string + private function val(array $source, string ...$keys): string { $last = array_pop($keys); if ($last === null) { return ''; } - $node = $this->node($arr, ...$keys); + $node = $this->node($source, ...$keys); $value = $node[$last] ?? null; return is_scalar($value) ? trim((string) $value) : ''; @@ -233,11 +236,19 @@ private function val(array $arr, string ...$keys): string * * @param array $party */ - private function documento(array $party): string + private function formattedDocument(array $party): string { - return $this->val($party, 'CNPJ') - ?: ($this->val($party, 'CPF') - ?: $this->val($party, 'NIF')); + $cnpj = $this->val($party, 'CNPJ'); + if ($cnpj !== '') { + return $this->fmt->cnpjCpf($cnpj); + } + + $cpf = $this->val($party, 'CPF'); + if ($cpf !== '') { + return $this->fmt->cnpjCpf($cpf); + } + + return $this->val($party, 'NIF') ?: '-'; } /** @@ -283,14 +294,23 @@ private function sumCurrency(string ...$values): string return $hasValue ? $this->fmt->currency((string) $sum) : '-'; } - private function generateQrCode(string $chaveAcesso): string + private function generateQrCode(string $chaveAcesso, int $ambiente): string { $renderer = new ImageRenderer( new RendererStyle(200), new SvgImageBackEnd(), ); - $svg = (new Writer($renderer))->writeString(self::QR_BASE_URL . $chaveAcesso); + $svg = (new Writer($renderer))->writeString($this->qrCodeUrl($chaveAcesso, $ambiente)); return 'data:image/svg+xml;base64,' . base64_encode($svg); } + + private function qrCodeUrl(string $chaveAcesso, int $ambiente): string + { + $baseUrl = $ambiente === 2 + ? self::QR_BASE_URL_SANDBOX + : self::QR_BASE_URL_PROD; + + return $baseUrl . $chaveAcesso; + } } diff --git a/tests/Unit/Danfse/DanfseGeneratorTest.php b/tests/Unit/Danfse/DanfseGeneratorTest.php index 8c1c109..e5cecf1 100644 --- a/tests/Unit/Danfse/DanfseGeneratorTest.php +++ b/tests/Unit/Danfse/DanfseGeneratorTest.php @@ -77,4 +77,33 @@ public function testInvalidXmlThrowsArtifactException(): void self::assertSame(NfseErrorCode::ArtifactRetrievalFailed, $e->errorCode); } } + + public function testWellFormedNonNfseXmlThrowsArtifactException(): void + { + try { + (new DanfseGenerator())->generateHtml(''); + self::fail('Expected ArtifactException'); + } catch (ArtifactException $e) { + self::assertSame(NfseErrorCode::ArtifactRetrievalFailed, $e->errorCode); + } + } + + public function testDpsOnlyXmlThrowsArtifactException(): void + { + $xml = << + + + 2 + + + XML; + + try { + (new DanfseGenerator())->generateHtml($xml); + self::fail('Expected ArtifactException'); + } catch (ArtifactException $e) { + self::assertSame(NfseErrorCode::ArtifactRetrievalFailed, $e->errorCode); + } + } } diff --git a/tests/Unit/Danfse/DanfseTemplateTest.php b/tests/Unit/Danfse/DanfseTemplateTest.php index e20528c..0020fae 100644 --- a/tests/Unit/Danfse/DanfseTemplateTest.php +++ b/tests/Unit/Danfse/DanfseTemplateTest.php @@ -20,7 +20,7 @@ class DanfseTemplateTest extends TestCase /** * @return array */ - private function fixtureArray(): array + private function fixtureNfseData(): array { $xml = file_get_contents(__DIR__ . '/../../fixtures/nfse_exemplo.xml'); self::assertNotFalse($xml); @@ -30,7 +30,7 @@ private function fixtureArray(): array public function testBuildDataMapsKeyFields(): void { - $data = (new DanfseTemplate())->buildData($this->fixtureArray()); + $data = (new DanfseTemplate())->buildData($this->fixtureNfseData()); // Access key (NFS prefix stripped) self::assertSame('3303302112233450000195000000000000100000000001', $data['chave_acesso']); @@ -69,17 +69,28 @@ public function testBuildDataMapsKeyFields(): void public function testIntermediarioIsNullWhenAbsent(): void { - $arr = $this->fixtureArray(); - unset($arr['infNFSe']['DPS']['infDPS']['interm']); + $nfseData = $this->fixtureNfseData(); + unset($nfseData['infNFSe']['DPS']['infDPS']['interm']); - $data = (new DanfseTemplate())->buildData($arr); + $data = (new DanfseTemplate())->buildData($nfseData); self::assertNull($data['intermediario']); } + public function testTomadorNifIsPreserved(): void + { + $nfseData = $this->fixtureNfseData(); + unset($nfseData['infNFSe']['DPS']['infDPS']['toma']['CNPJ']); + $nfseData['infNFSe']['DPS']['infDPS']['toma']['NIF'] = 'AB-123'; + + $data = (new DanfseTemplate())->buildData($nfseData); + + self::assertSame('AB-123', $data['tomador']['cnpj_cpf']); + } + public function testRenderProducesHtmlWithQrCodeAndAccessKey(): void { - $html = (new DanfseTemplate())->render($this->fixtureArray(), new DanfseConfig()); + $html = (new DanfseTemplate())->render($this->fixtureNfseData(), new DanfseConfig()); self::assertStringContainsString('', $html); self::assertStringContainsString('3303302112233450000195000000000000100000000001', $html); @@ -90,13 +101,28 @@ public function testRenderProducesHtmlWithQrCodeAndAccessKey(): void public function testHomologacaoEnvironmentShowsWatermark(): void { - $arr = $this->fixtureArray(); - $arr['infNFSe']['DPS']['infDPS']['tpAmb'] = '2'; + $nfseData = $this->fixtureNfseData(); + $nfseData['infNFSe']['DPS']['infDPS']['tpAmb'] = '2'; - $data = (new DanfseTemplate())->buildData($arr); + $data = (new DanfseTemplate())->buildData($nfseData); self::assertSame(2, $data['ambiente']); - $html = (new DanfseTemplate())->render($arr, new DanfseConfig()); + $html = (new DanfseTemplate())->render($nfseData, new DanfseConfig()); self::assertStringContainsString('HOMOLOGAÇÃO', $html); } + + public function testQrCodeUrlUsesEnvironmentHost(): void + { + $method = new \ReflectionMethod(DanfseTemplate::class, 'qrCodeUrl'); + $template = new DanfseTemplate(); + + self::assertSame( + 'https://www.nfse.gov.br/ConsultaPublica/?tpc=1&chave=abc', + $method->invoke($template, 'abc', 1), + ); + self::assertSame( + 'https://www.producaorestrita.nfse.gov.br/ConsultaPublica/?tpc=1&chave=abc', + $method->invoke($template, 'abc', 2), + ); + } } diff --git a/tests/Unit/Danfse/XmlToArrayTest.php b/tests/Unit/Danfse/XmlToArrayTest.php index 7a93609..103f91f 100644 --- a/tests/Unit/Danfse/XmlToArrayTest.php +++ b/tests/Unit/Danfse/XmlToArrayTest.php @@ -25,12 +25,12 @@ private function fixture(): string public function testConvertsNestedElementsAndAttributes(): void { - $arr = (new XmlToArray())->convert($this->fixture()); + $nfseData = (new XmlToArray())->convert($this->fixture()); // Root attribute is captured - self::assertSame('1.01', $arr['versao']); + self::assertSame('1.01', $nfseData['versao']); - $inf = $arr['infNFSe']; + $inf = $nfseData['infNFSe']; // Id attribute on infNFSe self::assertSame('NFS3303302112233450000195000000000000100000000001', $inf['Id']); self::assertSame('10', $inf['nNFSe']); @@ -55,9 +55,9 @@ public function testIgnoresDigitalSignature(): void $this->fixture(), ); - $arr = (new XmlToArray())->convert($signed); + $nfseData = (new XmlToArray())->convert($signed); - self::assertArrayNotHasKey('Signature', $arr); - self::assertArrayHasKey('infNFSe', $arr); + self::assertArrayNotHasKey('Signature', $nfseData); + self::assertArrayHasKey('infNFSe', $nfseData); } } From 1c01be4a5e33d51ae3cd810e6a667e09409d9b01 Mon Sep 17 00:00:00 2001 From: YvesCesar Date: Tue, 30 Jun 2026 18:04:08 -0400 Subject: [PATCH 03/13] refactor(danfse): extract shared logo resolver and enum label trait Signed-off-by: YvesCesar --- src/Danfse/Config/DanfseConfig.php | 3 +-- src/Danfse/Config/LogoLoader.php | 9 ++++++++ src/Danfse/Config/MunicipalityBranding.php | 3 +-- src/Danfse/Enum/LabelFromIntValue.php | 27 ++++++++++++++++++++++ src/Danfse/Enum/OpSimpNac.php | 11 ++------- src/Danfse/Enum/RegApTribSN.php | 11 ++------- src/Danfse/Enum/RegEspTrib.php | 11 ++------- src/Danfse/Enum/TpRetISSQN.php | 11 ++------- src/Danfse/Enum/TribISSQN.php | 11 ++------- 9 files changed, 48 insertions(+), 49 deletions(-) create mode 100644 src/Danfse/Enum/LabelFromIntValue.php diff --git a/src/Danfse/Config/DanfseConfig.php b/src/Danfse/Config/DanfseConfig.php index 279ad0e..2e6b1b0 100644 --- a/src/Danfse/Config/DanfseConfig.php +++ b/src/Danfse/Config/DanfseConfig.php @@ -23,7 +23,6 @@ public function __construct( ?string $logoPath = null, public ?MunicipalityBranding $municipality = null, ) { - $this->logoDataUri = $logoDataUri - ?? ($logoPath !== null ? LogoLoader::pathToDataUri($logoPath) : null); + $this->logoDataUri = LogoLoader::resolve($logoDataUri, $logoPath); } } diff --git a/src/Danfse/Config/LogoLoader.php b/src/Danfse/Config/LogoLoader.php index 6c025e5..298c078 100644 --- a/src/Danfse/Config/LogoLoader.php +++ b/src/Danfse/Config/LogoLoader.php @@ -13,6 +13,15 @@ */ final class LogoLoader { + /** + * Resolve a logo to a data URI: a ready data URI takes precedence, otherwise + * a file path is loaded from disk, otherwise null (no logo). + */ + public static function resolve(?string $dataUri, ?string $path): ?string + { + return $dataUri ?? ($path !== null ? self::pathToDataUri($path) : null); + } + public static function pathToDataUri(string $path): string { if (!is_readable($path)) { diff --git a/src/Danfse/Config/MunicipalityBranding.php b/src/Danfse/Config/MunicipalityBranding.php index d2d6be3..70eb365 100644 --- a/src/Danfse/Config/MunicipalityBranding.php +++ b/src/Danfse/Config/MunicipalityBranding.php @@ -24,7 +24,6 @@ public function __construct( ?string $logoDataUri = null, ?string $logoPath = null, ) { - $this->logoDataUri = $logoDataUri - ?? ($logoPath !== null ? LogoLoader::pathToDataUri($logoPath) : null); + $this->logoDataUri = LogoLoader::resolve($logoDataUri, $logoPath); } } diff --git a/src/Danfse/Enum/LabelFromIntValue.php b/src/Danfse/Enum/LabelFromIntValue.php new file mode 100644 index 0000000..ba85c48 --- /dev/null +++ b/src/Danfse/Enum/LabelFromIntValue.php @@ -0,0 +1,27 @@ +label() ?? '-'; + } +} diff --git a/src/Danfse/Enum/OpSimpNac.php b/src/Danfse/Enum/OpSimpNac.php index c16d3b5..df2552e 100644 --- a/src/Danfse/Enum/OpSimpNac.php +++ b/src/Danfse/Enum/OpSimpNac.php @@ -9,6 +9,8 @@ enum OpSimpNac: int { + use LabelFromIntValue; + case NAO_OPTANTE = 1; case MEI = 2; case ME_EPP = 3; @@ -21,13 +23,4 @@ public function label(): string self::ME_EPP => 'Optante - Microempresa ou Empresa de Pequeno Porte (ME/EPP)', }; } - - public static function labelFor(string $value): string - { - if (!is_numeric($value)) { - return '-'; - } - - return self::tryFrom((int) $value)?->label() ?? '-'; - } } diff --git a/src/Danfse/Enum/RegApTribSN.php b/src/Danfse/Enum/RegApTribSN.php index 7a63fbb..2fc96a4 100644 --- a/src/Danfse/Enum/RegApTribSN.php +++ b/src/Danfse/Enum/RegApTribSN.php @@ -9,6 +9,8 @@ enum RegApTribSN: int { + use LabelFromIntValue; + case SN_FEDERAL_MUNICIPAL = 1; case SN_FEDERAL_ISSQN_NFSE = 2; case NFSE_FEDERAL_MUNICIPAL = 3; @@ -21,13 +23,4 @@ public function label(): string self::NFSE_FEDERAL_MUNICIPAL => 'Regime de apuração dos tributos federais e municipal pela NFS-e conforme respectivas legislações federal e municipal de cada tributo', }; } - - public static function labelFor(string $value): string - { - if (!is_numeric($value)) { - return '-'; - } - - return self::tryFrom((int) $value)?->label() ?? '-'; - } } diff --git a/src/Danfse/Enum/RegEspTrib.php b/src/Danfse/Enum/RegEspTrib.php index d39ea77..14e19f0 100644 --- a/src/Danfse/Enum/RegEspTrib.php +++ b/src/Danfse/Enum/RegEspTrib.php @@ -9,6 +9,8 @@ enum RegEspTrib: int { + use LabelFromIntValue; + case NENHUM = 0; case COOPERATIVA = 1; case ESTIMATIVA = 2; @@ -29,13 +31,4 @@ public function label(): string self::SOCIEDADE_PROFISSIONAIS => 'Sociedade de Profissionais', }; } - - public static function labelFor(string $value): string - { - if (!is_numeric($value)) { - return '-'; - } - - return self::tryFrom((int) $value)?->label() ?? '-'; - } } diff --git a/src/Danfse/Enum/TpRetISSQN.php b/src/Danfse/Enum/TpRetISSQN.php index a44a7ca..3c28b23 100644 --- a/src/Danfse/Enum/TpRetISSQN.php +++ b/src/Danfse/Enum/TpRetISSQN.php @@ -9,6 +9,8 @@ enum TpRetISSQN: int { + use LabelFromIntValue; + case NAO_RETIDO = 1; case RETIDO_TOMADOR = 2; case RETIDO_INTERMEDIARIO = 3; @@ -21,13 +23,4 @@ public function label(): string self::RETIDO_INTERMEDIARIO => 'Retido pelo Intermediário', }; } - - public static function labelFor(string $value): string - { - if (!is_numeric($value)) { - return '-'; - } - - return self::tryFrom((int) $value)?->label() ?? '-'; - } } diff --git a/src/Danfse/Enum/TribISSQN.php b/src/Danfse/Enum/TribISSQN.php index 454676c..d938961 100644 --- a/src/Danfse/Enum/TribISSQN.php +++ b/src/Danfse/Enum/TribISSQN.php @@ -9,6 +9,8 @@ enum TribISSQN: int { + use LabelFromIntValue; + case TRIBUTAVEL = 1; case IMUNIDADE = 2; case EXPORTACAO = 3; @@ -23,13 +25,4 @@ public function label(): string self::NAO_INCIDENCIA => 'Não Incidência', }; } - - public static function labelFor(string $value): string - { - if (!is_numeric($value)) { - return '-'; - } - - return self::tryFrom((int) $value)?->label() ?? '-'; - } } From e87b54aa2765be9b793392cb0271e4c54ab3add7 Mon Sep 17 00:00:00 2001 From: YvesCesar Date: Tue, 30 Jun 2026 18:11:27 -0400 Subject: [PATCH 04/13] refactor(danfse): introduce Ambiente enum and percentOrDash helper Signed-off-by: YvesCesar --- src/Danfse/DanfseTemplate.php | 32 +++++++++++++++--------- src/Danfse/Enum/Ambiente.php | 32 ++++++++++++++++++++++++ src/Danfse/template.php | 5 ++-- tests/Unit/Danfse/DanfseTemplateTest.php | 5 ++-- 4 files changed, 58 insertions(+), 16 deletions(-) create mode 100644 src/Danfse/Enum/Ambiente.php diff --git a/src/Danfse/DanfseTemplate.php b/src/Danfse/DanfseTemplate.php index 5b2a8bc..4f3d787 100644 --- a/src/Danfse/DanfseTemplate.php +++ b/src/Danfse/DanfseTemplate.php @@ -13,6 +13,7 @@ use BaconQrCode\Writer; use LibreCodeCoop\NfsePHP\Danfse\Config\DanfseConfig; use LibreCodeCoop\NfsePHP\Danfse\Data\Municipios; +use LibreCodeCoop\NfsePHP\Danfse\Enum\Ambiente; use LibreCodeCoop\NfsePHP\Danfse\Enum\OpSimpNac; use LibreCodeCoop\NfsePHP\Danfse\Enum\RegApTribSN; use LibreCodeCoop\NfsePHP\Danfse\Enum\RegEspTrib; @@ -44,10 +45,12 @@ public function __construct() */ public function render(array $nfse, DanfseConfig $config): string { - $data = $this->buildData($nfse); - $logo = $config->logoDataUri; - $municipality = $config->municipality; - $qrCode = $this->generateQrCode((string) $data['chave_acesso'], (int) $data['ambiente']); + $data = $this->buildData($nfse); + $logo = $config->logoDataUri; + $municipality = $config->municipality; + $ambiente = Ambiente::fromValue((string) $data['ambiente']); + $isHomologacao = $ambiente->isHomologacao(); + $qrCode = $this->generateQrCode((string) $data['chave_acesso'], $ambiente); array_walk_recursive($data, static function (mixed &$v): void { if (is_string($v)) { @@ -97,7 +100,7 @@ public function buildData(array $nfse): array 'numero_dps' => $this->val($infDps, 'nDPS') ?: '-', 'serie_dps' => $this->val($infDps, 'serie') ?: '-', 'emissao_dps' => $this->fmt->dateTime($this->val($infDps, 'dhEmi')), - 'ambiente' => (int) ($this->val($infDps, 'tpAmb') ?: '1'), + 'ambiente' => Ambiente::fromValue($this->val($infDps, 'tpAmb'))->value, 'emitente' => [ 'nome' => $this->val($emit, 'xNome') ?: '-', @@ -150,7 +153,7 @@ public function buildData(array $nfse): array 'regime_especial' => RegEspTrib::labelFor($this->val($regTrib, 'regEspTrib')), 'valor_servico' => $this->fmt->currency($this->val($valores, 'vServPrest', 'vServ')), 'bc_issqn' => $this->currencyOrDash($this->val($tribMun, 'vBC')), - 'aliquota' => ($p = $this->val($tribMun, 'pAliq')) !== '' ? $p . '%' : '-', + 'aliquota' => $this->percentOrDash($this->val($tribMun, 'pAliq')), 'retencao_issqn' => TpRetISSQN::labelFor($this->val($tribMun, 'tpRetISSQN')), 'issqn_apurado' => $this->currencyOrDash($this->val($tribMun, 'vISSQN')), ], @@ -183,9 +186,9 @@ public function buildData(array $nfse): array ], 'totais_tributos' => [ - 'federais' => ($f = $this->val($totTrib, 'pTotTribFed')) !== '' ? $f . '%' : '-', - 'estaduais' => ($e = $this->val($totTrib, 'pTotTribEst')) !== '' ? $e . '%' : '-', - 'municipais' => ($m = $this->val($totTrib, 'pTotTribMun')) !== '' ? $m . '%' : '-', + 'federais' => $this->percentOrDash($this->val($totTrib, 'pTotTribFed')), + 'estaduais' => $this->percentOrDash($this->val($totTrib, 'pTotTribEst')), + 'municipais' => $this->percentOrDash($this->val($totTrib, 'pTotTribMun')), ], 'informacoes_complementares' => $this->val($serv, 'infoCompl', 'xInfComp'), @@ -280,6 +283,11 @@ private function currencyOrDash(string $value): string return $value !== '' ? $this->fmt->currency($value) : '-'; } + private function percentOrDash(string $value): string + { + return $value !== '' ? $value . '%' : '-'; + } + private function sumCurrency(string ...$values): string { $sum = 0.0; @@ -294,7 +302,7 @@ private function sumCurrency(string ...$values): string return $hasValue ? $this->fmt->currency((string) $sum) : '-'; } - private function generateQrCode(string $chaveAcesso, int $ambiente): string + private function generateQrCode(string $chaveAcesso, Ambiente $ambiente): string { $renderer = new ImageRenderer( new RendererStyle(200), @@ -305,9 +313,9 @@ private function generateQrCode(string $chaveAcesso, int $ambiente): string return 'data:image/svg+xml;base64,' . base64_encode($svg); } - private function qrCodeUrl(string $chaveAcesso, int $ambiente): string + private function qrCodeUrl(string $chaveAcesso, Ambiente $ambiente): string { - $baseUrl = $ambiente === 2 + $baseUrl = $ambiente->isHomologacao() ? self::QR_BASE_URL_SANDBOX : self::QR_BASE_URL_PROD; diff --git a/src/Danfse/Enum/Ambiente.php b/src/Danfse/Enum/Ambiente.php new file mode 100644 index 0000000..e563d2e --- /dev/null +++ b/src/Danfse/Enum/Ambiente.php @@ -0,0 +1,32 @@ + $data */ /** @var ?string $logo */ /** @var string $qrCode */ +/** @var bool $isHomologacao */ /** @var ?\LibreCodeCoop\NfsePHP\Danfse\Config\MunicipalityBranding $municipality */ ?> @@ -130,7 +131,7 @@ - +
HOMOLOGAÇÃO
@@ -145,7 +146,7 @@
DANFSe v1.0
Documento Auxiliar da NFS-e
- +
NFS-e SEM VALIDADE JURÍDICA
diff --git a/tests/Unit/Danfse/DanfseTemplateTest.php b/tests/Unit/Danfse/DanfseTemplateTest.php index 0020fae..724b2bb 100644 --- a/tests/Unit/Danfse/DanfseTemplateTest.php +++ b/tests/Unit/Danfse/DanfseTemplateTest.php @@ -9,6 +9,7 @@ use LibreCodeCoop\NfsePHP\Danfse\Config\DanfseConfig; use LibreCodeCoop\NfsePHP\Danfse\DanfseTemplate; +use LibreCodeCoop\NfsePHP\Danfse\Enum\Ambiente; use LibreCodeCoop\NfsePHP\Danfse\XmlToArray; use LibreCodeCoop\NfsePHP\Tests\TestCase; @@ -118,11 +119,11 @@ public function testQrCodeUrlUsesEnvironmentHost(): void self::assertSame( 'https://www.nfse.gov.br/ConsultaPublica/?tpc=1&chave=abc', - $method->invoke($template, 'abc', 1), + $method->invoke($template, 'abc', Ambiente::PRODUCAO), ); self::assertSame( 'https://www.producaorestrita.nfse.gov.br/ConsultaPublica/?tpc=1&chave=abc', - $method->invoke($template, 'abc', 2), + $method->invoke($template, 'abc', Ambiente::HOMOLOGACAO), ); } } From 87dfebbb0ecaacbb238aa1c777b39be9b50ee57e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yves=20C=C3=A9sar=20Amorim=20de=20Azevedo?= <48072419+YvesCesar@users.noreply.github.com> Date: Wed, 1 Jul 2026 14:59:59 -0400 Subject: [PATCH 05/13] test(danfse): use explicit property name for Formatter in test Co-authored-by: Vitor Mattos Signed-off-by: YvesCesar --- tests/Unit/Danfse/FormatterTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Unit/Danfse/FormatterTest.php b/tests/Unit/Danfse/FormatterTest.php index b3b263f..5732a06 100644 --- a/tests/Unit/Danfse/FormatterTest.php +++ b/tests/Unit/Danfse/FormatterTest.php @@ -15,7 +15,7 @@ */ class FormatterTest extends TestCase { - private Formatter $fmt; + private Formatter $formatter; protected function setUp(): void { From 408f4cc952811b8ec7181faae9622211fd0f5052 Mon Sep 17 00:00:00 2001 From: YvesCesar Date: Wed, 1 Jul 2026 15:03:01 -0400 Subject: [PATCH 06/13] test(danfse): rename remaining Formatter test property usages Signed-off-by: YvesCesar --- tests/Unit/Danfse/FormatterTest.php | 40 ++++++++++++++--------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/tests/Unit/Danfse/FormatterTest.php b/tests/Unit/Danfse/FormatterTest.php index 5732a06..7687be1 100644 --- a/tests/Unit/Danfse/FormatterTest.php +++ b/tests/Unit/Danfse/FormatterTest.php @@ -19,65 +19,65 @@ class FormatterTest extends TestCase protected function setUp(): void { - $this->fmt = new Formatter(); + $this->formatter = new Formatter(); } public function testCnpjIsFormatted(): void { - self::assertSame('11.222.333/0001-81', $this->fmt->cnpjCpf('11222333000181')); + self::assertSame('11.222.333/0001-81', $this->formatter->cnpjCpf('11222333000181')); } public function testCpfIsFormatted(): void { - self::assertSame('123.456.789-09', $this->fmt->cnpjCpf('12345678909')); + self::assertSame('123.456.789-09', $this->formatter->cnpjCpf('12345678909')); } public function testCnpjCpfReturnsDashForEmpty(): void { - self::assertSame('-', $this->fmt->cnpjCpf('')); - self::assertSame('-', $this->fmt->cnpjCpf('-')); + self::assertSame('-', $this->formatter->cnpjCpf('')); + self::assertSame('-', $this->formatter->cnpjCpf('-')); } public function testCnpjCpfReturnsRawWhenLengthUnexpected(): void { - self::assertSame('12345', $this->fmt->cnpjCpf('12345')); + self::assertSame('12345', $this->formatter->cnpjCpf('12345')); } public function testPhoneWithEightDigitsLocalAndMobile(): void { - self::assertSame('(21) 3000-1234', $this->fmt->phone('2130001234')); - self::assertSame('(11) 98765-4321', $this->fmt->phone('11987654321')); + self::assertSame('(21) 3000-1234', $this->formatter->phone('2130001234')); + self::assertSame('(11) 98765-4321', $this->formatter->phone('11987654321')); } public function testCepIsFormatted(): void { - self::assertSame('24020-005', $this->fmt->cep('24020005')); - self::assertSame('-', $this->fmt->cep('')); + self::assertSame('24020-005', $this->formatter->cep('24020005')); + self::assertSame('-', $this->formatter->cep('')); } public function testDateAndDateTime(): void { - self::assertSame('15/01/2026', $this->fmt->date('2026-01-15')); - self::assertSame('15/01/2026 14:30:00', $this->fmt->dateTime('2026-01-15T14:30:00-03:00')); - self::assertSame('-', $this->fmt->date('')); + self::assertSame('15/01/2026', $this->formatter->date('2026-01-15')); + self::assertSame('15/01/2026 14:30:00', $this->formatter->dateTime('2026-01-15T14:30:00-03:00')); + self::assertSame('-', $this->formatter->date('')); } public function testCurrency(): void { - self::assertSame('R$ 1.500,00', $this->fmt->currency('1500.00')); - self::assertSame('R$ 1.292,75', $this->fmt->currency('1292.75')); - self::assertSame('-', $this->fmt->currency('')); + self::assertSame('R$ 1.500,00', $this->formatter->currency('1500.00')); + self::assertSame('R$ 1.292,75', $this->formatter->currency('1292.75')); + self::assertSame('-', $this->formatter->currency('')); } public function testCodTribNacional(): void { - self::assertSame('01.07.00', $this->fmt->codTribNacional('010700')); - self::assertSame('-', $this->fmt->codTribNacional('')); + self::assertSame('01.07.00', $this->formatter->codTribNacional('010700')); + self::assertSame('-', $this->formatter->codTribNacional('')); } public function testLimitTruncatesWithEllipsis(): void { - self::assertSame('abc', $this->fmt->limit('abc', 5)); - self::assertSame('abcde...', $this->fmt->limit('abcdefgh', 5)); + self::assertSame('abc', $this->formatter->limit('abc', 5)); + self::assertSame('abcde...', $this->formatter->limit('abcdefgh', 5)); } } From 6e1c94d03eaadec578fb490837909c8b890ba8a8 Mon Sep 17 00:00:00 2001 From: YvesCesar Date: Wed, 1 Jul 2026 15:10:26 -0400 Subject: [PATCH 07/13] refactor(danfse): rename template.php to HTMLTemplate.php Signed-off-by: YvesCesar --- src/Danfse/DanfseTemplate.php | 2 +- src/Danfse/{template.php => HTMLTemplate.php} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/Danfse/{template.php => HTMLTemplate.php} (100%) diff --git a/src/Danfse/DanfseTemplate.php b/src/Danfse/DanfseTemplate.php index 4f3d787..1567c17 100644 --- a/src/Danfse/DanfseTemplate.php +++ b/src/Danfse/DanfseTemplate.php @@ -59,7 +59,7 @@ public function render(array $nfse, DanfseConfig $config): string }); ob_start(); - include __DIR__ . '/template.php'; + include __DIR__ . '/HTMLTemplate.php'; return (string) ob_get_clean(); } diff --git a/src/Danfse/template.php b/src/Danfse/HTMLTemplate.php similarity index 100% rename from src/Danfse/template.php rename to src/Danfse/HTMLTemplate.php From adadb1a707c5741aa057abf271fa3266ec231d4d Mon Sep 17 00:00:00 2001 From: YvesCesar Date: Wed, 1 Jul 2026 15:32:14 -0400 Subject: [PATCH 08/13] refactor(danfse): expand enum names and split label tests per enum Signed-off-by: YvesCesar --- src/Danfse/DanfseTemplate.php | 20 ++++----- ...SimpNac.php => OptanteSimplesNacional.php} | 2 +- ...bSN.php => RegimeApuracaoTributariaSN.php} | 2 +- ...pTrib.php => RegimeEspecialTributacao.php} | 2 +- .../{TpRetISSQN.php => TipoRetencaoISSQN.php} | 2 +- .../{TribISSQN.php => TributacaoISSQN.php} | 2 +- tests/Unit/Danfse/EnumLabelsTest.php | 41 ------------------- .../Danfse/OptanteSimplesNacionalTest.php | 31 ++++++++++++++ .../Danfse/RegimeApuracaoTributariaSNTest.php | 31 ++++++++++++++ .../Danfse/RegimeEspecialTributacaoTest.php | 31 ++++++++++++++ tests/Unit/Danfse/TipoRetencaoISSQNTest.php | 31 ++++++++++++++ tests/Unit/Danfse/TributacaoISSQNTest.php | 32 +++++++++++++++ 12 files changed, 171 insertions(+), 56 deletions(-) rename src/Danfse/Enum/{OpSimpNac.php => OptanteSimplesNacional.php} (94%) rename src/Danfse/Enum/{RegApTribSN.php => RegimeApuracaoTributariaSN.php} (96%) rename src/Danfse/Enum/{RegEspTrib.php => RegimeEspecialTributacao.php} (96%) rename src/Danfse/Enum/{TpRetISSQN.php => TipoRetencaoISSQN.php} (95%) rename src/Danfse/Enum/{TribISSQN.php => TributacaoISSQN.php} (96%) delete mode 100644 tests/Unit/Danfse/EnumLabelsTest.php create mode 100644 tests/Unit/Danfse/OptanteSimplesNacionalTest.php create mode 100644 tests/Unit/Danfse/RegimeApuracaoTributariaSNTest.php create mode 100644 tests/Unit/Danfse/RegimeEspecialTributacaoTest.php create mode 100644 tests/Unit/Danfse/TipoRetencaoISSQNTest.php create mode 100644 tests/Unit/Danfse/TributacaoISSQNTest.php diff --git a/src/Danfse/DanfseTemplate.php b/src/Danfse/DanfseTemplate.php index 1567c17..a8f2e3f 100644 --- a/src/Danfse/DanfseTemplate.php +++ b/src/Danfse/DanfseTemplate.php @@ -14,11 +14,11 @@ use LibreCodeCoop\NfsePHP\Danfse\Config\DanfseConfig; use LibreCodeCoop\NfsePHP\Danfse\Data\Municipios; use LibreCodeCoop\NfsePHP\Danfse\Enum\Ambiente; -use LibreCodeCoop\NfsePHP\Danfse\Enum\OpSimpNac; -use LibreCodeCoop\NfsePHP\Danfse\Enum\RegApTribSN; -use LibreCodeCoop\NfsePHP\Danfse\Enum\RegEspTrib; -use LibreCodeCoop\NfsePHP\Danfse\Enum\TpRetISSQN; -use LibreCodeCoop\NfsePHP\Danfse\Enum\TribISSQN; +use LibreCodeCoop\NfsePHP\Danfse\Enum\OptanteSimplesNacional; +use LibreCodeCoop\NfsePHP\Danfse\Enum\RegimeApuracaoTributariaSN; +use LibreCodeCoop\NfsePHP\Danfse\Enum\RegimeEspecialTributacao; +use LibreCodeCoop\NfsePHP\Danfse\Enum\TipoRetencaoISSQN; +use LibreCodeCoop\NfsePHP\Danfse\Enum\TributacaoISSQN; /** * Builds the flat data array consumed by the HTML template and renders it. @@ -111,8 +111,8 @@ public function buildData(array $nfse): array 'endereco' => $this->address($enderEmit), 'municipio' => $this->cityWithUf($this->val($inf, 'xLocEmi'), $this->val($enderEmit, 'UF')), 'cep' => $this->fmt->cep($this->val($enderEmit, 'CEP')), - 'simples_nacional' => OpSimpNac::labelFor($this->val($regTrib, 'opSimpNac')), - 'regime_sn' => RegApTribSN::labelFor($this->val($regTrib, 'regApTribSN')), + 'simples_nacional' => OptanteSimplesNacional::labelFor($this->val($regTrib, 'opSimpNac')), + 'regime_sn' => RegimeApuracaoTributariaSN::labelFor($this->val($regTrib, 'regApTribSN')), ], 'tomador' => [ @@ -148,13 +148,13 @@ public function buildData(array $nfse): array ], 'tributacao_municipal' => [ - 'tributacao_issqn' => TribISSQN::labelFor($this->val($tribMun, 'tribISSQN')), + 'tributacao_issqn' => TributacaoISSQN::labelFor($this->val($tribMun, 'tribISSQN')), 'municipio_incidencia' => $this->val($inf, 'xLocIncid') ?: '-', - 'regime_especial' => RegEspTrib::labelFor($this->val($regTrib, 'regEspTrib')), + 'regime_especial' => RegimeEspecialTributacao::labelFor($this->val($regTrib, 'regEspTrib')), 'valor_servico' => $this->fmt->currency($this->val($valores, 'vServPrest', 'vServ')), 'bc_issqn' => $this->currencyOrDash($this->val($tribMun, 'vBC')), 'aliquota' => $this->percentOrDash($this->val($tribMun, 'pAliq')), - 'retencao_issqn' => TpRetISSQN::labelFor($this->val($tribMun, 'tpRetISSQN')), + 'retencao_issqn' => TipoRetencaoISSQN::labelFor($this->val($tribMun, 'tpRetISSQN')), 'issqn_apurado' => $this->currencyOrDash($this->val($tribMun, 'vISSQN')), ], diff --git a/src/Danfse/Enum/OpSimpNac.php b/src/Danfse/Enum/OptanteSimplesNacional.php similarity index 94% rename from src/Danfse/Enum/OpSimpNac.php rename to src/Danfse/Enum/OptanteSimplesNacional.php index df2552e..a778b0c 100644 --- a/src/Danfse/Enum/OpSimpNac.php +++ b/src/Danfse/Enum/OptanteSimplesNacional.php @@ -7,7 +7,7 @@ namespace LibreCodeCoop\NfsePHP\Danfse\Enum; -enum OpSimpNac: int +enum OptanteSimplesNacional: int { use LabelFromIntValue; diff --git a/src/Danfse/Enum/RegApTribSN.php b/src/Danfse/Enum/RegimeApuracaoTributariaSN.php similarity index 96% rename from src/Danfse/Enum/RegApTribSN.php rename to src/Danfse/Enum/RegimeApuracaoTributariaSN.php index 2fc96a4..c2e3039 100644 --- a/src/Danfse/Enum/RegApTribSN.php +++ b/src/Danfse/Enum/RegimeApuracaoTributariaSN.php @@ -7,7 +7,7 @@ namespace LibreCodeCoop\NfsePHP\Danfse\Enum; -enum RegApTribSN: int +enum RegimeApuracaoTributariaSN: int { use LabelFromIntValue; diff --git a/src/Danfse/Enum/RegEspTrib.php b/src/Danfse/Enum/RegimeEspecialTributacao.php similarity index 96% rename from src/Danfse/Enum/RegEspTrib.php rename to src/Danfse/Enum/RegimeEspecialTributacao.php index 14e19f0..7291b9b 100644 --- a/src/Danfse/Enum/RegEspTrib.php +++ b/src/Danfse/Enum/RegimeEspecialTributacao.php @@ -7,7 +7,7 @@ namespace LibreCodeCoop\NfsePHP\Danfse\Enum; -enum RegEspTrib: int +enum RegimeEspecialTributacao: int { use LabelFromIntValue; diff --git a/src/Danfse/Enum/TpRetISSQN.php b/src/Danfse/Enum/TipoRetencaoISSQN.php similarity index 95% rename from src/Danfse/Enum/TpRetISSQN.php rename to src/Danfse/Enum/TipoRetencaoISSQN.php index 3c28b23..19f4f08 100644 --- a/src/Danfse/Enum/TpRetISSQN.php +++ b/src/Danfse/Enum/TipoRetencaoISSQN.php @@ -7,7 +7,7 @@ namespace LibreCodeCoop\NfsePHP\Danfse\Enum; -enum TpRetISSQN: int +enum TipoRetencaoISSQN: int { use LabelFromIntValue; diff --git a/src/Danfse/Enum/TribISSQN.php b/src/Danfse/Enum/TributacaoISSQN.php similarity index 96% rename from src/Danfse/Enum/TribISSQN.php rename to src/Danfse/Enum/TributacaoISSQN.php index d938961..4032a79 100644 --- a/src/Danfse/Enum/TribISSQN.php +++ b/src/Danfse/Enum/TributacaoISSQN.php @@ -7,7 +7,7 @@ namespace LibreCodeCoop\NfsePHP\Danfse\Enum; -enum TribISSQN: int +enum TributacaoISSQN: int { use LabelFromIntValue; diff --git a/tests/Unit/Danfse/EnumLabelsTest.php b/tests/Unit/Danfse/EnumLabelsTest.php deleted file mode 100644 index 84f798e..0000000 --- a/tests/Unit/Danfse/EnumLabelsTest.php +++ /dev/null @@ -1,41 +0,0 @@ - Date: Wed, 1 Jul 2026 18:52:32 -0400 Subject: [PATCH 09/13] test(danfse): drive Formatter and Municipios tests with data providers Signed-off-by: YvesCesar --- tests/Unit/Danfse/FormatterTest.php | 139 +++++++++++++++++++++------ tests/Unit/Danfse/MunicipiosTest.php | 18 +++- 2 files changed, 123 insertions(+), 34 deletions(-) diff --git a/tests/Unit/Danfse/FormatterTest.php b/tests/Unit/Danfse/FormatterTest.php index 7687be1..9804356 100644 --- a/tests/Unit/Danfse/FormatterTest.php +++ b/tests/Unit/Danfse/FormatterTest.php @@ -9,6 +9,7 @@ use LibreCodeCoop\NfsePHP\Danfse\Formatter; use LibreCodeCoop\NfsePHP\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * @covers \LibreCodeCoop\NfsePHP\Danfse\Formatter @@ -22,62 +23,142 @@ protected function setUp(): void $this->formatter = new Formatter(); } - public function testCnpjIsFormatted(): void + #[DataProvider('cnpjCpfProvider')] + public function testCnpjCpf(string $input, string $expected): void { - self::assertSame('11.222.333/0001-81', $this->formatter->cnpjCpf('11222333000181')); + self::assertSame($expected, $this->formatter->cnpjCpf($input)); } - public function testCpfIsFormatted(): void + /** + * @return array + */ + public static function cnpjCpfProvider(): array { - self::assertSame('123.456.789-09', $this->formatter->cnpjCpf('12345678909')); + return [ + 'formatted cnpj' => ['11222333000181', '11.222.333/0001-81'], + 'formatted cpf' => ['12345678909', '123.456.789-09'], + 'empty returns dash' => ['', '-'], + 'dash returns dash' => ['-', '-'], + 'unexpected length returns raw' => ['12345', '12345'], + ]; } - public function testCnpjCpfReturnsDashForEmpty(): void + #[DataProvider('phoneProvider')] + public function testPhone(string $input, string $expected): void { - self::assertSame('-', $this->formatter->cnpjCpf('')); - self::assertSame('-', $this->formatter->cnpjCpf('-')); + self::assertSame($expected, $this->formatter->phone($input)); } - public function testCnpjCpfReturnsRawWhenLengthUnexpected(): void + /** + * @return array + */ + public static function phoneProvider(): array { - self::assertSame('12345', $this->formatter->cnpjCpf('12345')); + return [ + 'eight-digit local' => ['2130001234', '(21) 3000-1234'], + 'nine-digit mobile' => ['11987654321', '(11) 98765-4321'], + ]; } - public function testPhoneWithEightDigitsLocalAndMobile(): void + #[DataProvider('cepProvider')] + public function testCep(string $input, string $expected): void { - self::assertSame('(21) 3000-1234', $this->formatter->phone('2130001234')); - self::assertSame('(11) 98765-4321', $this->formatter->phone('11987654321')); + self::assertSame($expected, $this->formatter->cep($input)); } - public function testCepIsFormatted(): void + /** + * @return array + */ + public static function cepProvider(): array { - self::assertSame('24020-005', $this->formatter->cep('24020005')); - self::assertSame('-', $this->formatter->cep('')); + return [ + 'formatted cep' => ['24020005', '24020-005'], + 'empty returns dash' => ['', '-'], + ]; } - public function testDateAndDateTime(): void + #[DataProvider('dateProvider')] + public function testDate(string $input, string $expected): void { - self::assertSame('15/01/2026', $this->formatter->date('2026-01-15')); - self::assertSame('15/01/2026 14:30:00', $this->formatter->dateTime('2026-01-15T14:30:00-03:00')); - self::assertSame('-', $this->formatter->date('')); + self::assertSame($expected, $this->formatter->date($input)); } - public function testCurrency(): void + /** + * @return array + */ + public static function dateProvider(): array { - self::assertSame('R$ 1.500,00', $this->formatter->currency('1500.00')); - self::assertSame('R$ 1.292,75', $this->formatter->currency('1292.75')); - self::assertSame('-', $this->formatter->currency('')); + return [ + 'iso date' => ['2026-01-15', '15/01/2026'], + 'empty returns dash' => ['', '-'], + ]; } - public function testCodTribNacional(): void + #[DataProvider('dateTimeProvider')] + public function testDateTime(string $input, string $expected): void { - self::assertSame('01.07.00', $this->formatter->codTribNacional('010700')); - self::assertSame('-', $this->formatter->codTribNacional('')); + self::assertSame($expected, $this->formatter->dateTime($input)); } - public function testLimitTruncatesWithEllipsis(): void + /** + * @return array + */ + public static function dateTimeProvider(): array { - self::assertSame('abc', $this->formatter->limit('abc', 5)); - self::assertSame('abcde...', $this->formatter->limit('abcdefgh', 5)); + return [ + 'iso datetime with offset' => ['2026-01-15T14:30:00-03:00', '15/01/2026 14:30:00'], + ]; + } + + #[DataProvider('currencyProvider')] + public function testCurrency(string $input, string $expected): void + { + self::assertSame($expected, $this->formatter->currency($input)); + } + + /** + * @return array + */ + public static function currencyProvider(): array + { + return [ + 'thousands' => ['1500.00', 'R$ 1.500,00'], + 'cents' => ['1292.75', 'R$ 1.292,75'], + 'empty returns dash' => ['', '-'], + ]; + } + + #[DataProvider('codTribNacionalProvider')] + public function testCodTribNacional(string $input, string $expected): void + { + self::assertSame($expected, $this->formatter->codTribNacional($input)); + } + + /** + * @return array + */ + public static function codTribNacionalProvider(): array + { + return [ + 'formatted code' => ['010700', '01.07.00'], + 'empty returns dash' => ['', '-'], + ]; + } + + #[DataProvider('limitProvider')] + public function testLimit(string $input, int $max, string $expected): void + { + self::assertSame($expected, $this->formatter->limit($input, $max)); + } + + /** + * @return array + */ + public static function limitProvider(): array + { + return [ + 'shorter than limit is untouched' => ['abc', 5, 'abc'], + 'longer than limit is truncated with ellipsis' => ['abcdefgh', 5, 'abcde...'], + ]; } } diff --git a/tests/Unit/Danfse/MunicipiosTest.php b/tests/Unit/Danfse/MunicipiosTest.php index 3f0fffe..b504bc6 100644 --- a/tests/Unit/Danfse/MunicipiosTest.php +++ b/tests/Unit/Danfse/MunicipiosTest.php @@ -9,20 +9,28 @@ use LibreCodeCoop\NfsePHP\Danfse\Data\Municipios; use LibreCodeCoop\NfsePHP\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * @covers \LibreCodeCoop\NfsePHP\Danfse\Data\Municipios */ class MunicipiosTest extends TestCase { - public function testLookupReturnsNameAndUf(): void + #[DataProvider('lookupProvider')] + public function testLookup(string|int $code, string $expected): void { - self::assertSame('São Paulo - SP', Municipios::lookup('3550308')); - self::assertSame('Niterói - RJ', Municipios::lookup(3303302)); + self::assertSame($expected, Municipios::lookup($code)); } - public function testLookupReturnsCodeWhenUnknown(): void + /** + * @return array + */ + public static function lookupProvider(): array { - self::assertSame('9999999', Municipios::lookup('9999999')); + return [ + 'known code as string' => ['3550308', 'São Paulo - SP'], + 'known code as int' => [3303302, 'Niterói - RJ'], + 'unknown code returns raw' => ['9999999', '9999999'], + ]; } } From 2c0eedecaa9605a92595da99996480b82244a02e Mon Sep 17 00:00:00 2001 From: YvesCesar Date: Wed, 1 Jul 2026 18:56:41 -0400 Subject: [PATCH 10/13] chore(reuse): inline SPDX in XML fixture and drop redundant .gitkeep Signed-off-by: YvesCesar --- REUSE.toml | 4 +--- tests/Integration/.gitkeep | 0 tests/fixtures/nfse_exemplo.xml | 4 ++++ 3 files changed, 5 insertions(+), 3 deletions(-) delete mode 100644 tests/Integration/.gitkeep diff --git a/REUSE.toml b/REUSE.toml index d975731..78ea443 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -13,9 +13,7 @@ default-copyright = "2026 LibreCode coop and contributors" [[annotations]] path = [ ".gitignore", - "composer.json", - "tests/Integration/.gitkeep", - "tests/fixtures/nfse_exemplo.xml" + "composer.json" ] precedence = "aggregate" SPDX-FileCopyrightText = "2026 LibreCode coop and contributors" diff --git a/tests/Integration/.gitkeep b/tests/Integration/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/tests/fixtures/nfse_exemplo.xml b/tests/fixtures/nfse_exemplo.xml index 3e72197..9666589 100644 --- a/tests/fixtures/nfse_exemplo.xml +++ b/tests/fixtures/nfse_exemplo.xml @@ -1,4 +1,8 @@ + Niterói From 5dec9c95969b64a9e0b61c422b7453c150c3f7ea Mon Sep 17 00:00:00 2001 From: YvesCesar Date: Wed, 1 Jul 2026 19:23:33 -0400 Subject: [PATCH 11/13] refactor(danfse): use explicit variable names Signed-off-by: YvesCesar --- src/Danfse/DanfseTemplate.php | 86 +++++++++++++++++----------------- src/Danfse/Data/Municipios.php | 4 +- src/Danfse/Formatter.php | 4 +- 3 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/Danfse/DanfseTemplate.php b/src/Danfse/DanfseTemplate.php index a8f2e3f..cf13c41 100644 --- a/src/Danfse/DanfseTemplate.php +++ b/src/Danfse/DanfseTemplate.php @@ -31,11 +31,11 @@ final class DanfseTemplate private const QR_BASE_URL_PROD = 'https://www.nfse.gov.br/ConsultaPublica/?tpc=1&chave='; private const QR_BASE_URL_SANDBOX = 'https://www.producaorestrita.nfse.gov.br/ConsultaPublica/?tpc=1&chave='; - private readonly Formatter $fmt; + private readonly Formatter $formatter; public function __construct() { - $this->fmt = new Formatter(); + $this->formatter = new Formatter(); } /** @@ -52,9 +52,9 @@ public function render(array $nfse, DanfseConfig $config): string $isHomologacao = $ambiente->isHomologacao(); $qrCode = $this->generateQrCode((string) $data['chave_acesso'], $ambiente); - array_walk_recursive($data, static function (mixed &$v): void { - if (is_string($v)) { - $v = htmlspecialchars($v, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); + array_walk_recursive($data, static function (mixed &$value): void { + if (is_string($value)) { + $value = htmlspecialchars($value, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); } }); @@ -72,11 +72,11 @@ public function render(array $nfse, DanfseConfig $config): string */ public function buildData(array $nfse): array { - $inf = $this->node($nfse, 'infNFSe'); - $infDps = $this->node($inf, 'DPS', 'infDPS'); + $infNfse = $this->node($nfse, 'infNFSe'); + $infDps = $this->node($infNfse, 'DPS', 'infDPS'); $prest = $this->node($infDps, 'prest'); $regTrib = $this->node($prest, 'regTrib'); - $emit = $this->node($inf, 'emit'); + $emit = $this->node($infNfse, 'emit'); $enderEmit = $this->node($emit, 'enderNac'); $toma = $this->node($infDps, 'toma'); $endToma = $this->node($toma, 'end'); @@ -89,28 +89,28 @@ public function buildData(array $nfse): array $tribFed = $this->node($valores, 'trib', 'tribFed'); $totTrib = $this->node($valores, 'trib', 'totTrib', 'pTotTrib'); - $id = $this->val($inf, 'Id'); + $id = $this->val($infNfse, 'Id'); $chaveAcesso = str_starts_with($id, 'NFS') ? substr($id, 3) : $id; return [ 'chave_acesso' => $chaveAcesso, - 'numero_nfse' => $this->val($inf, 'nNFSe') ?: '-', - 'competencia' => $this->fmt->date($this->val($infDps, 'dCompet')), - 'emissao_nfse' => $this->fmt->dateTime($this->val($inf, 'dhProc')), + 'numero_nfse' => $this->val($infNfse, 'nNFSe') ?: '-', + 'competencia' => $this->formatter->date($this->val($infDps, 'dCompet')), + 'emissao_nfse' => $this->formatter->dateTime($this->val($infNfse, 'dhProc')), 'numero_dps' => $this->val($infDps, 'nDPS') ?: '-', 'serie_dps' => $this->val($infDps, 'serie') ?: '-', - 'emissao_dps' => $this->fmt->dateTime($this->val($infDps, 'dhEmi')), + 'emissao_dps' => $this->formatter->dateTime($this->val($infDps, 'dhEmi')), 'ambiente' => Ambiente::fromValue($this->val($infDps, 'tpAmb'))->value, 'emitente' => [ 'nome' => $this->val($emit, 'xNome') ?: '-', 'cnpj_cpf' => $this->formattedDocument($emit), 'im' => '-', - 'telefone' => $this->fmt->phone($this->val($emit, 'fone')), + 'telefone' => $this->formatter->phone($this->val($emit, 'fone')), 'email' => strtolower($this->val($emit, 'email')), 'endereco' => $this->address($enderEmit), - 'municipio' => $this->cityWithUf($this->val($inf, 'xLocEmi'), $this->val($enderEmit, 'UF')), - 'cep' => $this->fmt->cep($this->val($enderEmit, 'CEP')), + 'municipio' => $this->cityWithUf($this->val($infNfse, 'xLocEmi'), $this->val($enderEmit, 'UF')), + 'cep' => $this->formatter->cep($this->val($enderEmit, 'CEP')), 'simples_nacional' => OptanteSimplesNacional::labelFor($this->val($regTrib, 'opSimpNac')), 'regime_sn' => RegimeApuracaoTributariaSN::labelFor($this->val($regTrib, 'regApTribSN')), ], @@ -119,39 +119,39 @@ public function buildData(array $nfse): array 'nome' => $this->val($toma, 'xNome') ?: '-', 'cnpj_cpf' => $this->formattedDocument($toma), 'im' => $this->val($toma, 'IM') ?: '-', - 'telefone' => $this->fmt->phone($this->val($toma, 'fone')), + 'telefone' => $this->formatter->phone($this->val($toma, 'fone')), 'email' => strtolower($this->val($toma, 'email')), 'endereco' => $this->address($endToma), 'municipio' => $this->city($this->val($endToma, 'endNac', 'cMun')), - 'cep' => $this->fmt->cep($this->val($endToma, 'endNac', 'CEP')), + 'cep' => $this->formatter->cep($this->val($endToma, 'endNac', 'CEP')), ], 'intermediario' => $interm === [] ? null : [ 'nome' => $this->val($interm, 'xNome') ?: '-', 'cnpj_cpf' => $this->formattedDocument($interm), 'im' => $this->val($interm, 'IMPrestMun') ?: '-', - 'telefone' => $this->fmt->phone($this->val($interm, 'fone')), + 'telefone' => $this->formatter->phone($this->val($interm, 'fone')), 'email' => strtolower($this->val($interm, 'email')), 'endereco' => $this->address($endInterm), 'municipio' => $this->city($this->val($endInterm, 'endNac', 'cMun')), - 'cep' => $this->fmt->cep($this->val($endInterm, 'endNac', 'CEP')), + 'cep' => $this->formatter->cep($this->val($endInterm, 'endNac', 'CEP')), ], 'servico' => [ - 'codigo_trib_nacional' => $this->fmt->codTribNacional($this->val($cServ, 'cTribNac')), - 'desc_trib_nacional' => $this->fmt->limit(trim($this->val($inf, 'xTribNac')), 60), + 'codigo_trib_nacional' => $this->formatter->codTribNacional($this->val($cServ, 'cTribNac')), + 'desc_trib_nacional' => $this->formatter->limit(trim($this->val($infNfse, 'xTribNac')), 60), 'codigo_trib_municipal' => $this->val($cServ, 'cTribMun') ?: '-', - 'desc_trib_municipal' => $this->fmt->limit(trim($this->val($inf, 'xTribMun')), 60), - 'local_prestacao' => $this->val($inf, 'xLocPrestacao') ?: '-', + 'desc_trib_municipal' => $this->formatter->limit(trim($this->val($infNfse, 'xTribMun')), 60), + 'local_prestacao' => $this->val($infNfse, 'xLocPrestacao') ?: '-', 'pais_prestacao' => $this->val($serv, 'locPrest', 'cPaisPrestacao') ?: '-', 'descricao' => $this->val($cServ, 'xDescServ') ?: '-', ], 'tributacao_municipal' => [ 'tributacao_issqn' => TributacaoISSQN::labelFor($this->val($tribMun, 'tribISSQN')), - 'municipio_incidencia' => $this->val($inf, 'xLocIncid') ?: '-', + 'municipio_incidencia' => $this->val($infNfse, 'xLocIncid') ?: '-', 'regime_especial' => RegimeEspecialTributacao::labelFor($this->val($regTrib, 'regEspTrib')), - 'valor_servico' => $this->fmt->currency($this->val($valores, 'vServPrest', 'vServ')), + 'valor_servico' => $this->formatter->currency($this->val($valores, 'vServPrest', 'vServ')), 'bc_issqn' => $this->currencyOrDash($this->val($tribMun, 'vBC')), 'aliquota' => $this->percentOrDash($this->val($tribMun, 'pAliq')), 'retencao_issqn' => TipoRetencaoISSQN::labelFor($this->val($tribMun, 'tpRetISSQN')), @@ -167,11 +167,11 @@ public function buildData(array $nfse): array ], 'totais' => [ - 'valor_servico' => $this->fmt->currency($this->val($valores, 'vServPrest', 'vServ')), + 'valor_servico' => $this->formatter->currency($this->val($valores, 'vServPrest', 'vServ')), 'desconto_condicionado' => $this->currencyOrDash($this->val($tribMun, 'vDescCond')), 'desconto_incondicionado' => $this->currencyOrDash($this->val($tribMun, 'vDescIncond')), 'issqn_retido' => ($this->val($tribMun, 'vISSQN') !== '' && ($this->val($tribMun, 'tpRetISSQN') ?: '1') !== '1') - ? $this->fmt->currency($this->val($tribMun, 'vISSQN')) + ? $this->formatter->currency($this->val($tribMun, 'vISSQN')) : '-', 'retencoes_federais' => $this->sumCurrency( $this->val($tribFed, 'vRetIRRF'), @@ -182,7 +182,7 @@ public function buildData(array $nfse): array $this->val($tribFed, 'piscofins', 'vPis'), $this->val($tribFed, 'piscofins', 'vCofins'), ), - 'valor_liquido' => $this->fmt->currency($this->val($inf, 'valores', 'vLiq')), + 'valor_liquido' => $this->formatter->currency($this->val($infNfse, 'valores', 'vLiq')), ], 'totais_tributos' => [ @@ -243,27 +243,27 @@ private function formattedDocument(array $party): string { $cnpj = $this->val($party, 'CNPJ'); if ($cnpj !== '') { - return $this->fmt->cnpjCpf($cnpj); + return $this->formatter->cnpjCpf($cnpj); } $cpf = $this->val($party, 'CPF'); if ($cpf !== '') { - return $this->fmt->cnpjCpf($cpf); + return $this->formatter->cnpjCpf($cpf); } return $this->val($party, 'NIF') ?: '-'; } /** - * @param array $end + * @param array $endereco */ - private function address(array $end): string + private function address(array $endereco): string { $parts = array_filter([ - $this->val($end, 'xLgr'), - $this->val($end, 'nro'), - $this->val($end, 'xBairro'), - ], static fn (string $v): bool => $v !== ''); + $this->val($endereco, 'xLgr'), + $this->val($endereco, 'nro'), + $this->val($endereco, 'xBairro'), + ], static fn (string $value): bool => $value !== ''); return $parts === [] ? '-' : implode(', ', $parts); } @@ -280,7 +280,7 @@ private function city(string $cMun): string private function currencyOrDash(string $value): string { - return $value !== '' ? $this->fmt->currency($value) : '-'; + return $value !== '' ? $this->formatter->currency($value) : '-'; } private function percentOrDash(string $value): string @@ -290,16 +290,16 @@ private function percentOrDash(string $value): string private function sumCurrency(string ...$values): string { - $sum = 0.0; + $total = 0.0; $hasValue = false; - foreach ($values as $v) { - if ($v !== '') { - $sum += (float) $v; + foreach ($values as $value) { + if ($value !== '') { + $total += (float) $value; $hasValue = true; } } - return $hasValue ? $this->fmt->currency((string) $sum) : '-'; + return $hasValue ? $this->formatter->currency((string) $total) : '-'; } private function generateQrCode(string $chaveAcesso, Ambiente $ambiente): string diff --git a/src/Danfse/Data/Municipios.php b/src/Danfse/Data/Municipios.php index f1e0900..eb92ee0 100644 --- a/src/Danfse/Data/Municipios.php +++ b/src/Danfse/Data/Municipios.php @@ -5597,7 +5597,7 @@ final class Municipios public static function lookup(string|int $cMun): string { $code = (int) $cMun; - $m = self::MAP[$code] ?? null; - return $m !== null ? $m['nome'] . ' - ' . $m['uf'] : (string) $cMun; + $municipio = self::MAP[$code] ?? null; + return $municipio !== null ? $municipio['nome'] . ' - ' . $municipio['uf'] : (string) $cMun; } } diff --git a/src/Danfse/Formatter.php b/src/Danfse/Formatter.php index ef8c844..45c4c63 100644 --- a/src/Danfse/Formatter.php +++ b/src/Danfse/Formatter.php @@ -104,13 +104,13 @@ public function codTribNacional(string $value): string return $digits; } - public function limit(string $value, int $limit, string $end = '...'): string + public function limit(string $value, int $limit, string $suffix = '...'): string { if (mb_strlen($value) <= $limit) { return $value; } - return mb_substr($value, 0, $limit) . $end; + return mb_substr($value, 0, $limit) . $suffix; } private function reformat(string $value, string $format): string From 998b31fa6a555e5c4b0ba8158d623e7515dfe3d4 Mon Sep 17 00:00:00 2001 From: YvesCesar Date: Wed, 1 Jul 2026 19:24:22 -0400 Subject: [PATCH 12/13] test(danfse): drive enum and generator tests with data providers Signed-off-by: YvesCesar --- tests/Unit/Danfse/DanfseGeneratorTest.php | 37 +++++++------- .../Danfse/OptanteSimplesNacionalTest.php | 39 +++++++++++---- .../Danfse/RegimeApuracaoTributariaSNTest.php | 48 +++++++++++++++---- .../Danfse/RegimeEspecialTributacaoTest.php | 43 +++++++++++++---- tests/Unit/Danfse/TipoRetencaoISSQNTest.php | 39 +++++++++++---- tests/Unit/Danfse/TributacaoISSQNTest.php | 41 ++++++++++++---- 6 files changed, 186 insertions(+), 61 deletions(-) diff --git a/tests/Unit/Danfse/DanfseGeneratorTest.php b/tests/Unit/Danfse/DanfseGeneratorTest.php index e5cecf1..6638e30 100644 --- a/tests/Unit/Danfse/DanfseGeneratorTest.php +++ b/tests/Unit/Danfse/DanfseGeneratorTest.php @@ -13,6 +13,7 @@ use LibreCodeCoop\NfsePHP\Exception\ArtifactException; use LibreCodeCoop\NfsePHP\Exception\NfseErrorCode; use LibreCodeCoop\NfsePHP\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * @covers \LibreCodeCoop\NfsePHP\Danfse\DanfseGenerator @@ -68,29 +69,26 @@ public function testGenerateHtmlContainsHomologacaoWatermark(): void self::assertStringContainsString('HOMOLOGAÇÃO', $html); } - public function testInvalidXmlThrowsArtifactException(): void + /** + * @param callable(): mixed $generate + */ + #[DataProvider('invalidXmlProvider')] + public function testInvalidXmlThrowsArtifactException(callable $generate): void { try { - (new DanfseGenerator())->generateFromXml('not-valid-xml'); + $generate(); self::fail('Expected ArtifactException'); } catch (ArtifactException $e) { self::assertSame(NfseErrorCode::ArtifactRetrievalFailed, $e->errorCode); } } - public function testWellFormedNonNfseXmlThrowsArtifactException(): void + /** + * @return array + */ + public static function invalidXmlProvider(): array { - try { - (new DanfseGenerator())->generateHtml(''); - self::fail('Expected ArtifactException'); - } catch (ArtifactException $e) { - self::assertSame(NfseErrorCode::ArtifactRetrievalFailed, $e->errorCode); - } - } - - public function testDpsOnlyXmlThrowsArtifactException(): void - { - $xml = << @@ -99,11 +97,10 @@ public function testDpsOnlyXmlThrowsArtifactException(): void XML; - try { - (new DanfseGenerator())->generateHtml($xml); - self::fail('Expected ArtifactException'); - } catch (ArtifactException $e) { - self::assertSame(NfseErrorCode::ArtifactRetrievalFailed, $e->errorCode); - } + return [ + 'malformed xml' => [static fn () => (new DanfseGenerator())->generateFromXml('not-valid-xml')], + 'well-formed non-nfse xml' => [static fn () => (new DanfseGenerator())->generateHtml('')], + 'dps-only xml' => [static fn () => (new DanfseGenerator())->generateHtml($dpsOnlyXml)], + ]; } } diff --git a/tests/Unit/Danfse/OptanteSimplesNacionalTest.php b/tests/Unit/Danfse/OptanteSimplesNacionalTest.php index 86da6c7..d4f78c6 100644 --- a/tests/Unit/Danfse/OptanteSimplesNacionalTest.php +++ b/tests/Unit/Danfse/OptanteSimplesNacionalTest.php @@ -9,23 +9,46 @@ use LibreCodeCoop\NfsePHP\Danfse\Enum\OptanteSimplesNacional; use LibreCodeCoop\NfsePHP\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * @covers \LibreCodeCoop\NfsePHP\Danfse\Enum\OptanteSimplesNacional */ class OptanteSimplesNacionalTest extends TestCase { - public function testKnownLabels(): void + #[DataProvider('labelProvider')] + public function testLabelFor(string $value, string $expected): void { - self::assertSame('Não Optante', OptanteSimplesNacional::labelFor('1')); - self::assertStringContainsString('MEI', OptanteSimplesNacional::labelFor('2')); - self::assertStringContainsString('ME/EPP', OptanteSimplesNacional::labelFor('3')); + self::assertSame($expected, OptanteSimplesNacional::labelFor($value)); } - public function testUnknownValueReturnsDash(): void + /** + * @return array + */ + public static function labelProvider(): array { - self::assertSame('-', OptanteSimplesNacional::labelFor('')); - self::assertSame('-', OptanteSimplesNacional::labelFor('99')); - self::assertSame('-', OptanteSimplesNacional::labelFor('x')); + return [ + 'não optante' => ['1', 'Não Optante'], + 'mei' => ['2', 'Optante - Microempreendedor Individual (MEI)'], + 'me/epp' => ['3', 'Optante - Microempresa ou Empresa de Pequeno Porte (ME/EPP)'], + ]; + } + + #[DataProvider('unknownValueProvider')] + public function testUnknownValueReturnsDash(string $value): void + { + self::assertSame('-', OptanteSimplesNacional::labelFor($value)); + } + + /** + * @return array + */ + public static function unknownValueProvider(): array + { + return [ + 'empty' => [''], + 'out of range' => ['99'], + 'non-numeric' => ['x'], + ]; } } diff --git a/tests/Unit/Danfse/RegimeApuracaoTributariaSNTest.php b/tests/Unit/Danfse/RegimeApuracaoTributariaSNTest.php index 4bd39ed..7f2720e 100644 --- a/tests/Unit/Danfse/RegimeApuracaoTributariaSNTest.php +++ b/tests/Unit/Danfse/RegimeApuracaoTributariaSNTest.php @@ -9,23 +9,55 @@ use LibreCodeCoop\NfsePHP\Danfse\Enum\RegimeApuracaoTributariaSN; use LibreCodeCoop\NfsePHP\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * @covers \LibreCodeCoop\NfsePHP\Danfse\Enum\RegimeApuracaoTributariaSN */ class RegimeApuracaoTributariaSNTest extends TestCase { - public function testKnownLabels(): void + #[DataProvider('labelProvider')] + public function testLabelFor(string $value, string $expected): void { - self::assertStringContainsString('Simples Nacional', RegimeApuracaoTributariaSN::labelFor('1')); - self::assertStringContainsString('ISSQN pela NFS-e', RegimeApuracaoTributariaSN::labelFor('2')); - self::assertStringContainsString('NFS-e', RegimeApuracaoTributariaSN::labelFor('3')); + self::assertSame($expected, RegimeApuracaoTributariaSN::labelFor($value)); } - public function testUnknownValueReturnsDash(): void + /** + * @return array + */ + public static function labelProvider(): array { - self::assertSame('-', RegimeApuracaoTributariaSN::labelFor('')); - self::assertSame('-', RegimeApuracaoTributariaSN::labelFor('99')); - self::assertSame('-', RegimeApuracaoTributariaSN::labelFor('x')); + return [ + 'federais e municipal pelo SN' => [ + '1', + 'Regime de apuração dos tributos federais e municipal pelo Simples Nacional', + ], + 'federais pelo SN e ISSQN pela NFS-e' => [ + '2', + 'Regime de apuração dos tributos federais pelo SN e o ISSQN pela NFS-e conforme respectiva legislação municipal do tributo', + ], + 'federais e municipal pela NFS-e' => [ + '3', + 'Regime de apuração dos tributos federais e municipal pela NFS-e conforme respectivas legislações federal e municipal de cada tributo', + ], + ]; + } + + #[DataProvider('unknownValueProvider')] + public function testUnknownValueReturnsDash(string $value): void + { + self::assertSame('-', RegimeApuracaoTributariaSN::labelFor($value)); + } + + /** + * @return array + */ + public static function unknownValueProvider(): array + { + return [ + 'empty' => [''], + 'out of range' => ['99'], + 'non-numeric' => ['x'], + ]; } } diff --git a/tests/Unit/Danfse/RegimeEspecialTributacaoTest.php b/tests/Unit/Danfse/RegimeEspecialTributacaoTest.php index 7d5461e..1ea5a82 100644 --- a/tests/Unit/Danfse/RegimeEspecialTributacaoTest.php +++ b/tests/Unit/Danfse/RegimeEspecialTributacaoTest.php @@ -9,23 +9,50 @@ use LibreCodeCoop\NfsePHP\Danfse\Enum\RegimeEspecialTributacao; use LibreCodeCoop\NfsePHP\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * @covers \LibreCodeCoop\NfsePHP\Danfse\Enum\RegimeEspecialTributacao */ class RegimeEspecialTributacaoTest extends TestCase { - public function testKnownLabels(): void + #[DataProvider('labelProvider')] + public function testLabelFor(string $value, string $expected): void { - self::assertSame('Nenhum', RegimeEspecialTributacao::labelFor('0')); - self::assertSame('Sociedade de Profissionais', RegimeEspecialTributacao::labelFor('6')); - self::assertSame('Profissional Autônomo', RegimeEspecialTributacao::labelFor('5')); + self::assertSame($expected, RegimeEspecialTributacao::labelFor($value)); } - public function testUnknownValueReturnsDash(): void + /** + * @return array + */ + public static function labelProvider(): array { - self::assertSame('-', RegimeEspecialTributacao::labelFor('')); - self::assertSame('-', RegimeEspecialTributacao::labelFor('99')); - self::assertSame('-', RegimeEspecialTributacao::labelFor('x')); + return [ + 'nenhum' => ['0', 'Nenhum'], + 'cooperativa' => ['1', 'Ato Cooperado (Cooperativa)'], + 'estimativa' => ['2', 'Estimativa'], + 'microempresa municipal' => ['3', 'Microempresa Municipal'], + 'notário ou registrador' => ['4', 'Notário ou Registrador'], + 'profissional autônomo' => ['5', 'Profissional Autônomo'], + 'sociedade de profissionais' => ['6', 'Sociedade de Profissionais'], + ]; + } + + #[DataProvider('unknownValueProvider')] + public function testUnknownValueReturnsDash(string $value): void + { + self::assertSame('-', RegimeEspecialTributacao::labelFor($value)); + } + + /** + * @return array + */ + public static function unknownValueProvider(): array + { + return [ + 'empty' => [''], + 'out of range' => ['99'], + 'non-numeric' => ['x'], + ]; } } diff --git a/tests/Unit/Danfse/TipoRetencaoISSQNTest.php b/tests/Unit/Danfse/TipoRetencaoISSQNTest.php index 7212c22..97b95a6 100644 --- a/tests/Unit/Danfse/TipoRetencaoISSQNTest.php +++ b/tests/Unit/Danfse/TipoRetencaoISSQNTest.php @@ -9,23 +9,46 @@ use LibreCodeCoop\NfsePHP\Danfse\Enum\TipoRetencaoISSQN; use LibreCodeCoop\NfsePHP\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * @covers \LibreCodeCoop\NfsePHP\Danfse\Enum\TipoRetencaoISSQN */ class TipoRetencaoISSQNTest extends TestCase { - public function testKnownLabels(): void + #[DataProvider('labelProvider')] + public function testLabelFor(string $value, string $expected): void { - self::assertSame('Não Retido', TipoRetencaoISSQN::labelFor('1')); - self::assertSame('Retido pelo Tomador', TipoRetencaoISSQN::labelFor('2')); - self::assertSame('Retido pelo Intermediário', TipoRetencaoISSQN::labelFor('3')); + self::assertSame($expected, TipoRetencaoISSQN::labelFor($value)); } - public function testUnknownValueReturnsDash(): void + /** + * @return array + */ + public static function labelProvider(): array { - self::assertSame('-', TipoRetencaoISSQN::labelFor('')); - self::assertSame('-', TipoRetencaoISSQN::labelFor('99')); - self::assertSame('-', TipoRetencaoISSQN::labelFor('x')); + return [ + 'não retido' => ['1', 'Não Retido'], + 'retido pelo tomador' => ['2', 'Retido pelo Tomador'], + 'retido pelo intermediário' => ['3', 'Retido pelo Intermediário'], + ]; + } + + #[DataProvider('unknownValueProvider')] + public function testUnknownValueReturnsDash(string $value): void + { + self::assertSame('-', TipoRetencaoISSQN::labelFor($value)); + } + + /** + * @return array + */ + public static function unknownValueProvider(): array + { + return [ + 'empty' => [''], + 'out of range' => ['99'], + 'non-numeric' => ['x'], + ]; } } diff --git a/tests/Unit/Danfse/TributacaoISSQNTest.php b/tests/Unit/Danfse/TributacaoISSQNTest.php index 4e278bb..605420e 100644 --- a/tests/Unit/Danfse/TributacaoISSQNTest.php +++ b/tests/Unit/Danfse/TributacaoISSQNTest.php @@ -9,24 +9,47 @@ use LibreCodeCoop\NfsePHP\Danfse\Enum\TributacaoISSQN; use LibreCodeCoop\NfsePHP\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * @covers \LibreCodeCoop\NfsePHP\Danfse\Enum\TributacaoISSQN */ class TributacaoISSQNTest extends TestCase { - public function testKnownLabels(): void + #[DataProvider('labelProvider')] + public function testLabelFor(string $value, string $expected): void { - self::assertSame('Operação Tributável', TributacaoISSQN::labelFor('1')); - self::assertSame('Imunidade', TributacaoISSQN::labelFor('2')); - self::assertSame('Exportação de Serviço', TributacaoISSQN::labelFor('3')); - self::assertSame('Não Incidência', TributacaoISSQN::labelFor('4')); + self::assertSame($expected, TributacaoISSQN::labelFor($value)); } - public function testUnknownValueReturnsDash(): void + /** + * @return array + */ + public static function labelProvider(): array { - self::assertSame('-', TributacaoISSQN::labelFor('')); - self::assertSame('-', TributacaoISSQN::labelFor('99')); - self::assertSame('-', TributacaoISSQN::labelFor('x')); + return [ + 'operação tributável' => ['1', 'Operação Tributável'], + 'imunidade' => ['2', 'Imunidade'], + 'exportação de serviço' => ['3', 'Exportação de Serviço'], + 'não incidência' => ['4', 'Não Incidência'], + ]; + } + + #[DataProvider('unknownValueProvider')] + public function testUnknownValueReturnsDash(string $value): void + { + self::assertSame('-', TributacaoISSQN::labelFor($value)); + } + + /** + * @return array + */ + public static function unknownValueProvider(): array + { + return [ + 'empty' => [''], + 'out of range' => ['99'], + 'non-numeric' => ['x'], + ]; } } From 2f80c5d22e26b5a020fa7e57ee7bcb4478f7f87f Mon Sep 17 00:00:00 2001 From: YvesCesar Date: Wed, 1 Jul 2026 19:25:27 -0400 Subject: [PATCH 13/13] test(config): drive EnvironmentConfig URL test with a data provider Signed-off-by: YvesCesar --- tests/Unit/Config/EnvironmentConfigTest.php | 29 ++++++++++----------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/tests/Unit/Config/EnvironmentConfigTest.php b/tests/Unit/Config/EnvironmentConfigTest.php index 7d5eba8..baf5a82 100644 --- a/tests/Unit/Config/EnvironmentConfigTest.php +++ b/tests/Unit/Config/EnvironmentConfigTest.php @@ -9,32 +9,31 @@ use LibreCodeCoop\NfsePHP\Config\EnvironmentConfig; use LibreCodeCoop\NfsePHP\Tests\TestCase; +use PHPUnit\Framework\Attributes\DataProvider; /** * @covers \LibreCodeCoop\NfsePHP\Config\EnvironmentConfig */ class EnvironmentConfigTest extends TestCase { - public function testDefaultsToProductionUrl(): void + #[DataProvider('modeUrlProvider')] + public function testModeSelectsBaseUrl(bool $sandboxMode, string $expectedUrl): void { - $config = new EnvironmentConfig(); + $config = new EnvironmentConfig(sandboxMode: $sandboxMode); - self::assertFalse($config->sandboxMode); - self::assertSame( - 'https://sefin.nfse.gov.br/SefinNacional', - $config->baseUrl, - ); + self::assertSame($sandboxMode, $config->sandboxMode); + self::assertSame($expectedUrl, $config->baseUrl); } - public function testSandboxModeSelectsSandboxUrl(): void + /** + * @return array + */ + public static function modeUrlProvider(): array { - $config = new EnvironmentConfig(sandboxMode: true); - - self::assertTrue($config->sandboxMode); - self::assertSame( - 'https://sefin.producaorestrita.nfse.gov.br/SefinNacional', - $config->baseUrl, - ); + return [ + 'production by default' => [false, 'https://sefin.nfse.gov.br/SefinNacional'], + 'sandbox mode' => [true, 'https://sefin.producaorestrita.nfse.gov.br/SefinNacional'], + ]; } public function testCustomBaseUrlOverridesMode(): void