• I got my beta copy of Ninja7 tonight.  Though there were a few issues, my impression is very favorable overall. I want to remind people that this is a beta release. As such, we should all expect glitches. Here were my first impressions, roughly in order.

    64-Bit Binary

    I knew 64-bit OS’s would be supported, but I was surprised and happy to see a 64-bit binary! This would in theory give me access to more than 4GB of RAM for ninja. Sadly, the 64-bit binary is useless to me for normal trading, at least right now.  I can’t hook up to either of my main data feeds. eSignal and Zen-Fire are not supported 64-bit data providers, and when you try to connect a dialog tells you to run the 32-bit version instead.

    New Chart Types

    Ninjatrader 7 greeted me with PnF, Kagi, Renko, Line Break, and Heiken-Ashi charts. This was a nice surprise, as I wasn’t expecting so many new chart types. Unfortunately, I had a few issues: The Point-and-Figure charts do not have volume (my custom pnf bars do, thankfully, so hopefully they will install cleanly!).  The pnf bars do show you where the last price was, though, which is a nice touch. The Kagi and Line Break charts don’t have volume, either.

    The Renko and Heiken-Ashi charts, on the other hand, do report volume, so maybe there’s hope.  I hope the rest of the charts will report volume by the final release.  I’ve done this in my own code, it’s not hard!

    Sessions

    Now, instead of putting session times in your chart settings, you have to select an appropriate session from a list of defined sessions. The default for ES takes you to the day sessions. There is a 24/7 pre-defined session, but they start and end at midnight. I want 3:30 -> 3:15 Central Time sessions, so I had to define my own custom one. No big deal, just an annoyance.

    Multiple Symbols on a Chart

    Time to try the multi-data thing.  I put a 1-minute BAC chart under an ES PnF chart.  Here’s what I got (click to enlarge):
    esplusbac
    hmm… not very pretty (especially if one is used to multicharts). Stretching and shrinking the time scale didn’t help.  

    Well, putting point-and-figure against minute charts is probably hard to get right. Let’s try 6765 volume ES next to 1-minute BAC: esplusbac2..and again, stretching or shrinking the time scale didn’t help at all.  Ninja’s got some work to do on this feature, yet. Either that, or I don’t know where the magic “make it look good” settings are. I did look around quite a bit.

    [Edit: I did discover later that NT7 beta generally does a better job if you use the same session template for all symbols on the chart. It's still hit-and-miss, but it's much better.]

    Screen Shots

    In the process of trying to take those screenshots, I noticed that the Image->Save As command is tied to the wrong command.  Instead of saving an image, it saves an “indicator set” XML file (what NT6.5 called a Chart Template, I think, which is basically your chart settings and indicators).  So, I took the screenshots with a screen capture program.

    Drawings Scaled to Time, Not Bars

    I think, as a consequence of Ninja7 preparing for multi-symbol charts, they decided to tie the shapes of drawings to the x-axis time scale rather than the x-axis bar scale. This is best explained visually. Here’s a trendline (in blue) over the tops of some range bars:

    origline

    Then, if I grab the line and drag it to the right, it deforms itself so that the slope appears to be completely different (nearly vertical!):

    newline

    This is because the bars on the right use a very different amount of time than the bars where the line was originally drawn. I confirmed my suspicion by repeating the experiment on a minute chart… there was no deformation except at session breaks where there are time gaps.

    As far as I could tell, there was no way to tell NT7 to tie the shape of drawn objects to x-axis bars rather than x-axis time. This is unfortunate, and I hope a workaround is produced by the time NT7 hits its final release.

    Indicator-on-Indicator Action

    Ok, here’s one of the features I was most looking forward to: easy indicators-on-indicators.  For example, I can select the KAMA, and instead of only being able to apply it to my chart’s instrument, I can select a sub-indicator to apply it to.  So, now it’s very easy to get a KAMA of a CCI of an HMA of a Closing Price!
    indicator-of-indicator
    It even lets you select which indicator plot you care about when one of the indicators in the chain has multiple plots.  This feature seems to work perfectly.

    Dragging and Independent-Scaling Indicators

    Another much-anticipated feature: dragging indicators around, and plotting them on top of each other with independent scales.  This also seems to work perfectly!  Here’s a CCI on top of price.  I showed how if you right-click on the indicator, you have options to remove it or go to its properties.  Nice!
    indicator-on-price
    When overlaying indicators, you have the option to scale on the left,right,or ‘overlay’ which means not to display the scale at all.  The feature seems to work perfectly.

    Performance Improvements

    Since I was just messing around tonight, I didn’t really witness any performance improvements, but I’m looking forward to seeing how well NT7 can handle lots of charts with lots of indicators, especially in terms of memory footprint. NT7 promises big improvements in this regard, and you can see one aspect of that a little in the UI:
    reducedlookback
    You see, in NT7, a DataSeries will only remember 256 values by default. If your chart has thousands of bars on it, with several indicators running, this will represent a big win in terms of memory footprint, assuming your indicators never look back more than 256 bars. Very few do, and if you know that yours do, you can change your code a bit to tell NT7 to remember all of the history. And, even if you forget that, apparently the user can override the default in the indicator settings. Very nice!

    This is just one example of the performance enhancements promised… I’m just singling it out because you can see it in the user interface.

    DOM

    The DOM looks pretty much like in 6.5, and no complaints there. If it ain’t broke…

    Replay Enhancements

    The next feature I was excited to try is the ability to download past replay data.  In File->Utilities, we have the option, which brings up a simple dialog box:
    DL_data
    When I select the date I want (in this case, October 2nd), it says it’s downloading the Level 1 data in the status bar, and that’s the last I hear from it.  So, I disconnect from eSignal and connect to the market replay connection.  I note that the menu doesn’t give me a list of days this time.   Instead, it just opens the little playback dialog, which now has selectable dates in it.  I bring up a chart and am pleased to see that it has data leading up to 10/2 in it:
    replay1
    As many of you know, only having data from midnight on the day of the replay meant your indicators (and your eyes!) didn’t have much history to go on.  That alone makes this a big improvement.  Actually replaying the data works just as in previous versions.  In short, the replay experience was flawless, and takes care of all of the annoyances from NT6.5.  This is a fantastic feature for NT7.

    I tried to download additional replay data, and it said it wasn’t connected to a data source.  I connect to eSignal and the feature works.  Oh, so NT7 gets the replay data from your data provider I think…  smart!  I thought they were hoarding zen-fire data or something, but this makes even more sense.

    So, I know how to get replay data… how do I get rid of it if I don’t want it anymore?  No obvious way to do that… I went to the on-line documentation, but found most of the help entries were still empty at this point.

    New Indicator Wizard

    I went through the new indicator wizard in hopes that they’d let me define more than four inputs.  This would save all of the cutting and pasting one has to do in the properties area.  No dice:
    stillonlyfour
    Not that it’s a big deal… just checking…

    EOTPro Compatibility

    Next big question: what about the EOTPro stuff?   I copied over all of the EOTPro files from my NT6.5 folder over to the NT7 folder.  I opened one of them and hit compile.  Everything compiled with no errors (plus, as promised, there was no annoying “success” dialog box)!   I threw several of them up on a chart and saw that they appear to function correctly at first glance:
    eotprostuff

    So that’s a relief.  Of course, a more thorough examination is to come!  Also, the rumor was that multicolor plots would be directly supported, so once I figure out how to do that I’m going to go through our indicators and take out all the multicolor hacks we had put in.  Or at least, I’m going to consider it.

    Summary

    It’s really happening… NT7 is coming soon! As you can see above, most of what I was anticipating is there and working quite well. I would say the look of the multiple-symbol charts was my only real disappointment, if they don’t improve by the final release. The enhanced replay is probably my favorite feature, though I also appreciate the big performance overhaul and 64-bit support quite a bit.

    This entry was posted on Monday, October 5th, 2009 at 12:03 am and is filed under Technology, Trading. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
  • 11 Comments

    Take a look at some of the responses we've had to this article.

    1. [...] I did get a change to see it live today. As far as "crashing", this may be addressed by a number of memory-footprint enhancements that have been made. Here a link to a recent developers comments about the new version… Ninjatrader 7 Beta: My First Impressions|Move the Markets [...]

    2. Oct 6th
      Reply

      Hi Richard,

      Thanks for the comments. I do have some questions, and feel free to email me directly to discuss.

      - On the multi-series charts, the thickness of the bars has to do with the bar width settings on each of the Data Series. Please try changing this to see if you get what you are looking for. I tried the ES PnF with the BAC 1M and my chart looked quite different since my bar width settings were much smaller than yours

      - Yes, anchor points are now tied to time vs bar index since time is common across multi-series (as you pointed out) and is required by our global draw object feature. How would you see bar index based anchor points working in this context?

    3. Oct 6th
      Reply

      Update to my last post

      - We have added Volume to PnF, Kagi, Line Break charts
      - Screen shot bug fixed
      - Bar width issues are being looked into
      - Draw object anchor points we plan to address. The issue you experienced is that as you move the line the time span between anchor points is maintained –> Likely change this to get the desired behaviour

      • Oct 6th
        Reply

        Wow, Ray, that’s fantastic!

        Regarding the bar width: Today, I can’t seem to reproduce the bad-looking behavior I captured above, no matter what the bar widths are. Sunday I retraced my steps and got the bad results every time, so I’m not sure what’s up. I think you are probably right, and I managed to get funny Bar Width settings along the way, and they were the defaults on subsequent charts I opened perhaps. If I manage to reproduce the issue I’ll post on the ninja forums about it. I’ve seen a couple other display glitches that I plan to post in the appropriate forum thread as well.

        Regarding the anchor points: Just my opinion, I think it’s more typical for technical analysts to expect their drawing be invariant with respect to the bars they are working on. I imagine other beta testers will chime in as they discover this when using lines for measured moves and the like.

        Either way, I think NT7 is doing better than multicharts on the anchor points. In multicharts, drawings are managed in terms of screen pixels, so if I drag a trendline around, it doesn’t change shape, but it’s not tied to bars OR time.

        I’ve used ninja7 for trading a couple days now, and haven’t experienced any big problems. NT 7 is off to a great start!

    4. Oct 7th
      Reply

      Thanks for the update Richard.

      - We still have months to go so whatever issue there may be with funny bar widths sooner or later will rear its ugly head with some level of consistency

      - FYI: As you play around with NT7 in real-time, we are very interested on feedback in terms of application performance, especially in high volatile times. Any feedback you can provide on this subject will be appreciated.

    5. Nov 20th
      Reply

      Thanks for posting this. Any idea when it may be released to the rest of us?

    6. Nov 20th
      Reply

      Do you know if the chart objects have overrides for ’show text’? I programmaticly draw fib circles (e.g.) then manually need remove the text. Love it otherwise. *smiles

    7. Nov 21st
      Reply

      ioo1962, there is a forum for nt7 questions here:

      http://www.ninjatrader-support2.com/vb/forumdisplay.php?f=44

      I bet that’d be the best place to check on NT7 API changes and ask for features. I don’t remember any show text overrides but I don’t do a lot of drawing on the charts in my personal work.

    8. jacko
      Feb 5th
      Reply

      when do we get the program??

      • Feb 5th
        Reply

        I have no idea, but probably not soon. I suppose there may be a public beta before too long, but it’s not up to me.

  • Leave a Reply

    Let us know what you thought.

  • Name (required):

    Email (required):

    Website:

    Message:

PHVsPjxsaT48c3Ryb25nPndvb19hYm91dDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cubW92ZXRoZW1hcmtldHMuY29tL2Jsb2cvcmljaGFyZC88L2xpPjxsaT48c3Ryb25nPndvb19hZF9mb290ZXI8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2Zvb3Rlcl9hZHNlbnNlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfZm9vdGVyX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtNDY4eDYwLTIuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfZm9vdGVyX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzE8L3N0cm9uZz4gLSAvaW1hZ2VzL2FkLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzI8L3N0cm9uZz4gLSAvaW1hZ2VzL2FkLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8xPC9zdHJvbmc+IC0gaHR0cDovL2V4YW1wbGUuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzI8L3N0cm9uZz4gLSBodHRwOi8vZXhhbXBsZS5jb208L2xpPjxsaT48c3Ryb25nPndvb19hbHRfc3R5bGVzaGVldDwvc3Ryb25nPiAtIGZyZXNoLmNzczwvbGk+PGxpPjxzdHJvbmc+d29vX2FyY2hpdmVzPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5tb3ZldGhlbWFya2V0cy5jb20vYmxvZy9hcmNoaXZlcy88L2xpPjxsaT48c3Ryb25nPndvb19hdXRvX2ltZzwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19iaW88L3N0cm9uZz4gLSA8cD5NeSBuYW1lIGlzIFJpY2hhcmQsIGFuZCB0aGlzIGlzIGEgcGxhY2UgZm9yIG1lIHRvIHNoYXJlIG15IHRob3VnaHRzIG9uIHRyYWRpbmcgZnV0dXJlcywgcHJvZ3JhbW1pbmcsIG1hdGhlbWF0aWNzLCBhbmQgYmFzaWNhbGx5IGFueXRoaW5nIHRoYXQgaW50ZXJlc3RzIG1lLjwvcD4NCg0KPHA+SSBhbHNvIHJ1biB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5tb3ZldGhlbWFya2V0cy5jb20vYmxvZy90ZWFtIj5NdE0gVGVhbTwvYT4gZm9yIHRlY2huaWNhbCBhbmFseXNpcyBzdHVkeSwgYW5kIG9mZmVyIDxhIGhyZWY9Imh0dHA6Ly93d3cubW92ZXRoZW1hcmtldHMuY29tL2Jsb2cvdGFnL2ZyZWUtc3R1ZmYiPmZyZWUgaW5kaWNhdG9yczwvYT4gYXQgdGltZXMuPC9wPg0KPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2NvbG9yXzE0MzE8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfY29sb3JfMTQzMjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9jb2xvcl8xNTQzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2NvbG9yXzE1NDQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfY29sb3JfMjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9jb2xvcl8zPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY2F0X21pZF8xNDMxPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbWlkXzE0MzI8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9taWRfMTU0Mzwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY2F0X21pZF8xNTQ0PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbWlkXzE1ODk8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9taWRfMjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY2F0X21pZF8zPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbmF2XzE0MzE8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9uYXZfMTQzMjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY2F0X25hdl8xNTQzPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbmF2XzE1NDQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9uYXZfMjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY2F0X25hdl8zPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gNzY8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSAyMDc8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fY3NzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Zhdmljb248L3N0cm9uZz4gLSBodHRwOi8vd3d3Lm1vdmV0aGVtYXJrZXRzLmNvbS9mYXZpY29uLmljbzwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV91cGxvYWRfdHJhY2tpbmc8L3N0cm9uZz4gLSBhOjA6e308L2xpPjxsaT48c3Ryb25nPndvb19lbWFpbDwvc3Ryb25nPiAtIHJpY2hhcmRAbW92ZXRoZW1hcmtldHMuY29tPC9saT48bGk+PHN0cm9uZz53b29fZXhjbHVkZV9jYXRzPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9jYXRlZ29yeTwvc3Ryb25nPiAtIFNlbGVjdCBhIGNhdGVnb3J5OjwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfdXJsPC9zdHJvbmc+IC0gaHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL01vdmVUaGVNYXJrZXRzPC9saT48bGk+PHN0cm9uZz53b29fZmxpY2tyX2VudHJpZXM8L3N0cm9uZz4gLSBTZWxlY3QgYSBudW1iZXI6PC9saT48bGk+PHN0cm9uZz53b29fZmxpY2tyX2lkPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCnZhciBnYUpzSG9zdCA9ICgoImh0dHBzOiIgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wpID8gImh0dHBzOi8vc3NsLiIgOiAiaHR0cDovL3d3dy4iKTsNCmRvY3VtZW50LndyaXRlKHVuZXNjYXBlKCIlM0NzY3JpcHQgc3JjPSciICsgZ2FKc0hvc3QgKyAiZ29vZ2xlLWFuYWx5dGljcy5jb20vZ2EuanMnIHR5cGU9J3RleHQvamF2YXNjcmlwdCclM0UlM0Mvc2NyaXB0JTNFIikpOw0KPC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQp2YXIgcGFnZVRyYWNrZXIgPSBfZ2F0Ll9nZXRUcmFja2VyKCJVQS0yMDE4OTcxLTEiKTsNCnBhZ2VUcmFja2VyLl9pbml0RGF0YSgpOw0KcGFnZVRyYWNrZXIuX3RyYWNrUGFnZXZpZXcoKTsNCjwvc2NyaXB0PjwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfcG9zdHM8L3N0cm9uZz4gLSA4PC9saT48bGk+PHN0cm9uZz53b29faW1hZ2VfZGlzYWJsZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV9oZWlnaHQ8L3N0cm9uZz4gLSAxNzM8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV93aWR0aDwvc3Ryb25nPiAtIDIzMDwvbGk+PGxpPjxzdHJvbmc+d29vX2xvZ288L3N0cm9uZz4gLSBodHRwOi8vd3d3Lm1vdmV0aGVtYXJrZXRzLmNvbS9ibG9nL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMy1jb29sdGV4dDQzMzc3MjE3Ni5wbmc8L2xpPjxsaT48c3Ryb25nPndvb19tYW51YWw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vc3VwcG9ydC90aGVtZS1kb2N1bWVudGF0aW9uL29wZW4tYWlyLzwvbGk+PGxpPjxzdHJvbmc+d29vX3Bvc3Rfc2l6ZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fcmVzaXplPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfYmxvZzwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaWRlYmFyX2FkX2hyZWZfMTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX3NpZGViYXJfYWRfaHJlZl8yPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fc2lkZWJhcl9hZF9ocmVmXzM8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19zaWRlYmFyX2FkX2hyZWZfNDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX3NpZGViYXJfYWRfaW1nXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTEuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fc2lkZWJhcl9hZF9pbWdfMjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19zaWRlYmFyX2FkX2ltZ18zPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS0zLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX3NpZGViYXJfYWRfaW1nXzQ8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTQuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fc2luZ2xlX3RodW1iPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb190aGVtZW5hbWU8L3N0cm9uZz4gLSBPcGVuIEFpcjwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZV9jb250ZW50PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl9oZWlnaHQ8L3N0cm9uZz4gLSAxNDU8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl93aWR0aDwvc3Ryb25nPiAtIDIxODwvbGk+PGxpPjxzdHJvbmc+d29vX3R3aXR0ZXI8L3N0cm9uZz4gLSByaWNoYXJkLndlc2xleS50b2RkPC9saT48bGk+PHN0cm9uZz53b29fdXBsb2Fkczwvc3Ryb25nPiAtIGh0dHA6Ly93d3cubW92ZXRoZW1hcmtldHMuY29tL2Jsb2cvd3AtY29udGVudC93b29fdXBsb2Fkcy8zLWNvb2x0ZXh0NDMzNzcyMTc2LnBuZzwvbGk+PGxpPjxzdHJvbmc+d29vX3ZpZGVvX3Bvc3RzPC9zdHJvbmc+IC0gU2VsZWN0IGEgbnVtYmVyOjwvbGk+PGxpPjxzdHJvbmc+d29vX3ZpZHBhZ2U8L3N0cm9uZz4gLSBTZWxlY3QgYSBwYWdlOjwvbGk+PC91bD4=