How to 6-bit Code Leica M Lens

Thu, May 31, 2018

Camera, Camera, The Technician

Leica Summicron-M 50mm 6-bit code lens

Leica Summicron-M 50mm f/2

Leica M lenses are arguably some of the best in the world, and lenses manufactured more than half a century ago for the film Leica cameras of yesteryears can still be used on the modern M series digital bodies of today. In fact, using some of these older M lenses is a great way to start off with a Leica rangefinder camera without having to spend too much money on the more expensive modern lenses. However, older M lenses are not 6-bit coded, and the lens designation would not be recorded and transferred to the EXIF metadata or for corrections to be made. Today, we will explore applying this 6-bit code on the older Leica M lenses.

Leica M-Adapter L

6-bit code reader on the Leica M-Adapter L so that M lenses can be used and identified on the Leica T.

I bought the Leica Summicron-M 50mm f/2.0 version V a few years ago to be used with my Leica T, with the M-Adapter L in between to make this pairing work. While the M-Adapter L incorporates a 6-bit code reader to identify the lens, my version of the Summicron-M 50mm was of the older version that didn’t come with the 6-bit code. This wasn’t really a problem as I rarely shot the Leica T with this lens. However, when I got the Leica M Typ 240 recently and began shooting with this lens more frequently, it became quite a hassle having to manually set the camera to identify this lens in-menu. Having to always remember to change the settings back to automatic so that the next 6-bit coded lens mounted on could be properly identified by the camera doesn’t get better with age.

6-bit code Leica M lens

The 6-bit code reader located at the 5-o’clock position on the Leica M Typ 240 lens mount.

“…using some of these older M lenses is a great way to start off with a Leica rangefinder camera without having to spend too much money on lenses”

I switch between a number of 6-bit coded lens and this older Summicron quite frequently, and I eventually decided that I should apply the 6-bit coding to this lens for convenience. I believe there are a few people around the world who would undertake this task for a fee, but I felt this was a short weekend project I could try on my own. The following steps describe how I applied the 6-bit coding to my Leica Summicron-M 50mm lens. If you own one or a few of these older Leica M lenses and desire the convenience of having your Leica M digital body automatically detecting the lens that is mounted on, and if you feel comfortable with this DIY project as described below, read on.

UPFRONT WARNING: On a difficulty scale of one to five (1 being easiest and 5 being hardest), this project probably falls somewhere between a 2 and 3, PROVIDED NOTHING GOES WRONG. If you work carefully and remove only the things you should, everything will work out smoothly without a hitch. However, if you’re not careful and something such as a ring or ball bearing (in the case of R lenses) falls out of the lens because you didn’t keep the lens upright or accidentally remove more than you should, then the difficulty level quickly escalates to an 8 (yes, beyond 5!). As careful as you may be, accidents can happen, and I have dismantled more than one Leica lens to learn this the hard way. If you’re OK with the risks and feel you’re comfortable and confident enough to undertake this task, please carry on reading. You are also advised to read through the steps below in its entirety once or twice before commencing actual work.

Determining the 6-bit Code for Your Leica M Lens

reading 6-bit code Leica M lens

The 6-bit code is read clockwise and for the lens above, it is 100100, which makes it an APO-Summicron-M 75mm f/2 ASPH based on the data given in the table below.

 

Before proceeding, you will first need to determine if your M lens has a removable flange. Some lenses such as the Leica Tele-Elmarit-M 135mm f/4.0 do not come with a user-removable flange, evident from the lack of screws holding the flange down. It is also possible that there is no 6-bit coding available for that particular lens. For those which are available, the following is a list of Leica M lenses and their corresponding 6-bit codes arranged in ascending focal length followed by ascending aperture. Black is 1 and white is 0. Codes should be read in clockwise order, i.e. from left to right with the 6-bit coding located at 12 o’clock position as shown at right.

Focal
Length
Lens Designation Lens Model No. Binary
Code
6-bit Code
Black Chrome
n/a Macro-Adapter-M 14409 n/a 101000 6 bit code leica m lens
16-21mm Tri-Elmar-M 16-18-21mm f/4 ASPH 11626 n/a 010000 6 bit code leica m lens
18mm Super-Elmar-M 18mm f/3.8 ASPH 11649 n/a 110100 6 bit code leica m lens
21mm Summilux-M 21mm f/1.4 ASPH 11647 n/a 101111 6 bit code leica m lens
21mm Elmarit-M 21mm f/2.8 11134 n/a 000001 6 bit code leica m lens
21mm Elmarit-M 21mm f/2.8 ASPH 11135 11897 011000 6 bit code leica lens
21mm Super-Elmar-M 21mm f/3.4 11145 n/a 110011 6 bit code leica m lens
24mm Summilux-M 24mm f/1.4 ASPH 11601 n/a 110000 6 bit code leica m lens
24mm Elmarit-M 24mm f/2.8 ASPH 11878 11898 011001 6 bit code leica m lens
24mm Elmar-M 24mm f/3.8 ASPH 11648 n/a 110010 6 bit code leica m lens
28mm Summicron-M 28mm f/2 ASPH 11604 n/a 011010 6 bit code leica m lens
28mm Elmarit-M 28mm f/2.8 ver. III 11804 n/a 000011 6 bit code leica m lens
28mm Elmarit-M 28mm f/2.8 ver. IV 11809 n/a 011011 6 bit code leica m lens
28mm Elmarit-M 28mm f/2.8 ASPH 11606 n/a 011100 6 bit code leica lens
28-50mm Tri-Elmar-M 28-35-50mm f/4 ASPH 11890
11625
11894 101010 6 bit code leica m lens
35mm Summilux-M 35mm f/1.4 ASPH pre-FLE 11874 11883 011101 6 bit code leica m lens
35mm Summicron-M 35mm f/2 ver. IV 11310 11311 000110 6 bit code leica m lens
35mm Summicron-M 35mm f/2 ASPH 11879 11882 011110 6 bit code leica m lens
35mm Summarit-M 35mm f/2.5 11643 n/a 101011 6 bit code leica m lens
50mm Noctilux-M 50mm f/0.95 ASPH 11602 n/a 110001 6 bit code leica m lens
50mm Noctilux-M 50mm f/1 11821
11822
n/a 011111 6 bit code leica m lens
50mm Summilux-M 50mm f/1.4 ver. II 11868 11856 000101 6 bit code leica m lens
50mm Summilux-M 50mm f/1.4 ASPH 11891 11892 100000 6 bit code leica m lens
50mm Summicron-M 50mm f/2 ver. III 11817 n/a 010111 6 bit code leica m lens
50mm Summicron-M 50mm f/2 ver. IV and V 11819
11826
11825
11816
100001 6 bit code leica m lens
50mm APO-Summicron-M 50mm f/2 ver. VI 11141 n/a 110101 6 bit code leica m lens
50mm Summarit-M 50mm f/2.5 11644 n/a 101100 6 bit code leica m lens
50mm Elmar-M 50mm f/2.8 11831
11824
11823 100010 6 bit code leica m lens
75mm Summilux-M 75mm f/1.4 11810
11814
11815
n/a 100011 6 bit code leica m lens
75mm APO-Summicron-M 75mm f/2 ASPH 11637 n/a 100100 6 bit code leica m lens
75mm Summarit-M 75mm f/2.5 11645 n/a 101101 6 bit code leica lens
90mm Summicron-M 90mm f/2 ver. II 11136 11137 000111 6 bit code leica lens
90mm APO-Summicron-M 90mm f/2 ASPH 11884 11885 100101 6 bit code leica m lens
90mm Summarit-M 90mm f/2.5 11646 n/a 101110 6 bit code leica lens
90mm Elmarit-M 90mm f/2.8 11807 11808 100110 6 bit code leica lens
90mm Tele-Elmarit-M 90mm f/2.8 ver. II 11800 n/a 000100 6 bit code leica lens
90mm Macro-Elmar-M 90mm f/4 11633 11634 100111 6 bit code leica lens
135mm Elmarit-M 135mm f/2.8 ver. I and II 11829 n/a 001001 6 bit code leica lens
135mm APO-Telyt-M 135mm f/3.4 11889 n/a 110101 6 bit code leica lens

Preparation

There will be a few things you will need to prepare before you begin:

  1. 6 bit code leica m lens6-bit code for your particular Leica M lens
    You will need to determine the 6-bit code for your M lens. These are provided in the table above. You will need to follow and apply on the flange the black and white markings as shown for your particular lens before installing the flange on your lens. The lens I will be working on today is the Summicron-M 50mm f/2 ver. V, and the 6-bit binary code is 100001.
  2. 6-bit code Leica lens mount6-bit blank-coded M-mount flange
    M-mount flanges with 6-bit slots are available from third-party vendors. These are sometimes hit and miss. Although unlikely, the quality and fit may not be perfect with the first one you get. However, more often than not, you will get one that works well like that one I got. I cannot guarantee if the links provided here will get you the perfect one at the first attempt, but these M-mount 6-bit blank-coded flanges are mostly available from eBay. The one used in this guide was also sourced on eBay. Click here to see a listing sold on eBay now.
  3. krylon flat black enamel paintColouring medium and fine-tip brush
    The most suitable medium for this task are the matte black and matte white metal paint from Krylon (links to purchase this provided at the end of this article) or other similar non-reflective enamel paint. You can also find Krylon and Rust-Oleum paints at Ace Hardware and other hardware shops. This paint does not require any primer coat on the flange surface and can be painted directly onto metal. You may also use a suitable oil-base permanent marker pen, which is what I have used in the guide below. I believe that paint would be the better medium between the two, but for simplicity, I have selected to work with marker pens, and also to see, out of curiosity, if these would work. Whatever medium you choose, remember to always choose flat or matte colours for both black and white, and the finest tip (brush or marker pen tip size) for application of the colour to the flange. Glossy or reflective (black) paint will not work as well or may not work at all.
    N.B. You may get away with using glossy white paint or leaving the white cavities unpainted as those are supposed to be reflective (unlike the black cavities which are supposed to absorb light signals from the camera), but for reasons of consistency and adhering to the manner in which original 6-bit code markings are done on lenses by the manufacturer, flat or matte (non-glossy) white is suggested.
  4. #0000 philiips screwdriverExtra-fine Phillips precision screwdriver
    You will need a size #0000 or #4/0 Phillips precision screwdriver to remove and replace the screws that hold the M-mount flange on the lens. This is the smallest tipped Phillips precision screwdriver around, and anything larger may not work. You may already have this, but if you don’t, links to purchase this are provided at the end of this article.

6-bit Code Leica M Lens Procedure

Once you’ve prepared all the necessary materials above, we may begin. It is best that you peruse all the steps below once or twice before actually starting.

A. Preparing the New Flange

6 bit code leica m lens 6 bit code leica lens
 
A1. Unpack the new lens flange from its packaging.
6 bit code leica m lens 6 bit code leica lens
 
A2.Inspect the flange closely to ensure that surfaces on both sides are flat and smooth and that there are no burrs left behind from the milling process.

6 bit code leica m lens

 
A3.For my flange, I’ll be using oil-based permanent, lightfast and waterproof marker pens suitable for metal surfaces. The brand I am using is Zig Painty, but any fine-tip marker pen that fits the above description should be usable. If you’re using metal enamel paint, remember to select only matte black and matte white – not the glossy variants.

6 bit code leica m lens

 
A4.Apply the paint generously in the cavities of the flange according to the 6-bit code in the table above for your particular lens. It is ok to allow some of the paint to fall outside the boundary of the cavities by accident for now. For this Summicron-M 50mm f/2 ver. V, the code is 100001, i.e. black-white-white-white-white-black. Make sure you get the clockwise orientation correct as described above.

6 bit code leica m lens

 
A5.Wipe off any excess and reapply paint where necessary until an even fill of the cavities is achieved. You may also find it is possible to remove excess paint outside of the boundary by scraping it off with your thumbnail.

6 bit code leica m lens

 
A6.The end result should be an array of evenly filled markings in black and white of the 6-bit code for the lens as shown. Next, we will remove the existing flange and replace it with this.

B. Removing the Existing Lens Flange

6 bit code leica m lens

 
 
B1.Before removing the flange, you may want to take note of the position of the lens lock/release notch in relation to the red dot on the lens body in the diagram above, to make fitting the new flange at the correct position less of a guesswork. In any case, the screws are irregularly spaced and the flange can only fit in one orientation.

6 bit code leica m lens

 
B2.Remove the rear lens cap. Hold the lens firmly with one hand and remove the screws that secure the flange with a #0000 precision Phillips screwdriver.

6 bit code leica m lens

 
B3.Remove all 6 screws and place them in a receptacle for safe keeping. The screws may also be placed in the rear lens cap to prevent them from being misplaced or accidentally wiped off the workspace.

6 bit code leica m lens

 
B4.At this point, you may want to visualise the orientation of the 6-bit coded flange on the lens mount.

6 bit code leica m lens

 
B5.Proceed to remove the existing flange from the lens body and store it away. Tread carefully from this point onwards. KEEP THE LENS UPRIGHT OR NEAR UPRIGHT AS YOU REMOVE THE FLANGE TO PREVENT ANY PARTS OR COMPONENTS FROM FALLING OUT OF THE LENS. Read the following Step B6 before removing the flange.

6 bit code leica m lens

 
B6.IMPORTANT: Remove ONLY the flange from the lens body. Due to some oil residue on the lens, other components of the lens may stick to the flange as you’re removing it. Ensure that only the single metal flange is pulled away from the lens body, and any other loose component remains on the lens body.

N.B.: As I was removing the flange, I inadvertently pulled along some other loose parts of the lens (a separate black flange and the brass ring you see in the photo above), and it took me awhile to figure out how to reassemble that part. If you’re mechanical-savvy and have a knack for how these things work, you should have no problem reassembling it back. But it is not for the faint-hearted, and my earlier upfront warning at the start of this article applies. Just be sure you remove only the chrome silver flange as shown above.

C. Fitting on the 6-bit Coded Flange

6 bit code leica m lens

 
C1.Place the new 6-bit coded flange on the lens body in the correct orientation as visualised in Step B4 above.

6 bit code leica lens

 
C2.Replace all 6 screws sequentially in a cross pattern (instead of following a circular order), so that the flange is mounted flat and evenly on the lens barrel. DO NOT screw in tightly at this point, but just enough to secure the new flange in place without it being wobbly.

6 bit code leica m lens

 
C3.Once all 6 screws are in place, you may begin to screw them firmly in, finger-tight. Do not risk damaging the screw heads or threads by screwing them in too tightly. They should only be as tight as your fingers (not hand) will allow as you rotate the precision screwdriver between your fingers. Just to be sure, check that the lens lock/release notch is in the correct relative position as given in Step B1 above. As the screws are irregularly spaced, it is not likely you will get this part wrong.

6 bit code leica m lens

 
C4.And there it is…a newly 6-bit coded Leica M lens! But all is not done. We will still need to test the lens and make sure everything is done correctly and works as it should.

D.Testing the Newly 6-bit Coded Leica M Lens

6 bit coding leica m lens

 
D1.Test the lens by rotating focusing ring and aperture ring to make sure that nothing is jammed up, stuck, or missing. Focusing ring should still rotate smoothly and the aperture ring should still have its detents or clicks.

6 bit coding leica lens

 
D2.Next, attach the lens to your Leica M digital body and make sure that the new flange and lens mount on the camera body is a perfect fit. At any time you feel that the mounting isn’t a perfect fit or if the lens is getting stuck or in binding, you should stop and remove the lens and avoid risk of damage to your camera body lens mount. Unfortunately, there is no way to test this until we have reached this point, and if the fit is a problem, it is best to revert to the old flange, or try with another flange. No 6-bit coding convenience is worth the damage to your precious Leica M body.

6 bit code leica m lens

 
D3.Assuming the fit is ideal and perfect, the final step is to take a test shot and see if the camera reads the 6-bit coding correctly. The screenshots of Lightroom below show the results of this final test.
6 bit coding leica m lens

One of the earlier test shots I took with this lens when I first got my Leica M. I had not figured out the Lens Detection setting in the Menu then, and just attached the uncoded Summicron 50mm and took a few shots. Note that in the EXIF metadata in Lightroom shown above, it is indicated that lens is not selected. There is also no data on focal length.

6 bit code leica m lens

Right after applying the 6-bit coding to the lens, this test shot was taken and opened in Lightroom. The EXIF metadata now shows the lens name as well as the focal length above it.


Conclusion

“With one less process to keep in mind during every shoot session, the M photographer can now focus on the essentials, in a truly Leica Das Wesentliche manner.”

With the 6-bit code on Leica M lenses, shooting with the Leica M becomes more convenient without having to constantly remember to set the lens detection in the menu settings between automatic and manual. Forgetting to switch this back to automatic during lens changes can cause the wrong metadata to be recorded to the images, as well as the wrong lens correction applied to the images, if any. With one less process to keep in mind during every shoot session, the M photographer can now focus on the essentials, in a truly Leica Das Wesentliche manner.

The new Leica M10 comes with a feature that switches the camera back to automatic lens detection every time a 6-bit coded lens is mounted on so that you don’t have to remember to change the settings. This would be a feature quite easily implemented on relevant past digital M bodies with a simple firmware update, I reckon. Regardless, applying 6-bit code to your Leica M lens where possible is always the better way to go.

SEE ALSO:

Please find the links to purchase parts and materials required for this 6-bit Code Leica M Lens project as follows:

 
6-BIT CODED LENS FLANGE MOUNTS ON EBAY

Detachable 6-bit code Leica M Mount Lens Adapter 35-135 35mm 6-hole M8 M9 M-240

$12.50
End Date: Tuesday Oct-9-2018 0:30:43 PDT
Buy It Now for only: $12.50
Buy It Now | Add to watch list

Detachable 6-bit code Leica M Mount Lens Adapter 28-90 90mm 6-hole M8 M9

$12.50
End Date: Tuesday Oct-9-2018 1:20:10 PDT
Buy It Now for only: $12.50
Buy It Now | Add to watch list

 
6-BIT CODED LENS FLANGE MOUNTS ON AMAZON


 
PRECISION SCREWDRIVER AND BRUSH


 
PAINT AND COLOUR MEDIUM


 
LEICA 50MM M-LENSES


, , , , , , ,

2
Leave a Reply

avatar
1 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
dBJean remy Recent comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
newest oldest most voted
Notify of
Jean remy
Guest
Jean remy

Thanks for this very good information.
Even if the answer appears evident: Is there any restriction to use this flange with Leica M10 ?
Is there any flange available for summicron 35mm “king of bokeh” ?
Thank you

Do NOT follow this link or you will be banned from the site!
PHVsPjxsaT48c3Ryb25nPndvb19hYm91dDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2Fib3V0bGluazwvc3Ryb25nPiAtICM8L2xpPjxsaT48c3Ryb25nPndvb19hZF8zMDBfYWRzZW5zZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzMwMF9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTMwMHgyNTAtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF8zMDBfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMTwvc3Ryb25nPiAtIGh0dHBzOi8vcm92ZXIuZWJheS5jb20vYXIvMS83MTEtNTMyMDAtMTkyNTUtMjAwLzE/Y2FtcGlkPTUzMzc3MjgxNTkmdG9vbGlkPTcxMTUzMjAwMTkyNTUyMDAmY3VzdG9taWQ9Jm1wdD1bQ0FDSEVCVVNURVJdJmFkdHlwZT0xJnNpemU9MTI1eDEyNSZtcHZjPTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzI8L3N0cm9uZz4gLSBodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vYWRzL2FtYXpvbi1oYXJyeS1wb3R0ZXJfMTI1eDEyNS5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8zPC9zdHJvbmc+IC0gaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL2Fkcy9hbWF6b24tb3V0ZG9vci0xMjV4MTI1LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzQ8L3N0cm9uZz4gLSBodHRwczovL3VhLnNpdGVncm91bmQuY29tL2ltZy9iYW5uZXJzL2dlbmVyYWwvY29tZm9ydC8xMjV4MTI1LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzU8L3N0cm9uZz4gLSBodHRwczovL3d3dy5sZWRnZXJ3YWxsZXQuY29tL2ltYWdlcy9wcm9tby9sZWRnZXItMTI1eDEyNS0wMS5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV82PC9zdHJvbmc+IC0gaHR0cHM6Ly9yb3Zlci5lYmF5LmNvbS9hci8xLzcxMS01MzIwMC0xOTI1NS0yMDYvMT9jYW1waWQ9NTMzNzcyODE1OSZ0b29saWQ9NzExNTMyMDAxOTI1NTIwNiZjdXN0b21pZD0mbXB0PVtDQUNIRUJVU1RFUl0mYWR0eXBlPTEmc2l6ZT0xMjV4MTI1Jm1wdmM9PC9saT48bGk+PHN0cm9uZz53b29fYWRfcGFnZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8xPC9zdHJvbmc+IC0gaHR0cHM6Ly9yb3Zlci5lYmF5LmNvbS9yb3Zlci8xLzcxMS01MzIwMC0xOTI1NS0yMDAvMT9jYW1waWQ9NTMzNzcyODE1OSZ0b29saWQ9NzExNTMyMDAxOTI1NTIwMCZjdXN0b21pZD0mbXB2Yz08L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMjwvc3Ryb25nPiAtIGh0dHBzOi8vcmNtLW5hLmFtYXpvbi1hZHN5c3RlbS5jb20vZS9jbT9vPTEmcD0yMCZsPXVyMSZjYXRlZ29yeT1oYXJyeXBvdHRlciZiYW5uZXI9MFFCS1FZMTFQOTFQQVhQU0Y2UjImZj1pZnImbGlua0lEPTkxNTg0M2IzNTZiMzgxZDBkYjQwMDYyZmY3YmZlNDViJnQ9bW9jYmQtMjAmdHJhY2tpbmdfaWQ9bW9jYmQtMjA8L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMzwvc3Ryb25nPiAtIGh0dHBzOi8vcmNtLW5hLmFtYXpvbi1hZHN5c3RlbS5jb20vZS9jbT90PWh0dHB3d3dkZXZvbmItMjAmbz0xJnA9MjEmbD11cjEmY2F0ZWdvcnk9b3V0ZG9vcnJlY3JlYXRpb24mYmFubmVyPTE2NEpSRDdONEMyVktUQVpERkcyJmY9aWZyJmxpbmtJRD01SEZZWFIzSkpaRFlLT0hFPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzQ8L3N0cm9uZz4gLSBodHRwczovL3d3dy5zaXRlZ3JvdW5kLmNvbS9pbmRleC5odG0/YWZjb2RlPTc3M2U5MTAxMDBlNTY3ODIyNzBkOGIxMTFhMzVmMTUwPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzU8L3N0cm9uZz4gLSBodHRwczovL3d3dy5sZWRnZXJ3YWxsZXQuY29tL3IvYmVhYTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF82PC9zdHJvbmc+IC0gaHR0cHM6Ly9yb3Zlci5lYmF5LmNvbS9yb3Zlci8xLzcxMS01MzIwMC0xOTI1NS0yMDYvMT9jYW1waWQ9NTMzNzcyODE1OSZ0b29saWQ9NzExNTMyMDAxOTI1NTIwNiZjdXN0b21pZD0mbXB2Yz08L2xpPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19hbHRfc3R5bGVzaGVldDwvc3Ryb25nPiAtIDMtZ3JleS5jc3M8L2xpPjxsaT48c3Ryb25nPndvb19hcmNoaXZlczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FzaWRlc19jYXRlZ29yeTwvc3Ryb25nPiAtIFNlbGVjdCBhIGNhdGVnb3J5OjwvbGk+PGxpPjxzdHJvbmc+d29vX2F1dGhvcjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYXV0b19pbWc8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NlbnRlcmVkPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jb250ZW50PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jb250ZW50X2ZlYXQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NvbnRlbnRfbGVmdDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Nzczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9mYXZpY29uPC9zdHJvbmc+IC0gaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMjYtZmF2aWNvbi1kYi5wbmc8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fc2VvX3RlbXBsYXRlPC9zdHJvbmc+IC0gYTozOntpOjA7YTo1OntzOjQ6Im5hbWUiO3M6MTA6InNlb19pbmZvXzEiO3M6Mzoic3RkIjtzOjA6IiI7czo1OiJsYWJlbCI7czo0OiJTRU8gIjtzOjQ6InR5cGUiO3M6NDoiaW5mbyI7czo0OiJkZXNjIjtzOjE5MDoiQWRkaXRpb25hbCBTRU8gY3VzdG9tIGZpZWxkcyBhdmFpbGFibGU6IDxzdHJvbmc+Q3VzdG9tIFBhZ2UgVGl0bGVzPC9zdHJvbmc+LiBHbyB0byA8YSBocmVmPSJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtYWRtaW4vYWRtaW4ucGhwP3BhZ2U9d29vdGhlbWVzX3NlbyI+U0VPIFNldHRpbmdzPC9hPiBwYWdlIHRvIGFjdGl2YXRlLiI7fWk6MTthOjU6e3M6NDoibmFtZSI7czoxMDoic2VvX2ZvbGxvdyI7czozOiJzdGQiO3M6NToiZmFsc2UiO3M6NToibGFiZWwiO3M6MTY6IlNFTyAtIFNldCBmb2xsb3ciO3M6NDoidHlwZSI7czo4OiJjaGVja2JveCI7czo0OiJkZXNjIjtzOjc3OiJNYWtlIGxpbmtzIGZyb20gdGhpcyBwb3N0L3BhZ2UgPHN0cm9uZz5mb2xsb3dhYmxlPC9zdHJvbmc+IGJ5IHNlYXJjaCBlbmdpbmVzLiI7fWk6MjthOjU6e3M6NDoibmFtZSI7czoxMToic2VvX25vaW5kZXgiO3M6Mzoic3RkIjtzOjU6ImZhbHNlIjtzOjU6ImxhYmVsIjtzOjEzOiJTRU8gLSBOb2luZGV4IjtzOjQ6InR5cGUiO3M6ODoiY2hlY2tib3giO3M6NDoiZGVzYyI7czo1NjoiU2V0IHRoZSBQYWdlL1Bvc3QgdG8gbm90IGJlIGluZGV4ZWQgYnkgYSBzZWFyY2ggZW5naW5lcy4iO319PC9saT48bGk+PHN0cm9uZz53b29fZmVhdF9pbWFnZV9oZWlnaHQ8L3N0cm9uZz4gLSAxOTU8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0X2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gNTQwPC9saT48bGk+PHN0cm9uZz53b29fZmVhdHVyZWRfY2F0ZWdvcnk8L3N0cm9uZz4gLSBTZWxlY3QgYSBjYXRlZ29yeTo8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9wb3N0czwvc3Ryb25nPiAtIFNlbGVjdCBhIG51bWJlcjo8L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX2lkPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZmVlZGJ1cm5lcl91cmw8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mbGlja3JfZW50cmllczwvc3Ryb25nPiAtIFNlbGVjdCBhIE51bWJlcjo8L2xpPjxsaT48c3Ryb25nPndvb19mbGlja3JfaWQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mbGlja3JfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZnJhbWV3b3JrX3RlbXBsYXRlPC9zdHJvbmc+IC0gYToxNzp7aTowO2E6Mzp7czo0OiJuYW1lIjtzOjE4OiJGcmFtZXdvcmsgU2V0dGluZ3MiO3M6NDoiaWNvbiI7czo3OiJnZW5lcmFsIjtzOjQ6InR5cGUiO3M6NzoiaGVhZGluZyI7fWk6MTthOjY6e3M6NDoibmFtZSI7czoyMToiU3VwZXIgVXNlciAodXNlcm5hbWUpIjtzOjQ6ImRlc2MiO3M6MjQ1OiJFbnRlciB5b3VyIDxzdHJvbmc+dXNlcm5hbWU8L3N0cm9uZz4gdG8gaGlkZSB0aGUgRnJhbWV3b3JrIFNldHRpbmdzIGFuZCBVcGRhdGUgRnJhbWV3b3JrIGZyb20gb3RoZXIgdXNlcnMuIENhbiBiZSByZXNldCBmcm9tIHRoZSA8YSBocmVmPSdodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtYWRtaW4vb3B0aW9ucy5waHAnPldQIG9wdGlvbnMgcGFnZTwvYT4gdW5kZXIgPGVtPmZyYW1ld29ya193b29fc3VwZXJfdXNlcjwvZW0+LiI7czoyOiJpZCI7czoyNDoiZnJhbWV3b3JrX3dvb19zdXBlcl91c2VyIjtzOjM6InN0ZCI7czowOiIiO3M6NToiY2xhc3MiO3M6NDoidGV4dCI7czo0OiJ0eXBlIjtzOjQ6InRleHQiO31pOjI7YTo1OntzOjQ6Im5hbWUiO3M6MjE6IkRpc2FibGUgU0VPIE1lbnUgSXRlbSI7czo0OiJkZXNjIjtzOjYxOiJEaXNhYmxlIHRoZSA8c3Ryb25nPlNFTzwvc3Ryb25nPiBtZW51IGl0ZW0gaW4gdGhlIHRoZW1lIG1lbnUuIjtzOjI6ImlkIjtzOjI1OiJmcmFtZXdvcmtfd29vX3Nlb19kaXNhYmxlIjtzOjM6InN0ZCI7czowOiIiO3M6NDoidHlwZSI7czo4OiJjaGVja2JveCI7fWk6MzthOjU6e3M6NDoibmFtZSI7czozMzoiRGlzYWJsZSBTaWRlYmFyIE1hbmFnZXIgTWVudSBJdGVtIjtzOjQ6ImRlc2MiO3M6NzM6IkRpc2FibGUgdGhlIDxzdHJvbmc+U2lkZWJhciBNYW5hZ2VyPC9zdHJvbmc+IG1lbnUgaXRlbSBpbiB0aGUgdGhlbWUgbWVudS4iO3M6MjoiaWQiO3M6MjU6ImZyYW1ld29ya193b29fc2JtX2Rpc2FibGUiO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94Ijt9aTo0O2E6NTp7czo0OiJuYW1lIjtzOjI4OiJEaXNhYmxlIEJ1eSBUaGVtZXMgTWVudSBJdGVtIjtzOjQ6ImRlc2MiO3M6Njg6IkRpc2FibGUgdGhlIDxzdHJvbmc+QnV5IFRoZW1lczwvc3Ryb25nPiBtZW51IGl0ZW0gaW4gdGhlIHRoZW1lIG1lbnUuIjtzOjI6ImlkIjtzOjMyOiJmcmFtZXdvcmtfd29vX2J1eV90aGVtZXNfZGlzYWJsZSI7czozOiJzdGQiO3M6MDoiIjtzOjQ6InR5cGUiO3M6ODoiY2hlY2tib3giO31pOjU7YTo1OntzOjQ6Im5hbWUiO3M6MjQ6IkVuYWJsZSBDdXN0b20gTmF2aWdhdGlvbiI7czo0OiJkZXNjIjtzOjE4MToiRW5hYmxlIHRoZSBvbGQgPHN0cm9uZz5DdXN0b20gTmF2aWdhdGlvbjwvc3Ryb25nPiBtZW51IGl0ZW0uIFRyeSB0byB1c2UgPGEgaHJlZj0naHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWFkbWluL25hdi1tZW51cy5waHAnPldQIE1lbnVzPC9hPiBpbnN0ZWFkLCBhcyB0aGlzIGZ1bmN0aW9uIGlzIG91dGRhdGVkLiI7czoyOiJpZCI7czoyMDoiZnJhbWV3b3JrX3dvb193b29uYXYiO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94Ijt9aTo2O2E6NTp7czo0OiJuYW1lIjtzOjI1OiJUaGVtZSBVcGRhdGUgTm90aWZpY2F0aW9uIjtzOjQ6ImRlc2MiO3M6MTAxOiJUaGlzIHdpbGwgZW5hYmxlIG5vdGljZXMgb24geW91ciB0aGVtZSBvcHRpb25zIHBhZ2UgdGhhdCB0aGVyZSBpcyBhbiB1cGRhdGUgYXZhaWxhYmxlIGZvciB5b3VyIHRoZW1lLiI7czoyOiJpZCI7czozNToiZnJhbWV3b3JrX3dvb190aGVtZV92ZXJzaW9uX2NoZWNrZXIiO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94Ijt9aTo3O2E6NTp7czo0OiJuYW1lIjtzOjI5OiJEaXNhYmxlIFNob3J0Y29kZXMgU3R5bGVzaGVldCI7czo0OiJkZXNjIjtzOjc2OiJUaGlzIGRpc2FibGVzIHRoZSBvdXRwdXQgb2Ygc2hvcnRjb2Rlcy5jc3MgaW4gdGhlIEhFQUQgc2VjdGlvbiBvZiB5b3VyIHNpdGUuIjtzOjI6ImlkIjtzOjMyOiJmcmFtZXdvcmtfd29vX2Rpc2FibGVfc2hvcnRjb2RlcyI7czozOiJzdGQiO3M6MDoiIjtzOjQ6InR5cGUiO3M6ODoiY2hlY2tib3giO31pOjg7YTo1OntzOjQ6Im5hbWUiO3M6MjY6IlJlbW92ZSBHZW5lcmF0b3IgTWV0YSBUYWdzIjtzOjQ6ImRlc2MiO3M6ODE6IlRoaXMgZGlzYWJsZXMgdGhlIG91dHB1dCBvZiBnZW5lcmF0b3IgbWV0YSB0YWdzIGluIHRoZSBIRUFEIHNlY3Rpb24gb2YgeW91ciBzaXRlLiI7czoyOiJpZCI7czozMToiZnJhbWV3b3JrX3dvb19kaXNhYmxlX2dlbmVyYXRvciI7czozOiJzdGQiO3M6MDoiIjtzOjQ6InR5cGUiO3M6ODoiY2hlY2tib3giO31pOjk7YTo1OntzOjQ6Im5hbWUiO3M6MTc6IkltYWdlIFBsYWNlaG9sZGVyIjtzOjQ6ImRlc2MiO3M6MTUxOiJTZXQgYSBkZWZhdWx0IGltYWdlIHBsYWNlaG9sZGVyIGZvciB5b3VyIHRodW1ibmFpbHMuIFVzZSB0aGlzIGlmIHlvdSB3YW50IGEgZGVmYXVsdCBpbWFnZSB0byBiZSBzaG93biBpZiB5b3UgaGF2ZW4ndCBhZGRlZCBhIGN1c3RvbSBpbWFnZSB0byB5b3VyIHBvc3QuIjtzOjI6ImlkIjtzOjI3OiJmcmFtZXdvcmtfd29vX2RlZmF1bHRfaW1hZ2UiO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjY6InVwbG9hZCI7fWk6MTA7YTozOntzOjQ6Im5hbWUiO3M6ODoiQnJhbmRpbmciO3M6NDoiaWNvbiI7czo0OiJtaXNjIjtzOjQ6InR5cGUiO3M6NzoiaGVhZGluZyI7fWk6MTE7YTo1OntzOjQ6Im5hbWUiO3M6MjA6Ik9wdGlvbnMgcGFuZWwgaGVhZGVyIjtzOjQ6ImRlc2MiO3M6NTA6IkNoYW5nZSB0aGUgaGVhZGVyIGltYWdlIGZvciB0aGUgV29vVGhlbWVzIEJhY2tlbmQuIjtzOjI6ImlkIjtzOjM0OiJmcmFtZXdvcmtfd29vX2JhY2tlbmRfaGVhZGVyX2ltYWdlIjtzOjM6InN0ZCI7czowOiIiO3M6NDoidHlwZSI7czo2OiJ1cGxvYWQiO31pOjEyO2E6NTp7czo0OiJuYW1lIjtzOjE4OiJPcHRpb25zIHBhbmVsIGljb24iO3M6NDoiZGVzYyI7czo1NjoiQ2hhbmdlIHRoZSBpY29uIGltYWdlIGZvciB0aGUgV29yZFByZXNzIGJhY2tlbmQgc2lkZWJhci4iO3M6MjoiaWQiO3M6MjY6ImZyYW1ld29ya193b29fYmFja2VuZF9pY29uIjtzOjM6InN0ZCI7czowOiIiO3M6NDoidHlwZSI7czo2OiJ1cGxvYWQiO31pOjEzO2E6NTp7czo0OiJuYW1lIjtzOjIwOiJXb3JkUHJlc3MgbG9naW4gbG9nbyI7czo0OiJkZXNjIjtzOjUxOiJDaGFuZ2UgdGhlIGxvZ28gaW1hZ2UgZm9yIHRoZSBXb3JkUHJlc3MgbG9naW4gcGFnZS4iO3M6MjoiaWQiO3M6MzE6ImZyYW1ld29ya193b29fY3VzdG9tX2xvZ2luX2xvZ28iO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjY6InVwbG9hZCI7fWk6MTQ7YTozOntzOjQ6Im5hbWUiO3M6MTU6IkltcG9ydCAvIEV4cG9ydCI7czo0OiJpY29uIjtzOjQ6Im1pc2MiO3M6NDoidHlwZSI7czo3OiJoZWFkaW5nIjt9aToxNTthOjU6e3M6NDoibmFtZSI7czoxNDoiSW1wb3J0IE9wdGlvbnMiO3M6NDoiZGVzYyI7czo1OToiSW1wb3J0IHRoZSBvcHRpb25zIGZyb20gYW5vdGhlciBpbnN0YWxsYXRpb24gb2YgdGhpcyB0aGVtZS4iO3M6MjoiaWQiO3M6Mjg6ImZyYW1ld29ya193b29faW1wb3J0X29wdGlvbnMiO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjg6InRleHRhcmVhIjt9aToxNjthOjU6e3M6NDoibmFtZSI7czoxNDoiRXhwb3J0IE9wdGlvbnMiO3M6NDoiZGVzYyI7czo5NDoiRXhwb3J0IHRoZSBvcHRpb25zIHRvIGFub3RoZXIgaW5zdGFsbGF0aW9uIG9mIHRoaXMgdGhlbWUsIG9yIHRvIGtlZXAgYSBiYWNrdXAgb2YgeW91ciBvcHRpb25zLiI7czoyOiJpZCI7czoyODoiZnJhbWV3b3JrX3dvb19leHBvcnRfb3B0aW9ucyI7czozOiJzdGQiO3M6MTUxMjoiWVRveU9EcDdjem81T2lKM2IyOWZZV0p2ZFhRaU8zTTZNRG9pSWp0ek9qRXpPaUozYjI5ZllXSnZkWFJzYVc1cklqdHpPakU2SWlNaU8zTTZNVFE2SW5kdmIxOWhaSE5mY205MFlYUmxJanR6T2pRNkluUnlkV1VpTzNNNk1UUTZJbmR2YjE5aFpGOXBiV0ZuWlY4eElqdHpPalExT2lKb2RIUndPaTh2ZDNkM0xtUmxkbTl1WW5WNUxtTnZiUzloWkhNdlltaGZNVEkxZURFeU5WOHdNaTVuYVdZaU8zTTZNVFE2SW5kdmIxOWhaRjlwYldGblpWOHlJanR6T2pReE9pSm9kSFJ3T2k4dmQzZDNMbmR2YjNSb1pXMWxjeTVqYjIwdllXUnpMekV5TlhneE1qVmlMbXB3WnlJN2N6b3hORG9pZDI5dlgyRmtYMmx0WVdkbFh6TWlPM002TkRFNkltaDBkSEE2THk5M2QzY3VkMjl2ZEdobGJXVnpMbU52YlM5aFpITXZNVEkxZURFeU5XSXVhbkJuSWp0ek9qRTBPaUozYjI5ZllXUmZhVzFoWjJWZk5DSTdjem8wTVRvaWFIUjBjRG92TDNkM2R5NTNiMjkwYUdWdFpYTXVZMjl0TDJGa2N5OHhNalY0TVRJMVlpNXFjR2NpTzNNNk1USTZJbmR2YjE5aFpGOTFjbXhmTVNJN2N6b3pOem9pYUhSMGNEb3ZMM2QzZHk1aWJIVmxhRzl6ZEM1amIyMHZkSEpoWTJzdmFXNWthV2R2ZENJN2N6b3hNam9pZDI5dlgyRmtYM1Z5YkY4eUlqdHpPakkwT2lKb2RIUndPaTh2ZDNkM0xuZHZiM1JvWlcxbGN5NWpiMjBpTzNNNk1USTZJbmR2YjE5aFpGOTFjbXhmTXlJN2N6b3lORG9pYUhSMGNEb3ZMM2QzZHk1M2IyOTBhR1Z0WlhNdVkyOXRJanR6T2pFeU9pSjNiMjlmWVdSZmRYSnNYelFpTzNNNk1qUTZJbWgwZEhBNkx5OTNkM2N1ZDI5dmRHaGxiV1Z6TG1OdmJTSTdjem94T0RvaWQyOXZYMkZzZEY5emRIbHNaWE5vWldWMElqdHpPamc2SW1keVlYa3VZM056SWp0ek9qRTBPaUozYjI5ZlkzVnpkRzl0WDJOemN5STdjem93T2lJaU8zTTZNVGc2SW5kdmIxOWpkWE4wYjIxZlptRjJhV052YmlJN2N6b3dPaUlpTzNNNk1UZzZJbmR2YjE5bVpXVmtZblZ5Ym1WeVgzVnliQ0k3Y3pvd09pSWlPM002TWpBNkluZHZiMTluYjI5bmJHVmZZVzVoYkhsMGFXTnpJanR6T2pBNklpSTdjem80T2lKM2IyOWZhRzl0WlNJN2N6bzFPaUptWVd4elpTSTdjem94TnpvaWQyOXZYMmh2YldWZllYSmphR2wyWlhNaU8zTTZNRG9pSWp0ek9qSXhPaUozYjI5ZmFHOXRaVjltYkdsamEzSmZZMjkxYm5RaU8zTTZNRG9pSWp0ek9qRTVPaUozYjI5ZmFHOXRaVjltYkdsamEzSmZkWEpzSWp0ek9qQTZJaUk3Y3pveU1Eb2lkMjl2WDJodmJXVmZabXhwWTJ0eVgzVnpaWElpTzNNNk1Eb2lJanR6T2pFNU9pSjNiMjlmYUc5dFpWOXNhV1psYzNSeVpXRnRJanR6T2pBNklpSTdjem94TkRvaWQyOXZYMmh2YldWZmNHOXpkSE1pTzNNNk1Eb2lJanR6T2pnNkluZHZiMTlzYjJkdklqdHpPakE2SWlJN2N6b3hNem9pZDI5dlgyMWhhVzV5YVdkb2RDSTdjem8xT2lKbVlXeHpaU0k3Y3pvM09pSjNiMjlmYm1GMklqdHpPalE2SW5SeWRXVWlPM002T0RvaWQyOXZYM1JoWW5NaU8zTTZOVG9pWm1Gc2MyVWlPM002T1RvaWQyOXZYM1pwWkdWdklqdHpPalE2SW5SeWRXVWlPMzA9IjtzOjQ6InR5cGUiO3M6ODoidGV4dGFyZWEiO319PC9saT48bGk+PHN0cm9uZz53b29fZnJhbWV3b3JrX3ZlcnNpb248L3N0cm9uZz4gLSA0LjEuMDwvbGk+PGxpPjxzdHJvbmc+d29vX2dvb2dsZV9hbmFseXRpY3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ob21lPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2FyY2hpdmVzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9mbGlja3JfY291bnQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2ZsaWNrcl91cmw8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2ZsaWNrcl91c2VyPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9saWZlc3RyZWFtPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9vbmVfY29sPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX3Bvc3RzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faW1hZ2VfZGlzYWJsZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29faW1hZ2VfaGVpZ2h0PC9zdHJvbmc+IC0gMTkwPC9saT48bGk+PHN0cm9uZz53b29faW1hZ2Vfc2luZ2xlPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gMzUwPC9saT48bGk+PHN0cm9uZz53b29fbGF5b3V0PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19sb2dvPC9zdHJvbmc+IC0gaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMzItbG9nby1kZXZvbmJ1eS0yMDE2LnBuZzwvbGk+PGxpPjxzdHJvbmc+d29vX21haW5yaWdodDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fbWFudWFsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL3N1cHBvcnQvdGhlbWUtZG9jdW1lbnRhdGlvbi9mcmVzaC1uZXdzLzwvbGk+PGxpPjxzdHJvbmc+d29vX25hdjwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19vcHRpb25zPC9zdHJvbmc+IC0gYToyODp7czoxODoid29vX2FsdF9zdHlsZXNoZWV0IjtzOjEyOiI2LXdoaXRleS5jc3MiO3M6ODoid29vX2xvZ28iO3M6NTg6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzMtbG9nby5wbmciO3M6MTg6Indvb19jdXN0b21fZmF2aWNvbiI7czowOiIiO3M6MjA6Indvb19nb29nbGVfYW5hbHl0aWNzIjtzOjA6IiI7czoxODoid29vX2ZlZWRidXJuZXJfdXJsIjtzOjA6IiI7czoxNDoid29vX2N1c3RvbV9jc3MiO3M6MDoiIjtzOjg6Indvb19ob21lIjtzOjU6ImZhbHNlIjtzOjE0OiJ3b29faG9tZV9wb3N0cyI7czowOiIiO3M6MTk6Indvb19ob21lX2xpZmVzdHJlYW0iO3M6MDoiIjtzOjIwOiJ3b29faG9tZV9mbGlja3JfdXNlciI7czowOiIiO3M6MjE6Indvb19ob21lX2ZsaWNrcl9jb3VudCI7czowOiIiO3M6MTk6Indvb19ob21lX2ZsaWNrcl91cmwiO3M6MDoiIjtzOjE3OiJ3b29faG9tZV9hcmNoaXZlcyI7czowOiIiO3M6MTM6Indvb19tYWlucmlnaHQiO3M6NToiZmFsc2UiO3M6Nzoid29vX25hdiI7czo0OiJ0cnVlIjtzOjg6Indvb190YWJzIjtzOjU6ImZhbHNlIjtzOjk6Indvb192aWRlbyI7czo0OiJ0cnVlIjtzOjk6Indvb19hYm91dCI7czowOiIiO3M6MTM6Indvb19hYm91dGxpbmsiO3M6MToiIyI7czoxNDoid29vX2Fkc19yb3RhdGUiO3M6NDoidHJ1ZSI7czoxNDoid29vX2FkX2ltYWdlXzEiO3M6NDY6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS9hZHMvYmhfMTI1eDEyNV8wMi5naWYiO3M6MTI6Indvb19hZF91cmxfMSI7czozNzoiaHR0cDovL3d3dy5ibHVlaG9zdC5jb20vdHJhY2svaW5kaWdvdCI7czoxNDoid29vX2FkX2ltYWdlXzIiO3M6NDY6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS9hZHMvaWNvb2xzb2Z0aXBhZC5qcGciO3M6MTI6Indvb19hZF91cmxfMiI7czo2ODoiaHR0cHM6Ly93d3cucmVnbm93LmNvbS9jaGVja291dC9jYXJ0L2FkZC8yNzE0OC03P2FmZmlsaWF0ZV9pZD01OTMwMDEiO3M6MTQ6Indvb19hZF9pbWFnZV8zIjtzOjQxOiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzLzEyNXgxMjViLmpwZyI7czoxMjoid29vX2FkX3VybF8zIjtzOjI0OiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20iO3M6MTQ6Indvb19hZF9pbWFnZV80IjtzOjQxOiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzLzEyNXgxMjViLmpwZyI7czoxMjoid29vX2FkX3VybF80IjtzOjI0OiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20iO308L2xpPjxsaT48c3Ryb25nPndvb19vdGhlcl9lbnRyaWVzPC9zdHJvbmc+IC0gNjwvbGk+PGxpPjxzdHJvbmc+d29vX3BvcHVsYXJfcG9zdHM8L3N0cm9uZz4gLSBTZWxlY3QgYSBudW1iZXI6PC9saT48bGk+PHN0cm9uZz53b29fcmVzaXplPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19yc3NfdGh1bWI8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfdmlkZW88L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV9oZWlnaHQ8L3N0cm9uZz4gLSAxMjA8L2xpPjxsaT48c3Ryb25nPndvb19zaW5nbGVfaW1hZ2VfaGVpZ2h0PC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fc2luZ2xlX2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fc2luZ2xlX3dpZHRoPC9zdHJvbmc+IC0gMjAwPC9saT48bGk+PHN0cm9uZz53b29fc3Vja2VyZmlzaDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb190YWJzPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb190aGVtZW5hbWU8L3N0cm9uZz4gLSBGcmVzaCBOZXdzPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfaW1hZ2VfaGVpZ2h0PC9zdHJvbmc+IC0gNzU8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl9pbWFnZV93aWR0aDwvc3Ryb25nPiAtIDc1PC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSAxMDA8L2xpPjxsaT48c3Ryb25nPndvb191cGxvYWRzPC9zdHJvbmc+IC0gYTozMDp7aTowO3M6NzM6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzMyLWxvZ28tZGV2b25idXktMjAxNi5wbmciO2k6MTtzOjczOiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8zMS1sb2dvLWRldm9uYnV5LTIwMTYucG5nIjtpOjI7czo3MzoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMzAtbG9nby1kZXZvbmJ1eS0yMDE1LnBuZyI7aTozO3M6NzM6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzI5LWxvZ28tZGV2b25idXktMjAxNS5wbmciO2k6NDtzOjczOiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8yOC1sb2dvLWRldm9uYnV5LTIwMTUucG5nIjtpOjU7czo3MzoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMjctbG9nby1kZXZvbmJ1eS0yMDE1LnBuZyI7aTo2O3M6NjU6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzI2LWZhdmljb24tZGIucG5nIjtpOjc7czo2NjoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMjUtZmF2aWNvbjIwMTQucG5nIjtpOjg7czo2NToiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMjQtaGVhZGVyMjAxNC5wbmciO2k6OTtzOjY1OiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8yMy1oZWFkZXIyMDE0LnBuZyI7aToxMDtzOjY1OiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8yMi1oZWFkZXIyMDE0LnBuZyI7aToxMTtzOjY1OiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8yMS1oZWFkZXIyMDEzLnBuZyI7aToxMjtzOjcwOiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8yMC1oZWFkZXIyMDEzdHlwZTIuanBnIjtpOjEzO3M6NzA6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzE5LWhlYWRlcjIwMTN0eXBlMi5qcGciO2k6MTQ7czo3MDoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTgtaGVhZGVyMjAxM3R5cGUyLmpwZyI7aToxNTtzOjcwOiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8xNy1oZWFkZXIyMDEzdHlwZTIuanBnIjtpOjE2O3M6NjU6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzE2LWhlYWRlcjIwMTMuanBnIjtpOjE3O3M6NjQ6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzE1LWxvZ29fY2FydC5wbmciO2k6MTg7czo2NDoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTQtbG9nb19jYXJ0LnBuZyI7aToxOTtzOjY0OiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8xMy1sb2dvX2NhcnQucG5nIjtpOjIwO3M6NjQ6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzEyLWxvZ29fY2FydC5wbmciO2k6MjE7czo2NDoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTEtbG9nb19jYXJ0LnBuZyI7aToyMjtzOjYxOiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8xMC1sb2dvXzMucG5nIjtpOjIzO3M6NjA6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzktbG9nb18zLnBuZyI7aToyNDtzOjYwOiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy84LWRiLWZhdi5wbmciO2k6MjU7czo2MDoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNy1sb2dvXzIucG5nIjtpOjI2O3M6NjA6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzYtbG9nb18yLnBuZyI7aToyNztzOjYwOiJodHRwczovL3d3dy5kZXZvbmJ1eS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy81LWxvZ29fMi5wbmciO2k6Mjg7czo2MDoiaHR0cHM6Ly93d3cuZGV2b25idXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNC1sb2dvXzIucG5nIjtpOjI5O3M6NTg6Imh0dHBzOi8vd3d3LmRldm9uYnV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzMtbG9nby5wbmciO308L2xpPjxsaT48c3Ryb25nPndvb192aWRlbzwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb192aWRlb19jYXRlZ29yeTwvc3Ryb25nPiAtIFNlbGVjdCBhIGNhdGVnb3J5OjwvbGk+PC91bD4=