From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Lennart A. Hansen" Subject: Misconfigured or REDIRECT is not rewriting packages properly. Date: Tue, 01 Feb 2005 11:08:36 +0100 Message-ID: <41FF5524.3080508@euclolland.dk> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------060701060400070009020609" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: netfilter-bounces@lists.netfilter.org Errors-To: netfilter-bounces@lists.netfilter.org To: netfilter This is a multi-part message in MIME format. --------------060701060400070009020609 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hey all. I'm experiencing problems with IPTables and REDIRECTING, when i search around i find similar problems but no answers, i would be gratefull if anyone could shed some light on this one.. It's like iptables doesnt quite work when it comes to keep track of everything.. If I try a simple redirect to my webserver on the same host, port 5025 -> 80 with # iptables -t nat -A PREROUTING -p tcp --dport 5025 -j REDIRECT --to-port 80 I would imagine this would do it I can contact the webserver "fine" (http://pxysrv:5025) apache access.log: 10.0.0.205 - - [01/Feb/2005:10:37:20 +0100] "GET / HTTP/1.1" 302 1084 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; da-DK; rv:1.7.5) Gecko/20041118 Firefox/1.0" But I do not get any reply from the server, but actually I do, it's messed up. When I'm sniffing the lan, I can see that it keeps resending with incorrent CHECKSUM, this is really weird i think. And browser returns "Document Contains no data" Some info: uname -a: Linux npxysrv 2.6.9-gentoo-r14 #1 Tue Feb 1 09:53:40 CET 2005 i686 AMD Athlon(tm) XP 1700+ AuthenticAMD GNU/Linux (Have also tryed with kernel 2.6.10) Kernel Config: # # Networking options # CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set # CONFIG_NETLINK_DEV is not set CONFIG_UNIX=y # CONFIG_NET_KEY is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y # CONFIG_IP_ADVANCED_ROUTER is not set # CONFIG_IP_PNP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_IP_MROUTE is not set # CONFIG_ARPD is not set # CONFIG_SYN_COOKIES is not set # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_INET_TUNNEL is not set # # IP: Virtual Server Configuration # # CONFIG_IP_VS is not set # CONFIG_IPV6 is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_BRIDGE_NETFILTER=y # # IP: Netfilter Configuration # CONFIG_IP_NF_CONNTRACK=y # CONFIG_IP_NF_CT_ACCT is not set # CONFIG_IP_NF_CT_PROTO_SCTP is not set # CONFIG_IP_NF_FTP is not set # CONFIG_IP_NF_IRC is not set # CONFIG_IP_NF_TFTP is not set # CONFIG_IP_NF_AMANDA is not set CONFIG_IP_NF_QUEUE=y CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_MATCH_LIMIT=y CONFIG_IP_NF_MATCH_IPRANGE=y CONFIG_IP_NF_MATCH_MAC=y CONFIG_IP_NF_MATCH_PKTTYPE=y CONFIG_IP_NF_MATCH_MARK=y CONFIG_IP_NF_MATCH_MULTIPORT=y CONFIG_IP_NF_MATCH_TOS=y CONFIG_IP_NF_MATCH_RECENT=y CONFIG_IP_NF_MATCH_ECN=y CONFIG_IP_NF_MATCH_DSCP=y CONFIG_IP_NF_MATCH_AH_ESP=y CONFIG_IP_NF_MATCH_LENGTH=y CONFIG_IP_NF_MATCH_TTL=y CONFIG_IP_NF_MATCH_TCPMSS=y CONFIG_IP_NF_MATCH_HELPER=y CONFIG_IP_NF_MATCH_STATE=y CONFIG_IP_NF_MATCH_CONNTRACK=y CONFIG_IP_NF_MATCH_OWNER=y # CONFIG_IP_NF_MATCH_PHYSDEV is not set # CONFIG_IP_NF_MATCH_ADDRTYPE is not set # CONFIG_IP_NF_MATCH_REALM is not set # CONFIG_IP_NF_MATCH_SCTP is not set # CONFIG_IP_NF_MATCH_COMMENT is not set CONFIG_IP_NF_FILTER=y CONFIG_IP_NF_TARGET_REJECT=y CONFIG_IP_NF_TARGET_LOG=y CONFIG_IP_NF_TARGET_ULOG=y CONFIG_IP_NF_TARGET_TCPMSS=y CONFIG_IP_NF_NAT=y CONFIG_IP_NF_NAT_NEEDED=y CONFIG_IP_NF_TARGET_MASQUERADE=y CONFIG_IP_NF_TARGET_REDIRECT=y CONFIG_IP_NF_TARGET_NETMAP=y CONFIG_IP_NF_TARGET_SAME=y # CONFIG_IP_NF_NAT_LOCAL is not set # CONFIG_IP_NF_NAT_SNMP_BASIC is not set CONFIG_IP_NF_MANGLE=y CONFIG_IP_NF_TARGET_TOS=y CONFIG_IP_NF_TARGET_ECN=y CONFIG_IP_NF_TARGET_DSCP=y CONFIG_IP_NF_TARGET_MARK=y CONFIG_IP_NF_TARGET_CLASSIFY=y CONFIG_IP_NF_RAW=m CONFIG_IP_NF_TARGET_NOTRACK=m CONFIG_IP_NF_ARPTABLES=y CONFIG_IP_NF_ARPFILTER=y CONFIG_IP_NF_ARP_MANGLE=y # # Bridge: Netfilter Configuration # CONFIG_BRIDGE_NF_EBTABLES=y CONFIG_BRIDGE_EBT_BROUTE=y CONFIG_BRIDGE_EBT_T_FILTER=y CONFIG_BRIDGE_EBT_T_NAT=y CONFIG_BRIDGE_EBT_802_3=y CONFIG_BRIDGE_EBT_AMONG=y CONFIG_BRIDGE_EBT_ARP=y CONFIG_BRIDGE_EBT_IP=y CONFIG_BRIDGE_EBT_LIMIT=y CONFIG_BRIDGE_EBT_MARK=y CONFIG_BRIDGE_EBT_PKTTYPE=y CONFIG_BRIDGE_EBT_STP=y CONFIG_BRIDGE_EBT_VLAN=y CONFIG_BRIDGE_EBT_ARPREPLY=y CONFIG_BRIDGE_EBT_DNAT=y CONFIG_BRIDGE_EBT_MARK_T=y CONFIG_BRIDGE_EBT_REDIRECT=y CONFIG_BRIDGE_EBT_SNAT=y CONFIG_BRIDGE_EBT_LOG=y root@npxysrv root # iptables -t nat -vnxL Chain PREROUTING (policy ACCEPT 505092 packets, 30873147 bytes) pkts bytes target prot opt in out source destination 3 144 REDIRECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:5025 redir ports 80 And attached is the sniff dump (libcap). All help is appriciated. Thanks in advance. -Lennart --------------060701060400070009020609 Content-Type: application/octet-stream; name="redirect.dump" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="redirect.dump" 1MOyoQIABAAAAAAAAAAAAP//AAABAAAAF07/Qb+aAgA+AAAAPgAAAAABApbfugAQS8rN2ggA RQAAMCBvQACABsVxCgAAzQoCABkEYxOhnv9yMgAAAABwAv//RQIAAAIEBbQBAQQCF07/QUyd AgA+AAAAPgAAAAAQS8rN2gBQBGuLdAgARQAAMAAAQAA/BibhCgIAGQoAAM0ToQRj7nzJ2p7/ cjNwEhbQdckAAAIEBbQBAQQCF07/QcydAgA2AAAANgAAAAABApbfugAQS8rN2ggARQAAKCBw QACABsV4CgAAzQoCABkEYxOhnv9yM+58ydtQEP//FQIAABdO/0FWnwIAzAEAAMwBAAAAAQKW 37oAEEvKzdoIAEUAAb4gcUAAgAbD4QoAAM0KAgAZBGMToZ7/cjPufMnbUBj//xaYAABHRVQg LyBIVFRQLzEuMQ0KSG9zdDogbnB4eXNydi5ldWNsLmRrOjUwMjUNClVzZXItQWdlbnQ6IE1v emlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsgZGEtREs7IHJ2OjEuNy41 KSBHZWNrby8yMDA0MTExOCBGaXJlZm94LzEuMA0KQWNjZXB0OiB0ZXh0L3htbCxhcHBsaWNh dGlvbi94bWwsYXBwbGljYXRpb24veGh0bWwreG1sLHRleHQvaHRtbDtxPTAuOSx0ZXh0L3Bs YWluO3E9MC44LGltYWdlL3BuZywqLyo7cT0wLjUNCkFjY2VwdC1MYW5ndWFnZTogZW4tdXMs ZW47cT0wLjUNCkFjY2VwdC1FbmNvZGluZzogZ3ppcCxkZWZsYXRlDQpBY2NlcHQtQ2hhcnNl dDogSVNPLTg4NTktMSx1dGYtODtxPTAuNywqO3E9MC43DQpLZWVwLUFsaXZlOiAzMDANCkNv bm5lY3Rpb246IGtlZXAtYWxpdmUNCg0KF07/QVuhAgA8AAAAPAAAAAAQS8rN2gBQBGuLdAgA RQAAKBJTQAA/BhSWCgIAGQoAAM0EAARj7nzJ257/c8lQEBkgrkgAAAAAAAAAABdO/0GYDwMA tgUAALYFAAAAEEvKzdoAUARri3QIAEUABagSVUAAPwYPFAoCABkKAADNBAAEY+58ydue/3PJ UBgZIBv1AABIVFRQLzEuMSAzMDIgRm91bmQNCkRhdGU6IFR1ZSwgMDEgRmViIDIwMDUgMDk6 Mzk6MDQgR01UDQpTZXJ2ZXI6IEFwYWNoZS8yLjAuNTIgKEdlbnRvby9MaW51eCkgbW9kX3Nz bC8yLjAuNTIgT3BlblNTTC8wLjkuN2QgUEhQLzQuMy4xMA0KWC1Qb3dlcmVkLUJ5OiBQSFAv NC4zLjEwDQpMb2NhdGlvbjogaHR0cHM6Ly9ucHh5c3J2LmV1Y2wuZGsvDQpDb250ZW50LUxl bmd0aDogMTA4NA0KS2VlcC1BbGl2ZTogdGltZW91dD0xNSwgbWF4PTEwMA0KQ29ubmVjdGlv bjogS2VlcC1BbGl2ZQ0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4 NTktMQ0KDQo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT dHJpY3QvL0VOIgogImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0 cmljdC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIg bGFuZz0iZGEiIHhtbDpsYW5nPSJkYSI+CjxoZWFkPgo8dGl0bGU+TG9naW48L3RpdGxlPgo8 bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFy c2V0PUlTTy04ODU5LTE1IiAvPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxl cy5jc3MiIHR5cGU9InRleHQvY3NzIi8+CjwvaGVhZD4KPGJvZHk+Cjx0YWJsZSB3aWR0aD0i MTAwJSI+Cjx0cj4KPHRkPgo8aDE+TG9naW48L2gxPgo8L3RkPgo8dGQgYWxpZ249InJpZ2h0 Ij4KPGltZyBzcmM9ImltYWdlcy9sb2dvLnBuZyIgYWx0PSJQcm94eWZpbHRlciBMb2dvIi8+ CjwvdGQ+CjwvdHI+CjwvdGFibGU+Cjx0YWJsZSB3aWR0aD0iODAlIj4KPHRyPgo8L3RyPgo8 L3RhYmxlPgo8YnIvPjxici8+PHRhYmxlIHdpZHRoPSIxMDAlIj4KPHRyPgo8dGQgYWxpZ249 ImNlbnRlciI+CjxiPkR1IHNrYWwgbG9nZ2UgaW5kITwvYj48L3RkPgo8L3RyPgo8dHI+Cjx0 ZCBhbGlnbj0iY2VudGVyIj4KPGJyLz48YnIvPjxici8+PGZvcm0gYWN0aW9uPSJpbmRleC5w aHAiIG1ldGhvZD0icG9zdCI+CjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIg dmFsdWU9IkJydWdlcm5hdm4iIG9uRm9jdXM9ImlmICh0aGlzLnZhbHVlID09ICdCcnVnZXJu YXZuJykge3RoaXMudmFsdWU9Jyc7fTsgcmV0dXJuIHRydWU7Ii8+CjxpbnB1dCB0eXBlPSJw YXNzd29yZCIgbmFtZT0icGFzc3dvcmQiLz4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9 IkxvZ2luIi8+CjwvZm9ybT48L3RkPgo8L3RyPgo8L3RhYmxlPgo8cD4KPGltZyBzcmM9Imh0 dHBzOi8vbnB4eXNydi5ldWNsLmRrOjUwMjUvaW1hZ2VzL3Bvd2VyZWQtYnktZ2VudG9vMi5q cGciIGFsdD0iR05VIExpbnV4ISIgaGVpZ2h0PSIzMSIgd2lkdGg9Ijg4IiAvPgo8L3A+Cjwv Ym9keT48L2h0bWw+Gk7/QbntAQDMAQAAzAEAAAABApbfugAQS8rN2ggARQABviB0QACABsPe CgAAzQoCABkEYxOhnv9yM+58ydtQGP//FpgAAEdFVCAvIEhUVFAvMS4xDQpIb3N0OiBucHh5 c3J2LmV1Y2wuZGs6NTAyNQ0KVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7 IFdpbmRvd3MgTlQgNS4xOyBkYS1ESzsgcnY6MS43LjUpIEdlY2tvLzIwMDQxMTE4IEZpcmVm b3gvMS4wDQpBY2NlcHQ6IHRleHQveG1sLGFwcGxpY2F0aW9uL3htbCxhcHBsaWNhdGlvbi94 aHRtbCt4bWwsdGV4dC9odG1sO3E9MC45LHRleHQvcGxhaW47cT0wLjgsaW1hZ2UvcG5nLCov KjtxPTAuNQ0KQWNjZXB0LUxhbmd1YWdlOiBlbi11cyxlbjtxPTAuNQ0KQWNjZXB0LUVuY29k aW5nOiBnemlwLGRlZmxhdGUNCkFjY2VwdC1DaGFyc2V0OiBJU08tODg1OS0xLHV0Zi04O3E9 MC43LCo7cT0wLjcNCktlZXAtQWxpdmU6IDMwMA0KQ29ubmVjdGlvbjoga2VlcC1hbGl2ZQ0K DQoaTv9BTYcNAEIAAABCAAAAABBLys3aAFAEa4t0CABFAAA0EldAAD8GFIYKAgAZCgAAzQQA BGPufM9bnv9zyYAQGSBOtQAAAQEFCp7/cjOe/3PJGk7/QQWJDQC2BQAAtgUAAAAQS8rN2gBQ BGuLdAgARQAFqBJZQAA/Bg8QCgIAGQoAAM0EAARj7nzJ257/c8lQGBkgG/UAAEhUVFAvMS4x IDMwMiBGb3VuZA0KRGF0ZTogVHVlLCAwMSBGZWIgMjAwNSAwOTozOTowNCBHTVQNClNlcnZl cjogQXBhY2hlLzIuMC41MiAoR2VudG9vL0xpbnV4KSBtb2Rfc3NsLzIuMC41MiBPcGVuU1NM LzAuOS43ZCBQSFAvNC4zLjEwDQpYLVBvd2VyZWQtQnk6IFBIUC80LjMuMTANCkxvY2F0aW9u OiBodHRwczovL25weHlzcnYuZXVjbC5kay8NCkNvbnRlbnQtTGVuZ3RoOiAxMDg0DQpLZWVw LUFsaXZlOiB0aW1lb3V0PTE1LCBtYXg9MTAwDQpDb25uZWN0aW9uOiBLZWVwLUFsaXZlDQpD b250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xDQoNCjwhRE9DVFlQ RSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCiAiaHR0 cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1s IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJkYSIgeG1sOmxh bmc9ImRhIj4KPGhlYWQ+Cjx0aXRsZT5Mb2dpbjwvdGl0bGU+CjxtZXRhIGh0dHAtZXF1aXY9 IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9SVNPLTg4NTktMTUi IC8+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGVzLmNzcyIgdHlwZT0idGV4 dC9jc3MiLz4KPC9oZWFkPgo8Ym9keT4KPHRhYmxlIHdpZHRoPSIxMDAlIj4KPHRyPgo8dGQ+ CjxoMT5Mb2dpbjwvaDE+CjwvdGQ+Cjx0ZCBhbGlnbj0icmlnaHQiPgo8aW1nIHNyYz0iaW1h Z2VzL2xvZ28ucG5nIiBhbHQ9IlByb3h5ZmlsdGVyIExvZ28iLz4KPC90ZD4KPC90cj4KPC90 YWJsZT4KPHRhYmxlIHdpZHRoPSI4MCUiPgo8dHI+CjwvdHI+CjwvdGFibGU+Cjxici8+PGJy Lz48dGFibGUgd2lkdGg9IjEwMCUiPgo8dHI+Cjx0ZCBhbGlnbj0iY2VudGVyIj4KPGI+RHUg c2thbCBsb2dnZSBpbmQhPC9iPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkIGFsaWduPSJjZW50ZXIi Pgo8YnIvPjxici8+PGJyLz48Zm9ybSBhY3Rpb249ImluZGV4LnBocCIgbWV0aG9kPSJwb3N0 Ij4KPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiB2YWx1ZT0iQnJ1Z2VybmF2 biIgb25Gb2N1cz0iaWYgKHRoaXMudmFsdWUgPT0gJ0JydWdlcm5hdm4nKSB7dGhpcy52YWx1 ZT0nJzt9OyByZXR1cm4gdHJ1ZTsiLz4KPGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJw YXNzd29yZCIvPgo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iTG9naW4iLz4KPC9mb3Jt PjwvdGQ+CjwvdHI+CjwvdGFibGU+CjxwPgo8aW1nIHNyYz0iaHR0cHM6Ly9ucHh5c3J2LmV1 Y2wuZGs6NTAyNS9pbWFnZXMvcG93ZXJlZC1ieS1nZW50b28yLmpwZyIgYWx0PSJHTlUgTGlu dXghIiBoZWlnaHQ9IjMxIiB3aWR0aD0iODgiIC8+CjwvcD4KPC9ib2R5PjwvaHRtbD4gTv9B eg8CAMwBAADMAQAAAAEClt+6ABBLys3aCABFAAG+IHdAAIAGw9sKAADNCgIAGQRjE6Ge/3Iz 7nzJ21AY//8WmAAAR0VUIC8gSFRUUC8xLjENCkhvc3Q6IG5weHlzcnYuZXVjbC5kazo1MDI1 DQpVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBOVCA1LjE7 IGRhLURLOyBydjoxLjcuNSkgR2Vja28vMjAwNDExMTggRmlyZWZveC8xLjANCkFjY2VwdDog dGV4dC94bWwsYXBwbGljYXRpb24veG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCx0ZXh0L2h0 bWw7cT0wLjksdGV4dC9wbGFpbjtxPTAuOCxpbWFnZS9wbmcsKi8qO3E9MC41DQpBY2NlcHQt TGFuZ3VhZ2U6IGVuLXVzLGVuO3E9MC41DQpBY2NlcHQtRW5jb2Rpbmc6IGd6aXAsZGVmbGF0 ZQ0KQWNjZXB0LUNoYXJzZXQ6IElTTy04ODU5LTEsdXRmLTg7cT0wLjcsKjtxPTAuNw0KS2Vl cC1BbGl2ZTogMzAwDQpDb25uZWN0aW9uOiBrZWVwLWFsaXZlDQoNCiBO/0FaEgIAQgAAAEIA AAAAEEvKzdoAUARri3QIAEUAADQSW0AAPwYUggoCABkKAADNBAAEY+58z1ue/3PJgBAZIE61 AAABAQUKnv9yM57/c8kgTv9BSg0DALYFAAC2BQAAABBLys3aAFAEa4t0CABFAAWoEl1AAD8G DwwKAgAZCgAAzQQABGPufMnbnv9zyVAYGSAb9QAASFRUUC8xLjEgMzAyIEZvdW5kDQpEYXRl OiBUdWUsIDAxIEZlYiAyMDA1IDA5OjM5OjA0IEdNVA0KU2VydmVyOiBBcGFjaGUvMi4wLjUy IChHZW50b28vTGludXgpIG1vZF9zc2wvMi4wLjUyIE9wZW5TU0wvMC45LjdkIFBIUC80LjMu MTANClgtUG93ZXJlZC1CeTogUEhQLzQuMy4xMA0KTG9jYXRpb246IGh0dHBzOi8vbnB4eXNy di5ldWNsLmRrLw0KQ29udGVudC1MZW5ndGg6IDEwODQNCktlZXAtQWxpdmU6IHRpbWVvdXQ9 MTUsIG1heD0xMDANCkNvbm5lY3Rpb246IEtlZXAtQWxpdmUNCkNvbnRlbnQtVHlwZTogdGV4 dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTENCg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICIt Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9U Ui94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KPGh0bWwgeG1sbnM9Imh0dHA6Ly93 d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9ImRhIiB4bWw6bGFuZz0iZGEiPgo8aGVhZD4K PHRpdGxlPkxvZ2luPC90aXRsZT4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBj b250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1JU08tODg1OS0xNSIgLz4KPGxpbmsgcmVsPSJz dHlsZXNoZWV0IiBocmVmPSJzdHlsZXMuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgo8L2hlYWQ+ Cjxib2R5Pgo8dGFibGUgd2lkdGg9IjEwMCUiPgo8dHI+Cjx0ZD4KPGgxPkxvZ2luPC9oMT4K PC90ZD4KPHRkIGFsaWduPSJyaWdodCI+CjxpbWcgc3JjPSJpbWFnZXMvbG9nby5wbmciIGFs dD0iUHJveHlmaWx0ZXIgTG9nbyIvPgo8L3RkPgo8L3RyPgo8L3RhYmxlPgo8dGFibGUgd2lk dGg9IjgwJSI+Cjx0cj4KPC90cj4KPC90YWJsZT4KPGJyLz48YnIvPjx0YWJsZSB3aWR0aD0i MTAwJSI+Cjx0cj4KPHRkIGFsaWduPSJjZW50ZXIiPgo8Yj5EdSBza2FsIGxvZ2dlIGluZCE8 L2I+PC90ZD4KPC90cj4KPHRyPgo8dGQgYWxpZ249ImNlbnRlciI+Cjxici8+PGJyLz48YnIv Pjxmb3JtIGFjdGlvbj0iaW5kZXgucGhwIiBtZXRob2Q9InBvc3QiPgo8aW5wdXQgdHlwZT0i dGV4dCIgbmFtZT0idXNlcm5hbWUiIHZhbHVlPSJCcnVnZXJuYXZuIiBvbkZvY3VzPSJpZiAo dGhpcy52YWx1ZSA9PSAnQnJ1Z2VybmF2bicpIHt0aGlzLnZhbHVlPScnO307IHJldHVybiB0 cnVlOyIvPgo8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIi8+CjxpbnB1 dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJMb2dpbiIvPgo8L2Zvcm0+PC90ZD4KPC90cj4KPC90 YWJsZT4KPHA+CjxpbWcgc3JjPSJodHRwczovL25weHlzcnYuZXVjbC5kazo1MDI1L2ltYWdl cy9wb3dlcmVkLWJ5LWdlbnRvbzIuanBnIiBhbHQ9IkdOVSBMaW51eCEiIGhlaWdodD0iMzEi IHdpZHRoPSI4OCIgLz4KPC9wPgo8L2JvZHk+PC9odG1sPiZO/0FJFQMAPAAAADwAAAAAEEvK zdoAUARri3QIAEUAACgSX0AAPwYUigoCABkKAADNBAAEY+58z1ue/3PJUBEZIKjHAAAAAAAA AAAsTv9BJMwAAMwBAADMAQAAAAEClt+6ABBLys3aCABFAAG+IHpAAIAGw9gKAADNCgIAGQRj E6Ge/3Iz7nzJ21AY//8WmAAAR0VUIC8gSFRUUC8xLjENCkhvc3Q6IG5weHlzcnYuZXVjbC5k azo1MDI1DQpVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgV2luZG93cyBO VCA1LjE7IGRhLURLOyBydjoxLjcuNSkgR2Vja28vMjAwNDExMTggRmlyZWZveC8xLjANCkFj Y2VwdDogdGV4dC94bWwsYXBwbGljYXRpb24veG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCx0 ZXh0L2h0bWw7cT0wLjksdGV4dC9wbGFpbjtxPTAuOCxpbWFnZS9wbmcsKi8qO3E9MC41DQpB Y2NlcHQtTGFuZ3VhZ2U6IGVuLXVzLGVuO3E9MC41DQpBY2NlcHQtRW5jb2Rpbmc6IGd6aXAs ZGVmbGF0ZQ0KQWNjZXB0LUNoYXJzZXQ6IElTTy04ODU5LTEsdXRmLTg7cT0wLjcsKjtxPTAu Nw0KS2VlcC1BbGl2ZTogMzAwDQpDb25uZWN0aW9uOiBrZWVwLWFsaXZlDQoNCixO/0EuzgAA QgAAAEIAAAAAEEvKzdoAUARri3QIAEUAADQSYUAAPwYUfAoCABkKAADNBAAEY+58z1ye/3PJ gBAZIE60AAABAQUKnv9yM57/c8ksTv9BtQwDALYFAAC2BQAAABBLys3aAFAEa4t0CABFAAWo EmNAAD8GDwYKAgAZCgAAzQQABGPufMnbnv9zyVAYGSAb9QAASFRUUC8xLjEgMzAyIEZvdW5k DQpEYXRlOiBUdWUsIDAxIEZlYiAyMDA1IDA5OjM5OjA0IEdNVA0KU2VydmVyOiBBcGFjaGUv Mi4wLjUyIChHZW50b28vTGludXgpIG1vZF9zc2wvMi4wLjUyIE9wZW5TU0wvMC45LjdkIFBI UC80LjMuMTANClgtUG93ZXJlZC1CeTogUEhQLzQuMy4xMA0KTG9jYXRpb246IGh0dHBzOi8v bnB4eXNydi5ldWNsLmRrLw0KQ29udGVudC1MZW5ndGg6IDEwODQNCktlZXAtQWxpdmU6IHRp bWVvdXQ9MTUsIG1heD0xMDANCkNvbm5lY3Rpb246IEtlZXAtQWxpdmUNCkNvbnRlbnQtVHlw ZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTENCg0KPCFET0NUWVBFIGh0bWwgUFVC TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKICJodHRwOi8vd3d3Lncz Lm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KPGh0bWwgeG1sbnM9Imh0 dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9ImRhIiB4bWw6bGFuZz0iZGEiPgo8 aGVhZD4KPHRpdGxlPkxvZ2luPC90aXRsZT4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1U eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1JU08tODg1OS0xNSIgLz4KPGxpbmsg cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZXMuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgo8 L2hlYWQ+Cjxib2R5Pgo8dGFibGUgd2lkdGg9IjEwMCUiPgo8dHI+Cjx0ZD4KPGgxPkxvZ2lu PC9oMT4KPC90ZD4KPHRkIGFsaWduPSJyaWdodCI+CjxpbWcgc3JjPSJpbWFnZXMvbG9nby5w bmciIGFsdD0iUHJveHlmaWx0ZXIgTG9nbyIvPgo8L3RkPgo8L3RyPgo8L3RhYmxlPgo8dGFi bGUgd2lkdGg9IjgwJSI+Cjx0cj4KPC90cj4KPC90YWJsZT4KPGJyLz48YnIvPjx0YWJsZSB3 aWR0aD0iMTAwJSI+Cjx0cj4KPHRkIGFsaWduPSJjZW50ZXIiPgo8Yj5EdSBza2FsIGxvZ2dl IGluZCE8L2I+PC90ZD4KPC90cj4KPHRyPgo8dGQgYWxpZ249ImNlbnRlciI+Cjxici8+PGJy Lz48YnIvPjxmb3JtIGFjdGlvbj0iaW5kZXgucGhwIiBtZXRob2Q9InBvc3QiPgo8aW5wdXQg dHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHZhbHVlPSJCcnVnZXJuYXZuIiBvbkZvY3Vz PSJpZiAodGhpcy52YWx1ZSA9PSAnQnJ1Z2VybmF2bicpIHt0aGlzLnZhbHVlPScnO307IHJl dHVybiB0cnVlOyIvPgo8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIi8+ CjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJMb2dpbiIvPgo8L2Zvcm0+PC90ZD4KPC90 cj4KPC90YWJsZT4KPHA+CjxpbWcgc3JjPSJodHRwczovL25weHlzcnYuZXVjbC5kazo1MDI1 L2ltYWdlcy9wb3dlcmVkLWJ5LWdlbnRvbzIuanBnIiBhbHQ9IkdOVSBMaW51eCEiIGhlaWdo dD0iMzEiIHdpZHRoPSI4OCIgLz4KPC9wPgo8L2JvZHk+PC9odG1sPkRO/0HhUgEAzAEAAMwB AAAAAQKW37oAEEvKzdoIAEUAAb4ggkAAgAbD0AoAAM0KAgAZBGMToZ7/cjPufMnbUBj//xaY AABHRVQgLyBIVFRQLzEuMQ0KSG9zdDogbnB4eXNydi5ldWNsLmRrOjUwMjUNClVzZXItQWdl bnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsgZGEtREs7IHJ2 OjEuNy41KSBHZWNrby8yMDA0MTExOCBGaXJlZm94LzEuMA0KQWNjZXB0OiB0ZXh0L3htbCxh cHBsaWNhdGlvbi94bWwsYXBwbGljYXRpb24veGh0bWwreG1sLHRleHQvaHRtbDtxPTAuOSx0 ZXh0L3BsYWluO3E9MC44LGltYWdlL3BuZywqLyo7cT0wLjUNCkFjY2VwdC1MYW5ndWFnZTog ZW4tdXMsZW47cT0wLjUNCkFjY2VwdC1FbmNvZGluZzogZ3ppcCxkZWZsYXRlDQpBY2NlcHQt Q2hhcnNldDogSVNPLTg4NTktMSx1dGYtODtxPTAuNywqO3E9MC43DQpLZWVwLUFsaXZlOiAz MDANCkNvbm5lY3Rpb246IGtlZXAtYWxpdmUNCg0KRE7/QThVAQBCAAAAQgAAAAAQS8rN2gBQ BGuLdAgARQAANBJlQAA/BhR4CgIAGQoAAM0EAARj7nzPXJ7/c8mAEBkgTrQAAAEBBQqe/3Iz nv9zyURO/0EODAMAtgUAALYFAAAAEEvKzdoAUARri3QIAEUABagSZ0AAPwYPAgoCABkKAADN BAAEY+58ydue/3PJUBgZIBv1AABIVFRQLzEuMSAzMDIgRm91bmQNCkRhdGU6IFR1ZSwgMDEg RmViIDIwMDUgMDk6Mzk6MDQgR01UDQpTZXJ2ZXI6IEFwYWNoZS8yLjAuNTIgKEdlbnRvby9M aW51eCkgbW9kX3NzbC8yLjAuNTIgT3BlblNTTC8wLjkuN2QgUEhQLzQuMy4xMA0KWC1Qb3dl cmVkLUJ5OiBQSFAvNC4zLjEwDQpMb2NhdGlvbjogaHR0cHM6Ly9ucHh5c3J2LmV1Y2wuZGsv DQpDb250ZW50LUxlbmd0aDogMTA4NA0KS2VlcC1BbGl2ZTogdGltZW91dD0xNSwgbWF4PTEw MA0KQ29ubmVjdGlvbjogS2VlcC1BbGl2ZQ0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNo YXJzZXQ9SVNPLTg4NTktMQ0KDQo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE IFhIVE1MIDEuMCBTdHJpY3QvL0VOIgogImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9E VEQveGh0bWwxLXN0cmljdC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MTk5OS94aHRtbCIgbGFuZz0iZGEiIHhtbDpsYW5nPSJkYSI+CjxoZWFkPgo8dGl0bGU+TG9n aW48L3RpdGxlPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl eHQvaHRtbDtjaGFyc2V0PUlTTy04ODU5LTE1IiAvPgo8bGluayByZWw9InN0eWxlc2hlZXQi IGhyZWY9InN0eWxlcy5jc3MiIHR5cGU9InRleHQvY3NzIi8+CjwvaGVhZD4KPGJvZHk+Cjx0 YWJsZSB3aWR0aD0iMTAwJSI+Cjx0cj4KPHRkPgo8aDE+TG9naW48L2gxPgo8L3RkPgo8dGQg YWxpZ249InJpZ2h0Ij4KPGltZyBzcmM9ImltYWdlcy9sb2dvLnBuZyIgYWx0PSJQcm94eWZp bHRlciBMb2dvIi8+CjwvdGQ+CjwvdHI+CjwvdGFibGU+Cjx0YWJsZSB3aWR0aD0iODAlIj4K PHRyPgo8L3RyPgo8L3RhYmxlPgo8YnIvPjxici8+PHRhYmxlIHdpZHRoPSIxMDAlIj4KPHRy Pgo8dGQgYWxpZ249ImNlbnRlciI+CjxiPkR1IHNrYWwgbG9nZ2UgaW5kITwvYj48L3RkPgo8 L3RyPgo8dHI+Cjx0ZCBhbGlnbj0iY2VudGVyIj4KPGJyLz48YnIvPjxici8+PGZvcm0gYWN0 aW9uPSJpbmRleC5waHAiIG1ldGhvZD0icG9zdCI+CjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1l PSJ1c2VybmFtZSIgdmFsdWU9IkJydWdlcm5hdm4iIG9uRm9jdXM9ImlmICh0aGlzLnZhbHVl ID09ICdCcnVnZXJuYXZuJykge3RoaXMudmFsdWU9Jyc7fTsgcmV0dXJuIHRydWU7Ii8+Cjxp bnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiLz4KPGlucHV0IHR5cGU9InN1 Ym1pdCIgdmFsdWU9IkxvZ2luIi8+CjwvZm9ybT48L3RkPgo8L3RyPgo8L3RhYmxlPgo8cD4K PGltZyBzcmM9Imh0dHBzOi8vbnB4eXNydi5ldWNsLmRrOjUwMjUvaW1hZ2VzL3Bvd2VyZWQt YnktZ2VudG9vMi5qcGciIGFsdD0iR05VIExpbnV4ISIgaGVpZ2h0PSIzMSIgd2lkdGg9Ijg4 IiAvPgo8L3A+CjwvYm9keT48L2h0bWw+Yk7/QVL9AQDMAQAAzAEAAAABApbfugAQS8rN2ggA RQABviCMQACABsPGCgAAzQoCABkEYxOhnv9yM+58ydtQGP//FpgAAEdFVCAvIEhUVFAvMS4x DQpIb3N0OiBucHh5c3J2LmV1Y2wuZGs6NTAyNQ0KVXNlci1BZ2VudDogTW96aWxsYS81LjAg KFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNS4xOyBkYS1ESzsgcnY6MS43LjUpIEdlY2tvLzIw MDQxMTE4IEZpcmVmb3gvMS4wDQpBY2NlcHQ6IHRleHQveG1sLGFwcGxpY2F0aW9uL3htbCxh cHBsaWNhdGlvbi94aHRtbCt4bWwsdGV4dC9odG1sO3E9MC45LHRleHQvcGxhaW47cT0wLjgs aW1hZ2UvcG5nLCovKjtxPTAuNQ0KQWNjZXB0LUxhbmd1YWdlOiBlbi11cyxlbjtxPTAuNQ0K QWNjZXB0LUVuY29kaW5nOiBnemlwLGRlZmxhdGUNCkFjY2VwdC1DaGFyc2V0OiBJU08tODg1 OS0xLHV0Zi04O3E9MC43LCo7cT0wLjcNCktlZXAtQWxpdmU6IDMwMA0KQ29ubmVjdGlvbjog a2VlcC1hbGl2ZQ0KDQpiTv9Bsv8BAEIAAABCAAAAABBLys3aAFAEa4t0CABFAAA0EmlAAD8G FHQKAgAZCgAAzQQABGPufM9cnv9zyYAQGSBOtAAAAQEFCp7/cjOe/3PJbE7/QemZAAC2BQAA tgUAAAAQS8rN2gBQBGuLdAgARQAFqDvpQAA/BuV/CgIAGQoAAM0EAARi6Np/vXI8YxFQGBkg rTEAAEhUVFAvMS4xIDMwMiBGb3VuZA0KRGF0ZTogVHVlLCAwMSBGZWIgMjAwNSAwOTozNzoy MCBHTVQNClNlcnZlcjogQXBhY2hlLzIuMC41MiAoR2VudG9vL0xpbnV4KSBtb2Rfc3NsLzIu MC41MiBPcGVuU1NMLzAuOS43ZCBQSFAvNC4zLjEwDQpYLVBvd2VyZWQtQnk6IFBIUC80LjMu MTANCkxvY2F0aW9uOiBodHRwczovL25weHlzcnYuZXVjbC5kay8NCkNvbnRlbnQtTGVuZ3Ro OiAxMDg0DQpLZWVwLUFsaXZlOiB0aW1lb3V0PTE1LCBtYXg9MTAwDQpDb25uZWN0aW9uOiBL ZWVwLUFsaXZlDQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0x DQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmlj dC8vRU4iCiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0 LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5n PSJkYSIgeG1sOmxhbmc9ImRhIj4KPGhlYWQ+Cjx0aXRsZT5Mb2dpbjwvdGl0bGU+CjxtZXRh IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9 SVNPLTg4NTktMTUiIC8+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGVzLmNz cyIgdHlwZT0idGV4dC9jc3MiLz4KPC9oZWFkPgo8Ym9keT4KPHRhYmxlIHdpZHRoPSIxMDAl Ij4KPHRyPgo8dGQ+CjxoMT5Mb2dpbjwvaDE+CjwvdGQ+Cjx0ZCBhbGlnbj0icmlnaHQiPgo8 aW1nIHNyYz0iaW1hZ2VzL2xvZ28ucG5nIiBhbHQ9IlByb3h5ZmlsdGVyIExvZ28iLz4KPC90 ZD4KPC90cj4KPC90YWJsZT4KPHRhYmxlIHdpZHRoPSI4MCUiPgo8dHI+CjwvdHI+CjwvdGFi bGU+Cjxici8+PGJyLz48dGFibGUgd2lkdGg9IjEwMCUiPgo8dHI+Cjx0ZCBhbGlnbj0iY2Vu dGVyIj4KPGI+RHUgc2thbCBsb2dnZSBpbmQhPC9iPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkIGFs aWduPSJjZW50ZXIiPgo8YnIvPjxici8+PGJyLz48Zm9ybSBhY3Rpb249ImluZGV4LnBocCIg bWV0aG9kPSJwb3N0Ij4KPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiB2YWx1 ZT0iQnJ1Z2VybmF2biIgb25Gb2N1cz0iaWYgKHRoaXMudmFsdWUgPT0gJ0JydWdlcm5hdm4n KSB7dGhpcy52YWx1ZT0nJzt9OyByZXR1cm4gdHJ1ZTsiLz4KPGlucHV0IHR5cGU9InBhc3N3 b3JkIiBuYW1lPSJwYXNzd29yZCIvPgo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iTG9n aW4iLz4KPC9mb3JtPjwvdGQ+CjwvdHI+CjwvdGFibGU+CjxwPgo8aW1nIHNyYz0iaHR0cHM6 Ly9ucHh5c3J2LmV1Y2wuZGs6NTAyNS9pbWFnZXMvcG93ZXJlZC1ieS1nZW50b28yLmpwZyIg YWx0PSJHTlUgTGludXghIiBoZWlnaHQ9IjMxIiB3aWR0aD0iODgiIC8+CjwvcD4KPC9ib2R5 PjwvaHRtbD50Tv9BiaYOALYFAAC2BQAAABBLys3aAFAEa4t0CABFAAWoEmtAAD8GDv4KAgAZ CgAAzQQABGPufMnbnv9zyVAYGSAb9QAASFRUUC8xLjEgMzAyIEZvdW5kDQpEYXRlOiBUdWUs IDAxIEZlYiAyMDA1IDA5OjM5OjA0IEdNVA0KU2VydmVyOiBBcGFjaGUvMi4wLjUyIChHZW50 b28vTGludXgpIG1vZF9zc2wvMi4wLjUyIE9wZW5TU0wvMC45LjdkIFBIUC80LjMuMTANClgt UG93ZXJlZC1CeTogUEhQLzQuMy4xMA0KTG9jYXRpb246IGh0dHBzOi8vbnB4eXNydi5ldWNs LmRrLw0KQ29udGVudC1MZW5ndGg6IDEwODQNCktlZXAtQWxpdmU6IHRpbWVvdXQ9MTUsIG1h eD0xMDANCkNvbm5lY3Rpb246IEtlZXAtQWxpdmUNCkNvbnRlbnQtVHlwZTogdGV4dC9odG1s OyBjaGFyc2V0PUlTTy04ODU5LTENCg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0Mv L0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRt bDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMu b3JnLzE5OTkveGh0bWwiIGxhbmc9ImRhIiB4bWw6bGFuZz0iZGEiPgo8aGVhZD4KPHRpdGxl PkxvZ2luPC90aXRsZT4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50 PSJ0ZXh0L2h0bWw7Y2hhcnNldD1JU08tODg1OS0xNSIgLz4KPGxpbmsgcmVsPSJzdHlsZXNo ZWV0IiBocmVmPSJzdHlsZXMuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIvPgo8L2hlYWQ+Cjxib2R5 Pgo8dGFibGUgd2lkdGg9IjEwMCUiPgo8dHI+Cjx0ZD4KPGgxPkxvZ2luPC9oMT4KPC90ZD4K PHRkIGFsaWduPSJyaWdodCI+CjxpbWcgc3JjPSJpbWFnZXMvbG9nby5wbmciIGFsdD0iUHJv eHlmaWx0ZXIgTG9nbyIvPgo8L3RkPgo8L3RyPgo8L3RhYmxlPgo8dGFibGUgd2lkdGg9Ijgw JSI+Cjx0cj4KPC90cj4KPC90YWJsZT4KPGJyLz48YnIvPjx0YWJsZSB3aWR0aD0iMTAwJSI+ Cjx0cj4KPHRkIGFsaWduPSJjZW50ZXIiPgo8Yj5EdSBza2FsIGxvZ2dlIGluZCE8L2I+PC90 ZD4KPC90cj4KPHRyPgo8dGQgYWxpZ249ImNlbnRlciI+Cjxici8+PGJyLz48YnIvPjxmb3Jt IGFjdGlvbj0iaW5kZXgucGhwIiBtZXRob2Q9InBvc3QiPgo8aW5wdXQgdHlwZT0idGV4dCIg bmFtZT0idXNlcm5hbWUiIHZhbHVlPSJCcnVnZXJuYXZuIiBvbkZvY3VzPSJpZiAodGhpcy52 YWx1ZSA9PSAnQnJ1Z2VybmF2bicpIHt0aGlzLnZhbHVlPScnO307IHJldHVybiB0cnVlOyIv Pgo8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIi8+CjxpbnB1dCB0eXBl PSJzdWJtaXQiIHZhbHVlPSJMb2dpbiIvPgo8L2Zvcm0+PC90ZD4KPC90cj4KPC90YWJsZT4K PHA+CjxpbWcgc3JjPSJodHRwczovL25weHlzcnYuZXVjbC5kazo1MDI1L2ltYWdlcy9wb3dl cmVkLWJ5LWdlbnRvbzIuanBnIiBhbHQ9IkdOVSBMaW51eCEiIGhlaWdodD0iMzEiIHdpZHRo PSI4OCIgLz4KPC9wPgo8L2JvZHk+PC9odG1sPtRO/0GNBgMAtgUAALYFAAAAEEvKzdoAUARr i3QIAEUABagSbUAAPwYO/AoCABkKAADNAFAEY+58ydue/3PJUBgZIB+lAABIVFRQLzEuMSAz MDIgRm91bmQNCkRhdGU6IFR1ZSwgMDEgRmViIDIwMDUgMDk6Mzk6MDQgR01UDQpTZXJ2ZXI6 IEFwYWNoZS8yLjAuNTIgKEdlbnRvby9MaW51eCkgbW9kX3NzbC8yLjAuNTIgT3BlblNTTC8w LjkuN2QgUEhQLzQuMy4xMA0KWC1Qb3dlcmVkLUJ5OiBQSFAvNC4zLjEwDQpMb2NhdGlvbjog aHR0cHM6Ly9ucHh5c3J2LmV1Y2wuZGsvDQpDb250ZW50LUxlbmd0aDogMTA4NA0KS2VlcC1B bGl2ZTogdGltZW91dD0xNSwgbWF4PTEwMA0KQ29ubmVjdGlvbjogS2VlcC1BbGl2ZQ0KQ29u dGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMQ0KDQo8IURPQ1RZUEUg aHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgogImh0dHA6 Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgo8aHRtbCB4 bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgbGFuZz0iZGEiIHhtbDpsYW5n PSJkYSI+CjxoZWFkPgo8dGl0bGU+TG9naW48L3RpdGxlPgo8bWV0YSBodHRwLWVxdWl2PSJD b250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PUlTTy04ODU5LTE1IiAv Pgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlcy5jc3MiIHR5cGU9InRleHQv Y3NzIi8+CjwvaGVhZD4KPGJvZHk+Cjx0YWJsZSB3aWR0aD0iMTAwJSI+Cjx0cj4KPHRkPgo8 aDE+TG9naW48L2gxPgo8L3RkPgo8dGQgYWxpZ249InJpZ2h0Ij4KPGltZyBzcmM9ImltYWdl cy9sb2dvLnBuZyIgYWx0PSJQcm94eWZpbHRlciBMb2dvIi8+CjwvdGQ+CjwvdHI+CjwvdGFi bGU+Cjx0YWJsZSB3aWR0aD0iODAlIj4KPHRyPgo8L3RyPgo8L3RhYmxlPgo8YnIvPjxici8+ PHRhYmxlIHdpZHRoPSIxMDAlIj4KPHRyPgo8dGQgYWxpZ249ImNlbnRlciI+CjxiPkR1IHNr YWwgbG9nZ2UgaW5kITwvYj48L3RkPgo8L3RyPgo8dHI+Cjx0ZCBhbGlnbj0iY2VudGVyIj4K PGJyLz48YnIvPjxici8+PGZvcm0gYWN0aW9uPSJpbmRleC5waHAiIG1ldGhvZD0icG9zdCI+ CjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgdmFsdWU9IkJydWdlcm5hdm4i IG9uRm9jdXM9ImlmICh0aGlzLnZhbHVlID09ICdCcnVnZXJuYXZuJykge3RoaXMudmFsdWU9 Jyc7fTsgcmV0dXJuIHRydWU7Ii8+CjxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFz c3dvcmQiLz4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkxvZ2luIi8+CjwvZm9ybT48 L3RkPgo8L3RyPgo8L3RhYmxlPgo8cD4KPGltZyBzcmM9Imh0dHBzOi8vbnB4eXNydi5ldWNs LmRrOjUwMjUvaW1hZ2VzL3Bvd2VyZWQtYnktZ2VudG9vMi5qcGciIGFsdD0iR05VIExpbnV4 ISIgaGVpZ2h0PSIzMSIgd2lkdGg9Ijg4IiAvPgo8L3A+CjwvYm9keT48L2h0bWw+ --------------060701060400070009020609--