Creating A Magic Formula Screen With Google Finance

Sun, Sep 13, 2009

Magic Formula Investing

Here’s a little secret, I spend most of my online time on a handful of sites. In particular, I spend about 80% of my time on two sites. The first is Morningstar.com in which I am a premium user and use it mostly to do basic security analysis, look at 10 years of financial data, etc.. Secondly, I spend a ton of time on Google Finance. Before moving on , I want to make a disclaimer that I am a big Google user. I use its search engine, mail, feed reader, webmaster central, Adsense, Adwords, and a few other Google products. I find Google’s products simple to use and more importantly, beneficial. Now, back to Google Finance. Google Finance is relative new to other major finance sites such as MSN Money and Yahoo Finance.  It launched in 2006 and was pretty basic. You entered a stock symbol, and Google Finance returned a stock quote, chart and a few links to outside sources. Like every other Google product, Google Finance slowly but surely started to become more interesting. One of those things that made Google Finance a hair more interesting is its stock screener. And from that stock screener, we can create a custom magic formula screen.

Why Create A Custom Magic Formula Screen

  1. First of all, always use the free official magic formula screen at magicformulainvesting.com Its the website solely dedicated to The Little Book That Beats The Market.
  2. As a magic formula investor, there is no guarantee magicformulainvesting.com will be around in 10 years. Although, according to whois.net, the URL is registered until 2013. Yet, I want to have a backup “just in case”.
  3. You can search for more companies, including foreign stocks. The official magic formula screen currently allows users to search for screens with 30 and 50 companies. Prior to the site update which occurred in February 2009, users were allowed to search for the top 25, 50 and 100.
  4. You can search for smaller companies. In the same  February 2009 update, users are now limited to choosing stocks with a market cap greater than or equal to 50 million. If you have seen this Bruce Greenwald Value Investing Video or this Paul Sonkin video, value is often found in small obscure companies.

Magic Formula Screen Parameters As Described In The Little Book That Beats The Market

General screening instructions can be found on the chapter titled “Step-by-Step Instructions” found on page 135. The first 2 bullet points (found on page 136) are the important ones.

  • Use Return on Assets (ROA) as a screening criterion. Set the minimum ROA at 25%. (This will take place of return on capital from the magic formula study.)
  • From the resulting group of high ROA stocks, screen for those stocks with the lowest Price/Earnings (P/E) ratios.(This will take the place of earnings yield from the magic formula study.)

Creating A Custom Magic Formula Screen In “X” Steps

  1. Go to Google Finance’s Stock Screener, which can be found on the upper left hand.
  2. It will take use to the default stock screener which has Market Cap, P/E Ratio, Div Yield and 52 Week Price Range.
  3. “X” out 52 Week Price Range and Div Yield (Div. Yield is optional)
  4. Click on “Add Criteria”; we will be searching for companies with ROA greater than or equal to 25. I also like to add the 5 year average. By adding the 5 year average, we have a better understand of its “normal” ROA. To do this go to Add Criteria<Operating Metrics<Return On Assets. Set the range between 25 and 100
  5. Set the P/E range between 5 & 20. On page 136, Joel Greenblatt does mention a P/E less than 5 might indicate the previous year, or the data, might be unusual.  I never purchase a stock with a P/E greater than 20, even that might might be a bit too high as most magic formula stocks have a P/E less than 15, but 20 will give us some interesting results and sometimes better quality names.
  6. Image and video hosting by TinyPic
    Image and video hosting by TinyPic

Custom Magic Formula Screen Results

Below is a screen shot of the results produced. I circled the stocks that currently appear on the official magic formula screen or that have appeared on it from recent memory.

Image and video hosting by TinyPic

Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • email
  • Reddit
  • RSS
  • StumbleUpon
  • Tipd
  • Twitter
If you enjoyed this post, make sure you subscribe to my RSS feed!

Related posts:

  1. Quick Security Analysis With The Magic Formula Ever since its inception, my main goal with Magic Formula...

Related posts brought to you by Yet Another Related Posts Plugin.

, , , , , ,

8 Responses to “Creating A Magic Formula Screen With Google Finance”

  1. Tim Says:

    Great post, a backup is always a good idea.

    Take a look at http://www.jingproject.com/ for screenshots. the free version works great also for annotating.

    Disclosure: no interest

  2. Joe Doniach Says:

    I just followed your instructions, and only two stocks, GNI and NTRI, appear on the Magic Formula web site, so obviously the screener Greenblatt uses is not the same.

  3. Admin Says:

    1.) The instructions are exactly as laid out in the book

    2.) I circled the one’s that currently are on the screen or have been from recent memory.

    3.) Unless you have the $$$ from Compustat or know exactly what J.G is screen for exactly, no unofficialy screen will replicate it completely.

    4.) Let’s just stick to the official :) this is simply a backup

  4. Vanetta Bogle Says:

    Howdy that?s a very fascinating view, It does give one food for thought, I am genuinely delighted I stumbled on your blog, i was using Stumbleupon at the time, in any case i don?t want to drift on too much, but i would like to mention that I will be back when I have a little time to read your blog more thoroughly, Once again thank you for the blog post and please do keep up the good work,

  5. Steve Says:

    Thanks for putting this up. Google stock screener rocks. Way better than yahoo, imo.

    I just finished Greenblatt’s book, really good stuff for us value investors.

    I found his modifications to earnings yield interesting…. he uses enterprise value and makes another adjustment.

    For example, I checked out the stats on some stocks that came up in the magic screen, and the p/e’s looked horrible. But then I looked at enterprise value and a different story was told.

    As an example check out KHD. It has no trailing earnings and thus no p/e. But it’s trading at a slight discount to CASH!

  6. Daniel Says:

    The general screen on p. 135 is not identical to the screen he uses–and Greenblatt explains this a few times in the book, going into greatest detail in the appendix. Greenblatt’s site screens for Return on Capital and Earnings Yield, and he defines Return on Capital as pre-tax operating earnings (EBIT) divided by the sum of “net working capital” plus “net fixed assets”. Also notable is that he defines earnings yield not as earnings divided by price (as occurs in some other screens I know) but rather EBIT divided by enterprise value. Because Greenblatt knows that those ratios aren’t often covered by other people’s screens, he offers ROA over 25% and low P/Es as substitute screening criteria.

    Interestingly, a few of the names from your Google screen in September now (March 2010) show up on the Greenblatt screen: ARO, CHKE, SOHU, APOL, and LO. For what it’s worth. And of course the Greenblatt results depend on what market cap range you specify….

  7. Steve Says:

    there are two issues with greenblatt’s ROC calculation that are driving me nuts..
    how is “excess” cash defined/calculated?

    also, what are “net fixed assets”? are these only property plant and equipment?

    i’ve re-read the appendix numerous times, but still can’t completely nail down ROC as he computes it


Trackbacks/Pingbacks

  1. [...] Finance- As explained in my Create A Custom Magic Formula guide, Google Finance is my go to site for the day’s news. I also use Google Finance to track [...]

Leave a Reply

PHVsPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19hZF8zMDBfYWRzZW5zZTwvc3Ryb25nPiAtIDxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPjwhLS0NCmdvb2dsZV9hZF9jbGllbnQgPSBcInB1Yi01NTU0OTI5OTEwODU2MTU5XCI7DQovKiAzMDB4MjUwLCBjcmVhdGVkIDEwLzMxLzA5ICovDQpnb29nbGVfYWRfc2xvdCA9IFwiNTE2NTQ0MjkwMlwiOw0KZ29vZ2xlX2FkX3dpZHRoID0gMzAwOw0KZ29vZ2xlX2FkX2hlaWdodCA9IDI1MDsNCi8vLS0+DQo8L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiDQpzcmM9XCJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL3Nob3dfYWRzLmpzXCI+DQo8L3NjcmlwdD48L2xpPjxsaT48c3Ryb25nPndvb19hZF8zMDBfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0zMDB4MjUwLTIuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfMzAwX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2NvbnRlbnRfYWRzZW5zZTwvc3Ryb25nPiAtIDxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiIGxhbmd1YWdlPVwiamF2YXNjcmlwdFwiIHNyYz1cImh0dHA6Ly93d3cudGtxbGhjZS5jb20vcGxhY2Vob2xkZXItMzg3MTY1OD90YXJnZXQ9X3RvcCZtb3VzZW92ZXI9TlwiPjwvc2NyaXB0PjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2NvbnRlbnRfZGlzYWJsZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtNDY4eDYwLTIuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfY29udGVudF91cmw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8xPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5hZHZlcnRpc2Vyc2VydmVyLmNvbS9hZHZlcnRpc2VyaW1hZ2UuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuYWR2ZXJ0aXNlcnNlcnZlci5jb20vYWR2ZXJ0aXNlcmltYWdlLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzM8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTMuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfNDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtNC5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV81PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS00LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzY8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTQuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3LnRrcWxoY2UuY29tL2NsaWNrLTM1MjQwNjktMTA1MjIyMTk8L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMjwvc3Ryb25nPiAtIGh0dHA6Ly9tZW1iZXJzLm1vcm5pbmdzdGFyLmNvbS9tZW1iZXJzdHBhZ2VzL2Z2cGxhbmRpbmdwLmh0bWw/cmVmZXJpZD1BRjEwMDA8L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF80PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzU8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfNjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FsdF9zdHlsZXNoZWV0PC9zdHJvbmc+IC0gNC1pY2VibHVlLmNzczwvbGk+PGxpPjxzdHJvbmc+d29vX2FzaWRlc19jYXRlZ29yeTwvc3Ryb25nPiAtIFNlbGVjdCBhIGNhdGVnb3J5OjwvbGk+PGxpPjxzdHJvbmc+d29vX2F1dGhvcjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYXV0b19pbWc8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2Jsb2dfY2F0X2lkPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYmxvZ19uYXZpZ2F0aW9uPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2Jsb2dfbmF2aWdhdGlvbl9mb290ZXI8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fYmxvZ19wZXJtYWxpbms8L3N0cm9uZz4gLSAvY2F0ZWdvcnkvYmxvZy88L2xpPjxsaT48c3Ryb25nPndvb19ibG9nX3NpZGViYXI8L3N0cm9uZz4gLSBJbm5lciBQYWdlczwvbGk+PGxpPjxzdHJvbmc+d29vX2NvbnRlbnQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NvbnRlbnRfZmVhdDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Zhdmljb248L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19kaXNjbGFpbWVyPC9zdHJvbmc+IC0gQWxlamFuZHJvIEdhcmNpYSBpcyBub3QgYW4gaW52ZXN0bWVudCBhZHZpc29yeSBzZXJ2aWNlLCBub3IgYSByZWdpc3RlcmVkIGludmVzdG1lbnQgYWR2aXNlciBvciBicm9rZXItZGVhbGVyIGFuZCBkb2VzIG5vdCBwdXJwb3J0IHRvIHRlbGwgb3Igc3VnZ2VzdCB3aGljaCBzZWN1cml0aWVzIGN1c3RvbWVycyBzaG91bGQgYnV5IG9yIHNlbGwgZm9yIHRoZW1zZWx2ZXMuVGhpcyBzaXRlIGlzIGZvciBlZHVjYXRpb25hbCBwdXJwb3NlcyBvbmx5LiBUaGUgc2VjdXJpdGllcyBtZW50aW9uZWQgYXJlIG5vdCBhcHByb3ByaWF0ZSBmb3IgYWxsIGludmVzdG9ycyBhbmQgbm90aGluZyBoZXJlaW4gY29uc3RpdHV0ZXMgYSByZWNvbW1lbmRhdGlvbiB0byBidXkgb3Igc2VsbC4gUGxlYXNlIGNvbnN1bHQgeW91ciBmaW5hbmNpYWwgYWR2aXNlciBiZWZvcmUgbWFraW5nIGludmVzdG1lbnQgZGVjaXNpb25zLiBXaGlsZSBhbGwgcmVhc29uYWJsZSBlZmZvcnQgaXMgbWFkZSB0byBlbnN1cmUgdGhlIGFjY3VyYWN5IG9mIGluZm9ybWF0aW9uIGFuZCBkYXRhIGNvbnRhaW5lZCBoZXJlaW4sIGFjY3VyYWN5IGNhbm5vdCBiZSBndWFyYW50ZWVkLiBQYXN0IHBlcmZvcm1hbmNlIHJlc3VsdHMgZG9lcyBub3QgZ3VhcmFudGVlIGZ1dHVyZSBwZXJmb3JtYW5jZSByZXN1bHRzLiBSZXN1bHRzIGFyZSBub3QgZ3VhcmFudGVlZCBhbmQgd2UgYXNzdW1lIG5vIGxpYWJpbGl0eSB3aGF0c29ldmVyIGZvciBhbnkgbWF0ZXJpYWwgbG9zc2VzIHRoYXQgbWF5IG9jY3VyLiBBZ2FpbiwgdGhpcyBzaXRlIGlzIGZvciBlZHVjYXRpb25hbCBwdXJwb3NlcyBvbmx5LCBjb25zdWx0IHlvdXIgZmluYW5jaWFsIGFkdmlzZXIgYmVmb3JlIG1ha2luZyBpbnZlc3RtZW50IGRlY2lzaW9ucy48L2xpPjxsaT48c3Ryb25nPndvb19leGNsdWRlX3BhZ2VzX2Zvb3Rlcjwvc3Ryb25nPiAtIDIxLDI0LDI2LDgzLDYyLDE0MCwxNjEsMTQ2LDEzNiwxODYsMjIwLDI2NSwyODEsMjg3LDMxMzwvbGk+PGxpPjxzdHJvbmc+d29vX2V4Y2x1ZGVfcGFnZXNfbWFpbjwvc3Ryb25nPiAtIDIxLDI0LDI2LDgzLDYyPC9saT48bGk+PHN0cm9uZz53b29fZXhjbHVkZV9wYWdlc19zdWJuYXY8L3N0cm9uZz4gLSAyMSwyNCwyNiw4Myw2MiwyOCwxNDAsMTQ2LDEzNi4xNjEsMTg2LDIyMDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlYXR1cmVkX3Bvc3RzPC9zdHJvbmc+IC0gU2VsZWN0IGEgbnVtYmVyOjwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlYXRfaGVpZ2h0PC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZmVhdF9pbWFnZV9oZWlnaHQ8L3N0cm9uZz4gLSAxOTU8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0X2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gNTQwPC9saT48bGk+PHN0cm9uZz53b29fZmVhdF93aWR0aDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfaWQ8L3N0cm9uZz4gLSBodHRwOi8vZmVlZGJ1cm5lci5nb29nbGUuY29tL2ZiL2EvbWFpbHZlcmlmeT91cmk9VmFsdWVJbnZlc3RpbmdQcm88L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly9mZWVkcy5mZWVkYnVybmVyLmNvbS9WYWx1ZUludmVzdGluZ1BybzwvbGk+PGxpPjxzdHJvbmc+d29vX2dvb2dsZV9hbmFseXRpY3M8L3N0cm9uZz4gLSA8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj4NCnZhciBnYUpzSG9zdCA9ICgoXCJodHRwczpcIiA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCkgPyBcImh0dHBzOi8vc3NsLlwiIDogXCJodHRwOi8vd3d3LlwiKTsNCmRvY3VtZW50LndyaXRlKHVuZXNjYXBlKFwiJTNDc2NyaXB0IHNyYz1cJ1wiICsgZ2FKc0hvc3QgKyBcImdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzXCcgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnJTNFJTNDL3NjcmlwdCUzRVwiKSk7DQo8L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPg0KdHJ5IHsNCnZhciBwYWdlVHJhY2tlciA9IF9nYXQuX2dldFRyYWNrZXIoXCJVQS0xMTU5MTMzLTI1XCIpOw0KcGFnZVRyYWNrZXIuX3RyYWNrUGFnZXZpZXcoKTsNCn0gY2F0Y2goZXJyKSB7fTwvc2NyaXB0Pg0KDQo8IS0tIEtvbnRlcmEgQ29udGVudExpbmsoVE0pOy0tPg0KPHNjcmlwdCB0eXBlPVwndGV4dC9qYXZhc2NyaXB0XCc+DQp2YXIgZGNfQWRMaW5rQ29sb3IgPSBcJ2JsdWVcJyA7DQp2YXIgZGNfUHVibGlzaGVySUQgPSA0MzIxNSA7DQo8L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnIHNyYz1cJ2h0dHA6Ly9rb25hLmtvbnRlcmEuY29tL2phdmFzY3JpcHQvbGliL0tvbmFMaWJJbmxpbmUuanNcJz4NCjwvc2NyaXB0Pg0KPCEtLSBLb250ZXJhIENvbnRlbnRMaW5rKFRNKSAtLT48L2xpPjxsaT48c3Ryb25nPndvb19ob21lcGFnZTwvc3Ryb25nPiAtIGxheW91dC1kZWZhdWx0LnBocDwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfb25lX2NvbDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX3NpZGViYXI8L3N0cm9uZz4gLSBIb21lcGFnZTwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX3NpbmdsZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29faW50cm9fcGFnZTwvc3Ryb25nPiAtIDIxPC9saT48bGk+PHN0cm9uZz53b29faW50cm9fcGFnZV9sZWZ0PC9zdHJvbmc+IC0gMjQ8L2xpPjxsaT48c3Ryb25nPndvb19pbnRyb19wYWdlX3JpZ2h0PC9zdHJvbmc+IC0gMjY8L2xpPjxsaT48c3Ryb25nPndvb19sb2dvPC9zdHJvbmc+IC0gaHR0cDovL3d3dy52YWx1ZWludmVzdGluZ3Byby5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy81LXZpcHJvd2ViLnBuZzwvbGk+PGxpPjxzdHJvbmc+d29vX21hZ19mZWF0dXJlZDwvc3Ryb25nPiAtIFNlbGVjdCBhIG51bWJlcjo8L2xpPjxsaT48c3Ryb25nPndvb19tYWdfc2Vjb25kYXJ5PC9zdHJvbmc+IC0gU2VsZWN0IGEgbnVtYmVyOjwvbGk+PGxpPjxzdHJvbmc+d29vX21hbnVhbDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9zdXBwb3J0L3RoZW1lLWRvY3VtZW50YXRpb24vZnJlc2gtbmV3cy88L2xpPjxsaT48c3Ryb25nPndvb19wYWdlX3NpZGViYXI8L3N0cm9uZz4gLSBJbm5lciBQYWdlczwvbGk+PGxpPjxzdHJvbmc+d29vX3Jlc2l6ZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaG9ydG5hbWU8L3N0cm9uZz4gLSB3b288L2xpPjxsaT48c3Ryb25nPndvb19zaW5nbGVfaW1hZ2VfaGVpZ2h0PC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fc2luZ2xlX2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fc21hbGx0aHVtYl9oZWlnaHQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19zbWFsbHRodW1iX3dpZHRoPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fdGFiYmVyX3BhZ2VzPC9zdHJvbmc+IC0gNCw2LDc1LDgzPC9saT48bGk+PHN0cm9uZz53b29fdGFiczwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fdGhlbWVuYW1lPC9zdHJvbmc+IC0gRnJlc2ggTmV3czwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZV9jb250ZW50PC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3RodW1iX2hlaWdodDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX3RodW1iX2ltYWdlX2hlaWdodDwvc3Ryb25nPiAtIDc1PC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfaW1hZ2Vfd2lkdGg8L3N0cm9uZz4gLSA3NTwvbGk+PGxpPjxzdHJvbmc+d29vX3RodW1iX3dpZHRoPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fdHdpdHRlcjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX3VwbG9hZHM8L3N0cm9uZz4gLSBhOjM6e2k6MDtzOjcwOiJodHRwOi8vd3d3LnZhbHVlaW52ZXN0aW5ncHJvLmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzUtdmlwcm93ZWIucG5nIjtpOjE7czo2NToiaHR0cDovL3d3dy52YWx1ZWludmVzdGluZ3Byby5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy80LWZhby5qcGciO2k6MjtzOjcwOiJodHRwOi8vd3d3LnZhbHVlaW52ZXN0aW5ncHJvLmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzMtdmlwcm93ZWIucG5nIjt9PC9saT48bGk+PHN0cm9uZz53b29fdmlkZW9fY2F0ZWdvcnk8L3N0cm9uZz4gLSBTZWxlY3QgYSBjYXRlZ29yeTo8L2xpPjwvdWw+