您的位置:首页 > 奇异游戏 >

没有找到mfc71udll(半导体零部件行业间研究:行业高景气,国产替代空间广阔)

导读 没有找到mfc71udll文章列表:1、半导体零部件行业间研究:行业高景气,国产替代空间广阔2、Java对图片Base64转码——HTML对Base64解码Java加强版3、C++学习教程_C++语言随到随学

没有找到mfc71udll文章列表:

没有找到mfc71udll(半导体零部件行业间研究:行业高景气,国产替代空间广阔)

Java对图片Base64转码——HTML对Base64解码Java加强版

Java对图片Base64编码

package base64;

import java.awt.image.BufferedImage;

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.RandomAccessFile;

import java.util.Scanner;

import javax.imageio.ImageIO;

import sun.misc.BASE64Decoder;

import sun.misc.BASE64Encoder;

public class imageToBase64 {

static BASE64Encoder encoder = new sun.misc.BASE64Encoder();

static BASE64Decoder decoder = new sun.misc.BASE64Decoder();

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in) ;

System.out.printf("tt*********************************************n");

System.out.printf("tt** 欢迎使用W_Jp的Base64编码 **n");

System.out.printf("tt*********************************************n");

System.out.printf("输入图片地址:");

String path = scanner.next() ;

if(!getImageBinary(path).equals(""))

{

System.out.printf("n" getImageBinary(path) "nn");

System.out.printf("是否导出内容?(Y/N):");

String boo = scanner.next() ;

if(boo.equals("Y") || boo.equals("y")){

System.out.println();

System.out.printf("tt*********************************************n");

System.out.printf("tt** 1.导出现Base64编码到TXT文档 **n");

System.out.printf("tt** 2.导出Base64解码后的png图片 **n");

System.out.printf("tt** 3.同时操作以上两个 **n");

System.out.printf("tt*********************************************n");

System.out.printf("输入您的选择:");

boo = scanner.next() ;

if(boo.equals("1")){

System.out.println();

System.out.printf("tt*********************************************n");

System.out.printf("tt** 温馨提示:导出后文件名为wjp.txt **n");

System.out.printf("tt*********************************************n");

System.out.printf("输入Base64编码的导出地址:");

String toTxtPath = scanner.next() ;

if(base64StringToTxt(getImageBinary(path), toTxtPath).equals("success")){

System.out.println();

System.out.printf("tt*********************************************n");

System.out.printf("tt** 导出成功 **n");

System.out.printf("tt*********************************************n");

System.out.printf("tt** Thanks!!! **n");

System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");

}

} else if(boo.equals("2")){

System.out.println();

System.out.printf("tt*********************************************n");

System.out.printf("tt** 温馨提示:导出后文件名为wjp.png **n");

System.out.printf("tt*********************************************n");

System.out.printf("输入解码后图片的导出地址:");

String toImgPath = scanner.next() ;

if(base64StringToImage(getImageBinary(path), toImgPath).equals("success")){

System.out.println();

System.out.printf("tt*********************************************n");

System.out.printf("tt** 导出成功 **n");

System.out.printf("tt*********************************************n");

System.out.printf("tt** Thanks!!! **n");

System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");

}

} else if(boo.equals("3")){

System.out.println();

System.out.printf("tt*********************************************n");

System.out.printf("tt** 温馨提示:导出后文件名为wjp.txt/wjp.png **n");

System.out.printf("tt*********************************************n");

System.out.printf("输入导出地址(两个文件都会在这个目录下):");

String toBothPath = scanner.next() ;

base64StringToImage(getImageBinary(path), toBothPath);

if(base64StringToTxt(getImageBinary(path), toBothPath).equals("success")){

System.out.println();

System.out.printf("tt*********************************************n");

System.out.printf("tt** 导出成功 **n");

System.out.printf("tt*********************************************n");

System.out.printf("tt** Thanks!!! **n");

System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");

}

} else {

System.out.println();

System.out.printf("tt*********************************************n");

System.out.printf("tt** 您输入的编号无效!!! 程序意外退出了!!! **n");

System.out.printf("tt*********************************************n");

System.out.printf("tt** Thanks!!! **n");

System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");

}

} else {

System.out.println();

System.out.printf("tt*********************************************n");

System.out.printf("tt** Thanks!!! **n");

System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");

}

}

}

static String getImageBinary(String path){

File f = new File(path);

BufferedImage bi;

try {

bi = ImageIO.read(f);

ByteArrayOutputStream baos = new ByteArrayOutputStream();

ImageIO.write(bi, "jpg", baos);

byte[] bytes = baos.toByteArray();

return encoder.encodeBuffer(bytes).trim();

} catch (IOException e) {

// e.printStackTrace();

System.out.println();

System.out.printf("tt*********************************************n");

System.out.printf("tt** 您输入的地址无效!!! 程序意外退出了!!! **n");

System.out.printf("tt*********************************************n");

System.out.printf("tt** Thanks!!! **n");

System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");

}

return "" ;

}

static String base64StringToImage(String base64String, String path){

try {

byte[] bytes1 = decoder.decodeBuffer(base64String);

ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);

BufferedImage bi1 =ImageIO.read(bais);

File w2 = new File(path "/wjp.png");

ImageIO.write(bi1, "jpg", w2);

} catch (Exception e) {

// e.printStackTrace();

System.out.println();

System.out.printf("tt*********************************************n");

System.out.printf("tt** 您输入的地址无效!!! 程序意外退出了!!! **n");

System.out.printf("tt*********************************************n");

System.out.printf("tt** Thanks!!! **n");

System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");

return "err" ;

}

return "success" ;

}

static String base64StringToTxt(String base64String, String path){

File filename = new File(path "/wjp.txt");

RandomAccessFile mm = null ;

try {

mm = new RandomAccessFile(filename,"rw");

try {

mm.writeBytes(base64String);

} catch (IOException e) {

//e.printStackTrace();

System.out.println();

System.out.printf("tt*********************************************n");

System.out.printf("tt** 写入失败 **n");

System.out.printf("tt*********************************************n");

System.out.printf("tt** Thanks!!! **n");

System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");

return "err" ;

}

} catch (FileNotFoundException e) {

//e.printStackTrace();

System.out.println();

System.out.printf("tt*********************************************n");

System.out.printf("tt** 创建txt失败 **n");

System.out.printf("tt*********************************************n");

System.out.printf("tt** Thanks!!! **n");

System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");

return "err" ;

} finally {

try {

if(mm!=null){

mm.close();

}

} catch (IOException e) {

//e.printStackTrace();

System.out.println();

System.out.printf("tt*********************************************n");

System.out.printf("tt** RandomAccessFile关闭失败 **n");

System.out.printf("tt*********************************************n");

System.out.printf("tt** Thanks!!! **n");

System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");

}

}

return "success" ;

}

}

HTML对Base64解码

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gbk">

<title></title>

<script type="text/javascript">

//hideElement() , showElement()

function hideElement(id){

document.getElementById(id).style.display="none";

}

function showElement(id){

document.getElementById(id).style.display="";

}

function wjp(id){

if(id == 1){

var values = document.getElementById("code").value ;

var str = "<span><img src="data:image/gif;base64," values ""/></span><br />" ;

showElement("div2") ;

hideElement("div1") ;

document.getElementById("insert").innerHTML = str;

}

if(id == 2){

showElement("div1") ;

hideElement("div2") ;

document.getElementById("code").value = "" ;

}

}

</script>

</head>

<body>

<center>

<div id="div1">

<h2 style="color:red;">W_Jp Base64解码</h2>

<textarea rows="20" cols="100" id="code"></textarea>

<br />

<input type="button" value="转码" onclick="wjp(1)"/>

<br /><br /><br /><br /><br />

</div>

<div id="div2">

<h2 style="color:red;">W_Jp 给您的结果</h2>

<label id="insert"></label>

<input type="button" value="继续转码" onclick="wjp(2)"/>

</div>

</center>

<script type="text/javascript">

showElement("div1") ;

hideElement("div2") ;

</script>

</body>

</html>

继续给大家一组测试数据,尝试用我的HTML代码试试,看看能不能显示出图片

/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a

HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy

MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAJoAMgDASIA

AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA

AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3

ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm

p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4 Tl5ufo6erx8vP09fb3 Pn6/8QAHwEA

AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx

BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK

U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3

uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3 Pn6/9oADAMBAAIRAxEAPwD1rS2K

aLpwCJzaoTlQf6VLPfwW3lfaJ7WLzZBFH5iqodz0UZ6k lRWIH9k6eD2tlJFcX4m05obnT7jWTba

tLf30OniKSApFbwyA7zEu8kSErneST0Axisbu 5r0O 81t4BWMe3lr/hUUV/BNPLBHNbPNAAZo1C

Fo9wyu4dRkcjPWs7T4LnR7GRdR1Rbq2t/wDVzzR7JFjGT 8fdhiBj5sL0JOc1xvhzU7yHxU2sXsC

w6d4lOy2LIVZDEMRB8naC6ZxgtuOMYFK77hoegHVLVXuEa5sw1soa4XKZhBG4F/7owM89qmgulni

iliaGSKRdyuiqQw7EEDkGvLPiPpjXHiO3MxtpYrmxmED3G5PsrRAO7ExrucBQdoJb5mbjHBi8H6b

bpc65apbWItEsERr2a4fKQTxmT5sJGJBnBJOxlHG4gDFa2vcXXY9Tt7 G6Ehgnt5fKkMUmxUYI46

qcdCPQ0ttqEN7Ak9q9vcQvnbJFsZGwcHBA9QRXiHhm001rK71LZYITfiO0juFmSWUb4zthMcrOrr

leQjkbgNzAnHofwzdn8AacpjZAjyqGOMODIxyMHpzjnByD2wSnddQVn0Oy81ieif8BjX/CgSsOdq

HHUGNc/yph6nIzg4x6CgHkZ7Zzn0qbvuVZD/ADGDY2xnPI/drj VHmn/AKZf9 hio Plz2XJFLkj

qcn07GjmYWQ/zW3gFYx7eWv FAlOASsfTJ/dr/hUZIUZ7K3FKPQDp29RRzPuFkPErZGVi57eWvH6

Uqyk7flj6H/lmv8AhUf4n8uaCSM4xux/3yKOZhZDhK2ASE/GJcfypfObdjy0z/uL/hTBwOBjHBHY

0EcY9Dj8KLvuFkP81ieif8BjX/CgSsOdqHHUGNc/yph6nIzg4x6CgHkZ7Zzn0ou 4WQ/zGDY2xnP

I/drj VHmn/pl/36GKj4 XPZckUuSOpyfTsaOZhZD/NbeAVjHt5a/wCFAlOASsfTJ/dr/hUZIUZ7

K3FKPQDp29RRzPuFkTRSFpo1ZYiGYAjyxRTIP PiPk/eH8PPWitYO6M5IgtuNPsux8gc/ieKgvtM

tNS zC7iZ/ss63MIyRtkXO08dcZPB4rY023il0q28xA37vHNWhZ24GBGAPqankb1K5kc7qGm2mq2

4t76DzoEkWTymYhXYHI3AHDDPY5HtTr xtdSsZrO9gSe2lUrIj9x7emD0I6Gug xW/P7oc9aPsVu

esQ9aPZsOdHJXPhzTbvaLv7XcRAoDFNeTPG2zG3chba33QTkHJ5OamsND0/SbiWawtvs3m/fiidl

hJwBkRg7AcKOQM/nXT/Y7f8A55CgWduBgRgD6mjkfcOZHO2Om2emfaPskPl/abhrmUBmO6RsZPJ4

6DgcUmmaXZ6Rp0dhYw XaxZ2IXJC5JJ5JJPJNdH9kgP/ACzH5mj7Fb4A8oYHSjkYc6MfA6gD6qea

OmB1B6YHWtj7Hb5z5Qz60fY7f/nkPzNHs2HOjH5DckZ9e30penHzD2xmtf7Fb4x5Qx6UCztwMCMA

fU0ezYc6Mj14 70B9aQ45JGcdyefwrY xW/P7oc9aPsVuesQ9aXs2HOjH5HVjjODSjK9u2OnBrX

x2//ADyFAs7cDAjAH1NP2bDnRkZAxx34AHekxnOfm7nPStj7JAf WY/M0fYrfAHlDA6UezYc6MfA

6gD6qeaOmB1B6YHWtj7Hb5z5Qz60fY7f/nkPzNHs2HOjH5DckZ9e30penHzD2xmtf7Fb4x5Qx6UC

ztwMCMAfU0ezYc6Mj14 70B9aQ45JGcdyefwrY xW/P7oc9aPsVuesQ9aXs2HOjLgyLiLLE/vAKK

1VtIFYMIwCDkH3orSMbEydyDSRjSrYeiVdqppvGnQ/T tW6a2JYUjMqLuYgAdyaWo5/9WP8AfX/0

IUwD7RD/AM9o/wDvoUfaIf8AntH/AN9CvFdd8f8Aiez8Q6ja2 o7IIbqWONfIiOFWQqBkrnoKh/4

WH4p6f2kfr5EX/xNBPMj3D7RD/z2j/76FH2iH/ntH/30K8P/AOFheKCM/wBpsP8At3i/ Jp6/EHx

Oeuqf QIv/iadg50e2/aIf8AntH/AN9Cj7RD/wA9o/8AvoV4qPH/AIm76mf /EXP/jtMPxA8UqTn

Usg9P3EXH/jtFg5ke2/aIf8AntH/AN9Cj7RD/wA9o/8AvoV4XJ8RvE6OFOrY/wC2EX/xNSxfEPxO

wydTz/2wi/8AiaQcyPb/ALRD/wA9o/8AvoUfaIf e0f/AH0K8WHj/wATEH/iYn/vxH/8TTH IHic

HjUmA/64Rf8AxNOwcyPbPtEP/PaP/voUfaIf e0f/fQrxBfiF4nJIOqH/vxF/wDE1YXx74lI/wCQ

lk/9cIv/AImiwc6PZ/tEP/PaP/voUfaIf e0f/fQrxU PfFAbnUuP uEX/xNNfx/4p/h1Lnt 4i6

f98UWFzo9s 0Q/8APaP/AL6FH2iH/ntH/wB9CvED8QvFG3I1M89/Ii4/8dpG IfikDP9pEY7eRF/

8TRYfOj3D7RD/wA9o/8AvoUCeEkASoSegDCvC1 Ivipsj 1CD/17xf8AxNdv8O/Emq IYtS/tO58

7yJIPL/douMs2fugegpApJnoNFFFBQUUUUAVdO/48Ivof51aqtYDFlGPr/M1ZpLYGFRz/wCrH v

/oQqSo5/9WP99f8A0IUwPm/xOQvi/Vwrf8v8xx/20NRheOvB7Uvip2/4S7WlKgYvJiDgj/lo1V7q

8isrL7TKDtA5IqzNpplraVGSR9Se1ZN9r9lp0RZ3WRugVeSTXL674klucR20hEXcjqc1zTOznJbN

IFE6 fxxIsn7i3G3H8XrWXceK9TmjZRKE3nkoMYrDwaTFIqyLH2253lzPIzepNWoNd1CF8i5fHoT

WcUZcFgRnpQyEfw0BZHXWPjO4Uqs6Bh6jiuptNdsr2MYnVXI6N2rycEipY5WjcEdaAcUeulRksBk

HoRU0TDuD71yPh7xE0pFtOiYPGc8murHDjnjFMzaLJUMvGajZecbu1PV cbh0p7L14Ge9AirInyD

kY9DTJEIA5wfU1YkGVAIHt70yZcoPlH FAynsO3jGM9K9K EoIj1nP8Aftv/AEJ687YbV4Bz0 te

j/ChcQ6t/v23/oT0io7nqNFFFI0CiiigCvZf8eifU/zNWKgtP PZfq38zU9JbAwqOf8A1Y/31/8A

QhUlRz/6sf76/wDoQpgfNvjGRU8U6qvR2vZ9pI4 1cH4h1S6/49iybAoBCPuFdr45laTWNedUIZ

L2dV4yeJG5rySRy7ljyT3q5EuOuoqIZGwKspbR8fOCTxwOQarxnb061uWFot1DlW/egcnFZyZSKU

WlyTMQzpEQcDf3px0wQuFkkUjuQeBXQpZmS0jQnLZyFxgr7g9x7Vo2unwXEcKywFZWziVTnOPbsa

jnKUTjDDHDMImcrbycFiAw oolsXtcpO3ybuo/unow9q7G48KNeRMUjDc4V0 Uv7 lYSWUscn2G6

iZwiSFSOCwx0H40 dC5WYz6bNh2T5wvPA6j1qpsIXOOOn0r1HSfDtxDZBrmI YU6Y7elZ8/hPBmb

y9u/5wp7HuKj2qK9kzz KR4ZA6MQR3r0zw3qI1CzEbOC6DvXG6joE9szOikqOcVJ4Yu5LXUowozl

tpB7g9q1i09UZyjY9I5GMrntxUqhcDrntzQUBGVUigEjvj61ZiNYAk4Jx3xTJE6Ddz/Opw27BOP8

abJksqgD1zQBVkXJADc16L8K12xasMn79twe3zPXn7DJ4UDFeg/C37mr8fx2/wD6E1JlR3PTqKKK

RqFFFFAEFp/x7L9W/manqCy/49U p/manpLYGFRz/wCrH v/oQqSo5/9WP99f8A0IUwPmrxetuP

Emuo0h3yXdxhc/7bV4 6FGKkEEHHNeseMbRH8X6s5jJcX85Hb/lo1cFr9g8EyXSoQkuc46BquQ2l

ozHjBJxXWeH7GS4uBBjAJGSP5Vz1kiNMEk6N3r0bwrEkM5LkBjyM96ynsOO51Wm Fbe4ZBe4YKB8

oOMV0mneELFJmkEYKk/db0 vrTdOb5ASgJJ5rq9NVXIOfrXNzXZ0cuhBDoVvGrGOEDcMcD0rFvPB

mnTXZn zjfuDdOnr deiRLFtxgVHPDG69KbjpoSpa2OCl0vacFR VZt7paMhyoru7q1TgjtWJfwD

a2B0rnaaZupI8p1bTlXcTgDnGe9edrGE1MPGCpEmDj1zXsOtWjzKSqHaOM15PexfZdRmV1fCyB22

jkV2UH0OWsj0hMtGpwQdozj1pG v6Vk2fiHS7wKIrtUYgAK525/OtFZklUMjhgehU5BroOTlYZxg

d6AyZ6Y/GmMSDng/WoiPYH2pATEjng16F8Lf9Tqo/wBu3/8AQmrzXcRxjj616P8ACpt0Wr8EfvLf

/wBCagcdz1CiiikahRRRQBXsuLRPqf5mrFQWf/Hsv1P8zU9JbAwqOf8A1Y/31/8AQhUlRz/6sf76

/wDoQpgfNnik48V61tIz9un79/MasOKw/tPTJbW7OJCflYdAexrS8R2TDxtrkke4F7 4JIPH sam

W0T25ZndQDyOa1eqHPTRHGyaNLZ3rQyr8oGQwPWul0XzWljUKxZBwfauguNAj1bRi5vHim2l42Yb

kYjtxyPSuc8Masy6jJHdfIY JA3G3Fc8pKUWluOMXFq56lpW9VXcck9a6qxLquEbpzxXlVn49N7O

bfRdGvL90P8ArPup ddLbX/i /to1VNK0qRjhzNIZCPoB/jXJyu p1J3PS7VJsA7iRU8rmIfMRjP

PPSvJ7rXoNIuEOq NLq4kjjw1ra2mI29/WnW2hQtPDqQutZLXCebGJ7onAP z2 hpyslqJWuemTu

OorlfEfiix0Xy4XikuLyc4ht4l3O5PYAVxV34l8QeHdVi0KyvY9TEsJ8lblS8/mDoARweo69KzNB

uNRn8X3Nj4qjlt7 5t/9GeMhT/tBG7Z6cU4x6gamt6nqDOY7ua0sEZf9W8oMqsexVc4/E15nrWmz

2sq3FxeyXCTOA0gG049q9eg8N2VlA9vZ2O0SNudpGL5PqSeprivHVittp5UdEwfxohU96xM6bauz

nNQ8L2MMBuIHk8vb8wfk89CDSeEhex3kQLv9nlRnZe2BwCR61fuZWn8NIFYGR4VCrn5mOew781pa

TbeTECp VI0hXA646n8660jjbNMvgDJ/TrTD83Qr/jTn5wM1CSV4qiRjKTxkV6R8Js XrGSP9Zbd

P95683Y8jpmvSPhN/qtY6f6y2/8AQnpDjuep0UUUGgUUUUAQWf8Ax6r9T/M1PUFn/wAey/Vv5mp6

S2BhUc/ rH v/oQqSo5/wDVj/fX/wBCFMD5f8UTeb421t1uJNqX86GMcDIkasuW8eYYgVGYHkOa

3fFNnE/i/WXErI32 ckDkH941ZcbxCdoHhdGB4bblW hrZIftE/kaOia8dLI81gYf416496q JdF

nvbs6zo0a3VvdjbNFARluOo9/akj06OORmifIY5KkVc0/wC1288kqxfZY4zu87dw3vgVEqLk7xN6

MZ1XyQV/0D4b6nFbWs2n7TG8cp3Iww3416jarbTOJDEhYHIOK8iuba6uNTPiDTmSd3/1yL8pkx/E

BXV6P4rZI1Emm6h5noIgf1zXDiMPUjK51OlKlpNHpK20RXK2lq RjLRAmiLTEjd7qc/IqkkAYGBW

NZeJdSkh/wBH0Z0PUNczKgH1AyaiuDqutxPZ6hexQ2sg2yRWWQSPTeeax5J/aZLXVHP/AA60z 0P

Fl7r05Bjt1e3t2J /K5zIR64HFa/jnQ0aOOZ4yskThoZ4x80LdmHt7Vt6dpMemWsUFr5KRQcQkHG

0emKz9c1MSwP/aF9GxR8eTF1atbNqxKTRhw61rscAhXT7e9KKB9o 0eXuPckY4rhPGl9qc6eVciz

RnOBFFlz JOK7W4vorLTpbuWSOK35wnf6mvPWkudW1oXrQf6PG4VUc8 uT6VdKl72iM5vQk0rTtP

gZFnmea6CgsDxs9h6CuhAAGE UAYAUYH4VVuXsrUtM 0E9XA5plxJdSQo1m0ZVvvEnt7V38hx8t9

iaaZIvvEgeyk/wAqMEoDzg88imS3iW xJnILnA46mo7u9jgjWVw7oTjCDmp5SWnstwlkVAMuAT0B

716V8JGJi1jPXzLb/wBCevMZ0hvdkrRnCfd7EV6d8JAoh1gKMfPbZ5/2nqXHqUkkeqUUUVJQUUUU

AQWfNsv1P8zU9QWfFqv1P8zU9JbAwqOf/Vj/AH1/9CFSVHP/AKsf76/ hCmB8geMtfvYPHXiGKPy

gqancqPl54laspPFN AQVhYem0/41N41iLfEDxHxnOqXXA6/61qy47ZguTGUUHliOlHPJFqCNm38

RXc7pGUEeWALIc45712evzLDo80EfzyyhY4wOuTXI HNIGv3D2qXX2VIcMzBMs/PavTrPTobcRhx

9qlj58 RcH8BXbhozlBvue9llKSozsvi2Zn6Zol7B4fgvIZ3FvIpSR40/wBWwPqeozxmn29leW0e

6Qq2DjevAb3rorTXtRs9On0 zEPkAkmN03YU88A/yqOGaIoUwY43HDryAD/StFh/ae7UWx20cNP2

fs60fh8 hUh1I26f6QjBV6nt dXbbVrK KeXcDys/eU9fxprWasrLEokjI 5ndkVhvpkNnMzW0OE

I5hzgD6elcdXALV0nt0OergFO7ou/l1Ovmt0m2GEmRAc7HclTVW8soYrZnuZ4IIxksI0Ax9TXJvc

XsS5tkmXtjzhiud1qS mYS3F1K6KeU3ZxXGlJPlloeZyyT5JOxp6iH1e6gl8sppUWWhZ BOwPUD0

H86bLbyOs0kEhiuWUlOBhmHYj1PSle4mt7W1Dzebbl/lyuPvDgj0qDULt4ERkC7mYKoPdvb27mvW

p04Qp2PTVClDDvm1RWt9U86BBIjzMRz8mBn0qZpPMdZHEse3jar8flWabd7eBYDOpiBJ8zPG7/8A

XUVxFqPlpOsglUd045 neuRysfNPRuxrm7WRgpjLlehPOKha lMojUQlR2JOawZL2/TKsXQ/7uKp

STzyuXkeQsO 6odRAux1c108WC5UA 5r034MOHj1xg24F7Xvn J68FZywG Qn6tXs/wBKmPxFhs/

PZ9/9qSp576CWx7lRRRTAKKKKAILP/j2X6t/M1PUFn/x7L9W/manpLYGFRz/AOrH v/AKEKkqOf

/Vj/AH1/9CFMD5T8T2gj8b684j3SNqVy2T0A81qoCBpsJ1UH527Cug8Ztnxbq8YwP9NnJbH/AE0a

si3jnmP2eAYUsBv6DP1q1roi4puyW7Nfwwsa3s7wEupUDcRjFdVbTOd44JX5ce9ZdpYJpmlRpujD

rkM6nlh159cVp2YInfvHtBBPcmvXoLlio9T7XBU1Sw6pt6lshV8uR8K4bt6d6W5uYIYG8mFGYDIw

MCmNKGLgKcJ1zVVP9KtMuMKcggDGB6VudCgm7yIbS6uZ5WZChRDksF6H2xVi6aSZjKXcoo3PGMdu

4Pp7VHArrCq2xdYlPOwD9at2dt/aE0FusgRnDKEP8bdRk mM8etYVIQavIzxUaavKWnmZkpUrx8w

PY1h6lFD5TmSRo07kjOK3rzgyRMjLLH1yMEViahE01uwxlivT3rza9OontzLueTjaVWLTtzx79SX

y/tugWN284khhDW8ceMP8vRm9uayZ/Ja4tyJG82LLPjkKh/qf6VtaHZR3mhm1aFFmtxLNPc7 UQD

O1R3JrAhNsLuOe7eVYpkCN5SbiW6/wCNW5fu7HPUlKWFlBLVEi20RYlsSRnnHTH/ANenS28CoVid

th/g3GtZ7OLTblzbxSXECKHzIuEhBGck/wAQHcVbSNH0mK7jWG MmSjliBuz2zzgc1zcyR4ji0ub

ocoU2Aruyh9efzFVJbSzkUlol3/31GK6yPRXninljgNvcY/c28hAJI/iB64PvWHNbQyKWLxod20u

pyu/upHY 9S7MTjKJiSaLKI/MiYEHsy4NeufAa3lgTxCJUK5e0xx1 aSvMZVljdYZdyEHhg2VYV7

D8G4THbaw5BAd7bGf956XJbUk9booopgFFFFAEFp/wAey/Vv5mp6gs/ PVfqf5mp6S2BhUc/ rH

v8A6EKkqOf/AFY/31/9CFMD5s8U2k0njDWCIwQbyfoe3mNWfa2xuLhLeJSEXBJz0NWfFV1cP421

qKNdub2ZCR02 YR dOjzY2bF0y5Xgt39hXRQjeV h6eXUXKteXTUjmXzdaeEAmK3 VR2z1JrrLCX

ckayru2jAI4Nclpg81mnJJeRs5PpXS2zYAz2rlliZxqOcXY2niZxqOcXZmsYY2jcZ2gn8x71Wlm8

pkjiyecufb0qKS6IXg1UW6YvsHl5bjc3ataOKnOolOWh0YfGTlUSqy0uPWRYkMKHdJuO7aeFPXH1

p/2mVzhByhAyOo9KgkaNpUS3UbI/lbb0Lev1xUCtJa3UjhiXBwQehHY17N4yXkfRx5ake50b63da

lc2Wl3NhBOkgYPdFgsmFGQD6n dc1KLTzQ8oGzJVgXwFzxu/A1qTeVM1qwIE0TiWMqeVb1zXN6qt

xbzzuVYxMd4mZRgtnJ9utc0qfI3bY86FBUlOK0T29TVsrm1 y3SWTfZ9QS2MflImdw/ic/X07AVz

S20cUkImMgh80PmM4br0FdDNcW2k3Fre2qNK09uHuVAyBno2e309q56/nW6lMEefLJ 9jB2n Vc0

dmebhFFxqb6o627s9UudLIgt4Le9kbax37kZc9Dn2NIt9Yw2E xYza2Y2uyDCxyDggjqOe4qrHDN

pxnvoLiW7aQpFFbOxA3DA59OM06TUNNmmbTZEMH71lmjlXidsevUjPeuNnhtJ6LVJ9COztvNnj1e

4m 06jDAWVos7GU52jHGfSmXOn2l0ryNZRo7olwbYLhgxzkn8Ks3cSPbxxi3XyIyMncclF5AUD3G

MVUn3XUc/kB4GuIhsO3c28cnOe2D0pXIlNy1v1Of1qyntJvJEKtZu2YJQc7cevpXqXwb80QaykrZ

2vagY6D5nrzqUXH22 t51nUeSipISPLZhx8q /oK9J EQEf9twLIjeW9qCoPKnL5 lVfUUo8rses

UUUUxBRRRQBBZ8Wqj3P8zU9QWf8Ax6r9T/M1PSWwMKiuCBECTgBlyT/vCpaKYHjmqfC/Ub/xBqWo

rqGm7Lm5kljVpmBCsxYZ XrzUd18MNZuLYxrf6Qrk8N578D/AL4717PRVxqSjsdFDFVKN TqeK2f

ws1i3RVbU9KOPSZ//iK0k HuqrjOo6b/AN/m/wDia9YorF04sz9rI8of4fao3/MQ0z/v83/xNU7n

4a6zJEyxalpQY9zM/wD8RXsdFCppAqskeR6b8OtVsnMb6hpbWzKA6iZs5HcfL1qS4 HmqSXW9NR0

3y p3Stk46fw16Xq pxaLpF1qU8cskNtGZHWIAttHXAJA/Wqx8Q2g1xNK2TeY8HnibA8vHJ25znd

gE9MY710xxM4qyO6nm2IppKLX3Hm4 G qidW/tDSzH1IMzZH0 Wpb74danPp08EWpaaZZBsDPKwC

qevReuK9L0fVIdb0i21K3jljhuF3osoAbGeDwT169abqur2 jx2r3CSsLm5jtU8sA4ZzgE5I49ap

4io/dZUs4xMlq19x5RB8M/EK2T6e2s6XHaMjgFJXZwTjjlRxUEnwq1x7hd2qaS8ChV5mcMygY5 T

rXsEOs6XcXn2OHUrOS6 b9wk6l/lJB UHPBBB hq9WXO737nMsbVV7W1PIU8BeJlmiJ1bRiiAgje

2Tnv93qKY/w41y7jm 26ppLyF/3To7AqnYZ28HrmvYaKzscqbTujxy0 F2oW08TjUtOKwxlUDTu5

yxyTkrxRF8NfEEd2C2vadLbsWLhnYMM9Ap28V7HRRYbk3ueOD4aa2qzB9X0y53PmMSyMvlj8F5Nd

R4E8M3nhyG9bUZtPe6u5Ic/Y5CwO1jycqDn5q7uiixPmFFFFMAooooAgs/8Aj1X6n ZqeoLP/j2X

6t/M1PSWwMKKKKYBRRRQAUUUUAFFFFAEF9aR31hcWkoBjniaNgfQjFcJHofiJfCnntaA64s42wid

cFRD9nzuzjGMvjOfxr0KilbfzHcw4dX8P H7W30mfWdOtpLSJIvKluo0ZQFGMgkY45rL1GLVfEF3

Zwi1ik06PUYb23v4JUMTQIAwB YsXLZHC7cEc12FFVfXme/9MlKysjzjQbG81E2qQ2JjhtNfurt7

3em0qJJVKYzu3HIHTGO/avR6KKS2t/Xb9B9b/wBb3/UKKKKACiiigAooooAKKKKACiiigCCz/wCP

Vfqf5mp6gs/ PZfqf5mp6S2BhRTRHGJDIEUORgtjk/jTRBCIzGIowhOSu0YP4UwJKKYYYjszGh2f

c UfL9PSlEcYkMgRQ5GC2OT NADqKjEEIjMYijCE5K7Rg/hSmGI7Mxodn3PlHy/T0oAfRTRHGJDI

EUORgtjk/jTRBCIzGIowhOSu0YP4UASUUwwxHZmNDs 58o X6elKI4xIZAihyMFscn8aAHUVGIIR

GYxFGEJyV2jB/ClMMR2ZjQ7PufKPl npQA imiOMSGQIocjBbHJ/GmiCERmMRRhCcldowfwoAkop

hhiOzMaHZ9z5R8v09KURxiQyBFDkYLY5P40AOoqMQQiMxiKMITkrtGD FKYYjszGh2fc UfL9PSg

B9FNEcYkMgRQ5GC2OT NNEEIjMYijCE5K7Rg/hQBJRTDDEdmY0Oz7nyj5fp6UojjEhkCKHIwWxyf

xoAdRRRQBXsv PRPqf5mrFQWfFqo9z/M1PSWwMyvEOu2/h3R5dQuFLhSFRAcF2PQZ7ev0BrymX4z

auZG8q0sVTPAaF2I/HzBn8q6v4wHHhG2/wCvwf8AoqSvJ/A8Uc3jPTFlVWQSF2DAEYVS3f6Vz1JS

5 VM66UIez5mrnVf8Ll1r/n20/8A8B3/APjtL/wuXWv fXT/APwHf/47XFXNpHoeuvBqdtHfqAH8

q1nKK24ZXDbc9xxitrx1o8OnXUUenaNFa2kMaebOlyZWLsM4YFjtGcgEgZ/QRedm77Glqd0uXc9b

8E N4vFkMsckKw3kIDMqnKsvTIz056j3HNdbXiPwZP8AxU1yP nOT/0OKvbq6KUnKOpy1oqM7IKK

KK0MgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAILP8A49l rfzNT1BZ/wDHqv1P8zU9

JbAzz74w/wDIo23/AF j/wBFSV4/BfwxxB7VSlxBp80chxj5mJAbPc4f9K9h MEbv4OhZVJCXisx

HYbHH8yPzrwoTLFbXKlC5lj2DH 8D/SuabtUO2kr0y7pjz6l4kguL6YzzTTo8rsOoGOPyGK1tc1H

T7S01JI4QdT1GXazGYySbA4bc/OF 6MKOnHvXOJO0KELbwSk/wDPUE4/Wljv9Qj/ANTLDbj 7DCq

j9BSjJJalSg21boei/Bn/kaLn/ryk/8AQ4q9vrxH4LRSHxHdyHLKtmys3uXTH8j Ve3VrR E58R8

YUUUVsYBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAQWf/Hsv1b ZqeoLPm1X6n Zqek

tgZBe2VtqNnLZ3kKzW8q7XRuhFcNJ8HvDkkjMs oRgnIVZEIH5oT tegUUpQjLdFRnKOzPPf FOe

Hf8An71L/v5H/wDEUf8ACnPDv/P3qX/fyP8A Ir0Kip9lDsV7afcydB8OaZ4bs2ttOhKBzl3Y5Zz

7n nStaiirSSVkQ227sKKKKYgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAILP8A49l

rfzNT1BZ/wDHsv1b ZqektgYVi3 tSWlvf3EEa3cECvmW2KObdlX5lkUuuSOvynPOMDALbVc9eaf

qL3GpwiKN7C9fzZNjfvGQRxo0eCQAWCMoOejk7lKgMwJLTxEL7Smulg8lt8cAZZYrhBK7BQMxvyF

LKTnaSDxVa48TTsFGntot02 FWWPUS7De6IflCdMtjdn0OP4anaxvLi2upTbNG9zqVtciF2XciI0

Ibdglc4jY8E8Y78VVuPD8tp/Z0VvJf3qwNDFH5jQhIIlmhds4CsTiIY 9096AN DULW5vrqyil3X

Fps85NpG3cMrzjByPSpbm4W1tpJ3WVlQZKxRtIx iqCSfpUUH277ddfaPs32P5Ps3l7vM6fPvzx1

6Y7VaoAw7XXby/0iG6tdKcXMtxLAIJpdqx7GZSZHUNt 52DckDnrTF1 7nihjtdOie ZphLE9ziN

PKYK HCndyRgFRnnO3GKhm0vW7fRfsenva75LyaWcm4eI U8jvhHCMVb5gCccc4OcESf2dqkKWNz

aWWnQXEEUlu1t9ocxhGKkMH8vJIKjjbzk896Hu7Ddhtz4qIt1u7OzSa1S0jvZ2ln8t1ifONi7Tub

5W4JUZwM88Pl8SH/AIST yIDpe9WQMs oeXOcjcdkWw7sKfUZ9utZt54Ru/s9vbW32S4WKyS1iuL

l2SSydcgzRAKfmOQeCh QfN6a9zp9/Ncy2629gLOaSOWS5V2SbK7eqbSHPygbtwwMccc07X0E7dC

LWPEb6PpltPdwfZ7h5MzoFacRQo2ZZf3Y3FNo4bbwXj3BckDT03VbTVY5ntTN 5k8qRZoHhZG2q2

CrgHoynp3rJk0/UtR0 a0u1dF1OZnug8gZbe3 VfIUAk7njAB2nAZpGDcKG1tL 2rZLDqHz3MOI2

nG0C4wB 8AH3c91wMHIGQAxkC7RRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEFp/wAey/Vv5mp6gs b

Zfq38zU9JbAwoorm5/GFrFqUlkkSvJFKsTR/aYvMkZnKKI1DEE5HzBihUYJHamB0lFZkWtRl7lLq

1ubNrdI3ZZtjFg5ZV27GbJJUjHUnGAc1KL WP7F9rtvs4uExITIGEMp27YyR1ySwDcDIA6sBQBeo

qJLmCWeWCOaN5ocebGrgsmRkZHbI6Zpt5cS21s0sNnPduCMRQlAx/wC 2UfrQBPRWJb I0ntJJf7

NvY5VuDbJbsYi80gGSEIkKHGGzlhgqR2p9/4lsdK0YalfpPb5ViLZ4/3zMucqFB5IwTkHbjnOOaA

8jYoqlNqG3UrWyhi86STLz4bHkRbWw7fVgFA4J YjIRsFhf/AGuS5gli8i6t5GV4S2Ts3ERyDjlX

UZ44B3LnKnABdooooAKKKKACiiigAooooAKKKKACiiigAooooAgs/wDj1T6n ZqeoLP/AI9l rfz

NT0lsDCuNvdMupdc1Hzxdyz3UURthGZRbgo8mwMwxsC4ikOCG3btud209lRTAwI7CCzudR8yzu5m

2xmGUSyyuylWUKruxKuGaTJBUBXBJHJEEOkvDd2NvJJe3Ds8j3ayTzSweSyyAIS52NglF6biBuwO

a6aigCjaq41XUGbTY7dT5e27VlLXPy85AGRt6DP4VPeNOljcNbR ZcCNjEmQNzY4HPHWp6KTV9Bp

2Zzt7oaJomm25sm1BLJg0lsSuZ8oytncQrHLbjuODzTX0q8Pga/05INs80E6wW2VHlK 4pFkHaNo

IXg4GODiukoqr63BO1vI57V9JGo3cFrbC7tZN6XFzdW88sClQVBU7CvmOyx7O xecj5Qy GrQK19

c7LtoTcn7C98ZWmWExxBx 9/eKpkRjg4zgHpg10FFISVgooooAKKKKACiiigAooooAKKKKACiiig

AooooAgs/wDj1X6n ZqeoLP/AI9V p/manpLYGFc9d6/e29nrsqabIx092WI5TaQIg 5vnyRk545

wy8Zzjoa5K98PT30GrQrZQo99fcTXaLMVi8oL5gO/IIO/YO2QMKCSGBq2muKbeeW/T7OqXUsETkj

E5WR1CooJYthOmASegNRabrN9eXUEbWlsYpd7s0czeZBHltvmIVwrZGwjdncGwMKcN0zSL61S9ZH

tLWS5u5XaRLYGUxmSQglt2C2GBUkYXoVNZMmlX8VjqKJZa1LqMrzlLtNQVEdiSI3KiVRwoQY2jpj

FAHVwaha3N9dWUUu64tNnnJtI27hlecYOR6VJdtdJbO1nDDNcDGxJpTGp55ywViOM9j/AFqOD7d9

uuvtH2b7H8n2by93mdPn35469MdqL7TbHVIFg1CytruJW3iO4iWRQ2CM4IPOCfzoAzNK1HWNR1K6

iuLexs4rGbyJkjkedpmMSyDaxCbAA69VbPI XGTy3iTx7qOka5qFlDLpyJb3MEKLMsZYq6xksd1z

G3G9uibeOWHJG7p3gvRI77VmufD2lmKS7VrbdaxMBH5MQOBj5RvD8cc5PfNUvEtvrmoyvHaW vrG

t3A6pG1gIdscqMWXcd cKWAbvgEYyKALvhnxLe6vo oXclul7JbXfkRpY UpkXZG3/PZ0yC5/wCW

nQevFWbLX799YFjf6Jd2ouZG yuWhbEaxqWMgSViPnyMgY aMHk0y1fW30u4tUi1SO7lbZHeaibQ

SGU/OFhOGC4yFIyWYDIXJUtZNT0ue4a50W51C7mbL3lnNDtdATtXbI6GMDJwg3AZzuZmYkAL/xQ

2m6pdrJYXNxpsDW9u9xbIGaKeRuVZSwZhtkgI2K33j1IwNDw7qn9t G9N1MvCz3NskknknKq5HzK

OT0bIxnIxiqv9hxTeJ4dR yJbxWSyeXsIH2iWTkyEKeih5QN2SWlkOBwWk8L6T/ZWgafHLB5N59i

t4rlQ QXSMLkgHaW4xuHJCqMkAYANmiiigAooooAKKKKACiiigAooooAKKKKAILP/j2X6n ZqeoL

P/j1X6n ZqektgYUUxZom27ZEO/O3DD5sdcULNE23bIh3524YfNjrimA imLNE23bIh3524YfNjr

ihZom27ZEO/O3DD5sdcUAPopizRNt2yId duGHzY64oWaJtu2RDvztww bHXFAD6KYs0TbdsiHfn

bhh82OuKFmibbtkQ787cMPmx1xQA imLNE23bIh3524YfNjrihZom27ZEO/O3DD5sdcUAPopizRN

t2yId duGHzY64oWaJtu2RDvztww bHXFAD6KYs0TbdsiHfnbhh82OuKFmibbtkQ787cMPmx1xQA

imLNE23bIh3524YfNjrihZom27ZEO/O3DD5sdcUAPopizRNt2yId duGHzY64oWaJtu2RDvztww

bHXFAD6KYs0TbdsiHfnbhh82OuKFmibbtkQ787cMPmx1xQA imLNE23bIh3524YfNjrilWSNwCj

qwIJGDnOOtADqKKKAILPm1X6n Zqeq9l/wAeifj/ADNWKS2BhWZc6/p9pPLDK1yWidY3MdpK6h2C

lV3KpGTuXjPcVp159rdqLy91HUI1hnitmuJ2jfbkqqQxkjfFIoO CRRkKTtJBIBpgdrBqdtPFNL

hjhXdI9zbyQADnnLqMgYOfSnHULUac9 ZcW0aM7vtOVC53ZGMgjBBGMggjGa5JNLkstFvdPa4W3

kk1K2MkduEx5chijwQYlUqcN0XBwQc/MCXsdydPv2ukYXUelXzXBcRh8SMBCX2fKWKQkcdNvPagD

t6bJIkUbSSOqIgLMzHAAHUk1nWMlq2uaqkV9czXCeT51vIxMcGVO3YMYG4cnBPPpTPEiu2iuVl8l

UlikkkIyERZFLE wAJ54454pMa3JX8QaLFYxXsmr2CWkrFY52uUEbkdQGzgng/lUMvirw/Ctu8ut

WCRXKu0MpuF8t9hUMA duQWHGc9fQ1mWmpPBoWqXNpcxXn78R2l8fLxcu6ooZjGFVsOdmQOi46iu

e8bWml6NJonkXEkWoJKqSS/aXTMYjnIZz50ShmdnwxdWbL43fMtVYR3Fr4i0W9vWsbfVLR7xZJIj

beaBLuQkMNh bjae3QZ6c1p15H4E1PTZfFFgILm5 eE2sUCTELxH5ib0N5K21E3gDbtVnIOGHHrl

ICK4uYLSBp7maOGFcbpJHCqMnAyT71WtdZ06 ht5bW7jmS4fy4yhz8 wvtP907QTg4pmuxGfRbmH

zGjWRQjlbdpiVJAZdifMQRkcYIznIxXDSWV5qmm6Ne3ohnujbhYYJVhWa4wi7SpZZi4 d927aBwx

C4JoA7y91rTNNnjgvb 2t5ZPurJIFOME5PoPlPJ4zx1qSz1C11BN1tLvBRJBlSpKOMq2CBwR39QR

1BA4HxE/9neILW2W jMESIioLryzE3lkZKCeMIdqjBUIpEpHXAOton2O10aSObUJogli8ZeK6mkK

rGqiSVQSVUHcjJhc7SpHDYAB2VVbvU9PsJYYry treSdtsKTSqhkPHCgnk8jp60aa0T6XaNBPJcQ

mFCk0pJeRdowzZxyRya5zxHq2jw6hPpU13Y2t3e2wS5nvJlRY4PmAwGOGYktgDju3YFDSNe48T6H

aXF5bXGp20dzZqzzQM37wKIxISE 8w2HPyg9 4NWbDWNM1XzP7O1G0vPKx5n2edZNmc4ztJxnB/K

vJ/Ekuj6b4nuo7O6cWzRwM2bqTa0/wBolJZc3UIIVzkldyowYnYQ2eo Gd9aXUGpJbXFzMzNHckS

S7kjWQMQoXz5irFlkZtxDZfkdMMSO9ooooAKKKKACiiigCCz/wCPVfqf5mp6gs/ PZfqf5mp6S2B

hUVxbQXcDQXMMc0LY3RyIGU4ORkH3qWs6/1YafFNI9ldyrCy7jGFA2t/HuZgNoOQecjGSAvNMC5c

W0F3A0FzDHNC2N0ciBlODkZB96pjQNGETRDSbARswZk zJgkZwSMdRk/mabDrto1rJcXh/s9EmMG

buSNQzgZIDBip7jg9VYdjUUXirQpZJ0/tWyTynCbnuEAf5Q2V55HzYz6g lAGxRRUN1cw2dtJcTv

siQZJwSfoAOST0AHJNAE1MeGKV43kjR2ibfGWUEo2CuR6HBI hPrWNd LNKs7e2nke4ZbibydiWz

mWM9MtFjeBuZF 71kT 8KS38W6Zc6gtkiX3mu22I/YZisgG0MdwUhQrOEbdgqwIYCgDTh02xtxGI

LK2iEbB0CRKu1gnlgjA4IT5f93jpVqiigAqIW0AgSAQxiGPbsj2Dau0grgdsEDHpgU29u47Gzlup

QxiiXfIVGSqjq30AyeOeOATxWdf IE0 4aJrG5lUP5fmpJCEDCMyEHdICuFBPzAfqMgGnPbQXSBL

iGOVRn5ZEDDkFT19QSPoTR9mg 1favJj 0bPL83YN zOdueuM84qL7aqc3EUluoh85nlxsQD7wZg

SARxnJwc8E4OCwvotRtVniWSM9HimQpJG2AdrKehwR BBGQQaALVFFVb7UrPTVhN5cJD58qwRBjy

7scBQO5//X0FAEklnayyNJJbQu7bMsyAk7G3Jz/ssSR6E5FEFna2uPs9tDDiNIh5aBcIudq8fwjJ

wOgyarz6vZW19HZyyOJZCFBETlFJ6BnA2qT2BIJyMdazbzxpolle3Fs080/2WNpLqW1geeO2wcbZ

DGDsbhzg9AhzjjIB0FFFFABRRRQAUUUUAQWf/Hsv1b ZqeoLP/j2X6t/M1PSWwMK4 80 8N5qaWm

myGFr3zeDiOUNDHuzH5sYkBZW3FiRk4w2W29hRTA5Twtd/YtBiutS8yDz0iMRdvkkyuQsUYkfnrh

VVM5AC8YEtg8WmPZyX5ktrW2tTbWk00ZRTGSvMrdEbCRgBtuc rFE6aigDMsY7Vdc1V4rG5huH8n

zriRSI58Kduw5wdo4OAOfWjX45H0vfFE8phnhnaNBlmVJFZsDucAkAckjitOijzA808WW0F1pF9e

y6TLM93qVu9o8tmd8KbreNyQ6MV3Fdu3YzNn7jAHHPaHLZr4isZn0PJtb2JQTbJGAzzPbhiVso/u

sCwDMvIA 8pVfbKKACiiigDO16OaTw/qC25mE4t3aLyGZX3gErgrznIHHfpWBqmjDUr/AE65kvdR

jF5deWY5FiXbGsc7KNuzoQWG1skqxDDPTsKKAON1xDFc6sjS388kOlLPG/nMEjkCzfvCoIQNlIyM

DO4bgBgkXobvT9Si1NpHXUZVtP8ASFsXDqY33YhUqQXYbGwW5y5I2hto6SigCrpqxJpdosEElvCI

UCQygh412jCtnPIHBrO8R2CXFvbzx2iy3SXVsBIse51jE8bNzjIXjJ7cZrbopp2afYEzk7q2mg8Q

TtB9v 2z3cU0JQS/ZvK2xrJvK/u87Uf7/PTHauP1C4ur2806W40tPEBMxjjv01GQrEApl/ctFBGu

4GIsWiV3 RkPJUV65RS6WBmF4Uurm70uV7q S7lWYqSJlkaP5V RwIYtjA5yrLuGeT2G7RRQAUUU

UAFFFFAEFnxar9T/ADNT1BZ/8ey/Vv5mp6S2BhRRRTAKKKKACiiigAooooAKKKKACiiigAooooAK

KKKACiiigAooooAKKKKACiiigDMSSVF2rIQPTA/wpRcT5x5p/If4U0EnHA9ssB7etIQewX/vtf8A

Gue8zX3SXzpv ezfkP8ACk8 fP8ArT Q/wAKiGQf4c/76/4045OPu/8Afa/40XmFojvtEw/5bH8h

/hS fMRnzW/If4VGVz2HH 2v NKM9tv/AH2v NF5haI77RPnHmn8h/hSiab/AJ6t Q/wqMHJwNv/

AH8X/Gghjx8v/fa/40XmFokhmnA4lP5D/CozdXA6yn8h/hSk467R/wBtF/xpMbugU/8AA1/xovML

RHrcTMP9a2foP8KPtE3/AD1P5D/CocMW Up/38X/ABp Dn H/vtf8aLzC0R5uJlGTK35D/Cmi6uD

/wAtT Q/wpjAk4 T/v4v NAU99uOn31/xovMLRJRcT7c afyH FH2mYjiU/kP8KYAQMfL/32v NN

2nPG3B/21/xovMLRJPtMw6zH8h/hR9pnz/rT Q/wqPG4Y Q/9tF/xo2Nkfd/77X/ABovMLRJvPn/

AOep/If4UhuJx/y1P5D/AApmdvB2j/tov NH3um0/wDA1/xovMLRJRPN/wA9m/If4UhmnHSU/kP8

Ki5J42n/ALaL/jTvm6EL/wB9r/jReYWiPM8w/wCWx/If4UC4mJ/1x/If4VH7Hbn/AH1/xoAIH8P/

AH2v NF5haI83E4/5an8h/hRTcMxAABPpvX/ABop HukEp4izk5U8Dv8xrm7/xv4esPs3/Eys7n

z51gxbzxv5e7Pzv83CDHJ7V0kmcR/wC4QD77jXmfieYavqc154b8zUWewk0 /aGHzYo4DhyY23KH

l bhAWz7Y5OoLY7iPXdLnhkntL2K9jhx5gsz9odM8D5Y8tzz27H0rJtfHui3U6RxC/KyqfssosZW

W6IGX8vapJ24wcgYqpetoWpeCJdJs2 2/Z4TaRI9q8stvIqNGrSRqheM5U87R7da4Kx0xLnUbXTp

LDI0q4tpLtxp7P5yYyRtS1WTkdpGwf8Aa 8BIZ69qWs22lXOnwSRyyzX1wIIkhAZ mWcjIO1erEZ

xkU2w16zvH1FW32raZK0dyLnCFVAyJOv3CMkMcZANc1rsSQ3lr/wjEr22v3kCJFGsKlYrZSOZFkU

mGNRnhQpLHoxHEWkn 0Nd8Q6gdS 1xafbpFY6k0kca4aMvIGkRNjBW2n5lYLwceqsBPd/FDw5Z3E

ltI08jIzgtEqSIwChlIZWIIbOB3B 9trqtO1K01S0S5s7lJYjwwjlWTY2AShKkjIyOhNeVXaRT3U

l4 g2et2tuztqOqG ebmRQOHRFGEXBIRHCDGNpya9F8LTPLpBV9Rj1Exy7FljvFucAKvBdY0ye/I

J5zk54bSsCNzofQ gGaOuOeT0YUEkZyCBnOcZoB4B/L3NSAhPIPPzDoO5peOmEJ9KOhAHYYz70mR

jGQAMdeooAUfeU9s9 ooHQY67ePrQckcdS2RSD8SOuQOhoAUYBB4A9fWheCM8YBz7UmR13Ln1A5o

xuyMcYz160AAHygEfgRQeMHc20/n9KXtjkZPANITycDOGzgUDF6H0PoBmjrjnk9GFBJGcggZznGa

AeAfy9zQIQnkHn5h0Hc0vHTCE lHQgDsMZ96TIxjIAGOvUUAKPvKe2e/UUDoMddvH1oOSOOpbIpB

JHXIHQ0ASQY 0RYwBvHPrRRAR9oi5XJYdBz1orWnsRMe8UjojIjOMEEAf7RpBbz4 4/4rzWlZ/8

eq/U/wAzU9HInqHMYv2ef5sxSc4HI7UG3n/54yZ7Y7VtUUezQc5i/Z5 0T/eJ6UfZpiP9U49iOlb

VFHs0HOzF zTjpEwz1wOaPs82B 5k/3QK2qKPZoOdmKLebP pdfccij7NPnIiZc9eK2qKPZoOdmJ

9mmAJED4/u4604W8 PuP K81s0UezQc7MX7PP82YpOcDkdqDbz/88ZM9sdq2qKPZoOcxfs8/aJ/v

E9KPs0xH qcexHStqij2aDnZi/Zpx0iYZ64HNH2ebA/cyf7oFbVFHs0HOzFFvNn/AFLr7jkUfZp8

5ETLnrxW1RR7NBzsxPs0wBIgfH93HWnC3nx9x/xXmtmij2aDnZi/Z5/mzFJzgcjtQbef/njJntjt

W1RR7NBzmRFBMJ4yY2AEgOSO1Fa9FVGNiW7kFn/x7L9W/manqCz/AOPVfqf5mpmG5Sp7jFNbB1Mp

dfjMqsbK7WyZwi3zBBExJwON2/BPAO3B65wQaz9Z8S6lpCWWdGSSS5byxEs0rtvBO7b5cLgqFBcE

kMVB XIIqbT21eytbXSU0wj7Pti 2tInktGvG4KG37io6bQAe Bk8lLp1zFNbW/2C7sLOC4vjBNF

FdyBSJ22bYrd1CApKwDnkgEYC4LZTk0vdNIxi3qdfH4hkGjQ309pue6j821WzS4uUdSoKlmWHKZz

3X8 QG6X4llupvKvdOuLdmZViMVrdupJ4O5ngQKOnOcdc4xWOlo8Xw3kg wXEpM3lrbtFKx8tZwi

MIp1mZV2Kr7drYGcAHmofBlobTXpP JY0CNavmf7GIVGGT5SfskJJPJwGI U5HQ0ueV0h8kbNnfV

xtx8QFtr awk0a4S8S6ht1t3u7YSN5nl87fMzn5 MZHHLLzt15vEeh3cElrba1pstxMpjjjTUFRn

YjAAZSWUk9wMjtXDyWii8FobTWprSfMtxf79TSUSgx7XWMxsMpg7Ad/Ea7mBHzOpN2XKxU4L7SO

m1p4L ws20u9aS8UNlWiIi/vbx5mcLxkgEZZQCSQDUh8XWUlxah43ht7q1huY5pGUBFkjmk fnCg

LAcnJ5PoM1iX3h2 u7nw9dxWn2n7PtMss9zKTGPtMEgdVmJYOUWTKnkDKlm2qDlaPaxJq2nT/wBh

3FqzWMK3ssWkSQMrCC587YyxgqxYxDKYJ4Az0qXOSlYahFq52Fn4wsJ7Dz7mG9tZoljFzC9lOTFK

wCPOwbmzIuAOSDnGK0bTU11BLeeyieW0laRHkYGN4mQkYZHAOMqynuDjggkjljoF7aR3VxDY3sr

3F1bXawtqLSsixywlo2Ej7S 2PcGyf4k3YVS5Npd9bWmm6rBo6DVYtSuZDvVHlSGVrjaCVPIzKh2

hguTyygFhSnPqJxj0NXTvEOpXa6NPc6ZaQ2uq48to71pHTMLSjKmJR0TH3u/et64njtbd55SdiDJ

wMk w965vT9AXSb7SjJbyyImUiWK7uJY7N9j44dypTyyU3YXDYwPnwm1rKM2n7lBYRSxSsAMkqrq

x/QGrhzW94mVr 6JJqwhuUiks7pImZYzOyqEV26L97J5IGQCMnr1w6LUlmuzDHa3DR7mQXAVTGWX

qvXI5BGSAMjGap6glxfXUAis5T5ciSQ3S3C TtyCSy5yTgED5TjIII6iC20p7fVkeOy8po55JZL0

lD5sbbiI u7qw4IA X6VZBt2tyl3brNHkAkgq3VSDgg 4IIqaqGk/NbzTgYSed5I/dScA/jjP41f

oAKKKKACiiigAooooAKKKKAILP8A49V p/manqvZf8eifU/zNWCcDJ6UlsNhRWNBrF9OIrtNNVtM

lI8uVJy0xUnAfywuNvf72dvOM5AydS13XEttLl0l9Pv/ALbIYFa2iEsbspYswczoBlEYhfmwylS/

Q0nNIag27HX0VzP/AAkF5beF4NVnVLhbqETR3EcUdvHArquzzFluBk5bs3PTjgmt4e8W3Gp3jWsi

xXrnaQbNrZfKXOGZgLqQkcjoPzyKXtFdIfI7XOvoqtqE7WumXVwjIrRQu4Z8bQQCcnLKMfVlHuOt

csnjC NjPO nusy30dtHbBEZmDXTxHJWUhTtTaC21d6nBYEAOU1HcSi3sdlRXODxPPcNoEtrpN2L

XVJBmSUxfKhjkccCTIOEVuh XI 9xXN6H8Qrq urX7bcaesH2c3N2ERAY0ETudmLh2YgpyuzcByQ

vFS6sU7FKnJo9Hork5PFl5/ZMV3baa94JLqOPzrdozCFecKEDGQbnCMASu5A RuwDizqPiiWwvtI

gm06W2W8kfzjcSwDy41Ryx4l/h2qxPICnH3iBT9pEXIzo6K5/TfEktzNbxXWnXEa3V1NDBcr5fls

F8xlBXeXVtkfzBlBDAggdK2by5WztXnYFsYCqOrMTgAfUkD8apSTV0S4tOxPRWQ2tEaqliqWxfcE

kVrkLJuKhjsQj5wARk5Hfg1ftrrz3njZNkkMmxlznjGQQfcEfjkdqYixRRRQAUUUUAFFFFABRRRQ

AUUUUAQWQxaoPc/zNTEBgQeh4qGz/wCPZfqf5mp6S2H1MK0s9btIoNOR7RbOAqq3YkZpmjXopjK7

c4 UtuPrjnA5i88NahPeK13pCT23nXpBtoLSWfDXBkjLNcDAUh3 VeR1J bC iUVMqaluylNp3Ry

FvpWoWXgWW1s9O8m e4LeTH5cDlPP4Y Q8a7/KC9HXOME0nhmz1q11hmvre7W1Nu XnndsPuTaAp

upgcjdzgEY684rsKKXs1dPsHtHqu5iTa/ZXEEkC2usO0ilAqafcxMxIxgOVUKf8AaLDHXI61z m

GNSttO yMt2rfZ7aG3aS9aWK3dCX88oXIDgpH 7UMoIVQ5VnK93RTcObVgp22OQvtDuZV0H7Fpfl

zWG4LHPdGS1gMcMixEruy3zlCHC78DnaeKoaXpGu6VdxpENYMcSyWjSbrIo1rEs32fZ/FvyycsAM

k7uK76il7JXuP2jtY87n8KXGyyE2kXFygWbzJB9jubkklDH5hnQKp5lLBMgsSxZixY6UfhR5Lfw3

LLbJFc2yp56xpEEtX8mYtJGmNoYyuhOAQSiHHy12VFJUooHVkchY H76y1 0jWfUJ7G0kWUS3jQ7

SfLnViuwhmdmnBYsgJ2MSx4rotVhkmsf3SlnikjmCjq2xg2PqQMVdoq4xUdiZS5tzFm024muZPJW

Fba5miuZJSzLKrJt4C7ec7B1Ixk8cVcskdry9uWRkWRwiBhgkKMZx7nP4AHvV6iqJCiiigAooooA

KKKKACiiigAooooAgs/ PVfqf5mp6gs/ PZfqf5mpJkaSGRElaJ2UhZFAJU ozkce9JbD6mbLqss

OqX1ubd5o7e3hlRIU3SOzs6464/hHJwByScdFtNdhuZjDLb3FrMhcSJOF QqFbBKsRyrhhgnjPcY

qq2g3lxDePdajGb24WJPNht2jj2xsWCsm8kglmDfMMg44qrD4PWLTp7VbmCDzrlZ/wDQ7URIg2BH

VU3HAZQR143Zpa3L9z vQ0P EgQNAx0 W3lMam5ZFCI0mNoILbjyyjKggE8ng4oprt82r/Z2n0

N/tBjXTJFKXLxhivmqzOAwwN/CEYBGcjNP1Dwsb/AFUXZuLcqs0U0fm2vmSwlCp2xvuARDt5AXqT

zzVmbR76dzBLqUcmn eJhG9uWmGHDhRJvxgMMD5MgcZzzQr3D3bGbp/iKa9v2hfX9CgcXckIsWiJ

nIWQqBnzh8xAz93v0rqZZY7eF5ppEjijUu7uwCqo5JJPQVjWel6xp7PHBqVi1qbiSbY9i5kw7lyu

7zQM/MRnb FSHU7 4zB/Yeq23mfJ9o32p8rPG7Hmt069D9D0pJ2VhSs22tjh7nxxqUV/c28fiDR5

IhfW8aXKRReWI28rcQDcbto3PnCt/F8y/wAHSXXigx6tottbavps8N2oMzxWzyg/OI8qySEIGdlR

dwIBDZYkBTWbQ/En2yIxi0TTljdJNPOob4pdxUtuLWpLbsNuLEsS5wwyc6V14Zmv20iWTUJYnscF

4yRN5n76GXYXYAkDyQobAY8Ek8hskp6mjcNDKs/GGoPqEC3FncKosYZr2KSzeFYG8u4aQh5NoUF0

iUFm29cHqQaX40u5LSS3c6Pf3lq0FsXt9Sz9okdok8wKIvlTMvJGcEFcd6NN8Oa/aXulzSw6aVsL

WGEBLuQmRoobhB/yyGAxnGeuAvfNbFx4du5beYJqaCe4mhupmkttyGeOSNlZVDAhdsYTbk8KpzkM

XI 0sD5LhY6 by6sEnZ7S4kmuIGt1heWGRo2kX5ZtigMPJLAHHyk5XJBGJoOvNdv4bI8U/b7q9x9

sst1udmbeRz8qIHXDqo5Psa1bnw1evo9pbRaii3cF9NdtMiNGreaZdwADFlAEx6Nk7cBkJ3LqR2F

za3No9vdyyoMpdfaZC3mLhmDqMYD7yOm1dpIx8qBatNtX/rYm8VexZv7o2lo0qqGclURT0LMQq59

skVQvL 9s7 1R5rIpNIsa24U bIONzg7sALnJGDwOvPF3UrZ7qyKx4MqOkqA9CysGA/HGPxqvc2F

3eyBZLtFs2ZJGhaAGRSpBwHDYAyB/CT1wemNkZFm0uXlmuYJQokhkxlejKRlT uPqDVqqdnBItzd

3Eq7TM4CrnoijAzj1OT9CKuUAFFFFABRRRQAUUUUAFFFFAEFmc2qn3P8zU9QWf8Ax6r9T/M1PSWw

MKK5 7vp7bWdV2XESKlpbGP7QzeWjM8qk7R1J44GCxAGR1qvYeJpikr3uwwwyyQvKLWS3LMI1kX9

3ISy8FhznJAI64ovrYvkZ1FFctc6/qFpeWqTPaHdJBDNBFbSyFWkKg7pQdkRG/IVgcgDn5uK2jRy

XV0801lrszC nH2ldSIgAWZgP3fnD5QABjZ26Gi99u9g5NLs7KiuN0aOS6unmmstdmYX04 0rqRE

ACzMB 784fKAAMbO3Q12LHCk5AwOp7UJ6XYpRs7C0VyOmi5sryye7k1DzpMiW6Nz59rdkqWwi7/3

ecZB2KBgqM5GYrbxbfzaVd3/ANm3ILKS7hDWM8KxYGVRpG WTIPVcdDwQaSkPkb2OzorBOqX8DNZ

XLWz3rSR U0UbIpjYEk4LE5AR c9hwM4rFt/E1/Bp mQxLJPKmmwXMxNnPcvOWB XdH9w/KfmbPX

pwad9LgoNq6O4orD0KW9l1LXPtVwskSXgWFNhBjHlIccsfUdAOcnvgZnjhJr1bTTrWy1Ca8eRJYX

t7gJGAkis5dRMhOAowTgBmUBlZhSk WNxKN5WOvorz7wuJre61CO5sdVmlv4zcRSx3w2SwGJFyub

l/n3LjcGJXemWVSMY8eoajc E7sK25zpd49xDcajNLvWSG3lEiFkb7iyhQhPf7xyzHP21ldov2V3

ZM9Zorzu l1iOC21COS9aeO6ktvOsWhdE8292yRFp8MxAVFUhFAI6lTxpRX sLrKAXtw4F8LMWdy

IVU/6B53zsiEhvM6lSR1wCKftV2F7PzOyorz6aTTpm02a90S0ntrOO t5LI3EMiwMJgAy eyfJtt

5iMAbVUgAAcdT4Ys5LDQ1gks/sf kXEiW/y/u0eZ2RfkJUfKw4B4pxnzOwpQsrmxRWDe3E0hvSss

karcw2g2MRtVim5vqd5Ge2BimLLNbQ36xzyslhdp5ZeRnLIVQsrEnLfebGc449K0X9f18yDoaKKK

ACiiigCCz/49l rfzNSTQx3EMkMyK8UilXRhkMDwQajtP PZfq38zU9JbD6mZH4f06O0mtvLmdJS

pZpbmSST5eVw7MWGDyMEYPIpF8PaYLZ7drdpY5JUnfzpnkZnTG1izEkkbR37VqUUWQXZm3Gg6ddX

bXMsUpdmV2VbiRUZlxtYoGClhtXkjPA9Kjj8OafFcGaJr6MmUylE1CdU3Ftx QPtwSScYxzWtRRy

oOZ9zJTw5p8U5mia jYymXal/OI9xbcTsD7cEknGMUsdvr4mQy6npjxbhuVdPkUkdwD5xwffBrVo

o5UHM3uZtroOnWdws0MUoKEmONriR44if7kZYqnBIG0DAJA4pi G9KRbhBbuUuI2iZGnkZVRvvKg

LYQH0XHQegrVooSS2HzS7laTT7SW ivXhU3EUbRJJk5VWxkfoKpy HNLmht4mt3EdvEIUVJ5FDRj

oj4Yb146NkdfU1q0UWQk2tjLuNNuorqW40q4trWS4INx58EkwcgAAhRIoU4GCcc4HpVW68P3GqW7

x6lfxFpMLIbWxiCyoDlVcTCXO07iMEfePFb1FLlTHzMwdC8K2ugRxRW9xLLBFzHFLDAAr7dvmZSN

WL7cruJOQTnNV5vAuk/ZTbWD3GmwtDLBIlqUIkSRY1YHerckRJyMHOTnJJrpqKXs42tYOeV73Me0

8OWlvEsVxJLfIPNO26CMpaVnaRioUAlt5XpwuQMbm3Pi8O6bDqCX6JcG4Rg4L3crqWEflbipYqW2

cbiM a1aKfLHsLmZm2GhWGm3l1d20WJbiR5GJ52lyC P95hknknCjO1VC2bCyj060W1hZzEjMUD

EfIpYkIMdFXO1R2AA7VZoppJbA23uUpNNhlkuvMw0Fyo8yIjGWHG4Ecg4A/IEYpp0qFbaO2iLLCJ

RLJuZnaQg55YnJ5AyTngYq/RTEFFFFABRRRQBBaf8ey/Vv5mpZf9U/8AumorP/j1X6n ZqcjIwel

Ta8bD6nB28urHwhoKTWVklnvsMSpeO0mPMjwdhiAz043ce9aVtoWjxeLdRePSrFGitIJY2W3QFHL

S5YccE4HPsK6T7JbfZ47f7PF5Me3ZHsG1dpBXA6DGBj0xTxDEJXlEaeY6hWfaMsBnAJ7gZP5mqkk

738/0L59Gl/Wp53ZsD4a0KwB/wCPaWyucZ5AeSLb BLyf9811/hn/kFS/wDX7df j3q un2SqqrZ

24ChFAES8BDlB0/hPI9O1V10DRkvftqaTYLd7zJ54tkD7j33Yzn3pt9F3/yCUk1b v61K2sXOuQ3

9immWdtNbvLiVpLhkJGxzhsRttXIX5s9cDHNackyKoikeNJnjZhHv5IGMkdyBkc 4qeq17p1jqUS

xX9nb3UatuVZ4lcA oBHWpadrE3V0cW2p3th4VsHsri78yz0qGd4IIYto Q4aVpOSp2EYTDDB9Rj

Ym1qaKa4tnvEie0EtzNM0W8CHblCVHJGWA4wT5bVtXWladfSRyXdha3DxAiNpYVcoD1wSOKmFtbh

2cQRh3QRs2wZKjOFPsMnj3NDu233/r vmU5J20/r rnH/aLq7j1LS9RvLqKMC2ZJL OLL75GG0iE

geW20Lg4PzEGpIi jC9t7eyttLnk zgx2cgkgRZJDH5oGxcP1zlcHavXBro7fRtLtIJILbTbOGKV

SkkccCqrqeoIA5HJ4p1vpOm2lpLaW2n2kNtLnzIY4VVHyMHKgYORxUqL/r v67BzoxjJfJrVvpo1

t50SKaWVvKi8wlTFhHwuBw56BTgj6nJttV1D y1khvxALPRra8W3jhjAlch8qRt4U7QMLjGeCK7K

202xs0jS1sreBY1ZUEUSqFDEFgMDgEgE uKq/wDCP6Yb9bxrOF3jjijhRolKw WWKlBj5T8x6egq

lv66gpRtsVPD8Uiap4gd7iWQNfLhHC4T9zGeMAHuByTwo75JmuvLn1K8S5mMEMFmpEgfaU3lwzA

9jhRz25rTS2gjuJbhII1mlAEkioAz46ZPU4zxUdxYW9zLvmQOChjdGAKyKezA9f8 tHT uxDd3cx

7LTrBkuJPscVnptwI40tyPKExycMy8feyBgjJHB9Kggi yadeoIoreW0u1kjhgOY4shTtQ4HBBOe

Byx46GtuHRtLt45Y4dNs40mXbIqQKA49CAORThplokENvFCkNvFIJBDEoVCQcjIA9cH6igRboooo

AKKKKACiiigAooooAgs LVR7n ZqeoLP/j1X6n Zpbu1hvrOe0uU3wTxtFImSNysMEZHI4NJbD6l

Zda05kjf7Uiq8Mk XBQKkZUSFs42lSwBDYIOcjg4LvWLOytba4n 0BblgkSJbSPIzFS2NiqWB2qS

cjjHNeZf2El7f2OoDR9HtLC tf7UNu88SxosfkHBc2pZFww3KDg5bkc7utXyYvDfh3UNLsYoVEhv

INPWQje8sEpESHH96XOcBVUMeAtYxqSdzV00joLDWLPUppobf7QssKq7pPbSQsFbcFOHUZB2t09K

ZP4g0e1z9q1O0tSJGiK3MoiO5cZGGwehU 4ZSOCCcXwui2BgM0qBWhTR4MAlpJLV7kMxGMKGVdw5

45GemcrQP Ek/svSPs/9ofZfLsPK2fZfs/keXD5u7d 9z/rentin7R2QuRXZ00vi3RIrC2vvtbyW

1xC88ckEEko8tMb2bYp2hdwB3YweDU1l4hsNQuza263plVtj ZYTxqjbQ2GZkAU4IPJHUeorzjXF

guPDfhaC4tkmUaTDGCsy7wZvKTaEMEh3HG5SuGIjlx93nY0HTlfxJaXzw2UUjXUs/nLCVaSRvtRk

iEjRqzMqywAq2P8AVuAMowEqrJyt6FOnFRuehswVSzEAAZJPamGeIeXmVP3pxH8w fjPHrwCapa1

n zgv8DzRJJ/uGRQ34YJB9qq6nZwDXtHu9hM5uGTcWJwvlScAE4GeM464GeldCMDZSRJF3RurLkj

KnIyDgj86dWfY4Gpakqfc8xCR6OUGf02n8fetCgAooooAKKKKACiiigAooooAKKKKACiiigAoooo

Ags/ PVfqf5mp6gs/wDj2X6t/M1PSWwMYYo2mWYxoZUUorlRuCnBIB9DtXP0HpTPslt9s 2fZ4vt

Xl V5 wb9mc7d3XGecVNRTsBQi0TSYb838Wl2Ud4WZzcJboJCzZyd2M5OTn61NLp9lNYCwls7eSz

Cqgt3iUxhVxgbcYwMDH0qzRSsh3ZWGn2SwtCLO3ETwi3ZBEu0xDICEY 6NzYHTk tVrXw9otjcpc

2mj6fbzpnbLDbIjLkYOCBkcEitKiiyC7GSxJPE8Uqho3BVlPQg05VCKFGcAYGTk/nS0UxEcMEcCs

I1xuYu3JJJPU5NSUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAFK2uYo4FR2IYE8bT61N9

rh/vN/3wf8KKKzUnYuwfa4f7zf8AfB/wo 2Qf3j/AN8n/CiijmYrB9sg/vn/AL5P FH2uH 83/fB

/wAKKKOZhYPtcP8Aeb/vg/4Ufa4f7zf98H/CiijmYWD7ZB/eP/fJ/wAKPtkH94/98n/CiijmYWD7

ZB/eP/fJ/wAKPtcP95v D/hRRRzMLAbyAdWI/4Cf8KPtcP95v8Avg/4UUUczCwfbIP7x/74P FH

2yD 8f8Avk/4UUUczCwfa4f7zf8AfB/wo 2Qf3j/AN8H/CiijmYWD7ZB/fP/AHyf8KPtkH94/wDf

J/wooo5mFg 1w/3m/wC D/hR9sg/vH/vg/4UUUczCwfbIP75/wC T/hR9sg/vH/vg/4UUUczCwfa

4f7zf98H/CiiijmYWP/Z

语言随到随学_不耽误上班_0基础'>C 学习教程_C 语言随到随学_不耽误上班_0基础

C 学习教程0基础学C 也可以,空闲时间学习,不耽误上班.2019年C语言新课程已经上线,随到随学,互动性强,效果好!

带你征服C 语言,让所有学过和没有学过C 语言的人,或是正准备学习C 语言的人,找到学习C 语言的不二法门。

C 学习教程介绍

c 学到什么程度可以找工作

C 学习视频教程课程目录

C 学习教程百度盘下载

c 学到什么程度可以找工作

很多人问我c 要学到什么程度?MFC的视图界面编程,DLL,XML,算法/图像相关肯定要学会的,最起码要有经验,或者有代码的成绩才能很好的胜任工作!

C 学习视频教程课程目录

01C 介绍 为什么要学习C C 为什么难学 C 11值得学习的新特性 几本推荐的书籍 开发工具选择

02从C到C (一)

bool类型

const限定符

const与#define

结构体内存对齐

03从C到C (二)

域运算符

new、delete运算符

重载

name managling与extern “C”

带默认参数的函数

04从C到C (三)

引用

const引用

引用传递

引用作为函数返回值

引用与指针区别

05从C到C (四)

内联函数

内联函数与带参数宏区别

新的类型转换运算符

static_cast(expr)

const_cast(expr)

reinterpret_cast(expr)

dynamic_cast(expr)

06面向对象介绍(一)

程序

结构化程序设计

面向对象程序设计

07面向对象介绍(二)

面向对象程序设计

数据抽象

封装

继承

多态

08类与对象(一)

类声明

公有、私有、保护成员

数据抽象和封装

09类与对象(二)

内联成员函数

成员函数的重载及其缺省参数

类与结构体

隐含的this指针

10类与对象(三)

类作用域

前向声明

嵌套类

局部类

11构造函数与析构函数(一)

构造函数

默认构造函数

重载构造函数

构造函数与new

全局对象的构造先于main函数

析构造函数

析构函数与数组

析构函数与delete运算符

析构函数可以显式调用

12构造函数与析构函数(二)

转换构造函数

赋值与初始化区别

explicit

13构造函数与析构函数(三)

构造函数初始化列表

对象成员及其初始化

const成员、引用成员初始化

14构造函数与析构函数(四)

拷贝构造函数

默认拷贝构造函数

拷贝构造函数调用几种情况

15构造函数与析构函数(四)

深拷贝与浅拷贝

赋值操作

禁止拷贝

空类默认产生的成员

16对象的使用(一)

static成员

static成员函数

类/对象大小计算

17对象的使用(二)

四种对象的作用域与生存期

static用法总结

18对象的使用(三)

static与单例模式

19对象的使用(四)

const成员函数

const对象

mutable

20从一个实例看数据抽象与封装

用C的方式实现栈

用C 数据抽象的方式实现栈

21友元

友元介绍

友元函数

友元函数注意事项

友元类

友元类注意事项

22运算符重载(一)

运算符重载

成员函数重载

非成员函数重载

运算符重载规则

23运算符重载(二)

运算符重载

!运算符重载

赋值运算符重载

24运算符重载(三)

String类实现

[]运算符重载

运算符重载

=运算符重载

<<运算符重载 >>运算符重载

25运算符重载(四)

类型转换运算符

->运算符

operator new、operator delete

26string

string介绍

string对象的定义和初始化

常用成员函数

27vector

vector介绍

vector对象初始化

vector常用成员函数

28map

map介绍

插入数据

查找与修改

删除

29继承(一)

代码重用

继承

公有、私有、保护继承

默认继承保护级别

接口继承与实现继承

继承与重定义

继承与组合

30继承(二)

不能自动继承的成员函数

继承与构造函数

友元关系与继承

静态成员与继承

31继承(三)

转换与继承

派生类到基类的转换

基类到派生类的转换

32继承(四)

多重继承

虚继承与虚基类

虚基类及其派生类构造函数

33继承(五)

虚继承对C 对象模型造成的影响

虚基类表

34虚函数与多态(一)

多态

静态绑定与动态绑定

虚函数

虚表指针

object slicing与虚函数

overload、override 、overwrite

35虚函数与多态(二)

纯虚函数

抽象类

多态

36动态创建对象

对象动态创建

37C 对象模型

C 对象模型

38RTTI

RTTI(runtime type information)

dynamic_cast运算符

typeid运算符

type_info

《跟我一起学C 》第二季

39类与类之间关系

UML介绍

StarUML工具使用

继承(泛化)

关联

聚合

组合

依赖

40表达式计算器实现(一)

表达式计算器设计

表达式树

类设计

41表达式计算器实现(二)

分清值语义与对象语义

表达式解析

42表达式计算器实现(三)

Scanner类实现

43表达式计算器实现(四)

Parser类实现

44表达式计算器实现(五)

更正设计缺陷

45表达式计算器实现(六)

SymbolTable实现

46表达式计算器实现(七)

Storage类实现

47表达式计算器实现(八)

让表达式计算器支持变量赋值

48表达式计算器实现(九)

解决一些BUG

49表达式计算器实现(十)

FunctionTable实现

表达式计算器支持函数调用

50异常(一)

C语言错误处理方法

C 异常处理方法

C 异常处理优点

51异常(二)

程序错误

异常语法

异常抛出

异常捕获

异常传播

栈展开

52异常(三)

异常与继承

异常与指针

异常规格说明

C 标准库异常层次

53表达式计算器实现(十一)

表达式计算器增加异常处理

54表达式计算器实现(十二)

内存泄露跟踪器

55表达式计算器实现(十三)

内存泄露跟踪器完善

表达式计算器加入内存泄露跟踪

56面向对象版计算器(十四)

表达式计算器内存泄露原因

资源管理

资源所有权

RAII

智能指针模拟NodePtr类实现

57面向对象版计算器(十五)

auto_ptr

表达式计算器加入auto_ptr来防止内存泄露

58单例模式与auto_ptr

auto_ptr在单例模式中的应用

59IO流类库(一)

什么是I/O

什么是流

流类库继承体系

标准输入/输出流

60IO流类库(二)

文件流

打开文件

读写文件

流状态

文件关闭

61IO流类库(三)

文件读写

二进制文件的读写

文件随机读写tellp、tellg、seekp、seekg

62IO流类库(四)

字符串流

istringstream

ostringstream

stringstream

63IO流类库(五)

输出流格式化

以操纵子方式格式化

以成员函数方式格式化

宽度控制

对齐控制

填充控制

精度控制

进制输出

64面向对象版计算器(十六)

调试一个BUG

Scanner类改进

Parser类改进

65面向对象版计算器(十七)

命令解析框架搭建

66面向对象版计算器(十八)

调试一个BUG

命令实现

!f 命令

!v 命令

67面向对象版计算器(十九)

序列化

Serializer类实现

DeSerializer类实现

68面向对象版计算器(二十)

实现命令

!s filename

!l filename

序列化

SymbolTable类序列化

Storage类序列化

Calc类序列化

69模板(一)

模板

函数模板

函数模板特化

重载函数模板

70模板(二)

类模板

非类型模板参数

71模板(三)

缺省模板参数

成员模板

关键字typename

派生类和模板

面向对象与泛型

72模板(四)

用模板实现单例模式

73STL(一)

泛型程序设计

什么是STL

STL六大组件及其关系

74STL(二)

vector源码分析

Allocator

75STL(三)

vector源码分析

Allocator

76面向对象版计算器(二十一)

ptr_vector实现

通过ptr_vector来避免潜在的内存泄露

77STL(四)

迭代器

迭代器类型

迭代器源码剖析

78STL(五)

算法

算法分类

算法示例

for_each

min_element

max_element

find

find_if

search

79STL(六)

for_each

copy

copy_backward

transform

replace

replace_copy

replace_copy_if

80STL(七)

移除性算法 remove

变序性算法 rotate

排序算法 sort

已序区间算法 lower_bound、upper_bound

数值算法 accumulate

81STL(八)

用STL算法解决八皇后问题

82STL(九)

函数对象

函数对象与容器

函数对象与算法

表达式计算器中函数对象的应用

STL中内置的函数对象

83STL(十)

适配器

容器适配器

迭代器适配器

函数适配器

函数适配器

针对成员函数的函数适配器

针对一般函数的函数适配器

84STL(十一)

迭代器适配器

反向迭代器

插入迭代器

IO流迭代器

85STL(十二)

容器适配器

stack

queue

priority_queue

86面向泛型版计算器

面向泛型版表达式计算器

87boost智能指针(一)

boost智能指针

scoped_ptr

shared_ptr

weak_ptr

scoped_array/shared_array

PIMPL技法

88boost智能指针(二)

boost智能指针

scoped_ptr

shared_ptr

weak_ptr

scoped_array/shared_array

PIMPL技法

《跟我一起学C 》第三季(软件设计与工程实践篇)

01银行储蓄系统需求分析

02JFC界面框架设计(一)

03JFC界面框架设计(2)

04JFC界面框架设计(三)

05JFC界面框架设计(四)

06JFC界面框架设计(五)

07JFC界面框架设计(六)

08JFC界面框架设计(七)

09JFC界面框架设计(八)

10abcbank客户端界面管理

11winsock编程

12多线程(一)

13多线程(二)

14多线程(三)

15public模块介绍

16abcbank框架搭建(一)

17abcbank框架搭建(二)

18abcbank框架搭建(三)

19abcbank框架搭建(四)

20abcbank框架搭建(五)

21mysql数据库(一)

22mysql数据库(二)

23mysql数据库(三)

24mysql数据库(四)

25mysql数据库(五)

26mysql数据库(六)

27mysql数据库(七)

28mysql数据库(八)

29mysql数据库(九)

30mysql数据库(十)

31mysql数据库(十一)

32mysql数据库(十二)

33mysql数据库(十三)

34C 访问mysql

35abcbank数据库设计

36abcbank业务处理(一)上

36abcbank业务处理(一)下

37abcbank业务处理(二)

38abcbank业务处理(三)

39abcbank业务处理(四)

40abcbank(长连接版)

最后,如果你想学C/C 可以私信小编“01”获取素材资料以及开发工具和听课权限哦!

模塑纸浆包装成为一次性塑料的替代品

纸浆模塑包装解决方案继续受到具有生态意识的消费者和希望尽量减少包装行业对环境健康影响的企业的青睐。

在过去十年中,消费者越来越意识到他们购买行为的长期影响。现代购物者在购买时会认真考虑如何花钱。在当今时代,人们越来越关注环境福祉,这种意识主要针对包装的可持续性。根据 Trivium 的 2021 年全球采购绿色报告,超过 83% 的年轻消费者(44 岁及以下)表示愿意为使用可持续包装的产品支付更高的价格。

近年来,随着包装行业受到越来越多的审查,纸浆模塑包装等解决方案已成为寻求减少环境足迹的行业的一个有吸引力的选择。纸浆包装由纤维材料(例如回收纸板和纸张)或天然纤维(例如竹子、小麦或甘蔗)重新利用而成,具有高度可回收性,在完成其主要用途后最多可重复使用 7 次。此外,与传统的塑料基包装不同,模塑纸浆是可生物降解的,这可以减少包装产品生产中使用的原始材料。

基于纸浆的模塑包装解决方案传统上与杯架或蛋盒等包装物品相关,在汽车、园艺、医疗等工业领域逐渐受到关注。随着模塑工艺和技术的巨大改进以及对可持续和高质量包装的需求不断增长,模塑纸浆作为奢侈品包装的解决方案正在取得重大进展。根据 Global Market Insights Inc. 的报告, 纸浆模塑包装市场 规模到 2028 年将超过 48 亿美元。

推动北美可持续发展的 3 大纸浆模塑包装行业合作

纸浆包装因其可堆肥和可回收的特性而迅速崛起,成为具有生态意识的商业实体从当前的不可再生塑料包装转向更可持续选择的催化剂。

这种转变在北美尤为明显,据 Global Market Insights Inc. 估计,由于北美地区对可持续材料和包装解决方案的需求不断增长,到 2028 年模塑纸浆包装行业的价值有望达到 11.7 亿美元地区。

因此,一些包装制造商开始参与战略行动,最突出的是与其他实体的合作,为模制纸浆包装创造更多的创新和发展空间,进而加强自己的市场地位。

缅因大学-基菲尔联盟通过新的热成型技术推进纸浆模塑包装的发展

最近,天然纤维正在成为可持续包装产品的理想材料。认识到这一点,主要实体正在建立各种公私合作伙伴关系,以促进该领域的研究活动,特别是在纸浆包装方面。特别是 Kiefel,正在坚持不懈地为全球纸浆模塑包装行业建立强大的研究和材料设施网络。

2022 年 2 月,该公司与缅因大学合作,通过安装新的 NATUREFORMER KFT 实验室机器,促进纸浆模塑包装解决方案的开发,这将使学生能够试验纤维热成型技术,并加强与可持续发展相关的研发工作纤维素纳米纤维等材料。

通过利用纤维热成型技术,Kiefel 机器能够生产由一年生植物、稻草或纤维素等天然纤维制成的可持续包装产品,这将成为主要应用领域传统塑料包装的有吸引力的替代品。

Ara Partners 收购 Genera Energy Inc. 以满足本地生产的纸浆包装需求

随着具有生态意识的消费者人数不断增加,北美企业正在加紧努力,以提高其包装选择的可持续性,并将重点放在提高国内生产上。为此,在 2022 年 6 月,在工业脱碳投资方面具有专长的私募股权公司 Ara Partners 宣布收购 Genera Energy Inc.,以促进其可持续纸浆包装业务的扩张。Ara 还宣布向这家非木材农业纸浆和模塑纤维生产商提供 2 亿美元的资本承诺

通过合作,Genera 和 Ara 的管理团队寻求拓宽公司在美国的制造范围,以满足对本地采购的可持续模塑纤维包装不断增长的需求。此外,作为交易的一部分,Genera 通过保护土地使用,同时提供可生物降解和可堆肥的解决方案来抵消不断升级的塑料污染问题的影响,从而确定了农村社区的重要增长机会。

ABB Robotics-Zume 联手探索使用模塑纤维制造单元 (MFC) 提高生产效率

近年来,包装制造商一直承受着来自监管机构和消费者等方面的巨大压力,要求他们在其产品组合中开发或整合更具可持续性的一次性塑料替代品。具体而言,基于植物的纸浆包装已成为这种情况下的一个关键领域,它展示了许多好处,从能源和水的使用有限到比塑料包装制造更少的二氧化碳排放,再到可生物降解性等等。

自动化机器人等下一代技术的出现已成为推动模塑纸浆包装行业通过减少能源使用、生产废物和排放提高效率的关键趋势。

这方面的一个显着例子是 ABB 机器人公司,该公司于 2021 年 11 月与总部位于加利福尼亚的可堆肥包装解决方案供应商 Zume 签署了合作协议,以部署机器人单元,将后者的可持续包装生产提升到全球规模并限制使用一次性塑料制品。

作为交易的一部分,ABB 将在未来五年内在 Zume 的全球客户现场安装和整合 1,000 多个 MFC(模制纤维制造单元)和近 2,000 个机器人。每个站点都配备了每年处理超过 71,000 吨农业材料的设备,并最终每年生产超过 20 亿件模塑纤维包装,这得益于 MFC 提供的速度、可扩展性和自动化能力。

包装行业正在以惊人的速度发展,公司正在努力跟上,从传统的以塑料为主的生产工艺逐渐过渡到对生态更负责任的解决方案。这一趋势表明纸浆模塑包装行业在工业领域拥有强大的实力,作为新兴绿色运动的坚定支持者,该运动有望在未来的包装生态系统中引起轰动。

免责声明:本文由用户上传,如有侵权请联系删除!