Auto-deploy: 2026-01-13 11:57:50 | 1 arquivo(s) alterado(s)
|
|
@ -0,0 +1,69 @@
|
|||
# 🚀 Guia Rápido - Git Auto-Sync
|
||||
|
||||
## Como Iniciar
|
||||
|
||||
### Opção 1: Via NPM (Recomendado)
|
||||
|
||||
```bash
|
||||
# Com build automático
|
||||
npm run git:sync
|
||||
|
||||
# Sem build automático (mais rápido)
|
||||
npm run git:sync:nobuild
|
||||
```
|
||||
|
||||
### Opção 2: Via PowerShell
|
||||
|
||||
```powershell
|
||||
# Com build automático
|
||||
.\git-auto-sync.ps1
|
||||
|
||||
# Sem build automático
|
||||
$env:BUILD_ENABLED='false'; .\git-auto-sync.ps1
|
||||
```
|
||||
|
||||
## O que acontece?
|
||||
|
||||
1. ✅ O script monitora todas as alterações nos arquivos
|
||||
2. ✅ Aguarda 10 segundos após a última alteração (debounce)
|
||||
3. ✅ Executa `npm run build` (se habilitado)
|
||||
4. ✅ Faz `git add .`
|
||||
5. ✅ Cria commit com timestamp e contagem de arquivos
|
||||
6. ✅ Faz `git push origin frontend_React`
|
||||
|
||||
## Exemplo de Uso
|
||||
|
||||
```bash
|
||||
# 1. Inicie o monitoramento
|
||||
npm run git:sync
|
||||
|
||||
# 2. Faça suas alterações normalmente no código
|
||||
# 3. Salve os arquivos
|
||||
# 4. Aguarde 10 segundos
|
||||
# 5. O script automaticamente fará commit e push!
|
||||
```
|
||||
|
||||
## Para Parar
|
||||
|
||||
Pressione `Ctrl+C` no terminal onde o script está rodando.
|
||||
|
||||
## Dicas
|
||||
|
||||
- 💡 Use `git:sync:nobuild` durante desenvolvimento para commits mais rápidos
|
||||
- 💡 Use `git:sync` antes de finalizar o dia para garantir build atualizado
|
||||
- 💡 O script ignora automaticamente `node_modules`, `.git`, `dist`, etc.
|
||||
- 💡 Múltiplas alterações em 10 segundos são agrupadas em um único commit
|
||||
|
||||
## Configurações
|
||||
|
||||
Edite `git-auto-sync.ps1` para ajustar:
|
||||
|
||||
```powershell
|
||||
$BRANCH_NAME = "frontend_React" # Branch de destino
|
||||
$DEBOUNCE_SECONDS = 10 # Tempo de espera
|
||||
$BUILD_ENABLED = $true # Build automático
|
||||
```
|
||||
|
||||
## Documentação Completa
|
||||
|
||||
Veja [GIT-AUTO-SYNC.md](./GIT-AUTO-SYNC.md) para mais detalhes.
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
# PlatformSistemas
|
||||
|
||||
<!-- Test for auto-sync -->
|
||||
Sistema de gestão integrada desenvolvido em React + TypeScript + Vite.
|
||||
|
||||
## 🚀 Repositório
|
||||
|
|
|
|||
|
|
@ -1,49 +1,21 @@
|
|||
# ============================================
|
||||
# Script de Automação Git para PlatformSistemas
|
||||
# Git Auto-Sync - PlatformSistemas
|
||||
# Branch: frontend_React
|
||||
# Remote: https://git.itguys.com.br/itguys_dev/Workspace
|
||||
# ============================================
|
||||
# Este script monitora alterações no projeto e realiza commits/push automáticos.
|
||||
# Inclui debounce, filtragem inteligente e build automático.
|
||||
|
||||
# Configurações
|
||||
param(
|
||||
[switch]$NoBuild = $false
|
||||
)
|
||||
|
||||
$BRANCH_NAME = "frontend_React"
|
||||
$DEBOUNCE_SECONDS = 10 # Aguarda 10 segundos após última alteração antes de commitar
|
||||
$BUILD_ENABLED = $true # Define se deve executar build antes do commit
|
||||
$DEBOUNCE_SECONDS = 10
|
||||
|
||||
# Variáveis de controle de debounce
|
||||
$script:LastChangeTime = Get-Date
|
||||
$script:PendingChanges = $false
|
||||
$script:ChangedFiles = @()
|
||||
$global:LastChangeTime = Get-Date
|
||||
$global:PendingChanges = $false
|
||||
$global:ChangedFiles = @()
|
||||
|
||||
# Configuração do FileSystemWatcher
|
||||
$Watcher = New-Object IO.FileSystemWatcher
|
||||
$Watcher.Path = $PSScriptRoot
|
||||
$Watcher.Filter = "*.*"
|
||||
$Watcher.IncludeSubdirectories = $true
|
||||
$Watcher.EnableRaisingEvents = $true
|
||||
$Watcher.NotifyFilter = [System.IO.NotifyFilters]::FileName -bor
|
||||
[System.IO.NotifyFilters]::DirectoryName -bor
|
||||
[System.IO.NotifyFilters]::LastWrite
|
||||
|
||||
# Função para verificar se o arquivo deve ser ignorado
|
||||
function Test-ShouldIgnoreFile {
|
||||
param([string]$FilePath)
|
||||
|
||||
$ignorePatterns = @(
|
||||
"node_modules",
|
||||
".git",
|
||||
"dist",
|
||||
".env",
|
||||
".log",
|
||||
"package-lock.json",
|
||||
".tmp",
|
||||
".cache",
|
||||
".vscode",
|
||||
".idea",
|
||||
"*.swp",
|
||||
"*~"
|
||||
)
|
||||
$ignorePatterns = @("node_modules", ".git", "dist", ".env", ".log", "package-lock.json", ".tmp", ".cache", ".vscode", ".idea")
|
||||
|
||||
foreach ($pattern in $ignorePatterns) {
|
||||
if ($FilePath -match [regex]::Escape($pattern)) {
|
||||
|
|
@ -54,49 +26,45 @@ function Test-ShouldIgnoreFile {
|
|||
return $false
|
||||
}
|
||||
|
||||
# Função para processar commit e push
|
||||
function Invoke-GitSync {
|
||||
if (-not $script:PendingChanges) { return }
|
||||
if (-not $global:PendingChanges) {
|
||||
return
|
||||
}
|
||||
|
||||
Write-Host "`n========================================" -ForegroundColor Cyan
|
||||
Write-Host "Iniciando sincronização Git..." -ForegroundColor Cyan
|
||||
Write-Host "Iniciando sincronizacao Git..." -ForegroundColor Cyan
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
|
||||
try {
|
||||
# Verifica se há alterações para commitar
|
||||
$gitStatus = git status --porcelain
|
||||
if ([string]::IsNullOrWhiteSpace($gitStatus)) {
|
||||
Write-Host "Nenhuma alteração para commitar." -ForegroundColor Yellow
|
||||
$script:PendingChanges = $false
|
||||
$script:ChangedFiles = @()
|
||||
Write-Host "Nenhuma alteracao para commitar." -ForegroundColor Yellow
|
||||
$global:PendingChanges = $false
|
||||
$global:ChangedFiles = @()
|
||||
return
|
||||
}
|
||||
|
||||
Write-Host "`nArquivos alterados:" -ForegroundColor Gray
|
||||
$script:ChangedFiles | ForEach-Object { Write-Host " - $_" -ForegroundColor DarkGray }
|
||||
$global:ChangedFiles | ForEach-Object { Write-Host " - $_" -ForegroundColor DarkGray }
|
||||
|
||||
# Build de produção (se habilitado)
|
||||
if ($BUILD_ENABLED) {
|
||||
Write-Host "`nGerando build de produção..." -ForegroundColor Yellow
|
||||
$buildOutput = npm run build 2>&1
|
||||
if (-not $NoBuild) {
|
||||
Write-Host "`nGerando build de producao..." -ForegroundColor Yellow
|
||||
npm run build
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Host "Erro no build! Abortando commit." -ForegroundColor Red
|
||||
Write-Host $buildOutput -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
Write-Host "Build concluído com sucesso!" -ForegroundColor Green
|
||||
Write-Host "Build concluido com sucesso!" -ForegroundColor Green
|
||||
}
|
||||
|
||||
# Git add
|
||||
Write-Host "`nAdicionando arquivos ao stage..." -ForegroundColor Yellow
|
||||
git add .
|
||||
|
||||
# Git commit
|
||||
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
|
||||
$fileCount = ($script:ChangedFiles | Measure-Object).Count
|
||||
$fileCount = ($global:ChangedFiles | Measure-Object).Count
|
||||
$commitMessage = "Auto-deploy: $timestamp | $fileCount arquivo(s) alterado(s)"
|
||||
|
||||
if ($BUILD_ENABLED) {
|
||||
if (-not $NoBuild) {
|
||||
$commitMessage += " [Build included]"
|
||||
}
|
||||
|
||||
|
|
@ -105,86 +73,91 @@ function Invoke-GitSync {
|
|||
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Host "Nada para commitar ou erro no commit." -ForegroundColor Yellow
|
||||
$script:PendingChanges = $false
|
||||
$script:ChangedFiles = @()
|
||||
$global:PendingChanges = $false
|
||||
$global:ChangedFiles = @()
|
||||
return
|
||||
}
|
||||
|
||||
# Git push
|
||||
Write-Host "Enviando para o repositório remoto (branch: $BRANCH_NAME)..." -ForegroundColor Yellow
|
||||
Write-Host "Enviando para o repositorio remoto (branch: $BRANCH_NAME)..." -ForegroundColor Yellow
|
||||
git push origin $BRANCH_NAME
|
||||
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Host "`n✓ Sincronização concluída com sucesso!" -ForegroundColor Green
|
||||
Write-Host "`nSincronizacao concluida com sucesso!" -ForegroundColor Green
|
||||
Write-Host "========================================`n" -ForegroundColor Cyan
|
||||
}
|
||||
else {
|
||||
Write-Host "`n✗ Erro ao fazer push para o repositório remoto!" -ForegroundColor Red
|
||||
Write-Host "`nErro ao fazer push para o repositorio remoto!" -ForegroundColor Red
|
||||
Write-Host "========================================`n" -ForegroundColor Cyan
|
||||
}
|
||||
|
||||
}
|
||||
catch {
|
||||
Write-Host "`n✗ Erro ao sincronizar com o Git: $_" -ForegroundColor Red
|
||||
Write-Host "`nErro ao sincronizar com o Git: $_" -ForegroundColor Red
|
||||
Write-Host "========================================`n" -ForegroundColor Cyan
|
||||
}
|
||||
finally {
|
||||
$script:PendingChanges = $false
|
||||
$script:ChangedFiles = @()
|
||||
$global:PendingChanges = $false
|
||||
$global:ChangedFiles = @()
|
||||
}
|
||||
}
|
||||
|
||||
# Action para eventos do FileSystemWatcher
|
||||
$Watcher = New-Object IO.FileSystemWatcher
|
||||
$Watcher.Path = $PSScriptRoot
|
||||
$Watcher.Filter = "*.*"
|
||||
$Watcher.IncludeSubdirectories = $true
|
||||
$Watcher.EnableRaisingEvents = $true
|
||||
$Watcher.NotifyFilter = [System.IO.NotifyFilters]::FileName -bor [System.IO.NotifyFilters]::DirectoryName -bor [System.IO.NotifyFilters]::LastWrite
|
||||
|
||||
$Action = {
|
||||
$path = $Event.SourceEventArgs.FullPath
|
||||
$changeType = $Event.SourceEventArgs.ChangeType
|
||||
|
||||
# Ignora arquivos/pastas específicos
|
||||
if (Test-ShouldIgnoreFile -FilePath $path) { return }
|
||||
if (Test-ShouldIgnoreFile -FilePath $path) {
|
||||
return
|
||||
}
|
||||
|
||||
# Registra a alteração
|
||||
$relativePath = $path.Replace($PSScriptRoot, "").TrimStart("\")
|
||||
Write-Host "[$(Get-Date -Format 'HH:mm:ss')] $changeType : $relativePath" -ForegroundColor DarkCyan
|
||||
|
||||
# Atualiza controle de debounce
|
||||
$script:LastChangeTime = Get-Date
|
||||
$script:PendingChanges = $true
|
||||
$global:LastChangeTime = Get-Date
|
||||
$global:PendingChanges = $true
|
||||
|
||||
if ($script:ChangedFiles -notcontains $relativePath) {
|
||||
$script:ChangedFiles += $relativePath
|
||||
if ($global:ChangedFiles -notcontains $relativePath) {
|
||||
$global:ChangedFiles += $relativePath
|
||||
}
|
||||
}
|
||||
|
||||
# Registra os eventos
|
||||
Register-ObjectEvent $Watcher "Changed" -Action $Action | Out-Null
|
||||
Register-ObjectEvent $Watcher "Created" -Action $Action | Out-Null
|
||||
Register-ObjectEvent $Watcher "Deleted" -Action $Action | Out-Null
|
||||
Register-ObjectEvent $Watcher "Renamed" -Action $Action | Out-Null
|
||||
|
||||
# Banner inicial
|
||||
Write-Host "`n" -NoNewline
|
||||
Write-Host "╔════════════════════════════════════════════════════════════╗" -ForegroundColor Green
|
||||
Write-Host "║ Git Auto-Sync - PlatformSistemas ║" -ForegroundColor Green
|
||||
Write-Host "╠════════════════════════════════════════════════════════════╣" -ForegroundColor Green
|
||||
Write-Host "║ Branch: $BRANCH_NAME ║" -ForegroundColor Cyan
|
||||
Write-Host "║ Remote: https://git.itguys.com.br/itguys_dev/Workspace ║" -ForegroundColor Cyan
|
||||
Write-Host "║ Debounce: $DEBOUNCE_SECONDS segundos ║" -ForegroundColor Cyan
|
||||
Write-Host "║ Build automático: $(if($BUILD_ENABLED){'Habilitado'}else{'Desabilitado'}) ║" -ForegroundColor Cyan
|
||||
Write-Host "╠════════════════════════════════════════════════════════════╣" -ForegroundColor Green
|
||||
Write-Host "║ Status: Monitorando alterações... ║" -ForegroundColor Yellow
|
||||
Write-Host "║ Pressione Ctrl+C para parar ║" -ForegroundColor Yellow
|
||||
Write-Host "╚════════════════════════════════════════════════════════════╝" -ForegroundColor Green
|
||||
Write-Host "`n"
|
||||
Write-Host "`n============================================================" -ForegroundColor Green
|
||||
Write-Host " Git Auto-Sync - PlatformSistemas" -ForegroundColor Green
|
||||
Write-Host "============================================================" -ForegroundColor Green
|
||||
Write-Host " Branch: $BRANCH_NAME" -ForegroundColor Cyan
|
||||
Write-Host " Remote: https://git.itguys.com.br/itguys_dev/Workspace" -ForegroundColor Cyan
|
||||
Write-Host " Debounce: $DEBOUNCE_SECONDS segundos" -ForegroundColor Cyan
|
||||
Write-Host " Build automatico: $(if($NoBuild){'Desabilitado'}else{'Habilitado'})" -ForegroundColor Cyan
|
||||
Write-Host "============================================================" -ForegroundColor Green
|
||||
Write-Host " Status: Monitorando alteracoes..." -ForegroundColor Yellow
|
||||
Write-Host " Pressione Ctrl+C para parar" -ForegroundColor Yellow
|
||||
Write-Host "============================================================`n" -ForegroundColor Green
|
||||
|
||||
# Loop principal com debounce
|
||||
$lastHeartbeat = Get-Date
|
||||
while ($true) {
|
||||
Start-Sleep -Seconds 1
|
||||
|
||||
if ($script:PendingChanges) {
|
||||
$timeSinceLastChange = (Get-Date) - $script:LastChangeTime
|
||||
if ((Get-Date) - $lastHeartbeat -gt (New-TimeSpan -Minutes 5)) {
|
||||
Write-Host "[$(Get-Date -Format 'HH:mm:ss')] Heartbeat: Script ativo e monitorando..." -ForegroundColor Gray
|
||||
$lastHeartbeat = Get-Date
|
||||
}
|
||||
|
||||
if ($global:PendingChanges) {
|
||||
$timeSinceLastChange = (Get-Date) - $global:LastChangeTime
|
||||
|
||||
if ($timeSinceLastChange.TotalSeconds -ge $DEBOUNCE_SECONDS) {
|
||||
Invoke-GitSync
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"lint": "eslint .",
|
||||
"preview": "vite preview",
|
||||
"git:sync": "powershell -ExecutionPolicy Bypass -File ./git-auto-sync.ps1",
|
||||
"git:sync:nobuild": "powershell -ExecutionPolicy Bypass -Command \"$env:BUILD_ENABLED='false'; .\\git-auto-sync.ps1\""
|
||||
"git:sync:nobuild": "powershell -ExecutionPolicy Bypass -File ./git-auto-sync.ps1 -NoBuild"
|
||||
},
|
||||
"dependencies": {
|
||||
"@hookform/resolvers": "^5.2.2",
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ const PrafrotRoutes = lazy(() => import('@/features/prafrot/routes').then(m => (
|
|||
const PrafrotLogin = lazy(() => import('@/features/prafrot/views/LoginView'));
|
||||
const TableDebug = lazy(() => import('@/features/prafrot/views/TableDebug'));
|
||||
const PlaygroundView = lazy(() => import('@/features/dev-tools/views/PlaygroundView'));
|
||||
const WorkspaceLayout = lazy(() => import('@/features/workspace').then(m => ({ default: m.WorkspaceLayout })));
|
||||
|
||||
// Loading component
|
||||
const PageLoader = () => (
|
||||
|
|
@ -110,6 +111,13 @@ function App() {
|
|||
<Route index element={<Navigate to="/plataforma/prafrot/login" replace />} />
|
||||
</Route>
|
||||
|
||||
{/* Workspace Environment - Novo Ambiente Modernizado */}
|
||||
<Route path="/plataforma/workspace/*" element={
|
||||
<ProtectedRoute loginPath="/plataforma/auth/login" environment="financeiro">
|
||||
<WorkspaceLayout />
|
||||
</ProtectedRoute>
|
||||
} />
|
||||
|
||||
{/* Fallback */}
|
||||
<Route path="*" element={<Navigate to="/plataforma/" replace />} />
|
||||
</Routes>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,93 @@
|
|||
Copyright (c) 2010-2014 by tyPoland Lukasz Dziedzic (team@latofonts.com) with Reserved Font Name "Lato"
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 412 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 8.0 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 9.6 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 9.0 KiB |