com.main.mailer.UploadPdf.java Source code

Java tutorial

Introduction

Here is the source code for com.main.mailer.UploadPdf.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.main.mailer;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Timestamp;
import org.apache.commons.codec.binary.Base64;

/**
 *
 * @author user
 */
public class UploadPdf {

    public void savePdf(String imgv, String fileName, String filePath, String fileType) {
        try {
            imgv = imgv.replaceFirst("^data:application/[^;]*;base64,?", "");
            // Converting a Base64 String into Image byte array
            byte[] imageByteArray = decodeImage(imgv);

            // Write a image byte array into file system
            FileOutputStream imageOutFile = new FileOutputStream(filePath + fileName + fileType);
            imageOutFile.write(imageByteArray);

            imageOutFile.close();

            System.out.println("Pdf Successfully Uploaded!");

        } catch (FileNotFoundException e) {
            System.out.println("Image not found" + e);
        } catch (IOException ioe) {
            System.out.println("Exception while reading the Image " + ioe);
        }

    }

    public static byte[] decodeImage(String imageDataString) {
        return Base64.decodeBase64(imageDataString);
    }

    //    public static void main(String[] args) {
    //        testingClas.saveImages("data:application/pdf;base64,JVBERi0xLjMKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAyIDAgUgovTWVkaWFCb3ggWzAgMCA2MTIuMDAgNzkyLjAwXQovQ29udGVudHMgNCAwIFI+PgplbmRvYmoKNCAwIG9iago8PC9MZW5ndGggODQ1OD4+CnN0cmVhbQowLjIwIHcKMCBHCnEKcSBCVCAwIGcgNDAuMDAgNzExLjEzIFRkCjAgLTE4LjAwIFRkCi9GMTAgMTguMDAgVGYgKENPTVBBTlkgTE9HTykgVGoKRVQgUQpxIEJUIDAgZyA0MC4wMCA2NzUuMTMgVGQKMCAtMTMuNTAgVGQKL0YxMCAxMy41MCBUZiAoS2Fyd294ICYgU1BBIEluZGlhIFBWVCBMVEQpIFRqCkVUIFEKcSBCVCAwIGcgNDAuMDAgNjU5LjAwIFRkCjAgLTEyLjAwIFRkCi9GOSAxMC41MCBUZiAoQXJjaCBOby4gMjUvMjYsIEJlbG93IE1haGFsYXhtaSBCcmlkZ2UsIE9GRiBEUi4gRS4gTW9zZXMgUkQsIE1haGFsYXhtaSBcKFdcKS4gTXVtYmFpIC00MDAgMDM0KSBUagovRjkgMTAuNTAgVGYgKCApIFRqCi9GMTAgMTAuNTAgVGYgKFRlbHBob25lOikgVGoKMCAtMTIuMDAgVGQKL0Y5IDEwLjUwIFRmICg0MDAyODAwNC81ICkgVGoKL0YxMCAxMC41MCBUZiAoRmF4IE5vIEVtYWlsOiApIFRqCi9GOSAxMC41MCBUZiAoY3VzdG9tZXIuZmlyc3RAa2Fyd29yeC5jb20pIFRqCkVUIFEKcSBCVCAwIGcgNDAuMDAgNjI0LjUwIFRkCjAgLTEzLjUwIFRkCi9GMTAgMTMuNTAgVGYgKElOVk9JQ0UpIFRqCkVUIFEKcSBCVCAwIGcgNDAuMDAgNjExLjAwIFRkCjAgLTEyLjAwIFRkCi9GMTAgMTAuNTAgVGYgKEthdGhsZWVuIFIuIFdhcmQpIFRqCkVUIFEKcSBCVCAwIGcgNDAuMDAgNTkzLjc1IFRkCjAgLTEyLjAwIFRkCi9GOSAxMC41MCBUZiAoMzQ1MiBTaWdsZXkgUm9hZCBIYXlzLCBLUyA2NzYwMSApIFRqCi9GOSAxMC41MCBUZiAoNzg1NjI0NzIyMSkgVGoKL0Y5IDEwLjUwIFRmICggS2F0aGxlZW5SV2FyZEByaHl0YS5jb20pIFRqCkVUIFEKcSBCVCAwIGcgNDAuMDAgNTc4LjI1IFRkCjAgLTEyLjAwIFRkCi9GMTAgMTAuNTAgVGYgKEludm9pY2UgTm8pIFRqCi9GOSAxMC41MCBUZiAoIDogTElWMSkgVGoKL0Y5IDEwLjUwIFRmICggKSBUagovRjEwIDEwLjUwIFRmIChEYXRlKSBUagovRjkgMTAuNTAgVGYgKCA6IDIwMTUtMDQtMDQgMTI6MTk6MzQuMCkgVGoKL0Y5IDEwLjUwIFRmICggKSBUagovRjEwIDEwLjUwIFRmIChKb2IgTm8uICkgVGoKL0Y5IDEwLjUwIFRmICg6IDExNzkpIFRqCi9GOSAxMC41MCBUZiAoICkgVGoKL0YxMCAxMC41MCBUZiAoVmVoaWNsZSBNYWtlOikgVGoKRVQgUQowLjc4IDAuNzggMC43OCByZwo0MC4wMCA1NTMuNjMgMzIuNTEgLTMwLjYwIHJlCkIKQlQKL0YyIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKNDMuMDAgNTM5LjgzIFRkCihTci4gTm8uKSBUagpFVAowLjc4IDAuNzggMC43OCByZwo3Mi41MSA1NTMuNjMgMTMwLjUzIC0zMC42MCByZQpCCkJUCi9GMiAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjc1LjUxIDUzOS44MyBUZAooTmFtZSkgVGoKRVQKMC43OCAwLjc4IDAuNzggcmcKMjAzLjA0IDU1My42MyAxNTguMjYgLTMwLjYwIHJlCkIKQlQKL0YyIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKMjA2LjA0IDUzOS44MyBUZAooTUZHLikgVGoKRVQKMC43OCAwLjc4IDAuNzggcmcKMzYxLjMwIDU1My42MyA1OS4yOSAtMzAuNjAgcmUKQgpCVAovRjIgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwozNjQuMzAgNTM5LjgzIFRkCihRVFkpIFRqCkVUCjAuNzggMC43OCAwLjc4IHJnCjQyMC41OSA1NTMuNjMgNzYuNTAgLTMwLjYwIHJlCkIKQlQKL0YyIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKNDIzLjU5IDUzOS44MyBUZAooUHJpY2UgUnMuKSBUagpFVAo0MC4wMCA1MjMuMDIgMzIuNTEgLTE2LjgwIHJlClMKQlQKL0YxIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKNDMuMDAgNTA5LjIyIFRkCigxKSBUagpFVAo3Mi41MSA1MjMuMDIgMTMwLjUzIC0xNi44MCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjc1LjUxIDUwOS4yMiBUZAooKSBUagpFVAoyMDMuMDQgNTIzLjAyIDE1OC4yNiAtMTYuODAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwoyMDYuMDQgNTA5LjIyIFRkCihCT1NDSCkgVGoKRVQKMzYxLjMwIDUyMy4wMiA1OS4yOSAtMTYuODAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwozNjQuMzAgNTA5LjIyIFRkCig0KSBUagpFVAo0MjAuNTkgNTIzLjAyIDc2LjUwIC0xNi44MCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjQyMy41OSA1MDkuMjIgVGQKKDEwKSBUagpFVAo0MC4wMCA1MDYuMjIgMzIuNTEgLTMwLjYwIHJlClMKQlQKL0YxIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKNDMuMDAgNDkyLjQyIFRkCiigKSBUagpFVAo3Mi41MSA1MDYuMjIgMTMwLjUzIC0zMC42MCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjc1LjUxIDQ5Mi40MiBUZAoooCkgVGoKRVQKMjAzLjA0IDUwNi4yMiAxNTguMjYgLTMwLjYwIHJlClMKQlQKL0YxIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKMjA2LjA0IDQ5Mi40MiBUZAoooCkgVGoKRVQKMzYxLjMwIDUwNi4yMiA1OS4yOSAtMzAuNjAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwozNjQuMzAgNDkyLjQyIFRkCihTcGFyZXMpIFRqClQqICh0b3RhbCkgVGoKRVQKNDIwLjU5IDUwNi4yMiA3Ni41MCAtMzAuNjAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwo0MjMuNTkgNDkyLjQyIFRkCig0MCkgVGoKRVQKNDAuMDAgNDc1LjYyIDMyLjUxIC0xNi44MCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjQzLjAwIDQ2MS44MiBUZAoooCkgVGoKRVQKNzIuNTEgNDc1LjYyIDEzMC41MyAtMTYuODAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwo3NS41MSA0NjEuODIgVGQKKKApIFRqCkVUCjIwMy4wNCA0NzUuNjIgMTU4LjI2IC0xNi44MCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjIwNi4wNCA0NjEuODIgVGQKKKApIFRqCkVUCjM2MS4zMCA0NzUuNjIgNTkuMjkgLTE2LjgwIHJlClMKQlQKL0YxIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKMzY0LjMwIDQ2MS44MiBUZAoooCkgVGoKRVQKNDIwLjU5IDQ3NS42MiA3Ni41MCAtMTYuODAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwo0MjMuNTkgNDYxLjgyIFRkCiigKSBUagpFVAowLjc4IDAuNzggMC43OCByZwo0MC4wMCA0MjguODIgMzIuNTEgLTMwLjYwIHJlCkIKQlQKL0YyIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKNDMuMDAgNDE1LjAyIFRkCihTci4gTm8uKSBUagpFVAowLjc4IDAuNzggMC43OCByZwo3Mi41MSA0MjguODIgMTMwLjUzIC0zMC42MCByZQpCCkJUCi9GMiAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjc1LjUxIDQxNS4wMiBUZAooU2VydmljZSBOYW1lKSBUagpFVAowLjc4IDAuNzggMC43OCByZwoyMDMuMDQgNDI4LjgyIDE1OC4yNiAtMzAuNjAgcmUKQgpCVAovRjIgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwoyMDYuMDQgNDE1LjAyIFRkCihEZXNjcmlwdGlvbikgVGoKRVQKMC43OCAwLjc4IDAuNzggcmcKMzYxLjMwIDQyOC44MiA1OS4yOSAtMzAuNjAgcmUKQgpCVAovRjIgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwozNjQuMzAgNDE1LjAyIFRkCiigKSBUagpFVAowLjc4IDAuNzggMC43OCByZwo0MjAuNTkgNDI4LjgyIDc2LjUwIC0zMC42MCByZQpCCkJUCi9GMiAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjQyMy41OSA0MTUuMDIgVGQKKExhYm91ciBScy4pIFRqCkVUCjQwLjAwIDM5OC4yMiAzMi41MSAtNDQuNDAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwo0My4wMCAzODQuNDIgVGQKKKApIFRqCkVUCjcyLjUxIDM5OC4yMiAxMzAuNTMgLTQ0LjQwIHJlClMKQlQKL0YxIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKNzUuNTEgMzg0LjQyIFRkCiigKSBUagpFVAoyMDMuMDQgMzk4LjIyIDE1OC4yNiAtNDQuNDAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwoyMDYuMDQgMzg0LjQyIFRkCiigKSBUagpFVAozNjEuMzAgMzk4LjIyIDU5LjI5IC00NC40MCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjM2NC4zMCAzODQuNDIgVGQKKExhYm91cikgVGoKVCogKENoYXJnZXMpIFRqClQqICh0b3RhbCkgVGoKRVQKNDIwLjU5IDM5OC4yMiA3Ni41MCAtNDQuNDAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwo0MjMuNTkgMzg0LjQyIFRkCigwKSBUagpFVAo0MC4wMCAzNTMuODIgMzIuNTEgLTE2LjgwIHJlClMKQlQKL0YxIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKNDMuMDAgMzQwLjAyIFRkCiigKSBUagpFVAo3Mi41MSAzNTMuODIgMTMwLjUzIC0xNi44MCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjc1LjUxIDM0MC4wMiBUZAoooCkgVGoKRVQKMjAzLjA0IDM1My44MiAxNTguMjYgLTE2LjgwIHJlClMKQlQKL0YxIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKMjA2LjA0IDM0MC4wMiBUZAoooCkgVGoKRVQKMzYxLjMwIDM1My44MiA1OS4yOSAtMTYuODAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwozNjQuMzAgMzQwLjAyIFRkCiigKSBUagpFVAo0MjAuNTkgMzUzLjgyIDc2LjUwIC0xNi44MCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjQyMy41OSAzNDAuMDIgVGQKKKApIFRqCkVUCjQwLjAwIDMzNy4wMiAzMi41MSAtMzAuNjAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwo0My4wMCAzMjMuMjIgVGQKKKApIFRqCkVUCjcyLjUxIDMzNy4wMiAxMzAuNTMgLTMwLjYwIHJlClMKQlQKL0YxIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKNzUuNTEgMzIzLjIyIFRkCiigKSBUagpFVAoyMDMuMDQgMzM3LjAyIDE1OC4yNiAtMzAuNjAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwoyMDYuMDQgMzIzLjIyIFRkCiigKSBUagpFVAozNjEuMzAgMzM3LjAyIDU5LjI5IC0zMC42MCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjM2NC4zMCAzMjMuMjIgVGQKKEFkZCBWQVQpIFRqClQqIChAIDE0JSkgVGoKRVQKNDIwLjU5IDMzNy4wMiA3Ni41MCAtMzAuNjAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwo0MjMuNTkgMzIzLjIyIFRkCiggNS42MCkgVGoKRVQKNDAuMDAgMzA2LjQyIDMyLjUxIC01OC4yMCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjQzLjAwIDI5Mi42MiBUZAoooCkgVGoKRVQKNzIuNTEgMzA2LjQyIDEzMC41MyAtNTguMjAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwo3NS41MSAyOTIuNjIgVGQKKKApIFRqCkVUCjIwMy4wNCAzMDYuNDIgMTU4LjI2IC01OC4yMCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjIwNi4wNCAyOTIuNjIgVGQKKKApIFRqCkVUCjM2MS4zMCAzMDYuNDIgNTkuMjkgLTU4LjIwIHJlClMKQlQKL0YxIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKMzY0LjMwIDI5Mi42MiBUZAooQWRkKSBUagpUKiAoU0VSVklDRSkgVGoKVCogKFRBWCBAKSBUagpUKiAoMTIuMzYlKSBUagpFVAo0MjAuNTkgMzA2LjQyIDc2LjUwIC01OC4yMCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjQyMy41OSAyOTIuNjIgVGQKKCAwKSBUagpFVAo0MC4wMCAyNDguMjIgMzIuNTEgLTE2LjgwIHJlClMKQlQKL0YxIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKNDMuMDAgMjM0LjQyIFRkCiigKSBUagpFVAo3Mi41MSAyNDguMjIgMTMwLjUzIC0xNi44MCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjc1LjUxIDIzNC40MiBUZAoooCkgVGoKRVQKMjAzLjA0IDI0OC4yMiAxNTguMjYgLTE2LjgwIHJlClMKQlQKL0YxIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKMjA2LjA0IDIzNC40MiBUZAoooCkgVGoKRVQKMzYxLjMwIDI0OC4yMiA1OS4yOSAtMTYuODAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwozNjQuMzAgMjM0LjQyIFRkCiigKSBUagpFVAo0MjAuNTkgMjQ4LjIyIDc2LjUwIC0xNi44MCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjQyMy41OSAyMzQuNDIgVGQKKKApIFRqCkVUCjQwLjAwIDIzMS40MiAzMi41MSAtNDQuNDAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwo0My4wMCAyMTcuNjMgVGQKKKApIFRqCkVUCjcyLjUxIDIzMS40MiAxMzAuNTMgLTQ0LjQwIHJlClMKQlQKL0YxIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKNzUuNTEgMjE3LjYzIFRkCiigKSBUagpFVAoyMDMuMDQgMjMxLjQyIDE1OC4yNiAtNDQuNDAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwoyMDYuMDQgMjE3LjYzIFRkCiggIEVpZ2h0IEh1bmRyZWQgYW5kIFRoaXJ0eSkgVGoKVCogKE9uZSBSdXBlZXMgYW5kIHplcm8gcGFpc2EpIFRqClQqIChvbmx5ICkgVGoKRVQKMzYxLjMwIDIzMS40MiA1OS4yOSAtNDQuNDAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwozNjQuMzAgMjE3LjYzIFRkCihUb3RhbCkgVGoKRVQKNDIwLjU5IDIzMS40MiA3Ni41MCAtNDQuNDAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwo0MjMuNTkgMjE3LjYzIFRkCig4MzEuMDApIFRqCkVUCjQwLjAwIDE4Ny4wMiAzMi41MSAtMTYuODAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwo0My4wMCAxNzMuMjMgVGQKKKApIFRqCkVUCjcyLjUxIDE4Ny4wMiAxMzAuNTMgLTE2LjgwIHJlClMKQlQKL0YxIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKNzUuNTEgMTczLjIzIFRkCiigKSBUagpFVAoyMDMuMDQgMTg3LjAyIDE1OC4yNiAtMTYuODAgcmUKUwpCVAovRjEgMTIgVGYKMTMuNzk5OTk5OTk5OTk5OTk5IFRMCjAgZwoyMDYuMDQgMTczLjIzIFRkCiigKSBUagpFVAozNjEuMzAgMTg3LjAyIDU5LjI5IC0xNi44MCByZQpTCkJUCi9GMSAxMiBUZgoxMy43OTk5OTk5OTk5OTk5OTkgVEwKMCBnCjM2NC4zMCAxNzMuMjMgVGQKKKApIFRqCkVUCjQyMC41OSAxODcuMDIgNzYuNTAgLTE2LjgwIHJlClMKQlQKL0YxIDEyIFRmCjEzLjc5OTk5OTk5OTk5OTk5OSBUTAowIGcKNDIzLjU5IDE3My4yMyBUZAoooCkgVGoKRVQKcSBCVCAwIGcgNDAuMDAgMTQ5LjM1IFRkCjAgLTEyLjAwIFRkCi9GMTAgMTAuNTAgVGYgKEludm9pY2UgdmVyaWZpZWQgKSBUagovRjkgMTAuNTAgVGYgKFJlY2VpdmVkIGFsbCBvbGQgcGFydHMuIEkgaGF2ZSB0YWtlbiB0aGUgdmVoaWNsZSBhbmQgZm91bmQgc2F0aXNmYWN0b3J5KSBUagpFVCBRCnEgQlQgMCBnIDQwLjAwIDEzNy4zNSBUZAowIC0xMi4wMCBUZAovRjEwIDEwLjUwIFRmIChLQVIgV09SWCAmIFNQQSBJTkRJQSBQVlQuIExURC4pIFRqCkVUIFEKcSBCVCAwIGcgNDAuMDAgMTEzLjEwIFRkCjAgLTEyLjAwIFRkCi9GMTAgMTAuNTAgVGYgKEN1c3RvbWVyJ3MgU2lnbmF0dXJlICkgVGoKL0Y5IDEwLjUwIFRmIChDLkUuUy5UYXggTm8uIEFBRENCMDIxNERTRDAwMSkgVGoKL0Y5IDEwLjUwIFRmICggVkFUIFRJTiBOby4gMjc2NTA5ODAzMDlWIHdlZiAyNi8wNC8yMDEzICkgVGoKL0Y5IDEwLjUwIFRmIChDU1QgVElOIE5vKSBUagowIC0xMi4wMCBUZAovRjkgMTAuNTAgVGYgKDI3NjUwOTgwMzA5QyB3ZWYgMjYvMDQvMjAxMyApIFRqCi9GOSAxMC41MCBUZiAoIFBBTiBOby4gQUFEQ0IwMjE0RCApIFRqCi9GMTAgMTAuNTAgVGYgKFRlcm1zIGFuZCBDb25kaXRpb25zKSBUagovRjkgMTAuNTAgVGYgKCAxLiBEaXNwdXRlcyBpZiBhbnkgd2lsbCBiZSBzdWJqZWN0IHRvKSBUagowIC0xMi4wMCBUZAovRjkgMTAuNTAgVGYgKE1VTUJBSSBqdXJpc2RpY3Rpb24gKSBUagovRjkgMTAuNTAgVGYgKDIuIEludGVyZXN0IEAgMTglIHdvdWxkIGJlIGNoYXJnZWQgb24gYWxsIGJpbGxzIHVucGFpZCBhZnRlciAzMCBkYXlzIGZyb20gdGhlIGRhdGUgb2YgdGhlIGJpbGwgKSBUagovRjkgMTAuNTAgVGYgKCJJIC8gV2UpIFRqCjAgLTEyLjAwIFRkCi9GOSAxMC41MCBUZiAoaGVyZWJ5IGNlcnRpZnkgdGhhdCBteS9vdXIgUi5DLiB1bmRlciB0aGUgTWFoLiBWYWx1ZSBBZGRlZCBUYXggQWN0IDIwMDIgaXMgaW4gZm9yY2Ugb24gdGhlIGRhdGEgb24gd2hpY2ggdGhlIHNhbGUgb2YgdGhlKSBUagowIC0xMi4wMCBUZApFVCBRCmVuZHN0cmVhbQplbmRvYmoKNSAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAyIDAgUgovTWVkaWFCb3ggWzAgMCA2MTIuMDAgNzkyLjAwXQovQ29udGVudHMgNiAwIFI+PgplbmRvYmoKNiAwIG9iago8PC9MZW5ndGggNDMzPj4Kc3RyZWFtCjAuMjAgdwowIEcKcSBCVCAwIGcgNDAuMDAgNzEyLjAwIFRkCjAgLTEyLjAwIFRkCi9GOSAxMC41MCBUZiAoZ29vZHMgc3BlY2lmaWVkIGluIHRoaXMgVGF4IEludm9pY2UgaXMgbWFkZSBieSBtZSAvIHVzIGFuZCB0aGF0IHRoZSB0cmFuc2FjdGlvbiBvZiBzYWxlIGNvdmVyZWQgYnkgdGhpcyBpbnZvaWNlIGhhcyBiZWVuKSBUagowIC0xMi4wMCBUZAovRjkgMTAuNTAgVGYgKGVmZmVjdGVkIGJ5IG1lIC8gdXMgYW5kIGl0IHNoYWxsIGJlIGFjY291bnRlZCBmb3IgaW4gdGhlIHR1cm5vdmVyIG9mIHNhbGVzIHdoaWxlIGZpbGluZyBvZiByZXR1cm4gYW5kIHRoZSBkdWUgdGF4LCBpZiBhbnksaWYgYW55KSBUagowIC0xMi4wMCBUZAovRjkgMTAuNTAgVGYgKHBheWFibGVvbiB0aGUgc2FsZSBoYXMgYmVlbiBwYWlkIG9yIHNoYWxsIGJlIHBhaWQiKSBUagpFVCBRClEKZW5kc3RyZWFtCmVuZG9iagoxIDAgb2JqCjw8L1R5cGUgL1BhZ2VzCi9LaWRzIFszIDAgUiA1IDAgUiBdCi9Db3VudCAyCj4+CmVuZG9iago3IDAgb2JqCjw8L0Jhc2VGb250L0hlbHZldGljYS9UeXBlL0ZvbnQKL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZwovU3VidHlwZS9UeXBlMT4+CmVuZG9iago4IDAgb2JqCjw8L0Jhc2VGb250L0hlbHZldGljYS1Cb2xkL1R5cGUvRm9udAovRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nCi9TdWJ0eXBlL1R5cGUxPj4KZW5kb2JqCjkgMCBvYmoKPDwvQmFzZUZvbnQvSGVsdmV0aWNhLU9ibGlxdWUvVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKMTAgMCBvYmoKPDwvQmFzZUZvbnQvSGVsdmV0aWNhLUJvbGRPYmxpcXVlL1R5cGUvRm9udAovRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nCi9TdWJ0eXBlL1R5cGUxPj4KZW5kb2JqCjExIDAgb2JqCjw8L0Jhc2VGb250L0NvdXJpZXIvVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKMTIgMCBvYmoKPDwvQmFzZUZvbnQvQ291cmllci1Cb2xkL1R5cGUvRm9udAovRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nCi9TdWJ0eXBlL1R5cGUxPj4KZW5kb2JqCjEzIDAgb2JqCjw8L0Jhc2VGb250L0NvdXJpZXItT2JsaXF1ZS9UeXBlL0ZvbnQKL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZwovU3VidHlwZS9UeXBlMT4+CmVuZG9iagoxNCAwIG9iago8PC9CYXNlRm9udC9Db3VyaWVyLUJvbGRPYmxpcXVlL1R5cGUvRm9udAovRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nCi9TdWJ0eXBlL1R5cGUxPj4KZW5kb2JqCjE1IDAgb2JqCjw8L0Jhc2VGb250L1RpbWVzLVJvbWFuL1R5cGUvRm9udAovRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nCi9TdWJ0eXBlL1R5cGUxPj4KZW5kb2JqCjE2IDAgb2JqCjw8L0Jhc2VGb250L1RpbWVzLUJvbGQvVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKMTcgMCBvYmoKPDwvQmFzZUZvbnQvVGltZXMtSXRhbGljL1R5cGUvRm9udAovRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nCi9TdWJ0eXBlL1R5cGUxPj4KZW5kb2JqCjE4IDAgb2JqCjw8L0Jhc2VGb250L1RpbWVzLUJvbGRJdGFsaWMvVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKMiAwIG9iago8PAovUHJvY1NldCBbL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSV0KL0ZvbnQgPDwKL0YxIDcgMCBSCi9GMiA4IDAgUgovRjMgOSAwIFIKL0Y0IDEwIDAgUgovRjUgMTEgMCBSCi9GNiAxMiAwIFIKL0Y3IDEzIDAgUgovRjggMTQgMCBSCi9GOSAxNSAwIFIKL0YxMCAxNiAwIFIKL0YxMSAxNyAwIFIKL0YxMiAxOCAwIFIKPj4KL1hPYmplY3QgPDwKPj4KPj4KZW5kb2JqCjE5IDAgb2JqCjw8Ci9Qcm9kdWNlciAoanNQREYgMS4wLjI3Mi1kZWJ1ZyAyMDE0LTA5LTI5VDE1OjA5OmRpZWdvY3IpCi9DcmVhdGlvbkRhdGUgKEQ6MjAxNTA0MDYxNjUxMDIrMDUnMzAnKQo+PgplbmRvYmoKMjAgMCBvYmoKPDwKL1R5cGUgL0NhdGFsb2cKL1BhZ2VzIDEgMCBSCi9PcGVuQWN0aW9uIFszIDAgUiAvRml0SCBudWxsXQovUGFnZUxheW91dCAvT25lQ29sdW1uCj4+CmVuZG9iagp4cmVmCjAgMjEKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDA5MjE1IDAwMDAwIG4gCjAwMDAwMTA0MjIgMDAwMDAgbiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDAwMTE3IDAwMDAwIG4gCjAwMDAwMDg2MjUgMDAwMDAgbiAKMDAwMDAwODczMyAwMDAwMCBuIAowMDAwMDA5Mjc4IDAwMDAwIG4gCjAwMDAwMDkzNjggMDAwMDAgbiAKMDAwMDAwOTQ2MyAwMDAwMCBuIAowMDAwMDA5NTYxIDAwMDAwIG4gCjAwMDAwMDk2NjQgMDAwMDAgbiAKMDAwMDAwOTc1MyAwMDAwMCBuIAowMDAwMDA5ODQ3IDAwMDAwIG4gCjAwMDAwMDk5NDQgMDAwMDAgbiAKMDAwMDAxMDA0NSAwMDAwMCBuIAowMDAwMDEwMTM4IDAwMDAwIG4gCjAwMDAwMTAyMzAgMDAwMDAgbiAKMDAwMDAxMDMyNCAwMDAwMCBuIAowMDAwMDEwNjQ4IDAwMDAwIG4gCjAwMDAwMTA3NjcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAyMQovUm9vdCAyMCAwIFIKL0luZm8gMTkgMCBSCj4+CnN0YXJ0eHJlZgoxMDg3MQolJUVPRg==");
    //        System.out.println("Saved nitzzzzzz");
    //    }
}