From 69ed47079fa344377807a9faa809c056325bb2a4 Mon Sep 17 00:00:00 2001 From: Espen Antonsen Date: Sun, 25 Sep 2011 14:55:01 +0800 Subject: [PATCH] latest plupload. beta - beware --- public/javascripts/plupload/changelog.txt | 20 ++++++++++ .../javascripts/plupload/examples/custom.html | 26 +++++------- .../examples/jquery/jquery_ui_widget.html | 33 ++++++++-------- public/javascripts/plupload/js/i18n/cs.js | 14 +++++++ public/javascripts/plupload/js/i18n/da.js | 12 ++++++ public/javascripts/plupload/js/i18n/de.js | 25 ++++++++++++ public/javascripts/plupload/js/i18n/es.js | 25 ++++++++++++ public/javascripts/plupload/js/i18n/fr.js | 25 ++++++++++++ public/javascripts/plupload/js/i18n/it.js | 21 ++++++++++ public/javascripts/plupload/js/i18n/ja.js | 37 ++++++++++++++++++ public/javascripts/plupload/js/i18n/lv.js | 33 ++++++++++++++++ public/javascripts/plupload/js/i18n/nl.js | 21 ++++++++++ public/javascripts/plupload/js/i18n/pt-br.js | 35 +++++++++++++++++ public/javascripts/plupload/js/i18n/ru.js | 21 ++++++++++ public/javascripts/plupload/js/i18n/sv.js | 12 ++++++ .../jquery.plupload.queue.js | 2 +- .../css/jquery.ui.plupload.css | 8 ++++ .../jquery.ui.plupload/jquery.ui.plupload.js | 2 +- .../plupload/js/plupload.browserplus.js | 2 +- .../javascripts/plupload/js/plupload.flash.js | 2 +- .../plupload/js/plupload.flash.swf | Bin 18538 -> 18746 bytes .../javascripts/plupload/js/plupload.full.js | 4 +- .../javascripts/plupload/js/plupload.gears.js | 2 +- .../javascripts/plupload/js/plupload.html4.js | 2 +- .../javascripts/plupload/js/plupload.html5.js | 2 +- public/javascripts/plupload/js/plupload.js | 4 +- .../plupload/js/plupload.silverlight.js | 2 +- .../plupload/js/plupload.silverlight.xap | Bin 43337 -> 43353 bytes 28 files changed, 347 insertions(+), 45 deletions(-) create mode 100644 public/javascripts/plupload/js/i18n/cs.js create mode 100644 public/javascripts/plupload/js/i18n/da.js create mode 100644 public/javascripts/plupload/js/i18n/de.js create mode 100644 public/javascripts/plupload/js/i18n/es.js create mode 100644 public/javascripts/plupload/js/i18n/fr.js create mode 100644 public/javascripts/plupload/js/i18n/it.js create mode 100644 public/javascripts/plupload/js/i18n/ja.js create mode 100644 public/javascripts/plupload/js/i18n/lv.js create mode 100644 public/javascripts/plupload/js/i18n/nl.js create mode 100644 public/javascripts/plupload/js/i18n/pt-br.js create mode 100644 public/javascripts/plupload/js/i18n/ru.js create mode 100644 public/javascripts/plupload/js/i18n/sv.js diff --git a/public/javascripts/plupload/changelog.txt b/public/javascripts/plupload/changelog.txt index a7975a3..639ba99 100644 --- a/public/javascripts/plupload/changelog.txt +++ b/public/javascripts/plupload/changelog.txt @@ -1,3 +1,23 @@ +Version 1.5b (2011-09-11) + UI Widget: Fix sortable logic. + UI Widget: Fix bug, when message was displayed simultaneously across all Plupload UI instances on the page. + UI Widget: notify() method is now public - users can throw their own messages into the widget header. + HTML4/HTML5: Revise input[type=file] placement logic to support cursor styling on Geko 2+. + HTML5: Revise Drag'n'Drop detection logic. + HTML5: Make Exif and GPS information available to user, introduce two new events: ExifData and GpsData. + HTML5: Add support for File.prototype.slice() method (mozSlice/webkitSlice) in order to be able to upload files in chunks without preloading. + HTML5: Remove any JPEG headers before restoring them, 'cause user agent (like Chrome), might be inserting it's own. + Flash: Remove a limit on the depth of image header check, since it still fails in some cases and performance gain is negligible. + Flash: Fix regression, when runtime hanged when not images where passed in as images. + SilverLight: Fix bug, when JSON serializer was failing on null. + SilverLight: Remove cast to integer for chunk boundary, which resulted in a wrong size for last chunks on huge files. + SilverLight: Increase read buffer, add disposal of ImageStream and FileStream, optimize for performance. + Updated build.xml to include language packs in release package under js/ folder. + Gears/BrowserPlus: Add support for * file filter. + BeforeUpload now can cancel upload if required. + Additional MIME types: text/csv, image/photoshop, video/x-ms-wmv, video/avi, video/webm support + Additional language packs: Japanese + Cleaned examples. Version 1.4.3.2 (2011-04-13) Fixed bug in HTML5 runtime, when was reduced by a factor of 100 after every upload. Version 1.4.3.1 (2011-04-12) diff --git a/public/javascripts/plupload/examples/custom.html b/public/javascripts/plupload/examples/custom.html index e5411ae..92f73b8 100644 --- a/public/javascripts/plupload/examples/custom.html +++ b/public/javascripts/plupload/examples/custom.html @@ -29,20 +29,17 @@ -
-

Custom example

+

Custom example

-

Shows you how to use the core plupload API.

+

Shows you how to use the core plupload API.

+ +
+
No runtime found.
+
+ [Select files] + [Upload files] +
-
-
No runtime found.
-
- [Select files] - [Upload files] -
- - -
diff --git a/public/javascripts/plupload/js/i18n/cs.js b/public/javascripts/plupload/js/i18n/cs.js new file mode 100644 index 0000000..1ee5d5f --- /dev/null +++ b/public/javascripts/plupload/js/i18n/cs.js @@ -0,0 +1,14 @@ +// .po file like language pack +plupload.addI18n({ + 'Select files' : 'Vyberte soubory', + 'Add files to the upload queue and click the start button.' : 'Přidejte soubory do fronty a pak spusťte nahrávání.', + 'Filename' : 'Název souboru', + 'Status' : 'Status', + 'Size' : 'Velikost', + 'Add Files' : 'Přidat soubory', + 'Stop current upload' : 'Zastavit nahrávání', + 'Start uploading queue' : 'Spustit frontu nahrávání', + 'Drag files here.' : 'Sem přetáhněte soubory.', + 'Start Upload': 'Spustit nahrávání', + 'Uploaded %d/%d files': 'Nahráno %d/%d souborů' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/da.js b/public/javascripts/plupload/js/i18n/da.js new file mode 100644 index 0000000..fc95896 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/da.js @@ -0,0 +1,12 @@ +// .po file like language pack +plupload.addI18n({ + 'Select files' : 'Vælg filer', + 'Add files to the upload queue and click the start button.' : 'Tilføj filer til køen, og tryk på start.', + 'Filename' : 'Filnavn', + 'Status' : 'Status', + 'Size' : 'Størrelse', + 'Add files' : 'Tilføj filer', + 'Stop current upload' : 'Stop upload', + 'Start uploading queue' : 'Start upload', + 'Drag files here.' : 'Træk filer her.' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/de.js b/public/javascripts/plupload/js/i18n/de.js new file mode 100644 index 0000000..96429d3 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/de.js @@ -0,0 +1,25 @@ +// German +plupload.addI18n({ + 'Select files' : 'Wählen Sie die Dateien:', + 'Add files to the upload queue and click the start button.' : 'Dateien hinzufügen und danach auf \'Starten des Uploads\' klicken und die Datei hochzuladen.', + 'Filename' : 'Dateiname', + 'Status' : 'Status', + 'Size' : 'Größe', + 'Add files' : 'Hinzufügen von Dateien', + 'Stop current upload' : 'Stop aktuellen Upload', + 'Start uploading queue' : 'Starte Upload', + 'Uploaded %d/%d files': '%d/%d Dateien sind Hochgeladen', + 'N/A' : 'Nicht verfügbar', + 'Drag files here.' : 'Ziehen Sie die Dateien hier hin', + 'File extension error.': 'Dateiendungs Fehler.', + 'File size error.': 'Dateigrößen Fehler.', + 'Init error.': 'Initialisierungs Fehler.', + 'HTTP Error.': 'HTTP Fehler.', + 'Security error.': 'Sicherheits Fehler.', + 'Generic error.': 'Generic Fehler.', + 'IO error.': 'Ein/Ausgabe Fehler.', + 'Stop Upload': 'Stoppen des Uploads.', + 'Add Files': 'Dateien hinzufügen', + 'Start Upload': 'Starten des Uploads.', + '%d files queued': '%d Dateien in der Warteschlange.' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/es.js b/public/javascripts/plupload/js/i18n/es.js new file mode 100644 index 0000000..2379421 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/es.js @@ -0,0 +1,25 @@ +// Spanish +plupload.addI18n({ + 'Select files' : 'Elija archivos:', + 'Add files to the upload queue and click the start button.' : 'Agregue archivos a la cola de subida y haga click en el boton de iniciar.', + 'Filename' : 'Nombre de archivo', + 'Status' : 'Estado', + 'Size' : 'Tamaño', + 'Add files' : 'Agregue archivos', + 'Stop current upload' : 'Detener subida actual', + 'Start uploading queue' : 'Iniciar subida de cola', + 'Uploaded %d/%d files': 'Subidos %d/%d archivos', + 'N/A' : 'No disponible', + 'Drag files here.' : 'Arrastre archivos aquí', + 'File extension error.': 'Error de extensión de archivo.', + 'File size error.': 'Error de tamaño de archivo.', + 'Init error.': 'Error de inicialización.', + 'HTTP Error.': 'Error de HTTP.', + 'Security error.': 'Error de seguridad.', + 'Generic error.': 'Error genérico.', + 'IO error.': 'Error de entrada/salida.', + 'Stop Upload': 'Detener Subida.', + 'Add Files': 'Agregar Archivos', + 'Start Upload': 'Comenzar Subida.', + '%d files queued': '%d archivos en cola.' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/fr.js b/public/javascripts/plupload/js/i18n/fr.js new file mode 100644 index 0000000..c534ec4 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/fr.js @@ -0,0 +1,25 @@ +// .po file like language pack +plupload.addI18n({ + 'Select files' : 'Sélectionnez les fichiers', + 'Add files to the upload queue and click the start button.' : 'Ajoutez des fichiers à la file et appuyez sur le bouton démarrer.', + 'Filename' : 'Nom de fichier', + 'Status' : 'Status', + 'Size' : 'Taille', + 'Add files' : 'Ajouter Fichiers', + 'Stop current upload' : 'Arrêter l\'envoi en cours', + 'Start uploading queue' : 'Démarrer l\'envoi', + 'Uploaded %d/%d files': '%d/%d fichiers envoyés', + 'N/A' : 'Non applicable', + 'Drag files here.' : 'Déposer les fichiers ici.', + 'File extension error.': 'Erreur extension fichier', + 'File size error.': 'Erreur taille fichier.', + 'Init error.': 'Erreur d\'initialisation.', + 'HTTP Error.': 'Erreur HTTP.', + 'Security error.': 'Erreur de sécurité.', + 'Generic error.': 'Erreur générique.', + 'IO error.': 'Erreur E/S.', + 'Stop Upload': 'Arrêter les envois.', + 'Add Files': 'Ajouter des fichiers', + 'Start Upload': 'Démarrer les envois.', + '%d files queued': '%d fichiers en attente.' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/it.js b/public/javascripts/plupload/js/i18n/it.js new file mode 100644 index 0000000..7946578 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/it.js @@ -0,0 +1,21 @@ +// .po file like language pack +plupload.addI18n({ + 'Select files' : 'Seleziona i files', + 'Add files to the upload queue and click the start button.' : 'Aggiungi i file alla coda di caricamento e clicca il pulsante di avvio.', + 'Filename' : 'Nome file', + 'Status' : 'Stato', + 'Size' : 'Dimensione', + 'Add files' : 'Aggiungi file', + 'Stop current upload' : 'Interrompi il caricamento', + 'Start uploading queue' : 'Avvia il caricamento', + 'Uploaded %d/%d files': 'Caricati %d/%d file', + 'N/A' : 'N/D', + 'Drag files here.' : 'Trascina i file qui.', + 'File extension error.': 'Errore estensione file.', + 'File size error.': 'Errore dimensione file.', + 'Init error.': 'Errore inizializzazione.', + 'HTTP Error.': 'Errore HTTP.', + 'Security error.': 'Errore sicurezza.', + 'Generic error.': 'Errore generico.', + 'IO error.': 'Errore IO.' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/ja.js b/public/javascripts/plupload/js/i18n/ja.js new file mode 100644 index 0000000..02c85ae --- /dev/null +++ b/public/javascripts/plupload/js/i18n/ja.js @@ -0,0 +1,37 @@ +// Japanese +plupload.addI18n({ + 'Select files' : 'ファイル選択', + 'Add files to the upload queue and click the start button.' : 'ファイルをアップロードキューに追加してスタートボタンをクリックしてください', + 'Filename' : 'ファイル名', + 'Status' : 'ステータス', + 'Size' : 'サイズ', + 'Add Files' : 'ファイルを追加', + 'Stop Upload' : 'アップロード停止', + 'Start Upload' : 'アップロード', + 'Add files' : 'ファイルを追加', + 'Add files.' : 'ファイルを追加', + 'Stop current upload' : '現在のアップロードを停止', + 'Start uploading queue' : 'アップロード', + 'Stop upload' : 'アップロード停止', + 'Start upload' : 'アップロード', + 'Uploaded %d/%d files': 'アップロード中 %d/%d ファイル', + 'N/A' : 'N/A', + 'Drag files here.' : 'ここにファイルをドラッグ', + 'File extension error.': 'ファイル拡張子エラー', + 'File size error.': 'ファイルサイズエラー', + 'File count error.': 'ファイル数エラー', + 'Init error.': 'イニシャライズエラー', + 'HTTP Error.': 'HTTP エラー', + 'Security error.': 'セキュリティエラー', + 'Generic error.': 'エラー', + 'IO error.': 'IO エラー', + 'File: %s': 'ファイル: %s', + 'Close': '閉じる', + '%d files queued': '%d ファイルが追加されました', + 'Using runtime: ': 'モード: ', + 'File: %f, size: %s, max file size: %m': 'ファイル: %f, サイズ: %s, 最大ファイルサイズ: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'アップロード可能なファイル数は %d です。余分なファイルは削除されました', + 'Upload URL might be wrong or doesn\'t exist': 'アップロード先の URL が存在しません', + 'Error: File too large: ': 'エラー: サイズが大きすぎます: ', + 'Error: Invalid file extension: ': 'エラー: 拡張子が許可されていません: ' +}); diff --git a/public/javascripts/plupload/js/i18n/lv.js b/public/javascripts/plupload/js/i18n/lv.js new file mode 100644 index 0000000..2a04045 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/lv.js @@ -0,0 +1,33 @@ +// .lv file like language pack +plupload.addI18n({ + 'Select files' : 'Izvēlieties failus', + 'Add files to the upload queue and click the start button.' : 'Pieveinojiet failus rindai un klikšķiniet uz "Sākt augšupielādi" pogas.', + 'Filename' : 'Faila nosaukums', + 'Status' : 'Statuss', + 'Size' : 'Izmērs', + 'Add files' : 'Pievienot failus', + 'Stop current upload' : 'Apturēt pašreizējo augšupielādi', + 'Start uploading queue' : 'Sākt augšupielādi', + 'Drag files here.' : 'Ievelciet failus šeit', + 'Start upload' : 'Sākt augšupielādi', + 'Uploaded %d/%d files': 'Augšupielādēti %d/%d faili', + 'Stop upload': 'Pārtraukt augšupielādi', + 'Start upload': 'Sākt augšupielādi', + '%d files queued': '%d faili pievienoti rindai', + 'File: %s': 'Fails: %s', + 'Close': 'Aizvērt', + 'Using runtime: ': 'Lieto saskarni: ', + 'File: %f, size: %s, max file size: %m': 'Fails: %f, izmērs: %s, maksimālais faila izmērs: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Iespējams ielādēt tikai %d failus vienā reizē. Atlikušie faili netika pievienoti', + 'Upload URL might be wrong or doesn\'t exist': 'Augšupielādes URL varētu būt nepareizs vai neeksistē', + 'Error: File too large: ': 'Kļūda: Fails pārāk liels: ', + 'Error: Invalid file extension: ': 'Kļūda: Nekorekts faila paplašinājums:', + 'File extension error.': 'Faila paplašinājuma kļūda.', + 'File size error.': 'Faila izmēra kļūda.', + 'File count error.': 'Failu skaita kļūda', + 'Init error.': 'Inicializācijas kļūda.', + 'HTTP Error.': 'HTTP kļūda.', + 'Security error.': 'Drošības kļūda.', + 'Generic error.': 'Vispārēja rakstura kļūda.', + 'IO error.': 'Ievades/Izvades kļūda.' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/nl.js b/public/javascripts/plupload/js/i18n/nl.js new file mode 100644 index 0000000..8372c88 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/nl.js @@ -0,0 +1,21 @@ +// Dutch +plupload.addI18n({ + 'Select files' : 'Selecteer bestand(en):', + 'Add files to the upload queue and click the start button.' : 'Voeg bestanden toe aan de wachtrij en druk op \'Start\'.', + 'Filename' : 'Bestandsnaam', + 'Status' : 'Status', + 'Size' : 'Grootte', + 'Add files' : 'Voeg bestanden toe', + 'Stop current upload' : 'Stop upload', + 'Start uploading queue' : 'Start upload', + 'Uploaded %d/%d files': '%d/%d bestanden ge-upload', + 'N/A' : 'Niet beschikbaar', + 'Drag files here.' : 'Sleep bestanden hierheen.', + 'File extension error.': 'Ongeldig bestandstype.', + 'File size error.': 'Bestandsgrootte Error.', + 'Init error.': 'Initialisatie error.', + 'HTTP Error.': 'HTTP Error.', + 'Security error.': 'Beveiliging error.', + 'Generic error.': 'Onbekende error.', + 'IO error.': 'IO error.' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/pt-br.js b/public/javascripts/plupload/js/i18n/pt-br.js new file mode 100644 index 0000000..9f34a64 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/pt-br.js @@ -0,0 +1,35 @@ +// Brazilian Portuguese +plupload.addI18n({ + 'Select files' : 'Escolha os arquivos', + 'Add files to the upload queue and click the start button.' : 'Adicione os arquivos abaixo e clique no botão "Iniciar o envio".', + 'Filename' : 'Nome do arquivo', + 'Status' : 'Status', + 'Size' : 'Tamanho', + 'Add Files' : 'Adicionar arquivo(s)', + 'Stop Upload' : 'Parar o envio', + 'Start Upload' : 'Iniciar o envio', + 'Add files' : 'Adicionar arquivo(s)', + 'Add files.' : 'Adicionar arquivo(s)', + 'Stop upload' : 'Parar o envio', + 'Start upload' : 'Iniciar o envio', + 'Uploaded %d/%d files': 'Enviado(s) %d/%d arquivo(s)', + 'N/A' : 'N/D', + 'Drag files here.' : 'Arraste os arquivos pra cá', + 'File extension error.': 'Tipo de arquivo não permitido.', + 'File size error.': 'Tamanho de arquivo não permitido.', + 'File count error.': 'Erro na contagem dos arquivos', + 'Init error.': 'Erro inicializando.', + 'HTTP Error.': 'Erro HTTP.', + 'Security error.': 'Erro de segurança.', + 'Generic error.': 'Erro genérico.', + 'IO error.': 'Erro de E/S.', + 'File: %s': 'Arquivo: %s', + 'Close': 'Fechar', + '%d files queued': '%d arquivo(s)', + 'Using runtime: ': 'Usando: ', + 'File: %f, size: %s, max file size: %m': 'Arquivo: %f, tamanho: %s, máximo: %m', + 'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Só são aceitos %d arquivos por vez. O que passou disso foi descartado.', + 'Upload URL might be wrong or doesn\'t exist': 'URL de envio está errada ou não existe', + 'Error: File too large: ': 'Erro: Arquivo muito grande: ', + 'Error: Invalid file extension: ': 'Erro: Tipo de arquivo não permitido: ' +}); diff --git a/public/javascripts/plupload/js/i18n/ru.js b/public/javascripts/plupload/js/i18n/ru.js new file mode 100644 index 0000000..a78af8e --- /dev/null +++ b/public/javascripts/plupload/js/i18n/ru.js @@ -0,0 +1,21 @@ +// Russian +plupload.addI18n({ + 'Select files' : 'Выберите файлы', + 'Add files to the upload queue and click the start button.' : 'Добавьте файлы в очередь и нажмите кнопку "Загрузить файлы".', + 'Filename' : 'Имя файла', + 'Status' : 'Статус', + 'Size' : 'Размер', + 'Add files' : 'Добавить файлы', + 'Stop current upload' : 'Остановить загрузку', + 'Start uploading queue' : 'Загрузить файлы', + 'Uploaded %d/%d files': 'Загружено %d из %d файлов', + 'N/A' : 'N/D', + 'Drag files here.' : 'Перетащите файлы сюда.', + 'File extension error.': 'Неправильное расширение файла.', + 'File size error.': 'Неправильный размер файла.', + 'Init error.': 'Ошибка инициализации.', + 'HTTP Error.': 'Ошибка HTTP.', + 'Security error.': 'Ошибка безопасности.', + 'Generic error.': 'Общая ошибка.', + 'IO error.': 'Ошибка ввода-вывода.' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/i18n/sv.js b/public/javascripts/plupload/js/i18n/sv.js new file mode 100644 index 0000000..11c7524 --- /dev/null +++ b/public/javascripts/plupload/js/i18n/sv.js @@ -0,0 +1,12 @@ +// .po file like language pack +plupload.addI18n({ + 'Select files' : 'Välj filer', + 'Add files to the upload queue and click the start button.' : 'Lägg till filer till kön och tryck på start.', + 'Filename' : 'Filnamn', + 'Status' : 'Status', + 'Size' : 'Storlek', + 'Add files' : 'Lägg till filer', + 'Stop current upload' : 'Stoppa uppladdningen', + 'Start uploading queue' : 'Starta uppladdningen', + 'Drag files here.' : 'Dra filer hit' +}); \ No newline at end of file diff --git a/public/javascripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js b/public/javascripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js index e4379fb..6df6e4d 100644 --- a/public/javascripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js +++ b/public/javascripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js @@ -1 +1 @@ -(function(c){var d={};function a(e){return plupload.translate(e)||e}function b(f,e){e.contents().each(function(g,h){h=c(h);if(!h.is(".plupload")){h.remove()}});e.prepend('
'+a("Select files")+'
'+a("Add files to the upload queue and click the start button.")+'
'+a("Filename")+'
 
'+a("Status")+'
'+a("Size")+'
 
    ')}c.fn.pluploadQueue=function(e){if(e){this.each(function(){var j,i,k;i=c(this);k=i.attr("id");if(!k){k=plupload.guid();i.attr("id",k)}j=new plupload.Uploader(c.extend({dragdrop:true,container:k},e));d[k]=j;function h(l){var n;if(l.status==plupload.DONE){n="plupload_done"}if(l.status==plupload.FAILED){n="plupload_failed"}if(l.status==plupload.QUEUED){n="plupload_delete"}if(l.status==plupload.UPLOADING){n="plupload_uploading"}var m=c("#"+l.id).attr("class",n).find("a").css("display","block");if(l.hint){m.attr("title",l.hint)}}function f(){c("span.plupload_total_status",i).html(j.total.percent+"%");c("div.plupload_progress_bar",i).css("width",j.total.percent+"%");c("span.plupload_upload_status",i).text(a("Uploaded %d/%d files").replace(/%d\/%d/,j.total.uploaded+"/"+j.files.length))}function g(){var m=c("ul.plupload_filelist",i).html(""),n=0,l;c.each(j.files,function(p,o){l="";if(o.status==plupload.DONE){if(o.target_name){l+=''}l+='';l+='';n++;c("#"+k+"_count").val(n)}m.append('
  • '+o.name+'
    '+o.percent+'%
    '+plupload.formatSize(o.size)+'
     
    '+l+"
  • ");h(o);c("#"+o.id+".plupload_delete a").click(function(q){c("#"+o.id).remove();j.removeFile(o);q.preventDefault()})});c("span.plupload_total_file_size",i).html(plupload.formatSize(j.total.size));if(j.total.queued===0){c("span.plupload_add_text",i).text(a("Add files."))}else{c("span.plupload_add_text",i).text(j.total.queued+" files queued.")}c("a.plupload_start",i).toggleClass("plupload_disabled",j.files.length==(j.total.uploaded+j.total.failed));m[0].scrollTop=m[0].scrollHeight;f();if(!j.files.length&&j.features.dragdrop&&j.settings.dragdrop){c("#"+k+"_filelist").append('
  • '+a("Drag files here.")+"
  • ")}}j.bind("UploadFile",function(l,m){c("#"+m.id).addClass("plupload_current_file")});j.bind("Init",function(l,m){b(k,i);if(!e.unique_names&&e.rename){c("#"+k+"_filelist div.plupload_file_name span",i).live("click",function(s){var q=c(s.target),o,r,n,p="";o=l.getFile(q.parents("li")[0].id);n=o.name;r=/^(.+)(\.[^.]+)$/.exec(n);if(r){n=r[1];p=r[2]}q.hide().after('');q.next().val(n).focus().blur(function(){q.show().next().remove()}).keydown(function(u){var t=c(this);if(u.keyCode==13){u.preventDefault();o.name=t.val()+p;q.text(o.name);t.blur()}})})}c("a.plupload_add",i).attr("id",k+"_browse");l.settings.browse_button=k+"_browse";if(l.features.dragdrop&&l.settings.dragdrop){l.settings.drop_element=k+"_filelist";c("#"+k+"_filelist").append('
  • '+a("Drag files here.")+"
  • ")}c("#"+k+"_container").attr("title","Using runtime: "+m.runtime);c("a.plupload_start",i).click(function(n){if(!c(this).hasClass("plupload_disabled")){j.start()}n.preventDefault()});c("a.plupload_stop",i).click(function(n){n.preventDefault();j.stop()});c("a.plupload_start",i).addClass("plupload_disabled")});j.init();j.bind("Error",function(l,o){var m=o.file,n;if(m){n=o.message;if(o.details){n+=" ("+o.details+")"}if(o.code==plupload.FILE_SIZE_ERROR){alert(a("Error: File to large: ")+m.name)}if(o.code==plupload.FILE_EXTENSION_ERROR){alert(a("Error: Invalid file extension: ")+m.name)}m.hint=n;c("#"+m.id).attr("class","plupload_failed").find("a").css("display","block").attr("title",n)}});j.bind("StateChanged",function(){if(j.state===plupload.STARTED){c("li.plupload_delete a,div.plupload_buttons",i).hide();c("span.plupload_upload_status,div.plupload_progress,a.plupload_stop",i).css("display","block");c("span.plupload_upload_status",i).text("Uploaded "+j.total.uploaded+"/"+j.files.length+" files");if(e.multiple_queues){c("span.plupload_total_status,span.plupload_total_file_size",i).show()}}else{g();c("a.plupload_stop,div.plupload_progress",i).hide();c("a.plupload_delete",i).css("display","block")}});j.bind("QueueChanged",g);j.bind("FileUploaded",function(l,m){h(m)});j.bind("UploadProgress",function(l,m){c("#"+m.id+" div.plupload_file_status",i).html(m.percent+"%");h(m);f();if(e.multiple_queues&&j.total.uploaded+j.total.failed==j.files.length){c(".plupload_buttons,.plupload_upload_status",i).css("display","inline");c(".plupload_start",i).addClass("plupload_disabled");c("span.plupload_total_status,span.plupload_total_file_size",i).hide()}});if(e.setup){e.setup(j)}});return this}else{return d[c(this[0]).attr("id")]}}})(jQuery); \ No newline at end of file +(function(c){var d={};function a(e){return plupload.translate(e)||e}function b(f,e){e.contents().each(function(g,h){h=c(h);if(!h.is(".plupload")){h.remove()}});e.prepend('
    '+a("Select files")+'
    '+a("Add files to the upload queue and click the start button.")+'
    '+a("Filename")+'
     
    '+a("Status")+'
    '+a("Size")+'
     
      ')}c.fn.pluploadQueue=function(e){if(e){this.each(function(){var j,i,k;i=c(this);k=i.attr("id");if(!k){k=plupload.guid();i.attr("id",k)}j=new plupload.Uploader(c.extend({dragdrop:true,container:k},e));d[k]=j;function h(l){var n;if(l.status==plupload.DONE){n="plupload_done"}if(l.status==plupload.FAILED){n="plupload_failed"}if(l.status==plupload.QUEUED){n="plupload_delete"}if(l.status==plupload.UPLOADING){n="plupload_uploading"}var m=c("#"+l.id).attr("class",n).find("a").css("display","block");if(l.hint){m.attr("title",l.hint)}}function f(){c("span.plupload_total_status",i).html(j.total.percent+"%");c("div.plupload_progress_bar",i).css("width",j.total.percent+"%");c("span.plupload_upload_status",i).text(a("Uploaded %d/%d files").replace(/%d\/%d/,j.total.uploaded+"/"+j.files.length))}function g(){var m=c("ul.plupload_filelist",i).html(""),n=0,l;c.each(j.files,function(p,o){l="";if(o.status==plupload.DONE){if(o.target_name){l+=''}l+='';l+='';n++;c("#"+k+"_count").val(n)}m.append('
    • '+o.name+'
      '+o.percent+'%
      '+plupload.formatSize(o.size)+'
       
      '+l+"
    • ");h(o);c("#"+o.id+".plupload_delete a").click(function(q){c("#"+o.id).remove();j.removeFile(o);q.preventDefault()})});c("span.plupload_total_file_size",i).html(plupload.formatSize(j.total.size));if(j.total.queued===0){c("span.plupload_add_text",i).text(a("Add files."))}else{c("span.plupload_add_text",i).text(j.total.queued+" files queued.")}c("a.plupload_start",i).toggleClass("plupload_disabled",j.files.length==(j.total.uploaded+j.total.failed));m[0].scrollTop=m[0].scrollHeight;f();if(!j.files.length&&j.features.dragdrop&&j.settings.dragdrop){c("#"+k+"_filelist").append('
    • '+a("Drag files here.")+"
    • ")}}j.bind("UploadFile",function(l,m){c("#"+m.id).addClass("plupload_current_file")});j.bind("Init",function(l,m){b(k,i);if(!e.unique_names&&e.rename){c("#"+k+"_filelist div.plupload_file_name span",i).live("click",function(s){var q=c(s.target),o,r,n,p="";o=l.getFile(q.parents("li")[0].id);n=o.name;r=/^(.+)(\.[^.]+)$/.exec(n);if(r){n=r[1];p=r[2]}q.hide().after('');q.next().val(n).focus().blur(function(){q.show().next().remove()}).keydown(function(u){var t=c(this);if(u.keyCode==13){u.preventDefault();o.name=t.val()+p;q.text(o.name);t.blur()}})})}c("a.plupload_add",i).attr("id",k+"_browse");l.settings.browse_button=k+"_browse";if(l.features.dragdrop&&l.settings.dragdrop){l.settings.drop_element=k+"_filelist";c("#"+k+"_filelist").append('
    • '+a("Drag files here.")+"
    • ")}c("#"+k+"_container").attr("title","Using runtime: "+m.runtime);c("a.plupload_start",i).click(function(n){if(!c(this).hasClass("plupload_disabled")){j.start()}n.preventDefault()});c("a.plupload_stop",i).click(function(n){n.preventDefault();j.stop()});c("a.plupload_start",i).addClass("plupload_disabled")});j.init();j.bind("Error",function(l,o){var m=o.file,n;if(m){n=o.message;if(o.details){n+=" ("+o.details+")"}if(o.code==plupload.FILE_SIZE_ERROR){alert(a("Error: File too large: ")+m.name)}if(o.code==plupload.FILE_EXTENSION_ERROR){alert(a("Error: Invalid file extension: ")+m.name)}m.hint=n;c("#"+m.id).attr("class","plupload_failed").find("a").css("display","block").attr("title",n)}});j.bind("StateChanged",function(){if(j.state===plupload.STARTED){c("li.plupload_delete a,div.plupload_buttons",i).hide();c("span.plupload_upload_status,div.plupload_progress,a.plupload_stop",i).css("display","block");c("span.plupload_upload_status",i).text("Uploaded "+j.total.uploaded+"/"+j.files.length+" files");if(e.multiple_queues){c("span.plupload_total_status,span.plupload_total_file_size",i).show()}}else{g();c("a.plupload_stop,div.plupload_progress",i).hide();c("a.plupload_delete",i).css("display","block")}});j.bind("QueueChanged",g);j.bind("FileUploaded",function(l,m){h(m)});j.bind("UploadProgress",function(l,m){c("#"+m.id+" div.plupload_file_status",i).html(m.percent+"%");h(m);f();if(e.multiple_queues&&j.total.uploaded+j.total.failed==j.files.length){c(".plupload_buttons,.plupload_upload_status",i).css("display","inline");c(".plupload_start",i).addClass("plupload_disabled");c("span.plupload_total_status,span.plupload_total_file_size",i).hide()}});if(e.setup){e.setup(j)}});return this}else{return d[c(this[0]).attr("id")]}}})(jQuery); \ No newline at end of file diff --git a/public/javascripts/plupload/js/jquery.ui.plupload/css/jquery.ui.plupload.css b/public/javascripts/plupload/js/jquery.ui.plupload/css/jquery.ui.plupload.css index b5475c7..a819fff 100644 --- a/public/javascripts/plupload/js/jquery.ui.plupload/css/jquery.ui.plupload.css +++ b/public/javascripts/plupload/js/jquery.ui.plupload/css/jquery.ui.plupload.css @@ -40,6 +40,9 @@ div.plupload div.plupload_header {border-width: 0 0 1px 0; position: relative;} margin: 0; padding: 0; width: 100%; + -moz-user-select:none; + -webkit-user-select:none; + user-select:none; } .plupload_cell {padding: 8px 6px;} @@ -49,6 +52,11 @@ div.plupload div.plupload_header {border-width: 0 0 1px 0; position: relative;} border-right: none; } +.plupload .ui-sortable-helper, +.plupload .ui-sortable .plupload_file { + cursor:move; +} + .plupload_scroll { max-height: 180px; min-height: 168px; diff --git a/public/javascripts/plupload/js/jquery.ui.plupload/jquery.ui.plupload.js b/public/javascripts/plupload/js/jquery.ui.plupload/jquery.ui.plupload.js index c471135..3076e13 100644 --- a/public/javascripts/plupload/js/jquery.ui.plupload/jquery.ui.plupload.js +++ b/public/javascripts/plupload/js/jquery.ui.plupload/jquery.ui.plupload.js @@ -1 +1 @@ -(function(f,a,c,g,e){var h={};function b(i){return c.translate(i)||i}function d(i){i.html('
      '+b("Select files")+'
      '+b("Add files to the upload queue and click the start button.")+'
      '+b("Filename")+''+b("Status")+''+b("Size")+' 
      ')}g.widget("ui.plupload",{contents_bak:"",runtime:null,options:{browse_button_hover:"ui-state-hover",browse_button_active:"ui-state-active",dragdrop:true,multiple_queues:true,buttons:{browse:true,start:true,stop:true},autostart:false,sortable:false,rename:false,max_file_count:0},FILE_COUNT_ERROR:-9001,_create:function(){var i=this,k,j;k=this.element.attr("id");if(!k){k=c.guid();this.element.attr("id",k)}this.id=k;this.contents_bak=this.element.html();d(this.element);this.container=g(".plupload_container",this.element).attr("id",k+"_container");this.filelist=g(".plupload_filelist_content",this.container).attr("id",k+"_filelist");this.browse_button=g(".plupload_add",this.container).attr("id",k+"_browse");this.start_button=g(".plupload_start",this.container).attr("id",k+"_start");this.stop_button=g(".plupload_stop",this.container).attr("id",k+"_stop");if(g.ui.button){this.browse_button.button({icons:{primary:"ui-icon-circle-plus"}});this.start_button.button({icons:{primary:"ui-icon-circle-arrow-e"},disabled:true});this.stop_button.button({icons:{primary:"ui-icon-circle-close"}})}if(!this.options.buttons.browse){this.browse_button.button("disable").hide();g("#"+k+i.runtime+"_container").hide()}if(!this.options.buttons.start){this.start_button.button("disable").hide()}if(!this.options.buttons.stop){this.stop_button.button("disable").hide()}this.progressbar=g(".plupload_progress_container",this.container);if(g.ui.progressbar){this.progressbar.progressbar()}this.counter=g(".plupload_count",this.element).attr({id:k+"_count",name:k+"_count"});j=this.uploader=h[k]=new c.Uploader(g.extend({container:k,browse_button:k+"_browse"},this.options));j.bind("Init",function(l,m){if(!i.options.unique_names&&i.options.rename){i._enableRenaming()}if(j.features.dragdrop&&i.options.dragdrop){i._enableDragAndDrop()}i.container.attr("title",b("Using runtime: ")+(i.runtime=m.runtime));i.start_button.click(function(n){if(!g(this).button("option","disabled")){i.start()}n.preventDefault()});i.stop_button.click(function(n){j.stop();n.preventDefault()})});if(i.options.max_file_count){j.bind("FilesAdded",function(l,n){var m=n.length,o=[];if(m>i.options.max_file_count){o=n.splice(i.options.max_file_count);l.trigger("Error",{code:i.FILE_COUNT_ERROR,message:b("File count error."),file:o})}})}j.init();j.bind("FilesAdded",function(l,m){i._trigger("selected",null,{up:l,files:m});if(i.options.autostart){i.start()}});j.bind("FilesRemoved",function(l,m){i._trigger("removed",null,{up:l,files:m})});j.bind("QueueChanged",function(){i._updateFileList()});j.bind("StateChanged",function(){i._handleState()});j.bind("UploadFile",function(l,m){i._handleFileStatus(m)});j.bind("FileUploaded",function(l,m){i._handleFileStatus(m);i._trigger("uploaded",null,{up:l,file:m})});j.bind("UploadProgress",function(l,m){g("#"+m.id+" .plupload_file_status",i.element).html(m.percent+"%");i._handleFileStatus(m);i._updateTotalProgress();i._trigger("progress",null,{up:l,file:m})});j.bind("UploadComplete",function(l,m){i._trigger("complete",null,{up:l,files:m})});j.bind("Error",function(l,p){var n=p.file,o,m;if(n){o=""+p.message+"";m=p.details;if(m){o+="
      "+p.details+""}else{switch(p.code){case c.FILE_EXTENSION_ERROR:m=b("File: %s").replace("%s",n.name);break;case c.FILE_SIZE_ERROR:m=b("File: %f, size: %s, max file size: %m").replace(/%([fsm])/g,function(r,q){switch(q){case"f":return n.name;case"s":return n.size;case"m":return c.parseSize(i.options.max_file_size)}});break;case i.FILE_COUNT_ERROR:m=b("Upload element accepts only %d file(s) at a time. Extra files were stripped.").replace("%d",i.options.max_file_count);break;case c.IMAGE_FORMAT_ERROR:m=c.translate("Image format either wrong or not supported.");break;case c.IMAGE_MEMORY_ERROR:m=c.translate("Runtime ran out of available memory.");break;case c.IMAGE_DIMENSIONS_ERROR:m=c.translate("Resoultion out of boundaries! %s runtime supports images only up to %wx%hpx.").replace(/%([swh])/g,function(r,q){switch(q){case"s":return l.runtime;case"w":return l.features.maxWidth;case"h":return l.features.maxHeight}});break;case c.HTTP_ERROR:m=b("Upload URL might be wrong or doesn't exist");break}o+="
      "+m+""}i._notify("error",o);i._trigger("error",null,{up:l,file:n,error:o})}})},_setOption:function(j,k){var i=this;if(j=="buttons"&&typeof(k)=="object"){k=g.extend(i.options.buttons,k);if(!k.browse){i.browse_button.button("disable").hide();g("#"+i.id+i.runtime+"_container").hide()}else{i.browse_button.button("enable").show();g("#"+i.id+i.runtime+"_container").show()}if(!k.start){i.start_button.button("disable").hide()}else{i.start_button.button("enable").show()}if(!k.stop){i.stop_button.button("disable").hide()}else{i.start_button.button("enable").show()}}i.uploader.settings[j]=k},start:function(){this.uploader.start();this._trigger("start",null)},stop:function(){this.uploader.stop();this._trigger("stop",null)},getFile:function(j){var i;if(typeof j==="number"){i=this.uploader.files[j]}else{i=this.uploader.getFile(j)}return i},removeFile:function(j){var i=this.getFile(j);if(i){this.uploader.removeFile(i)}},clearQueue:function(){this.uploader.splice()},getUploader:function(){return this.uploader},refresh:function(){this.uploader.refresh()},_handleState:function(){var i=this,j=this.uploader;if(j.state===c.STARTED){g(i.start_button).button("disable");g([]).add(i.stop_button).add(".plupload_started").removeClass("plupload_hidden");g(".plupload_upload_status",i.element).text(b("Uploaded %d/%d files").replace("%d/%d",j.total.uploaded+"/"+j.files.length));g(".plupload_header_content",i.element).addClass("plupload_header_content_bw")}else{g([]).add(i.stop_button).add(".plupload_started").addClass("plupload_hidden");if(i.options.multiple_queues){g(i.start_button).button("enable");g(".plupload_header_content",i.element).removeClass("plupload_header_content_bw")}i._updateFileList()}},_handleFileStatus:function(l){var n,j;switch(l.status){case c.DONE:n="plupload_done";j="ui-icon ui-icon-circle-check";break;case c.FAILED:n="ui-state-error plupload_failed";j="ui-icon ui-icon-alert";break;case c.QUEUED:n="plupload_delete";j="ui-icon ui-icon-circle-minus";break;case c.UPLOADING:n="ui-state-highlight plupload_uploading";j="ui-icon ui-icon-circle-arrow-w";var i=g(".plupload_scroll",this.container),m=i.scrollTop(),o=i.height(),k=g("#"+l.id).position().top+g("#"+l.id).height();if(o'}i+='';i+='';k++;j.counter.val(k)}l.append(''+p.name+''+p.percent+'%'+c.formatSize(p.size)+'
      '+i+"");j._handleFileStatus(p);g("#"+p.id+".plupload_delete .ui-icon, #"+p.id+".plupload_done .ui-icon").click(function(r){g("#"+p.id).remove();n.removeFile(p);r.preventDefault()});j._trigger("updatelist",null,l)});g(".plupload_total_file_size",j.element).html(c.formatSize(n.total.size));if(n.total.queued===0){g(".ui-button-text",j.browse_button).text(b("Add Files"))}else{g(".ui-button-text",j.browse_button).text(b("%d files queued").replace("%d",n.total.queued))}if(n.files.length===(n.total.uploaded+n.total.failed)){j.start_button.button("disable")}else{j.start_button.button("enable")}l[0].scrollTop=l[0].scrollHeight;j._updateTotalProgress();if(!n.files.length&&n.features.dragdrop&&n.settings.dragdrop){g("#"+o+"_filelist").append(''+b("Drag files here.")+"")}else{if(j.options.sortable&&g.ui.sortable){j._enableSortingList()}}},_enableRenaming:function(){var i=this;g(".plupload_file_name span",this.filelist).live("click",function(o){var m=g(o.target),k,n,j,l="";k=i.uploader.getFile(m.parents("tr")[0].id);j=k.name;n=/^(.+)(\.[^.]+)$/.exec(j);if(n){j=n[1];l=n[2]}m.hide().after('');m.next().val(j).focus().blur(function(){m.show().next().remove()}).keydown(function(q){var p=g(this);if(g.inArray(q.keyCode,[13,27])!==-1){q.preventDefault();if(q.keyCode===13){k.name=p.val()+l;m.text(k.name)}p.blur()}})})},_enableDragAndDrop:function(){this.filelist.append(''+b("Drag files here.")+"");this.filelist.parent().attr("id",this.id+"_dropbox");this.uploader.settings.drop_element=this.options.drop_element=this.id+"_dropbox"},_enableSortingList:function(){var j,i=this;if(g("tbody tr",this.filelist).length<2){return}g("tbody",this.filelist).sortable({containment:"parent",items:".plupload_delete",helper:function(l,k){return k.clone(true).find("td:not(.plupload_file_name)").remove().end().css("width","100%")},start:function(l,k){j=g("tr",this).index(k.item)},stop:function(q,p){var l,o,k,n=[],m=g("tr",this).index(p.item);for(l=0,o=i.uploader.files.length;l

      '+k+"

      ");i.addClass("ui-state-"+(j==="error"?"error":"highlight")).find("p .ui-icon").addClass("ui-icon-"+(j==="error"?"alert":"info")).end().find(".plupload_message_close").click(function(){i.remove()}).end().appendTo(".plupload_header_content",this.container)},destroy:function(){g(".plupload_button",this.element).unbind();if(g.ui.button){g(".plupload_add, .plupload_start, .plupload_stop",this.container).button("destroy")}if(g.ui.progressbar){this.progressbar.progressbar("destroy")}if(g.ui.sortable&&this.options.sortable){g("tbody",this.filelist).sortable("destroy")}this.uploader.destroy();this.element.empty().html(this.contents_bak);this.contents_bak="";g.Widget.prototype.destroy.apply(this)}})}(window,document,plupload,jQuery)); \ No newline at end of file +(function(f,a,c,g,e){var h={};function b(i){return c.translate(i)||i}function d(i){i.html('
      '+b("Select files")+'
      '+b("Add files to the upload queue and click the start button.")+'
      '+b("Filename")+''+b("Status")+''+b("Size")+' 
      ')}g.widget("ui.plupload",{contents_bak:"",runtime:null,options:{browse_button_hover:"ui-state-hover",browse_button_active:"ui-state-active",dragdrop:true,multiple_queues:true,buttons:{browse:true,start:true,stop:true},autostart:false,sortable:false,rename:false,max_file_count:0},FILE_COUNT_ERROR:-9001,_create:function(){var i=this,k,j;k=this.element.attr("id");if(!k){k=c.guid();this.element.attr("id",k)}this.id=k;this.contents_bak=this.element.html();d(this.element);this.container=g(".plupload_container",this.element).attr("id",k+"_container");this.filelist=g(".plupload_filelist_content",this.container).attr({id:k+"_filelist",unselectable:"on"});this.browse_button=g(".plupload_add",this.container).attr("id",k+"_browse");this.start_button=g(".plupload_start",this.container).attr("id",k+"_start");this.stop_button=g(".plupload_stop",this.container).attr("id",k+"_stop");if(g.ui.button){this.browse_button.button({icons:{primary:"ui-icon-circle-plus"}});this.start_button.button({icons:{primary:"ui-icon-circle-arrow-e"},disabled:true});this.stop_button.button({icons:{primary:"ui-icon-circle-close"}})}if(!this.options.buttons.browse){this.browse_button.button("disable").hide();g("#"+k+i.runtime+"_container").hide()}if(!this.options.buttons.start){this.start_button.button("disable").hide()}if(!this.options.buttons.stop){this.stop_button.button("disable").hide()}this.progressbar=g(".plupload_progress_container",this.container);if(g.ui.progressbar){this.progressbar.progressbar()}this.counter=g(".plupload_count",this.element).attr({id:k+"_count",name:k+"_count"});j=this.uploader=h[k]=new c.Uploader(g.extend({container:k,browse_button:k+"_browse"},this.options));j.bind("Init",function(l,m){if(!i.options.unique_names&&i.options.rename){i._enableRenaming()}if(j.features.dragdrop&&i.options.dragdrop){i._enableDragAndDrop()}i.container.attr("title",b("Using runtime: ")+(i.runtime=m.runtime));i.start_button.click(function(n){if(!g(this).button("option","disabled")){i.start()}n.preventDefault()});i.stop_button.click(function(n){j.stop();n.preventDefault()})});if(i.options.max_file_count){j.bind("FilesAdded",function(l,n){var o=[],m=n.length;var p=l.files.length+m-i.options.max_file_count;if(p>0){o=n.splice(m-p,p);l.trigger("Error",{code:i.FILE_COUNT_ERROR,message:b("File count error."),file:o})}})}j.init();j.bind("FilesAdded",function(l,m){i._trigger("selected",null,{up:l,files:m});if(i.options.autostart){i.start()}});j.bind("FilesRemoved",function(l,m){i._trigger("removed",null,{up:l,files:m})});j.bind("QueueChanged",function(){i._updateFileList()});j.bind("StateChanged",function(){i._handleState()});j.bind("UploadFile",function(l,m){i._handleFileStatus(m)});j.bind("FileUploaded",function(l,m){i._handleFileStatus(m);i._trigger("uploaded",null,{up:l,file:m})});j.bind("UploadProgress",function(l,m){g("#"+m.id+" .plupload_file_status",i.element).html(m.percent+"%");i._handleFileStatus(m);i._updateTotalProgress();i._trigger("progress",null,{up:l,file:m})});j.bind("UploadComplete",function(l,m){i._trigger("complete",null,{up:l,files:m})});j.bind("Error",function(l,p){var n=p.file,o,m;if(n){o=""+p.message+"";m=p.details;if(m){o+="
      "+p.details+""}else{switch(p.code){case c.FILE_EXTENSION_ERROR:m=b("File: %s").replace("%s",n.name);break;case c.FILE_SIZE_ERROR:m=b("File: %f, size: %s, max file size: %m").replace(/%([fsm])/g,function(r,q){switch(q){case"f":return n.name;case"s":return n.size;case"m":return c.parseSize(i.options.max_file_size)}});break;case i.FILE_COUNT_ERROR:m=b("Upload element accepts only %d file(s) at a time. Extra files were stripped.").replace("%d",i.options.max_file_count);break;case c.IMAGE_FORMAT_ERROR:m=c.translate("Image format either wrong or not supported.");break;case c.IMAGE_MEMORY_ERROR:m=c.translate("Runtime ran out of available memory.");break;case c.IMAGE_DIMENSIONS_ERROR:m=c.translate("Resoultion out of boundaries! %s runtime supports images only up to %wx%hpx.").replace(/%([swh])/g,function(r,q){switch(q){case"s":return l.runtime;case"w":return l.features.maxWidth;case"h":return l.features.maxHeight}});break;case c.HTTP_ERROR:m=b("Upload URL might be wrong or doesn't exist");break}o+="
      "+m+""}i.notify("error",o);i._trigger("error",null,{up:l,file:n,error:o})}})},_setOption:function(j,k){var i=this;if(j=="buttons"&&typeof(k)=="object"){k=g.extend(i.options.buttons,k);if(!k.browse){i.browse_button.button("disable").hide();g("#"+i.id+i.runtime+"_container").hide()}else{i.browse_button.button("enable").show();g("#"+i.id+i.runtime+"_container").show()}if(!k.start){i.start_button.button("disable").hide()}else{i.start_button.button("enable").show()}if(!k.stop){i.stop_button.button("disable").hide()}else{i.start_button.button("enable").show()}}i.uploader.settings[j]=k},start:function(){this.uploader.start();this._trigger("start",null)},stop:function(){this.uploader.stop();this._trigger("stop",null)},getFile:function(j){var i;if(typeof j==="number"){i=this.uploader.files[j]}else{i=this.uploader.getFile(j)}return i},removeFile:function(j){var i=this.getFile(j);if(i){this.uploader.removeFile(i)}},clearQueue:function(){this.uploader.splice()},getUploader:function(){return this.uploader},refresh:function(){this.uploader.refresh()},_handleState:function(){var i=this,j=this.uploader;if(j.state===c.STARTED){g(i.start_button).button("disable");g([]).add(i.stop_button).add(".plupload_started").removeClass("plupload_hidden");g(".plupload_upload_status",i.element).text(b("Uploaded %d/%d files").replace("%d/%d",j.total.uploaded+"/"+j.files.length));g(".plupload_header_content",i.element).addClass("plupload_header_content_bw")}else{g([]).add(i.stop_button).add(".plupload_started").addClass("plupload_hidden");if(i.options.multiple_queues){g(i.start_button).button("enable");g(".plupload_header_content",i.element).removeClass("plupload_header_content_bw")}i._updateFileList()}},_handleFileStatus:function(l){var n,j;switch(l.status){case c.DONE:n="plupload_done";j="ui-icon ui-icon-circle-check";break;case c.FAILED:n="ui-state-error plupload_failed";j="ui-icon ui-icon-alert";break;case c.QUEUED:n="plupload_delete";j="ui-icon ui-icon-circle-minus";break;case c.UPLOADING:n="ui-state-highlight plupload_uploading";j="ui-icon ui-icon-circle-arrow-w";var i=g(".plupload_scroll",this.container),m=i.scrollTop(),o=i.height(),k=g("#"+l.id).position().top+g("#"+l.id).height();if(o'}i+='';i+='';k++;j.counter.val(k)}l.append(''+p.name+''+p.percent+'%'+c.formatSize(p.size)+'
      '+i+"");j._handleFileStatus(p);g("#"+p.id+".plupload_delete .ui-icon, #"+p.id+".plupload_done .ui-icon").click(function(r){g("#"+p.id).remove();n.removeFile(p);r.preventDefault()});j._trigger("updatelist",null,l)});g(".plupload_total_file_size",j.element).html(c.formatSize(n.total.size));if(n.total.queued===0){g(".ui-button-text",j.browse_button).text(b("Add Files"))}else{g(".ui-button-text",j.browse_button).text(b("%d files queued").replace("%d",n.total.queued))}if(n.files.length===(n.total.uploaded+n.total.failed)){j.start_button.button("disable")}else{j.start_button.button("enable")}l[0].scrollTop=l[0].scrollHeight;j._updateTotalProgress();if(!n.files.length&&n.features.dragdrop&&n.settings.dragdrop){g("#"+o+"_filelist").append(''+b("Drag files here.")+"")}else{if(j.options.sortable&&g.ui.sortable){j._enableSortingList()}}},_enableRenaming:function(){var i=this;g(".plupload_file_name span",this.filelist).live("click",function(o){var m=g(o.target),k,n,j,l="";k=i.uploader.getFile(m.parents("tr")[0].id);j=k.name;n=/^(.+)(\.[^.]+)$/.exec(j);if(n){j=n[1];l=n[2]}m.hide().after('');m.next().val(j).focus().blur(function(){m.show().next().remove()}).keydown(function(q){var p=g(this);if(g.inArray(q.keyCode,[13,27])!==-1){q.preventDefault();if(q.keyCode===13){k.name=p.val()+l;m.text(k.name)}p.blur()}})})},_enableDragAndDrop:function(){this.filelist.append(''+b("Drag files here.")+"");this.filelist.parent().attr("id",this.id+"_dropbox");this.uploader.settings.drop_element=this.options.drop_element=this.id+"_dropbox"},_enableSortingList:function(){var j,i=this;if(g("tbody tr",this.filelist).length<2){return}g("tbody",this.filelist).sortable({containment:"parent",items:".plupload_delete",helper:function(l,k){return k.clone(true).find("td:not(.plupload_file_name)").remove().end().css("width","100%")},stop:function(p,o){var l,n,k,m=[];g.each(g(this).sortable("toArray"),function(q,r){m[m.length]=i.uploader.getFile(r)});m.unshift(m.length);m.unshift(0);Array.prototype.splice.apply(i.uploader.files,m)}})},notify:function(j,k){var i=g('

      '+k+"

      ");i.addClass("ui-state-"+(j==="error"?"error":"highlight")).find("p .ui-icon").addClass("ui-icon-"+(j==="error"?"alert":"info")).end().find(".plupload_message_close").click(function(){i.remove()}).end();g(".plupload_header_content",this.container).append(i)},destroy:function(){g(".plupload_button",this.element).unbind();if(g.ui.button){g(".plupload_add, .plupload_start, .plupload_stop",this.container).button("destroy")}if(g.ui.progressbar){this.progressbar.progressbar("destroy")}if(g.ui.sortable&&this.options.sortable){g("tbody",this.filelist).sortable("destroy")}this.uploader.destroy();this.element.empty().html(this.contents_bak);this.contents_bak="";g.Widget.prototype.destroy.apply(this)}})}(window,document,plupload,jQuery)); \ No newline at end of file diff --git a/public/javascripts/plupload/js/plupload.browserplus.js b/public/javascripts/plupload/js/plupload.browserplus.js index a5b20b3..77a0f11 100644 --- a/public/javascripts/plupload/js/plupload.browserplus.js +++ b/public/javascripts/plupload/js/plupload.browserplus.js @@ -1 +1 @@ -(function(a){a.runtimes.BrowserPlus=a.addRuntime("browserplus",{getFeatures:function(){return{dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true,multipart:true}},init:function(g,i){var e=window.BrowserPlus,h={},d=g.settings,c=d.resize;function f(n){var m,l,j=[],k,o;for(l=0;l0){q(++s,u)}else{j.status=a.DONE;m.trigger("FileUploaded",j,{response:w.value.body,status:v});if(v>=400){m.trigger("Error",{code:a.HTTP_ERROR,message:a.translate("HTTP Error."),file:j,status:v})}}}else{m.trigger("Error",{code:a.GENERIC_ERROR,message:a.translate("Generic Error."),file:j,details:w.error})}})}function p(s){j.size=s.size;if(k){e.FileAccess.chunk({file:s,chunkSize:k},function(v){if(v.success){var w=v.value,t=w.length;n=Array(t);for(var u=0;u0){q(++s,u)}else{j.status=a.DONE;m.trigger("FileUploaded",j,{response:w.value.body,status:v});if(v>=400){m.trigger("Error",{code:a.HTTP_ERROR,message:a.translate("HTTP Error."),file:j,status:v})}}}else{m.trigger("Error",{code:a.GENERIC_ERROR,message:a.translate("Generic Error."),file:j,details:w.error})}})}function p(s){j.size=s.size;if(k){e.FileAccess.chunk({file:s,chunkSize:k},function(v){if(v.success){var w=v.value,t=w.length;n=Array(t);for(var u=0;u';function m(){return b.getElementById(j.id+"_flash")}function l(){if(p++>5000){o({success:false});return}if(!g[j.id]){setTimeout(l,1)}}l();n=i=null;j.bind("Flash:Init",function(){var r={},q;m().setFileFilters(j.settings.filters,j.settings.multi_selection);if(g[j.id]){return}g[j.id]=true;j.bind("UploadFile",function(s,u){var v=s.settings,t=j.settings.resize||{};m().uploadFile(r[u.id],v.url,{name:u.target_name||u.name,mime:d.mimeTypes[u.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream",chunk_size:v.chunk_size,width:t.width,height:t.height,quality:t.quality,multipart:v.multipart,multipart_params:v.multipart_params||{},file_data_name:v.file_data_name,format:/\.(jpg|jpeg)$/i.test(u.name)?"jpg":"png",headers:v.headers,urlstream_upload:v.urlstream_upload})});j.bind("Flash:UploadProcess",function(t,s){var u=t.getFile(r[s.id]);if(u.status!=d.FAILED){u.loaded=s.loaded;u.size=s.size;t.trigger("UploadProgress",u)}});j.bind("Flash:UploadChunkComplete",function(s,u){var v,t=s.getFile(r[u.id]);v={chunk:u.chunk,chunks:u.chunks,response:u.text};s.trigger("ChunkUploaded",t,v);if(t.status!=d.FAILED){m().uploadNextChunk()}if(u.chunk==u.chunks-1){t.status=d.DONE;s.trigger("FileUploaded",t,{response:u.text})}});j.bind("Flash:SelectFiles",function(s,v){var u,t,w=[],x;for(t=0;t';function m(){return b.getElementById(j.id+"_flash")}function l(){if(p++>5000){o({success:false});return}if(!g[j.id]){setTimeout(l,1)}}l();n=i=null;j.bind("Flash:Init",function(){var r={},q;m().setFileFilters(j.settings.filters,j.settings.multi_selection);if(g[j.id]){return}g[j.id]=true;j.bind("UploadFile",function(s,u){var v=s.settings,t=j.settings.resize||{};m().uploadFile(r[u.id],v.url,{name:u.target_name||u.name,mime:d.mimeTypes[u.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream",chunk_size:v.chunk_size,width:t.width,height:t.height,quality:t.quality,multipart:v.multipart,multipart_params:v.multipart_params||{},file_data_name:v.file_data_name,format:/\.(jpg|jpeg)$/i.test(u.name)?"jpg":"png",headers:v.headers,urlstream_upload:v.urlstream_upload})});j.bind("Flash:UploadProcess",function(t,s){var u=t.getFile(r[s.id]);if(u.status!=d.FAILED){u.loaded=s.loaded;u.size=s.size;t.trigger("UploadProgress",u)}});j.bind("Flash:UploadChunkComplete",function(s,u){var v,t=s.getFile(r[u.id]);v={chunk:u.chunk,chunks:u.chunks,response:u.text};s.trigger("ChunkUploaded",t,v);if(t.status!=d.FAILED){m().uploadNextChunk()}if(u.chunk==u.chunks-1){t.status=d.DONE;s.trigger("FileUploaded",t,{response:u.text})}});j.bind("Flash:SelectFiles",function(s,v){var u,t,w=[],x;for(t=0;tFW`d9xD-%9LDX^AaYG%~(WI5)Hty@VucI@g{eRDWFKG(s z{O14p{Xd_7?YYaj=iYnnIrpA>&P|FdB{eBYBV&?u0F$b6_md>)5BbkANjkc_H9TWs zRZY>#&W^754AhR95J@CrGfGQWtXMI5#i5g<-EE~)jy&?n(z2T`Iq9nemE8$;R z(iJ~=!b~whRVW_pZjU9}qg_Q*_XnaqiDM>AFh*?+W(JM*ba#j$TZ5&cj!8)MnWD2n*rQALkhXz=0%uB9?vLc7rAj_HICz3hhK9`mg*`u05B>@3eqDZmaLH^5J=%}e`jclY)6}p#0XLeBNDKBYo#=d{%jB&H87R zC$72tS!Hlger-^GVo;U}^<~tSOVV3l>Wd0gTHW`4hWxFkt;KIwNXE|>{yBFnnDYIs zXQT7h@A&ZBS-0eNd=W@~J?p4PwmjOdeLU;IqNjd)>hW*SYTDNQM&s7htaB?`-cKIX zKP%u~a^zi4zccHZa^5zug;3C z80dO1dDpC&SBApZ^?oqx$kL`Q@0|AXtTiS{Ssra~HPEvV%JU%EvKz+s;11j zpgY>u9g4?A%~9*C?(U9ui%MR7DA?28o>(=68UcMx?p)bExxEux#26^2dS!cffxkN* z(ur)f)F_J9Du2SSk4!z&nszsetTKX4DO#19_KuL*7dR;tOsL03qa7iCm#Lz=+rP>@ zzo#=0>bB~fcZCv8B3&2?hq^;u!I0eEm9W(GbOmV#+I6CyM0-cvdhDu1NQ@wO)(>e% zG;Z)b>e%)~r$0vQHFkBhceW=&t-3t)Fu@3(#+Yp)3gQ;?A4Mewpg+I^{vgy=q zp=hUho*yz^>8gx&M7tZh{ataI)4C8V!ink#S%8dl_E2R6f0>xdXv6F8YV|C&JV3jh}~f84s}MCiy3S|?1FB=l`9?+tQ#y_!|mP1 z$Re$Rviyl4EMD#~QBoI6v#|(Uv(9KosMXf26Et>r*p1=>eh`zlXOT8_s4LVxQr{F69Ua5aapy3eOk#=o!*Ket)#iA#r#lEmws(c2=H?ac zt%-;V>9@B<5|-vudi))*a%wXzA6(4UGhN@-jMh!@puZ#JY;FrB#Hh6xD>vFTWFZzp zo2%pn^JnJ{=K&bGIneDmww(^;LZNeoII+`MLf#b#+mI+n4evhGphm-C?3B2I;}o|b zq1!jER4=Kmk!LTcSJ6hqR*b68Wp0nxEvTODB$jKce0py?&RVxWm}tNtW+0H4?8`*X z_(c;rj5>cGWaEZW>}w!*?H;;!H;0BJl;*bfuspjR2N#E;Lzq=ZbAk*j4jvhs=0Ij# z+fdOgoSTr+3KQ*)cInEjjM8yQgxsyh_-TYQjS%d(BmVfXEtaqEykR)|3b51A-QLy) zCP}<`!}UcdOLM2c`($iUmm%yq`boDz6X{|+Q*^d>LA&Xi34Uo?D7SOvTAN#g%^f|R*xImm&0XEp5Ffc$1IFzM#YY?XV5B>`N0cvYjk6wnA*RMqGrCC=#yhdcdU z4S^1_Rk5B#Xb2;;Txm?MdtW((I=;t`?L&t9b9@UMl)1k7vrYAsn(G@D)*5Db$O^%f*qejGJEKM9WR>Y&&ds(hwOy^D zl{Od{niU;QB+IyMX#d*SIem={&AyuEdDZiL3zrgVO0I#b zs)catYkl+U2|aamZSy**jM@r$=%b;nPaJnp zgy-w3sH&>2YHsi~*Edwmt~R2u_$u5dotAWv#ft6d5M5Cf?ew>I*>qood<+}5Bs@ZL ze8(B99$Ill{h|7*13mDK+q*^#3twjF0fsglS*7QCv_)GG^Wj1nP9)ZZi>rNkNGBZg zD}(Hx9aqlS)2pkjm|s~v*IZvcx4N>yR!G|#QBX)yVz>JlyWhJ7{hvxXZS}S|HdgcW$!}JI11y8XHWNb89P)v(580 z)?>^27SFfn#l{7;nrN^`_ZKWRzRJe>=GysIy?}mp8Xg)A_=6|wq0I3;p`MUZ3mf97 z6ro7Hh?dL=Kkoa4Q+K}?=oZy1^xtY1c1QRytu|3^h$gV5jWAv91Sy1u1GF+>UKnbt zUK!&jp2*tN?hv#S3^|8|@D}n8=`^XcV{zd&=^g{MxeV{$IC}Y6!9W^kS+LMIdtr5b zy`|RIEbNP`zPhq;VQs@wy*eUoC$cSsQ;!KlBHW8BT@>8Jdg2jDa6v#uOd{A7t|s`Z1Z>cV%Yu^M+*`;v~r5GqPwk!9tqQ!sT3d6u`Eo7 zP?PnM61sEf9Ck)>_c~F9`#y-)OmL|hk%>*1R}qEgo;Z0TnWx{K6l?n(EY>8=-P7F> zPr&ExG(uThv@89l1OIopTCLG8W9y8FcJ2MVla~p!GBK8|apByBp;O?sBpfI%@^`lj z7r>q2vRT-txP|mU+I0{0m={V!qOHmTUwwnQQk>+*+n|}~E$QGFn^yF)P=HL^ z(~%up%O{6cVQHDon2xlSc@(;5!fPcMYVWY5Lu`{U=u~YN4@5A>-3eVJ`FpJuevJ{3 zEA$Ych*uc!TQ8*R634G%Ij&(6fCISJ#)cYlZ}hNT#E1y1;~||JqmF}bg+%m0tkg?% zVYAeBax#2jHr_;HI3`bb&vBk;jfl>>66$y{(lHi2k00YQL}Y{tS)$f4BTDd--i?81 zPgg7a7X_SzRG63stcsVEaHq{tsYeGT6doLqQDrH4OC_Y4ql(hKj~Sn)rR{16az;@W zrQrS`c92u}CTW>C4?3zSY;1{R4svBrIHSmxaSh|6vR~MvFcgUreLKrot4&u3>EDuO z$kK{4MxX?{JHpNk^Kg~|)&`t>-697K+bhHO&NYIextUAVN&*t|7eFw_(>V*bhgvIf ze&gcJXW8W988e)^15&9!mz&{S!&O#Wg&ac87>q2uMLoK8=%n@Hp~0?Gin~l9Unplm z`^r$qk}4=bm?gcwG*dU}{!M5o)HgUbbb= z{YZNe&A7(>9S&Su(Rfd{K&mxH%ux&fKNbqLF7ylQkXs+YMIP!FxJ494IV)&Q=q758 zdE_F2l5TqYTyg<)WteKnC}-xNX2;?PZ9jhpUBmABAWna!KSo2*_Hq6zCf+V)gZ7x+mmUC6sBI5GJW zaJnp2{#6~+&0f>d4mUO)q%+ab13_Y2Icjjx6s^Fn2C1vEBihrtDqS^UVXYxgx_?o) zqbJ?JXkt~-;fNfHN{XgUDJwf}5>XYcAXyG4n_qO;5kz+QVMH~dG8*mJ7un*XLyr`r z9d#*(qEfCp{BXJI2*5PJ;br;QSVeJY zpgmfYFa(k>_DE4{duvfw6l-qp4o!CGI4ZYJ9tZnPpXzmoumQS^p^3B=yNKHQai=27> zF1QDoxb1jwVe>7S30b88Z@kXeM&&8i+xH#@T4$C_=KH~D6z8`2b?IgqOoH+2)W zIS@tE-O2o{)hhadpAfmp9Tcpagx_EbMq{glBNR95PLxT!An@qPGMqxCV!?tb)_8kc z7cDoWkP{-;R#p;zsvU)9#G^H}bE}ow1r3!ZqCV8QAQDYPg$-D~Zli9)Ri()7niDqu~5y&U1|4^i0C4Tny((0LJ|RyGYe zmZoq=6fz8TwYK}a%+(^Z9a}rQxq5z8ZN+@&+}ehQxz$FkAnTLs8JP$A-0U&Mo1aP; zaA2NYTQmJge`6slR0^$y&cYFeqY6hC?q67Bl15Dc91Hl(sAWj~g~3sw!uC-oqr3|6 z2f+EP@B%jKB8FlwE8M~?H?vVYsCFkCbuZ;_vr!)-w_L;vFXM$9c;PkNB#m@hHu2FD zMsMb$Z{VYEj2cGwA{)7djo!gV z->YNZW}|;rkblhb8E4~M4pyp^O|efs^svK^m^R(!Vlz;69yM(`Q*1|%n8J?9pE(Pa zeEUdNSYA*up`mZVAZCnibu7K zR~-{o%OurNteOr{9bVO3qBNs3=9HBaZ(*-RjR96b=9b@*{W-f>Z(;;b*k$))iqaj%~M_T zRhLh7El^#@tFDErt6p_AsH{w7jVfEDvc)P}qOzqbJ3(bftL#LTHL1BiHFtr^npM`K zvVfZ3s*VV&tW9MRwcsRmWQRJkQytl*j*O}!W9rCLR7 z>QpuVw<`Ocy5DJP!SB^E0d>r3rj9usu!gDZaFv~b>`cH~z*#__4LApIF5o<-j=hjs zFJ??VU>#ErJViZlJy4gRcq!mAz~$(+0dNK2O4P3cT#fP{0oMSo1zg9}g6o-Dv=LCR z7M-fHO~7sj+yJ-{a1&F#{fG4j{}|nJPG&<;3>eD0-ggr5BMwK z1;C4dBp?Oo1M~x40_*~Smk9%a-GG+?uK->Jyasq3@HfC4fHwhef!}uk?*iTfybt&Q z@FCzMrWSXp#Zk5R?@z*&HE0OtbEaw*&3~{0VR;;4Z-3fO`P<0`3Fc4|ss9 z{6XY@20R3K81M+-QQ#j#z7y~`;0eIffad_u16~9qxjLmE`Ky4}0Ivi7#?>;fTJ{E- z-a_$hpxy<%hw=x24*?&c{&%jLKH=6+xorI$&=2^EV_9FL?FDWvm(?S`L-BjSKL9_V z+mBe`zX1OR`~=*ae2k(_IgeY{$ckEahOCyI30Mm_3vjlqn$7{73%CFSUkJDea535l z)&nj9Tne}ha5-QD;0gdv`<2M90{PX*f5zm^YS|xAyauRikzWV6Ubg;`Db`+Dv2Fwh zY!h&ha2X_AHVD`Z+8Y2j0)G?oEy%YbzZo3ef_$5-PPrBN?SMOhy9@a}z}<`dVZdXc ze;n`x;7Pz=08as)2E56wIVP(MCixk8jM@5kZni!vo2{*?^=@vl-UAcOo|Az_{yc{I zt8D$9MK!-5kFlr~&&p~=5&&K+z-vVc1bwLY16~5`lC7JV#kv`A1K>u6L0$n3)K>vJ zQ_%~WS7qyKGVrgXO!yw_N!BqoOlY&dA=|7gt?HDwg;#W?_Fh#!}@{Zu)fCu$lsP7);Cf90_E!&X8cMS@iuE4Gtr~8>e=4f^Um*H7;3s7aF2g~T zR-3H9RmbF7FJXC)(6=@v#<(QDz{!{_S(w9-E+bJWF;QZsM9m}?O01OFD6vbNdT^r~ zN;2czfpMK#6L98oQi=vKPx^=Jpws10nY#@-i8&o*5n&wKU zH5g2f0`~Y27o6*S$BRDDFVBlIZ50! zrA#dlFYwtM3}24qLdB(Pfs5V1^YdMqO_{x6SU$K@^7C_PHfFc)xu|{8FseGzRhi`% z=I_-HL^){2?)ZffxXa~AZ@AoH1DaU@C~1?Ja$K$)BGZW(8)Hz5B)wrd%gw4~=4U!n z3Z$a2Lh2+EY(r=Q`sTc_a1WmIiCk!j)X2@5G4}yF3+bP{{l{8ydJ7MbqywcQNg5{| zBuNKL8g@OCJ(6UX#*-{3kZvZ@KAJ?OVo7pKhcHR@GD#_6l4&xeR>~xI8Q7e{q`axn z>7h&-aTt>d4rfx~5lk9spJsJR2aK6ceUGG}X3)q-QF1gT$51kpl38R1%4t~@M0YIV zDydXOhq0QH8cJr#vCV0`_JXl*m+Dka6XfYd`ud@fJvptGwD!^ zY|W95;0tNU`f<`Uo7L);j#e6IxJF7AacRb4u%*h@JZTnRLIZ=aeCagn2&q~=ftLT9 zaZ=@pOsZ;HYAuxJ*q0Hf%^-9*T8MK$B>_r;lGG}NNX}uRX=74tgh_SnOgjD~hjov=ns42zLri+)YWGk_3}Z=wZ@tmNV(Z6-;Vc$)shgnAChK zlUjbuB>(T26c`~}_m{#9+_s(OupYpEf3o`zk~B?P&4`WDk*;CV8OREyGZ~3soP(tETqIrRA&LHmNwM=$IOPH)-4`N>UxXxaF>_dpq?Oinj5u4*NF_8VqlPPx{%@a^hoO%zmbW(dXt`Q!BFEd)FrHBE6%V> zx>=;Rh;*Asw~O>vk?s)bZ6dv0q<07g{v^^nMS7P=?-uDjBE46n_lfj=kv<^O2N`Mk z&pIa$Q6|d|ivk#1m*BfWw>f%HoDB+{$cUyxqSo`)N?+HP_&2ec z-q4r*rr2L^iT1a##yb(#Fi7uRr1v1SVUXVYNbf^x@% z>T@<{$4ayLH^3Dt^0z=Ct7qR~f`+A1h>Ho%=lTQ}aMsSgCsLEVT+pn*(ZTWf2T`r# z2%kW831=5G?D`D$N5Wpp*%n6ICT|qmUt!W=%&tgmI@WaDl9HvJA$N$?&>e$+DJzG4GW;<@-0|z`{4P+9o8+ zl8dCsq-3qs@)OI0)0FfbBDvuwH2tPU4*$%O;X{1CA#&Not+w?Tu<1gUX}OT`mOk#|Q8HYFE@$#&xCDdgwYA76Q_bg`!C}nyPP*|pptI`))79S4@tvy$P%)8(U+ z;i*(kdjG(&?E_6mc%Okb`@(hJXL%~TiF+5N!kc-c>^p)6P^}<8bQt+x4e}R2 zegkj0k$Y3z+sBWkyyhm(8@b-qvUk^){)b(yW^_GpSl3-f*FY+~Bu!@9n`~eoWcIzu zb{k|Tros!;WRAW0ec2#;@jvkEw4v)U!@9omAG&&*Q{hG4mQ;9gqoNPu!u*aq*y7@W zvXGSOWFe`8wJ6~&yxa_Bikd0Bm6xmOnmK$kFSn#?YWOQwZXK$9&B|@*nkD=xE4Qa> z*6=O7+>x%?!e6p-CvDbk0uipG)PDwV*^VXX81I{U({bKKBA<)BqDf%Q`f)(}izYm?pk4o?>E4r|4a29^GR;@2#SMec=-3Ezh99VQr}IyT<3{NP^kLpYB zl--N%sRbn&3k=`Gy`N>*?-g6>3u8-t$!qT8yf>@;eqMJsmuVG*d6a}AQwby_ zkv|R&lE5bjp^%I;$%TL%A`^>!fHSu$swhhCgZCmU9!^#)$l$&w%lgVrkcxK~mmSi{ zlHPB4h-14v$bEn2e5^%wA83%UUnH5$*Ri+ZI6TB37Nv9eBm7Y=>ym#=NFLIbbEQ1l zWVIbcM)9B&RxA!)aZt%ac$tJ&JprY!-#3pARz8FI%p*!qo?zEgbG$TX0^*4gWFALm z#wg0C>k;LX&ft^Kv4Eqa9nHq=1ymuIbyUhfA=&4j2-HZEEQTlB{ZHsZ23USdpDJr7w1|fX;R92 z&#>B{s4d@}@~)Oq(xlsh3hmR=W$#DWr&vJEQ=Dxm&Xqylzo9sf^1kKbR+|)1fH2cI z;ivfqEM}a{%;xHr9Xvc;*uj=(xbQ~=f{a+pvsnnTjV;e*A;>(oJTDMf&Oxf#Y(BZ^ zuYB%bxiqOs5hG5RK%}!oQm2?!D+5jEvpyeUp(dL!j1zEEE}`ZsN~-H@=GC^{C}N|9 zs~!!S0!qN-ud(!v*>odNmp4h{eo}Q%(OcF8P43CUh6Ny=1H{A~ z4)6JL{wQHaXaI*!N+rGfRFjhX+~6Py60^O)>t4WY`XW1&mLw0SxWA8PBn0#Kr;8^4 z642|ctRwF0I1|DsKS&n?rqTBbisGtdUFLuw-)EY_n#!%;4f=Mn{LY+iym)edT5H?;SIiwI-sLF zUnihe11-ke!CT(q{tC)p=KfBwM8Kb>H3;jf|m9qcdUzT@dlXAqk8^_oifMoxV}KnzeQFLN zv^5Li-4jt_l2yw)hObq$x(SDYT&|`M_}mXLbVw?n2#xbB+eOR>>ji6d2ni4lY1$Op zjru)%)OB;17sI}nnwo^#!b|F!m_A>J48QCXRz6Ah#AMw|D^AyhKX=Gb4gQ=rT}#iM znKUz-uT6GaXub~KT0t^0ZcYe{=SlBkJ2pv^$;#xU*P2ZEJ|r(rDpeG-6vz87Lur`s}Me3lgj!vg;dt7>!voGT_0S)e?IM6ea6Z}Ueg_H3S z_s`KwA9MfFINeThx-(Z0&A!)(2O9z-uAMmXK(+<<53xC9+jPEkhRaKcy`*upK;zPn z`eb4^Ib<7hL|ir9_jish>)!ite}coED}9QyohyBYqn#_gg`@41Uc=FL(qXr9>1`bC zT%9PM1`9WFT?(yLr@iQ}J>CqWnPJgH2@J@vbywF51mbNq(C;5A=jfdiTQ zsBfRQk%?|2GYqa7w~^Um%G^eod+sY9evc1bbV0hX0t(S!8sFDkYWaryzNIxvQ}(=t zrtXP2)QqjNPNl7~tIW8M80Go8%b%~`Qs3#f)LL;zLFr~uQAL{BK1gkPAA9YP#Jk>S|nS&afQi3qrS!W`^_{JMOJW=n?4i}Iaxzo0~1xb1oc9dxETxPGmP zo%J3xTGMOzw72Dr$oRKL>&Aqe;_Pru!uLJLQkuTwb>HDe`YwGV(UvJM({BJp56h;c zYa%S0Dr(8_3@knwuE;%Ezx%w~<(hwRrVWm86T(3CBH(dk>N}`zly8%pegLnv`aN6o z182RxV#Lb4{W2Zy!1Akly?>%0rdqU%JCxdRk1|6!2=&tUXfiw}uN-cOG=S2Y-R?=^ zy6*2gKqv>^_>a8lpW==~J7sjt{>eFo6H{fLo5W2mTQE#T-U$p`c<+{*{>AJ5#ig2m zbE#J-*L$B#+V$QqlX}yNvJVaKeL(g;NPdTGEis8l8sAe%91@_S}T+9aTsD3Wdz*+vt%Q9nYM%>QnBOsAI=e}lqJiSeZssy zvdAZF*{96=FBbWfE&Ggle`1l(*s{-=caTLsXUo1|-qU&H3o;u=C9_u+GBa`%kCo^V6Y|jNc_3vs=*NNY2cv1G9h0yl3#pmo)MW z##D=lf*R2Is7$R9wWCd{YAK+AsSn|Pt&$9wA`QuaIns!Z$6y}wSj>L5Y)o_xz>41` zvWU!VAeu?*#R$v3V&1hp@)cY5HS?a$BVW_hvnb@Ui$yI-rfLaQo?enFmb9c!r6pDD zy(9$_sOWI)Q0P}_GMmh!iT4w{f9EOhvvOafemGKn^TnH96-jYsvP_e9fe0HbK7gY8 z033p*3vq@{NQKXp!{^EA()lv^h&x%Tui$lr{fnf?2^giCGo5X!BU}WkCav-dhE#3> zhfC2mo5)E7-!RYMtjITP*|(zbEvvE`cSoqTh#O5OTZNfDiedIWKBd` z?LgR+J5rKxlR(?#?jZS$LF3|H2`J$U<(8)KH|(}z`Uo2lVfZ3Ke9Laj+q2sjnQqBc zPjRlQlV2$JL|T%4Lx_uj@F)9$pb%3#p(hf6pPLM~2;$AjuwM{uuDMv|J-A0Tn!Awt zqPVR%&#n)%PWE2Uwr|MG8{*;bgP|OsaAIq+LGZ= z-c(?a*IX(~k!BiloEQ?@rs*=78ZMI=d9W|a$1*RYM@RqVGR-MT$8m149O)`q;yKa=S(5XlD`ZJIO`5MN7R$Ve z14XMx?WPFjO1b4~IlP{4Zn;X7F5$ZF2AW3Ijgmmr-`D4B<0-WD7Znwa_npJcDEs~> zOUtg7Q~s;T=J*uFVjU;^+{^-+u94F`mCv7hjVwbTJe#Wp;KcqRPsa@Oc!?}(gbo;7 zyqjK4T(w*)7o{h6kD-Hkox!#S#s$|X%)L(LlZMbOBL@ZtiLj-`uQxU8`)5!-4^(3SIafM*dO7RknegKu6|3%I{=i-be@DGlXtlYI-+$^NoTQx09R)Ca=9kK z@|KGjLH6#(biNfLs_?!nxA;*e^{XQMAZ$&K1oLIQYzX|GzBB1r@Z> zEVsxMrCp09j+Cy(5(^}3JwL?P*)R6u(Q% zbY(SRhu1SEEBcMnU{PeHJXz*BmuU;M`PyvFsoAvAnr)F~wQHaco8{8@ZZ~{jYpOqd ztK3IPK9{5kbNV0K-LFZb-X9!yRQRC&MSFd`-2TIg8Xin@3m@Q^asd<_4wY!HQ(T(W(dPSe0 z$@?DfgN5w(z99z`@0)VK)Tm&(CG_npH{^M{kf&pbIyQ0=*0pr#WDU!}`089v4PjvW4zyg|PPGxehFG)d8%WCoKAcZctkYktc~(%yIFn!99{ zHyNUC;i>T5@I65z3M^gV=>m1Hxkpy~cgra-a3Zblgdqk#*n@!&_hR6KGz0f$82CtM zAO{Sj!uQGEkL8;CW#+$6%+N%Bi1XuSpJsAEas87PDe9Kg=?GhaZq>W5n>=M^v6?E@9hzeT+2Hr}4~2 zLz7m#pP{l-yr0N=-#w_XWqSQsq)uWi_d#R1x)Qvf$*H^Y+;sEO0I4vdgf(uG(i-Y1 z{y%cXRhFo63Cy$k=<*~bo_UE`a2X_3Pjcnu7E#l&drzZwnF zCbGRp+lHz)WUsc`>~~O$yjA_kJO7+mHwET;GgnN0)#d3GGI!jt|&L zC<=t41eE@Q_J0osoH*$L*=aJr2ZM!ktRHkr%&1u?RuYm|`&#&&c~!Lix>Gd|%fyl1 z7PJR!YjEBS{n`&$Lq{=S0YTqr3r4rB8K943r#kGp2=*)v3-~`pjN$!C?xmH%doLQD zzN-R?e$WLIR(B~4tH5|zh4BDiL}MnJz7ZrHvt|KSCAThMT~C(98ZZ?+0|BbJnK9LV z-vHxe)`Ew@Xuo8lPf&%!5F5HXlip8d&m}zO{aP-u#9&2BtTEWhMj5w2i7ke^ti&Gk zej}GSVz@6#oH5)KC9atFTe&1B=KW4CamT#h%O$xn??2>{yqNa~xgTv7 zD2*d<&1q5$_n5|F-ZK>q{H;|qIp#e}(Uh3?Y^BlEC`Y=JV2mivQHc6nrIBM!DxRkh z`h3yx0@3k8(eWZhGsV0YE1EgxU8i^kL9||Jw17vVzeLbqD(Ej0^#7JMh~siagCsU6 z8YFQA)DrVvsc4YIRf+~lT&-x3#2*z6GPp+3AcJca4Klb+(IA8C6%8`zRW!(8qoP3u zn-mQ)*qoVt1kD1TZxB4+C^)=H(bSlCi$b$+6?5GzX1PVtAn$Ergzbt3Dc-7Rkl7AJ zJ22+GP0@;C-rE(eBIdnA(W+zKKPlSmnD#i+S%+w52icy^7Wp z^WLXu%`xx&N@F3^LySBi7 zanbmMXnc|eS(AnSi$Fg`=ri_BeWv1lTJb)kc%N0g&(V};DcMWazoX0{1(Lwov-T=o98WpBpb^7x2iZs)s-&6wbbQXS_(bLLUi+MKNf5yy5_)b}Q z9AQ+h^aR4FTjc~rVp1;FqJokgoh1ziXu zgE>UzPPG)=NpC*L&kjE&*VIeYnIigB%T8`I?c`^Rq~>Wv;Ajr0c>_!enCN>I0aN&5 z9v8Qe6o;u!Bi9Wftr_Gqa@;MxfU*|rZ3IUTtw@C zPNu^1vj2G$0+w|F>pI_GWgc+j=CN#S`JUx~C1gEx*9u&Ze?2uj1J=Eo3D@JlgyW`_ zw&~yV2tfSX^ymGxEERC|2NZNRi${|tbjhI)QmKvP4wVG(AGDARpUHB?r$J}11l`lP zyL>NzubkmyP*0;v(~EMz60p|2D06z1Ny_Gc6`b|P#RcXp_~~bO06Ic!3lKXB-UTv; zp4|dD^m-(A1&&Xbte9++2BeqXnG7 zh++5mJ-#qSAFGPzml5KvtZsyO3K?tB2hKcT;0#>Ic(MpbgAR^}Bk5euX70+_bPRaE zcujbT{@_Q7k`rI~#R@ zK*bf9F=x6rI3i1y$fmnU(DhJcos+gsu*-wA!7Kz}08 zp9=J6K;v>>$LL9XJsW!FxCAo4gc%PVtIQ_Fw1Mdl699Ud*yUa>ksA#n5i2Q)T>-_S zyH*2zB}KOvla40!m5kewR|1ovnR*ku#N!8g5S4fn*+=h2K4;&f?oRb@dNw&V2U_`;&fcyJiySPzlx8u_)TRCw^ioY; ze3}yxJA-t0GQ5uUK`n5MCx}-9YFB#G=2eb7Lr>1Da* z6*#GH4iUeqW8RQc-uHOF_X|Z#&|lNfc%zv<5lQuD3!sR;(zu>>+;3&<>u$32t^tZq zcN3o8L~Z)it6kz-i#3-rG=e5Yu4~^M5kAw#qtFKnvi1cOowF1@*^GwI+i##=6W^>% zJNNK_Q-g#3nE7|Is+cZ^^u@G&E%|rSoc(=7O`j3tvi~)C4-7=?-<=7*`Y~P(>5ClnG<)WPje~;_`)MX{_n5vnb`OOfVw11#z}k)H ztUmFarKW{75Kw6EBQ7xBUG{@bY}zb)zf|fr%S!d;+tUfri6pYPyycEpbGyB;;9)94T_u{=vNKc;p{!*$>Qn z36K0ht!K0JOt1#NO^jwbN8rrKvX&ocx1GyO#=B@Lg=;&7`#BZ_ZHBWem&DHzPCkgHgaiS zc@o1+3|M?OFxePL_r}~e)2^@@#7gcwy5EC#_Y6Xt=rc0x21LO%@5tCh4iRmeYu=S< z6#;8gVZc$sw`!Ifahcoic18Lxc(B;$T@7L-&#h&B~| zkE~Csk1GA-B&GU&KXU_bP6bRDs}w~wU`hln?y2Ou6_TC>XTfRu%ith2V@vU&_Ef-(@lyenrpHFPh@}tJhsL3Dj*VPHEf=$) z>w8`LJm_K3`n?a-kIZ{1kNij-FJYU}YT8L}yP8z2G0mj0;$i_(8W!b7wlXxMm20ww z$W$|HSc+!VY?^(MBXTnno#jl|q3-B=%dhs`ruXF_kSRj|shNs3rC4X@Gz_pEBzkvP zF)bHEo{jSMp!tR3sQgLxifT7kCElVYAP znWkxnY5}d=vxW%<3bm2iC~ZG&wC2&qYZJ7I+9a)5J4`!VJ3^bLP1lapW@wdKl~%3Q zXtT9BTCG;6)oTq}qqay}tS!-&YA0wxtyK$YVXaMzXzkibT3kzLJ=$_@g|<>#rJd?I zgL%$mp0&(#7W16VJm)aaxy*AO^IXC_mom>~%yT*OY+#-%nCD97xr%wNW}Z#Vvzd8r zV4fS9=O*Ua!aQ4<=Vs=)g?awOJa;nBUCeVg^W4Kc_cG6Y%yU2UJit6Vndfold4hSK zWS+k;&r{6vH1j;eJkK&uAM^Ax&r8g+i+Ki^XE!-^o>!RXRpxn{dEQ~3cbVrs=6Roa zK46{?ndc+s`IveB&OBc+&)3ZJ4fA}vkSq28sm}~GRzQ6!6nF|0d5};a6gL8j6G}AHXN4*cg$lnUO_KIf zOz2M24g>p|2V7?KIHbk@O&zXb|G%s8S9JL63cStG4V_DumZOc)_7|s6)ts6e0v)T7 zQZ1STn%hr10HQqv3b8|XqqGAdYA*zBgZ4&hMG$=n4$l!#U?DU-UYiWHP1BBs)(*k} zE7hh#9Y<-$K%JUah8;kvnW@cMR35pVC7WC&ht#=PD@xGzr{X@kE zhKdgl6(1QYJ~~u z98rIo9PUjU1uE&=$>4)Lfuzs(qzK?H&3Ga|k|%Q6FL)w<5kAM|dw3!`b^}u|#B5-b z$uNv=_-0n~IOCB!7$IOu!`pPkp9BJyF?_3zxKki-(!#gth`WfTE0}CiOsj-zfvayf z{at|gj0k2PE?+$^EEH6F%f}5&?(|1;)0nz3lK&$)UB_>~|Ksc`?xnxWJC&XCPBlQc z6i|f^!{vr>;=6a6;i$L^Z^S)p!iuhBGS<0U+_JkgHlXp{m{D;*NWN5jmwUEwwQ&pv z2U)5&pkU%;_#UI0W@QLNvn!Z=7$ybwb|U_uzbxy&bR9;m`(GHf|I$>iK5*ZLN&#~QU! zC{NeR#UL@z{}l+%P1&5A{#(xP`vuNfsku}wwIH{a+Dh&8WefU1cYqFtyPM7dbmwjs z`{sTIU1tkH?D>F-Y!h+|<(g&FX0eAJ(24K+9}w^4J1yjp7hDBzRV8n*;4HC+u4XDi zfCr5bplJ1&Jwt$?IVs%o$b)3ABY#G!Mjm3x64m!SV@cm%$rimpwy59tA|iZWk`O5d z|GI|`eh=--o}e|mvvBW!udm$h4%5mhvLgo^qddjTuqUvekVZgFhGBuice0wNnF#}; z1?Ch>4_K06n4<7qMvDb4kLfMe;VssHU9Ni>?!Xirfjoq~j{=@4b4 zB=sS*hVk4Ku=j3)zuspAEKND!+IioH z+SFU>3gm3+^{i$a#XftKT63t?jn<8&xzs9J9;23AYRMBV`Dmd&J5>sau*s%iyXhOx zDz@7-OwCbD_sT+2mh@vgz!kvZ!-mBMGzUy@xb(7$JF4ax#&KlyV=`JClZVBY7dspR zpo}J^iOT7#14JN3>)!}HXKFpW!IMN^xKGj>1~8;b_aUO5w%L%qev*Wm(`H%65=xte zEo&wn+8?7WrAfExe@I2s1ni*Fq;0uxVw<691ielN%+#-c4lW-HJ)eQ$IP@o@w9_Jb zS@d4UW4I+?-;w(ceH0yVY{Wi*#m*@vs}pp&ZQ`t`G~iBGz!gB-=E6@9!a)gI&Q|gd zf=)V2XxNlqQf7``1BNYaSgRPA0z-S@BC&*7`D)e@BezZDPBXP47w)ldDV-Uc3=`9_xsVA5#7=XfZ4I;Cs2qFhI7Y%QN zO`u^Bl_RGQPuv?z3(z^Q)P^G#$OAUNR1LWG;)pt}jKKX7<;-9$+@ zPz-(VBNb5KsHB8%tb54fi>5?Q#O3t89{RrBbN%}kIhuCArA38t8=nr)Do6~V9y$}BxwuFtK zkGGKfo@3-JP)09lVo)6?TnFI^&?h&45O>1$j6N%J&?D}HEJd$32qvF6sZI(@DhJ*yp7lk|)Y%QDF4voa~G4YO?$3^nV2ZBgPC zG>FTyXz6b+++?50e@l@u1rk0y6!9_cBz>|hqWktH!aSQ9mle}Vw5lR~@LWB!2!8rR zC8eX}VXMd;wirGPX^_Z!BQfO-Ou^D_b9cc9@N$RN zb@Q-w*$c(u-Fu9({XdOzYxXFfjjZsaVKOv^x#d3%vu$6@60^kx#n zq(^VLor|H5qi>+!POky|#upLC)2CAX#`h5Sqi-Dc8(%|Ae}PaI-_npR@|f*|gL3KM zVBO&0$%BKa^ufYz6H?DjmJwSt-v=^1!lPyTo-NfG5Vui*V{Ej_G`c|&_R*ZBTqrW`M8*2Fyp}?1%B9q%$`d z6I&=Bzf0U>$3{BP_@}I={5x6Z8$@r>ICn7)?G~l~J&{*nh$64DWPjvuh=`QPn+OEo z5ub_OEsjJneak>Zjc=jlU5W_bqvU-`KA_}7Nric2oarVv70sN=4AMFcC+{(30UJJrA!Iq+{Y9cRQh`>gQeHd{uD*VH)e{?hq_ngJq$PP-mzs5igrQ zZ8{jW24{z(-JSl#9Dgj<(H`^@yRx;V@klgy${PRbP-(csACDYUHcUu;677kO(45NF zXdqPV?Fg+cKD@YcxWAy*NrLf!eAvjkL*G$Vm*P5 z_IM=JJ*TJZl&Oy5z*l|kbJ zHq5g**3lE|i27Tbmly@jWT=^;5eBo7YBuMf$u4ax5e$>-mHYozboEiWpsY}ovw z^33&Dyr>Kf$!`qF&kV^@p+1w^3Q2kga(z*WN~`Ok&yc^f+gkE&rDXhk;a_milIee& z`(kv_<~u+7cJA#t9bW{JU(Y@IiCdm**FK*6Xz}x>{_^;D=Qi!=eyj1;)ZFtbTRuom z?4KKOtvKrb-S5qPVfEv`DJpwxu4DDn57u1s>=Xa2zENvBY|mVs`#W>BK%JI)>Gip> zH3MCbChwm+=ju@S#@-L-9#z(K%X_E2I`^N7q^yp%x0>q{-R)g%4zY2kg;vvUH`P#< zwWK@R)*Xt+Ma@y`tLg5Jc8f}GeJI$|-JV!CjLL_~rgg4upVr=qU1Bh@)lx;YTdVyE zzs`v$)5>)vLb&9#7@^YJ56QO$o8NgX@^)mdmN@Sm=I-KJdxf7*`ioQ z^U<6184{apy|_5EHX(L{tvl2iT`fki1+fddg;dUXNQiETYz?<}8=OU24Q2TgK^VE5 zQAoZUduK87THuqZg1C7Sn`)f4o61e=W`U#`08tMvlkI_|K z+0iiy9nTsizexz5HwvduMs1Eqd%A;APkUE5YHnWB-kON0Skv~lNW#+miynUmY?azf zlY$fr^-R~IHKR*YJm~KTWi_{j5`t?jc;!U9hR^*{=xCk1Wbyo*(J}xdHwU^M^V;dC zEftznND@2o602C5u+^+>4=;hPL)~LXcOPz0aD)2QXgG{b5La+g;ua)ym&TQv6}4V@ z{*rnXZPddG*7|_v_ITZrn)z8Ix3}7-_qO90b^C*f1~4%LfxL8o)^GMtTE9`$dHW%o zFp6S-j9j&QZ2(tuXf#4;Zfg(A^V@MIvEMs{#dI_$$Y$b9ksWCcWcb>Ki)P`fgp^iT zUstqC*JxFgPC_E&YBl($5m{-35XTkq$4Bk6Jbn9(!r9kAoQCf9wl)Y!%bPn|X@s&g zclx_e!9H~wi@iWU#5QOmU5sanS?yg=ak^%Lm)RD|>0CRlt=k`qvoS0vR zs+Lv>l(U^~jxK+PPHS63ca_-J2huti9H#l>+7U-gpPjkg5lHz<$(P(>7B$V{+}Af{}ZG5 ze|i-E{zfsM(B5`}zsHAl@>j3T&4z~SVS%&?+UFEIj#|2-6*dFGy;}YH#$j)3wpxgPJdTJpo0untS1o~ z#t1D}8H4MNRW_lH@9|?h(a>>q>HK*!RyHoPBH#$Z4XkdohO4U@1cg;>0cbjIlpuv( zS|06g)k~F2mXupWsrvW^9aZo1rcs!?fvQitjs8g|W8vvjF% zsZHQQN4v&ze}e2opwK5z4)nnk{)D+x6{$3RurVsYzheT(Y} zJ)@{`$wFUcb#v8%#>K}qrw44Vu575Z>u!O#{;i8DS2QoLt!`Lgqtb$!+W89_6s%h! zci23q4R7`^N<<2_>ZO&-n-|tDs%(e9AFb8T~)lhcTD*6P)q z8lzB4?O{K;u+gqKVvcDY(KZE&?l1|5)md3xT~poM;A^gLsGMJ81WWOCxGOp>=~#%B z*wG=nraIc`Z|}0{&IUOVHf%RIa^$a0FlIeGtEyaFRkP4sU$d~Ls=-!ID^l6f z-qvMl@GWUxSmSLl`Kjs@E%oF@ErKbtEXHzGRW7Wt#xtn2>9+<#ZS7s~$~!D{g;Qw6 z*0Oab;klW0$4w1&QDD$v3-lxs(Jtzr)e{db@OQOV^>oLh-4^(fRgw0NR@HpMK3irn5q`mRvl+s5oLU!Z6pek#(*Jpyi*-8R_ifuT2Gl^F(UNX%VN*l*G z^T7o2#~yzu*hANhVr`V{>&+8|R7Uh#0ynp-vK4M26Qt zVySgZekp#^yD<>$>1u^5qCk?63X9T!S@F_Ro@H}X>5hIWdHM%sR9QxjPbq2U=;Czm zV<)9)X}cN=IlFiSrI3Cio0uisjP#mhO+30dY;1{RCpt$CIJ?-E@$%whM?QT=VJH%% z`gWEvSDUU7(!V7wkfjx8j6ex?cZ9Pt!o%+gSQ~KibpsqUOsxzzI>(4>7G~~HD=m;1 zzW@t!Je{*}d#JSv=Ql21W>!rrnLRs8_cyBacWg8KWO%)5t5}CnRtz>3j-MW=I&{){ z@o-?*DaF;Lgb-b4FKJ&J>R3??1qidG*H>ohCfyu|GNHR_NNnn+Su3>*s+XF?=9Ljd z*%IyHu&!`>BH9>(sjBkFLn?Jg$Zn^2ei^n07&{T1`qq#^08wI{BaE=3D&j|Mi`bwo z76-YE%rSpSz0sq#noUzqj<$CxXe(D}C})k%cu7<^J~<$!H5|s6qr!win1#_bx-c>c z;_Gh59E56Z!kev+;SO@qex$vKX58BT4hL?jXuPLeAXTpsKGedMkA*_5OZ~z+H`8GE81F%9$~!*|9uA+t1%Yx2~%`h|^!? zj}a@{o~~+$g-i8>Xta|Ck6MJw?T;sH^?neE`B>|*im@&jStpibA#jPFR(cJzkEmu- zIoj2hZgY&RD{%xwj>ax*lJ)?YhFaA|{lgQray4#>wopM;h*o#Ga9={L23Dz$MHALV zwC$;+F7eZ{bRqAiIK$*iz{j#w``2|)H@ml^9bRiZNN1v<2MdX9mln^OUS59ORH7XD|-SsXP)3>zQT95SjulG4yR(hGgc zNgvk|vpN3*nx7GI_J7}f|6PAlQTyZA_o)D_9A~5+=EQrAzERugQtWNxuT+*wt#+}?kxN9`)8PtWj#0G*p?0`mn4ek!T_s zk3?g|hfOP&BcZiwJk-`HK5ymjie#R(iHB9VhuxGt?m9UbB)Ms^J?ce*DS8Ctz4Y7u(qLLVU1BM z81eb??95wx&Pbl(`A#JaBrwmf^&WYYzoC#7DuvcUM`2#!n8E`J#}yuIlEzK~R02*I z+hmdoTgCpN+kcp?D)J+|Dewu(3O-b`Kl-0OfD9u^%C~oXZO@ z=7pPh;g#GZjd576=S7o>Zs0{X@}l4HqF!FKg%@QP{uPZy7!M>ZMFFJYB8*mq(TaXG z=6psCMK>ZFvz-;~WJM3?n73Kc-xTB@u{_3EvC{#sv#i`cea2yjA2D;5&B=~JHEZ_F zSxm7Vomb9|$vt)sD!KMTRxmfeqP!9{>sU4q#W7X0SiY@@l~?Ci98d%Fe6|4SgKKA5 z4`Fr1$CXc9ILpdxlTdOmn#F9k#mtv`Z29CR$Ir4(WlInAmQSgl#SZ*NRvA~Bta6je z%_>(_Zc$~M%I&I>r7BL9Wvk4kvK*D=s-}FE6{xIGHIG%*BGq!B%EqgfgH&s=YMr23 zC#tqXR7F!QZq+eawMNr$2dsIiM>X@cF%2Y?W>X@!NW~h$CRL9|};|SF; zQ+3Qz9Y?B;qg2Oi)p4}yI7W3Gt2*YWj=3tYP@VHsXO-%#R-HAf)2lk?tIh?gvsQK1 zsm|k6=R(!FNOdk&oj%pMM0FmoI+v=>dX<%_tU+asDqE(q?Ad3 zv6|yk*(#MatGRwPFQ~Fsm4(#&Hnp%_Ej(E*JVh<+PzyWN!YxHsBn< zxlBFq0%pC4F?IaKOg*SeJ?IjkHler~a4Fz2bh{jI1>j25uL4|+@-={K0oMVpXKMZp zOg;EFfTileYgE=wXQz&5~5Of9~dsS|Dm+y=NE^&QN5Gn9VF9cTxh0ndOx@$7^;1y%75Qg?&jDWmz65*)_!{sH z;9Jmq2lyM{?|^>-{tfsMupY-}1K>=+SzJBn9Ilp}ht<7+tCIkSUcyz+X0%-fxEyc= zS4*!#ehuJSz;%2a&fr#*wsF;R6Y}kVn^C?6`K^H40Jj5n0CocI0Ne?<3vf5!9>BeT z`vCWIl|O*|LBKL!@8TBg-LT5+ zX&Gqb&w$mlvUQzBH9sehv#1rjWVK>90J2s<)`}NE@FMCj0bU0DUbgl!i**ZND_|P~ zlN4y6!3vm|imO4>CtLev;9o(R@ZICA7|m)Okge7pn_B*wJkD&XAKLdOY_yX{yV%@>`IH&bK=Ct0+aK(M4Snp@tdI+w%uNBq&4T!!4e5Z`V&G$V@ ze^;z))p0r2O)U2z`sSp>7?;GCC>fI_3v)QqWh4qECQ8hdsFYYJu~K4_IMH!~7$uo; zZU;BV2)3MMIVeSg;GX{BI_PvxD)VfEPGSywS|-bA5fp=ji?4mMj8v*2fsjR~FvLpt zg;0EWY|eFQWNG-vrGr`G4hMI+h8s+b=Qvyr$s*fq3?RlH@x!ECNssr}M0s@l_4ndKJb?$ZxMPBddL z`~(M{m6es=RIX7B%`6|3v?WZ=tSl#y>BNi`8Pp<4Z%WQwBWjuPnJ$!qRZ&<0brK0S z9W()bb6!xem(00DF0@2y|{eUh)`X^`HfmWP?!ts)HkaVyl6-yH&X`*xp_BfL@ zNwP_9TFXhKo5{3~rci0BBxOq_Op*^}lHy^Ksgy}s)39=7Ov)~YsMDF0GXr`(j7fQi zGb#TFCKcFbTC=1B$IYU?M-r=}i1Tbpj;7=oN{*#u4juKmG_4Avt0de!Dpk?ZtEQxe z5-;tV`IIc6q?Su#>$r44oh%g{$E9%#nKXV8lMY(UB+bX9LzghAOqH$K(hPn)v0OSq zI?QUZx}+nOdScf=Nh6nLF5}Xy6jCjTMMKL`$;5O6Gn76 zR*|I5l(bOdm!yCcq;+j2nh=vJ!%Ujj#-!Sa-8x2EB)3b_$&SZ3?&%(J1Y-CJoJsU~r93N%6iNItB#FzB^jv{t z^_AEa(y!#JFx9rt(tT$z>h;*k&?-1#oBE3rp zaJNYB5$U}my-%d~i}V4JJ}Au!LcSKR|jfLKB7+{s<{nnEi$2$ZU)>-SjatGyXkepD;7$|6uG>W|sNC z7~&MO!hc}wGiEmNA;ykipA+R7oXwWz@-I*>P~Yu25O={BDY0NL!nd)?$#PgZCc`gwCd*sCXP!%W z%J+B1frU3^wM|ZzCznZ)Dal%?403bKk!iOD4nrVBsHF_($d`3lA~BJK0oRS1kDtPKFOgm-Rdu_JEmQ zI|F$s)qICa$)<^Q6D9uyV$iaIhtK5xv$&{i%F*J#C|$VN=;XVEODIk9Z{i}`%$qKylJ8QEiH&c$ zjE65reVPzgRIeCay%L48;p$bRTdy8by@rRc9bLW7sFFTrC&T5w>$xZ&lMK&Dm!AO5 zVd=`8WccuO`RHVLI+c^2C%Nwk2F)m>$Qe*%cxo>E*JQDOYO*Q2E?Yt#o;qsbr;b>7 z^fYnk)P|m(rwm?Z3!JaXsqhWF#dgkm+d$J1o~OB|tS?;ad4{LLH*!y7D*PMXDEp2e z2C5b0hm9hC-XPx%@?PGug?nD&o|pMN%Dr1TZ{&Jc%f4Oz@IUNoHKXgnqq_dl=z3x* ze0-YBw(kf@gY1R>FoNBNuE&n*n)(l2J*!gTMo)7pysS~tnK&@M;|jLCWS~4Gr8-$i z>R>HOcpI-UWBEnR6uya9sOg$Hyq#BA(ls^w39GQCYnJfMyuy~QS;L>R3Oj9~TLdCp zOR0Z|wcH9Zb&O|FZ>sY&iu^ceP?I3sZ5*0rx5MwYNm;7N=6IbY%Y~GzczsqUr)*-U z9AZ;CO(8~tvkJ%hoK7XgmPtB6GCYAulHtj@@M%I!lX^N$F8E>A5bID{n{1xfd9q|M zd`QWYL8U*S_z$rt7P%KEKfD9oJ4`SSbv9nfrcz~dPlz2#V|AExittWeaNp37>u}=z zv;3y&T$14_DAUY@Ir0372GMnCx&srHrCSk`;i~77JW;xnOG=J(7l*ekIb|GyY&rt( zLa}%AUi}UR0lYr|ep;&zv{iLoF!Dm|*x`?)hM3 z{XVg6J~Fn=U%2;v&U;6+Kfvqm;WEvFFi+B=$W#Iet;lslL$u(N#iGy}X_6BmEtX77 z_CZ7is;HtUxenQfZ0cyTse%mNak9Lx`~<0Fu%!IZPL}k1%0nF60p3!JaJY*U*tW)rV_QK}#XRX3L}`j%N(>l6~RhB6E;F#Us>VybO|Jko5T%B>TLJSgs9|hRln(%dD4tv}y;* zCX@M>xT75@&);}>7q4@$)dMNdT~uCOl4F&msVUFhqiWxa+UmiS=kHX~q`QI&?bCm7 z&pX(sn1J_b&aN!UK}0^a|H_hF%KKKA&|Nb%pa5YeKH+Ehm6*)IGBcZNT5jjzS;E$} zJj;cbAP{84TAmw$Ap6(y{0Ib@z?R(tf$0>hX0y4Y=>@*<1uji(QUu4zlZkYWNa_^R zdS#&LJl5w!1kz*`hH*0PuNMWsDoU#BtmgIBK@_pm!c|WOO#vlf@>f|*76m=~MbGnC zigJuOfpfDtCo|@7!^EFzID{IkBM_QmHd}VeWIP6iQMJ)IE?)ltcO&GBNmggWbaEHTlrkpoc*b!pj&`GJJcb{QW za$Xu5qJ_k0FY&sUFq%He4yEPyJp2dl|09h^2v#Xw_RL>Z>JMX#b#S(_0SF7gw~<)DmdjiY2hf8KIJaYZ=`Cj>k@!1dm_c$y#3Jx%HB?>NVc-I@fpi8+@DhO~fBS zy~Z`=j*?vXs`6y(c_Iw4^7cKyunvd2Xu7h=>*hjpas9%dCQ-;zk>2T z++RugtK2`2^0&C3&J2e1S5y85_tRN!c^exHxo-(QnoQJPHt1v z`+VX1=opeJCPANkgl(dsgmr>7I+T{Dk7rDs-KgKaS6w%ExsBM?Qqze-DX1J^bU5^iBbt!itO}+ zk}2Px$rY0hRTQ)3dcK#vfMcPE)Fe`zj>)u{Cks2VkY%Rn&Me)2IQ1-h ze+I;j23JxX%A=B#{YNH+r|<#y&(}*Ia{tjdpbl|BGxrFMzR#hB7y={ijyTCc_5qg& zi8*Yabh&haE2ffoN#k^Y#;Kpy5)wB#e7v(o$TG|K5y!4`?R!4|g7fK;KF0BMNuS_! zx}-nhbULJ0aXKAzUaeeu3#Zd1y@u22lHS1SbV+Y>Da$Sma>*%9aCVLaUAS^2kBZCY zSH&9#T0Z6Y4gZyUKf?qEGM7r+iF(<=S$#8Xc5xG@#HiWMsN+c%2%ej*mU?=3(PjL$6Q|U9JwU-%et4y$hw*^cueDUGz?Fl#SLc2^U4N;hKc+8;;pDea-8> z#>Mh=`eLD7Q{mC=xT1$prRkaop{9viGJF)~pA1*zoT6W0o||Ovx14E1`7S~js9ppv zj!gY#svG57jM3{^nS-#Z?E7uFZX~n1Ue78_QeeEEX3SH#4v^mq`MtyPlf9rptb#FJ!@ZvSWhyv&JrBq_MkL9M z8==>I|I{aUpFX+$^GSv)dp!?Pe(W$i&u%V3~yIT?G)_b=K?0!gldwKvV$ zI;xZC2=By*o<^+JBXWA73^G|bF}iC56U8PikR1Ppje^JUIgC`U^d*c`uJkF46m~DH zmx+_zGTWpdV5PY9BdipchJ=+`FH1Hqogqv1Txo+$K14a95G5au{F$;5hRj^S5OdgI z1EzDt9OcRKRUb3Y_bl=;TlER^{DVb4VXHo6o`12(r)<5CPIqig=NDCawWO$Vz-j)nE z3!-h_3uWGe+fJjw3#l)PJ4$lxI-84R&kbznmASdYQhW>nm@Yt5pe`Uq{K>FCe6cLd zcQV{2E_dKg@?9d+GR-q#nNGu+Y=q*P#6xDdX+g_Hpgqa^6=S(Mz%+?!-9?N=f-XcR zEs=Dqom#0@7eQMx84h|k$x@_=cuf$zuwj}u%ha%0X5>UZFVABhMsIiiOJy2NlBzhj zShAZglUpvA!)LLDm&xKyp;`fY%&7JKYi4~VsYWqbtPRVdKjFBZihD|b?<1#6>L<6d z>D0PYCA|f=R36=6Rk}|}HF%iSMvb28$cLQd+sJS}l`CY4Ii)LQi94msWJ%7EE|(?c zRLQF<7R#b31I6pd3{nVih1_zL9KMKeYq?UCF6O$<2Aamyjgdgq-`D30@f6zni;IgV z`Oao$lzmsr(yFWEl>aI+2J;ogVx1to(98syu94F+Rd^R(Bg9>bAq1x=Qxmh>g+O67*d!!x3)@dj24LZ;+WTlkhQeL&ERxtm~9? z5jzNQn}sixz1=L=D?E7F^G6Kl>k&S`Cn>iyqb%4F!n<1X-6-=_7^tPy`x_ZUx}1_U z;t`Er&2ois*Rr~6nUoQ2-^0PaVn47mc(1%gmbYS6^QCPvy_ektU3W^g2#Kt_M?B9K z>TX`X{yeJ~Z?sd$!NX$jb;4lSgqOm?H}LRwxux(Ny+8IkSpw=#Mc4phqMv)Z(&*Te z1EcRCID}|QN6TBiH)F!943udYg&q|(dc0jR--zPX)^x;Qv7nMRj^!4aVxns?#X{*S zOfg@=R#L=PGC8GNWy$Q6u8}FmzD}kX8!-kmjT!M8w;aDKOmsDzhz)xjW3r-O4GS%b ztW+e+-RCiFiMCjquVraAtw^&iv#ie==!5Prix0ZsZCX?P;oIasO7b|O*#-Si4fbo& z*bjz=aED8aI9E&s`fFU%$#o}7k@jS`J>~1BlfKxjD5hFrxc6vMVj!tmyd4acRQPt; zvq#Q{HSIMIiPq3<$$SC z!Ej6HJ3%g7VmrkpW?x|*ABkXI#}8kzOJ!~{H`0UntFmTmWRYm<%90%YiEk&rGFL2F zGTcQgf=rXV{fw2Gcb4Slfrc=Uv(RfXw{&ixC>h z0nw7>DcF#mSC-J@_0$w>$juY_>zn?(x>svMnjWUa)6<-sONoI@4FWjwoI=d zlhjF!={{skS671P137hnu8S^GVvq{M?cU&`RoXy3#X5OD+>7Snku-F+R;t-1^Si3p z?#4bZ-WW7fL8Zh(iIo!DgbhJE?J}A|Vvs&`2|60#Bn7iXUl%TSYf5tjl&!rqlb{nF z15OJvTOaxbY}64`*@z=TzKv_8ED3y?+D6oZdr;j^gE&SOV3l5=^zmKe;H?KNn&Qlp zbY?`R&z7jfgj|T5tpP{CBnSegUT+^`n18^u8La_Rz*6wm(2%S9=UD}^0%o0o z8Se(;x}RgbKk@eLPdw$n6>rZz;_cb5cstP7^&_^|R!It|L8rz7<5~_pUCas!?OE z7Np#$ao19$vQd*=)%1~pQBzzqk(!K}$u$M3)u@?iZ)rB8rqZ(oefpzW=#Xg^i*sBL z;^*KGL-@V(hoN_W7%Ka5=(Hb)27VkmaA*i^r0*T{VOzi zB$qxH3fQmkd?fF2Lm{GG(&?8n}?Q7xp17e$Rv^87PJR!8*ttX{n`)OKu0lP0YP7p z1p`|)4A6&|GaU9DL~Ry_1@cD)56{PPFU<_jcyUqst_mpnK^H<;U1h{pf$^{k;{myd z#!NJQ`LsG_%>t}SUR}VtnJkMnU@CY43#jH~c&h!rR~RR=cH-eM+OL@CGe_YtbPeB~ zNzb2U_oY1M`9v6n=3JGpdh z%=0(7^njS>d%3hI=J~r^Ixgn3%yW*S znPZ-F755N`&QlsKkdf%m7xWhh`U?g9x3Y%ixJc2k5*I5PR^k$6Dw-Pe{6?YCd&O8=#3)-84ePy4aJWg)u!`Fi4QqC@q8%Lb+@fg3G0&}vRvGi$ zrf4-W&+UpfKjzt?XtgoVPDNW3^W33mzL@7uMOzv3+@)wuG0)wK)*SQPqcj#mJtWAz zLXi8!V%)D_C;UyI9}wsVX_3Ddh=&B?w}S3rv1pGdjS6&0jgN}P--*V@h{-=kpdT0L zCkXwo{Zs#2_B^S0o>Dx!6wlK%!ZOwVG9v z?O72y1x@86KLnw8oCTClCE1j3yybD@!&Id%Ux}Q_lD>19CTcIm>}_G3RK8g(w8A*7kz-YLA(q`Hn3G^P)UiL!B+jcX+7I#ob^nJ{Cd^t`pd}a zEvKi$ww7}keXHm6mS2b8X7n;L-eR854xBybQT~{$JdWteB|U-Y$t69B=*eNXKZWqA zfXg8@M=?FAkb`&t`BLOcktd~FQveKpFspd|n4lBUV=$Y@T&b4)`{>CA`8nZTvUjOO zohdL+wLH#^rpNg?BJnfHFtnX0TX>H5HN)=;Bj&LNO73xH1fh>q&0(lMvlA0 zS2fOLi0tEWI63L2XGb($Oigx#mjM-BaAP9|jRze%;#u53IwGs-fVu-nURNJ|gb;A_ zg`bnRf-sQP7k-{fS*`-y`mTS`GlTvH5_I;_oB~dw^*<+5;d$BrJPHBJrhs*mZ@0_? zF5EblEiGTOY>0%chwfN`>+xSi%~=8KKFx&d@n6hw!%92!Z$t#J{5$jq^fOs1;Oq}5 z=xi2mA5G|zO&>{88?8H362O1ZLNdI8(Kj=a;WJo*?q}Rtz84@@_Gli|)9BLlq8zXU ztaUHSoE}$RlFb1tBj<$eKT)5E`)y)Vlwd=?2!CxwK~)2AV{NAjP+NM6^Zy}nsQA6;^K0Lc?C zUUhlm0c5;I@XfqhVE2FV@Hah$CB_YA{ z<1|l9BVtCxwPG_ermwknGeB@M6b`8HuL{U(VNS5O^a=*%!@qM2nlJpdj-0xFF%z+Uj7_k)h z>6;3oY0n_{{7Lb=rFh>SgVR@9Oq7tF&L2f!t0nTO(OCpero^6r$zl?I)<9qB zgu6>fcT@XHC*GM`3Ok~idJ}uZO9*-pm3Sc8Pwz&)VE0xqe5Qh4Uj5IvuC zXPXq$CN3o2Gg@lCAE^giucn38S@xG6VhGw_s@+M}h{jFqaosIR{iW`mB{_QAq@DC2 z?dqkSuFEDuYw{hHWcXr68ieCKS-c_;fzq2shf{L6Po@}d1ZHP$EwQ?Uc|KJ7p{z_( zKcaCsv4g|JdvwfzobtTM1B&M(MT`KKHpO_OnLhkLg_fnSa3Xy}@DkdYaT%)Yrt2VU zfP&XS!qfYwO&@oCmiQ8&cQZpHXj0_Y_AL-gM;nylBFx6x7f^JuQuLlv1c$iaKn;j5 zDyBVuxW}oXp?-{aFGV2GwY|<8a?`iSO1zU!Ou*G{!knSmciw_RRCE_rwKN)j3 z-n#n4TbG(%tbu?+X9Pim@hEcu3};iX?D>mQ*DEub$a4cUp2h{i?&ym}LZnTXR|(1!>_FZ zdE{Ga{B?R1SPWk;qfyo~!kLrhE#J~kJA;{w2h&sv_j(E!cq;s=?A^lX!EpmKnRHVs z%&>tylbK*(dxi}SnWgI)9b#7lnMEB--~YAtY3$bA1F_l#O$BALw}3Sj0Cfurw*zpb zNfT*QVxWIBPPJw!c$SXB^(@ure@#wp#_4dc=LI*3J#ZE?Whti5h1DS6C=qm!2ZRgI zlxoR6XMHaGJyJcwK>8Mw@$q>{P%Tq@ugff;mQJBOgSYhg-T>OtuV;kE0SMY%vk7gY55ce#5FUH~L{``#!f>A_%#{w ztC}UVQ_#t>ncnm)I7!b94N)_;6d!I+1_Q;DXO=;E9P2DgJm?+y#5 z<$y)5HbI-NRf1KXcD&{X!-?82w0v!b`wZsZ%-mZTMmR*9=e~!zpJG~pw$z}YVG1^$|0If)KYm>Ce+7xZ7R-zrQ9ih$CW@$%iM`^RQDy>?p(Y)Gx zZGl#+)oJxwgVv}m)0S&1w3XTkT2O1%LRwgB(;`~CcCr@N5?YV8T3e&7)z)dhbf3xG zXEFCi=02Ob&tdL!nfpBEKA*WSW$w$E`*P;Kg1N6`?yH#lYUaL%xvypJt<1fRxo=|b z?aX~MbKk<;w=(x_%zZm^-^<+hG57t<{Qz@6$lMPx_ivf|Vdj2>xpy)5)6D%0b3e=6 z&oTG&%)OhrUtsPRnY)j<`I-(~LinEQR^{xfrbz}z1) z_eaeA7v}z$xj$j57M{wG_ul|^<8tB;e?NX05N zMEVoBHBjKr5j!A9>;Y1r8EUMA`cx?J7f|Fxp*|=sABq!7G}LE>Di4DSza&kP_EJpf zPSXyD_?jD1X7o6$#s5tmZeahvtMO-a`11<9!_W<#OQ)8tjnfVkr%=_hG#3_hyhcj3 zXbx!Z0PP?w?V(VJ9l9H<9gL;+V4-c$-WaVIOJ9n^GZP9dgoY<+)1bCl+A+}DL>#a( zZ3fhFw011iscGfd0i>Ea+T3LokvmzkDXY{|m&GFY4HxgHqEQ()T2T53&nMpYLfAQM7|?WDa8 ziw}=r=Hc$uAx}|_B zd>rmJ7AHQq%M3@wRk$7Zun9BT#AM8KP~5V6G&Z2|L5!%l9wlEYzQ;9RxY;-iLqjap z8&Lf8q2T>SH7&|8hDKK~`Y22a;_YIoe)=P={>wIjYu*0>*Z#{=y*lH*O@((24Z)|| zKG2V3a2NT}*@edn_iZz)fE)3Mk}RJxs6TWK;NaMCC|o!qQ*Z>1)f^=_TX{H5vvC?` zp`2wj9tE>>B720CZw!t{9 zh2dHNTr(_V3}&oN3ofgGf)N@Fh%ZCZOBG@$tkPC(Mz7Yo&HJIudf=2Yhed4vLHhIB ze)uU)1eeHq5S-z-h3{m2LiO*D-rTL0s-ZlnXGYc}8t4%17$u5|9|^ z{|bcUrje4H{#(f({0YffnYm0Y0WAp9_p>0kmf6be^eqhfq<4T0hO3*-0d(hT7W?KQ z23?O_1hMA>DzdG}EtG4Pt=q&N`mIj<;QxSl7vE(ehrHk#c&jRTg9T@cJ#;Bk5du7F zgaF0si}nryg65=f%OekyxsE)7RE<2!lBKHeMaGi8m&g{qOtz@s_j`o)zCRG+j|~2G z4;}m-+Lt{+>&VW+y+2)_x!o0}nNw6p4mh|x%gnGRu%B3sfSL@$0)_8k-shMJ4ABB} zim3-I$uLY&_+F#Mf|e)r7VGF1Yrw8qdgDRitzQP?U=vm0v!6=A5ebxiDC{hq&h?U(s)LbT%W?Z&)ICyD8YA0~Ty88f*QQ?I^=Bi@=3JWL5@O$j=u z1haKB2t|J(0^I;aD1m6^YQ>zQDTgq~%RkS=oEjiSZD_Zi2{ot9vW_K`HWypg zOggkbMO#Xf?$ZAviG~T-L8VDMa^A)^LsLFIUkA+8uYUn99}9gt4uRv)pN!Hji|A$1 zdl|3gmVo`vocHK6>VRVl_5mz*b_rRXpwnd&XGJB3yPN@M0Bzd}KSc=VLNWVR@(+Sp zbePbvH9e)w7`+CJn%byV!I%O=d*L!Mg}Hg^h$%?Y70f(VG2Je{xgx%?J0)nI5>%%I zEmMNlDM8zmpnb}ST|Xu0ni9;J63m?v%$pL-pAsyX5-gk&9Ah{Hu8SBw{c4i9OZzod zNZ140vlnhl4}xBpUjt`0=+wP&ptI2HsDU#Xbk@CbptGSY8#u+Fv+s=qor7Km(3V9x z>dt@~u%ez#IqEJUYalC-O=m)MqzWB_0M1KqS^n0ZV2%&~3d=Ew%%UQQ9N1jM-UgdM zY!Q_sr%zX0TgnR1Ik(J)BNoU7Hm^(#xb$LvAX~65fZ;4ay^wOqGe*oYFeZ>^3?+-o z7QMoH1BHQnqeT@JYUwAFsCyTdf>VARO6%vm(fT=ZKl(Xxgnldru6%@kM&S(oxD4Es z5&9X0GxRgoz!i_s&nVpgjed%MLO-sN`YHc^s-Gz%^)q&)ek>#Pb7V$8aCmjyL`gSL z41FOa6;R-)q=av*d&uGos6}|NT`=1(2(q9Ze%APX*WcX1=f9k5=oQ}ijZ5ZL>5X+|z zz>xc1VB{=NMlWfCsg4t_gYX3C)16<7JK-uupC>u!0rz2+qSrnkuVylk^aljCQRMs9FDeiqcX+ zgSdPIE&X+ci|jM`Zz(dSK*EQIB0k2Qqz^WN=)rx7FwS+1%Zlk_n$-lId5)f0ggkws zlG0J~s9EHUnhYO>G)Uxqkr?uNreJD!abs@N^to-7_nKRtF80k3R@mIMy}aTvKNZUyY}L8`+wrHV%7FPI|QEOxov;KvY^bK&Ri+XOYBN`LL>x_Kmlj_)<-(9TBn#k@359Wgmn`Y3mWbOtas zY3?mMxnO-9eKmb2y$19f-%y-HpGfr^Ur;=NzKYmyd_OV$%|cmxjYGD`<8}@W$z?-B zbwfj^3=N^u2MfDRta?teoW!E>-j(SQ9xXTR-SWBY{amzcXY@~5OwP2>2VwMmnx?m8 z^5YjYy)O5O85(c!H}B2q3)%aH;B*V4e>Wp{xaBj10-te;Om1cAe_%sA$=}A(f4lXi z*h0DZU6DP0eB@*_-ag_fe+SEax9Bb6vy*XXw>bSza}2@|MP6me{>U4Mh?K~m5D2~_ zJ`=k`9ElS8CW43>-$Ki~6cN5h$@`T2nUW7E`A~GZQ*?3aV|o6e&|e?|eHWweG|Z(3 zsqi54eI#7gSM>r25uIqU+cfF6WcYP%ZCA}`m?)7}Df!h)vpw|KGuoU8t>OK=D;~r>T zF~#*aDf-J%&`e0n?EVMKh_C3SH^e`1qOm<19}pW+bnDajcD=9EM{AJM7XYIftCI}B z$@W=^d&NS}(id9ujO=1$`(5cw|NBJ$ETjL?2KIh&F&67s{eCtE&fMHO;RBfuk-j$U pmuq}vJ+(ZD-G)6Zc3x2){Ue(r|EJi~(*HYl`ll?V{{s*-k2^m~EJgqT diff --git a/public/javascripts/plupload/js/plupload.full.js b/public/javascripts/plupload/js/plupload.full.js index 624dd49..ea14663 100644 --- a/public/javascripts/plupload/js/plupload.full.js +++ b/public/javascripts/plupload/js/plupload.full.js @@ -1,2 +1,2 @@ -/*1.4.3.2*/ -(function(){var f=0,l=[],n={},j={},a={"<":"lt",">":"gt","&":"amp",'"':"quot","'":"#39"},m=/[<>&\"\']/g,b,c=window.setTimeout,d={},e;function h(){this.returnValue=false}function k(){this.cancelBubble=true}(function(o){var p=o.split(/,/),q,s,r;for(q=0;q0){g.each(p,function(s,r){o[r]=s})}});return o},cleanName:function(o){var p,q;q=[/[\300-\306]/g,"A",/[\340-\346]/g,"a",/\307/g,"C",/\347/g,"c",/[\310-\313]/g,"E",/[\350-\353]/g,"e",/[\314-\317]/g,"I",/[\354-\357]/g,"i",/\321/g,"N",/\361/g,"n",/[\322-\330]/g,"O",/[\362-\370]/g,"o",/[\331-\334]/g,"U",/[\371-\374]/g,"u"];for(p=0;p0?"&":"?")+q}return p},each:function(r,s){var q,p,o;if(r){q=r.length;if(q===b){for(p in r){if(r.hasOwnProperty(p)){if(s(r[p],p)===false){return}}}}else{for(o=0;o1073741824){return Math.round(o/1073741824,1)+" GB"}if(o>1048576){return Math.round(o/1048576,1)+" MB"}if(o>1024){return Math.round(o/1024,1)+" KB"}return o+" b"},getPos:function(p,t){var u=0,s=0,w,v=document,q,r;p=p;t=t||v.body;function o(C){var A,B,z=0,D=0;if(C){B=C.getBoundingClientRect();A=v.compatMode==="CSS1Compat"?v.documentElement:v.body;z=B.left+A.scrollLeft;D=B.top+A.scrollTop}return{x:z,y:D}}if(p&&p.getBoundingClientRect&&(navigator.userAgent.indexOf("MSIE")>0&&v.documentMode!==8)){q=o(p);r=o(t);return{x:q.x-r.x,y:q.y-r.y}}w=p;while(w&&w!=t&&w.nodeType){u+=w.offsetLeft||0;s+=w.offsetTop||0;w=w.offsetParent}w=p.parentNode;while(w&&w!=t&&w.nodeType){u-=w.scrollLeft||0;s-=w.scrollTop||0;w=w.parentNode}return{x:u,y:s}},getSize:function(o){return{w:o.offsetWidth||o.clientWidth,h:o.offsetHeight||o.clientHeight}},parseSize:function(o){var p;if(typeof(o)=="string"){o=/^([0-9]+)([mgk]+)$/.exec(o.toLowerCase().replace(/[^0-9mkg]/g,""));p=o[2];o=+o[1];if(p=="g"){o*=1073741824}if(p=="m"){o*=1048576}if(p=="k"){o*=1024}}return o},xmlEncode:function(o){return o?(""+o).replace(m,function(p){return a[p]?"&"+a[p]+";":p}):o},toArray:function(q){var p,o=[];for(p=0;p=0;p--){if(r[p].key===q||r[p].orig===u){if(t.detachEvent){t.detachEvent("on"+o,r[p].func)}else{if(t.removeEventListener){t.removeEventListener(o,r[p].func,false)}}r[p].orig=null;r[p].func=null;r.splice(p,1);if(u!==b){break}}}if(!r.length){delete d[t[e]][o]}if(g.isEmptyObj(d[t[e]])){delete d[t[e]];try{delete t[e]}catch(s){t[e]=b}}},removeAllEvents:function(p){var o=arguments[1];if(p[e]===b||!p[e]){return}g.each(d[p[e]],function(r,q){g.removeEvent(p,q,o)})}};g.Uploader=function(r){var p={},u,t=[],q;u=new g.QueueProgress();r=g.extend({chunk_size:0,multipart:true,multi_selection:true,file_data_name:"file",filters:[]},r);function s(){var w,x=0,v;if(this.state==g.STARTED){for(v=0;v0?Math.ceil(u.uploaded/t.length*100):0}else{u.bytesPerSec=Math.ceil(u.loaded/((+new Date()-q||1)/1000));u.percent=u.size>0?Math.ceil(u.loaded/u.size*100):0}}g.extend(this,{state:g.STOPPED,runtime:"",features:{},files:t,settings:r,total:u,id:g.guid(),init:function(){var A=this,B,x,w,z=0,y;if(typeof(r.preinit)=="function"){r.preinit(A)}else{g.each(r.preinit,function(D,C){A.bind(C,D)})}r.page_url=r.page_url||document.location.pathname.replace(/\/[^\/]+$/g,"/");if(!/^(\w+:\/\/|\/)/.test(r.url)){r.url=r.page_url+r.url}r.chunk_size=g.parseSize(r.chunk_size);r.max_file_size=g.parseSize(r.max_file_size);A.bind("FilesAdded",function(C,F){var E,D,H=0,I,G=r.filters;if(G&&G.length){I=[];g.each(G,function(J){g.each(J.extensions.split(/,/),function(K){if(/^\s*\*\s*$/.test(K)){I.push("\\.*")}else{I.push("\\."+K.replace(new RegExp("["+("/^$.*+?|()[]{}\\".replace(/./g,"\\$&"))+"]","g"),"\\$&"))}})});I=new RegExp(I.join("|")+"$","i")}for(E=0;Er.max_file_size){C.trigger("Error",{code:g.FILE_SIZE_ERROR,message:g.translate("File size error."),file:D});continue}t.push(D);H++}if(H){c(function(){A.trigger("QueueChanged");A.refresh()},1)}else{return false}});if(r.unique_names){A.bind("UploadFile",function(C,D){var F=D.name.match(/\.([^.]+)$/),E="tmp";if(F){E=F[1]}D.target_name=D.id+"."+E})}A.bind("UploadProgress",function(C,D){D.percent=D.size>0?Math.ceil(D.loaded/D.size*100):100;o()});A.bind("StateChanged",function(C){if(C.state==g.STARTED){q=(+new Date())}else{if(C.state==g.STOPPED){for(B=C.files.length-1;B>=0;B--){if(C.files[B].status==g.UPLOADING){C.files[B].status=g.QUEUED;o()}}}}});A.bind("QueueChanged",o);A.bind("Error",function(C,D){if(D.file){D.file.status=g.FAILED;o();if(C.state==g.STARTED){c(function(){s.call(A)},1)}}});A.bind("FileUploaded",function(C,D){D.status=g.DONE;D.loaded=D.size;C.trigger("UploadProgress",D);c(function(){s.call(A)},1)});if(r.runtimes){x=[];y=r.runtimes.split(/\s?,\s?/);for(B=0;B=0;v--){if(t[v].id===w){return t[v]}}},removeFile:function(w){var v;for(v=t.length-1;v>=0;v--){if(t[v].id===w.id){return this.splice(v,1)[0]}}},splice:function(x,v){var w;w=t.splice(x===b?0:x,v===b?t.length:v);this.trigger("FilesRemoved",w);this.trigger("QueueChanged");return w},trigger:function(w){var y=p[w.toLowerCase()],x,v;if(y){v=Array.prototype.slice.call(arguments);v[0]=this;for(x=0;x=0;w--){if(y[w].func===x){y.splice(w,1);break}}}else{y=[]}if(!y.length){delete p[v]}}},unbindAll:function(){var v=this;g.each(p,function(x,w){v.unbind(w)})},destroy:function(){this.trigger("Destroy");this.unbindAll()}})};g.File=function(r,p,q){var o=this;o.id=r;o.name=p;o.size=q;o.loaded=0;o.percent=0;o.status=0};g.Runtime=function(){this.getFeatures=function(){};this.init=function(o,p){}};g.QueueProgress=function(){var o=this;o.size=0;o.loaded=0;o.uploaded=0;o.failed=0;o.queued=0;o.percent=0;o.bytesPerSec=0;o.reset=function(){o.size=o.loaded=o.uploaded=o.failed=o.queued=o.percent=o.bytesPerSec=0}};g.runtimes={};window.plupload=g})();(function(){if(window.google&&google.gears){return}var a=null;if(typeof GearsFactory!="undefined"){a=new GearsFactory()}else{try{a=new ActiveXObject("Gears.Factory");if(a.getBuildInfo().indexOf("ie_mobile")!=-1){a.privateSetGlobalObject(this)}}catch(b){if((typeof navigator.mimeTypes!="undefined")&&navigator.mimeTypes["application/x-googlegears"]){a=document.createElement("object");a.style.display="none";a.width=0;a.height=0;a.type="application/x-googlegears";document.documentElement.appendChild(a)}}}if(!a){return}if(!window.google){window.google={}}if(!google.gears){google.gears={factory:a}}})();(function(e,b,c,d){var f={};function a(h,k,m){var g,j,l,o;j=google.gears.factory.create("beta.canvas");try{j.decode(h);if(!k.width){k.width=j.width}if(!k.height){k.height=j.height}o=Math.min(width/j.width,height/j.height);if(o<1||(o===1&&m==="image/jpeg")){j.resize(Math.round(j.width*o),Math.round(j.height*o));if(k.quality){return j.encode(m,{quality:k.quality/100})}return j.encode(m)}}catch(n){}return h}c.runtimes.Gears=c.addRuntime("gears",{getFeatures:function(){return{dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true,multipart:true}},init:function(j,l){var k;if(!e.google||!google.gears){return l({success:false})}try{k=google.gears.factory.create("beta.desktop")}catch(h){return l({success:false})}function g(o){var n,m,p=[],q;for(m=0;m0;t=Math.ceil(p.size/q);if(!m){q=p.size;t=1}function n(){var z,B,w=s.settings.multipart,v=0,A={name:p.target_name||p.name},x=s.settings.url;function y(D){var C,I="----pluploadboundary"+c.guid(),F="--",H="\r\n",E,G;if(w){z.setRequestHeader("Content-Type","multipart/form-data; boundary="+I);C=google.gears.factory.create("beta.blobbuilder");c.each(c.extend(A,s.settings.multipart_params),function(K,J){C.append(F+I+H+'Content-Disposition: form-data; name="'+J+'"'+H+H);C.append(K+H)});G=c.mimeTypes[p.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream";C.append(F+I+H+'Content-Disposition: form-data; name="'+s.settings.file_data_name+'"; filename="'+p.name+'"'+H+"Content-Type: "+G+H+H);C.append(D);C.append(H+F+I+F+H);E=C.getAsBlob();v=E.length-D.length;D=E}z.send(D)}if(p.status==c.DONE||p.status==c.FAILED||s.state==c.STOPPED){return}if(m){A.chunk=u;A.chunks=t}B=Math.min(q,p.size-(u*q));if(!w){x=c.buildUrl(s.settings.url,A)}z=google.gears.factory.create("beta.httprequest");z.open("POST",x);if(!w){z.setRequestHeader("Content-Disposition",'attachment; filename="'+p.name+'"');z.setRequestHeader("Content-Type","application/octet-stream")}c.each(s.settings.headers,function(D,C){z.setRequestHeader(C,D)});z.upload.onprogress=function(C){p.loaded=r+C.loaded-v;s.trigger("UploadProgress",p)};z.onreadystatechange=function(){var C;if(z.readyState==4){if(z.status==200){C={chunk:u,chunks:t,response:z.responseText,status:z.status};s.trigger("ChunkUploaded",p,C);if(C.cancelled){p.status=c.FAILED;return}r+=B;if(++u>=t){p.status=c.DONE;s.trigger("FileUploaded",p,{response:z.responseText,status:z.status})}else{n()}}else{s.trigger("Error",{code:c.HTTP_ERROR,message:c.translate("HTTP Error."),file:p,chunk:u,chunks:t,status:z.status})}}};if(u3){l.pop()}while(l.length<4){l.push(0)}m=s.split(".");while(m.length>4){m.pop()}do{u=parseInt(m[q],10);n=parseInt(l[q],10);q++}while(q8?"":0.01});o.className="plupload silverlight";if(p.settings.container){k=b.getElementById(p.settings.container);if(d.getStyle(k,"position")==="static"){k.style.position="relative"}}k.appendChild(o);for(l=0;l';function j(){return b.getElementById(p.id+"_silverlight").content.Upload}p.bind("Silverlight:Init",function(){var r,s={};if(h[p.id]){return}h[p.id]=true;p.bind("Silverlight:StartSelectFiles",function(t){r=[]});p.bind("Silverlight:SelectFile",function(t,w,u,v){var x;x=d.guid();s[x]=w;s[w]=x;r.push(new d.File(x,u,v))});p.bind("Silverlight:SelectSuccessful",function(){if(r.length){p.trigger("FilesAdded",r)}});p.bind("Silverlight:UploadChunkError",function(t,w,u,x,v){p.trigger("Error",{code:d.IO_ERROR,message:"IO Error.",details:v,file:t.getFile(s[w])})});p.bind("Silverlight:UploadFileProgress",function(t,x,u,w){var v=t.getFile(s[x]);if(v.status!=d.FAILED){v.size=w;v.loaded=u;t.trigger("UploadProgress",v)}});p.bind("Refresh",function(t){var u,v,w;u=b.getElementById(t.settings.browse_button);if(u){v=d.getPos(u,b.getElementById(t.settings.container));w=d.getSize(u);d.extend(b.getElementById(t.id+"_silverlight_container").style,{top:v.y+"px",left:v.x+"px",width:w.w+"px",height:w.h+"px"})}});p.bind("Silverlight:UploadChunkSuccessful",function(t,w,u,z,y){var x,v=t.getFile(s[w]);x={chunk:u,chunks:z,response:y};t.trigger("ChunkUploaded",v,x);if(v.status!=d.FAILED){j().UploadNextChunk()}if(u==z-1){v.status=d.DONE;t.trigger("FileUploaded",v,{response:y})}});p.bind("Silverlight:UploadSuccessful",function(t,w,u){var v=t.getFile(s[w]);v.status=d.DONE;t.trigger("FileUploaded",v,{response:u})});p.bind("FilesRemoved",function(t,v){var u;for(u=0;u';function n(){return b.getElementById(k.id+"_flash")}function m(){if(q++>5000){p({success:false});return}if(!g[k.id]){setTimeout(m,1)}}m();o=j=null;k.bind("Flash:Init",function(){var s={},r;n().setFileFilters(k.settings.filters,k.settings.multi_selection);if(g[k.id]){return}g[k.id]=true;k.bind("UploadFile",function(t,v){var w=t.settings,u=k.settings.resize||{};n().uploadFile(s[v.id],w.url,{name:v.target_name||v.name,mime:d.mimeTypes[v.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream",chunk_size:w.chunk_size,width:u.width,height:u.height,quality:u.quality,multipart:w.multipart,multipart_params:w.multipart_params||{},file_data_name:w.file_data_name,format:/\.(jpg|jpeg)$/i.test(v.name)?"jpg":"png",headers:w.headers,urlstream_upload:w.urlstream_upload})});k.bind("Flash:UploadProcess",function(u,t){var v=u.getFile(s[t.id]);if(v.status!=d.FAILED){v.loaded=t.loaded;v.size=t.size;u.trigger("UploadProgress",v)}});k.bind("Flash:UploadChunkComplete",function(t,v){var w,u=t.getFile(s[v.id]);w={chunk:v.chunk,chunks:v.chunks,response:v.text};t.trigger("ChunkUploaded",u,w);if(u.status!=d.FAILED){n().uploadNextChunk()}if(v.chunk==v.chunks-1){u.status=d.DONE;t.trigger("FileUploaded",u,{response:v.text})}});k.bind("Flash:SelectFiles",function(t,w){var v,u,x=[],y;for(u=0;u0){r(++t,v)}else{k.status=a.DONE;n.trigger("FileUploaded",k,{response:x.value.body,status:w});if(w>=400){n.trigger("Error",{code:a.HTTP_ERROR,message:a.translate("HTTP Error."),file:k,status:w})}}}else{n.trigger("Error",{code:a.GENERIC_ERROR,message:a.translate("Generic Error."),file:k,details:x.error})}})}function q(t){k.size=t.size;if(l){e.FileAccess.chunk({file:t,chunkSize:l},function(w){if(w.success){var x=w.value,u=x.length;o=Array(u);for(var v=0;v0&&navigator.vendor.indexOf("Apple")!==-1;return{html5:n,dragdrop:p.mozInnerScreenX!==d||m||f,jpgresize:o,pngresize:o,multipart:o||!!p.FileReader||!!p.FormData,progress:q,chunks:m||o,canOpenDialog:navigator.userAgent.indexOf("WebKit")!==-1}},init:function(p,q){var m={},n;function o(v){var t,s,u=[],w,r={};for(s=0;s";D=j.getElementById(p.id+"_html5");D.onchange=function(){o(this.files);this.value=""};E=j.getElementById(v.settings.browse_button);if(E){var x=v.settings.browse_button_hover,z=v.settings.browse_button_active,w=v.features.canOpenDialog?E:F;if(x){h.addEvent(w,"mouseover",function(){h.addClass(E,x)},v.id);h.addEvent(w,"mouseout",function(){h.removeClass(E,x)},v.id)}if(z){h.addEvent(w,"mousedown",function(){h.addClass(E,z)},v.id);h.addEvent(j.body,"mouseup",function(){h.removeClass(E,z)},v.id)}if(v.features.canOpenDialog){h.addEvent(E,"click",function(y){j.getElementById(v.id+"_html5").click();y.preventDefault()},v.id)}}});p.bind("PostInit",function(){var r=j.getElementById(p.settings.drop_element);if(r){if(f){h.addEvent(r,"dragenter",function(v){var u,s,t;u=j.getElementById(p.id+"_drop");if(!u){u=j.createElement("input");u.setAttribute("type","file");u.setAttribute("id",p.id+"_drop");u.setAttribute("multiple","multiple");h.addEvent(u,"change",function(){o(this.files);h.removeEvent(u,"change",p.id);u.parentNode.removeChild(u)},p.id);r.appendChild(u)}s=h.getPos(r,j.getElementById(p.settings.container));t=h.getSize(r);if(h.getStyle(r,"position")==="static"){h.extend(r.style,{position:"relative"})}h.extend(u.style,{position:"absolute",display:"block",top:0,left:0,width:t.w+"px",height:t.h+"px",opacity:0})},p.id);return}h.addEvent(r,"dragover",function(s){s.preventDefault()},p.id);h.addEvent(r,"drop",function(t){var s=t.dataTransfer;if(s&&s.files){o(s.files)}t.preventDefault()},p.id)}});p.bind("Refresh",function(r){var s,u,v,w,t;s=j.getElementById(p.settings.browse_button);if(s){u=h.getPos(s,j.getElementById(r.settings.container));v=h.getSize(s);w=j.getElementById(p.id+"_html5_container");h.extend(w.style,{top:u.y+"px",left:u.x+"px",width:v.w+"px",height:v.h+"px"});if(p.features.canOpenDialog){t=parseInt(s.parentNode.style.zIndex,10);if(isNaN(t)){t=0}h.extend(s.style,{zIndex:t});if(h.getStyle(s,"position")==="static"){h.extend(s.style,{position:"relative"})}h.extend(w.style,{zIndex:t-1})}}});p.bind("UploadFile",function(r,t){var u=r.settings,w,s;function v(x){var A=0,z=0;function y(){var H=x,O,P,K,L,M=0,D="----pluploadboundary"+h.guid(),G,I,E,F="--",N="\r\n",J="",C,B=r.settings.url;if(t.status==h.DONE||t.status==h.FAILED||r.state==h.STOPPED){return}L={name:t.target_name||t.name};if(u.chunk_size&&n.chunks){G=u.chunk_size;K=Math.ceil(t.size/G);I=Math.min(G,t.size-(A*G));if(typeof(x)=="string"){H=x.substring(A*G,A*G+I)}else{H=x.slice(A*G,I)}L.chunk=A;L.chunks=K}else{I=t.size}O=new XMLHttpRequest();P=O.upload;if(P){P.onprogress=function(Q){t.loaded=Math.min(t.size,z+Q.loaded-M);r.trigger("UploadProgress",t)}}if(!r.settings.multipart||!n.multipart){B=h.buildUrl(r.settings.url,L)}else{L.name=t.target_name||t.name}O.open("post",B,true);O.onreadystatechange=function(){var Q,S;if(O.readyState==4){try{Q=O.status}catch(R){Q=0}if(Q>=400){r.trigger("Error",{code:h.HTTP_ERROR,message:h.translate("HTTP Error."),file:t,status:Q})}else{if(K){S={chunk:A,chunks:K,response:O.responseText,status:Q};r.trigger("ChunkUploaded",t,S);z+=I;if(S.cancelled){t.status=h.FAILED;return}t.loaded=Math.min(t.size,(A+1)*G)}else{t.loaded=t.size}r.trigger("UploadProgress",t);if(!K||++A>=K){t.status=h.DONE;r.trigger("FileUploaded",t,{response:O.responseText,status:Q});w=x=m[t.id]=null}else{y()}}O=H=E=J=null}};h.each(r.settings.headers,function(R,Q){O.setRequestHeader(Q,R)});if(r.settings.multipart&&n.multipart){if(!O.sendAsBinary){E=new FormData();h.each(h.extend(L,r.settings.multipart_params),function(R,Q){E.append(Q,R)});E.append(r.settings.file_data_name,H);O.send(E);return}O.setRequestHeader("Content-Type","multipart/form-data; boundary="+D);h.each(h.extend(L,r.settings.multipart_params),function(R,Q){J+=F+D+N+'Content-Disposition: form-data; name="'+Q+'"'+N+N;J+=unescape(encodeURIComponent(R))+N});C=h.mimeTypes[t.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream";J+=F+D+N+'Content-Disposition: form-data; name="'+r.settings.file_data_name+'"; filename="'+unescape(encodeURIComponent(t.name))+'"'+N+"Content-Type: "+C+N+N+H+N+F+D+F+N;M=J.length-H.length;H=J}else{O.setRequestHeader("Content-Type","application/octet-stream")}if(O.sendAsBinary){O.sendAsBinary(H)}else{O.send(H)}}y()}w=m[t.id];s=r.settings.resize;if(n.jpgresize){if(s&&/\.(png|jpg|jpeg)$/i.test(t.name)){c(w,s,/\.png$/i.test(t.name)?"image/png":"image/jpeg",function(x){if(x.success){t.size=x.data.length;v(x.data)}else{k(w,v)}})}else{k(w,v)}}else{v(w)}});p.bind("Destroy",function(r){var t,u,s=j.body,v={inputContainer:r.id+"_html5_container",inputFile:r.id+"_html5",browseButton:r.settings.browse_button,dropElm:r.settings.drop_element};for(t in v){u=j.getElementById(v[t]);if(u){h.removeAllEvents(u,r.id)}}h.removeAllEvents(j.body,r.id);if(r.settings.container){s=j.getElementById(r.settings.container)}s.removeChild(j.getElementById(v.inputContainer))});q({success:true})}});function b(){var p=false,n;function q(s,u){var r=p?0:-8*(u-1),v=0,t;for(t=0;t>Math.abs(r+u*8))&255)}m(w,s,v)}return{II:function(r){if(r===d){return p}else{p=r}},init:function(r){p=false;n=r},SEGMENT:function(r,t,s){switch(arguments.length){case 1:return n.substr(r,n.length-r-1);case 2:return n.substr(r,t);case 3:m(s,r,t);break;default:return n}},BYTE:function(r){return q(r,1)},SHORT:function(r){return q(r,2)},LONG:function(r,s){if(s===d){return q(r,4)}else{o(r,s,4)}},SLONG:function(r){var s=q(r,4);return(s>2147483647?s-4294967296:s)},STRING:function(r,s){var t="";for(s+=r;r=65488&&o<=65495){m+=2;continue}if(o===65498||o===65497){break}p=q.SHORT(m+2)+2;if(t[o]&&q.STRING(m+4,t[o].signature.length)===t[o].signature){s.push({hex:o,app:t[o].app.toUpperCase(),name:t[o].name.toUpperCase(),start:m,length:p,segment:q.SEGMENT(m,p)})}m+=p}q.init(null);return{headers:s,restore:function(w){q.init(w);if(q.SHORT(0)!==65496){return false}m=q.SHORT(2)==65504?4+q.SHORT(4):2;for(var v=0,u=s.length;v=y.length){break}}},purge:function(){s=[];q.init(null)}}}function a(){var p,m,n={},s;p=new b();m={tiff:{274:"Orientation",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer"},exif:{36864:"ExifVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",36867:"DateTimeOriginal",33434:"ExposureTime",33437:"FNumber",34855:"ISOSpeedRatings",37377:"ShutterSpeedValue",37378:"ApertureValue",37383:"MeteringMode",37384:"LightSource",37385:"Flash",41986:"ExposureMode",41987:"WhiteBalance",41990:"SceneCaptureType",41988:"DigitalZoomRatio",41992:"Contrast",41993:"Saturation",41994:"Sharpness"},gps:{0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude"}};s={ColorSpace:{1:"sRGB",0:"Uncalibrated"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{1:"Daylight",2:"Fliorescent",3:"Tungsten",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 -5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire.",1:"Flash fired.",5:"Strobe return light not detected.",7:"Strobe return light detected.",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},ExposureMode:{0:"Auto exposure",1:"Manual exposure",2:"Auto bracket"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},GPSLatitudeRef:{N:"North latitude",S:"South latitude"},GPSLongitudeRef:{E:"East longitude",W:"West longitude"}};function o(t,B){var v=p.SHORT(t),y,E,F,A,z,u,w,C,D=[],x={};for(y=0;y4){w=p.LONG(w)+n.tiffHeader}for(E=0;E4){w=p.LONG(w)+n.tiffHeader}x[F]=p.STRING(w,z-1);continue;case 3:if(z>2){w=p.LONG(w)+n.tiffHeader}for(E=0;E1){w=p.LONG(w)+n.tiffHeader}for(E=0;E