Content-Type: multipart/related; start=; boundary=----------l3zI15SHHfQvVkJLudMbfE Content-Location: http://en.wikibooks.org/wiki/Introduction_to_Art/Drawing_I Subject: =?utf-8?Q?Introduction=20to=20Art/Drawing=20I=20-=20Wikibooks,=20collection=20of=20open-content=20textbooks?= MIME-Version: 1.0 ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=Drawing_I.htm Content-Type: text/html; charset=UTF-8; name=Drawing_I.htm Content-ID: Content-Location: http://en.wikibooks.org/wiki/Introduction_to_Art/Drawing_I Content-Transfer-Encoding: 8bit Introduction to Art/Drawing I - Wikibooks, collection of open-content textbooks

Introduction to Art/Drawing I

From Wikibooks, the open-content textbooks collection

Jump to: navigation, search

Contents

[edit] Overview

Drawing can be loosely defined as mark-making on a flat surface. Usually, the mark-making device is a pencil and the flat surface is a sheet of paper, but many other combinations of tools and surfaces are possible. As such, sometimes it is hard to categorize a work as drawing or some other kind of art, such as painting, printmaking, digital media, or sculpture.

Learning to draw is considered fundamental to learning to produce other forms of visual art. Not only are the skills acquired through drawing useful, but a sketch is frequently the first step in producing new artwork. Drawing is also popular because the necessary materials are cheap and widely available and because the drawing process is fast, direct, and can be done almost anywhere.

[edit] Drawing tools

[edit] Dry media

[edit] Pencils

When most people think about drawing tools, they think of the ordinary "number two" pencil, most likely a yellow, hexagonal one, with a pink eraser on the end. Pencils come in many different styles, however.

The marking core of the pencil is called the "lead", although these days it doesn't contain any actual lead. Most pencils contain graphite -- a silvery-gray form of carbon -- as their pigment, although other pigments such as charcoal or various colors are possible.

Graphite leads are rated in relative hardness. On one side of the scale is "9H", which is the hardest grade of pencil. On the other side of the scale is "9B", which is the softest ("blackest") grade of pencil. In the middle of the scale is the "HB" pencil, which corresponds to the standard "number two" pencil. The "F" grade of pencil is a bit harder than "HB". Hardness is not necessarily consistent between brands of pencils; experiment to find a hardness that you feel comfortable with.

Hard lead qualities:

  • Capable of very light strokes.
  • Stays sharp longer.
  • More likely to tear through paper.
  • Brittle -- tends to break under pressure.

Soft lead qualities:

  • Gives the darkest strokes.
  • Dulls quickly.
  • Soft -- tends to crumble under pressure.

Graphite is by nature somewhat brittle; care must be taken not to drop pencils or leads or the lead might break, even within a wood casing.

Pencil leads can be packaged in different ways. The typical packaging is in a wooden casing, which requires a pencil sharpener or a knife to expose the pencil lead for drawing. It is also possible to buy solid graphite sticks, usually wrapped in plastic, which can be used to make strong, bold marks on the page. Mechanical pencils use metal or plastic device instead of a casing, feeding out a thin lead. Lead holders can be thought of a hybrid between mechanical and traditional pencils, since they replace the wooden casing like mechanical pencils but also hold a lead of a thickness comparable to traditional pencils.

A property of mechanical pencils is that their thin leads produce a very even line, unlike thick-leaded pencils, which produce lines whose width varies slightly with pressure, allowing for more expressive linework. Another property of thick-leaded pencils is that they can be applied to the paper at a sharp angle to quickly apply graphite in a thick shading stroke. These properties tend to make mechanical pencils more desirable for precise drafting work and thick-leaded pencils more desirable for expressive drawing.

Colored pencils contain a pigment instead of graphite. The binding material of colored pencil leads varies among brands, leading to different degrees of waxiness or blendability. Watercolor pencils, a relatively recent development, use a water-soluble binding material which allows the artist to blend colors by brushing water over the artwork. A special variety of blue pencil -- "non-repro" blue -- does not photocopy well; comic book artists typically use these pencils to lay out their artwork before tracing over it with regular graphite pencils.

Charcoal and conté pencils are simply pencils that contain a charcoal or conté crayon core instead of a graphite one. See their respective sections below.

Grease pencils use a soft wax as a binding agent, wrapped in a rolled paper casing that is peeled away to expose the core. Since they use wax as a binding agent, these pencils are similar to crayons. They produce a bold, dark line which cannot be erased from paper. They can also produce a temporary line on smooth surfaces that can be wiped away with a solvent; this makes them useful for marking glass or plastic before cutting, for example.

Pencils with wooden casings can come in a variety of shapes, including round or hexagonal. Oblong or oval casings are also available, which some people find easier to hold and sketch with. On one hand, they offer both thick and thin surfaces for mark-making. On the other hand, they don't work in pencil sharpeners and must thus be sharpened with a knife.

For sharpening wood-cased pencils, a variety of mechanical solutions are available, from small, one-piece metal sharpeners, to hand-cranked sharpeners, to electric sharpeners. An alternative to mechanical sharpening is to whittle the wood casing away with a pocket knife; although this gives an irregular shape to the lead, it allows you to choose as sharp or wide an angle of lead as you want. Once the pencil is sharpened, some artists prefer to keep it sharp by shaping the point against a piece of scrap paper or sandpaper. Some art stores sell little pads of sandpaper for this purpose.

[edit] Charcoals

Charcoal is a popular artist's tool because it produces an inky, matte black and can be easily manipulated with the fingers or other smudge tool. Charcoal work tends to smear more easily than graphite work and usually requires a fixative (see below). Charcoal is also harder to erase than graphite

Artist's charcoal comes in a variety of forms. The most popular charcoal tools are compressed charcoal sticks. With charcoal sticks, the artist can produce both lines (with the tip) and areas of value (with the side). Charcoal-leaded pencils can also be purchased.

Vine charcoal is a piece of plant that has been turned to charcoal but has not been pulverized and compressed. Vine charcoal can be held like a pencil or broken and used like charcoal sticks. Since it has not been compressed, it tends to produce a lighter mark than compressed charcoal.

Some artists prefer to use charcoal powder applied directly to the art surface and manipulated with fingers or brush. Charcoal or graphite powder can also be placed in a small fabric bag which is then rubbed against the art surface; this produces a subtle shading effect that can be smoothly varied across the page.

[edit] Metal: Silverpoint, Copperpoint

[edit] Chalks

[edit] Crayons

  • Conté
  • Cray-pas

[edit] Pastels

[edit] Erasers

  • Simple rubber erasers ("Pink Pearl"-style)
  • gum (crumbly) erasers
  • plastic (white block or stick) erasers
  • kneaded ("Silly Putty"-like) erasers.
  • A note on using a large, clean brush to wipe away eraser crumbs instead of hands.

[edit] Smudging tools

Smudging tools are used to move pigment around on the drawing surface, blending or smearing it. The simplest smudging tool is the finger, although care should be used not to damage the artwork with the oils from hands. Cheap (lotion-free!) toilet paper, facial tissues, and Q-Tips can all be used as smudging tools.

Blending stumps (also known as "tortillons" or "smudge sticks") are lengths of tightly rolled paper that come to a point at one or both ends. Stumps are useful because they allow for precise blending, by using either the flat or tip of the point. After a stump has built up an amount of graphite or charcoal on its point, it can be used as a drawing tool in its own right; the light strokes it produces can be useful when first roughing out a piece.

[edit] Wet media

[edit] Dip pens

Dip pens are pens with no internal ink reservoir; the ink is held in the nib at the tip of the pen, so the pen needs to be dipped in an external ink supply regularly to refresh the ink supply. Dip pens consist of a nib holder and a nib. Nibs wear out with time and need to be replaced. Different nibs produce different sizes and shapes of pen strokes. The "crow's quill" type of nib is frequently used in illustration, since the width of the line it produces can be varied by altering the pressure applied to the paper during the stroke.

[edit] Disposable and cartridge pens

Disposable pens come with an internal ink reservoir that is non-replaceable, while cartridge pens have a replaceable ink reservoir. Care must be taken in selecting pens for art-making, since many are intended for writing and do not use archival quality ink -- that is, the marks they produce may fade, change color, or alter the paper over time. Most technical pens are of archival quality.

[edit] Markers

  • pigment liner
  • water color
  • alcohol

[edit] Brushes

Brushtypes.jpg

[edit] Inks

  • Water based
  • Alcohol based
  • Indian/Chinese Ink

[edit] Paints

[edit] Drawing surfaces

[edit] Papers

  • Newsprint
  • Vellum
  • Bristol board
  • Rag/cotton paper
  • Watercolor paper
  • Charcoal paper
  • Colored paper
  • Rice paper

[edit] Other drawing surfaces

Scratchboards, silverpoint, etc.

[edit] Other drawing supplies

  • Fixatives?
  • Rulers, triangles, templates, splines?
------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=favicon.ico Content-Type: image/x-icon; name=favicon.ico Content-Location: http://en.wikibooks.org/favicon.ico Content-Transfer-Encoding: Base64 AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAUA AAAFAAAAAAAAAAAAAAAAAAAAAADp8fN7cmSsqqMAAAD1+vu7nX7czbwAAADw4tTg tpD68uwAAAAAAAAAAAAAAAAAAADN6vGfwcZXPye6ubPm9PjU5uitgFXZxbH4/P3n zbXWnGnw28gAAAAAAAAAAAD8/v6z3+qv3emauLtYPyezwL/X7vTT5OWse07Tu6T4 /P3q1sPWnWnjvZv9+vcAAADi8/ev3emv3emv3emVrrBYQCi7zM3X7vTS4eGqdUXX wa34/P318+/esondr4UAAADF5u+v3emv3emv3emv3emJmZZnWEbX7vTX7vTDu6q0 hVv4/P34/P3u4NHZpnj7/f6w3emv3emv3emv3emv3emXsrVVOiHU6vDX7vS+qZC8 kmv4/P34/P3kw6Tpy7Ds9/qv3emv3emv3emv3emv3elycGOCem3X7vTW7PKpc0He z7/4/P33+fjXn2369O7d8fav3emv3emv3emv3emp091TNh25xMPX7vTHxbmrdEP3 +/v4/P3r2MXgt5AAAADO6vKv3emv3emv3emv3emHlZFjTjnX7vTX7vSzjWjNsJX4 /P34/P3dr4by4dEAAAC/5O2v3emv3emv3emv3eliUT2ZmI/X7vTR39+jZjDv7Of4 /P3y7OXYo3P//v4AAACrztav3emv3emv3embur5RNBnL3uHX7vS8qZC6kGr4/P34 /P3kxKbpy7AAAAAAAABiSzWjyM+v3emv3el3dmt4a1rX7vTX7fKoc0Lez7/4/P33 +fnXoG779O8AAAAAAACOe2pcRS6hxMqr1uBVOSCWb0zU5+rHxbmpcD7iv574+/zr 2Mfgt5AAAAAAAAAAAAD9/fyQfWtaQSl7f3VeQyu1hlywgVWvh2DMq4zZpHXhu5jd r4Xy4dEAAAAAAAAAAAAAAAD+/v6WhHRPMBWhkYL8+fe8kGiiZC317uj79O/ZpnfY o3P//v4AAAAAAAAAAAAAAAAAAAAAAACtnpLl4NwAAAD9/PvawasAAAAAAAD79vHw 28gAAAAAAAAAAAAAAADERwAAwAMAAIAAAACAAAAAgAAAAAAAAAAAAAAAAAEAAAAB AAAAAQAAAAMAAAADAAAABwAAAAcAAIAHAADkzwAA ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=shared.css Content-Type: text/css; name=shared.css Content-Location: http://bits.wikimedia.org/skins-1.5/common/shared.css?257z23 Content-Transfer-Encoding: 8bit /** * CSS in this file is used by *all* skins (that have any CSS at all). Be * careful what you put in here, since what looks good in one skin may not in * another, but don't ignore the poor non-Monobook users either. */ /* Colored watchlist and recent changes numbers */ .mw-plusminus-pos { color: #006400; } /* dark green */ .mw-plusminus-neg { color: #8b0000; } /* dark red */ .mw-plusminus-null { color: #aaa; } /* gray */ /* Comment and username portions of RC entries */ span.comment { font-style: italic; } span.changedby { font-size: 95%; } /* Math */ .texvc { direction: ltr; unicode-bidi: embed; } img.tex { vertical-align: middle; } span.texhtml { font-family: serif; } /* add a bit of margin space between the preview and the toolbar */ /* this replaces the ugly


we used to insert into the page source */ #wikiPreview.ontop { margin-bottom: 1em; } /* Stop floats from intruding into edit area in previews */ #editform, #toolbar, #wpTextbox1 { clear: both; } div#mw-js-message { margin: 1em 5%; padding: 0.5em 2.5%; border: solid 1px #ddd; background-color: #fcfcfc; } /* Edit section links */ .editsection { float: right; margin-left: 5px; } /** * File histories */ table.filehistory th, table.filehistory td { vertical-align:top; } table.filehistory th { text-align: left; } table.filehistory td.mw-imagepage-filesize, table.filehistory th.mw-imagepage-filesize { white-space:nowrap; } table.filehistory td.filehistory-selected { font-weight: bold; } /* * rev_deleted stuff */ li span.deleted, span.history-deleted { text-decoration: line-through; color: #888; font-style: italic; } /** * Patrol stuff */ .not-patrolled { background-color: #ffa; } .unpatrolled { font-weight: bold; color: red; } div.patrollink { font-size: 75%; text-align: right; } /** * Forms */ body.ltr td.mw-label { text-align: right; } body.ltr td.mw-input { text-align: left; } body.ltr td.mw-submit { text-align: left; } body.rtl td.mw-label { text-align: left; } body.rtl td.mw-input { text-align: right; } body.rtl td.mw-submit { text-align: right; } td.mw-label { vertical-align: top; } .prefsection td.mw-label { width: 20%; } .prefsection table { width: 100%; } td.mw-submit { white-space: nowrap; } table.mw-htmlform-nolabel td.mw-label { width: 0 !important; } /** * Image captions */ body.rtl .thumbcaption { text-align:right; } body.rtl .magnify { float:left; } body.ltr .thumbcaption { text-align:left; } body.ltr .magnify { float:right; } /** * Hidden categories */ .mw-hidden-cats-hidden { display: none; } .catlinks-allhidden { display: none; } /* Convenience links to edit block, delete and protect reasons */ p.mw-ipb-conveniencelinks, p.mw-protect-editreasons, p.mw-filedelete-editreasons, p.mw-delete-editreasons, p.mw-revdel-editreasons { font-size: 90%; float: right; } /* Search results */ .searchresults { } .searchresults p { margin-left: 0.4em; margin-top: 1em; margin-bottom: 1.2em; } div.searchresult { font-size: 95%; width:38em; } .mw-search-results { margin-left: 0.4em; } .mw-search-results li { padding-bottom: 1em; list-style:none; list-style-image:none; } .mw-search-results li a { font-size: 108%; } .mw-search-result-data { color: green; font-size: 97%; } .mw-search-formheader { background-color: #f3f3f3; margin-top: 1em; border: 1px solid silver; } .mw-search-formheader div.search-types { float:left; padding-left: 0.25em; } .rtl .mw-search-formheader div.search-types { float: right; } .mw-search-formheader div.search-types ul { margin: 0 !important; padding: 0 !important; list-style: none !important; } .mw-search-formheader div.search-types ul li { float: left; margin: 0; padding: 0; } .mw-search-formheader div.search-types ul li a { display: block; padding: 0.5em; } .mw-search-formheader div.search-types ul li.current a { color: #333333; cursor: default; } .mw-search-formheader div.search-types ul li.current a:hover { text-decoration: none; } .mw-search-formheader div.results-info { float: right; padding: 0.5em; padding-right: 0.75em; } .mw-search-formheader div.results-info ul { margin: 0 !important; padding: 0 !important; list-style: none !important; } .mw-search-formheader div.results-info ul li { float: right; margin: 0; padding: 0; } fieldset#mw-searchoptions { margin: 0; padding-left: 0.75em !important; padding-right: 0.75em !important; padding-bottom: 0.5em !important; padding-top: 0.5em !important; border: none; background-color: #f9f9f9; border: 1px solid silver !important; border-top-width: 0 !important; } fieldset#mw-searchoptions legend { display: none; } fieldset#mw-searchoptions h4 { padding: 0; margin: 0; float: left; } .rtl fieldset#mw-searchoptions h4 { float: right; } fieldset#mw-searchoptions div#mw-search-togglebox { float: right; } .rtl fieldset#mw-searchoptions div#mw-search-togglebox { float: left; } fieldset#mw-searchoptions div#mw-search-togglebox label { margin-right: 0.25em; } fieldset#mw-searchoptions div#mw-search-togglebox input { margin-left: 0.25em; } fieldset#mw-searchoptions table { float: left; margin-right: 3em; } fieldset#mw-searchoptions table td { padding-right: 1em; } .rtl fieldset#mw-searchoptions table td { padding-left: 1em; padding-right: 0; } body.rtl fieldset#mw-searchoptions table { margin-right: 0; margin-left: 3em; float: right; } fieldset#mw-searchoptions div.divider { clear: both; border-bottom: 1px solid #DDDDDD; padding-top: 0.5em; margin-bottom: 0.5em; } td#mw-search-menu { padding-left:6em; font-size:85%; } div#mw-search-interwiki { float: right; width: 18em; border-style: solid; border-color: #AAAAAA; border-width: 1px; margin-top: 2ex; } .rtl div#mw-search-interwiki { float: left; } div#mw-search-interwiki li { font-size: 95%; } .mw-search-interwiki-more { float: right; font-size: 90%; } .rtl .mw-search-interwiki-more { float: left; } div#mw-search-interwiki-caption { text-align: center; font-weight: bold; font-size: 95%; } .mw-search-interwiki-project { font-size: 97%; text-align: left; padding-left: 0.2em; padding-right: 0.15em; padding-bottom: 0.2em; padding-top: 0.15em; background-color:#ececec; border-top:1px solid #BBBBBB; } .rtl .mw-search-interwiki-project { text-align: right; } span.searchalttitle { font-size: 95%; } div.searchdidyoumean { font-size: 127%; margin-top: 0.8em; /* Note that this color won't affect the link, as desired. */ color: #c00; } div.searchdidyoumean em { font-weight: bold; } .searchmatch { font-weight: bold; } table#mw-search-top-table { background-color: transparent; } /* * Advanced PowerSearch box */ td#mw-search-togglebox { text-align: right; } table#mw-search-powertable { width:100%; } form#powersearch { clear: both; } /* * UserRights stuff */ .mw-userrights-disabled { color: #888; } table.mw-userrights-groups * td,table.mw-userrights-groups * th { padding-right: 1.5em; } /* * OpenSearch ajax suggestions */ .os-suggest { overflow: auto; overflow-x: hidden; position: absolute; top: 0px; left: 0px; width: 0px; background-color: white; background-color: Window; border-style: solid; border-color: #AAAAAA; border-width: 1px; z-index:99; font-size:95%; } table.os-suggest-results { font-size: 95%; cursor: pointer; border: 0; border-collapse: collapse; width: 100%; } .os-suggest-result, .os-suggest-result-hl { white-space: nowrap; background-color: white; background-color: Window; color: black; color: WindowText; padding: 2px; } .os-suggest-result-hl, .os-suggest-result-hl-webkit { background-color: #4C59A6; color: white; } .os-suggest-result-hl { /* System colors are misimplemented in Safari 3.0 and earlier, making highlighted text illegible... */ background-color: Highlight; color: HighlightText; } .os-suggest-toggle { position: relative; left: 1ex; font-size: 65%; } .os-suggest-toggle-def { position: absolute; top: 0px; left: 0px; font-size: 65%; visibility: hidden; } /* Page history styling */ /* the auto-generated edit comments */ .autocomment { color: gray; } #pagehistory .history-user { margin-left: 0.4em; margin-right: 0.2em; } #pagehistory span.minor { font-weight: bold; } #pagehistory li { border: 1px solid white; } #pagehistory li.selected { background-color: #f9f9f9; border: 1px dashed #aaa; } /** Generic minor/bot/newpage styling */ .newpage, .minor, .bot { font-weight: bold; } /* Special:Contributions styling */ .mw-uctop { font-weight: bold; } /* Special:ListGroupRights styling */ table.mw-listgrouprights-table tr { vertical-align: top; } .listgrouprights-revoked { text-decoration: line-through; } /* Special:Statistics styling */ td.mw-statistics-numbers { text-align: right; } /* Special:SpecialPages styling */ h4.mw-specialpagesgroup { background-color: #dcdcdc; padding: 2px; margin: .3em 0em 0em 0em; } .mw-specialpagerestricted { font-weight: bold; } #shared-image-dup, #shared-image-conflict { font-style: italic; } /* Special:EmailUser styling */ table.mw-emailuser-table { width: 98%; } td#mw-emailuser-sender, td#mw-emailuser-recipient { font-weight: bold; } /* Special:Allpages styling */ table.allpageslist { background-color: transparent; } table.mw-allpages-table-form, table.mw-allpages-table-chunk { background-color: transparent; width: 100%; } td.mw-allpages-alphaindexline { text-align: right; } td.mw-allpages-nav, p.mw-allpages-nav { text-align: right; font-size: smaller; margin-bottom: 1em; } table.mw-allpages-table-form tr { vertical-align: top; } /* Special:Prefixindex styling */ table#mw-prefixindex-list-table, table#mw-prefixindex-nav-table { width: 98%; background-color: transparent; } td#mw-prefixindex-nav-form { font-size: smaller; margin-bottom: 1em; text-align: right; vertical-align: top; } /* * Recreating deleted page warning * Reupload file warning * Page protection warning * incl. log entries for these warnings */ div.mw-warning-with-logexcerpt { padding: 3px; margin-bottom: 3px; border: 2px solid #2F6FAB; } div.mw-warning-with-logexcerpt ul li { font-size: 90%; } /* (show/hide) revision deletion links */ span.mw-revdelundel-link, strong.mw-revdelundel-link { font-size: 90%; } span.mw-revdelundel-hidden, input.mw-revdelundel-hidden { visibility: hidden; } /* feed links */ a.feedlink { background: url("images/feed-icon.png") center left no-repeat; padding-left: 16px; } /* Plainlinks - this can be used to switch * off special external link styling */ .plainlinks a { background: none !important; padding: 0 !important; } /* wikitable class for skinning normal tables */ table.wikitable { margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; } .wikitable th, .wikitable td { border: 1px #aaa solid; padding: 0.2em; } .wikitable th { background: #f2f2f2; text-align: center; } .wikitable caption { font-weight: bold; } /* hide initially collapsed collapsable tables */ table.collapsed tr.collapsable { display: none; } /* success and error messages */ .success { color: green; font-size: larger; } .error { color: red; font-size: larger; } .errorbox, .successbox { font-size: larger; border: 2px solid; padding: .5em 1em; float: left; margin-bottom: 2em; color: #000; } .errorbox { border-color: red; background-color: #fff2f2; } .successbox { border-color: green; background-color: #dfd; } .errorbox h2, .successbox h2 { font-size: 1em; font-weight: bold; display: inline; margin: 0 .5em 0 0; border: none; } .visualClear { clear: both; } #mw_trackbacks { border: solid 1px #bbbbff; background-color: #eeeeff; padding: 0.2em; } /* Table pager (e.g. Special:Imagelist) - remove underlines from the navigation link - collapse borders - set the borders to outsets (similar to Special:Allmessages) - remove line wrapping for all td and th, set background color - restore line wrapping for the last two table cells (description and size) */ .TablePager { min-width: 80%; } .TablePager_nav a { text-decoration: none; } .TablePager { border-collapse: collapse; } .TablePager, .TablePager td, .TablePager th { border: 1px solid #aaaaaa; padding: 0 0.15em 0 0.15em; } .TablePager th { background-color: #eeeeff } .TablePager td { background-color: #ffffff } .TablePager tr:hover td { background-color: #eeeeff } .imagelist td, .imagelist th { white-space: nowrap } .imagelist .TablePager_col_links { background-color: #eeeeff } .imagelist .TablePager_col_img_description { white-space: normal } .imagelist th.TablePager_sort { background-color: #ccccff } /* Allmessages table */ #mw-allmessagestable .allmessages-customised td.am_default { background-color: #fcffc4; } #mw-allmessagestable tr.allmessages-customised:hover td.am_default { background-color: #faff90; } #mw-allmessagestable td.am_actual { background-color: #e2ffe2; } #mw-allmessagestable tr.allmessages-customised:hover + tr.allmessages-customised td.am_actual { background-color: #b1ffb1; } /* filetoc */ ul#filetoc { text-align: center; border: 1px solid #aaaaaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; margin-bottom: 0.5em; margin-left: 0; margin-right: 0; } #filetoc li { display: inline; list-style-type: none; padding-right: 2em; } /* Classes for EXIF data display */ table.mw_metadata { font-size: 0.8em; margin-left: 0.5em; margin-bottom: 0.5em; width: 300px; } table.mw_metadata caption { font-weight: bold; } table.mw_metadata th { font-weight: normal; } table.mw_metadata td { padding: 0.1em; } table.mw_metadata { border: none; border-collapse: collapse; } table.mw_metadata td, table.mw_metadata th { text-align: center; border: 1px solid #aaaaaa; padding-left: 0.1em; padding-right: 0.1em; } table.mw_metadata th { background-color: #f9f9f9; } table.mw_metadata td { background-color: #fcfcfc; } /* Galleries */ table.gallery { border: 1px solid #ccc; margin: 2px; padding: 2px; background-color: white; } table.gallery tr { vertical-align: top; } table.gallery td { vertical-align: top; background-color: #f9f9f9; border: solid 2px white; } table.gallery caption { font-weight: bold; } div.gallerybox { margin: 2px; } div.gallerybox div.thumb { text-align: center; border: 1px solid #ccc; margin: 2px; } div.gallerytext { overflow: hidden; font-size: 94%; padding: 2px 4px; } table.mw-enhanced-rc { background: none; border:0; border-spacing:0; } td.mw-enhanced-rc { white-space:nowrap; padding:0; vertical-align:top; font-family:monospace } #mw-addcategory-prompt { display: inline; margin-left: 1em; } #mw-addcategory-prompt input { margin-left: 0.5em; margin-right: 0.5em; } .mw-remove-category { padding: 8px; background-image: url(images/remove.png); background-position: center center; background-repeat: no-repeat; } .mw-ajax-addcategory { padding-left: 20px; background-image: url(images/add.png); background-position: left center; background-repeat: no-repeat; } .mw-ajax-loader { background-image: url(images/ajax-loader.gif); background-position: center center; background-repeat: no-repeat; padding: 16px; position: relative; top: -16px; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=commonPrint.css Content-Type: text/css; name=commonPrint.css Content-Location: http://bits.wikimedia.org/skins-1.5/common/commonPrint.css?257z23 Content-Transfer-Encoding: 8bit /* ** MediaWiki Print style sheet for CSS2-capable browsers. ** Copyright Gabriel Wicke, http://www.aulinx.de/ ** ** Derived from the plone (http://plone.org/) styles ** Copyright Alexander Limi */ /* Thanks to A List Apart (http://alistapart.com/) for useful extras */ a.stub, a.new{ color:#ba0000; text-decoration:none; } #toc { /*border:1px solid #2f6fab;*/ border:1px solid #aaaaaa; background-color:#f9f9f9; padding:5px; } .tocindent { margin-left: 2em; } .tocline { margin-bottom: 0px; } /* images */ div.floatright { float: right; clear: right; margin: 0; position:relative; border: 0.5em solid White; border-width: 0.5em 0 0.8em 1.4em; } div.floatright p { font-style: italic;} div.floatleft { float: left; margin: 0.3em 0.5em 0.5em 0; position:relative; border: 0.5em solid White; border-width: 0.5em 1.4em 0.8em 0; } div.floatleft p { font-style: italic; } /* thumbnails */ div.thumb { margin-bottom: 0.5em; border-style: solid; border-color: White; width: auto; overflow: hidden; } div.thumb div { border:1px solid #cccccc; padding: 3px !important; background-color:#f9f9f9; font-size: 94%; text-align: center; } div.thumb div a img { border:1px solid #cccccc; } div.thumb div div.thumbcaption { border: none; padding: 0.3em 0 0.1em 0; } div.magnify { display: none; } div.tright { float: right; clear: right; border-width: 0.5em 0 0.8em 1.4em; } div.tleft { float: left; margin-right:0.5em; border-width: 0.5em 1.4em 0.8em 0; } img.thumbborder { border: 1px solid #dddddd; } /* table standards */ table.rimage { float:right; width:1pt; position:relative; margin-left:1em; margin-bottom:1em; text-align:center; } body { background: White; /*font-size: 11pt !important;*/ color: Black; margin: 0; padding: 0; } .noprint, div#jump-to-nav, div.top, div#column-one, #colophon, .editsection, .toctoggle, .tochidden, div#f-poweredbyico, div#f-copyrightico, li#viewcount, li#about, li#disclaimer, li#privacy, #mw-hidden-catlinks { /* Hides all the elements irrelevant for printing */ display: none; } ul { list-style-type: square; } #content { background: none; border: none ! important; padding: 0 ! important; margin: 0 ! important; } #footer { background : white; color : black; border-top: 1px solid black; } h1, h2, h3, h4, h5, h6 { font-weight: bold; } p, .documentDescription { margin: 1em 0 ! important; line-height: 1.2em; } .tocindent p { margin: 0 0 0 0 ! important; } pre { border: 1pt dashed black; white-space: pre; font-size: 8pt; overflow: auto; padding: 1em 0; background : white; color : black; } table.listing, table.listing td { border: 1pt solid black; border-collapse: collapse; } a { color: Black !important; background: none !important; padding: 0 !important; } a:link, a:visited { color: #520; background: transparent; text-decoration: underline; } #content a.external.text:after, #content a.external.autonumber:after { /* Expand URLs for printing */ content: " (" attr(href) ") "; } #globalWrapper { width: 100% !important; min-width: 0 !important; } #content { background : white; color : black; } #column-content { margin: 0 !important; } #column-content #content { padding: 1em; margin: 0 !important; } /* MSIE/Win doesn't understand 'inherit' */ a, a.external, a.new, a.stub { color: black ! important; text-decoration: none ! important; } /* Continue ... */ a, a.external, a.new, a.stub { color: inherit ! important; text-decoration: inherit ! important; } img { border: none; } img.tex { vertical-align: middle; } span.texhtml { font-family: serif; } #siteNotice { display: none; } div.gallerybox { border: 1px solid #cccccc; background-color:#f9f9f9; width: 150px; } div.gallerytext { overflow: visible; } /* ** Diff rendering */ table.diff { background:white; } td.diff-otitle { background:#ffffff; } td.diff-ntitle { background:#ffffff; } td.diff-addedline { background:#ccffcc; font-size: smaller; border: solid 2px black; } td.diff-deletedline { background:#ffffaa; font-size: smaller; border: dotted 2px black; } td.diff-context { background:#eeeeee; font-size: smaller; } .diffchange { color: silver; font-weight: bold; text-decoration: underline; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: image/jpeg Content-Location: http://bits.wikimedia.org/skins-1.5/monobook/headbg.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEAtAC0AAD/2wBDAAkGBwgHBgkICAgKCgkLDhcPDg0NDhwU FREXIh4jIyEeICAlKjUtJScyKCAgLj8vMjc5PDw8JC1CRkE6RjU7PDn/wAALCADc B5UBASIA/8QAGgABAQEBAQEBAAAAAAAAAAAAAAECAwQFB//EAC4QAQACAgEEAgMA AgEEAgMAAAABEQISIQMxQVEEYRMigTJxIxRCkbEFUmKh4f/aAAgBAQAAPwD9cpNY NSIk/aPKxnnHlY62cNR8iY7w1HyI9NR1sZbjPGfK3E9pCikOFSiiknG05xWM2o5A EFSSeUte7M4+YWOVZyhmYSOJdO8GMtTyy3HZJJXtCMzLMyhGN8OuOOsJnnXZxmb7 ueWXgw6WXUn1D1YdOMI4a7FpPP8AoooiFuIScvSVMrGK8QbHLOWWEf5ZWxPWxj/G LZnrZz2imf3y7ysdNrRYwlqMFjBdIg1gqF/gBUrynJycnJclll/R/Dg4KiTWEnE1 TUqUr6KCoKKSiYSikpeTaY8rvksdSfML+SF2xlbgSirKo5NpNjZbiTiVqEoqSiik qA5W5LLW0tUooosD/SggUUUUkwlLyXJsbLZZCocFrYHBRSUI3BkkdxY7CSxJEL4I eH5OW3WlnGKXy9XRxrCG0UAlY7JLzZ85TKWS10o/Z6IBYEWzwiwgskEBSCopRA40 UapqkwlFWk4pqTimvqSNonu1HUzx8t4/Iy84umPXxnvw3GeOXaVKQ4IVKScU5xWM /bSKIUqeRI7qkxyWtszDMrhPhqeJajkMSTueEmWJlJlO7thjUWmecOOWTnOXP26d PoXzl/4eiIiI4JSZCliC4hL9JrPmWogv0kzXeaYy6uGP/wCTE9bKf8caZvPLvMkd Lnl0jptRg1GMLUCwUHHtLx9pvjHlPyYez8uKflxPyx6Py/R+X6I6v0flj0fkhfyQ R1I9rvErtBcLwnBQULZZZwlQUapqapUlFJQUUUlJqUUlzHlYzyhr8n0sdTGV2ifI tJRSUclzC7SbG0LcHBRRQFIpyWX9lrwUlBZfsFAECikoopFuYLksuF/oHMFrZZwc LCT3IFO0MyzIslvJ8jH97iHLHiFiLl7cYrGIEahJF8JVr4Zy7S8/kq0mHTpQ7ApK CoC8Agp5QVFs8lpOKaprSaykwapRRSUmvJMJqlEx9JXrhrHPPHy6Y9f3DpGeOXlr iYSIFCmZxhOYajK1RUJICk/0vdJgpe7EwzE1Lp3hcVkgk8mTOUsWkunTw8yuedcP PnlyxF5zUPT0ulGPM8y6pM0zcyvY7rxDM5TPYjG/tqqL/jnl1sMfNy5z1s8v8Ypn TLKeZmXTHoxDcdOIajGliFQnKI7yk9TGPLM9XFmet6hJ6ucptnPlKynzJrK6mqxj 9Gq6mpqampqarqmpqUc+y8o8rtku8+iM49LGcLtHtbs7nBX2chZakwlQVCak4ykw UioUUlEwkwlHKxllDUZysZwsZRPleCkoSiijmC5XY3XaC4KKKOQAtQCko5Cy1sA4 ECikoooIsstThQsCFSWb5TvK0IkVPeHP5GGMYTlEcuHRi84h7EkgJFlPKufUmsXD lY7kunSh1FQWkVFlFQUC0UJKBDlbLLhKg1gnFNEnFNUmEoomGZhNbScSqajPKPLp j1o8ukZRPaVooPCTSTj6SJmO7UTZJ3KKWESeJUibKpL5J5Yyipawm4WOJa8EdzIi EyljKbZtrDG5tvPKop5upmzhhl1Z47e3r6fTjp48NTKTNJ35la9HEd2dr/xIxnzy 3Ee0yyjGOZqHHP5Ef9kW5/8AJ1O8umPQ9uuPTiGoxiF4JlmepjHeWJ62PjlmerlP aGds58k4zJGDUYLqui6rqRiusEYwVBUFQVHpagqPRUFQVCVBUGpqapOMmqV9Ewk4 pGK0XMLtKxl9G0Lf2tnHo7lT7P4F/YHBUJqapRQUhRRSVBSVQXMNbzBGceljKJ8r xPkCikooo59lzBtKxmsZQtxKVC0gWWoCBRRyWWXCooJS0lFACKg1CkEJlLM9kiFS UnusJnjGWMxLh8bGssnolJIALognhy6s8Q5eVHbpxw2AvlFhFBFAAAsBz3n0sdT6 N4XfFdsS4XggLVJiE1iU0ScJZ1pKKKZmEnFIvHs3j1cse/Lrj1Iyb7icBPLMxXZc Zme6qhITFlcFET7JghM8bhjGalufbUEdzIhnKXOZMYt1j9Yebq9Tvyz0unPVyuf8 XsxiMIqILtJnxBEV3aYy6kRNY8ykYzPOU/x0jGoTPqY4RzNPPn18sprpx/Ujo5ZT eUu2HRiHSMYjwvZJzxjvLll8iI4iLYnq55dopP3nvKx02owpqMFjGl1hag7KhcFw WkzPoufReR+x+x+x+xUpWXs/Y/Y/b2XkbSbzHg/JPpd4N8ZXaPa3BwVCTjBqk4lJ SUc+1vJdq8LGULf2WcHBRyAqFQlGqVJSAUUJMFJRzErtKxnKxnHldonyvCBQlFFJ S3MEZSuxtC3ErSUUchZYKCVBRRzAWWWsFgUlKILCngmaZnskkE9kRRnHHWZ+1soB fCT3WOyTLh1Z/ZgWO7vh2aFRYJQVFKIJEBQAGNE0NU1NUqTmPK3kbZLt9G0LGV+V 2+12XYuJNYlJwZnBJxlmYSikpccph1x6kT3b4lKoKSYnwkZTHdq7AAJLuEau4c8s a5ajnFcZ4FnsXw55yxfLrh+scuXW6tOXS6c9TK57PZERhERB/tnnLiOzUY0meePT xvKXHbqdaeP1wdsOnGMcR/Vyzxwi5mnDP5GWfHTj+ph0MspvObl3x6eOMdm6hMs8 ce8uOfyYj/GLc56nUz+iOnM97bx6UNxhENRjEeFoALAr6K+hQ5A/oABwcFQkxBrB OMJpCaGhUwXku0wRn9LvC7QcFQUmpraUlHK3MFrcLf2X7OCjkuSwAqJScTWkKKKQ oJhKSijmFuYWM5XeFuJWCkoEoopKOVuYXY2hbheDhKWkLLUAQopOS1sstbOApKWF JSYuUlme6wTykgTxCRMTFkHkWEDyrMvPnzKFrhF5PTjAACiCgAIoADyRll7lfyZx 5WOtk1+efML+aP8A6kdXGe8NRnhPldsJ/wC5axnzBr9wmk+k0JxlKleYLn0bLGU+ 2oyXaJSYiU1ScGdZhJhmlxznF0jqRPduKkVJiJYmKaiVtUAlOy907S1MXDMR4O0t FcJPEOWXMmGPNr1ctYcen056uVz2euIjGKgSraiKcur14xnXHnP0x0+hlnlv1Zuf T0cYxzxEPPn8m516cbSmPQy6k7dSZ/09GHTjGOIa4jy5dTr44+eXHLrZ5/4xUJHT yym5mXTHoxDpGMQ1QFlnJQtAAWWWWCWWKAAiioWqUTEJqapqVJyXK7LtBcLwlJRS alUclrcLf2FlQVJclgKn8KSiYSgoQKSrJhKKk59rtML+T3C7RK3AUAlFFJRytzBG Ursu0FwvBSFFlllqhRRQUJa2WsSsBDMyz5ahJSSFY6s1hMuPx8/31l6JhChTtCQr Gc8S888kQTDXS7vQpAAABYAAAA8tJS1SFEwlFHMeSJmPLUZ5R5WOrnHlY68+Yajr RPeFjqYSu2E+VqJ8wa+k1mDktdvtYzauJScYljLpszhMMdm8Mpxnvw645xk0klWz ONLEqACdlnsRJSTysdljszlLFW1Mxji4c9bP6enHGMIqFO69nn6nWy6mX4+l/cm+ j0MenF958zK9Xr4dKOZ59PPEdX5XOV4Yevb09Lo4dOKiIdJmMYuXDqfKxjjHmXCc up1J9N4dGe8u2PTjFuvooqAVBUFCiiikmClqEqFpKWivooqCiioRSijkABRC1Sgp KKK+y5LWy4CoSjVKmC5Wy1LCijksFEKhKNZQooSrCikoopF2n2u8wsZxK3B/oAJS iikoW5Nphdl2guPalCUHJZCglANR2DtDE9iFSUWBx+TNYxHtw6c65xL1zlEzSiEL PZI7rLl1eMXGAdOlHLvCLYAAigAACoDhSVS0lfRSVBRSUtJSTBSUtCc+2ozyjtLU dbLy1HWjzDUdTCfo/We0rrPiUqYIyluMrXiWMsInsxONMTEw3h1Jju7Y5Rkdjuk4 kT4U7gvdmVgniSBTtDnPMp/3fUMZxPUyr/th2wxjGOy95WiZjGLlwynPr5Vjxh79 u2GGPTxqIcOv8m5/H0o2z/8AS9H4vO/VnbL/ANPTNYxzxEPL1fm4xOuEbS5R+XrT eVxHp2w+PEcy6xER2hqgVAVClAsstNiyy5LkssssssLOS5LL+iyy4W4AAALLP6CX JZwtJQi/0stbVKNYTVKk5WwsuVuJAuiziQVApNSpQoolBKKKKSYLmGoymFjP6W4n yd/IAAhRSCxMrtJstxKiAclrYlETTXkyljIiFlPKeVIeb5M3nXpydehlM9Tl6JEW iSCZcetPZy7LR2delHFusEBYEyBYBB3AAAFeWOr7hqOpj6WM8JX9Z7SUmpqTDNFF JSTBQVZMJRRSUcwsZZR2lvHrZR3bjq4z3hqJxntJz7WziUywticKSJmOzeGe3DpE HJSWoCTFrBPZMVmanlzyzm6xdMZuGM+OzOOMzHPl0xwr/S91jgmYxi5cqnqzzxj/ AO3WZx6ePqIebLPqdedcOMfMu3R6OPSjiOfMr1uvh0sbmeXhy6nW+VNRFYPR0fi4 YRc93oiIjtFAAFwohcJZsXPouTkqfZX2V9lfZX2UtJRRRr9lLUnJycpyocKhSalS cwXK7fRtC3HsFQooE4ko5LWziSoKSpJkstbFThKKOwBZalBclgqUBwUlFJMFFCQS hRSUvMG0+139wsZRK3AAAUipQcrcllrcLacBQQ1CZd2Z5WIJZIhZXw8Wc7ZzLLr8 Wt5eiRFhPKpLh1JvJkSXfpR+rahAAAFgAABYrx6pOKVJzBtl7ajPL2v5cvKx1fcN R1cfKxnjK1E9pNU1KKSkKSikoopKZmFiZhYzmJ7ukdb3DcTjPMS3GU+V4ljPFymJ xnh1xz4i24lJlm+WolS+SYEnhYZjKpTLHLL6ajCIik154SbaiYW7WCZrlit5ue3p rLKMIcdMurN5cY+nfGIxxrtDzdf5fM4dKNsnPpfFyzy36039PZjhjhFRFKTIACWW clFFFLX2RBQUUAcioH9P6cnJcll/Rf0cHB/SjlUCokpNUqYW5g2ldvo2hYmJFQoO RFqSywqEr7KmC6LUOT/ZRMJUgHNlrYFJdLYWcH9OS0WkmCkooopApKKKC5hYzlYz iViYAAAAEKXmCyyJbjLhmZtGklmVgTqTWEy8f2jr8XH95l6APCKzMvPPMygU9OHE KvkRQAA8gAFAAryAVBUFQmqUk4pUtRMx5XfKPKx1coX8v01HVifCxnjK3jPkqPZS ak4pRSUkwk4mqTCctRnMOmPVie/DrExKThEs5YTXHdOlllHGUOtXyVCUvZmcqT8k dkjqctXOSxaxEd2vCEwyzlHNrEtXcpKzOsfbMYXO2XdrPPHp43lLzTPV+RNY/rh/ 7duj0MOlHEc+3VAsC0AsLLTaI8m8Qm/0bz6TeTbI2yNsi8vZtkbZey8jbL2bZezf I3ld59Lv9G0Lce1s/oHBwCdjlbL+i4kC5W/pO5UEwmqUXKxkuy3EnCoUHKfwVFAr 7EtUULCjshQWRJaiCkAf0LBKKSYCikVCkopKXlbkjL6XaJW/sACAAkCClnsRCz2Z lO6xA5/ImsK9vMj0/GxrC/boQCeVYzmsZcChYi5h6MewtAAAAAACoqK8cTHtbtRF SYEWioKhKNWdSipJ49rGWXtqOplB+WWo6seljqY+l2xnytRPlNfRqk4s6pRraReM 8O2Gd/7dIy9wt4y5x1McctZay6keGom4c879pETMe1jpRdy6RjHpahEnLHH/ACmm Z63TiajKzp9fDKat0uJ7STCUmUccMY5TE1LdkcymWdRWMXLGPR2nbqTcu0VEVBdg CWkyX9FgCV9mv2upqampqampqUV9GpRMJRRSUUUtJXJytz7XaTb6XaJLj2v9AOBK OV5LLiT+hycHBSapUnK7TCxktlqJMAAgpYCBa2WQFJQWWLygB3U/icKAnBRQlFAh S0kwUVZRZaxksTEqlCoCoQsQSQT2RGiHn+TN504Hp7OnFYRCgSQTLl1J/VyBrDmX fEUAAWEpUAABQEfHicq/yWM+pHOzWPyMvPMtx8iI7w1/1GHeeGo6+E9pa3xmf8oW 4nysTBIFEHkkJQopNSpSpOYWMp9kZ5RPdqOrMH5JnwsZwtx7OJJwyn/FrHLLHjKG riexOETN0ulEYzbWkS1HHaAlGer1Y6eMzMvldbrZ9TKZvhehEzMzPiGMs5xuYl6P gdf/AJJjKeJfTjt7SYRJxtmte694XGPUNWFlF0kymycyUv8ADkq/JRSlhZZ/S/sC yz+nK3IJwUUUUlFFFCUtFFILtJt9LtBcKAUlHYuVsuD+nIFJOJScwsZTCxktxJwH gooApD+lqUUUgLYCUUnK2XYqC8pQpYAIqUUkwAUUUhRQLcmy2ogENJPdpmUI7qdo t4+pN5zLNLhF5xD2CBJCTLl1eac+wOnSh2glFACygVAC1EBQHytfTM4/SRjfdJwi /aaxM0k4eu6azjSxOceZbx6uccNx8mYnmG4+Tj5ajrYT5ajqYz5hqMo9tXEwnAsp SSRCknFFFJUJMcrS0mrGUTjzEuWfyurE1HDeHzJ7Zxb0dOcc4vGeHaLpuCuVTKYj ylxPljqdTHGLmXjy+V1MpnXsxOPU6s/sn4scf8soYz6uOEThhzfl5pi/K4zrPHd6 ul87qY1Hh9Po9SOr04yapKpMsbhm6aiVO69kmU5kr2cFgcgFLRRQUHBRRUFJr9rU nJylytl/RZalgioUTBRSUFFJFrcm0my7RK3HsP4UlHJzC2XAWWVBSUlcnMLtMLGS xIqFHJZwIqcwtnElJVKgLYUlFJUl0t2CooknIthRSKhQUgBQBQUBa2Wtr4RpmUlY gnumc1hMvF3O7p8eLzvw9MgJPKxHDMuGc/syqOvSjh1AAtRFpFQXyigQQAD5+rOt JOJqzOH0a1H2mWNpMT5Ii+6axfEMzHJrHhMsaX9o7W1HVyiLtqPkZL/1Ux4bj5OP lrHr4Sv5cZnvDcZx7XaJWJgRaShYXszMyxM255YRLjOON1w+l8XoxhhE+3eYiGZz wjvlDh1flYY8Y5PPl8vm5zcsvl4zPeSflcVM0xPysfV/7TH5MeIiFy6+0cZU5ZZT kz4I7JXJX279H5OXRnieH0PjfMx6uUYzxL1SlJlHDES1E2szCdziCzmSpWMTVago o4ODg4ODgOCiigoKKSpOVSzgqAoqTkLFA/pQhQhRRMJSUtz7Nphd/ojOJauPZxJS UVMFytwcHJYUkwUi3MGy3C2WXAUiglFFytnBSAChMWlIXK2BElioBE+1tU7lIBUB QACAFFCw1EcKwd5WjvJlFxUvL1sNMo9Ob0fGj9bdp7oCKxMvPM8yCdnfpdnQABQh FQFAAAB4tUnGU0k1TWUiJsnG01NTVmcDRJwScZgnG47MzjNcpGJ+O+f/ANMxhM8L pMf7P2jy1tlEXc2uPVzj/wDrcfIn0v8A1ER3hrHr4y1+XCfJPWxxhw6ny8rrFzy+ RnFc29Xxut+WJiY5bnh5+tnTyzlO9vVj/wDIdTDGMYjsxn87q5+aefPqZ5T/AJSx Nz3lKldZSYXVNVi2tljJZyifBV9ljHlJipXDLTK8ZfU+L8uM4jHLu9d3Fwykwzc9 moiFKOCcojyz+SE/L9J+SfSTnkm2fsvOfJ+3srL2VPuSp9n7ez9vaft7lq8vZtn7 N8yM8l/Jl6WOp9L+SF/JC7xKxMFwtiUUUUUihSAchaiKIUUlFFJSTCUvMLtKxn9L GULxJSTByWcSv9AKSiYSpW5LX+rcwWcSUAcHdDn2X7U/0gBdLZ3KhKSi6F7oRa2C oFlr3CSkoqhUoAAEUhqCWSF8BDj8rw8/09nRx1wiFPIeCIJc85rGXBeUHfpxxDfY FhFpClAhBUWARQIIBx0TRJwTVNTRNScWdDVNTU1TX6TVdIZ05XSWdITXumhr9Lp7 Z0i5qGdfpZ6UT2TSYmmZwnsn46i5/wDDMYbZRHt9HpdPTGIiKc+tnUTEd3kyuZ5l ik05JxTU1XUqbTVZx5IxtJxo1KNSImOy1MET7W49LjlUvq/D6sZ9Op7w9FJMMZY+ U5juu0z2grKfKaTPlfxwukEYQusJquv0alFJX0V9FR6SioKKNTVNfo1TQ1NSl5jy RlK7yRn9NRnBGULZa2FFFFFFIAUFnBwtIfwKKSkmEopKKmFuYXf3CxlErwtJQWcA BwUlHK2cLyWFFFFAFHKL/TlFopFCikoBaQui4XgKKABUooAooQFpYhWZCAoZ6uO0 OGWP/JUQ9McRAUEkJk59Ts5UtFJEXLvjFQ0AKiiCgAipwKADFFFJqawmqamqaM6k 4pqamqapqTga8JqTimqarqmpOCTjwmqTjUWxOMy38bp/8kzPh26+VYvJzMTzbNLO DMYLozrNLqa/+TWfJGKa8duV14TWZNTU1hNDU1NTVvp5ZYTcS+j8TrT1IqZ5eiUo pjLjskZe12NljKScvo3g2g2j2u0e1uPZZYcHBRRRRSVJyfw/hwVBSalJqUUUXJcr t9LGRf2trZYLSfwooQUAKSlQKKSkpKNUpYymGt/axlErxJRQBSUqBQXS8H+pLlbA pKKouiwCoKkv6CjkstatKSlCikpSy1SYAFOSwKQCgpqIEnuiwT3FRymL6t+nUBDw kuXU7sxCyUYxy7R2KFRQAAAAAABAKKKKSikonFNTVNU1TU1NU1TU1TU1KKScZTVJ xTTy30YqZY6kTM1Kfi/W2PxrpfhJw8JpSacJOBoa8mvKTHJqsYpOJOPBqUmpqamp q30s56eVw+h0uvjnEXPLr3SnDrZasxcxytJMFTHaT8meMeyPkY+cWo63TlYywntK 1j7Nfs1nxJWUG2ULGc+j8n0u8LGUe1uPagHAUUlFFSH8Cik1KKTUpYuC5L+lstbL LUApKOQAVKKEopJgopJhKOYWMphqM/cLcFWUclgUUAUcligolFJyoBUJRyWqdlAp KAWkoFCigAAKAWy0FQBnHH9plqgCRJcsuZSihcY5dYUAEpQAAAAAAQAooooopKKK KSiknE1TU1Sik1NUo1TUnFIiuWqjKF14picGdZJxtmcaScTWKTU1TWTVNaNTU1Wc fpNCcTUnFNTVdCInGYl7el1YnGLnknq4zNQzrtNy1UFJOKTCTDnl04liOhMz9O+O ERFQswURceVjKV2+i4kqPZqaprJzC7SsZyu/0u0Fx7X+gKBSUUUVIHBSUUUlCliw XK2ABRQABQlFFJRSUUlHMNRlK7LExJRQAlFAAoCglHIKh/CjkAF4SigApKXksUpB QEURRIUAlmMoumu4CKzLnXIUSuEcugAAAAAAAAKlBRQAAAJRRRRRSUUapqmpOKal JMJVLysGtpODM4GspqmpqmhqapOKximpqak4JqarrCak4mpTp0cPMusxw4zjMSRO WPlrHqeJdeJ7MziarRRRSUUUUUUcrcrf0cFQamqalHK7Su30bR6W4Xj2HIBQUUUV ICUUUUcgLyWWoCUUcgKIUUUlFJRRSUvKxlK7BRQKlFFAUFigBSCgJS0CKBSUKgUU CgAABISog5T3bjKoaiYlUkJSezFFFJMNYQ2AAAAAAAAAUFAAAACKhRRRRRRRSUUa pqmqalFqtJUGrOhqk4mqUtJqampqa/RqapquqRhbcdOIbqoSWMoZnG01aiZjs3Gf tdoO6lFFFFFFFFJRRRRRytyX9LwVBqmpqUclytrcHACgBSUqKJRRQALZYAFFABQB SUUUlFFHK2XClAAAFABCoUAAAABQAFACoFAqKAhl2c6KXHu6AiZdkpKWkprGFopR FSlAEUAARQAAABFEVAAAKKKKKKAKKTU1TU1KkAoqDWDWE1NTU0NTQ1NV1gqFSWZT WzU1NTU1KWpOVv6WxSiiiiiikoooooooXkDgoopKWjkF4ABRAoACgABQBAUAEKKK KSiilLAoAFBBQAAAAAARQAQUAAAEyZoopfLVgkpRQUsKAAAAAAAAAAAAAFAUUUUU UUUUUUUAAAUUUmpRRRQFFFFFAJRRqUUUUUUUUUUampRSgBRRRRRRRRRRRRRQKBRS UUUoAABRQAUAFAAAFFABRRRRQFFFAFFFAUUAUACoUUFAABQAUAAUAoIqSlFFFLEK gUUUUAAoAioqCoKICiCgAAAAAAAAAAAAAAAIogKAAAAIoAigAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAD//Z ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: image/gif Content-Location: http://bits.wikimedia.org/skins-1.5/monobook/bullet.gif Content-Transfer-Encoding: Base64 R0lGODlhBQANAIAAAGOMnP///yH5BAEAAAEALAAAAAAFAA0AAAIJjI+pu+APo4Sp ADs= ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: image/png Content-Location: http://bits.wikimedia.org/skins-1.5/monobook/external.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZ zP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcl y0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4 AVnsAZubxDVmAAAAAElFTkSuQmCC ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: image/gif Content-Location: http://bits.wikimedia.org/skins-1.5/monobook/user.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQAKU5AFtJMlpJNFxIMU5OTm2XH3aIVJNkK5FmMJZnPbt6NIZzXId0 XpVwQZRzR5p7VI1+baZ3Tdl+Kt1/LIO2JYe5K4q8M4idYZKBbJK/QLqddZfDR5rF TZ/HVqfMZanNacKVWuKVQ+ejVuelVu21bPC/e5+XjKOjo7rXhr3aiM+1kNi4icff m8rio83jqNHmrtXotOPEl/HDg/LKjvfaq/ngut3Z1Nvrwd/tx/vqz/////////// /////////////////yH5BAEAAD8ALAAAAAAQABAAAAZiwJ9wSCwafxfF5VhUNBgH AVO4cKRgHwNg+sjQZrFEYFpSyUihyGD6M4lAEgRbCKnPTaYRjjRYH00vLAUkFhoV fkQmNy4rJxYcGBQTiEImNi0TKB0bHgSTRX2hon1zpaanP0EAOw== ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=main.css Content-Type: text/css; name=main.css Content-Location: http://bits.wikimedia.org/skins-1.5/monobook/main.css?257z23 Content-Transfer-Encoding: 8bit /* ** MediaWiki 'monobook' style sheet for CSS2-capable browsers. ** Copyright Gabriel Wicke - http://wikidev.net/ ** License: GPL (http://www.gnu.org/copyleft/gpl.html) ** ** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John ** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher, ** Michael Zeltner and Geir Bækholt) ** All you guys rock :) */ #column-content { width: 100%; float: right; margin: 0 0 .6em -12.2em; padding: 0; } #content { margin: 2.8em 0 0 12.2em; padding: 0 1em 1em 1em; position: relative; z-index: 2; } #column-one { padding-top: 160px; } #content { background: white; color: black; border: 1px solid #aaa; border-right: none; line-height: 1.5em; } /* the left column width is specified in class .portlet */ /* Font size: ** We take advantage of keyword scaling- browsers won't go below 9px ** More at http://www.w3.org/2003/07/30-font-size ** http://style.cleverchimp.com/font_size_intervals/altintervals.html */ body { font: x-small sans-serif; background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat; color: black; margin: 0; padding: 0; } /* scale back up to a sane default */ #globalWrapper { font-size: 127%; width: 100%; margin: 0; padding: 0; } /* general styles */ table { font-size: 100%; color: black; /* we don't want the bottom borders of

s to be visible through floated tables */ background-color: white; } fieldset table { /* but keep table layouts in forms clean... */ background: none; } a { text-decoration: none; color: #002bb8; background: none; } a:visited { color: #5a3696; } a:active { color: #faa700; } a:hover { text-decoration: underline; } a.stub { color: #772233; } a.new, #p-personal a.new { color: #ba0000; } a.new:visited, #p-personal a.new:visited { color: #a55858; } img { border: none; vertical-align: middle; } p { margin: .4em 0 .5em 0; line-height: 1.5em; } p img { margin: 0; } hr { height: 1px; color: #aaa; background-color: #aaa; border: 0; margin: .2em 0 .2em 0; } h1, h2, h3, h4, h5, h6 { color: black; background: none; font-weight: normal; margin: 0; padding-top: .5em; padding-bottom: .17em; border-bottom: 1px solid #aaa; } h1 { font-size: 188%; } h1 .editsection { font-size: 53%; } h2 { font-size: 150%; } h2 .editsection { font-size: 67%; } h3, h4, h5, h6 { border-bottom: none; font-weight: bold; } h3 { font-size: 132%; } h3 .editsection { font-size: 76%; font-weight: normal; } h4 { font-size: 116%; } h4 .editsection { font-size: 86%; font-weight: normal; } h5 { font-size: 100%; } h5 .editsection { font-weight: normal; } h6 { font-size: 80%; } h6 .editsection { font-size: 125%; font-weight: normal; } ul { line-height: 1.5em; list-style-type: square; margin: .3em 0 0 1.5em; padding: 0; list-style-image: url(bullet.gif); } ol { line-height: 1.5em; margin: .3em 0 0 3.2em; padding: 0; list-style-image: none; } li { margin-bottom: .1em; } dt { font-weight: bold; margin-bottom: .1em; } dl { margin-top: .2em; margin-bottom: .5em; } dd { line-height: 1.5em; margin-left: 2em; margin-bottom: .1em; } fieldset { border: 1px solid #2f6fab; margin: 1em 0 1em 0; padding: 0 1em 1em; line-height: 1.5em; } fieldset.nested { margin: 0 0 0.5em 0; padding: 0 0.5em 0.5em; } legend { padding: .5em; font-size: 95%; } form { border: none; margin: 0; } textarea { width: 100%; padding: .1em; } input.historysubmit { padding: 0 .3em .3em .3em !important; font-size: 94%; cursor: pointer; height: 1.7em !important; margin-left: 1.6em; } select { vertical-align: top; } abbr, acronym, .explain { border-bottom: 1px dotted black; color: black; background: none; cursor: help; } q { font-family: Times, "Times New Roman", serif; font-style: italic; } /* disabled for now blockquote { font-family: Times, "Times New Roman", serif; font-style: italic; }*/ code { background-color: #f9f9f9; } pre { padding: 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em; } /* ** the main content area */ #siteSub { display: none; } #jump-to-nav { display: none; } #contentSub, #contentSub2 { font-size: 84%; line-height: 1.2em; margin: 0 0 1.4em 1em; color: #7d7d7d; width: auto; } span.subpages { display: block; } /* Some space under the headers in the content area */ #bodyContent h1, #bodyContent h2 { margin-bottom: .6em; } #bodyContent h3, #bodyContent h4, #bodyContent h5 { margin-bottom: .3em; } #firstHeading { margin-bottom: .1em; /* These two rules hack around bug 2013 (fix for more limited bug 11325). When bug 2013 is fixed properly, they should be removed. */ line-height: 1.2em; padding-bottom: 0; } /* user notification thing */ .usermessage { background-color: #ffce7b; border: 1px solid #ffa500; color: black; font-weight: bold; margin: 2em 0 1em; padding: .5em 1em; vertical-align: middle; } #siteNotice { text-align: center; font-size: 95%; padding: 0 0.9em; } #siteNotice p { margin: 0; padding: 0; } .catlinks { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; margin-top: 1em; clear: both; } /* currently unused, intended to be used by a metadata box in the bottom-right corner of the content area */ .documentDescription { /* The summary text describing the document */ font-weight: bold; display: block; margin: 1em 0; line-height: 1.5em; } .documentByLine { text-align: right; font-size: 90%; clear: both; font-weight: normal; color: #76797c; } /* emulate center */ .center { width: 100%; text-align: center; } *.center * { margin-left: auto; margin-right: auto; } /* small for tables and similar */ .small, .small * { font-size: 94%; } table.small { font-size: 100%; } /* ** content styles */ #toc, .toc, .mw-warning { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; } #toc h2, .toc h2 { display: inline; border: none; padding: 0; font-size: 100%; font-weight: bold; } #toc #toctitle, .toc #toctitle, #toc .toctitle, .toc .toctitle { text-align: center; } #toc ul, .toc ul { list-style-type: none; list-style-image: none; margin-left: 0; padding-left: 0; text-align: left; } #toc ul ul, .toc ul ul { margin: 0 0 0 2em; } #toc .toctoggle, .toc .toctoggle { font-size: 94%; } .mw-warning { margin-left: 50px; margin-right: 50px; text-align: center; } /* images */ div.floatright, table.floatright { clear: right; float: right; position: relative; margin: 0 0 .5em .5em; border: 0; /* border: .5em solid white; border-width: .5em 0 .8em 1.4em; */ } div.floatright p { font-style: italic; } div.floatleft, table.floatleft { float: left; clear: left; position: relative; margin: 0 .5em .5em 0; border: 0; /* margin: .3em .5em .5em 0; border: .5em solid white; border-width: .5em 1.4em .8em 0; */ } div.floatleft p { font-style: italic; } /* thumbnails */ div.thumb { margin-bottom: .5em; border-style: solid; border-color: white; width: auto; } div.thumbinner { border: 1px solid #ccc; padding: 3px !important; background-color: #f9f9f9; font-size: 94%; text-align: center; overflow: hidden; } html .thumbimage { border: 1px solid #ccc; } html .thumbcaption { border: none; text-align: left; line-height: 1.4em; padding: 3px !important; font-size: 94%; } div.magnify { float: right; border: none !important; background: none !important; } div.magnify a, div.magnify img { display: block; border: none !important; background: none !important; } div.tright { clear: right; float: right; border-width: .5em 0 .8em 1.4em; } div.tleft { float: left; clear: left; margin-right: .5em; border-width: .5em 1.4em .8em 0; } img.thumbborder { border: 1px solid #dddddd; } .hiddenStructure { display: none; } /* ** classes for special content elements like town boxes ** intended to be referenced directly from the wiki src */ /* ** User styles */ /* table standards */ table.rimage { float: right; position: relative; margin-left: 1em; margin-bottom: 1em; text-align: center; } .toccolours { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; } /* ** edit views etc */ .special li { line-height: 1.4em; margin: 0; padding: 0; } /* ** keep the whitespace in front of the ^=, hides rule from konqueror ** this is css3, the validator doesn't like it when validating as css2 */ #bodyContent a.external, #bodyContent a.external[href ^="gopher://"] { background: url(external.png) center right no-repeat; padding: 0 13px; } .rtl #bodyContent a.external, .rtl #bodyContent a.external[href ^="gopher://"] { background-image: url(external-rtl.png); } #bodyContent a.external[href ^="https://"], .link-https { background: url(lock_icon.gif) center right no-repeat; padding: 0 16px; } #bodyContent a.external[href ^="mailto:"], .link-mailto { background: url(mail_icon.gif) center right no-repeat; padding: 0 18px; } #bodyContent a.external[href ^="news://"] { background: url(news_icon.png) center right no-repeat; padding: 0 18px; } #bodyContent a.external[href ^="ftp://"], .link-ftp { background: url(file_icon.gif) center right no-repeat; padding: 0 18px; } #bodyContent a.external[href ^="irc://"], .link-irc { background: url(discussionitem_icon.gif) center right no-repeat; padding: 0 18px; } #bodyContent a.external[href $=".ogg"], #bodyContent a.external[href $=".OGG"], #bodyContent a.external[href $=".mid"], #bodyContent a.external[href $=".MID"], #bodyContent a.external[href $=".midi"], #bodyContent a.external[href $=".MIDI"], #bodyContent a.external[href $=".mp3"], #bodyContent a.external[href $=".MP3"], #bodyContent a.external[href $=".wav"], #bodyContent a.external[href $=".WAV"], #bodyContent a.external[href $=".wma"], #bodyContent a.external[href $=".WMA"], .link-audio { background: url("audio.png") center right no-repeat; padding: 0 13px; } #bodyContent a.external[href $=".ogm"], #bodyContent a.external[href $=".OGM"], #bodyContent a.external[href $=".avi"], #bodyContent a.external[href $=".AVI"], #bodyContent a.external[href $=".mpeg"], #bodyContent a.external[href $=".MPEG"], #bodyContent a.external[href $=".mpg"], #bodyContent a.external[href $=".MPG"], .link-video { background: url("video.png") center right no-repeat; padding: 0 13px; } #bodyContent a.external[href $=".pdf"], #bodyContent a.external[href $=".PDF"], #bodyContent a.external[href *=".pdf#"], #bodyContent a.external[href *=".PDF#"], #bodyContent a.external[href *=".pdf?"], #bodyContent a.external[href *=".PDF?"], .link-document { background: url("document.png") center right no-repeat; padding: 0 12px; } /* for rtl wikis */ .rtl #bodyContent a.external { background-position: left; padding-right: 0; } .rtl a.feedlink { background-position: right; padding-right: 16px; padding-left: 0; } /* correction for ltr wikis */ .ltr #bodyContent a.external { padding-left: 0; } /* disable interwiki styling */ #bodyContent a.extiw, #bodyContent a.extiw:active { color: #36b; } #bodyContent a.external { color: #36b; } /* ** Structural Elements */ /* ** general portlet styles (elements in the quickbar) */ .portlet { border: none; margin: 0 0 .5em; padding: 0; float: none; width: 11.6em; overflow: hidden; } .portlet h4 { font-size: 95%; font-weight: normal; white-space: nowrap; } .portlet h5 { background: transparent; padding: 0 1em 0 .5em; display: inline; height: 1em; text-transform: lowercase; font-size: 91%; font-weight: normal; white-space: nowrap; } .portlet h6 { background: #ffae2e; border: 1px solid #2f6fab; border-style: solid solid none solid; padding: 0 1em 0 1em; text-transform: lowercase; display: block; font-size: 1em; height: 1.2em; font-weight: normal; white-space: nowrap; } .pBody { font-size: 95%; background-color: white; color: black; border-collapse: collapse; border: 1px solid #aaa; padding: 0 .8em .3em .5em; } .portlet h1, .portlet h2, .portlet h3, .portlet h4 { margin: 0; padding: 0; } .portlet ul { line-height: 1.5em; list-style-type: square; list-style-image: url(bullet.gif); font-size: 95%; } .portlet li { padding: 0; margin: 0; } /* ** Logo properties */ #p-logo { top: 0; left: 0; position: absolute; /*needed to use z-index */ z-index: 3; height: 155px; width: 12em; overflow: visible; } #p-logo h5 { display: none; } #p-logo a, #p-logo a:hover { display: block; height: 155px; width: 12.2em; background-repeat: no-repeat; background-position: 35% 50% !important; text-decoration: none; } /* ** Search portlet */ #p-search { position: relative; z-index: 3; } input.searchButton { margin-top: 1px; font-size: 95%; } #searchGoButton { padding-left: .5em; padding-right: .5em; font-weight: bold; } #searchInput { width: 10.9em; margin: 0; font-size: 95%; } #p-search .pBody { padding: .5em .4em .4em .4em; text-align: center; } #p-search #searchform div div { margin-top: .4em; font-size: 95%; } /* ** the personal toolbar */ #p-personal { position: absolute; left: 0; top: 0; z-index: 0; } #p-personal { width: 100%; white-space: nowrap; padding: 0; margin: 0; border: none; background: none; overflow: visible; line-height: 1.2em; } #p-personal h5 { display: none; } #p-personal .portlet, #p-personal .pBody { z-index: 0; padding: 0; margin: 0; border: none; overflow: visible; background: none; } /* this is the ul contained in the portlet */ #p-personal ul { border: none; line-height: 1.4em; color: #2f6fab; padding: 0 2em 0 3em; margin: 0; text-align: right; list-style: none; z-index: 0; background: none; cursor: default; } #p-personal li { z-index: 0; border: none; padding: 0; display: inline; color: #2f6fab; margin-left: 1em; line-height: 1.2em; background: none; } #p-personal li a { text-decoration: none; color: #005896; padding-bottom: .2em; background: none; } #p-personal li a:hover { background-color: white; padding-bottom: .2em; text-decoration: none; } #p-personal li.active a:hover { background-color: transparent; } /* the icon in front of the user name, single quotes in bg url to hide it from iemac */ li#pt-userpage, li#pt-anonuserpage, li#pt-login { background: url(user.gif) top left no-repeat; padding-left: 20px; text-transform: none; } #p-personal ul { text-transform: lowercase; } #p-personal li.active { font-weight: bold; } /* ** the page-related actions- page/talk, edit etc */ #p-cactions { position: absolute; top: 1.3em; left: 11.5em; margin: 0; white-space: nowrap; width: 76%; line-height: 1.1em; overflow: visible; background: none; border-collapse: collapse; padding-left: 1em; list-style: none; font-size: 95%; } #p-cactions ul { list-style: none; } #p-cactions li { display: inline; border: 1px solid #aaa; border-bottom: none; padding: 0 0 .1em 0; margin: 0 .3em 0 0; overflow: visible; background: white; } #p-cactions li.selected { border-color: #fabd23; padding: 0 0 .2em 0; font-weight: bold; } #p-cactions li a { background-color: #fbfbfb; color: #002bb8; border: none; padding: 0 .8em .3em; position: relative; z-index: 0; margin: 0; text-decoration: none; } #p-cactions li.selected a { z-index: 3; padding: 0 1em .2em!important; background-color: white; } #p-cactions .new a { color: #ba0000; } #p-cactions li a:hover { z-index: 3; text-decoration: none; background-color: white; } #p-cactions h5 { display: none; } #p-cactions li.istalk { margin-right: 0; } #p-cactions li.istalk a { padding-right: .5em; } #p-cactions #ca-addsection a { padding-left: .4em; padding-right: .4em; } /* offsets to distinguish the tab groups */ li#ca-talk { margin-right: 1.6em; } li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print { margin-left: 1.6em; } #p-cactions .pBody { font-size: 1em; background-color: transparent; color: inherit; border-collapse: inherit; border: 0; padding: 0; } #p-cactions .hiddenStructure { display: none; } #p-cactions li a { text-transform: lowercase; } #p-lang { position: relative; z-index: 3; } /* Override text-transform on languages where capitalization is significant */ .capitalize-all-nouns .portlet h5, .capitalize-all-nouns .portlet h6, .capitalize-all-nouns #p-personal ul, .capitalize-all-nouns #p-cactions ul li a { text-transform: none; } /* TODO: #t-iscite is only used by the Cite extension, come up with some * system which allows extensions to add to this file on the fly */ #t-ispermalink, #t-iscite { color: #999; } /* ** footer */ #footer { background-color: white; border-top: 1px solid #fabd23; border-bottom: 1px solid #fabd23; margin: .6em 0 1em 0; padding: .4em 0 1.2em 0; text-align: center; font-size: 90%; } #footer li { display: inline; margin: 0 1.3em; } #f-poweredbyico, #f-copyrightico { margin: 0 8px; position: relative; top: -2px; /* Bump it up just a tad */ } #f-poweredbyico { float: right; height: 1%; } #f-copyrightico { float: left; height: 1%; } .mw-htmlform-submit { font-weight: bold; padding-left: .3em; padding-right: .3em; margin-right: 2em; } /* js pref toc */ #preftoc { margin: 0; padding: 0; width: 100%; clear: both; } #preftoc li { background-color: #f0f0f0; color: #000; } #preftoc li { margin: 1px -2px 1px 2px; float: left; padding: 2px 0 3px 0; border: 1px solid #fff; border-right-color: #716f64; border-bottom: 0; position: relative; white-space: nowrap; list-style-type: none; list-style-image: none; z-index: 3; } #preftoc li.selected { font-weight: bold; background-color: #f9f9f9; border: 1px solid #aaa; border-bottom: none; cursor: default; top: 1px; padding-top: 2px; margin-right: -3px; } #preftoc > li.selected { top: 2px; } #preftoc a, #preftoc a:active { display: block; color: #000; padding: 0 .7em; position: relative; text-decoration: none; } #preftoc li.selected a { cursor: default; text-decoration: none; } #preferences { margin: 0; border: 1px solid #aaa; clear: both; padding: 1.5em; background-color: #F9F9F9; } .prefsection { border: none; padding: 0; margin: 0; } .prefsection legend { font-weight: bold; } .prefsection table, .prefsection legend { background-color: #F9F9F9; } .mainLegend { display: none; } td.htmlform-tip { font-size: x-small; padding: .2em 2em; color: #666; } .preferences-login { clear: both; margin-bottom: 1.5em; } .prefcache { font-size: 90%; margin-top: 2em; } div#userloginForm form, div#userlogin form#userlogin2 { margin: 0 3em 1em 0; border: 1px solid #aaa; clear: both; padding: 1.5em 2em; background-color: #f9f9f9; float: left; } .rtl div#userloginForm form, .rtl div#userlogin form#userlogin2 { float: right; } div#userloginForm table, div#userlogin form#userlogin2 table { background-color: #f9f9f9; } div#userloginForm h2, div#userlogin form#userlogin2 h2 { padding-top: 0; } div#userlogin .captcha, div#userloginForm .captcha { border: 1px solid #bbb; padding: 1.5em 2em; background-color: white; } #loginend, #signupend { clear: both; } #userloginprompt, #languagelinks { font-size: 85%; } #login-sectiontip { font-size: 85%; line-height: 1.2; padding-top: 2em; } #userlogin .loginText, #userlogin .loginPassword { width: 12em; } #userloginlink a, #wpLoginattempt, #wpCreateaccount { font-weight: bold; } /* ** IE/Mac fixes, hope to find a validating way to move this ** to a separate stylesheet. This would work but doesn't validate: ** @import("IEMacFixes.css"); */ /* tabs: border on the a, not the div */ * > html #p-cactions li { border: none; } * > html #p-cactions li a { border: 1px solid #aaa; border-bottom: none; } * > html #p-cactions li.selected a { border-color: #fabd23; } /* footer icons need a fixed width */ * > html #f-poweredbyico, * > html #f-copyrightico { width: 88px; } * > html #bodyContent, * > html #bodyContent pre { overflow-x: auto; width: 100%; padding-bottom: 25px; } /* more IE fixes */ /* float/negative margin brokenness */ * html #footer {margin-top: 0;} * html #column-content { display: inline; margin-bottom: 0; } * html div.editsection { font-size: smaller; } #pagehistory li.selected { position: relative; } /* Mac IE 5.0 fix; floated content turns invisible */ * > html #column-content { float: none; } * > html #column-one { position: absolute; left: 0; top: 0; } * > html #footer { margin-left: 13.2em; } .redirectText { font-size: 150%; margin: 5px; } .printfooter { display: none; } div.patrollink { clear: both; } .sharedUploadNotice { font-style: italic; } span.updatedmarker { color: black; background-color: #0f0; } .previewnote { color: #c00; margin-bottom: 1em; } .previewnote p { text-indent: 3em; margin: 0.8em 0; } .editExternally { border: 1px solid gray; background-color: #ffffff; padding: 3px; margin-top: 0.5em; float: left; font-size: small; text-align: center; } .editExternallyHelp { font-style: italic; color: gray; } .toggle { margin-left: 2em; text-indent: -2em; } input#wpSummary { width: 80%; } /* @bug 1714 */ input#wpSave, input#wpDiff { margin-right: 0.33em; } #wpSave { font-weight: bold; } /* Classes for article validation */ table.revisionform_default { border: 1px solid #000000; } table.revisionform_focus { border: 1px solid #000000; background-color:#00BBFF; } tr.revision_tr_default { background-color:#EEEEEE; } tr.revision_tr_first { background-color:#DDDDDD; } p.revision_saved { color: green; font-weight:bold; } /* noarticletext */ div.noarticletext { border: 1px solid #ccc; background: #fff; padding: .2em 1em; color: #000; } div#searchTargetContainer { left: 10px; top: 10px; width: 90%; background: white; } div#searchTarget { padding: 3px; margin: 5px; background: #F0F0F0; border: solid 1px blue; } div#searchTarget ul li { list-style: none; } div#searchTarget ul li:before { color: orange; content: "\00BB \0020"; } div#searchTargetHide { float:right; border:solid 1px black; background:#DCDCDC; padding:2px; } #powersearch p { margin-top:0px; } div.multipageimagenavbox { border: solid 1px silver; padding: 4px; margin: 1em; background: #f0f0f0; } div.multipageimagenavbox div.thumb { border: none; margin-left: 2em; margin-right: 2em; } div.multipageimagenavbox hr { margin: 6px; } table.multipageimage td { text-align: center; } .templatesUsed { margin-top: 1.5em; } .mw-summary-preview { margin: 0.1em 0; } /* Friendlier slave lag warnings */ div.mw-lag-warn-normal, div.mw-lag-warn-high { padding: 3px; text-align: center; margin: 3px auto; } div.mw-lag-warn-normal { border: 1px solid #FFCC66; background-color: #FFFFCC; } div.mw-lag-warn-high { font-weight: bold; border: 2px solid #FF0033; background-color: #FFCCCC; } .MediaTransformError { background-color: #ccc; padding: 0.1em; } .MediaTransformError td { text-align: center; vertical-align: middle; font-size: 90%; } /* God-damned hack for the crappy layout */ .os-suggest { font-size: 127%; } /* Sometimes people don't want personal tools to be lowercase! */ .no-text-transform { text-transform: none; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=main.css Content-Type: text/css; name=main.css Content-Location: http://bits.wikimedia.org/skins-1.5/chick/main.css?257z23 Content-Transfer-Encoding: 8bit /* ** MediaWiki 'chick' style sheet for PDAs or other small-screen devices. ** Copyright Timwi ** License: GPL (http://www.gnu.org/copyleft/gpl.html) ** ** Loosely based on Monobook by Gabriel Wicke */ body { font-family: sans-serif; color: Black; margin: 0; padding: 0.3em; } a { color: #002bb8; } a:visited { color: #5a3696; } a:active { color: #ffa500; } a.stub { color: #772233; } a.new, #p-personal a.new { color:#ba0000; } a.new:visited, #p-personal a.new:visited { color:#a55858; } img { border: none; vertical-align: middle; } p { margin: 0.4em 0em 0.5em 0em; line-height: 1.5em; } p img { margin: 0; } hr { height: 1px; color: #aaaaaa; background-color: #aaaaaa; border: 0; margin: 0.2em 0 0.2em 0; } h1, h2, h3, h4, h5, h6 { color: Black; background: none; font-weight: normal; margin: 0; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom: 1px solid #aaaaaa; } .editsection { font-weight: normal; } h1 { font-size: 188%; } h1 .editsection { font-size: 53.2%; } h2 { font-size: 150%; } h2 .editsection { font-size: 66.7%; } h3, h4, h5, h6 { border-bottom: none; font-weight: bold; } h3 { font-size: 132%; } h3 .editsection { font-size: 75.8%; } h4 { font-size: 116%; } h4 .editsection { font-size: 86.2%; } h5 { font-size: 100%; } h6 { font-size: 80%; } h6 .editsection { font-size: 125%; } ul { line-height: 1.5em; margin: 0.3em 0 0 1.5em; padding:0; } ol { line-height: 1.5em; margin: 0.3em 0 0 3.2em; padding:0; list-style-image: none; } li { margin-bottom: 0.1em; } dt { font-weight: bold; margin-bottom: 0.1em; } dl{ margin-top: 0.2em; margin-bottom: 0.5em; } dd { line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; } fieldset { border: 1px solid #2f6fab; margin: 1em 0em 1em 0em; padding: 0em 1em 1em 1em; line-height: 1.5em; } legend { background: White; padding: 0.5em; font-size: 95%; } form { border: none; margin: 0; } textarea { border: 1px solid #2f6fab; color: Black; background-color: white; width: 100%; padding: 0.1em; overflow: auto; } /* hide this from ie/mac and konq2.2 */ @media All { head:first-child+body input { visibility: visible; border: 1px solid #2f6fab; color: Black; background-color: white; vertical-align: middle; padding: 0.2em; } } input.historysubmit { padding: 0 0.3em 0.3em 0.3em !important; font-size: 94%; cursor: pointer; height: 1.7em !important; margin-left: 1.6em; } input[type="radio"], input[type="checkbox"] { border:none; } select { border: 1px solid #2f6fab; color: Black; vertical-align: top; } abbr, acronym, .explain { border-bottom: 1px dotted Black; color: Black; background: none; cursor: help; } q { font-family: Times, "Times New Roman", serif; font-style: italic; } code { background-color: #f9f9f9; } pre { padding: 1em; border: 1px dashed #2f6fab; color: Black; background-color: #f9f9f9; line-height: 1.1em; } /* ** the main content area */ span.subpages { display: block; } /* Some space under the headers in the content area */ #bodyContent h1, #bodyContent h2 { margin-bottom:0.6em; } #bodyContent h3, #bodyContent h4, #bodyContent h5 { margin-bottom: 0.3em; } #firstHeading { margin-bottom:0.1em; } /* user notification thing */ .usermessage { background-color: #ffce7b; border: 1px solid #ffa500; color: Black; font-weight: bold; margin: 0.1em 0 0 0; padding: 2px 5px; vertical-align: middle; } #siteNotice { text-align: center; font-size: 95%; padding: 0 0.9em 0 0.9em; } #siteNotice p { margin: 0; padding: 0; } .error { color: red; font-size: larger; } .catlinks { border:1px solid #aaaaaa; background-color:#f9f9f9; padding: 2px 5px; margin: 0.1em 0 0 0; clear: both; } .catlinks { margin: 0; padding: 0; } /* currently unused, intended to be used by a metadata box in the bottom-right corner of the content area */ .documentDescription { /* The summary text describing the document */ font-weight: bold; display: block; margin: 1em 0em; line-height: 1.5em; } .documentByLine { text-align: right; font-size: 90%; clear: both; font-weight: normal; color: #76797c; } /* emulate center */ .center { width: 100%; text-align: center; } *.center * { margin-left: auto; margin-right: auto; } /* small for tables and similar */ .small, .small * { font-size: 94%; } table.small { font-size: 100% } /* ** content styles */ #toc { /*border:1px solid #2f6fab;*/ border:1px solid #aaaaaa; background-color:#f9f9f9; padding:5px; font-size: 95%; } #toc ul { margin-left: 2em; } #toc .toctoggle { font-size: 94%; } #toc .editsection { margin-top: 0.7em; font-size: 94%; } /* images */ div.floatright, table.floatright { clear: right; float: right; margin: 0; position: relative; border: 0.5em solid White; border-width: 0.5em 0 0.8em 1.4em; } div.floatright p { font-style: italic; } div.floatleft, table.floatleft { float: left; clear: left; margin: 0.3em 0.5em 0.5em 0; position: relative; border: 0.5em solid White; border-width: 0.5em 1.4em 0.8em 0; } div.floatleft p { font-style: italic; } /* thumbnails */ div.thumb { margin-bottom: 0.5em; border-style: solid; border-color: White; width: auto; } div.thumb div { border:1px solid #cccccc; padding: 3px !important; background-color:#f9f9f9; font-size: 94%; text-align: center; overflow: hidden; } div.thumb div a img { border:1px solid #cccccc; } div.thumb div div.thumbcaption { border: none; text-align: left; line-height: 1.4em; padding: 0.3em 0 0.1em 0; } div.magnify { float: right; border: none !important; background: none !important; } div.magnify a, div.magnify img { display: block; border: none !important; background: none !important; } div.tright { clear: right; float: right; border-width: 0.5em 0 0.8em 1.4em; } div.tleft { float: left; clear: left; margin-right:0.5em; border-width: 0.5em 1.4em 0.8em 0; } img.thumbborder { border: 1px solid #dddddd; } .hiddenStructure { display: none; } /* ** classes for special content elements like town boxes ** intended to be referenced directly from the wiki src */ /* ** User styles */ /* table standards */ table.rimage { float:right; position:relative; margin-left:1em; margin-bottom:1em; text-align:center; } .toccolours { border:1px solid #aaaaaa; background-color:#f9f9f9; padding:5px; font-size: 95%; } /* ** edit views etc */ .special li { line-height: 1.4em; margin: 0; padding: 0; } a.external { color: #3366bb; } div#footer { text-align: center; } ul#f-list li { list-style: none; text-align: center; } div.portlet { margin: 0.5em 0; } .redirectText { font-size:150%; margin:5px; } ul.special li.not-patrolled, ol.special li.not-patrolled { background-color: #ffa; } div.patrollink { font-size: 75%; text-align: right; } span.updatedmarker { color:black; background-color:#00FF00; } div.gallerybox { width: 150px; } #xjump-to-nav { display: none; } .templatesUsed { margin-top: 1.5em; } .printfooter { display: none; } #footer { background-color: white; border-top: 1px solid #fabd23; border-bottom: 1px solid #fabd23; margin: .6em 0 1em 0; padding: .4em 0 1.2em 0; text-align: center; font-size: 90%; } #f-poweredbyico, #f-copyrightico { display: inline; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: image/png Content-Location: http://en.wikibooks.org/w/extensions/FlaggedRevs/img/1.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAA AAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kB AQ8vFpGtY5MAAAKVSURBVDjLhZO7bx1FFMa/eezO+O6d6x35cf2ABkcRklFK0rgI SO5ooAIaJJoALTSWQkXDH0CBlD5CipRUadLg0vkDbMkyooHGupbsvbvr3ZmdmUOB bSAy8JNOc6Tz+j4dtre3B845OOeIMUJKeV9K+dFoNHqglHpLSomU0q/OuX0Az1JK r4wx4JyDiCBxBRHpPM+/s9Z+Ya0dG2OgtYYQAkS07Jx7t2mar6qq+jGl9C3nvAfw ZwMiKrTWP02n0w+m0ynKssTCwgKyLANjDESEGCOcc+P5fP7NbDZ7u+u6jxljrdjZ 2YFS6vv19fXPNjc3sbq6CmMMlFKQUkIIASklsixDnufQWiPP87t93+thGF5KIcR9 a+3DtbU1LC8voygKcM7BGMPrCCGgtYa1FiGEh6enp0+l1vpTa21RliU45+j7/mbt 2xBCQCmFxcXFommaT2RRFO+XZQnnHC4uLqC1vnU6AKSU4L3H0tISxuMxJpPJe1Ip 9cZoNELbttje3sbW1hb+i5OTExwdHWEymSDP8zcl5xxCiGu7AADDMCCEgJTStcWI MYJzjrquEUK4OUcS0e8xxnI8HuPw8BDHx8cIIYCI/qEDEYExhsvLS1hrr3O/Se/9 z13XvbOxsQFjDJqmuVXAa2FXVlZgjEGMEd77femce9I0zefOuWIymaAoCvwfKSW0 bdt6759wIjo4Pz9/XFUV+r5HjBEppX+Nq8mo6/pxjPGAM8bgvX80m81eVFUF59yN eK9DRAghoK7rF977R4wxiN3dXWRZNjDGnjvnFgDcE0Lkfy9KKSGEgL7v2/l8/sMw DF8S0WVK6a9vZIx1Xdd9fXZ29rRpmg+NMQ/yPL9zZe8v3vt9InoeQjhQSiHGCAD4 A/tLZV+RjaiNAAAAAElFTkSuQmCC ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: image/png Content-Location: http://en.wikibooks.org/w/extensions/FlaggedRevs/img/2.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAA AAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kB AQ8wAKgj2FwAAAM8SURBVDjLTZNNbFRVAIW/e+/7m/fmTenM67SlLSVQSoFEYEOj MRFdqEQ31gXqxsSEoK5MdImJiRuXLlyQ4E5FA4lsdKMxsjHChkTSqDFUpZSWdtrp MJ03b97PfdcFpuHbf2dxTo749KMXUUogpaQoNLal5m1bLYRV57TnWgeUlBhj/h6k xXUD35rS3KyFLkpJytJg8T/GGM91rI+juv92sxFUh2ouFc9GKYkxJhqkxanuTvpu u5NcLEvzoVIMgEcBZUkQ+PY3k+O1lyfHQ6Jhn7Dq4NgKIcAYyPKSJMmr7YfJB2sb vbm4n78mBLF64ZmDeK71yb69Q28enK4z1qxQ6IL1rZTV9ZRWO6UXZ9i2ZqjmUg08 HFvN9pPcy3L9g2VZcn6kEZzfNzFExTMsr+V4jadoHj6JXxsHIO6u0V69xf2lX9k/ rhgdCSh0eX5ltXvVqnjOG6Mj1UBJTXuwj6njZxmOpnkcrzJDY3SG9uY8y39eYTxc I6r7QXdn8LoMA+e5imvoDBocPHluV+73Wize/IrFm18S72wAUI+mOXDiHHdbIbrI 2TPkPSt935qM+5rm/ufxq8M8KlXz2y+f01n5DtX7iTu3vqAsNVqXKLdGJXqS1Y0Y z7WnpKUklpIgdudE6xIhBKONgKjuI5SgKEqSpE9vp0eWZcRJjhQgC21WGnscNu/+ yMPOBrkW5IVm5vhZ8uBpNvNTTMy+SpbnJGnB9uY9HvzzM8M1BwP31MKZI0eaUW0+ CjNWlv/CqCbKCbGdkFp0jNrIMZAV+v2ErY0l/r39NY2gzf6pEXr97IqVDorL293B W81GI5j22iz9cREqR/GHD+P6EaY09HvrdFu/E7dvM1YvOXRgHGOIB2lx2TJwY3Or fykarrw3MVbjxJyhtbXIg7VbdAYlxhigJPQFs3MhjXqIwbDeii9pXd6whBAM0uLC 6nrvkONYLzUbPnvH6uwdM2htMMYghEBKgRCCLNd0usn3aVZcEAjUwpmjOLbMDeLa IMkrBp6QEgcESspdsdAlcZLH253ksyzX7xhDX+vH3igFSZzk76+3ele7veyVPTX3 tOvaM0qAgTtpWlwvDdeKQt/wXAuNAeA/aGJ9kbIpo5QAAAAASUVORK5CYII= ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: image/png Content-Location: http://en.wikibooks.org/w/extensions/FlaggedRevs/img/lock-open.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABcAAAASCAYAAACw50UTAAADbklEQVR4nHWTT2zc RBSHf+/NjO11omSzBIJKFURCEBBQBAmCwiE5IVCOvdADqInKDc6IY4U4ISEhhMSR AwcuUKkgeqEUFShSQi6IC6gKoFbN3yZeZ3ezHo/ncdh02TXJWJaf7ZnPv/lmTDi+ MQB/XL24uBjPL8y/oiv6bCttLbRb7bg2VvtTvHy5dXv7q6vff3dzbW3NA4A6AS5H UOmpaW5uLr7w5oW3Kg/H79V1Gvqmu2zYXMvithl8ZPjc5OmJF8Ti15XVlV0ApE+A o5Qcs7OzvLy8/JoO9dtfX//m84TSTzZ+vLWZ7WSu+mR18NQT4wtzDz7z/lNPT38w MTHx+vr6+m4Zzj3gezo8AExOTp4aGRk5t7aytn7l028vHhwcNLoB/kCCS6uXt1/a qC2dX7o4MzPzsnPuCz4G6nvuu21qamq00Wg8Xk/qV47A/xu3cWfj+tbWlp+enn6O iHQZwuhfwO6zIAiGRKSmtd4sve9qdM7tMbMbHx+vGmOCMqw3ee8VTAwCQaQvcW8g OFeAmRGGISCABuDP/Pxq9Lx6djCiEA1uQSzgC8AXHkoxWDHav9uq5Rzx6YHa2V+W hh7lCeusBwQwRiOsGH/jo6taIIkwWtXZGggAXvxp8Y2F6MzHhfj4H3u7kdkcRS5w roDRDGUUTKAwpkfjMXO/vta68eF2sfvub/M/uNIs0TtjDQCBBNED0ai+k2/pv9Jb 1aSVIsty5DaHMRomDDAQhYiHK3gsnPRBy0TOOfTAyrXvulNgOCmwZxO0fdbTlyAE EAEFPJKiDis5FCmQ9DkvfwRAxzkDhEbRxI67Cy+dPnJ03PtHRTwSlyJxKUQE0lnZ 8lbu1QINAIU4JEWKg6LRIRFARKUcjLa3SFwdueQg4j6/5dRduJBgv6ijLW0cxQYA KGJo1jCsEbAGEbDv63BwUKRwDLhPkQbgFRRy72DIIFYxAl0gEg9PgsAYRCZAoDRC DuDFw3oL6Yw/EfyfcwKYCPfpGjJY5HDIyCEnB6M1AtU5Q2XAxAg4BPWLOFYNV0dG WPY9EwBtGapJoFTAiYdKBJR4UCqgpoAzAnuCLpS++85NHQRheW/3zUJHYRinlzb+ 3nwo++xw/3DQNrMoP8yDInfaF8LEBG200xVjw4GgXRmObcM2VnmHh6Io3LM269vb vfW/cV2WgQf2DxcAAAAASUVORK5CYII= ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=flaggedrevs.css Content-Type: text/css; charset=UTF-8; name=flaggedrevs.css Content-Location: http://en.wikibooks.org/w/extensions/FlaggedRevs/flaggedrevs.css?60 Content-Transfer-Encoding: 8bit /* Every time you change this CSS please bump $wgFlaggedRevStyleVersion in FlaggedRevs.php */ /* Standard User Interface */ .flaggedrevs_basic, .flaggedrevs_quality, .flaggedrevs_pristine, .flaggedrevs_notice, .flaggedrevs_editnotice, .flaggedrevs_diffnotice, .flaggedrevs_warning, .flaggedrevs_preview { border: 1px solid #aaa; padding: 5px; font-weight: normal; line-height: 1.5em; margin: .5em 1em 0em 0em; text-align: center; clear: both; } .flaggedrevs_basic { background-color: #f0f8ff; } .flaggedrevs_quality { background-color: #f0fff0; } .flaggedrevs_pristine { background-color: #fffff0; } .flaggedrevs_notice { background-color: #f9f9f9; } .flaggedrevs_preview { background-color: #f9f9f9; color: #8b0000; } .flaggedrevs_warning { font-size: 85%; background-color: #fffff0; margin: 0em 1em 0em 0em; } .flaggedrevs_editnotice { font-size: 85%; background-color: #f9f9f9; } .flaggedrevs_diffnotice { font-size: 85%; background-color: #f9f9f9; } .flaggedrevs_notes { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; font-size: 85%; margin-left: 50px; margin-right: 50px; text-align: center; } .fr-text-value { width: 100px; } .fr-checkbox { padding: 0px; width: 16px; height: 16px; position: relative; float: left; top: 0px; right: 0px; background-repeat: no-repeat; background-position: 0px 0px; background-image: url(../FlaggedRevs/img/boxC.png); } .fr-marker-20, .fr-marker-40, .fr-marker-60, .fr-marker-80, .fr-marker-100 { background-position: bottom left; background-repeat: no-repeat; padding-bottom: 3px; } .fr-marker-20 { background-image: url(../FlaggedRevs/img/bar_20.png); } .fr-marker-40 { background-image: url(../FlaggedRevs/img/bar_40.png); } .fr-marker-60 { background-image: url(../FlaggedRevs/img/bar_60.png); } .fr-marker-80 { background-image: url(../FlaggedRevs/img/bar_80.png); } .fr-marker-100 { background-image: url(../FlaggedRevs/img/bar_100.png); } /* Short User Interface */ .flaggedrevs_short { border: 0px; background-color: #f9f9f9; padding: 1px; font-size: 95%; font-weight: normal; margin: 0em 0em 0em 1em; float: right; text-align: left; max-width: 450px; line-height: 16px; } .rtl .flaggedrevs_short { float: left; margin: 0 1em 0 0; } .fr-text { height: 1em; line-height: 1em; margin: 0px 7px 0px 0px; padding: 0px; font-weight: bold; width: 80px; } .fr-value20, .fr-value40, .fr-value60, .fr-value80, .fr-value100 { height: 1em; line-height: 1em; width: 95px; float: left; background-repeat: no-repeat; background-position: 50% 50%; text-align: center; } .fr-value20 { background-image: url(../FlaggedRevs/img/fr-marker-20.png); } .fr-value40 { background-image: url(../FlaggedRevs/img/fr-marker-40.png); } .fr-value60 { background-image: url(../FlaggedRevs/img/fr-marker-60.png); } .fr-value80 { background-image: url(../FlaggedRevs/img/fr-marker-80.png); } .fr-value100 { background-image: url(../FlaggedRevs/img/fr-marker-100.png); } .flaggedrevs-box0, .flaggedrevs-box1, .flaggedrevs-box2, .flaggedrevs-box3 { border: 1px solid #aaa; text-align: center; font-size: 85%; clear: both; } .flaggedrevs-box0 { background-color: #f9f9f9; } .flaggedrevs-box1 { background-color: #f0f8ff; } .flaggedrevs-box2 { background-color: #f0fff0; } .flaggedrevs-box3 { background-color: #fffff0; } /* Both User Interfaces */ .flaggedrevs-color-0 { background-color: #f9f9f9; } .flaggedrevs-color-1 { background-color: #f0f8ff; } .flaggedrevs-color-2 { background-color: #f0fff0; } .flaggedrevs-color-3 { background-color: #fffff0; } .flaggedrevs-unreviewed { background-color: #fffff0; } .flaggedrevs-unreviewed2 { background-color: #faebd7; } .flaggedrevs_toggle { color: blue; white-space: nowrap; cursor:pointer; } .fr-icon-current, .fr-icon-stable, .fr-icon-quality, .fr-icon-locked, .fr-icon-unlocked { padding: 0px; margin: 0em .2em 0em 0em; width: 16px; height: 16px; float: left; background-repeat: no-repeat; background-position: center center; } .fr-icon-current { background-image: url(../FlaggedRevs/img/1.png); } .fr-icon-stable { background-image: url(../FlaggedRevs/img/2.png); } .fr-icon-quality { background-image: url(../FlaggedRevs/img/3.png); } .fr-icon-locked { background-image: url(../FlaggedRevs/img/lock-closed.png); } .fr-icon-unlocked { width: 23px; background-image: url(../FlaggedRevs/img/lock-open.png); } .fr-diff-ratings { font-size: 90%; line-height: 1em; } .fr-diff-to-stable { line-height: 1em; } .fr-hist-stable-user, .fr-hist-quality-user, .fr-hist-autoreviewed { font-weight: bold; } /* Site notices */ .fr-backlognotice { padding: 3px; margin: 5px; border: 1px solid #990000; background-color: #f5ecec; } .fr-watchlist-old-notice { padding: 3px; margin: 5px; border: 1px solid #990000; background-color: #FEECD7; } /* Special pages */ .fr-pending-long { background-color: #f5ecec; } .fr-pending-long2 { background-color: #f5dddd; } .fr-pending-long3 { background-color: #e2caca; } .fr-unreviewed-unwatched { background-color: #faebd7; } .fr-under-review { background-color: yellow; } /* Review form */ .flaggedrevs_reviewform { background-color: #f9f9f9; font-size: 90%; clear: both; } .fr-rating-controls, .fr-rating-controls-disabled { vertical-align: middle; line-height: 1em; } .fr-rating-controls-disabled { color: GrayText; } .fr-rating-options { margin-right: 1.5em; } .fr-rating-option-0 { background-color: #f5ecec; } .fr-rating-option-1 { background-color: #f0f8ff; } .fr-rating-option-2 { background-color: #f0fff0; } .fr-rating-option-3 { background-color: #fef0db; } .fr-rating-option-4 { background-color: #fffff0; } .fr-diff-patrollink { text-align: center; } .fr-notes-box { width: 95%; margin: 0em 1em 0em .5em; } .fr-comment-box { margin-top: .25em; } .fr-rating-dave { background-color: #E0ECF8; } .fr-rating-rave { background-color: #E0F8EC; } .fr-hiddenform { display: none; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/WikiTable.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /*******************************/ /* wikitable/prettytable class */ /*******************************/ /* wikitable/prettytable class for skinning normal tables, but don't skin tables within tables by accident */ table.wikitable, table.prettytable { margin:1em 0em; background:#f9f9f9; border:1px #aaaaaa solid; border-collapse:collapse; } table.wikitable>*>tr>th, table.wikitable>*>tr>td, table.wikitable>tr>th, table.wikitable>tr>td, table.prettytable>*>tr>th, table.prettytable>*>tr>td, table.prettytable>tr>th, table.prettytable>tr>td { border: 1px #aaaaaa solid; padding: 0.2em; } table.wikitable>*>tr>th, table.wikitable>tr>th, table.prettytable>*>tr>th, table.prettytable>tr>th { background: #ccccff; text-align: center; } table.wikitable caption, table.prettytable caption { margin-left:inherit; margin-right:inherit; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: http://en.wikibooks.org/w/index.php?title=MediaWiki:Common.css/WikiTable.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /*******************************/ /* wikitable/prettytable class */ /*******************************/ /* wikitable/prettytable class for skinning normal tables, but don't skin tables within tables by accident */ table.wikitable, table.prettytable { margin:1em 0em; background:#f9f9f9; border:1px #aaaaaa solid; border-collapse:collapse; } table.wikitable>*>tr>th, table.wikitable>*>tr>td, table.wikitable>tr>th, table.wikitable>tr>td, table.prettytable>*>tr>th, table.prettytable>*>tr>td, table.prettytable>tr>th, table.prettytable>tr>td { border: 1px #aaaaaa solid; padding: 0.2em; } table.wikitable>*>tr>th, table.wikitable>tr>th, table.prettytable>*>tr>th, table.prettytable>tr>th { background: #ccccff; text-align: center; } table.wikitable caption, table.prettytable caption { margin-left:inherit; margin-right:inherit; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/CommonsTicker.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /************************/ /* CommonsTicker styles */ /************************/ /* links */ .tickerDiffLink { } /* diff links in ticker */ .tickerMiscLink { } /* misc links in ticker */ /* remove list bullets */ .tickerList ul, .tickerList ul li { list-style: none; text-indent:-2em; margin-left:2em; text-align:left; } .tickerList ul ul, .tickerList ul ul li { list-style: none; text-indent:0; margin-left:1.5em; text-align:left; } /* per-type styles */ .tickerEntry_deleted { } /* entry for image deletion */ .tickerEntry_restored { } /* entry for restored image */ .tickerEntry_replaced { } /* entry for image replacement */ .tickerEntry_tagged { } /* entry for adding/removing problem tags */ .tickerEntry_redir { } /* entry for critical redirection (fot tag redirects) */ .tickerEntry_recat { } /* entry for critical re-categorization (for tag categories) */ .tickerEntry_notify { } /* entry for global notifications */ .tickerEntry_changed { } /* entry for generic change */ /* per-status styles */ .tickerStatus_done { text-decoration:line-through; } /* strike through when entry has been handeled */ /* per-action styles */ .tickerAction_deleted:before { content:" GONE "; color: #FF0000; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_restored:before { content:" BACK "; color: #00BB00; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_deletedRev:before { content:" -OLD "; color: #DDAAAA; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_replaced:before { content:" REPL "; color: #CC88FF; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_replacedOwn:before { content:" UPDT "; color: #EEAAFF; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_addedBad:before { content:" +VfD "; color: #FF8800; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_removedBad:before { content:" -VfD "; color: #00BB00; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_addedGood:before { content:" +OK "; color: #00BB00; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_removedGood:before { content:" -OK "; color: #FF8800; font-family:monospace; font-weight:bold; font-size:100%; } /* ticker usage list */ .tickerUsage { font-size:80%; } /* entry applies to a template used by multiple images */ .tickerTemplateEntry { font-weight: bold; } /* entry applies to sub-entries, i.e. images that use a specific template */ .tickerSubEntry { } /* minor entry styles */ .tickerMinorEntry { color:#666; } /* minor entry */ .tickerMinorEntry a, .tickerMinorEntry a:link, .tickerMinorEntry a:visited { color:#669; } #bodyContent .tickerMinorEntry a.extiw, #bodyContent .tickerMinorEntry a.extiw:link, #bodyContent .tickerMinorEntry a.extiw:visited { color:#669; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: http://en.wikibooks.org/w/index.php?title=MediaWiki:Common.css/CommonsTicker.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /************************/ /* CommonsTicker styles */ /************************/ /* links */ .tickerDiffLink { } /* diff links in ticker */ .tickerMiscLink { } /* misc links in ticker */ /* remove list bullets */ .tickerList ul, .tickerList ul li { list-style: none; text-indent:-2em; margin-left:2em; text-align:left; } .tickerList ul ul, .tickerList ul ul li { list-style: none; text-indent:0; margin-left:1.5em; text-align:left; } /* per-type styles */ .tickerEntry_deleted { } /* entry for image deletion */ .tickerEntry_restored { } /* entry for restored image */ .tickerEntry_replaced { } /* entry for image replacement */ .tickerEntry_tagged { } /* entry for adding/removing problem tags */ .tickerEntry_redir { } /* entry for critical redirection (fot tag redirects) */ .tickerEntry_recat { } /* entry for critical re-categorization (for tag categories) */ .tickerEntry_notify { } /* entry for global notifications */ .tickerEntry_changed { } /* entry for generic change */ /* per-status styles */ .tickerStatus_done { text-decoration:line-through; } /* strike through when entry has been handeled */ /* per-action styles */ .tickerAction_deleted:before { content:" GONE "; color: #FF0000; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_restored:before { content:" BACK "; color: #00BB00; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_deletedRev:before { content:" -OLD "; color: #DDAAAA; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_replaced:before { content:" REPL "; color: #CC88FF; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_replacedOwn:before { content:" UPDT "; color: #EEAAFF; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_addedBad:before { content:" +VfD "; color: #FF8800; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_removedBad:before { content:" -VfD "; color: #00BB00; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_addedGood:before { content:" +OK "; color: #00BB00; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_removedGood:before { content:" -OK "; color: #FF8800; font-family:monospace; font-weight:bold; font-size:100%; } /* ticker usage list */ .tickerUsage { font-size:80%; } /* entry applies to a template used by multiple images */ .tickerTemplateEntry { font-weight: bold; } /* entry applies to sub-entries, i.e. images that use a specific template */ .tickerSubEntry { } /* minor entry styles */ .tickerMinorEntry { color:#666; } /* minor entry */ .tickerMinorEntry a, .tickerMinorEntry a:link, .tickerMinorEntry a:visited { color:#669; } #bodyContent .tickerMinorEntry a.extiw, #bodyContent .tickerMinorEntry a.extiw:link, #bodyContent .tickerMinorEntry a.extiw:visited { color:#669; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/Infobox.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /* Infobox template style */ .infobox { border:1px solid #aaa; background-color:#f9f9f9; color:black; margin:0.5em 0em 0.5em 1em; padding:0.2em; float:right; clear:right; } .infobox td, .infobox th { vertical-align:top; } .infobox caption { font-size:larger; margin-left:inherit; margin-right:inherit; } .infobox.bordered { border-collapse:collapse; } .infobox.bordered td, .infobox.bordered th { border:1px solid #aaaaaa; } .infobox.bordered .borderless td, .infobox.bordered .borderless th { border:0px; } .infobox.sisterproject { width:20em; font-size:90%; } .infobox.standard-talk { border:1px solid #c0c090; background-color:#f8eaba; } .infobox.standard-talk.bordered td, .infobox.standard-talk.bordered th { border:1px solid #c0c090; } /* styles for bordered infobox with merged rows */ .infobox.bordered .mergedtoprow td, .infobox.bordered .mergedtoprow th { border:0px; border-top:1px solid #aaaaaa; border-right:1px solid #aaaaaa; } .infobox.bordered .mergedrow td, .infobox.bordered .mergedrow th { border:0px; border-right:1px solid #aaaaaa; } /* Styles for geography infoboxes, eg countries, country subdivisions, cities, etc. */ .infobox.geography { text-align:left; border-collapse:collapse; line-height:1.2em; font-size:90%; } .infobox.geography td, .infobox.geography th { border-top:1px solid #aaaaaa; padding:0.4em 0.6em 0.4em 0.6em; } .infobox.geography .mergedtoprow td, .infobox.geography .mergedtoprow th { border-top:1px solid #aaaaaa; padding:0.4em 0.6em 0.2em 0.6em; } .infobox.geography .mergedrow td, .infobox.geography .mergedrow th { border:0px; padding:0em 0.6em 0.2em 0.6em; } .infobox.geography .mergedbottomrow td, .infobox.geography .mergedbottomrow th { border-top:0px; border-bottom:1px solid #aaaaaa; padding:0em 0.6em 0.4em 0.6em; } .infobox.geography .maptable td, .infobox.geography .maptable th { border:0px; padding:0px; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: http://en.wikibooks.org/w/index.php?title=MediaWiki:Common.css/Infobox.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /* Infobox template style */ .infobox { border:1px solid #aaa; background-color:#f9f9f9; color:black; margin:0.5em 0em 0.5em 1em; padding:0.2em; float:right; clear:right; } .infobox td, .infobox th { vertical-align:top; } .infobox caption { font-size:larger; margin-left:inherit; margin-right:inherit; } .infobox.bordered { border-collapse:collapse; } .infobox.bordered td, .infobox.bordered th { border:1px solid #aaaaaa; } .infobox.bordered .borderless td, .infobox.bordered .borderless th { border:0px; } .infobox.sisterproject { width:20em; font-size:90%; } .infobox.standard-talk { border:1px solid #c0c090; background-color:#f8eaba; } .infobox.standard-talk.bordered td, .infobox.standard-talk.bordered th { border:1px solid #c0c090; } /* styles for bordered infobox with merged rows */ .infobox.bordered .mergedtoprow td, .infobox.bordered .mergedtoprow th { border:0px; border-top:1px solid #aaaaaa; border-right:1px solid #aaaaaa; } .infobox.bordered .mergedrow td, .infobox.bordered .mergedrow th { border:0px; border-right:1px solid #aaaaaa; } /* Styles for geography infoboxes, eg countries, country subdivisions, cities, etc. */ .infobox.geography { text-align:left; border-collapse:collapse; line-height:1.2em; font-size:90%; } .infobox.geography td, .infobox.geography th { border-top:1px solid #aaaaaa; padding:0.4em 0.6em 0.4em 0.6em; } .infobox.geography .mergedtoprow td, .infobox.geography .mergedtoprow th { border-top:1px solid #aaaaaa; padding:0.4em 0.6em 0.2em 0.6em; } .infobox.geography .mergedrow td, .infobox.geography .mergedrow th { border:0px; padding:0em 0.6em 0.2em 0.6em; } .infobox.geography .mergedbottomrow td, .infobox.geography .mergedbottomrow th { border-top:0px; border-bottom:1px solid #aaaaaa; padding:0em 0.6em 0.4em 0.6em; } .infobox.geography .maptable td, .infobox.geography .maptable th { border:0px; padding:0px; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/Messagebox.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /* Default messagebox is gray */ .messagebox { width:90%; margin:0px auto; padding:0em; border:2px solid #aaaaaa; background:#fbfbfb; color:black; text-align:left; } .messagebox img { border:0em; padding:0em 0.5em; text-align:center; } /* default for all content namespaces */ .ns-subject .messagebox + .messagebox { border-top-width:0em; margin-top:-1px; } .ns-subject .messagebox { border-left-color:#1e90ff; border-left-width:10px; } .ns-subject .messagebox.notice { border-left-color:#1e90ff; } .ns-subject .messagebox.warning { border-left-color:#b22222; } .ns-subject .messagebox.serious { border-left-color:#b22222; } .ns-subject .messagebox.content { border-left-color:#f28500; } .ns-subject .messagebox.style { border-left-color:#f4c430; } .ns-subject .messagebox.merge { border-left-color:#9932cc; } .ns-subject .messagebox.growth { border-left-color:#228b22; } .ns-subject .messagebox.idea { border-left-color:yellow; } .ns-subject .messagebox.query { border-left-color:#ffb734; } .ns-subject .messagebox.move { border-left-color:#9932cc; } /* image namespace */ .ns-6 .messagebox + .messagebox { border-top-width:2px; margin-top:0.5em; } .ns-6 .messagebox { border-color:#1e90ff; border-bottom-width:5px; border-left-width:2px;} .ns-6 .messagebox.notice { border-color:#1e90ff; } .ns-6 .messagebox.warning { border-color:#b22222; } .ns-6 .messagebox.serious { border-color:#b22222; } .ns-6 .messagebox.content { border-color:#f28500; } .ns-6 .messagebox.query { border-color:#ffb734; } .ns-6 .messagebox.free { border-color:#79CC55; } .ns-6 .messagebox.nonfree { border-color:#EF9132; } .ns-6 .messagebox.pd { border-color:#7E80A3; } .ns-6 .messagebox.move { border-color:#9932cc; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: http://en.wikibooks.org/w/index.php?title=MediaWiki:Common.css/Messagebox.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /* Default messagebox is gray */ .messagebox { width:90%; margin:0px auto; padding:0em; border:2px solid #aaaaaa; background:#fbfbfb; color:black; text-align:left; } .messagebox img { border:0em; padding:0em 0.5em; text-align:center; } /* default for all content namespaces */ .ns-subject .messagebox + .messagebox { border-top-width:0em; margin-top:-1px; } .ns-subject .messagebox { border-left-color:#1e90ff; border-left-width:10px; } .ns-subject .messagebox.notice { border-left-color:#1e90ff; } .ns-subject .messagebox.warning { border-left-color:#b22222; } .ns-subject .messagebox.serious { border-left-color:#b22222; } .ns-subject .messagebox.content { border-left-color:#f28500; } .ns-subject .messagebox.style { border-left-color:#f4c430; } .ns-subject .messagebox.merge { border-left-color:#9932cc; } .ns-subject .messagebox.growth { border-left-color:#228b22; } .ns-subject .messagebox.idea { border-left-color:yellow; } .ns-subject .messagebox.query { border-left-color:#ffb734; } .ns-subject .messagebox.move { border-left-color:#9932cc; } /* image namespace */ .ns-6 .messagebox + .messagebox { border-top-width:2px; margin-top:0.5em; } .ns-6 .messagebox { border-color:#1e90ff; border-bottom-width:5px; border-left-width:2px;} .ns-6 .messagebox.notice { border-color:#1e90ff; } .ns-6 .messagebox.warning { border-color:#b22222; } .ns-6 .messagebox.serious { border-color:#b22222; } .ns-6 .messagebox.content { border-color:#f28500; } .ns-6 .messagebox.query { border-color:#ffb734; } .ns-6 .messagebox.free { border-color:#79CC55; } .ns-6 .messagebox.nonfree { border-color:#EF9132; } .ns-6 .messagebox.pd { border-color:#7E80A3; } .ns-6 .messagebox.move { border-color:#9932cc; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/Hoverbox.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /* Hover Box for switching the visibility of the selected item */ .hoverbox { position:relative; padding:0em; } .hoverbox .hoveritem { visibility:collapse; position:absolute; left:0px; top:0px; } .hoverbox .hoveritem.selected { visibility:visible; position:relative; } .hoverbox:hover .hoveritem { visibility:visible; position:relative; } .hoverbox:hover .hoveritem.selected { visibility:collapse; position:absolute;} ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: http://en.wikibooks.org/w/index.php?title=MediaWiki:Common.css/Hoverbox.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /* Hover Box for switching the visibility of the selected item */ .hoverbox { position:relative; padding:0em; } .hoverbox .hoveritem { visibility:collapse; position:absolute; left:0px; top:0px; } .hoverbox .hoveritem.selected { visibility:visible; position:relative; } .hoverbox:hover .hoveritem { visibility:visible; position:relative; } .hoverbox:hover .hoveritem.selected { visibility:collapse; position:absolute;} ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/Autocount.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /* smart counters - allow up to #.#.# levels of counting. */ body { counter-reset: autocount-1 autocount-2 autocount-3; } .autocount:before, .autocount-list ol li:before { counter-increment:autocount-1; content: counter(autocount-1) " "; color:green; } .autocount-reset:before { counter-reset: autocount-1; } .autocount .autocount:before, .autocount-list li ol li:before { counter-increment: autocount-2; content: counter(autocount-1) "." counter(autocount-2) " "; color:red; } .autocount .autocount .autocount:before, .autocount-list li li ol li:before { counter-increment: autocount-3; content: counter(autocount-1) "." counter(autocount-2) "." counter(autocount-3) " "; color:green; } .autocount-list ol { margin-left:1.5em; } .autocount-list ol li { list-style:none; } .autocount-list ol li:first-child { counter-reset: autocount-1; } .autocount-list li ol li:first-child { counter-reset: autocount-2; } .autocount-list li li ol li:first-child { counter-reset: autocount-3; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: http://en.wikibooks.org/w/index.php?title=MediaWiki:Common.css/Autocount.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /* smart counters - allow up to #.#.# levels of counting. */ body { counter-reset: autocount-1 autocount-2 autocount-3; } .autocount:before, .autocount-list ol li:before { counter-increment:autocount-1; content: counter(autocount-1) " "; color:green; } .autocount-reset:before { counter-reset: autocount-1; } .autocount .autocount:before, .autocount-list li ol li:before { counter-increment: autocount-2; content: counter(autocount-1) "." counter(autocount-2) " "; color:red; } .autocount .autocount .autocount:before, .autocount-list li li ol li:before { counter-increment: autocount-3; content: counter(autocount-1) "." counter(autocount-2) "." counter(autocount-3) " "; color:green; } .autocount-list ol { margin-left:1.5em; } .autocount-list ol li { list-style:none; } .autocount-list ol li:first-child { counter-reset: autocount-1; } .autocount-list li ol li:first-child { counter-reset: autocount-2; } .autocount-list li li ol li:first-child { counter-reset: autocount-3; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/toc.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /* When
is used on the table of contents, the ToC will display without numbers */ .toclimit-count .tocnumber, .nonumtoc .tocnumber { display:none; } /* Allow limiting of which header levels are shown in a TOC;
, for instance, will limit to showing ==headings== and ===headings=== but no further (as long as there are no =headings= on the page, which there shouldn't be according to the MoS). */ .toclimit-2 .toclevel-2 {display:none;} .toclimit-3 .toclevel-3 {display:none;} .toclimit-4 .toclevel-4 {display:none;} .toclimit-5 .toclevel-5 {display:none;} .toclimit-6 .toclevel-6 {display:none;} ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: http://en.wikibooks.org/w/index.php?title=MediaWiki:Common.css/toc.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /* When
is used on the table of contents, the ToC will display without numbers */ .toclimit-count .tocnumber, .nonumtoc .tocnumber { display:none; } /* Allow limiting of which header levels are shown in a TOC;
, for instance, will limit to showing ==headings== and ===headings=== but no further (as long as there are no =headings= on the page, which there shouldn't be according to the MoS). */ .toclimit-2 .toclevel-2 {display:none;} .toclimit-3 .toclevel-3 {display:none;} .toclimit-4 .toclevel-4 {display:none;} .toclimit-5 .toclevel-5 {display:none;} .toclimit-6 .toclevel-6 {display:none;} ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/Multilingual.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /* Support for Template:IPA, Template:Unicode and Template:Polytonic. The second declarations reset the styles for all browsers except IE6, which chokes on the empty comment tags. */ .IPA { font-family: "Charis SIL", "Doulos SIL", Gentium, GentiumAlt, "DejaVu Sans", Code2000, "TITUS Cyberbit Basic", "Arial Unicode MS", "Lucida Sans Unicode", "Chrysanthi Unicode"; font-family /**/: inherit; } .Unicode { font-family: Code2000, Code2001, "Free Serif", "TITUS Cyberbit Basic", "Doulos SIL", "Chrysanthi Unicode", "Bitstream Cyberbit", "Bitstream CyberBase", Thryomanes, Gentium, GentiumAlt, "Lucida Grande", "Free Sans", "Arial Unicode MS", "Microsoft Sans Serif", "Lucida Sans Unicode"; font-family /**/: inherit; } .latinx { font-family: Code2000, Code2001, "TITUS Cyberbit Basic", "Microsoft Sans Serif"; font-family /**/: inherit; } .polytonic { font-family: "Athena Unicode", Gentium, "Palatino Linotype", "Arial Unicode MS", "Lucida Sans Unicode", "Lucida Grande", Code2000; font-family /**/: inherit; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: text/css; charset=UTF-8 Content-Location: http://en.wikibooks.org/w/index.php?title=MediaWiki:Common.css/Multilingual.css&action=raw&ctype=text/css Content-Transfer-Encoding: 8bit /* Support for Template:IPA, Template:Unicode and Template:Polytonic. The second declarations reset the styles for all browsers except IE6, which chokes on the empty comment tags. */ .IPA { font-family: "Charis SIL", "Doulos SIL", Gentium, GentiumAlt, "DejaVu Sans", Code2000, "TITUS Cyberbit Basic", "Arial Unicode MS", "Lucida Sans Unicode", "Chrysanthi Unicode"; font-family /**/: inherit; } .Unicode { font-family: Code2000, Code2001, "Free Serif", "TITUS Cyberbit Basic", "Doulos SIL", "Chrysanthi Unicode", "Bitstream Cyberbit", "Bitstream CyberBase", Thryomanes, Gentium, GentiumAlt, "Lucida Grande", "Free Sans", "Arial Unicode MS", "Microsoft Sans Serif", "Lucida Sans Unicode"; font-family /**/: inherit; } .latinx { font-family: Code2000, Code2001, "TITUS Cyberbit Basic", "Microsoft Sans Serif"; font-family /**/: inherit; } .polytonic { font-family: "Athena Unicode", Gentium, "Palatino Linotype", "Arial Unicode MS", "Lucida Sans Unicode", "Lucida Grande", Code2000; font-family /**/: inherit; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: image/png Content-Location: http://upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGElEQVQYV2N4DwX/ oYBhgARgDJjEAAkAAEC99wFuu0VFAAAAAElFTkSuQmCC ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=UTF-8; name=index.css Content-Location: http://en.wikibooks.org/w/index.php?title=MediaWiki:Common.css&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400 Content-Transfer-Encoding: 8bit /* Common CSS for all skins - copy to your user CSS to change */ @import url("https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/WikiTable.css&action=raw&ctype=text/css") screen; @import url("/w/index.php?title=MediaWiki:Common.css/WikiTable.css&action=raw&ctype=text/css") screen; @import url("https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/CommonsTicker.css&action=raw&ctype=text/css") screen; @import url("/w/index.php?title=MediaWiki:Common.css/CommonsTicker.css&action=raw&ctype=text/css") screen; @import url("https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/Infobox.css&action=raw&ctype=text/css") screen; @import url("/w/index.php?title=MediaWiki:Common.css/Infobox.css&action=raw&ctype=text/css") screen; @import url("https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/Messagebox.css&action=raw&ctype=text/css") screen; @import url("/w/index.php?title=MediaWiki:Common.css/Messagebox.css&action=raw&ctype=text/css") screen; @import url("https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/Hoverbox.css&action=raw&ctype=text/css"); @import url("/w/index.php?title=MediaWiki:Common.css/Hoverbox.css&action=raw&ctype=text/css") screen; @import url("https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/Autocount.css&action=raw&ctype=text/css"); @import url("/w/index.php?title=MediaWiki:Common.css/Autocount.css&action=raw&ctype=text/css") screen; @import url("https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/toc.css&action=raw&ctype=text/css"); @import url("/w/index.php?title=MediaWiki:Common.css/toc.css&action=raw&ctype=text/css") screen; @import url("https://secure.wikimedia.org/wikibooks/en/w/index.php?title=MediaWiki:Common.css/Multilingual.css&action=raw&ctype=text/css"); @import url("/w/index.php?title=MediaWiki:Common.css/Multilingual.css&action=raw&ctype=text/css") screen; /*****************/ /* miscellaneous */ /*****************/ /* hiddenStructure class from Monobook - allows selective hiding of markup in templates */ .hiddenStructure { display:none; speak:none; } /* audiolink class for links with loudspeaker icon next to them - like in {{Audio}} template */ .audiolink a { background: url("http://upload.wikimedia.org/wikipedia/commons/f/f7/Loudspeaker.png") center left no-repeat !important; padding-left: 16px !important; padding-right: 0 !important; } /* make redirects appear as italic on [[Special:Allpages]] */ .allpagesredirect { font-style: italic } .PrettyTextBox { background-color: #F9F9F9; color: #000000; border: 1px solid #AAAAAA; padding: .2em; } .archive-box { border: 1px solid #aaaaff; background-color: #f2f2f9; color: black; margin-bottom: 0.5em; margin-left: 1em; padding: 0.2em; float: right; clear: right; text-align: center; } /* Collapsible Containers */ div.NavFrame, .collapsible { margin:0px; border:1px solid #aaaaaa; border-collapse:collapse; text-align:center; font-size:100%; clear:both; } div.NavFrame + div.NavFrame, .collapsible + .collapsible { border-top:0px; margin-top:0px; } div.NavPic { margin:0px; padding:2px; float:left; } div.NavFrame div.NavHead, .collapsible .title, .collapsible th { cursor:pointer; padding:0.2em; font-weight:bold; font-size:95%; background:#ccccff; } div.NavFrame div.NavHead:hover, .collapsible .title:hover, .collapsible th:hover { background: #aaaaff; } div.NavFrame div.NavHead .action, .collapsible .action { float:right; font-weight:normal; font-size:10px; margin:auto 0.5em; white-space:nowrap; text-align:right; width:auto; } /* Fix for collision of collapsible class used in Vector's collapsible tabs extension */ body.skin-vector .vectorTabs .collapsible { border: none; clear: none; } /* Default skin for navigation boxes */ table.navbox { border:1px solid #aaaaaa; width:100%; margin:0.5em auto; clear:both; font-size:88%; text-align:center; padding:1px; } .navbox-title, .navbox-abovebelow, table.navbox th { text-align:center; padding-left:1em; padding-right:1em; } .navbox-group { white-space:nowrap; text-align:right; font-weight:bold; padding-left:1em; padding-right:1em; } .navbox, .navbox-subgroup { background:#fdfdfd; } .navbox-list { border-color:#fdfdfd; } .navbox-title, table.navbox th { background:#ccccff; } .navbox-abovebelow, .navbox-group, .navbox-subgroup .navbox-title { background: #ddddff; } .navbox-subgroup .navbox-group, .navbox-subgroup .navbox-abovebelow { background: #e6e6ff; } .navbox-even { background: #f7f7f7; } .navbox-odd { background: transparent; } /* Remove padding from external links displayed without icon */ .plainlinks .urlexpansion { display: none !important;} .plainlinks a { background:none !important; padding:0px !important;} .plainlinks a.external.text:after {display: none !important;} .plainlinks a.external.autonumber:after {display: none !important;} /** Bytecounter colours **/ strong.mw-plusminus-neg { color: #cc0000; } span.mw-plusminus-neg { color: #990000; } span.mw-plusminus-pos { color: #006600; } /* Navigation Tabs */ .navtabs .tabs li { list-style:none; } .navtabs .tabs a { text-decoration:none; text-transform:uppercase; outline-width:0px; font-size:x-small; font-weight:bold; color:black; } .navtabs .tabs .inactive { background:#bbb; padding:1ex; } .navtabs .tabs .selected { background:#999; padding:1.1ex; } .navtabs .tabs .inactive:hover { background:#f75; } .navtabs .contents { padding:1ex; border:3px solid #999; } /* Style for horizontal UL lists */ .horizontal ul, .DPLFlat ul { padding:0em; margin:0em; } .horizontal li, .DPLFlat li { display:inline; padding:0em 0.6em 0em 0.4em; border-right:1px solid #AAA; } .horizontal li:last-child, .DPLFlat li:last-child { border-right:0em; padding-right:0em; } @media screen, projection { .printonly { display: none !important; } } body.page-Main_Page h1.firstHeading, .page-Main_Page #siteSub { display: none; } .page-Main_Page h2 { font-size:16pt; margin:0; padding: 0; border-bottom:0; font-weight: bold; } /* Put a checker background at the image description page only visible if the image has transparent background */ #file img {background: url("http://upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png") repeat;} /* Fix the background color on the sitenotice */ table#mw-dismissable-notice { background-color: transparent; } /* Flagged revision fails to set the font color which can cause readability problems. Since the colors needed to be adjusted anyways, use different colors for each option for more usability. */ select { background:white; color:black; } select option.fr-rating-option-0 { color:red; } select option.fr-rating-option-1 { color:olive; } select option.fr-rating-option-2 { color:purple; } select option.fr-rating-option-3 { color:green; } select option.fr-rating-option-4 { color:navy; } .fr-rating-options option[selected="selected"] { font-weight:bold; } /* End of Common CSS skin */ ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=UTF-8; name=index.css Content-Location: http://en.wikibooks.org/w/index.php?title=MediaWiki:Print.css&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400 Content-Transfer-Encoding: 8bit /* CSS placed here will affect the print output, including [?&]printable=yes */ .editlink, .noprint, .metadata, .dablink, .toc, .infobox, #catlinks, .subpages, .navigation, #privacy, #about, #disclaimer { display: none !important; } div.expand-print { display: block !important; } span.expand-print { display: inline !important; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=UTF-8; name=index.css Content-Location: http://en.wikibooks.org/w/index.php?title=MediaWiki:Handheld.css&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400 Content-Transfer-Encoding: 8bit /* CSS placed here will affect handheld devices based on the skin configured in $wgHandheldStyle */ ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=UTF-8; name=index.css Content-Location: http://en.wikibooks.org/w/index.php?title=MediaWiki:Monobook.css&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400 Content-Transfer-Encoding: 8bit /* Edit this file to customize the monobook skin for the entire site. See also: [[MediaWiki:Common.css]] */ /* Donations link to be uncommented during fund raising drives #siteNotice { margin-top:5px; padding-left: 4px; font-style: italic; text-align: center; } */ /* BEGIN LIGHT BLUE SECTION Make content area light blue in all namespaces except content namespaces. This is done by setting the background color for all #content areas to light blue, and then overriding it back to white for any #content enclosed in a content namespace. We do the same for the "tab" backgrounds and some other elements. */ #content, #p-cactions li a:hover, #p-cactions li.selected a, #content div.thumb { background: #F8FCFF; /* a light blue */ } #p-cactions li a { background-color: #F7F9FB; /* Light blue-gray inactive tabs */ } .ns-0 #content, .ns-0 #p-cactions li a:hover, .ns-0 #p-cactions li.selected a, .ns-0 #content div.thumb, .ns-100 #content, .ns-100 #p-cactions li a:hover, .ns-100 #p-cactions li.selected a, .ns-100 #content div.thumb { background-color: white; /* Set back to white for books */ } .ns-0 #p-cactions li a, .ns-100 #p-cactions li a { background-color: #FBFBFB; /* Light gray inactive tabs in books */ } @media print { #content { background: white; } /* White background on print */ } /* END LIGHT BLUE SECTION */ /* Display "From Wikibooks, the open-content textbooks collection" */ #siteSub { display: inline; font-size: 100%; font-weight: normal; } /* Bold 'edit this page' link to encourage newcomers */ #ca-edit a { font-weight: bold !important; } #pt-login { font-weight: bold; font-size: 110%; } /* Accessibility experiment: make diff changes not just color-based */ .diffchange { font-weight: bold; background-color: inherit; } td.diff-addedline, td.diff-deletedline, td.diff-context { font-size: 85%; color: inherit; } p.error { font-weight: bold; } /* Class styles */ /* .toccolours added here because version in monobook/main.css wasn't being used by the print style */ .toccolours, .toccolors { border: 1px solid #aaaaaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; } /* Don't underline links in portlets and special characters list below edit window. */ .portlet a, #editpage-specialchars a { text-decoration: none; } .portlet a:hover, #editpage-specialchars a:hover { text-decoration: underline; } /* If you don't want to see special characters list at all, put the following line in your User:You/monobook.css file (and remove the double slash comments) */ /* #editpage-specialchars { display: none; } */ /* position top icons near the first heading in this skin */ div.topicon { position: absolute; z-index: 100; top: 10px; display: block !important; } div.topicon#infobox { right: 4.5em; } div.topicon#pdf { right: 6.5em; } div.topicon#pv { right: 8.5em; } /* Makes the background of a framed image white instead of gray. */ /* Only visible with transparent images. */ div.thumb div a img { background-color:#ffffff; } #top-navigation { position:absolute; right: 1.15em; top: 3.0em; } #bottom-navigation { clear:both; float:right; } /* End of Monobook skin */ ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=UTF-8; name=index.css Content-Location: http://en.wikibooks.org/w/index.php?title=-&action=raw&maxage=2678400&gen=css Content-Transfer-Encoding: 8bit /* generated user stylesheet */ a.new, #quickbar a.new { color: #CC2200; } ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=wikibits.js Content-Type: application/x-javascript; name=wikibits.js Content-Location: http://bits.wikimedia.org/skins-1.5/common/wikibits.js?urid=257z23_1264870003 Content-Transfer-Encoding: Base64 Ly8gTWVkaWFXaWtpIEphdmFTY3JpcHQgc3VwcG9ydCBmdW5jdGlvbnMKCnZhciBj bGllbnRQQyA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTsgLy8g R2V0IGNsaWVudCBpbmZvCnZhciBpc19nZWNrbyA9IC9nZWNrby8udGVzdCggY2xp ZW50UEMgKSAmJgoJIS9raHRtbHxzcG9vZmVyfG5ldHNjYXBlXC83XC4wLy50ZXN0 KGNsaWVudFBDKTsKdmFyIHdlYmtpdF9tYXRjaCA9IGNsaWVudFBDLm1hdGNoKC9h cHBsZXdlYmtpdFwvKFxkKykvKTsKaWYgKHdlYmtpdF9tYXRjaCkgewoJdmFyIGlz X3NhZmFyaSA9IGNsaWVudFBDLmluZGV4T2YoJ2FwcGxld2Via2l0JykgIT0gLTEg JiYKCQljbGllbnRQQy5pbmRleE9mKCdzcG9vZmVyJykgPT0gLTE7Cgl2YXIgaXNf c2FmYXJpX3dpbiA9IGlzX3NhZmFyaSAmJiBjbGllbnRQQy5pbmRleE9mKCd3aW5k b3dzJykgIT0gLTE7Cgl2YXIgd2Via2l0X3ZlcnNpb24gPSBwYXJzZUludCh3ZWJr aXRfbWF0Y2hbMV0pOwp9Ci8vIEZvciBhY2Nlc3NrZXlzOyBub3RlIHRoYXQgRkYz KyBpcyBpbmNsdWRlZCBoZXJlIQp2YXIgaXNfZmYyID0gL2ZpcmVmb3hcL1syLTld fG1pbmVmaWVsZFwvMy8udGVzdCggY2xpZW50UEMgKTsKdmFyIGZmMl9idWdzID0g L2ZpcmVmb3hcLzIvLnRlc3QoIGNsaWVudFBDICk7Ci8vIFRoZXNlIGFyZW4ndCB1 c2VkIGhlcmUsIGJ1dCBzb21lIGN1c3RvbSBzY3JpcHRzIHJlbHkgb24gdGhlbQp2 YXIgaXNfZmYyX3dpbiA9IGlzX2ZmMiAmJiBjbGllbnRQQy5pbmRleE9mKCd3aW5k b3dzJykgIT0gLTE7CnZhciBpc19mZjJfeDExID0gaXNfZmYyICYmIGNsaWVudFBD LmluZGV4T2YoJ3gxMScpICE9IC0xOwppZiAoY2xpZW50UEMuaW5kZXhPZignb3Bl cmEnKSAhPSAtMSkgewoJdmFyIGlzX29wZXJhID0gdHJ1ZTsKCXZhciBpc19vcGVy YV9wcmVzZXZlbiA9IHdpbmRvdy5vcGVyYSAmJiAhZG9jdW1lbnQuY2hpbGROb2Rl czsKCXZhciBpc19vcGVyYV9zZXZlbiA9IHdpbmRvdy5vcGVyYSAmJiBkb2N1bWVu dC5jaGlsZE5vZGVzOwoJdmFyIGlzX29wZXJhXzk1ID0gL29wZXJhXC8oOVwuWzUt OV18WzEtOV1bMC05XSkvLnRlc3QoIGNsaWVudFBDICk7Cgl2YXIgb3BlcmE2X2J1 Z3MgPSBpc19vcGVyYV9wcmVzZXZlbjsKCXZhciBvcGVyYTdfYnVncyA9IGlzX29w ZXJhX3NldmVuICYmICFpc19vcGVyYV85NTsKCXZhciBvcGVyYTk1X2J1Z3MgPSAv b3BlcmFcLyg5XC41KS8udGVzdCggY2xpZW50UEMgKTsKfQoKLy8gR2xvYmFsIGV4 dGVybmFsIG9iamVjdHMgdXNlZCBieSB0aGlzIHNjcmlwdC4KLypleHRlcm4gdGEs IHN0eWxlcGF0aCwgc2tpbiAqLwoKLy8gYWRkIGFueSBvbmxvYWQgZnVuY3Rpb25z IGluIHRoaXMgaG9vayAocGxlYXNlIGRvbid0IGhhcmQtY29kZSBhbnkgZXZlbnRz IGluIHRoZSB4aHRtbCBzb3VyY2UpCnZhciBkb25lT25sb2FkSG9vazsKCmlmICgh d2luZG93Lm9ubG9hZEZ1bmN0cykgewoJdmFyIG9ubG9hZEZ1bmN0cyA9IFtdOwp9 CgovLyBjb2RlIHRoYXQgaXMgZGVwZW5kZW50IG9uIGpzMiBmdW5jdGlvbnMgc2hv dWxkIHVzZSBqczJBZGRPbmxvYWRIb29rCmZ1bmN0aW9uIGFkZE9ubG9hZEhvb2so aG9va0Z1bmN0KSB7CgkvLyBBbGxvd3MgYWRkLW9uIHNjcmlwdHMgdG8gYWRkIG9u bG9hZCBmdW5jdGlvbnMKCWlmKCFkb25lT25sb2FkSG9vaykgewoJCW9ubG9hZEZ1 bmN0c1tvbmxvYWRGdW5jdHMubGVuZ3RoXSA9IGhvb2tGdW5jdDsKCX0gZWxzZSB7 CgkJaG9va0Z1bmN0KCk7ICAvLyBidWcgaW4gTVNJRSBzY3JpcHQgbG9hZGluZwoJ fQp9CgoKZnVuY3Rpb24gaG9va0V2ZW50KGhvb2tOYW1lLCBob29rRnVuY3QpIHsK CWFkZEhhbmRsZXIod2luZG93LCBob29rTmFtZSwgaG9va0Z1bmN0KTsKfQoKZnVu Y3Rpb24gaW1wb3J0U2NyaXB0KHBhZ2UpIHsKCS8vIFRPRE86IG1pZ2h0IHdhbnQg dG8gaW50cm9kdWNlIGEgdXRpbGl0eSBmdW5jdGlvbiB0byBtYXRjaCB3ZlVybGVu Y29kZSgpIGluIFBIUAoJdmFyIHVyaSA9IHdnU2NyaXB0ICsgJz90aXRsZT0nICsK CQllbmNvZGVVUklDb21wb25lbnQocGFnZS5yZXBsYWNlKC8gL2csJ18nKSkucmVw bGFjZSgvJTJGL2lnLCcvJykucmVwbGFjZSgvJTNBL2lnLCc6JykgKwoJCScmYWN0 aW9uPXJhdyZjdHlwZT10ZXh0L2phdmFzY3JpcHQnOwoJcmV0dXJuIGltcG9ydFNj cmlwdFVSSSh1cmkpOwp9Cgp2YXIgbG9hZGVkU2NyaXB0cyA9IHt9OyAvLyBpbmNs dWRlZC1zY3JpcHRzIHRyYWNrZXIKZnVuY3Rpb24gaW1wb3J0U2NyaXB0VVJJKHVy bCkgewoJaWYgKGxvYWRlZFNjcmlwdHNbdXJsXSkgewoJCXJldHVybiBudWxsOwoJ fQoJbG9hZGVkU2NyaXB0c1t1cmxdID0gdHJ1ZTsKCXZhciBzID0gZG9jdW1lbnQu Y3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CglzLnNldEF0dHJpYnV0ZSgnc3JjJyx1 cmwpOwoJcy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCd0ZXh0L2phdmFzY3JpcHQnKTsK CWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5k Q2hpbGQocyk7CglyZXR1cm4gczsKfQoKZnVuY3Rpb24gaW1wb3J0U3R5bGVzaGVl dChwYWdlKSB7CglyZXR1cm4gaW1wb3J0U3R5bGVzaGVldFVSSSh3Z1NjcmlwdCAr ICc/YWN0aW9uPXJhdyZjdHlwZT10ZXh0L2NzcyZ0aXRsZT0nICsgZW5jb2RlVVJJ Q29tcG9uZW50KHBhZ2UucmVwbGFjZSgvIC9nLCdfJykpKTsKfQoKZnVuY3Rpb24g aW1wb3J0U3R5bGVzaGVldFVSSSh1cmwsbWVkaWEpIHsKCXZhciBsID0gZG9jdW1l bnQuY3JlYXRlRWxlbWVudCgnbGluaycpOwoJbC50eXBlID0gJ3RleHQvY3NzJzsK CWwucmVsID0gJ3N0eWxlc2hlZXQnOwoJbC5ocmVmID0gdXJsOwoJaWYobWVkaWEp IGwubWVkaWEgPSBtZWRpYQoJZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo J2hlYWQnKVswXS5hcHBlbmRDaGlsZChsKTsKCXJldHVybiBsOwp9CgpmdW5jdGlv biBhcHBlbmRDU1ModGV4dCkgewoJdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVt ZW50KCdzdHlsZScpOwoJcy50eXBlID0gJ3RleHQvY3NzJzsKCXMucmVsID0gJ3N0 eWxlc2hlZXQnOwoJaWYgKHMuc3R5bGVTaGVldCkgcy5zdHlsZVNoZWV0LmNzc1Rl eHQgPSB0ZXh0IC8vSUUKCWVsc2Ugcy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh dGVUZXh0Tm9kZSh0ZXh0ICsgJycpKSAvL1NhZmFyaSBzb21ldGltZXMgYm9ya3Mg b24gbnVsbAoJZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVsw XS5hcHBlbmRDaGlsZChzKTsKCXJldHVybiBzOwp9CgovLyBzcGVjaWFsIHN0eWxl c2hlZXQgbGlua3MKaWYgKHR5cGVvZiBzdHlsZXBhdGggIT0gJ3VuZGVmaW5lZCcg JiYgdHlwZW9mIHNraW4gIT0gJ3VuZGVmaW5lZCcpIHsKCS8vIEZJWE1FOiBUaGlz IHRyaWVzIHRvIGxvYWQgdGhlIHN0eWxlc2hlZXRzIGV2ZW4gZm9yIHNraW5zIHdo ZXJlIHRoZXkKCS8vIGRvbid0IGV4aXN0LCBpLmUuLCBldmVyeXRoaW5nIGJ1dCBN b25vYm9vay4KCWlmIChvcGVyYTZfYnVncykgewoJCWltcG9ydFN0eWxlc2hlZXRV Ukkoc3R5bGVwYXRoKycvJytza2luKycvT3BlcmE2Rml4ZXMuY3NzJyk7Cgl9IGVs c2UgaWYgKG9wZXJhN19idWdzKSB7CgkJaW1wb3J0U3R5bGVzaGVldFVSSShzdHls ZXBhdGgrJy8nK3NraW4rJy9PcGVyYTdGaXhlcy5jc3MnKTsKCX0gZWxzZSBpZiAo b3BlcmE5NV9idWdzKSB7CgkJaW1wb3J0U3R5bGVzaGVldFVSSShzdHlsZXBhdGgr Jy8nK3NraW4rJy9PcGVyYTlGaXhlcy5jc3MnKTsKCX0gZWxzZSBpZiAoZmYyX2J1 Z3MpIHsKCQlpbXBvcnRTdHlsZXNoZWV0VVJJKHN0eWxlcGF0aCsnLycrc2tpbisn L0ZGMkZpeGVzLmNzcycpOwoJfQp9CgoKaWYgKHdnQnJlYWtGcmFtZXMpIHsKCS8v IFVuLXRyYXAgdXMgZnJvbSBmcmFtZXNldHMKCWlmICh3aW5kb3cudG9wICE9IHdp bmRvdykgewoJCXdpbmRvdy50b3AubG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb247 Cgl9Cn0KCmZ1bmN0aW9uIHNob3dUb2NUb2dnbGUoKSB7CglpZiAoZG9jdW1lbnQu Y3JlYXRlVGV4dE5vZGUpIHsKCQkvLyBVc2VzIERPTSBjYWxscyB0byBhdm9pZCBk b2N1bWVudC53cml0ZSArIFhIVE1MIGlzc3VlcwoKCQl2YXIgbGlua0hvbGRlciA9 IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2N0aXRsZScpOwoJCXZhciBleGlz dGluZ0xpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9nZ2xlbGluaycp OwoJCWlmICghbGlua0hvbGRlciB8fCBleGlzdGluZ0xpbmspIHsKCQkJLy8gRG9u J3QgYWRkIHRoZSB0b2dnbGUgbGluayB0d2ljZQoJCQlyZXR1cm47CgkJfQoKCQl2 YXIgb3V0ZXJTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwoJ CW91dGVyU3Bhbi5jbGFzc05hbWUgPSAndG9jdG9nZ2xlJzsKCgkJdmFyIHRvZ2ds ZUxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CgkJdG9nZ2xlTGlu ay5pZCA9ICd0b2dnbGVsaW5rJzsKCQl0b2dnbGVMaW5rLmNsYXNzTmFtZSA9ICdp bnRlcm5hbCc7CgkJdG9nZ2xlTGluay5ocmVmID0gJ2phdmFzY3JpcHQ6dG9nZ2xl VG9jKCknOwoJCXRvZ2dsZUxpbmsuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl VGV4dE5vZGUodG9jSGlkZVRleHQpKTsKCgkJb3V0ZXJTcGFuLmFwcGVuZENoaWxk KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdbJykpOwoJCW91dGVyU3Bhbi5hcHBl bmRDaGlsZCh0b2dnbGVMaW5rKTsKCQlvdXRlclNwYW4uYXBwZW5kQ2hpbGQoZG9j dW1lbnQuY3JlYXRlVGV4dE5vZGUoJ10nKSk7CgoJCWxpbmtIb2xkZXIuYXBwZW5k Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJyAnKSk7CgkJbGlua0hvbGRl ci5hcHBlbmRDaGlsZChvdXRlclNwYW4pOwoKCQl2YXIgY29va2llUG9zID0gZG9j dW1lbnQuY29va2llLmluZGV4T2YoImhpZGV0b2M9Iik7CgkJaWYgKGNvb2tpZVBv cyA+IC0xICYmIGRvY3VtZW50LmNvb2tpZS5jaGFyQXQoY29va2llUG9zICsgOCkg PT0gMSkgewoJCQl0b2dnbGVUb2MoKTsKCQl9Cgl9Cn0KCmZ1bmN0aW9uIGNoYW5n ZVRleHQoZWwsIG5ld1RleHQpIHsKCS8vIFNhZmFyaSB3b3JrIGFyb3VuZAoJaWYg KGVsLmlubmVyVGV4dCkgewoJCWVsLmlubmVyVGV4dCA9IG5ld1RleHQ7Cgl9IGVs c2UgaWYgKGVsLmZpcnN0Q2hpbGQgJiYgZWwuZmlyc3RDaGlsZC5ub2RlVmFsdWUp IHsKCQllbC5maXJzdENoaWxkLm5vZGVWYWx1ZSA9IG5ld1RleHQ7Cgl9Cn0KCmZ1 bmN0aW9uIHRvZ2dsZVRvYygpIHsKCXZhciB0b2NtYWluID0gZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoJ3RvYycpOwoJdmFyIHRvYyA9IGRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCd0b2MnKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgndWwnKVswXTsKCXZh ciB0b2dnbGVMaW5rID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvZ2dsZWxp bmsnKTsKCglpZiAodG9jICYmIHRvZ2dsZUxpbmsgJiYgdG9jLnN0eWxlLmRpc3Bs YXkgPT0gJ25vbmUnKSB7CgkJY2hhbmdlVGV4dCh0b2dnbGVMaW5rLCB0b2NIaWRl VGV4dCk7CgkJdG9jLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwoJCWRvY3VtZW50 LmNvb2tpZSA9ICJoaWRldG9jPTAiOwoJCXRvY21haW4uY2xhc3NOYW1lID0gJ3Rv Yyc7Cgl9IGVsc2UgewoJCWNoYW5nZVRleHQodG9nZ2xlTGluaywgdG9jU2hvd1Rl eHQpOwoJCXRvYy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoJCWRvY3VtZW50LmNv b2tpZSA9ICJoaWRldG9jPTEiOwoJCXRvY21haW4uY2xhc3NOYW1lID0gJ3RvYyB0 b2NoaWRkZW4nOwoJfQp9Cgp2YXIgbXdFZGl0QnV0dG9ucyA9IFtdOwp2YXIgbXdD dXN0b21FZGl0QnV0dG9ucyA9IFtdOyAvLyBlZyB0byBhZGQgaW4gTWVkaWFXaWtp OkNvbW1vbi5qcwoKZnVuY3Rpb24gZXNjYXBlUXVvdGVzKHRleHQpIHsKCXZhciBy ZSA9IG5ldyBSZWdFeHAoIiciLCJnIik7Cgl0ZXh0ID0gdGV4dC5yZXBsYWNlKHJl LCJcXCciKTsKCXJlID0gbmV3IFJlZ0V4cCgiXFxuIiwiZyIpOwoJdGV4dCA9IHRl eHQucmVwbGFjZShyZSwiXFxuIik7CglyZXR1cm4gZXNjYXBlUXVvdGVzSFRNTCh0 ZXh0KTsKfQoKZnVuY3Rpb24gZXNjYXBlUXVvdGVzSFRNTCh0ZXh0KSB7Cgl2YXIg cmUgPSBuZXcgUmVnRXhwKCcmJywiZyIpOwoJdGV4dCA9IHRleHQucmVwbGFjZShy ZSwiJmFtcDsiKTsKCXJlID0gbmV3IFJlZ0V4cCgnIicsImciKTsKCXRleHQgPSB0 ZXh0LnJlcGxhY2UocmUsIiZxdW90OyIpOwoJcmUgPSBuZXcgUmVnRXhwKCc8Jywi ZyIpOwoJdGV4dCA9IHRleHQucmVwbGFjZShyZSwiJmx0OyIpOwoJcmUgPSBuZXcg UmVnRXhwKCc+JywiZyIpOwoJdGV4dCA9IHRleHQucmVwbGFjZShyZSwiJmd0OyIp OwoJcmV0dXJuIHRleHQ7Cn0KCgovKioKICogU2V0IHRoZSBhY2Nlc3NrZXkgcHJl Zml4IGJhc2VkIG9uIGJyb3dzZXIgZGV0ZWN0aW9uLgogKi8KdmFyIHRvb2x0aXBB Y2Nlc3NLZXlQcmVmaXggPSAnYWx0LSc7CmlmIChpc19vcGVyYSkgewoJdG9vbHRp cEFjY2Vzc0tleVByZWZpeCA9ICdzaGlmdC1lc2MtJzsKfSBlbHNlIGlmICghaXNf c2FmYXJpX3dpbiAmJiBpc19zYWZhcmkgJiYgd2Via2l0X3ZlcnNpb24gPiA1MjYp IHsKCXRvb2x0aXBBY2Nlc3NLZXlQcmVmaXggPSAnY3RybC1hbHQtJzsKfSBlbHNl IGlmICghaXNfc2FmYXJpX3dpbiAmJiAoaXNfc2FmYXJpCgkJfHwgY2xpZW50UEMu aW5kZXhPZignbWFjJykgIT0gLTEKCQl8fCBjbGllbnRQQy5pbmRleE9mKCdrb25x dWVyb3InKSAhPSAtMSApKSB7Cgl0b29sdGlwQWNjZXNzS2V5UHJlZml4ID0gJ2N0 cmwtJzsKfSBlbHNlIGlmIChpc19mZjIpIHsKCXRvb2x0aXBBY2Nlc3NLZXlQcmVm aXggPSAnYWx0LXNoaWZ0LSc7Cn0KdmFyIHRvb2x0aXBBY2Nlc3NLZXlSZWdleHAg PSAvXFsoY3RybC0pPyhhbHQtKT8oc2hpZnQtKT8oZXNjLSk/KC4pXF0kLzsKCi8q KgogKiBBZGQgdGhlIGFwcHJvcHJpYXRlIHByZWZpeCB0byB0aGUgYWNjZXNza2V5 IHNob3duIGluIHRoZSB0b29sdGlwLgogKiBJZiB0aGUgbm9kZUxpc3QgcGFyYW1l dGVyIGlzIGdpdmVuLCBvbmx5IHRob3NlIG5vZGVzIGFyZSB1cGRhdGVkOwogKiBv dGhlcndpc2UsIGFsbCB0aGUgbm9kZXMgdGhhdCB3aWxsIHByb2JhYmx5IGhhdmUg YWNjZXNza2V5cyBieQogKiBkZWZhdWx0IGFyZSB1cGRhdGVkLgogKgogKiBAcGFy YW0gQXJyYXkgbm9kZUxpc3QgLS0gbGlzdCBvZiBlbGVtZW50cyB0byB1cGRhdGUK ICovCmZ1bmN0aW9uIHVwZGF0ZVRvb2x0aXBBY2Nlc3NLZXlzKCBub2RlTGlzdCAp IHsKCWlmICggIW5vZGVMaXN0ICkgewoJCS8vIFJhdGhlciB0aGFuIHNjYW4gYWxs IGxpbmtzIG9uIHRoZSB3aG9sZSBwYWdlLCB3ZSBjYW4ganVzdCBzY2FuIHRoZXNl CgkJLy8gY29udGFpbmVycyB3aGljaCBjb250YWluIHRoZSByZWxldmFudCBsaW5r cy4gVGhpcyBpcyByZWFsbHkganVzdCBhbgoJCS8vIG9wdGltaXphdGlvbiB0ZWNo bmlxdWUuCgkJdmFyIGxpbmtDb250YWluZXJzID0gWwoJCQkiY29sdW1uLW9uZSIs IC8vIE1vbm9ib29rIGFuZCBNb2Rlcm4KCQkJImhlYWQiLCAicGFuZWwiLCAicC1s b2dvIiAvLyBWZWN0b3IKCQldOwoJCWZvciAoIHZhciBpIGluIGxpbmtDb250YWlu ZXJzICkgewoJCQl2YXIgbGlua0NvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCBsaW5rQ29udGFpbmVyc1tpXSApOwoJCQlpZiAoIGxpbmtDb250YWlu ZXIgKSB7CgkJCQl1cGRhdGVUb29sdGlwQWNjZXNzS2V5cyggbGlua0NvbnRhaW5l ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpICk7CgkJCX0KCQl9CgkJLy8gdGhl c2UgYXJlIHJhcmUgZW5vdWdoIHRoYXQgbm8gc3VjaCBvcHRpbWl6YXRpb24gaXMg bmVlZGVkCgkJdXBkYXRlVG9vbHRpcEFjY2Vzc0tleXMoIGRvY3VtZW50LmdldEVs ZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpICk7CgkJdXBkYXRlVG9vbHRpcEFjY2Vz c0tleXMoIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsYWJlbCIpICk7 CgkJcmV0dXJuOwoJfQoKCWZvciAoIHZhciBpID0gMDsgaSA8IG5vZGVMaXN0Lmxl bmd0aDsgaSsrICkgewoJCXZhciBlbGVtZW50ID0gbm9kZUxpc3RbaV07CgkJdmFy IHRpcCA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpOwoJCWlmICggdGlw ICYmIHRvb2x0aXBBY2Nlc3NLZXlSZWdleHAuZXhlYyh0aXApICkgewoJCQl0aXAg PSB0aXAucmVwbGFjZSh0b29sdGlwQWNjZXNzS2V5UmVnZXhwLAoJCQkJCSAgIlsi K3Rvb2x0aXBBY2Nlc3NLZXlQcmVmaXgrIiQ1XSIpOwoJCQllbGVtZW50LnNldEF0 dHJpYnV0ZSgidGl0bGUiLCB0aXAgKTsKCQl9Cgl9Cn0KCi8qKgogKiBBZGQgYSBs aW5rIHRvIG9uZSBvZiB0aGUgcG9ydGxldCBtZW51cyBvbiB0aGUgcGFnZSwgaW5j bHVkaW5nOgogKgogKiBwLWNhY3Rpb25zOiBDb250ZW50IGFjdGlvbnMgKHNob3du IGFzIHRhYnMgYWJvdmUgdGhlIG1haW4gY29udGVudCBpbiBNb25vYm9vaykKICog cC1wZXJzb25hbDogUGVyc29uYWwgdG9vbHMgKHNob3duIGF0IHRoZSB0b3Agcmln aHQgb2YgdGhlIHBhZ2UgaW4gTW9ub2Jvb2spCiAqIHAtbmF2aWdhdGlvbjogTmF2 aWdhdGlvbgogKiBwLXRiOiBUb29sYm94CiAqCiAqIFRoaXMgZnVuY3Rpb24gZXhp c3RzIGZvciB0aGUgY29udmVuaWVuY2Ugb2YgY3VzdG9tIEpTIGF1dGhvcnMuICBB bGwKICogYnV0IHRoZSBmaXJzdCB0aHJlZSBwYXJhbWV0ZXJzIGFyZSBvcHRpb25h bCwgdGhvdWdoIHByb3ZpZGluZyBhdAogKiBsZWFzdCBhbiBpZCBhbmQgYSB0b29s dGlwIGlzIHJlY29tbWVuZGVkLgogKgogKiBCeSBkZWZhdWx0IHRoZSBuZXcgbGlu ayB3aWxsIGJlIGFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuICBUbwogKiBh ZGQgdGhlIGxpbmsgYmVmb3JlIGEgZ2l2ZW4gZXhpc3RpbmcgaXRlbSwgcGFzcyB0 aGUgRE9NIG5vZGUgb2YKICogdGhhdCBpdGVtIChlYXNpbHkgb2J0YWluZWQgd2l0 aCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgpKSBhcyB0aGUKICogbmV4dG5vZGUg cGFyYW1ldGVyOyB0byBhZGQgdGhlIGxpbmsgX2FmdGVyXyBhbiBleGlzdGluZyBp dGVtLCBwYXNzCiAqIHRoZSBub2RlJ3MgbmV4dFNpYmxpbmcgaW5zdGVhZC4KICoK ICogQHBhcmFtIFN0cmluZyBwb3J0bGV0IC0tIGlkIG9mIHRoZSB0YXJnZXQgcG9y dGxldCAoInAtY2FjdGlvbnMiLCAicC1wZXJzb25hbCIsICJwLW5hdmlnYXRpb24i IG9yICJwLXRiIikKICogQHBhcmFtIFN0cmluZyBocmVmIC0tIGxpbmsgVVJMCiAq IEBwYXJhbSBTdHJpbmcgdGV4dCAtLSBsaW5rIHRleHQgKHdpbGwgYmUgYXV0b21h dGljYWxseSBsb3dlcmNhc2VkIGJ5IENTUyBmb3IgcC1jYWN0aW9ucyBpbiBNb25v Ym9vaykKICogQHBhcmFtIFN0cmluZyBpZCAtLSBpZCBvZiB0aGUgbmV3IGl0ZW0s IHNob3VsZCBiZSB1bmlxdWUgYW5kIHByZWZlcmFibHkgaGF2ZSB0aGUgYXBwcm9w cmlhdGUgcHJlZml4ICgiY2EtIiwgInB0LSIsICJuLSIgb3IgInQtIikKICogQHBh cmFtIFN0cmluZyB0b29sdGlwIC0tIHRleHQgdG8gc2hvdyB3aGVuIGhvdmVyaW5n IG92ZXIgdGhlIGxpbmssIHdpdGhvdXQgYWNjZXNza2V5IHN1ZmZpeAogKiBAcGFy YW0gU3RyaW5nIGFjY2Vzc2tleSAtLSBhY2Nlc3NrZXkgdG8gYWN0aXZhdGUgdGhp cyBsaW5rIChvbmUgY2hhcmFjdGVyLCB0cnkgdG8gYXZvaWQgY29uZmxpY3RzKQog KiBAcGFyYW0gTm9kZSBuZXh0bm9kZSAtLSB0aGUgRE9NIG5vZGUgYmVmb3JlIHdo aWNoIHRoZSBuZXcgaXRlbSBzaG91bGQgYmUgYWRkZWQsIHNob3VsZCBiZSBhbm90 aGVyIGl0ZW0gaW4gdGhlIHNhbWUgbGlzdAogKgogKiBAcmV0dXJuIE5vZGUgLS0g dGhlIERPTSBub2RlIG9mIHRoZSBuZXcgaXRlbSAoYW4gTEkgZWxlbWVudCkgb3Ig bnVsbAogKi8KZnVuY3Rpb24gYWRkUG9ydGxldExpbmsocG9ydGxldCwgaHJlZiwg dGV4dCwgaWQsIHRvb2x0aXAsIGFjY2Vzc2tleSwgbmV4dG5vZGUpIHsKCXZhciBy b290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocG9ydGxldCk7CglpZiAoICFy b290ICkgcmV0dXJuIG51bGw7Cgl2YXIgbm9kZSA9IHJvb3QuZ2V0RWxlbWVudHNC eVRhZ05hbWUoICJ1bCIgKVswXTsKCWlmICggIW5vZGUgKSByZXR1cm4gbnVsbDsK CgkvLyB1bmhpZGUgcG9ydGxldCBpZiBpdCB3YXMgaGlkZGVuIGJlZm9yZQoJcm9v dC5jbGFzc05hbWUgPSByb290LmNsYXNzTmFtZS5yZXBsYWNlKCAvKF58ICllbXB0 eVBvcnRsZXQoIHwkKS8sICIkMiIgKTsKCgl2YXIgc3BhbiA9IGRvY3VtZW50LmNy ZWF0ZUVsZW1lbnQoICJzcGFuIiApOwoJc3Bhbi5hcHBlbmRDaGlsZCggZG9jdW1l bnQuY3JlYXRlVGV4dE5vZGUoIHRleHQgKSApOwoKCXZhciBsaW5rID0gZG9jdW1l bnQuY3JlYXRlRWxlbWVudCggImEiICk7CglsaW5rLmFwcGVuZENoaWxkKCBzcGFu ICk7CglsaW5rLmhyZWYgPSBocmVmOwoKCXZhciBpdGVtID0gZG9jdW1lbnQuY3Jl YXRlRWxlbWVudCggImxpIiApOwoJaXRlbS5hcHBlbmRDaGlsZCggbGluayApOwoJ aWYgKCBpZCApIGl0ZW0uaWQgPSBpZDsKCglpZiAoIGFjY2Vzc2tleSApIHsKCQls aW5rLnNldEF0dHJpYnV0ZSggImFjY2Vzc2tleSIsIGFjY2Vzc2tleSApOwoJCXRv b2x0aXAgKz0gIiBbIithY2Nlc3NrZXkrIl0iOwoJfQoJaWYgKCB0b29sdGlwICkg ewoJCWxpbmsuc2V0QXR0cmlidXRlKCAidGl0bGUiLCB0b29sdGlwICk7Cgl9Cglp ZiAoIGFjY2Vzc2tleSAmJiB0b29sdGlwICkgewoJCXVwZGF0ZVRvb2x0aXBBY2Nl c3NLZXlzKCBuZXcgQXJyYXkoIGxpbmsgKSApOwoJfQoKCWlmICggbmV4dG5vZGUg JiYgbmV4dG5vZGUucGFyZW50Tm9kZSA9PSBub2RlICkKCQlub2RlLmluc2VydEJl Zm9yZSggaXRlbSwgbmV4dG5vZGUgKTsKCWVsc2UKCQlub2RlLmFwcGVuZENoaWxk KCBpdGVtICk7ICAvLyBJRSBjb21wYXRpYmlsaXR5ICg/KQoKCXJldHVybiBpdGVt Owp9CgpmdW5jdGlvbiBnZXRJbm5lclRleHQoZWwpIHsKCWlmICh0eXBlb2YgZWwg PT0gInN0cmluZyIpIHJldHVybiBlbDsKCWlmICh0eXBlb2YgZWwgPT0gInVuZGVm aW5lZCIpIHsgcmV0dXJuIGVsIH07CglpZiAoZWwudGV4dENvbnRlbnQpIHJldHVy biBlbC50ZXh0Q29udGVudDsgLy8gbm90IG5lZWRlZCBidXQgaXQgaXMgZmFzdGVy CglpZiAoZWwuaW5uZXJUZXh0KSByZXR1cm4gZWwuaW5uZXJUZXh0OyAgICAgLy8g SUUgZG9lc24ndCBoYXZlIHRleHRDb250ZW50Cgl2YXIgc3RyID0gIiI7CgoJdmFy IGNzID0gZWwuY2hpbGROb2RlczsKCXZhciBsID0gY3MubGVuZ3RoOwoJZm9yICh2 YXIgaSA9IDA7IGkgPCBsOyBpKyspIHsKCQlzd2l0Y2ggKGNzW2ldLm5vZGVUeXBl KSB7CgkJCWNhc2UgMTogLy9FTEVNRU5UX05PREUKCQkJCXN0ciArPSB0c19nZXRJ bm5lclRleHQoY3NbaV0pOwoJCQkJYnJlYWs7CgkJCWNhc2UgMzoJLy9URVhUX05P REUKCQkJCXN0ciArPSBjc1tpXS5ub2RlVmFsdWU7CgkJCQlicmVhazsKCQl9Cgl9 CglyZXR1cm4gc3RyOwp9CgoKLyoqCiAqIFNldCB1cCBhY2Nlc3NrZXlzL3Rvb2x0 aXBzIGZyb20gdGhlIGRlcHJlY2F0ZWQgdGEgYXJyYXkuICBJZiBkb0lkCiAqIGlz IHNwZWNpZmllZCwgb25seSBzZXQgdXAgZm9yIHRoYXQgaWQuICBOb3RlIHRoYXQg dGhpcyBmdW5jdGlvbiBpcwogKiBkZXByZWNhdGVkIGFuZCB3aWxsIG5vdCBiZSBz dXBwb3J0ZWQgaW5kZWZpbml0ZWx5IC0tIHVzZQogKiB1cGRhdGVUb29sdGlwQWNj ZXNzS2V5KCkgaW5zdGVhZC4KICoKICogQHBhcmFtIG1peGVkIGRvSWQgc3RyaW5n IG9yIG51bGwKICovCmZ1bmN0aW9uIGFrZXl0dCggZG9JZCApIHsKCS8vIEEgbG90 IG9mIHVzZXIgc2NyaXB0cyAoYW5kIHNvbWUgb2YgdGhlIGNvZGUgYmVsb3cpIGJy ZWFrIGlmCgkvLyB0YSBpc24ndCBkZWZpbmVkLCBzbyB3ZSBtYWtlIHN1cmUgaXQg aXMuICBFeHBsaWN0bHkgdXNpbmcKCS8vIHdpbmRvdy50YSBhdm9pZHMgYSAidGEg aXMgbm90IGRlZmluZWQiIGVycm9yLgoJaWYgKCF3aW5kb3cudGEpIHdpbmRvdy50 YSA9IG5ldyBBcnJheTsKCgkvLyBNYWtlIGEgbG9jYWwsIHBvc3NpYmx5IHJlc3Ry aWN0ZWQsIGNvcHkgdG8gYXZvaWQgY2xvYmJlcmluZwoJLy8gdGhlIG9yaWdpbmFs LgoJdmFyIHRhOwoJaWYgKCBkb0lkICkgewoJCXRhID0gW2RvSWRdOwoJfSBlbHNl IHsKCQl0YSA9IHdpbmRvdy50YTsKCX0KCgkvLyBOb3cgZGVhbCB3aXRoIGV2aWwg ZGVwcmVjYXRlZCB0YQoJdmFyIHdhdGNoQ2hlY2tib3hFeGlzdHMgPSBkb2N1bWVu dC5nZXRFbGVtZW50QnlJZCggJ3dwV2F0Y2h0aGlzJyApID8gdHJ1ZSA6IGZhbHNl OwoJZm9yICh2YXIgaWQgaW4gdGEpIHsKCQl2YXIgbiA9IGRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKGlkKTsKCQlpZiAobikgewoJCQl2YXIgYSA9IG51bGw7CgkJCXZh ciBhayA9ICcnOwoJCQkvLyBBcmUgd2UgcHV0dGluZyBhY2Nlc3NrZXkgaW4gaXQK CQkJaWYgKHRhW2lkXVswXS5sZW5ndGggPiAwKSB7CgkJCQkvLyBJcyB0aGlzIG9i amVjdCBhIG9iamVjdD8gSWYgbm90IGFzc3VtZSBpdCdzIHRoZSBuZXh0IGNoaWxk LgoKCQkJCWlmIChuLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT0gImEiKSB7CgkJ CQkJYSA9IG47CgkJCQl9IGVsc2UgewoJCQkJCWEgPSBuLmNoaWxkTm9kZXNbMF07 CgkJCQl9CgkJCSAJLy8gRG9uJ3QgYWRkIGFuIGFjY2Vzc2tleSBmb3IgdGhlIHdh dGNoIHRhYiBpZiB0aGUgd2F0Y2gKCQkJIAkvLyBjaGVja2JveCBpcyBhbHNvIGF2 YWlsYWJsZS4KCQkJCWlmIChhICYmICgoaWQgIT0gJ2NhLXdhdGNoJyAmJiBpZCAh PSAnY2EtdW53YXRjaCcpIHx8ICF3YXRjaENoZWNrYm94RXhpc3RzKSkgewoJCQkJ CWEuYWNjZXNzS2V5ID0gdGFbaWRdWzBdOwoJCQkJCWFrID0gJyBbJyt0b29sdGlw QWNjZXNzS2V5UHJlZml4K3RhW2lkXVswXSsnXSc7CgkJCQl9CgkJCX0gZWxzZSB7 CgkJCQkvLyBXZSBkb24ndCBjYXJlIHdoYXQgdHlwZSB0aGUgb2JqZWN0IGlzIHdo ZW4gYXNzaWduaW5nIHRvb2x0aXAKCQkJCWEgPSBuOwoJCQkJYWsgPSAnJzsKCQkJ fQoKCQkJaWYgKGEpIHsKCQkJCWEudGl0bGUgPSB0YVtpZF1bMV0rYWs7CgkJCX0K CQl9Cgl9Cn0KCnZhciBjaGVja2JveGVzOwp2YXIgbGFzdENoZWNrYm94OwoKZnVu Y3Rpb24gc2V0dXBDaGVja2JveFNoaWZ0Q2xpY2soKSB7CgljaGVja2JveGVzID0g W107CglsYXN0Q2hlY2tib3ggPSBudWxsOwoJdmFyIGlucHV0cyA9IGRvY3VtZW50 LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpOwoJYWRkQ2hlY2tib3hDbGlj a0hhbmRsZXJzKGlucHV0cyk7Cn0KCmZ1bmN0aW9uIGFkZENoZWNrYm94Q2xpY2tI YW5kbGVycyhpbnB1dHMsIHN0YXJ0KSB7CglpZiAoICFzdGFydCkgc3RhcnQgPSAw OwoKCXZhciBmaW5pc2ggPSBzdGFydCArIDI1MDsKCWlmICggZmluaXNoID4gaW5w dXRzLmxlbmd0aCApCgkJZmluaXNoID0gaW5wdXRzLmxlbmd0aDsKCglmb3IgKCB2 YXIgaSA9IHN0YXJ0OyBpIDwgZmluaXNoOyBpKysgKSB7CgkJdmFyIGNiID0gaW5w dXRzW2ldOwoJCWlmICggIWNiLnR5cGUgfHwgY2IudHlwZS50b0xvd2VyQ2FzZSgp ICE9ICdjaGVja2JveCcgKQoJCQljb250aW51ZTsKCQl2YXIgZW5kID0gY2hlY2ti b3hlcy5sZW5ndGg7CgkJY2hlY2tib3hlc1tlbmRdID0gY2I7CgkJY2IuaW5kZXgg PSBlbmQ7CgkJY2Iub25jbGljayA9IGNoZWNrYm94Q2xpY2tIYW5kbGVyOwoJfQoK CWlmICggZmluaXNoIDwgaW5wdXRzLmxlbmd0aCApIHsKCQlzZXRUaW1lb3V0KCBm dW5jdGlvbiAoKSB7CgkJCWFkZENoZWNrYm94Q2xpY2tIYW5kbGVycyhpbnB1dHMs IGZpbmlzaCk7CgkJfSwgMjAwICk7Cgl9Cn0KCmZ1bmN0aW9uIGNoZWNrYm94Q2xp Y2tIYW5kbGVyKGUpIHsKCWlmICh0eXBlb2YgZSA9PSAndW5kZWZpbmVkJykgewoJ CWUgPSB3aW5kb3cuZXZlbnQ7Cgl9CglpZiAoICFlLnNoaWZ0S2V5IHx8IGxhc3RD aGVja2JveCA9PT0gbnVsbCApIHsKCQlsYXN0Q2hlY2tib3ggPSB0aGlzLmluZGV4 OwoJCXJldHVybiB0cnVlOwoJfQoJdmFyIGVuZFN0YXRlID0gdGhpcy5jaGVja2Vk OwoJdmFyIHN0YXJ0LCBmaW5pc2g7CglpZiAoIHRoaXMuaW5kZXggPCBsYXN0Q2hl Y2tib3ggKSB7CgkJc3RhcnQgPSB0aGlzLmluZGV4ICsgMTsKCQlmaW5pc2ggPSBs YXN0Q2hlY2tib3g7Cgl9IGVsc2UgewoJCXN0YXJ0ID0gbGFzdENoZWNrYm94OwoJ CWZpbmlzaCA9IHRoaXMuaW5kZXggLSAxOwoJfQoJZm9yICh2YXIgaSA9IHN0YXJ0 OyBpIDw9IGZpbmlzaDsgKytpICkgewoJCWNoZWNrYm94ZXNbaV0uY2hlY2tlZCA9 IGVuZFN0YXRlOwoJCWlmKCBpID4gc3RhcnQgJiYgdHlwZW9mIGNoZWNrYm94ZXNb aV0ub25jaGFuZ2UgPT0gJ2Z1bmN0aW9uJyApCgkJCWNoZWNrYm94ZXNbaV0ub25j aGFuZ2UoKTsgLy8gZmlyZSB0cmlnZ2VycwoJfQoJbGFzdENoZWNrYm94ID0gdGhp cy5pbmRleDsKCXJldHVybiB0cnVlOwp9CgpmdW5jdGlvbiB0b2dnbGVfZWxlbWVu dF9hY3RpdmF0aW9uKGlkYSxpZGIpIHsKCWlmICggIWRvY3VtZW50LmdldEVsZW1l bnRCeUlkICkgewoJCXJldHVybjsKCX0KCS8vIFNob3cgdGhlIGFwcHJvcHJpYXRl IHVwbG9hZCBzaXplIGxpbWl0IG1lc3NhZ2UKCWlmKCBpZGIgPT0gJ3dwVXBsb2Fk RmlsZVVSTCcgKSB7CgkJdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgg J213LXVwbG9hZC1tYXhmaWxlc2l6ZScgKTsKCQlpZiggZSApIGUuc3R5bGUuZGlz cGxheSA9ICJub25lIjsKCgkJdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCggJ213LXVwbG9hZC1tYXhmaWxlc2l6ZS11cmwnICk7CgkJaWYoIGUgKSBlLnN0 eWxlLmRpc3BsYXkgPSAiYmxvY2siOwoJfQoJaWYoIGlkYiA9PSAnd3BVcGxvYWRG aWxlJyApIHsKCQl2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnbXct dXBsb2FkLW1heGZpbGVzaXplLXVybCcgKTsKCQlpZiggZSApIGUuc3R5bGUuZGlz cGxheSA9ICAibm9uZSI7CgoJCXZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 SWQoICdtdy11cGxvYWQtbWF4ZmlsZXNpemUnICk7CgkJaWYoIGUgKSBlLnN0eWxl LmRpc3BsYXkgPSAgImJsb2NrIjsKCX0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlk KCBpZGEgKS5kaXNhYmxlZCA9IHRydWU7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCggaWRiICkuZGlzYWJsZWQgPSBmYWxzZTsKfQoKZnVuY3Rpb24gdG9nZ2xlX2Vs ZW1lbnRfY2hlY2soaWRhLGlkYikgewoJaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50 QnlJZCkgewoJCXJldHVybjsKCX0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlk YSkuY2hlY2tlZD10cnVlOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRiKS5j aGVja2VkPWZhbHNlOwp9CgovKgoJV3JpdHRlbiBieSBKb25hdGhhbiBTbm9vaywg aHR0cDovL3d3dy5zbm9vay5jYS9qb25hdGhhbgoJQWRkLW9ucyBieSBSb2JlcnQg TnltYW4sIGh0dHA6Ly93d3cucm9iZXJ0bnltYW4uY29tCglBdXRob3Igc2F5cyAi VGhlIGNyZWRpdCBjb21tZW50IGlzIGFsbCBpdCB0YWtlcywgbm8gbGljZW5zZS4g R28gY3Jhenkgd2l0aCBpdCE6LSkiCglGcm9tIGh0dHA6Ly93d3cucm9iZXJ0bnlt YW4uY29tLzIwMDUvMTEvMDcvdGhlLXVsdGltYXRlLWdldGVsZW1lbnRzYnljbGFz c25hbWUvCiovCmZ1bmN0aW9uIGdldEVsZW1lbnRzQnlDbGFzc05hbWUob0VsbSwg c3RyVGFnTmFtZSwgb0NsYXNzTmFtZXMpewoJdmFyIGFyclJldHVybkVsZW1lbnRz ID0gbmV3IEFycmF5KCk7CglpZiAoIHR5cGVvZiggb0VsbS5nZXRFbGVtZW50c0J5 Q2xhc3NOYW1lICkgPT0gImZ1bmN0aW9uIiApIHsKCQkvKiBVc2UgYSBuYXRpdmUg aW1wbGVtZW50YXRpb24gd2hlcmUgcG9zc2libGUgRkYzLCBTYWYzLjIsIE9wZXJh IDkuNSAqLwoJCXZhciBhcnJOYXRpdmVSZXR1cm4gPSBvRWxtLmdldEVsZW1lbnRz QnlDbGFzc05hbWUoIG9DbGFzc05hbWVzICk7CgkJaWYgKCBzdHJUYWdOYW1lID09 ICIqIiApCgkJCXJldHVybiBhcnJOYXRpdmVSZXR1cm47CgkJZm9yICggdmFyIGg9 MDsgaCA8IGFyck5hdGl2ZVJldHVybi5sZW5ndGg7IGgrKyApIHsKCQkJaWYoIGFy ck5hdGl2ZVJldHVybltoXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT0gc3RyVGFn TmFtZS50b0xvd2VyQ2FzZSgpICkKCQkJCWFyclJldHVybkVsZW1lbnRzW2FyclJl dHVybkVsZW1lbnRzLmxlbmd0aF0gPSBhcnJOYXRpdmVSZXR1cm5baF07CgkJfQoJ CXJldHVybiBhcnJSZXR1cm5FbGVtZW50czsKCX0KCXZhciBhcnJFbGVtZW50cyA9 IChzdHJUYWdOYW1lID09ICIqIiAmJiBvRWxtLmFsbCk/IG9FbG0uYWxsIDogb0Vs bS5nZXRFbGVtZW50c0J5VGFnTmFtZShzdHJUYWdOYW1lKTsKCXZhciBhcnJSZWdF eHBDbGFzc05hbWVzID0gbmV3IEFycmF5KCk7CglpZih0eXBlb2Ygb0NsYXNzTmFt ZXMgPT0gIm9iamVjdCIpewoJCWZvcih2YXIgaT0wOyBpPG9DbGFzc05hbWVzLmxl bmd0aDsgaSsrKXsKCQkJYXJyUmVnRXhwQ2xhc3NOYW1lc1thcnJSZWdFeHBDbGFz c05hbWVzLmxlbmd0aF0gPQoJCQkJbmV3IFJlZ0V4cCgiKF58XFxzKSIgKyBvQ2xh c3NOYW1lc1tpXS5yZXBsYWNlKC9cLS9nLCAiXFwtIikgKyAiKFxcc3wkKSIpOwoJ CX0KCX0KCWVsc2V7CgkJYXJyUmVnRXhwQ2xhc3NOYW1lc1thcnJSZWdFeHBDbGFz c05hbWVzLmxlbmd0aF0gPQoJCQluZXcgUmVnRXhwKCIoXnxcXHMpIiArIG9DbGFz c05hbWVzLnJlcGxhY2UoL1wtL2csICJcXC0iKSArICIoXFxzfCQpIik7Cgl9Cgl2 YXIgb0VsZW1lbnQ7Cgl2YXIgYk1hdGNoZXNBbGw7Cglmb3IodmFyIGo9MDsgajxh cnJFbGVtZW50cy5sZW5ndGg7IGorKyl7CgkJb0VsZW1lbnQgPSBhcnJFbGVtZW50 c1tqXTsKCQliTWF0Y2hlc0FsbCA9IHRydWU7CgkJZm9yKHZhciBrPTA7IGs8YXJy UmVnRXhwQ2xhc3NOYW1lcy5sZW5ndGg7IGsrKyl7CgkJCWlmKCFhcnJSZWdFeHBD bGFzc05hbWVzW2tdLnRlc3Qob0VsZW1lbnQuY2xhc3NOYW1lKSl7CgkJCQliTWF0 Y2hlc0FsbCA9IGZhbHNlOwoJCQkJYnJlYWs7CgkJCX0KCQl9CgkJaWYoYk1hdGNo ZXNBbGwpewoJCQlhcnJSZXR1cm5FbGVtZW50c1thcnJSZXR1cm5FbGVtZW50cy5s ZW5ndGhdID0gb0VsZW1lbnQ7CgkJfQoJfQoJcmV0dXJuIChhcnJSZXR1cm5FbGVt ZW50cykKfQoKZnVuY3Rpb24gcmVkaXJlY3RUb0ZyYWdtZW50KGZyYWdtZW50KSB7 Cgl2YXIgbWF0Y2ggPSBuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9BcHBsZVdl YktpdFwvKFxkKykvKTsKCWlmIChtYXRjaCkgewoJCXZhciB3ZWJLaXRWZXJzaW9u ID0gcGFyc2VJbnQobWF0Y2hbMV0pOwoJCWlmICh3ZWJLaXRWZXJzaW9uIDwgNDIw KSB7CgkJCS8vIFJlbGVhc2VkIFNhZmFyaSB3LyBXZWJLaXQgNDE4LjkuMSBtZXNz ZXMgdXAgaG9ycmlibHkKCQkJLy8gTmlnaHRsaWVzIG9mIDQyMCsgYXJlIG9rCgkJ CXJldHVybjsKCQl9Cgl9CglpZiAoaXNfZ2Vja28pIHsKCQkvLyBNb3ppbGxhIG5l ZWRzIHRvIHdhaXQgdW50aWwgYWZ0ZXIgbG9hZCwgb3RoZXJ3aXNlIHRoZSB3aW5k b3cgZG9lc24ndCBzY3JvbGwKCQlhZGRPbmxvYWRIb29rKGZ1bmN0aW9uICgpIHsK CQkJaWYgKHdpbmRvdy5sb2NhdGlvbi5oYXNoID09ICIiKQoJCQkJd2luZG93Lmxv Y2F0aW9uLmhhc2ggPSBmcmFnbWVudDsKCQl9KTsKCX0gZWxzZSB7CgkJaWYgKHdp bmRvdy5sb2NhdGlvbi5oYXNoID09ICIiKQoJCQl3aW5kb3cubG9jYXRpb24uaGFz aCA9IGZyYWdtZW50OwoJfQp9CgovKgogKiBUYWJsZSBzb3J0aW5nIHNjcmlwdCBi YXNlZCBvbiBvbmUgKGMpIDE5OTctMjAwNiBTdHVhcnQgTGFuZ3JpZGdlIGFuZCBK b29zdAogKiBkZSBWYWxrOgogKiBodHRwOi8vd3d3Lmpvb3N0ZGV2YWxrLm5sL2Nv ZGUvc29ydGFibGUtdGFibGUvCiAqIGh0dHA6Ly93d3cua3J5b2dlbml4Lm9yZy9j b2RlL2Jyb3dzZXIvc29ydHRhYmxlLwogKgogKiBAdG9kbyBkb24ndCBicmVhayBv biBjb2xzcGFucy9yb3dzcGFucyAoYnVnIDgwMjgpCiAqIEB0b2RvIGxhbmd1YWdl LXNwZWNpZmljIGRpZ2l0IGdyb3VwaW5nL2RlY2ltYWxzIChidWcgODA2MykKICog QHRvZG8gc3VwcG9ydCBhbGwgYWNjZXB0ZWQgZGF0ZSBmb3JtYXRzIChidWcgODIy NikKICovCgp2YXIgdHNfaW1hZ2VfcGF0aCA9IHN0eWxlcGF0aCsiL2NvbW1vbi9p bWFnZXMvIjsKdmFyIHRzX2ltYWdlX3VwID0gInNvcnRfdXAuZ2lmIjsKdmFyIHRz X2ltYWdlX2Rvd24gPSAic29ydF9kb3duLmdpZiI7CnZhciB0c19pbWFnZV9ub25l ID0gInNvcnRfbm9uZS5naWYiOwp2YXIgdHNfZXVyb3BlYW5kYXRlID0gd2dDb250 ZW50TGFuZ3VhZ2UgIT0gImVuIjsgLy8gVGhlIG5vbi1BbWVyaWNhbi1pbmNsaW5l ZCBjYW4gY2hhbmdlIHRvICJ0cnVlIgp2YXIgdHNfYWx0ZXJuYXRlX3Jvd19jb2xv cnMgPSBmYWxzZTsKdmFyIHRzX251bWJlcl90cmFuc2Zvcm1fdGFibGUgPSBudWxs Owp2YXIgdHNfbnVtYmVyX3JlZ2V4ID0gbnVsbDsKCmZ1bmN0aW9uIHNvcnRhYmxl c19pbml0KCkgewoJdmFyIGlkbnVtID0gMDsKCS8vIEZpbmQgYWxsIHRhYmxlcyB3 aXRoIGNsYXNzIHNvcnRhYmxlIGFuZCBtYWtlIHRoZW0gc29ydGFibGUKCXZhciB0 YWJsZXMgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGRvY3VtZW50LCAidGFibGUi LCAic29ydGFibGUiKTsKCWZvciAodmFyIHRpID0gMDsgdGkgPCB0YWJsZXMubGVu Z3RoIDsgdGkrKykgewoJCWlmICghdGFibGVzW3RpXS5pZCkgewoJCQl0YWJsZXNb dGldLnNldEF0dHJpYnV0ZSgnaWQnLCdzb3J0YWJsZV90YWJsZV9pZF8nK2lkbnVt KTsKCQkJKytpZG51bTsKCQl9CgkJdHNfbWFrZVNvcnRhYmxlKHRhYmxlc1t0aV0p OwoJfQp9CgpmdW5jdGlvbiB0c19tYWtlU29ydGFibGUodGFibGUpIHsKCXZhciBm aXJzdFJvdzsKCWlmICh0YWJsZS5yb3dzICYmIHRhYmxlLnJvd3MubGVuZ3RoID4g MCkgewoJCWlmICh0YWJsZS50SGVhZCAmJiB0YWJsZS50SGVhZC5yb3dzLmxlbmd0 aCA+IDApIHsKCQkJZmlyc3RSb3cgPSB0YWJsZS50SGVhZC5yb3dzW3RhYmxlLnRI ZWFkLnJvd3MubGVuZ3RoLTFdOwoJCX0gZWxzZSB7CgkJCWZpcnN0Um93ID0gdGFi bGUucm93c1swXTsKCQl9Cgl9CglpZiAoIWZpcnN0Um93KSByZXR1cm47CgoJLy8g V2UgaGF2ZSBhIGZpcnN0IHJvdzogYXNzdW1lIGl0J3MgdGhlIGhlYWRlciwgYW5k IG1ha2UgaXRzIGNvbnRlbnRzIGNsaWNrYWJsZSBsaW5rcwoJZm9yICh2YXIgaSA9 IDA7IGkgPCBmaXJzdFJvdy5jZWxscy5sZW5ndGg7IGkrKykgewoJCXZhciBjZWxs ID0gZmlyc3RSb3cuY2VsbHNbaV07CgkJaWYgKCgiICIrY2VsbC5jbGFzc05hbWUr IiAiKS5pbmRleE9mKCIgdW5zb3J0YWJsZSAiKSA9PSAtMSkgewoJCQljZWxsLmlu bmVySFRNTCArPSAnJm5ic3A7Jm5ic3A7JwoJCQkJKyAnPGEgaHJlZj0iIyIgY2xh c3M9InNvcnRoZWFkZXIiICcKCQkJCSsgJ29uY2xpY2s9InRzX3Jlc29ydFRhYmxl KHRoaXMpO3JldHVybiBmYWxzZTsiPicKCQkJCSsgJzxzcGFuIGNsYXNzPSJzb3J0 YXJyb3ciPicKCQkJCSsgJzxpbWcgc3JjPSInCgkJCQkrIHRzX2ltYWdlX3BhdGgK CQkJCSsgdHNfaW1hZ2Vfbm9uZQoJCQkJKyAnIiBhbHQ9IiZkYXJyOyIvPjwvc3Bh bj48L2E+JzsKCQl9Cgl9CglpZiAodHNfYWx0ZXJuYXRlX3Jvd19jb2xvcnMpIHsK CQl0c19hbHRlcm5hdGUodGFibGUpOwoJfQp9CgpmdW5jdGlvbiB0c19nZXRJbm5l clRleHQoZWwpIHsKCXJldHVybiBnZXRJbm5lclRleHQoIGVsICk7Cn0KCmZ1bmN0 aW9uIHRzX3Jlc29ydFRhYmxlKGxuaykgewoJLy8gZ2V0IHRoZSBzcGFuCgl2YXIg c3BhbiA9IGxuay5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3BhbicpWzBdOwoKCXZh ciB0ZCA9IGxuay5wYXJlbnROb2RlOwoJdmFyIHRyID0gdGQucGFyZW50Tm9kZTsK CXZhciBjb2x1bW4gPSB0ZC5jZWxsSW5kZXg7CgoJdmFyIHRhYmxlID0gdHIucGFy ZW50Tm9kZTsKCXdoaWxlICh0YWJsZSAmJiAhKHRhYmxlLnRhZ05hbWUgJiYgdGFi bGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09ICd0YWJsZScpKQoJCXRhYmxlID0g dGFibGUucGFyZW50Tm9kZTsKCWlmICghdGFibGUpIHJldHVybjsKCglpZiAodGFi bGUucm93cy5sZW5ndGggPD0gMSkgcmV0dXJuOwoKCS8vIEdlbmVyYXRlIHRoZSBu dW1iZXIgdHJhbnNmb3JtIHRhYmxlIGlmIGl0J3Mgbm90IGRvbmUgYWxyZWFkeQoJ aWYgKHRzX251bWJlcl90cmFuc2Zvcm1fdGFibGUgPT0gbnVsbCkgewoJCXRzX2lu aXRUcmFuc2Zvcm1UYWJsZSgpOwoJfQoKCS8vIFdvcmsgb3V0IGEgdHlwZSBmb3Ig dGhlIGNvbHVtbgoJLy8gU2tpcCB0aGUgZmlyc3Qgcm93IGlmIHRoYXQncyB3aGVy ZSB0aGUgaGVhZGluZ3MgYXJlCgl2YXIgcm93U3RhcnQgPSAodGFibGUudEhlYWQg JiYgdGFibGUudEhlYWQucm93cy5sZW5ndGggPiAwID8gMCA6IDEpOwoKCXZhciBp dG0gPSAiIjsKCWZvciAodmFyIGkgPSByb3dTdGFydDsgaSA8IHRhYmxlLnJvd3Mu bGVuZ3RoOyBpKyspIHsKCQlpZiAodGFibGUucm93c1tpXS5jZWxscy5sZW5ndGgg PiBjb2x1bW4pIHsKCQkJaXRtID0gdHNfZ2V0SW5uZXJUZXh0KHRhYmxlLnJvd3Nb aV0uY2VsbHNbY29sdW1uXSk7CgkJCWl0bSA9IGl0bS5yZXBsYWNlKC9eW1xzXHhh MF0rLywgIiIpLnJlcGxhY2UoL1tcc1x4YTBdKyQvLCAiIik7CgkJCWlmIChpdG0g IT0gIiIpIGJyZWFrOwoJCX0KCX0KCgkvLyBUT0RPOiBidWcgODIyNiwgbG9jYWxp c2VkIGRhdGUgZm9ybWF0cwoJdmFyIHNvcnRmbiA9IHRzX3NvcnRfZ2VuZXJpYzsK CXZhciBwcmVwcm9jZXNzb3IgPSB0c190b0xvd2VyQ2FzZTsKCWlmICgvXlxkXGRb XC8uIC1dW2EtekEtWl17M31bXC8uIC1dXGRcZFxkXGQkLy50ZXN0KGl0bSkpIHsK CQlwcmVwcm9jZXNzb3IgPSB0c19kYXRlVG9Tb3J0S2V5OwoJfSBlbHNlIGlmICgv XlxkXGRbXC8uLV1cZFxkW1wvLi1dXGRcZFxkXGQkLy50ZXN0KGl0bSkpIHsKCQlw cmVwcm9jZXNzb3IgPSB0c19kYXRlVG9Tb3J0S2V5OwoJfSBlbHNlIGlmICgvXlxk XGRbXC8uLV1cZFxkW1wvLi1dXGRcZCQvLnRlc3QoaXRtKSkgewoJCXByZXByb2Nl c3NvciA9IHRzX2RhdGVUb1NvcnRLZXk7CgkvLyBwb3VuZCBkb2xsYXIgZXVybyB5 ZW4gY3VycmVuY3kgY2VudHMKCX0gZWxzZSBpZiAoLyheW1x1MDBhMyRcdTIwYWNc dTAwYTRcdTAwYTVdfFx1MDBhMiQpLy50ZXN0KGl0bSkpIHsKCQlwcmVwcm9jZXNz b3IgPSB0c19jdXJyZW5jeVRvU29ydEtleTsKCX0gZWxzZSBpZiAodHNfbnVtYmVy X3JlZ2V4LnRlc3QoaXRtKSkgewoJCXByZXByb2Nlc3NvciA9IHRzX3BhcnNlRmxv YXQ7Cgl9CgoJdmFyIHJldmVyc2UgPSAoc3Bhbi5nZXRBdHRyaWJ1dGUoInNvcnRk aXIiKSA9PSAnZG93bicpOwoKCXZhciBuZXdSb3dzID0gbmV3IEFycmF5KCk7Cgl2 YXIgc3RhdGljUm93cyA9IG5ldyBBcnJheSgpOwoJZm9yICh2YXIgaiA9IHJvd1N0 YXJ0OyBqIDwgdGFibGUucm93cy5sZW5ndGg7IGorKykgewoJCXZhciByb3cgPSB0 YWJsZS5yb3dzW2pdOwoJCWlmKCgiICIrcm93LmNsYXNzTmFtZSsiICIpLmluZGV4 T2YoIiB1bnNvcnRhYmxlICIpIDwgMCkgewoJCQl2YXIga2V5VGV4dCA9IHRzX2dl dElubmVyVGV4dChyb3cuY2VsbHNbY29sdW1uXSk7CgkJCWlmKGtleVRleHQgPT0g dW5kZWZpbmVkKSB7CgkJCQlrZXlUZXh0ID0gIiI7IAoJCQl9CgkJCXZhciBvbGRJ bmRleCA9IChyZXZlcnNlID8gLWogOiBqKTsKCQkJdmFyIHByZXByb2Nlc3NlZCA9 IHByZXByb2Nlc3Nvcigga2V5VGV4dC5yZXBsYWNlKC9eW1xzXHhhMF0rLywgIiIp LnJlcGxhY2UoL1tcc1x4YTBdKyQvLCAiIikgKTsKCgkJCW5ld1Jvd3NbbmV3Um93 cy5sZW5ndGhdID0gbmV3IEFycmF5KHJvdywgcHJlcHJvY2Vzc2VkLCBvbGRJbmRl eCk7CgkJfSBlbHNlIHN0YXRpY1Jvd3Nbc3RhdGljUm93cy5sZW5ndGhdID0gbmV3 IEFycmF5KHJvdywgZmFsc2UsIGotcm93U3RhcnQpOwoJfQoKCW5ld1Jvd3Muc29y dChzb3J0Zm4pOwoKCXZhciBhcnJvd0hUTUw7CglpZiAocmV2ZXJzZSkgewoJCWFy cm93SFRNTCA9ICc8aW1nIHNyYz0iJysgdHNfaW1hZ2VfcGF0aCArIHRzX2ltYWdl X2Rvd24gKyAnIiBhbHQ9IiZkYXJyOyIvPic7CgkJbmV3Um93cy5yZXZlcnNlKCk7 CgkJc3Bhbi5zZXRBdHRyaWJ1dGUoJ3NvcnRkaXInLCd1cCcpOwoJfSBlbHNlIHsK CQlhcnJvd0hUTUwgPSAnPGltZyBzcmM9IicrIHRzX2ltYWdlX3BhdGggKyB0c19p bWFnZV91cCArICciIGFsdD0iJnVhcnI7Ii8+JzsKCQlzcGFuLnNldEF0dHJpYnV0 ZSgnc29ydGRpcicsJ2Rvd24nKTsKCX0KCglmb3IgKHZhciBpID0gMDsgaSA8IHN0 YXRpY1Jvd3MubGVuZ3RoOyBpKyspIHsKCQl2YXIgcm93ID0gc3RhdGljUm93c1tp XTsKCQluZXdSb3dzLnNwbGljZShyb3dbMl0sIDAsIHJvdyk7Cgl9CgoJLy8gV2Ug YXBwZW5kQ2hpbGQgcm93cyB0aGF0IGFscmVhZHkgZXhpc3QgdG8gdGhlIHRib2R5 LCBzbyBpdCBtb3ZlcyB0aGVtIHJhdGhlciB0aGFuIGNyZWF0aW5nIG5ldyBvbmVz CgkvLyBkb24ndCBkbyBzb3J0Ym90dG9tIHJvd3MKCWZvciAodmFyIGkgPSAwOyBp IDwgbmV3Um93cy5sZW5ndGg7IGkrKykgewoJCWlmICgoIiAiK25ld1Jvd3NbaV1b MF0uY2xhc3NOYW1lKyIgIikuaW5kZXhPZigiIHNvcnRib3R0b20gIikgPT0gLTEp CgkJCXRhYmxlLnRCb2RpZXNbMF0uYXBwZW5kQ2hpbGQobmV3Um93c1tpXVswXSk7 Cgl9CgkvLyBkbyBzb3J0Ym90dG9tIHJvd3Mgb25seQoJZm9yICh2YXIgaSA9IDA7 IGkgPCBuZXdSb3dzLmxlbmd0aDsgaSsrKSB7CgkJaWYgKCgiICIrbmV3Um93c1tp XVswXS5jbGFzc05hbWUrIiAiKS5pbmRleE9mKCIgc29ydGJvdHRvbSAiKSAhPSAt MSkKCQkJdGFibGUudEJvZGllc1swXS5hcHBlbmRDaGlsZChuZXdSb3dzW2ldWzBd KTsKCX0KCgkvLyBEZWxldGUgYW55IG90aGVyIGFycm93cyB0aGVyZSBtYXkgYmUg c2hvd2luZwoJdmFyIHNwYW5zID0gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh0ciwg InNwYW4iLCAic29ydGFycm93Iik7Cglmb3IgKHZhciBpID0gMDsgaSA8IHNwYW5z Lmxlbmd0aDsgaSsrKSB7CgkJc3BhbnNbaV0uaW5uZXJIVE1MID0gJzxpbWcgc3Jj PSInKyB0c19pbWFnZV9wYXRoICsgdHNfaW1hZ2Vfbm9uZSArICciIGFsdD0iJmRh cnI7Ii8+JzsKCX0KCXNwYW4uaW5uZXJIVE1MID0gYXJyb3dIVE1MOwoKCWlmICh0 c19hbHRlcm5hdGVfcm93X2NvbG9ycykgewoJCXRzX2FsdGVybmF0ZSh0YWJsZSk7 Cgl9Cn0KCmZ1bmN0aW9uIHRzX2luaXRUcmFuc2Zvcm1UYWJsZSgpIHsKCWlmICgg dHlwZW9mIHdnU2VwYXJhdG9yVHJhbnNmb3JtVGFibGUgPT0gInVuZGVmaW5lZCIK CQkJfHwgKCB3Z1NlcGFyYXRvclRyYW5zZm9ybVRhYmxlWzBdID09ICcnICYmIHdn RGlnaXRUcmFuc2Zvcm1UYWJsZVsyXSA9PSAnJyApICkKCXsKCQlkaWdpdENsYXNz ID0gIlswLTksLl0iOwoJCXRzX251bWJlcl90cmFuc2Zvcm1fdGFibGUgPSBmYWxz ZTsKCX0gZWxzZSB7CgkJdHNfbnVtYmVyX3RyYW5zZm9ybV90YWJsZSA9IHt9OwoJ CS8vIFVucGFjayB0aGUgdHJhbnNmb3JtIHRhYmxlCgkJLy8gU2VwYXJhdG9ycwoJ CWFzY2lpID0gd2dTZXBhcmF0b3JUcmFuc2Zvcm1UYWJsZVswXS5zcGxpdCgiXHQi KTsKCQlsb2NhbGlzZWQgPSB3Z1NlcGFyYXRvclRyYW5zZm9ybVRhYmxlWzFdLnNw bGl0KCJcdCIpOwoJCWZvciAoIHZhciBpID0gMDsgaSA8IGFzY2lpLmxlbmd0aDsg aSsrICkgewoJCQl0c19udW1iZXJfdHJhbnNmb3JtX3RhYmxlW2xvY2FsaXNlZFtp XV0gPSBhc2NpaVtpXTsKCQl9CgkJLy8gRGlnaXRzCgkJYXNjaWkgPSB3Z0RpZ2l0 VHJhbnNmb3JtVGFibGVbMF0uc3BsaXQoIlx0Iik7CgkJbG9jYWxpc2VkID0gd2dE aWdpdFRyYW5zZm9ybVRhYmxlWzFdLnNwbGl0KCJcdCIpOwoJCWZvciAoIHZhciBp ID0gMDsgaSA8IGFzY2lpLmxlbmd0aDsgaSsrICkgewoJCQl0c19udW1iZXJfdHJh bnNmb3JtX3RhYmxlW2xvY2FsaXNlZFtpXV0gPSBhc2NpaVtpXTsKCQl9CgoJCS8v IENvbnN0cnVjdCByZWdleCBmb3IgbnVtYmVyIGlkZW50aWZpY2F0aW9uCgkJZGln aXRzID0gWycwJywgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnLCAn OCcsICc5JywgJywnLCAnXFwuJ107CgkJbWF4RGlnaXRMZW5ndGggPSAxOwoJCWZv ciAoIHZhciBkaWdpdCBpbiB0c19udW1iZXJfdHJhbnNmb3JtX3RhYmxlICkgewoJ CQkvLyBFc2NhcGUgcmVnZXggbWV0YWNoYXJhY3RlcnMKCQkJZGlnaXRzLnB1c2go CgkJCQlkaWdpdC5yZXBsYWNlKCAvW1xcXFwkXCpcK1w/XC5cKFwpXHxce1x9XFtc XVwtXS8sCgkJCQkJZnVuY3Rpb24oIHMgKSB7IHJldHVybiAnXFwnICsgczsgfSAp CgkJCSk7CgkJCWlmIChkaWdpdC5sZW5ndGggPiBtYXhEaWdpdExlbmd0aCkgewoJ CQkJbWF4RGlnaXRMZW5ndGggPSBkaWdpdC5sZW5ndGg7CgkJCX0KCQl9CgkJaWYg KCBtYXhEaWdpdExlbmd0aCA+IDEgKSB7CgkJCWRpZ2l0Q2xhc3MgPSAnWycgKyBk aWdpdHMuam9pbiggJycsIGRpZ2l0cyApICsgJ10nOwoJCX0gZWxzZSB7CgkJCWRp Z2l0Q2xhc3MgPSAnKCcgKyBkaWdpdHMuam9pbiggJ3wnLCBkaWdpdHMgKSArICcp JzsKCQl9Cgl9CgoJLy8gV2UgYWxsb3cgYSB0cmFpbGluZyBwZXJjZW50IHNpZ24s IHdoaWNoIHdlIGp1c3Qgc3RyaXAuICBUaGlzIHdvcmtzIGZpbmUKCS8vIGlmIHBl cmNlbnRzIGFuZCByZWd1bGFyIG51bWJlcnMgYXJlbid0IGJlaW5nIG1peGVkLgoJ dHNfbnVtYmVyX3JlZ2V4ID0gbmV3IFJlZ0V4cCgKCQkiXigiICsKCQkJIlsrLV0/ WzAtOV1bMC05LF0qKFxcLlswLTksXSopPyhFWystXT9bMC05XVswLTksXSopPyIg KyAvLyBGb3J0cmFuLXN0eWxlIHNjaWVudGlmaWMKCQkJInwiICsKCQkJIlsrLV0/ IiArIGRpZ2l0Q2xhc3MgKyAiKyU/IiArIC8vIEdlbmVyaWMgbG9jYWxpc2VkCgkJ IikkIiwgImkiCgkpOwp9CgpmdW5jdGlvbiB0c190b0xvd2VyQ2FzZSggcyApIHsK CXJldHVybiBzLnRvTG93ZXJDYXNlKCk7Cn0KCmZ1bmN0aW9uIHRzX2RhdGVUb1Nv cnRLZXkoZGF0ZSkgewoJLy8geTJrIG5vdGVzOiB0d28gZGlnaXQgeWVhcnMgbGVz cyB0aGFuIDUwIGFyZSB0cmVhdGVkIGFzIDIwWFgsIGdyZWF0ZXIgdGhhbiA1MCBh cmUgdHJlYXRlZCBhcyAxOVhYCglpZiAoZGF0ZS5sZW5ndGggPT0gMTEpIHsKCQlz d2l0Y2ggKGRhdGUuc3Vic3RyKDMsMykudG9Mb3dlckNhc2UoKSkgewoJCQljYXNl ICJqYW4iOiB2YXIgbW9udGggPSAiMDEiOyBicmVhazsKCQkJY2FzZSAiZmViIjog dmFyIG1vbnRoID0gIjAyIjsgYnJlYWs7CgkJCWNhc2UgIm1hciI6IHZhciBtb250 aCA9ICIwMyI7IGJyZWFrOwoJCQljYXNlICJhcHIiOiB2YXIgbW9udGggPSAiMDQi OyBicmVhazsKCQkJY2FzZSAibWF5IjogdmFyIG1vbnRoID0gIjA1IjsgYnJlYWs7 CgkJCWNhc2UgImp1biI6IHZhciBtb250aCA9ICIwNiI7IGJyZWFrOwoJCQljYXNl ICJqdWwiOiB2YXIgbW9udGggPSAiMDciOyBicmVhazsKCQkJY2FzZSAiYXVnIjog dmFyIG1vbnRoID0gIjA4IjsgYnJlYWs7CgkJCWNhc2UgInNlcCI6IHZhciBtb250 aCA9ICIwOSI7IGJyZWFrOwoJCQljYXNlICJvY3QiOiB2YXIgbW9udGggPSAiMTAi OyBicmVhazsKCQkJY2FzZSAibm92IjogdmFyIG1vbnRoID0gIjExIjsgYnJlYWs7 CgkJCWNhc2UgImRlYyI6IHZhciBtb250aCA9ICIxMiI7IGJyZWFrOwoJCQkvLyBk ZWZhdWx0OiB2YXIgbW9udGggPSAiMDAiOwoJCX0KCQlyZXR1cm4gZGF0ZS5zdWJz dHIoNyw0KSttb250aCtkYXRlLnN1YnN0cigwLDIpOwoJfSBlbHNlIGlmIChkYXRl Lmxlbmd0aCA9PSAxMCkgewoJCWlmICh0c19ldXJvcGVhbmRhdGUgPT0gZmFsc2Up IHsKCQkJcmV0dXJuIGRhdGUuc3Vic3RyKDYsNCkrZGF0ZS5zdWJzdHIoMCwyKStk YXRlLnN1YnN0cigzLDIpOwoJCX0gZWxzZSB7CgkJCXJldHVybiBkYXRlLnN1YnN0 cig2LDQpK2RhdGUuc3Vic3RyKDMsMikrZGF0ZS5zdWJzdHIoMCwyKTsKCQl9Cgl9 IGVsc2UgaWYgKGRhdGUubGVuZ3RoID09IDgpIHsKCQl5ciA9IGRhdGUuc3Vic3Ry KDYsMik7CgkJaWYgKHBhcnNlSW50KHlyKSA8IDUwKSB7CgkJCXlyID0gJzIwJyt5 cjsKCQl9IGVsc2UgewoJCQl5ciA9ICcxOScreXI7CgkJfQoJCWlmICh0c19ldXJv cGVhbmRhdGUgPT0gdHJ1ZSkgewoJCQlyZXR1cm4geXIrZGF0ZS5zdWJzdHIoMywy KStkYXRlLnN1YnN0cigwLDIpOwoJCX0gZWxzZSB7CgkJCXJldHVybiB5citkYXRl LnN1YnN0cigwLDIpK2RhdGUuc3Vic3RyKDMsMik7CgkJfQoJfQoJcmV0dXJuICIw MDAwMDAwMCI7Cn0KCmZ1bmN0aW9uIHRzX3BhcnNlRmxvYXQoIHMgKSB7CglpZiAo ICFzICkgewoJCXJldHVybiAwOwoJfQoJaWYgKHRzX251bWJlcl90cmFuc2Zvcm1f dGFibGUgIT0gZmFsc2UpIHsKCQl2YXIgbmV3TnVtID0gJycsIGM7CgoJCWZvciAo IHZhciBwID0gMDsgcCA8IHMubGVuZ3RoOyBwKysgKSB7CgkJCWMgPSBzLmNoYXJB dCggcCApOwoJCQlpZiAoYyBpbiB0c19udW1iZXJfdHJhbnNmb3JtX3RhYmxlKSB7 CgkJCQluZXdOdW0gKz0gdHNfbnVtYmVyX3RyYW5zZm9ybV90YWJsZVtjXTsKCQkJ fSBlbHNlIHsKCQkJCW5ld051bSArPSBjOwoJCQl9CgkJfQoJCXMgPSBuZXdOdW07 Cgl9CgoJbnVtID0gcGFyc2VGbG9hdChzLnJlcGxhY2UoLywvZywgIiIpKTsKCXJl dHVybiAoaXNOYU4obnVtKSA/IDAgOiBudW0pOwp9CgpmdW5jdGlvbiB0c19jdXJy ZW5jeVRvU29ydEtleSggcyApIHsKCXJldHVybiB0c19wYXJzZUZsb2F0KHMucmVw bGFjZSgvW14wLTkuLF0vZywnJykpOwp9CgpmdW5jdGlvbiB0c19zb3J0X2dlbmVy aWMoYSwgYikgewoJcmV0dXJuIGFbMV0gPCBiWzFdID8gLTEgOiBhWzFdID4gYlsx XSA/IDEgOiBhWzJdIC0gYlsyXTsKfQoKZnVuY3Rpb24gdHNfYWx0ZXJuYXRlKHRh YmxlKSB7CgkvLyBUYWtlIG9iamVjdCB0YWJsZSBhbmQgZ2V0IGFsbCBpdCdzIHRi b2RpZXMuCgl2YXIgdGFibGVCb2RpZXMgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFn TmFtZSgidGJvZHkiKTsKCS8vIExvb3AgdGhyb3VnaCB0aGVzZSB0Ym9kaWVzCglm b3IgKHZhciBpID0gMDsgaSA8IHRhYmxlQm9kaWVzLmxlbmd0aDsgaSsrKSB7CgkJ Ly8gVGFrZSB0aGUgdGJvZHksIGFuZCBnZXQgYWxsIGl0J3Mgcm93cwoJCXZhciB0 YWJsZVJvd3MgPSB0YWJsZUJvZGllc1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgi dHIiKTsKCQkvLyBMb29wIHRocm91Z2ggdGhlc2Ugcm93cwoJCS8vIFN0YXJ0IGF0 IDEgYmVjYXVzZSB3ZSB3YW50IHRvIGxlYXZlIHRoZSBoZWFkaW5nIHJvdyB1bnRv dWNoZWQKCQlmb3IgKHZhciBqID0gMDsgaiA8IHRhYmxlUm93cy5sZW5ndGg7IGor KykgewoJCQkvLyBDaGVjayBpZiBqIGlzIGV2ZW4sIGFuZCBhcHBseSBjbGFzc2Vz IGZvciBib3RoIHBvc3NpYmxlIHJlc3VsdHMKCQkJdmFyIG9sZENsYXNzZXMgPSB0 YWJsZVJvd3Nbal0uY2xhc3NOYW1lLnNwbGl0KCIgIik7CgkJCXZhciBuZXdDbGFz c05hbWUgPSAiIjsKCQkJZm9yICh2YXIgayA9IDA7IGsgPCBvbGRDbGFzc2VzLmxl bmd0aDsgaysrKSB7CgkJCQlpZiAob2xkQ2xhc3Nlc1trXSAhPSAiIiAmJiBvbGRD bGFzc2VzW2tdICE9ICJldmVuIiAmJiBvbGRDbGFzc2VzW2tdICE9ICJvZGQiKQoJ CQkJCW5ld0NsYXNzTmFtZSArPSBvbGRDbGFzc2VzW2tdICsgIiAiOwoJCQl9CgkJ CXRhYmxlUm93c1tqXS5jbGFzc05hbWUgPSBuZXdDbGFzc05hbWUgKyAoaiAlIDIg PT0gMCA/ICJldmVuIiA6ICJvZGQiKTsKCQl9Cgl9Cn0KCi8qCiAqIEVuZCBvZiB0 YWJsZSBzb3J0aW5nIGNvZGUKICovCgoKLyoqCiAqIEFkZCBhIGN1dGUgbGl0dGxl IGJveCBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW4gdG8gaW5mb3JtIHRoZSB1c2Vy IG9mCiAqIHNvbWV0aGluZywgcmVwbGFjaW5nIGFueSBwcmVleGlzdGluZyBtZXNz YWdlLgogKgogKiBAcGFyYW0gU3RyaW5nIC1vci0gRG9tIE9iamVjdCBtZXNzYWdl IEhUTUwgdG8gYmUgcHV0IGluc2lkZSB0aGUgcmlnaHQgZGl2CiAqIEBwYXJhbSBT dHJpbmcgY2xhc3NOYW1lICAgVXNlZCBpbiBhZGRpbmcgYSBjbGFzczsgc2hvdWxk IGJlIGRpZmZlcmVudCBmb3IgZWFjaAogKiAgIGNhbGwgdG8gYWxsb3cgQ1NTL0pT IHRvIGhpZGUgZGlmZmVyZW50IGJveGVzLiAgbnVsbCA9IG5vIGNsYXNzIHVzZWQu CiAqIEByZXR1cm4gQm9vbGVhbiAgICAgICBUcnVlIG9uIHN1Y2Nlc3MsIGZhbHNl IG9uIGZhaWx1cmUKICovCmZ1bmN0aW9uIGpzTXNnKCBtZXNzYWdlLCBjbGFzc05h bWUgKSB7CglpZiAoICFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCApIHsKCQlyZXR1 cm4gZmFsc2U7Cgl9CgkvLyBXZSBzcGVjaWFsLWNhc2Ugc2tpbiBzdHJ1Y3R1cmVz IHByb3ZpZGVkIGJ5IHRoZSBzb2Z0d2FyZS4gIFNraW5zIHRoYXQKCS8vIGNob29z ZSB0byBhYmFuZG9uIG9yIHNpZ25pZmljYW50bHkgbW9kaWZ5IG91ciBmb3JtYXR0 aW5nIGNhbiBqdXN0IGRlZmluZQoJLy8gYW4gbXctanMtbWVzc2FnZSBkaXYgdG8g c3RhcnQgd2l0aC4KCXZhciBtZXNzYWdlRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoICdtdy1qcy1tZXNzYWdlJyApOwoJaWYgKCAhbWVzc2FnZURpdiApIHsK CQltZXNzYWdlRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ2RpdicgKTsK CQlpZiAoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnY29sdW1uLWNvbnRlbnQn ICkKCQkmJiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ2NvbnRlbnQnICkgKSB7 CgkJCS8vIE1vbm9Cb29rLCBwcmVzdW1hYmx5CgkJCWRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCAnY29udGVudCcgKS5pbnNlcnRCZWZvcmUoCgkJCQltZXNzYWdlRGl2 LAoJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICdjb250ZW50JyApLmZpcnN0 Q2hpbGQKCQkJKTsKCQl9IGVsc2UgaWYgKCBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCgnY29udGVudCcpCgkJJiYgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICdhcnRp Y2xlJyApICkgewoJCQkvLyBOb24tTW9ub2Jvb2sgYnV0IHN0aWxsIHJlY29nbml6 YWJsZSAob2xkLXN0eWxlKQoJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ2Fy dGljbGUnKS5pbnNlcnRCZWZvcmUoCgkJCQltZXNzYWdlRGl2LAoJCQkJZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoICdhcnRpY2xlJyApLmZpcnN0Q2hpbGQKCQkJKTsK CQl9IGVsc2UgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJfQoKCW1lc3NhZ2VEaXYu c2V0QXR0cmlidXRlKCAnaWQnLCAnbXctanMtbWVzc2FnZScgKTsKCW1lc3NhZ2VE aXYuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CglpZiggY2xhc3NOYW1lICkgewoJ CW1lc3NhZ2VEaXYuc2V0QXR0cmlidXRlKCAnY2xhc3MnLCAnbXctanMtbWVzc2Fn ZS0nK2NsYXNzTmFtZSApOwoJfQoKCWlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ29i amVjdCcpIHsKCQl3aGlsZSAobWVzc2FnZURpdi5oYXNDaGlsZE5vZGVzKCkpIC8v IFJlbW92ZSBvbGQgY29udGVudAoJCQltZXNzYWdlRGl2LnJlbW92ZUNoaWxkKG1l c3NhZ2VEaXYuZmlyc3RDaGlsZCk7CgkJbWVzc2FnZURpdi5hcHBlbmRDaGlsZCAo bWVzc2FnZSk7IC8vIEFwcGVuZCBuZXcgY29udGVudAoJfQoJZWxzZSB7CgkJbWVz c2FnZURpdi5pbm5lckhUTUwgPSBtZXNzYWdlOwoJfQoJcmV0dXJuIHRydWU7Cn0K Ci8qKgogKiBJbmplY3QgYSBjdXRlIGxpdHRsZSBwcm9ncmVzcyBzcGlubmVyIGFm dGVyIHRoZSBzcGVjaWZpZWQgZWxlbWVudAogKgogKiBAcGFyYW0gZWxlbWVudCBF bGVtZW50IHRvIGluamVjdCBhZnRlcgogKiBAcGFyYW0gaWQgSWRlbnRpZmllciBz dHJpbmcgKGZvciB1c2Ugd2l0aCByZW1vdmVTcGlubmVyKCksIGJlbG93KQogKi8K ZnVuY3Rpb24gaW5qZWN0U3Bpbm5lciggZWxlbWVudCwgaWQgKSB7Cgl2YXIgc3Bp bm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJpbWciICk7CglzcGlubmVy LmlkID0gIm13LXNwaW5uZXItIiArIGlkOwoJc3Bpbm5lci5zcmMgPSBzdHlsZXBh dGggKyAiL2NvbW1vbi9pbWFnZXMvc3Bpbm5lci5naWYiOwoJc3Bpbm5lci5hbHQg PSBzcGlubmVyLnRpdGxlID0gIi4uLiI7CglpZiggZWxlbWVudC5uZXh0U2libGlu ZyApIHsKCQllbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBzcGlubmVy LCBlbGVtZW50Lm5leHRTaWJsaW5nICk7Cgl9IGVsc2UgewoJCWVsZW1lbnQucGFy ZW50Tm9kZS5hcHBlbmRDaGlsZCggc3Bpbm5lciApOwoJfQp9CgovKioKICogUmVt b3ZlIGEgcHJvZ3Jlc3Mgc3Bpbm5lciBhZGRlZCB3aXRoIGluamVjdFNwaW5uZXIo KQogKgogKiBAcGFyYW0gaWQgSWRlbnRpZmllciBzdHJpbmcKICovCmZ1bmN0aW9u IHJlbW92ZVNwaW5uZXIoIGlkICkgewoJdmFyIHNwaW5uZXIgPSBkb2N1bWVudC5n ZXRFbGVtZW50QnlJZCggIm13LXNwaW5uZXItIiArIGlkICk7CglpZiggc3Bpbm5l ciApIHsKCQlzcGlubmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHNwaW5uZXIg KTsKCX0KfQoKZnVuY3Rpb24gcnVuT25sb2FkSG9vaygpIHsKCS8vIGRvbid0IHJ1 biBhbnl0aGluZyBiZWxvdyB0aGlzIGZvciBub24tZG9tIGJyb3dzZXJzCglpZiAo ZG9uZU9ubG9hZEhvb2sgfHwgIShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCAmJiBk b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSkpIHsKCQlyZXR1cm47Cgl9CgoJ Ly8gc2V0IHRoaXMgYmVmb3JlIHJ1bm5pbmcgYW55IGhvb2tzLCBzaW5jZSBhbnkg ZXJyb3JzIGJlbG93CgkvLyBtaWdodCBjYXVzZSB0aGUgZnVuY3Rpb24gdG8gdGVy bWluYXRlIHByZW1hdHVyZWx5Cglkb25lT25sb2FkSG9vayA9IHRydWU7CgoJdXBk YXRlVG9vbHRpcEFjY2Vzc0tleXMoIG51bGwgKTsKCWFrZXl0dCggbnVsbCApOwoJ c2V0dXBDaGVja2JveFNoaWZ0Q2xpY2soKTsKCXNvcnRhYmxlc19pbml0KCk7CgoJ Ly8gUnVuIGFueSBhZGRlZC1vbiBmdW5jdGlvbnMKCWZvciAodmFyIGkgPSAwOyBp IDwgb25sb2FkRnVuY3RzLmxlbmd0aDsgaSsrKSB7CgkJb25sb2FkRnVuY3RzW2ld KCk7Cgl9Cn0KCi8qKgogKiBBZGQgYW4gZXZlbnQgaGFuZGxlciB0byBhbiBlbGVt ZW50CiAqCiAqIEBwYXJhbSBFbGVtZW50IGVsZW1lbnQgRWxlbWVudCB0byBhZGQg aGFuZGxlciB0bwogKiBAcGFyYW0gU3RyaW5nIGF0dGFjaCBFdmVudCB0byBhdHRh Y2ggdG8KICogQHBhcmFtIGNhbGxhYmxlIGhhbmRsZXIgRXZlbnQgaGFuZGxlciBj YWxsYmFjawogKi8KZnVuY3Rpb24gYWRkSGFuZGxlciggZWxlbWVudCwgYXR0YWNo LCBoYW5kbGVyICkgewoJaWYoIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyICkgewoJ CWVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggYXR0YWNoLCBoYW5kbGVyLCBmYWxz ZSApOwoJfSBlbHNlIGlmKCB3aW5kb3cuYXR0YWNoRXZlbnQgKSB7CgkJZWxlbWVu dC5hdHRhY2hFdmVudCggJ29uJyArIGF0dGFjaCwgaGFuZGxlciApOwoJfQp9Cgov KioKICogQWRkIGEgY2xpY2sgZXZlbnQgaGFuZGxlciB0byBhbiBlbGVtZW50CiAq CiAqIEBwYXJhbSBFbGVtZW50IGVsZW1lbnQgRWxlbWVudCB0byBhZGQgaGFuZGxl ciB0bwogKiBAcGFyYW0gY2FsbGFibGUgaGFuZGxlciBFdmVudCBoYW5kbGVyIGNh bGxiYWNrCiAqLwpmdW5jdGlvbiBhZGRDbGlja0hhbmRsZXIoIGVsZW1lbnQsIGhh bmRsZXIgKSB7CglhZGRIYW5kbGVyKCBlbGVtZW50LCAnY2xpY2snLCBoYW5kbGVy ICk7Cn0KCi8qKgogKiBSZW1vdmVzIGFuIGV2ZW50IGhhbmRsZXIgZnJvbSBhbiBl bGVtZW50CiAqCiAqIEBwYXJhbSBFbGVtZW50IGVsZW1lbnQgRWxlbWVudCB0byBy ZW1vdmUgaGFuZGxlciBmcm9tCiAqIEBwYXJhbSBTdHJpbmcgcmVtb3ZlIEV2ZW50 IHRvIHJlbW92ZQogKiBAcGFyYW0gY2FsbGFibGUgaGFuZGxlciBFdmVudCBoYW5k bGVyIGNhbGxiYWNrIHRvIHJlbW92ZQogKi8KZnVuY3Rpb24gcmVtb3ZlSGFuZGxl ciggZWxlbWVudCwgcmVtb3ZlLCBoYW5kbGVyICkgewoJaWYoIHdpbmRvdy5yZW1v dmVFdmVudExpc3RlbmVyICkgewoJCWVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5l ciggcmVtb3ZlLCBoYW5kbGVyLCBmYWxzZSApOwoJfSBlbHNlIGlmKCB3aW5kb3cu ZGV0YWNoRXZlbnQgKSB7CgkJZWxlbWVudC5kZXRhY2hFdmVudCggJ29uJyArIHJl bW92ZSwgaGFuZGxlciApOwoJfQp9Ci8vbm90ZTogYWxsIHNraW5zIHNob3VsZCBj YWxsIHJ1bk9ubG9hZEhvb2soKSBhdCB0aGUgZW5kIG9mIGh0bWwgb3V0cHV0LAov LyAgICAgIHNvIHRoZSBiZWxvdyBzaG91bGQgYmUgcmVkdW5kYW50LiBJdCdzIHRo ZXJlIGp1c3QgaW4gY2FzZS4KaG9va0V2ZW50KCJsb2FkIiwgcnVuT25sb2FkSG9v ayk7CgovLyBGb3IgZnV0dXJlIHVzZS4KbXcgPSB7fTsKCgo= ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=ajax.js Content-Type: application/x-javascript; name=ajax.js Content-Location: http://bits.wikimedia.org/skins-1.5/common/ajax.js?urid=257z23 Content-Transfer-Encoding: Base64 Ly8gcmVtb3RlIHNjcmlwdGluZyBsaWJyYXJ5Ci8vIChjKSBjb3B5cmlnaHQgMjAw NSBtb2Rlcm5tZXRob2QsIGluYwp2YXIgc2FqYXhfZGVidWdfbW9kZSA9IGZhbHNl Owp2YXIgc2FqYXhfcmVxdWVzdF90eXBlID0gIkdFVCI7CgovKioKKiBpZiBzYWph eF9kZWJ1Z19tb2RlIGlzIHRydWUsIHRoaXMgZnVuY3Rpb24gb3V0cHV0cyBnaXZl biB0aGUgbWVzc2FnZSBpbnRvIAoqIHRoZSBlbGVtZW50IHdpdGggaWQgPSBzYWph eF9kZWJ1ZzsgaWYgbm8gc3VjaCBlbGVtZW50IGV4aXN0cyBpbiB0aGUgZG9jdW1l bnQsIAoqIGl0IGlzIGluamVjdGVkLgoqLwpmdW5jdGlvbiBzYWpheF9kZWJ1Zyh0 ZXh0KSB7CglpZiAoIXNhamF4X2RlYnVnX21vZGUpIHJldHVybiBmYWxzZTsKCgl2 YXIgZT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhamF4X2RlYnVnJyk7CgoJ aWYgKCFlKSB7CgkJZT0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwoJCWUu Y2xhc3NOYW1lPSAnc2FqYXhfZGVidWcnOwoJCWUuaWQ9ICdzYWpheF9kZWJ1Zyc7 CgoJCXZhciBiPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIp WzBdOwoKCQlpZiAoYi5maXJzdENoaWxkKSBiLmluc2VydEJlZm9yZShlLCBiLmZp cnN0Q2hpbGQpOwoJCWVsc2UgYi5hcHBlbmRDaGlsZChlKTsKCX0KCgl2YXIgbT0g ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgltLmFwcGVuZENoaWxkKCBk b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggdGV4dCApICk7CgoJZS5hcHBlbmRDaGls ZCggbSApOwoKCXJldHVybiB0cnVlOwp9CgovKioKKiBjb21wYXRpYmlsaXR5IHdy YXBwZXIgZm9yIGNyZWF0aW5nIGEgbmV3IFhNTEh0dHBSZXF1ZXN0IG9iamVjdC4K Ki8KZnVuY3Rpb24gc2FqYXhfaW5pdF9vYmplY3QoKSB7CglzYWpheF9kZWJ1Zygi c2FqYXhfaW5pdF9vYmplY3QoKSBjYWxsZWQuLiIpCgl2YXIgQTsKCXRyeSB7CgkJ Ly8gVHJ5IHRoZSBuZXcgc3R5bGUgYmVmb3JlIEFjdGl2ZVggc28gd2UgZG9uJ3QK CQkvLyB1bm5lY2Vzc2FyaWx5IHRyaWdnZXIgd2FybmluZ3MgaW4gSUUgNyB3aGVu CgkJLy8gc2V0IHRvIHByb21wdCBhYm91dCBBY3RpdmVYIHVzYWdlCgkJQSA9IG5l dyBYTUxIdHRwUmVxdWVzdCgpOwoJfSBjYXRjaCAoZSkgewoJCXRyeSB7CgkJCUE9 bmV3IEFjdGl2ZVhPYmplY3QoIk1zeG1sMi5YTUxIVFRQIik7CgkJfSBjYXRjaCAo ZSkgewoJCQl0cnkgewoJCQkJQT1uZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0 LlhNTEhUVFAiKTsKCQkJfSBjYXRjaCAob2MpIHsKCQkJCUE9bnVsbDsKCQkJfQoJ CX0KCX0KCWlmICghQSkKCQlzYWpheF9kZWJ1ZygiQ291bGQgbm90IGNyZWF0ZSBj b25uZWN0aW9uIG9iamVjdC4iKTsKCglyZXR1cm4gQTsKfQoKLyoqCiogUGVyZm9y bSBhbiBhamF4IGNhbGwgdG8gbWVkaWF3aWtpLiBDYWxscyBhcmUgaGFuZGVsZWQg YnkgQWpheERpc3BhdGNoZXIucGhwCiogICBmdW5jX25hbWUgLSB0aGUgbmFtZSBv ZiB0aGUgZnVuY3Rpb24gdG8gY2FsbC4gTXVzdCBiZSByZWdpc3RlcmVkIGluICR3 Z0FqYXhFeHBvcnRMaXN0CiogICBhcmdzIC0gYW4gYXJyYXkgb2YgYXJndW1lbnRz IHRvIHRoYXQgZnVuY3Rpb24KKiAgIHRhcmdldCAtIHRoZSB0YXJnZXQgdGhhdCB3 aWxsIGhhbmRsZSB0aGUgcmVzdWx0IG9mIHRoZSBjYWxsLiBJZiB0aGlzIGlzIGEg ZnVuY3Rpb24sCiogICAgICAgICAgICBpZiB3aWxsIGJlIGNhbGxlZCB3aXRoIHRo ZSBYTUxIdHRwUmVxdWVzdCBhcyBhIHBhcmFtZXRlcjsgaWYgaXQncyBhbiBpbnB1 dAoqICAgICAgICAgICAgZWxlbWVudCwgaXRzIHZhbHVlIHdpbGwgYmUgc2V0IHRv IHRoZSByZXN1bHRUZXh0OyBpZiBpdCdzIGFub3RoZXIgdHlwZSBvZgoqICAgICAg ICAgICAgZWxlbWVudCwgaXRzIGlubmVySFRNTCB3aWxsIGJlIHNldCB0byB0aGUg cmVzdWx0VGV4dC4KKgoqIEV4YW1wbGU6CiogICAgc2FqYXhfZG9fY2FsbCgnZG9G b28nLCBbMSwgMiwgM10sIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaG93Rm9v IikpOwoqCiogVGhpcyB3aWxsIGNhbGwgdGhlIGRvRm9vIGZ1bmN0aW9uIHZpYSBN ZWRpYVdpa2kncyBBamF4RGlzcGF0Y2hlciwgd2l0aAoqICgxLCAyLCAzKSBhcyB0 aGUgcGFyYW1ldGVyIGxpc3QsIGFuZCB3aWxsIHNob3cgdGhlIHJlc3VsdCBpbiB0 aGUgZWxlbWVudAoqIHdpdGggaWQgPSBzaG93Rm9vCiovCmZ1bmN0aW9uIHNhamF4 X2RvX2NhbGwoZnVuY19uYW1lLCBhcmdzLCB0YXJnZXQpIHsKCXZhciBpLCB4LCBu OwoJdmFyIHVyaTsKCXZhciBwb3N0X2RhdGE7Cgl1cmkgPSB3Z1NlcnZlciArCgkJ KCh3Z1NjcmlwdCA9PSBudWxsKSA/ICh3Z1NjcmlwdFBhdGggKyAiL2luZGV4LnBo cCIpIDogd2dTY3JpcHQpICsKCQkiP2FjdGlvbj1hamF4IjsKCWlmIChzYWpheF9y ZXF1ZXN0X3R5cGUgPT0gIkdFVCIpIHsKCQlpZiAodXJpLmluZGV4T2YoIj8iKSA9 PSAtMSkKCQkJdXJpID0gdXJpICsgIj9ycz0iICsgZW5jb2RlVVJJQ29tcG9uZW50 KGZ1bmNfbmFtZSk7CgkJZWxzZQoJCQl1cmkgPSB1cmkgKyAiJnJzPSIgKyBlbmNv ZGVVUklDb21wb25lbnQoZnVuY19uYW1lKTsKCQlmb3IgKGkgPSAwOyBpIDwgYXJn cy5sZW5ndGg7IGkrKykKCQkJdXJpID0gdXJpICsgIiZyc2FyZ3NbXT0iICsgZW5j b2RlVVJJQ29tcG9uZW50KGFyZ3NbaV0pOwoJCS8vdXJpID0gdXJpICsgIiZyc3Ju ZD0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7CgkJcG9zdF9kYXRhID0gbnVsbDsK CX0gZWxzZSB7CgkJcG9zdF9kYXRhID0gInJzPSIgKyBlbmNvZGVVUklDb21wb25l bnQoZnVuY19uYW1lKTsKCQlmb3IgKGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkr KykKCQkJcG9zdF9kYXRhID0gcG9zdF9kYXRhICsgIiZyc2FyZ3NbXT0iICsgZW5j b2RlVVJJQ29tcG9uZW50KGFyZ3NbaV0pOwoJfQoJeCA9IHNhamF4X2luaXRfb2Jq ZWN0KCk7CglpZiAoIXgpIHsKCQlhbGVydCgiQUpBWCBub3Qgc3VwcG9ydGVkIik7 CgkJcmV0dXJuIGZhbHNlOwoJfQoKCXRyeSB7CgkJeC5vcGVuKHNhamF4X3JlcXVl c3RfdHlwZSwgdXJpLCB0cnVlKTsKCX0gY2F0Y2ggKGUpIHsKCQlpZiAod2luZG93 LmxvY2F0aW9uLmhvc3RuYW1lID09ICJsb2NhbGhvc3QiKSB7CgkJCWFsZXJ0KCJZ b3VyIGJyb3dzZXIgYmxvY2tzIFhNTEh0dHBSZXF1ZXN0IHRvICdsb2NhbGhvc3Qn LCB0cnkgdXNpbmcgYSByZWFsIGhvc3RuYW1lIGZvciBkZXZlbG9wbWVudC90ZXN0 aW5nLiIpOwoJCX0KCQl0aHJvdyBlOwoJfQoJaWYgKHNhamF4X3JlcXVlc3RfdHlw ZSA9PSAiUE9TVCIpIHsKCQl4LnNldFJlcXVlc3RIZWFkZXIoIk1ldGhvZCIsICJQ T1NUICIgKyB1cmkgKyAiIEhUVFAvMS4xIik7CgkJeC5zZXRSZXF1ZXN0SGVhZGVy KCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNv ZGVkIik7Cgl9Cgl4LnNldFJlcXVlc3RIZWFkZXIoIlByYWdtYSIsICJjYWNoZT15 ZXMiKTsKCXguc2V0UmVxdWVzdEhlYWRlcigiQ2FjaGUtQ29udHJvbCIsICJuby10 cmFuc2Zvcm0iKTsKCXgub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7 CgkJaWYgKHgucmVhZHlTdGF0ZSAhPSA0KQoJCQlyZXR1cm47CgoJCXNhamF4X2Rl YnVnKCJyZWNlaXZlZCAoIiArIHguc3RhdHVzICsgIiAiICsgeC5zdGF0dXNUZXh0 ICsgIikgIiArIHgucmVzcG9uc2VUZXh0KTsKCgkJLy9pZiAoeC5zdGF0dXMgIT0g MjAwKQoJCS8vCWFsZXJ0KCJFcnJvcjogIiArIHguc3RhdHVzICsgIiAiICsgeC5z dGF0dXNUZXh0ICsgIjogIiArIHgucmVzcG9uc2VUZXh0KTsKCQkvL2Vsc2UKCgkJ aWYgKCB0eXBlb2YoIHRhcmdldCApID09ICdmdW5jdGlvbicgKSB7CgkJCXRhcmdl dCggeCApOwoJCX0KCQllbHNlIGlmICggdHlwZW9mKCB0YXJnZXQgKSA9PSAnb2Jq ZWN0JyApIHsKCQkJaWYgKCB0YXJnZXQudGFnTmFtZSA9PSAnSU5QVVQnICkgewoJ CQkJaWYgKHguc3RhdHVzID09IDIwMCkgdGFyZ2V0LnZhbHVlPSB4LnJlc3BvbnNl VGV4dDsKCQkJCS8vZWxzZSBhbGVydCgiRXJyb3I6ICIgKyB4LnN0YXR1cyArICIg IiArIHguc3RhdHVzVGV4dCArICIgKCIgKyB4LnJlc3BvbnNlVGV4dCArICIpIik7 CgkJCX0KCQkJZWxzZSB7CgkJCQlpZiAoeC5zdGF0dXMgPT0gMjAwKSB0YXJnZXQu aW5uZXJIVE1MID0geC5yZXNwb25zZVRleHQ7CgkJCQllbHNlIHRhcmdldC5pbm5l ckhUTUw9ICI8ZGl2IGNsYXNzPSdlcnJvcic+RXJyb3I6ICIgKyB4LnN0YXR1cyAr ICIgIiArIHguc3RhdHVzVGV4dCArICIgKCIgKyB4LnJlc3BvbnNlVGV4dCArICIp PC9kaXY+IjsKCQkJfQoJCX0KCQllbHNlIHsKCQkJYWxlcnQoImJhZCB0YXJnZXQg Zm9yIHNhamF4X2RvX2NhbGw6IG5vdCBhIGZ1bmN0aW9uIG9yIG9iamVjdDogIiAr IHRhcmdldCk7CgkJfQoKCQlyZXR1cm47Cgl9CgoJc2FqYXhfZGVidWcoZnVuY19u YW1lICsgIiB1cmkgPSAiICsgdXJpICsgIiAvIHBvc3QgPSAiICsgcG9zdF9kYXRh KTsKCXguc2VuZChwb3N0X2RhdGEpOwoJc2FqYXhfZGVidWcoZnVuY19uYW1lICsg IiB3YWl0aW5nLi4iKTsKCWRlbGV0ZSB4OwoKCXJldHVybiB0cnVlOwp9CgovKioK ICogQHJldHVybiBib29sZWFuIHdoZXRoZXIgdGhlIGJyb3dzZXIgc3VwcG9ydHMg WE1MSHR0cFJlcXVlc3QKICovCmZ1bmN0aW9uIHdmU3VwcG9ydHNBamF4KCkgewoJ dmFyIHJlcXVlc3QgPSBzYWpheF9pbml0X29iamVjdCgpOwoJdmFyIHN1cHBvcnRz QWpheCA9IHJlcXVlc3QgPyB0cnVlIDogZmFsc2U7CglkZWxldGUgcmVxdWVzdDsK CXJldHVybiBzdXBwb3J0c0FqYXg7Cn0KCg== ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=mwsuggest.js Content-Type: application/x-javascript; name=mwsuggest.js Content-Location: http://bits.wikimedia.org/skins-1.5/common/mwsuggest.js?urid=257z23 Content-Transfer-Encoding: Base64 LyoKICogT3BlblNlYXJjaCBhamF4IHN1Z2dlc3Rpb24gZW5naW5lIGZvciBNZWRp YVdpa2kKICoKICogdXNlcyBjb3JlIE1lZGlhV2lraSBvcGVuIHNlYXJjaCBzdXBw b3J0IHRvIGZldGNoIHN1Z2dlc3Rpb25zCiAqIGFuZCBzaG93IHRoZW0gYmVsb3cg c2VhcmNoIGJveGVzIGFuZCBvdGhlciBpbnB1dHMKICoKICogYnkgUm9iZXJ0IFN0 b2puaWMgKEFwcmlsIDIwMDgpCiAqLwoKLy8gc2VhcmNoX2JveF9pZCAtPiBSZXN1 bHRzIG9iamVjdAp2YXIgb3NfbWFwID0ge307Ci8vIGNhY2hlZCBkYXRhLCB1cmwg LT4ganNvbl90ZXh0CnZhciBvc19jYWNoZSA9IHt9OwovLyBnbG9iYWwgdmFyaWFi bGVzIGZvciBzdWdnZXN0X2tleXByZXNzCnZhciBvc19jdXJfa2V5cHJlc3NlZCA9 IDA7CnZhciBvc19rZXlwcmVzc2VkX2NvdW50ID0gMDsKLy8gdHlwZTogVGltZXIK dmFyIG9zX3RpbWVyID0gbnVsbDsKLy8gdGllIG1vdXNlZG93bi91cCBldmVudHMK dmFyIG9zX21vdXNlX3ByZXNzZWQgPSBmYWxzZTsKdmFyIG9zX21vdXNlX251bSA9 IC0xOwovLyBpZiB0cnVlLCB0aGUgbGFzdCBjaGFuZ2Ugd2FzIG1hZGUgYnkgbW91 c2UgKGFuZCBub3Qga2V5Ym9hcmQpCnZhciBvc19tb3VzZV9tb3ZlZCA9IGZhbHNl OwovLyBkZWxheSBiZXR3ZWVuIGtleXByZXNzIGFuZCBzdWdnZXN0aW9uIChpbiBt cykKdmFyIG9zX3NlYXJjaF90aW1lb3V0ID0gMjUwOwovLyB0aGVzZSBwYWlycyBv ZiBpbnB1dHMvZm9ybXMgd2lsbCBiZSBhdXRvbG9hZGVkIGF0IHN0YXJ0dXAKdmFy IG9zX2F1dG9sb2FkX2lucHV0cyA9IG5ldyBBcnJheSgnc2VhcmNoSW5wdXQnLCAn c2VhcmNoSW5wdXQyJywgJ3Bvd2VyU2VhcmNoVGV4dCcsICdzZWFyY2hUZXh0Jyk7 CnZhciBvc19hdXRvbG9hZF9mb3JtcyA9IG5ldyBBcnJheSgnc2VhcmNoZm9ybScs ICdzZWFyY2hmb3JtMicsICdwb3dlcnNlYXJjaCcsICdzZWFyY2gnICk7Ci8vIGlm IHdlIHN0b3BwZWQgdGhlIHNlcnZpY2UKdmFyIG9zX2lzX3N0b3BwZWQgPSBmYWxz ZTsKLy8gbWF4IGxpbmVzIHRvIHNob3cgaW4gc3VnZ2VzdCB0YWJsZQp2YXIgb3Nf bWF4X2xpbmVzX3Blcl9zdWdnZXN0ID0gNzsKLy8gbnVtYmVyIG9mIHN0ZXBzIHRv IGFuaW1hdGUgZXhwYW5zaW9uL2NvbnRyYWN0aW9uIG9mIGNvbnRhaW5lciB3aWR0 aAp2YXIgb3NfYW5pbWF0aW9uX3N0ZXBzID0gNjsKLy8gbnVtIG9mIHBpeGVscyBv ZiBzbWFsbGVzdCBzdGVwCnZhciBvc19hbmltYXRpb25fbWluX3N0ZXAgPSAyOwov LyBkZWxheSBiZXR3ZWVuIHN0ZXBzIChpbiBtcykKdmFyIG9zX2FuaW1hdGlvbl9k ZWxheSA9IDMwOwovLyBtYXggd2lkdGggb2YgY29udGFpbmVyIGluIHBlcmNlbnQg b2Ygbm9ybWFsIHNpemUgKDEgPT0gMTAwJSkKdmFyIG9zX2NvbnRhaW5lcl9tYXhf d2lkdGggPSAyOwovLyBjdXJyZW50bHkgYWN0aXZlIGFuaW1hdGlvbiB0aW1lcgp2 YXIgb3NfYW5pbWF0aW9uX3RpbWVyID0gbnVsbDsKCi8qKiBUaW1lb3V0IHRpbWVy IGNsYXNzIHRoYXQgd2lsbCBmZXRjaCB0aGUgcmVzdWx0cyAqLwpmdW5jdGlvbiBv c19UaW1lcihpZCxyLHF1ZXJ5KXsKCXRoaXMuaWQgPSBpZDsKCXRoaXMuciA9IHI7 Cgl0aGlzLnF1ZXJ5ID0gcXVlcnk7Cn0KCi8qKiBUaW1lciB1c2VyIHRvIGFuaW1h dGUgZXhwYW5zaW9uL2NvbnRyYWN0aW9uIG9mIGNvbnRhaW5lciB3aWR0aCAqLwpm dW5jdGlvbiBvc19BbmltYXRpb25UaW1lcihyLCB0YXJnZXQpewoJdGhpcy5yID0g cjsKCXZhciBjdXJyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5jb250 YWluZXIpLm9mZnNldFdpZHRoOwoJdGhpcy5pbmMgPSBNYXRoLnJvdW5kKCh0YXJn ZXQtY3VycmVudCkgLyBvc19hbmltYXRpb25fc3RlcHMpOwoJaWYodGhpcy5pbmMg PCBvc19hbmltYXRpb25fbWluX3N0ZXAgJiYgdGhpcy5pbmMgPj0wKQoJCXRoaXMu aW5jID0gb3NfYW5pbWF0aW9uX21pbl9zdGVwOyAvLyBtaW5pbWFsIGFuaW1hdGlv biBzdGVwCglpZih0aGlzLmluYyA+IC1vc19hbmltYXRpb25fbWluX3N0ZXAgJiYg dGhpcy5pbmMgPDApCgkJdGhpcy5pbmMgPSAtb3NfYW5pbWF0aW9uX21pbl9zdGVw OwoJdGhpcy50YXJnZXQgPSB0YXJnZXQ7Cn0KCi8qKiBQcm9wZXJ0eSBjbGFzcyBm b3Igc2luZ2xlIHNlYXJjaCBib3ggKi8KZnVuY3Rpb24gb3NfUmVzdWx0cyhuYW1l LCBmb3JtbmFtZSl7Cgl0aGlzLnNlYXJjaGZvcm0gPSBmb3JtbmFtZTsgLy8gaWQg b2YgdGhlIHNlYXJjaGZvcm0KCXRoaXMuc2VhcmNoYm94ID0gbmFtZTsgLy8gaWQg b2YgdGhlIHNlYXJjaGJveAoJdGhpcy5jb250YWluZXIgPSBuYW1lKyJTdWdnZXN0 IjsgLy8gZGl2IHRoYXQgaG9sZHMgcmVzdWx0cwoJdGhpcy5yZXN1bHRUYWJsZSA9 IG5hbWUrIlJlc3VsdCI7IC8vIGlkIGJhc2UgZm9yIHRoZSByZXN1bHQgdGFibGUg KCtudW0gPSB0YWJsZSByb3cpCgl0aGlzLnJlc3VsdFRleHQgPSBuYW1lKyJSZXN1 bHRUZXh0IjsgLy8gaWQgYmFzZSBmb3IgdGhlIHNwYW5zIHdpdGhpbiByZXN1bHQg dGFibGVzICgrbnVtKQoJdGhpcy50b2dnbGUgPSBuYW1lKyJUb2dnbGUiOyAvLyBk aXYgdGhhdCBoYXMgdGhlIHRvZ2dsZSAoZW5hYmxlL2Rpc2FibGUpIGxpbmsKCXRo aXMucXVlcnkgPSBudWxsOyAvLyBsYXN0IHByb2Nlc3NlZCBxdWVyeQoJdGhpcy5y ZXN1bHRzID0gbnVsbDsgIC8vIHBhcnNlZCB0aXRsZXMKCXRoaXMucmVzdWx0Q291 bnQgPSAwOyAvLyBudW1iZXIgb2YgcmVzdWx0cwoJdGhpcy5vcmlnaW5hbCA9IG51 bGw7IC8vIHF1ZXJ5IHRoYXQgdXNlciBlbnRlcmVkCgl0aGlzLnNlbGVjdGVkID0g LTE7IC8vIHdoaWNoIHJlc3VsdCBpcyBzZWxlY3RlZAoJdGhpcy5jb250YWluZXJD b3VudCA9IDA7IC8vIG51bWJlciBvZiByZXN1bHRzIHZpc2libGUgaW4gY29udGFp bmVyCgl0aGlzLmNvbnRhaW5lclJvdyA9IDA7IC8vIGhlaWdodCBvZiByZXN1bHQg ZmllbGQgaW4gdGhlIGNvbnRhaW5lcgoJdGhpcy5jb250YWluZXJUb3RhbCA9IDA7 IC8vIHRvdGFsIGhlaWdodCBvZiB0aGUgY29udGFpbmVyIHdpbGwgYWxsIHJlc3Vs dHMKCXRoaXMudmlzaWJsZSA9IGZhbHNlOyAvLyBpZiBjb250YWluZXIgaXMgdmlz aWJsZQoJdGhpcy5zdGF5SGlkZGVuID0gZmFsc2U7IC8vIGRvbid0IHRyeSB0byBz aG93IGlmIGxvc3QgZm9jdXMKfQoKLyoqIEhpZGUgcmVzdWx0cyBkaXYgKi8KZnVu Y3Rpb24gb3NfaGlkZVJlc3VsdHMocil7Cgl2YXIgYyA9IGRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKHIuY29udGFpbmVyKTsKCWlmKGMgIT0gbnVsbCkKCQljLnN0eWxl LnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKCXIudmlzaWJsZSA9IGZhbHNlOwoJci5z ZWxlY3RlZCA9IC0xOwp9CgovKiogU2hvdyByZXN1bHRzIGRpdiAqLwpmdW5jdGlv biBvc19zaG93UmVzdWx0cyhyKXsKCWlmKG9zX2lzX3N0b3BwZWQpCgkJcmV0dXJu OwoJaWYoci5zdGF5SGlkZGVuKQoJCXJldHVybgoJb3NfZml0Q29udGFpbmVyKHIp OwoJdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLmNvbnRhaW5lcik7 CglyLnNlbGVjdGVkID0gLTE7CglpZihjICE9IG51bGwpewoJCWMuc2Nyb2xsVG9w ID0gMDsKCQljLnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSI7CgkJci52aXNp YmxlID0gdHJ1ZTsKCX0KfQoKZnVuY3Rpb24gb3Nfb3BlcmFXaWR0aEZpeCh4KXsK CS8vIEZvciBicm93c2VycyB0aGF0IGRvbid0IHVuZGVyc3RhbmQgb3ZlcmZsb3ct eCwgZXN0aW1hdGUgc2Nyb2xsYmFyIHdpZHRoCglpZih0eXBlb2YgZG9jdW1lbnQu Ym9keS5zdHlsZS5vdmVyZmxvd1ggIT0gInN0cmluZyIpewoJCXJldHVybiAzMDsK CX0KCXJldHVybiAwOwp9CgpmdW5jdGlvbiBvc19lbmNvZGVRdWVyeSh2YWx1ZSl7 CiAgaWYgKGVuY29kZVVSSUNvbXBvbmVudCkgewogICAgcmV0dXJuIGVuY29kZVVS SUNvbXBvbmVudCh2YWx1ZSk7CiAgfQogIGlmKGVzY2FwZSkgewogICAgcmV0dXJu IGVzY2FwZSh2YWx1ZSk7CiAgfQogIHJldHVybiBudWxsOwp9CmZ1bmN0aW9uIG9z X2RlY29kZVZhbHVlKHZhbHVlKXsKICBpZiAoZGVjb2RlVVJJQ29tcG9uZW50KSB7 CiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKTsKICB9CiAgaWYo dW5lc2NhcGUpewogIAlyZXR1cm4gdW5lc2NhcGUodmFsdWUpOwogIH0KICByZXR1 cm4gbnVsbDsKfQoKLyoqIEJyb3dlci1kZXBlbmRlbnQgZnVuY3Rpb25zIHRvIGZp bmQgd2luZG93IGlubmVyIHNpemUsIGFuZCBzY3JvbGwgc3RhdHVzICovCmZ1bmN0 aW9uIGZfY2xpZW50V2lkdGgoKSB7CglyZXR1cm4gZl9maWx0ZXJSZXN1bHRzICgK CQl3aW5kb3cuaW5uZXJXaWR0aCA/IHdpbmRvdy5pbm5lcldpZHRoIDogMCwKCQlk b2N1bWVudC5kb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1l bnQuY2xpZW50V2lkdGggOiAwLAoJCWRvY3VtZW50LmJvZHkgPyBkb2N1bWVudC5i b2R5LmNsaWVudFdpZHRoIDogMAoJKTsKfQpmdW5jdGlvbiBmX2NsaWVudEhlaWdo dCgpIHsKCXJldHVybiBmX2ZpbHRlclJlc3VsdHMgKAoJCXdpbmRvdy5pbm5lckhl aWdodCA/IHdpbmRvdy5pbm5lckhlaWdodCA6IDAsCgkJZG9jdW1lbnQuZG9jdW1l bnRFbGVtZW50ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdo dCA6IDAsCgkJZG9jdW1lbnQuYm9keSA/IGRvY3VtZW50LmJvZHkuY2xpZW50SGVp Z2h0IDogMAoJKTsKfQpmdW5jdGlvbiBmX3Njcm9sbExlZnQoKSB7CglyZXR1cm4g Zl9maWx0ZXJSZXN1bHRzICgKCQl3aW5kb3cucGFnZVhPZmZzZXQgPyB3aW5kb3cu cGFnZVhPZmZzZXQgOiAwLAoJCWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCA/IGRv Y3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0IDogMCwKCQlkb2N1bWVu dC5ib2R5ID8gZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0IDogMAoJKTsKfQpmdW5j dGlvbiBmX3Njcm9sbFRvcCgpIHsKCXJldHVybiBmX2ZpbHRlclJlc3VsdHMgKAoJ CXdpbmRvdy5wYWdlWU9mZnNldCA/IHdpbmRvdy5wYWdlWU9mZnNldCA6IDAsCgkJ ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVt ZW50LnNjcm9sbFRvcCA6IDAsCgkJZG9jdW1lbnQuYm9keSA/IGRvY3VtZW50LmJv ZHkuc2Nyb2xsVG9wIDogMAoJKTsKfQpmdW5jdGlvbiBmX2ZpbHRlclJlc3VsdHMo bl93aW4sIG5fZG9jZWwsIG5fYm9keSkgewoJdmFyIG5fcmVzdWx0ID0gbl93aW4g PyBuX3dpbiA6IDA7CglpZiAobl9kb2NlbCAmJiAoIW5fcmVzdWx0IHx8IChuX3Jl c3VsdCA+IG5fZG9jZWwpKSkKCQluX3Jlc3VsdCA9IG5fZG9jZWw7CglyZXR1cm4g bl9ib2R5ICYmICghbl9yZXN1bHQgfHwgKG5fcmVzdWx0ID4gbl9ib2R5KSkgPyBu X2JvZHkgOiBuX3Jlc3VsdDsKfQoKLyoqIEdldCB0aGUgaGVpZ2h0IGF2YWlsYWJs ZSBmb3IgdGhlIHJlc3VsdHMgY29udGFpbmVyICovCmZ1bmN0aW9uIG9zX2F2YWls YWJsZUhlaWdodChyKXsKCXZhciBhYnNUb3AgPSBkb2N1bWVudC5nZXRFbGVtZW50 QnlJZChyLmNvbnRhaW5lcikuc3R5bGUudG9wOwoJdmFyIHB4ID0gYWJzVG9wLmxh c3RJbmRleE9mKCJweCIpOwoJaWYocHggPiAwKQoJCWFic1RvcCA9IGFic1RvcC5z dWJzdHJpbmcoMCxweCk7CglyZXR1cm4gZl9jbGllbnRIZWlnaHQoKSAtIChhYnNU b3AgLSBmX3Njcm9sbFRvcCgpKTsKfQoKCi8qKiBHZXQgZWxlbWVudCBhYnNvbHV0 ZSBwb3NpdGlvbiB7bGVmdCx0b3B9ICovCmZ1bmN0aW9uIG9zX2dldEVsZW1lbnRQ b3NpdGlvbihlbGVtSUQpewoJdmFyIG9mZnNldFRyYWlsID0gZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoZWxlbUlEKTsKCXZhciBvZmZzZXRMZWZ0ID0gMDsKCXZhciBv ZmZzZXRUb3AgPSAwOwoJd2hpbGUgKG9mZnNldFRyYWlsKXsKCQlvZmZzZXRMZWZ0 ICs9IG9mZnNldFRyYWlsLm9mZnNldExlZnQ7CgkJb2Zmc2V0VG9wICs9IG9mZnNl dFRyYWlsLm9mZnNldFRvcDsKCQlvZmZzZXRUcmFpbCA9IG9mZnNldFRyYWlsLm9m ZnNldFBhcmVudDsKCX0KCWlmIChuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2Yo J01hYycpICE9IC0xICYmIHR5cGVvZiBkb2N1bWVudC5ib2R5LmxlZnRNYXJnaW4g IT0gJ3VuZGVmaW5lZCcpewoJCW9mZnNldExlZnQgKz0gZG9jdW1lbnQuYm9keS5s ZWZ0TWFyZ2luOwoJCW9mZnNldFRvcCArPSBkb2N1bWVudC5ib2R5LnRvcE1hcmdp bjsKCX0KCXJldHVybiB7bGVmdDpvZmZzZXRMZWZ0LHRvcDpvZmZzZXRUb3B9Owp9 CgovKiogQ3JlYXRlIHRoZSBjb250YWluZXIgZGl2IHRoYXQgd2lsbCBob2xkIHRo ZSBzdWdnZXN0ZWQgdGl0bGVzICovCmZ1bmN0aW9uIG9zX2NyZWF0ZUNvbnRhaW5l cihyKXsKCXZhciBjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cgl2 YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuc2VhcmNoYm94KTsKCXZh ciBwb3MgPSBvc19nZXRFbGVtZW50UG9zaXRpb24oci5zZWFyY2hib3gpOwoJdmFy IGxlZnQgPSBwb3MubGVmdDsKCXZhciB0b3AgPSBwb3MudG9wICsgcy5vZmZzZXRI ZWlnaHQ7CgljLmNsYXNzTmFtZSA9ICJvcy1zdWdnZXN0IjsKCWMuc2V0QXR0cmli dXRlKCJpZCIsIHIuY29udGFpbmVyKTsKCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp bGQoYyk7CgoJLy8gZHluYW1pY2FsbHkgZ2VuZXJhdGVkIHN0eWxlIHBhcmFtcwoJ Ly8gSUUgd29ya2Fyb3VuZCwgY2Fubm90IGV4cGxpY2l0ZWx5IHNldCAic3R5bGUi IGF0dHJpYnV0ZQoJYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuY29udGFp bmVyKTsKCWMuc3R5bGUudG9wID0gdG9wKyJweCI7CgljLnN0eWxlLmxlZnQgPSBs ZWZ0KyJweCI7CgljLnN0eWxlLndpZHRoID0gcy5vZmZzZXRXaWR0aCsicHgiOwoK CS8vIG1vdXNlIGV2ZW50IGhhbmRsZXJzCgljLm9ubW91c2VvdmVyID0gZnVuY3Rp b24oZXZlbnQpIHsgb3NfZXZlbnRNb3VzZW92ZXIoci5zZWFyY2hib3gsIGV2ZW50 KTsgfTsKCWMub25tb3VzZW1vdmUgPSBmdW5jdGlvbihldmVudCkgeyBvc19ldmVu dE1vdXNlbW92ZShyLnNlYXJjaGJveCwgZXZlbnQpOyB9OwoJYy5vbm1vdXNlZG93 biA9IGZ1bmN0aW9uKGV2ZW50KSB7IHJldHVybiBvc19ldmVudE1vdXNlZG93bihy LnNlYXJjaGJveCwgZXZlbnQpOyB9OwoJYy5vbm1vdXNldXAgPSBmdW5jdGlvbihl dmVudCkgeyBvc19ldmVudE1vdXNldXAoci5zZWFyY2hib3gsIGV2ZW50KTsgfTsK CXJldHVybiBjOwp9CgovKiogY2hhbmdlIGNvbnRhaW5lciBoZWlnaHQgdG8gZml0 IHRvIHNjcmVlbiAqLwpmdW5jdGlvbiBvc19maXRDb250YWluZXIocil7Cgl2YXIg YyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuY29udGFpbmVyKTsKCXZhciBo ID0gb3NfYXZhaWxhYmxlSGVpZ2h0KHIpIC0gMjA7Cgl2YXIgaW5jID0gci5jb250 YWluZXJSb3c7CgloID0gcGFyc2VJbnQoaC9pbmMpICogaW5jOwoJaWYoaCA8ICgy ICogaW5jKSAmJiByLnJlc3VsdENvdW50ID4gMSkgLy8gbWluOiB0d28gcmVzdWx0 cwoJCWggPSAyICogaW5jOwoJaWYoKGgvaW5jKSA+IG9zX21heF9saW5lc19wZXJf c3VnZ2VzdCApCgkJaCA9IGluYyAqIG9zX21heF9saW5lc19wZXJfc3VnZ2VzdDsK CWlmKGggPCByLmNvbnRhaW5lclRvdGFsKXsKCQljLnN0eWxlLmhlaWdodCA9IGgg KyJweCI7CgkJci5jb250YWluZXJDb3VudCA9IHBhcnNlSW50KE1hdGgucm91bmQo aC9pbmMpKTsKCX0gZWxzZXsKCQljLnN0eWxlLmhlaWdodCA9IHIuY29udGFpbmVy VG90YWwrInB4IjsKCQlyLmNvbnRhaW5lckNvdW50ID0gci5yZXN1bHRDb3VudDsK CX0KfQovKiogSWYgc29tZSBlbnRyaWVzIGFyZSBsb25nZXIgdGhhbiB0aGUgYm94 LCByZXBsYWNlIHRleHQgd2l0aCAiLi4uIiAqLwpmdW5jdGlvbiBvc190cmltUmVz dWx0VGV4dChyKXsKCS8vIGZpbmQgbWF4IHdpZHRoLCBmaXJzdCBzZWUgaWYgd2Ug Y291bGQgZXhwYW5kIHRoZSBjb250YWluZXIgdG8gZml0IGl0Cgl2YXIgbWF4VyA9 IDA7Cglmb3IodmFyIGk9MDtpPHIucmVzdWx0Q291bnQ7aSsrKXsKCQl2YXIgZSA9 IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIucmVzdWx0VGV4dCtpKTsKCQlpZihl Lm9mZnNldFdpZHRoID4gbWF4VykKCQkJbWF4VyA9IGUub2Zmc2V0V2lkdGg7Cgl9 Cgl2YXIgdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuY29udGFpbmVyKS5v ZmZzZXRXaWR0aDsKCXZhciBmaXggPSAwOwoJaWYoci5jb250YWluZXJDb3VudCA8 IHIucmVzdWx0Q291bnQpewoJCWZpeCA9IDIwOyAvLyBnaXZlIDIwcHggZm9yIHNj cm9sbGJhcgoJfSBlbHNlCgkJZml4ID0gb3Nfb3BlcmFXaWR0aEZpeCh3KTsKCWlm KGZpeCA8IDQpCgkJZml4ID0gNDsgLy8gYmFzaWMgcGFkZGluZwoJbWF4VyArPSBm aXg7CgoJLy8gcmVzaXplIGNvbnRhaW5lciB0byBmaXQgbW9yZSBkYXRhIGlmIHBl cm1pdHRlZAoJdmFyIG5vcm1XID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5z ZWFyY2hib3gpLm9mZnNldFdpZHRoOwoJdmFyIHByb3AgPSBtYXhXIC8gbm9ybVc7 CglpZihwcm9wID4gb3NfY29udGFpbmVyX21heF93aWR0aCkKCQlwcm9wID0gb3Nf Y29udGFpbmVyX21heF93aWR0aDsKCWVsc2UgaWYocHJvcCA8IDEpCgkJcHJvcCA9 IDE7Cgl2YXIgbmV3VyA9IE1hdGgucm91bmQoIG5vcm1XICogcHJvcCApOwoJaWYo IHcgIT0gbmV3VyApewoJCXcgPSBuZXdXOwoJCWlmKCBvc19hbmltYXRpb25fdGlt ZXIgIT0gbnVsbCApCgkJCWNsZWFySW50ZXJ2YWwob3NfYW5pbWF0aW9uX3RpbWVy LmlkKQoJCW9zX2FuaW1hdGlvbl90aW1lciA9IG5ldyBvc19BbmltYXRpb25UaW1l cihyLHcpOwoJCW9zX2FuaW1hdGlvbl90aW1lci5pZCA9IHNldEludGVydmFsKCJv c19hbmltYXRlQ2hhbmdlV2lkdGgoKSIsb3NfYW5pbWF0aW9uX2RlbGF5KTsKCQl3 IC09IGZpeDsgLy8gdGhpcyBtdWNoIGlzIHJlc2VydmVkCgl9CgoJLy8gdHJpbSBy ZXN1bHRzCglpZih3IDwgMTApCgkJcmV0dXJuOwoJZm9yKHZhciBpPTA7aTxyLnJl c3VsdENvdW50O2krKyl7CgkJdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZChyLnJlc3VsdFRleHQraSk7CgkJdmFyIHJlcGxhY2UgPSAxOwoJCXZhciBsYXN0 VyA9IGUub2Zmc2V0V2lkdGgrMTsKCQl2YXIgaXRlcmF0aW9uID0gMDsKCQl2YXIg Y2hhbmdlZFRleHQgPSBmYWxzZTsKCQl3aGlsZShlLm9mZnNldFdpZHRoID4gdyAm JiAoZS5vZmZzZXRXaWR0aCA8IGxhc3RXIHx8IGl0ZXJhdGlvbjwyKSl7CgkJCWNo YW5nZWRUZXh0ID0gdHJ1ZTsKCQkJbGFzdFcgPSBlLm9mZnNldFdpZHRoOwoJCQl2 YXIgbCA9IGUuaW5uZXJIVE1MOwoJCQllLmlubmVySFRNTCA9IGwuc3Vic3RyaW5n KDAsbC5sZW5ndGgtcmVwbGFjZSkrIi4uLiI7CgkJCWl0ZXJhdGlvbisrOwoJCQly ZXBsYWNlID0gNDsgLy8gaG93IG1hbnkgY2hhcnMgdG8gcmVwbGFjZQoJCX0KCQlp ZihjaGFuZ2VkVGV4dCl7CgkJCS8vIHNob3cgaGludCBmb3IgdHJpbW1lZCB0aXRs ZXMKCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5yZXN1bHRUYWJsZStpKS5z ZXRBdHRyaWJ1dGUoInRpdGxlIixyLnJlc3VsdHNbaV0pOwoJCX0KCX0KfQoKLyoq IEludm9rZWQgb24gdGltZXIgdG8gYW5pbWF0ZSBjaGFuZ2UgaW4gY29udGFpbmVy IHdpZHRoICovCmZ1bmN0aW9uIG9zX2FuaW1hdGVDaGFuZ2VXaWR0aCgpewoJdmFy IHIgPSBvc19hbmltYXRpb25fdGltZXIucjsKCXZhciBjID0gZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoci5jb250YWluZXIpOwoJdmFyIHcgPSBjLm9mZnNldFdpZHRo OwoJdmFyIG5vcm1XID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5zZWFyY2hi b3gpLm9mZnNldFdpZHRoOwoJdmFyIG5vcm1MID0gb3NfZ2V0RWxlbWVudFBvc2l0 aW9uKHIuc2VhcmNoYm94KS5sZWZ0OwoJdmFyIGluYyA9IG9zX2FuaW1hdGlvbl90 aW1lci5pbmM7Cgl2YXIgdGFyZ2V0ID0gb3NfYW5pbWF0aW9uX3RpbWVyLnRhcmdl dDsKCXZhciBudyA9IHcgKyBpbmM7CglpZiggKGluYyA+IDAgJiYgbncgPj0gdGFy Z2V0KSB8fCAoaW5jIDw9IDAgJiYgbncgPD0gdGFyZ2V0KSApewoJCS8vIGZpbmlz aGVkICEKCQljLnN0eWxlLndpZHRoID0gdGFyZ2V0KyJweCI7CgkJY2xlYXJJbnRl cnZhbChvc19hbmltYXRpb25fdGltZXIuaWQpCgkJb3NfYW5pbWF0aW9uX3RpbWVy ID0gbnVsbDsKCX0gZWxzZXsKCQkvLyBpbi1wcm9ncmVzcwoJCWMuc3R5bGUud2lk dGggPSBudysicHgiOwoJCWlmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXIg PT0gInJ0bCIpCgkJCWMuc3R5bGUubGVmdCA9IChub3JtTCArIG5vcm1XICsgKHRh cmdldCAtIG53KSAtIG9zX2FuaW1hdGlvbl90aW1lci50YXJnZXQgLSAxKSsicHgi OwoJfQp9CgovKiogSGFuZGxlcyBkYXRhIGZyb20gWE1MSHR0cFJlcXVlc3QsIGFu ZCB1cGRhdGVzIHRoZSBzdWdnZXN0IHJlc3VsdHMgKi8KZnVuY3Rpb24gb3NfdXBk YXRlUmVzdWx0cyhyLCBxdWVyeSwgdGV4dCwgY2FjaGVLZXkpewoJb3NfY2FjaGVb Y2FjaGVLZXldID0gdGV4dDsKCXIucXVlcnkgPSBxdWVyeTsKCXIub3JpZ2luYWwg PSBxdWVyeTsKCWlmKHRleHQgPT0gIiIpewoJCXIucmVzdWx0cyA9IG51bGw7CgkJ ci5yZXN1bHRDb3VudCA9IDA7CgkJb3NfaGlkZVJlc3VsdHMocik7Cgl9IGVsc2V7 CgkJdHJ5IHsKCQkJdmFyIHAgPSBldmFsKCcoJyt0ZXh0KycpJyk7IC8vIHNpbXBs ZSBqc29uIHBhcnNlLCBjb3VsZCBkbyBhIHNhZmVyIG9uZQoJCQlpZihwLmxlbmd0 aDwyIHx8IHBbMV0ubGVuZ3RoID09IDApewoJCQkJci5yZXN1bHRzID0gbnVsbDsK CQkJCXIucmVzdWx0Q291bnQgPSAwOwoJCQkJb3NfaGlkZVJlc3VsdHMocik7CgkJ CQlyZXR1cm47CgkJCX0KCQkJdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZChyLmNvbnRhaW5lcik7CgkJCWlmKGMgPT0gbnVsbCkKCQkJCWMgPSBvc19jcmVh dGVDb250YWluZXIocik7CgkJCWMuaW5uZXJIVE1MID0gb3NfY3JlYXRlUmVzdWx0 VGFibGUocixwWzFdKTsKCQkJLy8gaW5pdCBjb250YWluZXIgdGFibGUgc2l6ZXMK CQkJdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLnJlc3VsdFRhYmxl KTsKCQkJci5jb250YWluZXJUb3RhbCA9IHQub2Zmc2V0SGVpZ2h0OwoJCQlyLmNv bnRhaW5lclJvdyA9IHQub2Zmc2V0SGVpZ2h0IC8gci5yZXN1bHRDb3VudDsKCQkJ b3NfZml0Q29udGFpbmVyKHIpOwoJCQlvc190cmltUmVzdWx0VGV4dChyKTsKCQkJ b3Nfc2hvd1Jlc3VsdHMocik7CgkJfSBjYXRjaChlKXsKCQkJLy8gYmFkIHJlc3Bv bnNlIGZyb20gc2VydmVyIG9yIHN1Y2gKCQkJb3NfaGlkZVJlc3VsdHMocik7CgkJ CW9zX2NhY2hlW2NhY2hlS2V5XSA9IG51bGw7CgkJfQoJfQp9CgovKiogQ3JlYXRl IHRoZSByZXN1bHQgdGFibGUgdG8gYmUgcGxhY2VkIGluIHRoZSBjb250YWluZXIg ZGl2ICovCmZ1bmN0aW9uIG9zX2NyZWF0ZVJlc3VsdFRhYmxlKHIsIHJlc3VsdHMp ewoJdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLmNvbnRhaW5lcik7 Cgl2YXIgd2lkdGggPSBjLm9mZnNldFdpZHRoIC0gb3Nfb3BlcmFXaWR0aEZpeChj Lm9mZnNldFdpZHRoKTsKCXZhciBodG1sID0gIjx0YWJsZSBjbGFzcz1cIm9zLXN1 Z2dlc3QtcmVzdWx0c1wiIGlkPVwiIityLnJlc3VsdFRhYmxlKyJcIiBzdHlsZT1c IndpZHRoOiAiK3dpZHRoKyJweDtcIj4iOwoJci5yZXN1bHRzID0gbmV3IEFycmF5 KCk7CglyLnJlc3VsdENvdW50ID0gcmVzdWx0cy5sZW5ndGg7Cglmb3IoaT0wO2k8 cmVzdWx0cy5sZW5ndGg7aSsrKXsKCQl2YXIgdGl0bGUgPSBvc19kZWNvZGVWYWx1 ZShyZXN1bHRzW2ldKTsKCQlyLnJlc3VsdHNbaV0gPSB0aXRsZTsKCQlodG1sICs9 ICI8dHI+PHRkIGNsYXNzPVwib3Mtc3VnZ2VzdC1yZXN1bHRcIiBpZD1cIiIrci5y ZXN1bHRUYWJsZStpKyJcIj48c3BhbiBpZD1cIiIrci5yZXN1bHRUZXh0K2krIlwi PiIrdGl0bGUrIjwvc3Bhbj48L3RkPjwvdHI+IjsKCX0KCWh0bWwrPSI8L3RhYmxl PiIKCXJldHVybiBodG1sOwp9CgovKiogRmV0Y2ggbmFtZXNwYWNlcyBmcm9tIGNo ZWNrYm94ZXMgb3IgaGlkZGVuIGZpZWxkcyBpbiB0aGUgc2VhcmNoIGZvcm0sCiAg ICBpZiBub25lIGRlZmluZWQgdXNlIHdnU2VhcmNoTmFtZXNwYWNlcyBnbG9iYWwg Ki8KZnVuY3Rpb24gb3NfZ2V0TmFtZXNwYWNlcyhyKXsKCXZhciBuYW1lc3BhY2Vz ID0gIiI7Cgl2YXIgZWxlbWVudHMgPSBkb2N1bWVudC5mb3Jtc1tyLnNlYXJjaGZv cm1dLmVsZW1lbnRzOwoJZm9yKGk9MDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsr KXsKCQl2YXIgbmFtZSA9IGVsZW1lbnRzW2ldLm5hbWU7CgkJaWYodHlwZW9mIG5h bWUgIT0gJ3VuZGVmaW5lZCcgJiYgbmFtZS5sZW5ndGggPiAyCgkJJiYgbmFtZVsw XT09J24nICYmIG5hbWVbMV09PSdzJwoJCSYmICgoZWxlbWVudHNbaV0udHlwZT09 J2NoZWNrYm94JyAmJiBlbGVtZW50c1tpXS5jaGVja2VkKQoJCSAJfHwgKGVsZW1l bnRzW2ldLnR5cGU9PSdoaWRkZW4nICYmIGVsZW1lbnRzW2ldLnZhbHVlPT0iMSIp KSApewoJCQlpZihuYW1lc3BhY2VzIT0iIikKCQkJCW5hbWVzcGFjZXMrPSJ8IjsK CQkJbmFtZXNwYWNlcys9bmFtZS5zdWJzdHJpbmcoMik7CgkJfQoJfQoJaWYobmFt ZXNwYWNlcyA9PSAiIikKCQluYW1lc3BhY2VzID0gd2dTZWFyY2hOYW1lc3BhY2Vz LmpvaW4oInwiKTsKCXJldHVybiBuYW1lc3BhY2VzOwp9CgovKiogVXBkYXRlIHJl c3VsdHMgaWYgdXNlciBoYXNuJ3QgYWxyZWFkeSB0eXBlZCBzb21ldGhpbmcgZWxz ZSAqLwpmdW5jdGlvbiBvc191cGRhdGVJZlJlbGV2YW50KHIsIHF1ZXJ5LCB0ZXh0 LCBjYWNoZUtleSl7Cgl2YXIgdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIu c2VhcmNoYm94KTsKCWlmKHQgIT0gbnVsbCAmJiB0LnZhbHVlID09IHF1ZXJ5KXsg Ly8gY2hlY2sgaWYgcmVzcG9uc2UgaXMgc3RpbGwgcmVsZXZhbnQKCQlvc191cGRh dGVSZXN1bHRzKHIsIHF1ZXJ5LCB0ZXh0LCBjYWNoZUtleSk7Cgl9CglyLnF1ZXJ5 ID0gcXVlcnk7Cn0KCi8qKiBGZXRjaCByZXN1bHRzIGFmdGVyIHNvbWUgdGltZW91 dCAqLwpmdW5jdGlvbiBvc19kZWxheWVkRmV0Y2goKXsKCWlmKG9zX3RpbWVyID09 IG51bGwpCgkJcmV0dXJuOwoJdmFyIHIgPSBvc190aW1lci5yOwoJdmFyIHF1ZXJ5 ID0gb3NfdGltZXIucXVlcnk7Cglvc190aW1lciA9IG51bGw7Cgl2YXIgcGF0aCA9 IHdnTVdTdWdnZXN0VGVtcGxhdGUucmVwbGFjZSgie25hbWVzcGFjZXN9Iixvc19n ZXROYW1lc3BhY2VzKHIpKQoJCQkJCQkJICAJICAucmVwbGFjZSgie2RibmFtZX0i LHdnREJuYW1lKQoJCQkJCQkJICAJICAucmVwbGFjZSgie3NlYXJjaFRlcm1zfSIs b3NfZW5jb2RlUXVlcnkocXVlcnkpKTsKCgkvLyB0cnkgdG8gZ2V0IGZyb20gY2Fj aGUsIGlmIG5vdCBmZXRjaCB1c2luZyBhamF4Cgl2YXIgY2FjaGVkID0gb3NfY2Fj aGVbcGF0aF07CglpZihjYWNoZWQgIT0gbnVsbCl7CgkJb3NfdXBkYXRlSWZSZWxl dmFudChyLCBxdWVyeSwgY2FjaGVkLCBwYXRoKTsKCX0gZWxzZXsKCQl2YXIgeG1s aHR0cCA9IHNhamF4X2luaXRfb2JqZWN0KCk7CgkJaWYoeG1saHR0cCl7CgkJCXRy eSB7CgkJCQl4bWxodHRwLm9wZW4oIkdFVCIsIHBhdGgsIHRydWUpOwoJCQkJeG1s aHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXsKCQkgICAgICAgIAlp ZiAoeG1saHR0cC5yZWFkeVN0YXRlPT00ICYmIHR5cGVvZiBvc191cGRhdGVJZlJl bGV2YW50ID09ICdmdW5jdGlvbicpIHsKCQkgICAgICAgIAkJb3NfdXBkYXRlSWZS ZWxldmFudChyLCBxdWVyeSwgeG1saHR0cC5yZXNwb25zZVRleHQsIHBhdGgpOwoJ ICAgICAgICAJCX0KCSAgICAgIAkJfTsKCSAgICAgCQl4bWxodHRwLnNlbmQobnVs bCk7CgkgICAgIAl9IGNhdGNoIChlKSB7CgkJCQlpZiAod2luZG93LmxvY2F0aW9u Lmhvc3RuYW1lID09ICJsb2NhbGhvc3QiKSB7CgkJCQkJYWxlcnQoIllvdXIgYnJv d3NlciBibG9ja3MgWE1MSHR0cFJlcXVlc3QgdG8gJ2xvY2FsaG9zdCcsIHRyeSB1 c2luZyBhIHJlYWwgaG9zdG5hbWUgZm9yIGRldmVsb3BtZW50L3Rlc3RpbmcuIik7 CgkJCQl9CgkJCQl0aHJvdyBlOwoJCQl9CgkJfQoJfQp9CgovKiogSW5pdCB0aW1l ZCB1cGRhdGUgdmlhIG9zX2RlbGF5ZWRVcGRhdGUoKSAqLwpmdW5jdGlvbiBvc19m ZXRjaFJlc3VsdHMociwgcXVlcnksIHRpbWVvdXQpewoJaWYocXVlcnkgPT0gIiIp ewoJCXIucXVlcnkgPSAiIjsKCQlvc19oaWRlUmVzdWx0cyhyKTsKCQlyZXR1cm47 Cgl9IGVsc2UgaWYocXVlcnkgPT0gci5xdWVyeSkKCQlyZXR1cm47IC8vIG5vIGNo YW5nZQoKCW9zX2lzX3N0b3BwZWQgPSBmYWxzZTsgLy8gbWFrZSBzdXJlIHdlJ3Jl IHJ1bm5pbmcKCgkvKiB2YXIgY2FjaGVLZXkgPSB3Z0RCbmFtZSsiOiIrcXVlcnk7 Cgl2YXIgY2FjaGVkID0gb3NfY2FjaGVbY2FjaGVLZXldOwoJaWYoY2FjaGVkICE9 IG51bGwpewoJCW9zX3VwZGF0ZVJlc3VsdHMocix3Z0RCbmFtZSxxdWVyeSxjYWNo ZWQpOwoJCXJldHVybjsKCX0gKi8KCgkvLyBjYW5jZWwgYW55IHBlbmRpbmcgZmV0 Y2hlcwoJaWYob3NfdGltZXIgIT0gbnVsbCAmJiBvc190aW1lci5pZCAhPSBudWxs KQoJCWNsZWFyVGltZW91dChvc190aW1lci5pZCk7CgkvLyBzY2hlZHVsZSBkZWxh eWVkIGZldGNoaW5nIG9mIHJlc3VsdHMKCWlmKHRpbWVvdXQgIT0gMCl7CgkJb3Nf dGltZXIgPSBuZXcgb3NfVGltZXIoc2V0VGltZW91dCgib3NfZGVsYXllZEZldGNo KCkiLHRpbWVvdXQpLHIscXVlcnkpOwoJfSBlbHNlewoJCW9zX3RpbWVyID0gbmV3 IG9zX1RpbWVyKG51bGwscixxdWVyeSk7CgkJb3NfZGVsYXllZEZldGNoKCk7IC8v IGRvIGl0IG5vdyEKCX0KCn0KLyoqIENoYW5nZSB0aGUgaGlnaGxpZ2h0ZWQgcm93 IChpLmUuIHN1Z2dlc3Rpb24pLCBmcm9tIHBvc2l0aW9uIGN1ciB0byBuZXh0ICov CmZ1bmN0aW9uIG9zX2NoYW5nZUhpZ2hsaWdodChyLCBjdXIsIG5leHQsIHVwZGF0 ZVNlYXJjaEJveCl7CglpZiAobmV4dCA+PSByLnJlc3VsdENvdW50KQoJCW5leHQg PSByLnJlc3VsdENvdW50LTE7CglpZiAobmV4dCA8IC0xKQoJCW5leHQgPSAtMTsK CXIuc2VsZWN0ZWQgPSBuZXh0OwogICAJaWYgKGN1ciA9PSBuZXh0KQogICAgCXJl dHVybjsgLy8gbm90aGluZyB0byBkby4KCiAgICBpZihjdXIgPj0gMCl7CiAgICAJ dmFyIGN1clJvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIucmVzdWx0VGFi bGUgKyBjdXIpOwogICAgCWlmKGN1clJvdyAhPSBudWxsKQogICAgCQljdXJSb3cu Y2xhc3NOYW1lID0gIm9zLXN1Z2dlc3QtcmVzdWx0IjsKICAgIH0KICAgIHZhciBu ZXdUZXh0OwogICAgaWYobmV4dCA+PSAwKXsKICAgIAl2YXIgbmV4dFJvdyA9IGRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKHIucmVzdWx0VGFibGUgKyBuZXh0KTsKICAg IAlpZihuZXh0Um93ICE9IG51bGwpCiAgICAJCW5leHRSb3cuY2xhc3NOYW1lID0g b3NfSGlnaGxpZ2h0Q2xhc3MoKTsKICAgIAluZXdUZXh0ID0gci5yZXN1bHRzW25l eHRdOwogICAgfSBlbHNlCiAgICAJbmV3VGV4dCA9IHIub3JpZ2luYWw7CgogICAg Ly8gYWRqdXN0IHRoZSBzY3JvbGxiYXIgaWYgYW55CiAgICBpZihyLmNvbnRhaW5l ckNvdW50IDwgci5yZXN1bHRDb3VudCl7CiAgICAJdmFyIGMgPSBkb2N1bWVudC5n ZXRFbGVtZW50QnlJZChyLmNvbnRhaW5lcik7CiAgICAJdmFyIHZTdGFydCA9IGMu c2Nyb2xsVG9wIC8gci5jb250YWluZXJSb3c7CiAgICAJdmFyIHZFbmQgPSB2U3Rh cnQgKyByLmNvbnRhaW5lckNvdW50OwogICAgCWlmKG5leHQgPCB2U3RhcnQpCiAg ICAJCWMuc2Nyb2xsVG9wID0gbmV4dCAqIHIuY29udGFpbmVyUm93OwogICAgCWVs c2UgaWYobmV4dCA+PSB2RW5kKQogICAgCQljLnNjcm9sbFRvcCA9IChuZXh0IC0g ci5jb250YWluZXJDb3VudCArIDEpICogci5jb250YWluZXJSb3c7CiAgICB9Cgog ICAgLy8gdXBkYXRlIHRoZSBjb250ZW50cyBvZiB0aGUgc2VhcmNoIGJveAogICAg aWYodXBkYXRlU2VhcmNoQm94KXsKICAgIAlvc191cGRhdGVTZWFyY2hRdWVyeShy LG5ld1RleHQpOwogICAgfQp9CgpmdW5jdGlvbiBvc19IaWdobGlnaHRDbGFzcygp IHsKCXZhciBtYXRjaCA9IG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0FwcGxl V2ViS2l0XC8oXGQrKS8pOwoJaWYgKG1hdGNoKSB7CgkJdmFyIHdlYktpdFZlcnNp b24gPSBwYXJzZUludChtYXRjaFsxXSk7CgkJaWYgKHdlYktpdFZlcnNpb24gPCA1 MjMpIHsKCQkJLy8gQ1NTIHN5c3RlbSBoaWdobGlnaHQgY29sb3JzIGJyb2tlbiBv biBvbGQgU2FmYXJpCgkJCS8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df YnVnLmNnaT9pZD02MTI5CgkJCS8vIFNhZmFyaSAzLjAuNCwgMy4xIGtub3duIG9r CgkJCXJldHVybiAib3Mtc3VnZ2VzdC1yZXN1bHQtaGwtd2Via2l0IjsKCQl9Cgl9 CglyZXR1cm4gIm9zLXN1Z2dlc3QtcmVzdWx0LWhsIjsKfQoKZnVuY3Rpb24gb3Nf dXBkYXRlU2VhcmNoUXVlcnkocixuZXdUZXh0KXsKCWRvY3VtZW50LmdldEVsZW1l bnRCeUlkKHIuc2VhcmNoYm94KS52YWx1ZSA9IG5ld1RleHQ7CiAgICByLnF1ZXJ5 ID0gbmV3VGV4dDsKfQoKLyoqIEZpbmQgZXZlbnQgdGFyZ2V0ICovCmZ1bmN0aW9u IG9zX2dldFRhcmdldChlKXsKCWlmICghZSkgZSA9IHdpbmRvdy5ldmVudDsKCWlm IChlLnRhcmdldCkgcmV0dXJuIGUudGFyZ2V0OwoJZWxzZSBpZiAoZS5zcmNFbGVt ZW50KSByZXR1cm4gZS5zcmNFbGVtZW50OwoJZWxzZSByZXR1cm4gbnVsbDsKfQoK CgovKioqKioqKioqKioqKioqKioqKioKICogIEtleWJvYXJkIGV2ZW50cwogKioq KioqKioqKioqKioqKioqKiovCgovKiogRXZlbnQgaGFuZGxlciB0aGF0IHdpbGwg ZmV0Y2ggcmVzdWx0cyBvbiBrZXl1cCAqLwpmdW5jdGlvbiBvc19ldmVudEtleXVw KGUpewoJdmFyIHRhcmcgPSBvc19nZXRUYXJnZXQoZSk7Cgl2YXIgciA9IG9zX21h cFt0YXJnLmlkXTsKCWlmKHIgPT0gbnVsbCkKCQlyZXR1cm47IC8vIG5vdCBvdXIg ZXZlbnQKCgkvLyBzb21lIGJyb3dzZXJzIHdvbid0IGdlbmVyYXRlIGtleXByZXNz ZWQgZm9yIGFycm93IGtleXMsIGNhdGNoIGl0CglpZihvc19rZXlwcmVzc2VkX2Nv dW50ID09IDApewoJCW9zX3Byb2Nlc3NLZXkocixvc19jdXJfa2V5cHJlc3NlZCx0 YXJnKTsKCX0KCXZhciBxdWVyeSA9IHRhcmcudmFsdWU7Cglvc19mZXRjaFJlc3Vs dHMocixxdWVyeSxvc19zZWFyY2hfdGltZW91dCk7Cn0KCi8qKiBjYXRjaCBhcnJv d3MgdXAvZG93biBhbmQgZXNjYXBlIHRvIGhpZGUgdGhlIHN1Z2dlc3Rpb25zICov CmZ1bmN0aW9uIG9zX3Byb2Nlc3NLZXkocixrZXlwcmVzc2VkLHRhcmcpewoJaWYg KGtleXByZXNzZWQgPT0gNDApeyAvLyBBcnJvdyBEb3duCiAgICAJaWYgKHIudmlz aWJsZSkgewogICAgICAJCW9zX2NoYW5nZUhpZ2hsaWdodChyLCByLnNlbGVjdGVk LCByLnNlbGVjdGVkKzEsIHRydWUpOwogICAgCX0gZWxzZSBpZihvc190aW1lciA9 PSBudWxsKXsKICAgIAkJLy8gdXNlciB3YW50cyB0byBnZXQgc3VnZ2VzdGlvbnMg bm93CiAgICAJCXIucXVlcnkgPSAiIjsKCQkJb3NfZmV0Y2hSZXN1bHRzKHIsdGFy Zy52YWx1ZSwwKTsKICAgIAl9CiAgCX0gZWxzZSBpZiAoa2V5cHJlc3NlZCA9PSAz OCl7IC8vIEFycm93IFVwCiAgCQlpZiAoci52aXNpYmxlKXsKICAJCQlvc19jaGFu Z2VIaWdobGlnaHQociwgci5zZWxlY3RlZCwgci5zZWxlY3RlZC0xLCB0cnVlKTsK ICAJCX0KICAJfSBlbHNlIGlmKGtleXByZXNzZWQgPT0gMjcpeyAvLyBFc2NhcGUK ICAJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuc2VhcmNoYm94KS52YWx1ZSA9 IHIub3JpZ2luYWw7CiAgCQlyLnF1ZXJ5ID0gci5vcmlnaW5hbDsKICAJCW9zX2hp ZGVSZXN1bHRzKHIpOwogIAl9IGVsc2UgaWYoci5xdWVyeSAhPSBkb2N1bWVudC5n ZXRFbGVtZW50QnlJZChyLnNlYXJjaGJveCkudmFsdWUpewogIAkJLy8gb3NfaGlk ZVJlc3VsdHMocik7IC8vIGRvbid0IHNob3cgb2xkIHN1Z2dlc3Rpb25zCiAgCX0K fQoKLyoqIFdoZW4ga2V5cyBpcyBoZWxkIGRvd24gdXNlIGEgdGltZXIgdG8gb3V0 cHV0IHJlZ3VsYXIgZXZlbnRzICovCmZ1bmN0aW9uIG9zX2V2ZW50S2V5cHJlc3Mo ZSl7Cgl2YXIgdGFyZyA9IG9zX2dldFRhcmdldChlKTsKCXZhciByID0gb3NfbWFw W3RhcmcuaWRdOwoJaWYociA9PSBudWxsKQoJCXJldHVybjsgLy8gbm90IG91ciBl dmVudAoKCXZhciBrZXlwcmVzc2VkID0gb3NfY3VyX2tleXByZXNzZWQ7CgoJb3Nf a2V5cHJlc3NlZF9jb3VudCsrOwoJb3NfcHJvY2Vzc0tleShyLGtleXByZXNzZWQs dGFyZyk7Cn0KCi8qKiBDYXRjaCB0aGUga2V5IGNvZGUgKEZpcmVmb3ggYnVnKSAg Ki8KZnVuY3Rpb24gb3NfZXZlbnRLZXlkb3duKGUpewoJaWYgKCFlKSBlID0gd2lu ZG93LmV2ZW50OwoJdmFyIHRhcmcgPSBvc19nZXRUYXJnZXQoZSk7Cgl2YXIgciA9 IG9zX21hcFt0YXJnLmlkXTsKCWlmKHIgPT0gbnVsbCkKCQlyZXR1cm47IC8vIG5v dCBvdXIgZXZlbnQKCglvc19tb3VzZV9tb3ZlZCA9IGZhbHNlOwoKCW9zX2N1cl9r ZXlwcmVzc2VkID0gKGUua2V5Q29kZSA9PSB1bmRlZmluZWQpID8gZS53aGljaCA6 IGUua2V5Q29kZTsKCW9zX2tleXByZXNzZWRfY291bnQgPSAwOwp9CgovKiogRXZl bnQ6IGxvc3Mgb2YgZm9jdXMgb2YgaW5wdXQgYm94ICovCmZ1bmN0aW9uIG9zX2V2 ZW50Qmx1cihlKXsKCXZhciB0YXJnID0gb3NfZ2V0VGFyZ2V0KGUpOwoJdmFyIHIg PSBvc19tYXBbdGFyZy5pZF07CglpZihyID09IG51bGwpCgkJcmV0dXJuOyAvLyBu b3Qgb3VyIGV2ZW50CglpZighb3NfbW91c2VfcHJlc3NlZCl7CgkJb3NfaGlkZVJl c3VsdHMocik7CgkJLy8gZm9yY2UgY2FudmFzIHRvIHN0YXkgaGlkZGVuCgkJci5z dGF5SGlkZGVuID0gdHJ1ZQoJCS8vIGNhbmNlbCBhbnkgcGVuZGluZyBmZXRjaGVz CgkJaWYob3NfdGltZXIgIT0gbnVsbCAmJiBvc190aW1lci5pZCAhPSBudWxsKQoJ CQljbGVhclRpbWVvdXQob3NfdGltZXIuaWQpOwoJCW9zX3RpbWVyID0gbnVsbAoJ fQp9CgovKiogRXZlbnQ6IGZvY3VzIChjYXRjaCBvbmx5IHdoZW4gc3RvcHBlZCkg Ki8KZnVuY3Rpb24gb3NfZXZlbnRGb2N1cyhlKXsKCXZhciB0YXJnID0gb3NfZ2V0 VGFyZ2V0KGUpOwoJdmFyIHIgPSBvc19tYXBbdGFyZy5pZF07CglpZihyID09IG51 bGwpCgkJcmV0dXJuOyAvLyBub3Qgb3VyIGV2ZW50CglyLnN0YXlIaWRkZW4gPSBm YWxzZQp9CgoKCi8qKioqKioqKioqKioqKioqKioqKgogKiAgTW91c2UgZXZlbnRz CiAqKioqKioqKioqKioqKioqKioqKi8KCi8qKiBNb3VzZSBvdmVyIHRoZSBjb250 YWluZXIgKi8KZnVuY3Rpb24gb3NfZXZlbnRNb3VzZW92ZXIoc3JjSWQsIGUpewoJ dmFyIHRhcmcgPSBvc19nZXRUYXJnZXQoZSk7Cgl2YXIgciA9IG9zX21hcFtzcmNJ ZF07CglpZihyID09IG51bGwgfHwgIW9zX21vdXNlX21vdmVkKQoJCXJldHVybjsg Ly8gbm90IG91ciBldmVudAoJdmFyIG51bSA9IG9zX2dldE51bWJlclN1ZmZpeCh0 YXJnLmlkKTsKCWlmKG51bSA+PSAwKQoJCW9zX2NoYW5nZUhpZ2hsaWdodChyLHIu c2VsZWN0ZWQsbnVtLGZhbHNlKTsKCn0KCi8qIEdldCByb3cgd2hlcmUgdGhlIGV2 ZW50IG9jY3VyZWQgKGZyb20gaXRzIGlkKSAqLwpmdW5jdGlvbiBvc19nZXROdW1i ZXJTdWZmaXgoaWQpewoJdmFyIG51bSA9IGlkLnN1YnN0cmluZyhpZC5sZW5ndGgt Mik7CglpZiggISAobnVtLmNoYXJBdCgwKSA+PSAnMCcgJiYgbnVtLmNoYXJBdCgw KSA8PSAnOScpICkKCQludW0gPSBudW0uc3Vic3RyaW5nKDEpOwoJaWYob3NfaXNO dW1iZXIobnVtKSkKCQlyZXR1cm4gcGFyc2VJbnQobnVtKTsKCWVsc2UKCQlyZXR1 cm4gLTE7Cn0KCi8qKiBTYXZlIG1vdXNlIG1vdmUgYXMgbGFzdCBhY3Rpb24gKi8K ZnVuY3Rpb24gb3NfZXZlbnRNb3VzZW1vdmUoc3JjSWQsIGUpewoJb3NfbW91c2Vf bW92ZWQgPSB0cnVlOwp9CgovKiogTW91c2UgYnV0dG9uIGhlbGQgZG93biwgcmVn aXN0ZXIgcG9zc2libGUgY2xpY2sgICovCmZ1bmN0aW9uIG9zX2V2ZW50TW91c2Vk b3duKHNyY0lkLCBlKXsKCXZhciB0YXJnID0gb3NfZ2V0VGFyZ2V0KGUpOwoJdmFy IHIgPSBvc19tYXBbc3JjSWRdOwoJaWYociA9PSBudWxsKQoJCXJldHVybjsgLy8g bm90IG91ciBldmVudAoJdmFyIG51bSA9IG9zX2dldE51bWJlclN1ZmZpeCh0YXJn LmlkKTsKCglvc19tb3VzZV9wcmVzc2VkID0gdHJ1ZTsKCWlmKG51bSA+PSAwKXsK CQlvc19tb3VzZV9udW0gPSBudW07CgkJLy8gb3NfdXBkYXRlU2VhcmNoUXVlcnko cixyLnJlc3VsdHNbbnVtXSk7Cgl9CgkvLyBrZWVwIHRoZSBmb2N1cyBvbiB0aGUg c2VhcmNoIGZpZWxkCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLnNlYXJjaGJv eCkuZm9jdXMoKTsKCglyZXR1cm4gZmFsc2U7IC8vIHByZXZlbnRzIHNlbGVjdGlv bgp9CgovKiogTW91c2UgYnV0dG9uIHJlbGVhc2VkLCBjaGVjayBmb3IgY2xpY2sg b24gc29tZSByb3cgKi8KZnVuY3Rpb24gb3NfZXZlbnRNb3VzZXVwKHNyY0lkLCBl KXsKCXZhciB0YXJnID0gb3NfZ2V0VGFyZ2V0KGUpOwoJdmFyIHIgPSBvc19tYXBb c3JjSWRdOwoJaWYociA9PSBudWxsKQoJCXJldHVybjsgLy8gbm90IG91ciBldmVu dAoJdmFyIG51bSA9IG9zX2dldE51bWJlclN1ZmZpeCh0YXJnLmlkKTsKCglpZihu dW0gPj0gMCAmJiBvc19tb3VzZV9udW0gPT0gbnVtKXsKCQlvc191cGRhdGVTZWFy Y2hRdWVyeShyLHIucmVzdWx0c1tudW1dKTsKCQlvc19oaWRlUmVzdWx0cyhyKTsK CQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLnNlYXJjaGZvcm0pLnN1Ym1pdCgp OwoJfQoJb3NfbW91c2VfcHJlc3NlZCA9IGZhbHNlOwoJLy8ga2VlcCB0aGUgZm9j dXMgb24gdGhlIHNlYXJjaCBmaWVsZAoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo ci5zZWFyY2hib3gpLmZvY3VzKCk7Cn0KCi8qKiBDaGVjayBpZiB4IGlzIGEgdmFs aWQgaW50ZWdlciAqLwpmdW5jdGlvbiBvc19pc051bWJlcih4KXsKCWlmKHggPT0g IiIgfHwgaXNOYU4oeCkpCgkJcmV0dXJuIGZhbHNlOwoJZm9yKHZhciBpPTA7aTx4 Lmxlbmd0aDtpKyspewoJCXZhciBjID0geC5jaGFyQXQoaSk7CgkJaWYoICEgKGMg Pj0gJzAnICYmIGMgPD0gJzknKSApCgkJCXJldHVybiBmYWxzZTsKCX0KCXJldHVy biB0cnVlOwp9CgoKLyoqIFdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkIGhpZGUg ZXZlcnl0aGluZywgY2FuY2VsIHVwZGF0ZXMuLi4gKi8KZnVuY3Rpb24gb3NfZXZl bnRPbnN1Ym1pdChlKXsKCXZhciB0YXJnID0gb3NfZ2V0VGFyZ2V0KGUpOwoKCW9z X2lzX3N0b3BwZWQgPSB0cnVlOwoJLy8ga2lsbCB0aW1lZCByZXF1ZXN0cwoJaWYo b3NfdGltZXIgIT0gbnVsbCAmJiBvc190aW1lci5pZCAhPSBudWxsKXsKCQljbGVh clRpbWVvdXQob3NfdGltZXIuaWQpOwoJCW9zX3RpbWVyID0gbnVsbDsKCX0KCS8v IEhpZGUgYWxsIHN1Z2dlc3Rpb25zCglmb3IoaT0wO2k8b3NfYXV0b2xvYWRfaW5w dXRzLmxlbmd0aDtpKyspewoJCXZhciByID0gb3NfbWFwW29zX2F1dG9sb2FkX2lu cHV0c1tpXV07CgkJaWYociAhPSBudWxsKXsKCQkJdmFyIGIgPSBkb2N1bWVudC5n ZXRFbGVtZW50QnlJZChyLnNlYXJjaGZvcm0pOwoJCQlpZihiICE9IG51bGwgJiYg YiA9PSB0YXJnKXsKCQkJCS8vIHNldCBxdWVyeSB2YWx1ZSBzbyB0aGUgaGFuZGxl ciB3b24ndCB0cnkgdG8gZmV0Y2ggYWRkaXRpb25hbCByZXN1bHRzCgkJCQlyLnF1 ZXJ5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5zZWFyY2hib3gpLnZhbHVl OwoJCQl9CgkJCW9zX2hpZGVSZXN1bHRzKHIpOwoJCX0KCX0KCXJldHVybiB0cnVl Owp9CgpmdW5jdGlvbiBvc19ob29rRXZlbnQoZWxlbWVudCwgaG9va05hbWUsIGhv b2tGdW5jdCkgewoJaWYgKGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikgewoJCWVs ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihob29rTmFtZSwgaG9va0Z1bmN0LCBmYWxz ZSk7Cgl9IGVsc2UgaWYgKHdpbmRvdy5hdHRhY2hFdmVudCkgewoJCWVsZW1lbnQu YXR0YWNoRXZlbnQoIm9uIiArIGhvb2tOYW1lLCBob29rRnVuY3QpOwoJfQp9Cgov KiogSW5pdCBSZXN1bHQgb2JqZWN0cyBhbmQgZXZlbnQgaGFuZGxlcnMgKi8KZnVu Y3Rpb24gb3NfaW5pdEhhbmRsZXJzKG5hbWUsIGZvcm1uYW1lLCBlbGVtZW50KXsK CXZhciByID0gbmV3IG9zX1Jlc3VsdHMobmFtZSwgZm9ybW5hbWUpOwoJLy8gZXZl bnQgaGFuZGxlcgoJb3NfaG9va0V2ZW50KGVsZW1lbnQsICJrZXl1cCIsIGZ1bmN0 aW9uKGV2ZW50KSB7IG9zX2V2ZW50S2V5dXAoZXZlbnQpOyB9KTsKCW9zX2hvb2tF dmVudChlbGVtZW50LCAia2V5ZG93biIsIGZ1bmN0aW9uKGV2ZW50KSB7IG9zX2V2 ZW50S2V5ZG93bihldmVudCk7IH0pOwoJb3NfaG9va0V2ZW50KGVsZW1lbnQsICJr ZXlwcmVzcyIsIGZ1bmN0aW9uKGV2ZW50KSB7IG9zX2V2ZW50S2V5cHJlc3MoZXZl bnQpOyB9KTsKCW9zX2hvb2tFdmVudChlbGVtZW50LCAiYmx1ciIsIGZ1bmN0aW9u KGV2ZW50KSB7IG9zX2V2ZW50Qmx1cihldmVudCk7IH0pOwoJb3NfaG9va0V2ZW50 KGVsZW1lbnQsICJmb2N1cyIsIGZ1bmN0aW9uKGV2ZW50KSB7IG9zX2V2ZW50Rm9j dXMoZXZlbnQpOyB9KTsKCWVsZW1lbnQuc2V0QXR0cmlidXRlKCJhdXRvY29tcGxl dGUiLCJvZmYiKTsKCS8vIHN0b3BwaW5nIGhhbmRsZXIKCW9zX2hvb2tFdmVudChk b2N1bWVudC5nZXRFbGVtZW50QnlJZChmb3JtbmFtZSksICJzdWJtaXQiLCBmdW5j dGlvbihldmVudCl7IHJldHVybiBvc19ldmVudE9uc3VibWl0KGV2ZW50KTsgfSk7 Cglvc19tYXBbbmFtZV0gPSByOwoJLy8gdG9nZ2xlIGxpbmsKCWlmKGRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKHIudG9nZ2xlKSA9PSBudWxsKXsKCQkvLyBUT0RPOiBk aXNhYmxlIHRoaXMgd2hpbGUgd2UgZmlndXJlIG91dCBhIHdheSBmb3IgdGhpcyB0 byB3b3JrIGluIGFsbCBicm93c2VycwoJCS8qIGlmKG5hbWU9PSdzZWFyY2hJbnB1 dCcpewoJCQkvLyBzcGVjaWFsIGNhc2U6IHBsYWNlIGFib3ZlIHRoZSBtYWluIHNl YXJjaCBib3gKCQkJdmFyIHQgPSBvc19jcmVhdGVUb2dnbGUociwib3Mtc3VnZ2Vz dC10b2dnbGUiKTsKCQkJdmFyIHNlYXJjaEJvZHkgPSBkb2N1bWVudC5nZXRFbGVt ZW50QnlJZCgnc2VhcmNoQm9keScpOwoJCQl2YXIgZmlyc3QgPSBzZWFyY2hCb2R5 LnBhcmVudE5vZGUuZmlyc3RDaGlsZC5uZXh0U2libGluZy5hcHBlbmRDaGlsZCh0 KTsKCQl9IGVsc2V7CgkJCS8vIGRlZmF1bHQ6IHBsYWNlIGJlbG93IHNlYXJjaCBi b3ggdG8gdGhlIHJpZ2h0CgkJCXZhciB0ID0gb3NfY3JlYXRlVG9nZ2xlKHIsIm9z LXN1Z2dlc3QtdG9nZ2xlLWRlZiIpOwoJCQl2YXIgdG9wID0gZWxlbWVudC5vZmZz ZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodDsKCQkJdmFyIGxlZnQgPSBlbGVt ZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoOwoJCQl0LnN0eWxl LnBvc2l0aW9uID0gImFic29sdXRlIjsKCQkJdC5zdHlsZS50b3AgPSB0b3AgKyAi cHgiOwoJCQl0LnN0eWxlLmxlZnQgPSBsZWZ0ICsgInB4IjsKCQkJZWxlbWVudC5w YXJlbnROb2RlLmFwcGVuZENoaWxkKHQpOwoJCQkvLyBvbmx5IG5vdyB3aWR0aCBn ZXRzIGNhbGN1bGF0ZWQsIHNoaWZ0IHJpZ2h0CgkJCWxlZnQgLT0gdC5vZmZzZXRX aWR0aDsKCQkJdC5zdHlsZS5sZWZ0ID0gbGVmdCArICJweCI7CgkJCXQuc3R5bGUu dmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKCQl9ICovCgl9Cgp9CgovKiogUmV0dXJu IHRoZSBzcGFuIGVsZW1lbnQgdGhhdCBjb250YWlucyB0aGUgdG9nZ2xlIGxpbmsg Ki8KZnVuY3Rpb24gb3NfY3JlYXRlVG9nZ2xlKHIsY2xhc3NOYW1lKXsKCXZhciB0 ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwoJdC5jbGFzc05hbWUg PSBjbGFzc05hbWU7Cgl0LnNldEF0dHJpYnV0ZSgiaWQiLCByLnRvZ2dsZSk7Cgl2 YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKCWxpbmsuc2V0 QXR0cmlidXRlKCJocmVmIiwiamF2YXNjcmlwdDp2b2lkKDApOyIpOwoJbGluay5v bmNsaWNrID0gZnVuY3Rpb24oKXsgb3NfdG9nZ2xlKHIuc2VhcmNoYm94LHIuc2Vh cmNoZm9ybSkgfTsKCXZhciBtc2cgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh3 Z01XU3VnZ2VzdE1lc3NhZ2VzWzBdKTsKCWxpbmsuYXBwZW5kQ2hpbGQobXNnKTsK CXQuYXBwZW5kQ2hpbGQobGluayk7CglyZXR1cm4gdDsKfQoKLyoqIENhbGwgd2hl biB1c2VyIGNsaWNrcyBvbiBzb21lIG9mIHRoZSB0b2dnbGUgbGlua3MgKi8KZnVu Y3Rpb24gb3NfdG9nZ2xlKGlucHV0SWQsZm9ybU5hbWUpewoJciA9IG9zX21hcFtp bnB1dElkXTsKCXZhciBtc2cgPSAnJzsKCWlmKHIgPT0gbnVsbCl7CgkJb3NfZW5h YmxlU3VnZ2VzdGlvbnNPbihpbnB1dElkLGZvcm1OYW1lKTsKCQlyID0gb3NfbWFw W2lucHV0SWRdOwoJCW1zZyA9IHdnTVdTdWdnZXN0TWVzc2FnZXNbMF07Cgl9IGVs c2V7CgkJb3NfZGlzYWJsZVN1Z2dlc3Rpb25zT24oaW5wdXRJZCxmb3JtTmFtZSk7 CgkJbXNnID0gd2dNV1N1Z2dlc3RNZXNzYWdlc1sxXTsKCX0KCS8vIGNoYW5nZSBt ZXNzYWdlCgl2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIudG9n Z2xlKS5maXJzdENoaWxkOwoJbGluay5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQuY3Jl YXRlVGV4dE5vZGUobXNnKSxsaW5rLmZpcnN0Q2hpbGQpOwp9CgovKiogQ2FsbCB0 aGlzIHRvIGVuYWJsZSBzdWdnZXN0aW9ucyBvbiBpbnB1dCAoaWQ9aW5wdXRJZCks IG9uIGEgZm9ybSAobmFtZT1mb3JtTmFtZSkgKi8KZnVuY3Rpb24gb3NfZW5hYmxl U3VnZ2VzdGlvbnNPbihpbnB1dElkLCBmb3JtTmFtZSl7Cglvc19pbml0SGFuZGxl cnMoIGlucHV0SWQsIGZvcm1OYW1lLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChp bnB1dElkKSApOwp9CgovKiogQ2FsbCB0aGlzIHRvIGRpc2FibGUgc3VnZ2VzdGlv cyBvbiBpbnB1dCBib3ggKGlkPWlucHV0SWQpICovCmZ1bmN0aW9uIG9zX2Rpc2Fi bGVTdWdnZXN0aW9uc09uKGlucHV0SWQpewoJciA9IG9zX21hcFtpbnB1dElkXTsK CWlmKHIgIT0gbnVsbCl7CgkJLy8gY2FuY2VsL2hpZGUgcmVzdWx0cwoJCW9zX3Rp bWVyID0gbnVsbDsKCQlvc19oaWRlUmVzdWx0cyhyKTsKCQkvLyB0dXJuIGF1dG9j b21wbGV0ZSBvbiAhCgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCku c2V0QXR0cmlidXRlKCJhdXRvY29tcGxldGUiLCJvbiIpOwoJCS8vIHJlbW92ZSBk ZXNjcmlwdG9yCgkJb3NfbWFwW2lucHV0SWRdID0gbnVsbDsKCX0KCQoJLy8gUmVt b3ZlIHRoZSBlbGVtZW50IGZyb20gdGhlIG9zX2F1dG9sb2FkXyogYXJyYXlzCgl2 YXIgaW5kZXggPSBvc19hdXRvbG9hZF9pbnB1dHMuaW5kZXhPZihpbnB1dElkKTsK CWlmICggaW5kZXggPj0gMCApCgkJb3NfYXV0b2xvYWRfaW5wdXRzW2luZGV4XSA9 IG9zX2F1dG9sb2FkX2Zvcm1zW2luZGV4XSA9ICcnOwp9CgovKiogSW5pdGlhbGl6 YXRpb24sIGNhbGwgdXBvbiBwYWdlIG9ubG9hZCAqLwpmdW5jdGlvbiBvc19NV1N1 Z2dlc3RJbml0KCkgewoJZm9yKGk9MDtpPG9zX2F1dG9sb2FkX2lucHV0cy5sZW5n dGg7aSsrKXsKCQl2YXIgaWQgPSBvc19hdXRvbG9hZF9pbnB1dHNbaV07CgkJdmFy IGZvcm0gPSBvc19hdXRvbG9hZF9mb3Jtc1tpXTsKCQllbGVtZW50ID0gZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoIGlkICk7CgkJaWYoZWxlbWVudCAhPSBudWxsKQoJ CQlvc19pbml0SGFuZGxlcnMoaWQsZm9ybSxlbGVtZW50KTsKCX0KfQoKaG9va0V2 ZW50KCJsb2FkIiwgb3NfTVdTdWdnZXN0SW5pdCk7Cg== ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=centralnotice.js Content-Type: text/javascript; charset=utf-8; name=centralnotice.js Content-Location: http://upload.wikimedia.org/centralnotice/wikibooks/en/centralnotice.js?257z23 Content-Transfer-Encoding: 8bit function toggleNotice() { var notice = document.getElementById('centralNotice'); if (!wgNoticeToggleState) { notice.className = notice.className.replace('collapsed', 'expanded'); toggleNoticeCookie('0'); } else { notice.className = notice.className.replace('expanded', 'collapsed'); toggleNoticeCookie('1'); } wgNoticeToggleState = !wgNoticeToggleState; } function toggleNoticeStyle(elems, display) { if(elems) for(var i=0;i' + wgNotice+'
'; ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=index.js Content-Type: text/javascript; charset=UTF-8; name=index.js Content-Location: http://en.wikibooks.org/w/index.php?title=-&action=raw&gen=js&useskin=monobook&urid=257z23 Content-Transfer-Encoding: 8bit /* generated javascript */ var skin = 'monobook'; var stylepath = 'http://bits.wikimedia.org/skins-1.5'; /* MediaWiki:Common.js */ // Common javascript code which effects everyone // hasClass() // Description: Uses regular expressions and caching for better performance. // Maintainers: User:Mike Dillon, User:R. Koot, User:SG var hasClass = (function () { var reCache = {}; return function (element, className) { return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className); }; })(); // for backwards compatibility var addLoadEvent = addOnloadHook; var import_script = importScript; var import_style = importStylesheet; // book name var wgBookName = wgPageName.split("/", 1)[0] || wgPageName; wgBookName = wgBookName.split(':', 2).join(":"); // Provides an easy way to disable load dependent features function delLoadEvent(func) { for (var i = 0; i < onloadFuncts.length; i++) { if (onloadFuncts[i] == func) onloadFuncts.splice(i, 1); } } function get_query_value(query, name) { if (typeof query != "string" || typeof name != "string") return ""; var value = query.match('[&?]' + name + '=([^&]*)'); if (value) return decodeURIComponent(value[1]); else return ""; } // cross-browser event attachment (John Resig) // http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html function addEvent(obj, type, fn) { if (obj.addEventListener) obj.addEventListener( type, fn, false ); else if (obj.attachEvent) { obj["e"+type+fn] = fn; obj[type+fn] = function() { obj["e"+type+fn]( window.event ); } obj.attachEvent( "on"+type, obj[type+fn] ); } } // cross-browser XMLHtttpRequest compatibility if (typeof XMLHttpRequest == "undefined") XMLHttpRequest = function() { try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch(e) {}; try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) {}; try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {}; try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}; throw new Error("This browser does not support XMLHttpRequest or XMLHTTP."); }; //Adds a dismissable message to the watchlist if (wgCanonicalSpecialPageName == "Watchlist") importScript('MediaWiki:Common.js/WatchlistNotice.js'); // Removes the default no-license option for image uploads. // All new image uploads must be tagged with a license or nld function remove_no_license() { if (wgPageName != "Special:Upload") return; var license = document.getElementById("wpLicense"); if (!license) return; var options = license.getElementsByTagName("option"); if (!options) return; license.removeChild(options[0]); } addOnloadHook(remove_no_license); // import additional scripts // import_script('MediaWiki:Common.js/ExtraTools.js'); import_script('MediaWiki:Common.js/Navigation.js'); import_script('MediaWiki:Common.js/NavigationTabs.js'); import_script('MediaWiki:Common.js/Displaytitle.js'); import_script('MediaWiki:Common.js/RandomBook.js'); import_script('MediaWiki:Common.js/Edittools.js'); // adds buttons to the edit toolbar if (mwCustomEditButtons) import_script('MediaWiki:Common.js/EditToolbar.js'); //Search within a book using Google// // 0 - Main / 102 - Cookbook / 110 - Wikijunior if ( wgNamespaceNumber == 0 || wgNamespaceNumber == 102 || wgNamespaceNumber == 110) importScript('MediaWiki:Common.js/BookSearch.js'); // Import book CSS wgBookCSS= wgPageName.split("/", 1)[0]; import_style('MediaWiki:Common.css/' + wgBookCSS); // End of Common.js /* MediaWiki:Monobook.js */ /* See also: [[MediaWiki:Common.js]]
*/

/* Functions for adding links to the personal links section and the toolbox*/
function AddPersonalLink(link, text, tag, ibefore)
{
  var li = document.createElement( 'li' );
  li.id = tag;
  var a = document.createElement( 'a' );
  a.appendChild( document.createTextNode( text ) ); 
  a.href = link;
  li.appendChild( a );
  if ( ! ibefore ) // append to end (right) of list
  {
     document.getElementById( 'pt-logout' ).parentNode.appendChild( li );
  }
  else
  {
      var before = document.getElementById( ibefore );
      before.appendChild( li, before );
  }
}

function AddToolboxLink(text, href, onclick, linkid) {
  var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];
  
  var link = document.createElement('a');
  link.onclick = onclick;
  link.href = href;
  link.appendChild(document.createTextNode(text));

  var li = document.createElement('li');
  li.id = linkid;
  li.appendChild(link);

  tb.insertBefore(li, tb.firstChild);
  return;
}
/*
*/ ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=flaggedrevs.js Content-Type: application/x-javascript; charset=UTF-8; name=flaggedrevs.js Content-Location: http://en.wikibooks.org/w/extensions/FlaggedRevs/flaggedrevs.js?60 Content-Transfer-Encoding: Base64 LyogLS0gKGMpIEFhcm9uIFNjaHVseiwgRGFuaWVsIEFybm9sZCAyMDA4ICovCgov KiBFdmVyeSB0aW1lIHlvdSBjaGFuZ2UgdGhpcyBKUyBwbGVhc2UgYnVtcCAkd2dG bGFnZ2VkUmV2U3R5bGVWZXJzaW9uIGluIEZsYWdnZWRSZXZzLnBocCAqLwoKLyog SGlkZSByYXRpbmcgY2x1dHRlciAqLwpmdW5jdGlvbiBlbmFibGVfc2hvd2hpZGUo KSB7Cgl2YXIgdG9nZ2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ213LXJl dmlzaW9udG9nZ2xlJyk7CglpZiggIXRvZ2dsZSApIHJldHVybjsKCXRvZ2dsZS5z dHlsZS5kaXNwbGF5ID0gJ2lubGluZSc7Cgl2YXIgcmF0aW5ncyA9IGRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKCdtdy1yZXZpc2lvbnJhdGluZ3MnKTsKCWlmKCAhcmF0 aW5ncyApIHJldHVybjsKCXJhdGluZ3Muc3R5bGUuZGlzcGxheSA9ICdub25lJzsK fQoKLyogVG9nZ2xlcyByYXRpbmdzICovCmZ1bmN0aW9uIHRvZ2dsZVJldlJhdGlu Z3MoKSB7Cgl2YXIgcmF0aW5ncyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdt dy1yZXZpc2lvbnJhdGluZ3MnKTsKCWlmKCAhcmF0aW5ncyApIHJldHVybjsKCWlm KCByYXRpbmdzLnN0eWxlLmRpc3BsYXkgPT0gJ25vbmUnICkgewoJCXJhdGluZ3Mu c3R5bGUuZGlzcGxheSA9ICdpbmxpbmUnOwoJfSBlbHNlIHsKCQlyYXRpbmdzLnN0 eWxlLmRpc3BsYXkgPSAnbm9uZSc7Cgl9Cn0KCi8qCiogYSkgRGlzYWJsZSBzdWJt aXQgaW4gY2FzZSBvZiBpbnZhbGlkIGlucHV0LgoqIGIpIFVwZGF0ZSBjb2xvcnMg d2hlbiBzZWxlY3QgY2hhbmdlcyAoT3BlcmEgYWxyZWFkeSBkb2VzIHRoaXMpLgoq IGMpIEFsc28gcmVtb3ZlIGNvbW1lbnQgYm94IGNsdXR0ZXIgaW4gY2FzZSBvZiBp bnZhbGlkIGlucHV0LgoqLwpmdW5jdGlvbiB1cGRhdGVSYXRpbmdGb3JtKCkgewoJ dmFyIHJhdGluZ2Zvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbXctcmF0 aW5nc2VsZWN0cycpOwoJaWYoICFyYXRpbmdmb3JtICkgcmV0dXJuOwoJdmFyIGRp c2FibGVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyLXJhdGluZy1jb250 cm9scy1kaXNhYmxlZCcpOwoJaWYoIGRpc2FibGVkICkgcmV0dXJuOwoKCXZhciBx dWFsaXR5ID0gdHJ1ZTsKCXZhciBhbGx6ZXJvID0gdHJ1ZTsKCXZhciBzb21lemVy byA9IGZhbHNlOwoKCWZvciggdGFnIGluIHdnRmxhZ2dlZFJldnNQYXJhbXMudGFn cyApIHsKCQl2YXIgY29udHJvbE5hbWUgPSAid3AiICsgdGFnOwoJCXZhciBsZXZl bHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShjb250cm9sTmFtZSk7CgkJ dmFyIHNlbGVjdGVkbGV2ZWwgPSAwOyAvLyBkZWZhdWx0CgoJCWlmKCBsZXZlbHNb MF0ubm9kZU5hbWUgPT0gJ1NFTEVDVCcgKSB7CgkJCXNlbGVjdGVkbGV2ZWwgPSBs ZXZlbHNbMF0uc2VsZWN0ZWRJbmRleDsKCQkJLy8gVXBkYXRlIGNvbG9yLiBPcGVy YSBkb2VzIHRoaXMgYWxyZWFkeSwgYW5kIGRvaW5nIHNvCgkJCS8vIHNlZW1zIHRv IGtpbGwgY3VzdG9tIHByZXR0eSBvcGVyYSBza2luIGZvcm0gc3R5bGluZy4KCQkJ aWYoIG5hdmlnYXRvci5hcHBOYW1lICE9ICdPcGVyYScpIHsKCQkJCXZhbHVlID0g bGV2ZWxzWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdvcHRpb24nKVtzZWxlY3Rl ZGxldmVsXS52YWx1ZTsKCQkJCWxldmVsc1swXS5jbGFzc05hbWUgPSAnZnItcmF0 aW5nLW9wdGlvbi0nICsgdmFsdWU7CgkJCX0KCQl9IGVsc2UgaWYoIGxldmVsc1sw XS50eXBlID09ICdyYWRpbycgKSB7CgkJCWZvciggaSA9IDA7IGkgPCBsZXZlbHMu bGVuZ3RoOyBpKysgKSB7CgkJCQlpZiggbGV2ZWxzW2ldLmNoZWNrZWQgKSB7CgkJ CQkJc2VsZWN0ZWRsZXZlbCA9IGk7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQl9 IGVsc2UgaWYoIGxldmVsc1swXS50eXBlID09ICdjaGVja2JveCcgKSB7CgkJCXNl bGVjdGVkbGV2ZWwgPSAobGV2ZWxzWzBdLmNoZWNrZWQpID8gMTogMDsKCQl9IGVs c2UgewoJCQlyZXR1cm47IC8vIGVycm9yOiBzaG91bGQgbm90IGhhcHBlbgoJCX0K CgkJLy8gR2V0IHF1YWxpdHkgbGV2ZWwgZm9yIHRoaXMgdGFnCgkJcXVhbGl0eUxl dmVsID0gd2dGbGFnZ2VkUmV2c1BhcmFtcy50YWdzW3RhZ107CgoJCWlmKCBzZWxl Y3RlZGxldmVsIDwgcXVhbGl0eUxldmVsICkgewoJCQlxdWFsaXR5ID0gZmFsc2U7 IC8vIG5vdCBhIHF1YWxpdHkgcmV2aWV3CgkJfQoJCWlmKCBzZWxlY3RlZGxldmVs ID4gMCApIHsKCQkJYWxsemVybyA9IGZhbHNlOwoJCX0gZWxzZSB7CgkJCXNvbWV6 ZXJvID0gdHJ1ZTsKCQl9Cgl9CgkvLyBTaG93IG5vdGUgYm94IG9ubHkgZm9yIHF1 YWxpdHkgcmV2cwoJdmFyIG5vdGVib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCgnbXctbm90ZWJveCcpOwoJaWYoIG5vdGVib3ggKSB7CgkJbm90ZWJveC5zdHls ZS5kaXNwbGF5ID0gcXVhbGl0eSA/ICdpbmxpbmUnIDogJ25vbmUnOwoJfQoJLy8g SWYgb25seSBhIGZldyBsZXZlbHMgYXJlIHplcm8sIGRvbid0IHNob3cgc3VibWl0 IGxpbmsKCXZhciBzdWJtaXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3Vi bWl0cmV2aWV3Jyk7CglzdWJtaXQuZGlzYWJsZWQgPSAoIHNvbWV6ZXJvICYmICFh bGx6ZXJvICkgPyAnZGlzYWJsZWQnIDogJyc7CgkvLyBDbGVhciBub3RlIGJveCBk YXRhIGlmIG5vdCBzaG93bgoJdmFyIG5vdGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoJ3dwTm90ZXMnKTsKCWlmKCBub3RlcyApIHsKCQlub3Rlcy52YWx1ZSA9 IHF1YWxpdHkgPyBub3Rlcy52YWx1ZSA6ICcnOwoJfQp9CgphZGRPbmxvYWRIb29r KGVuYWJsZV9zaG93aGlkZSk7CmFkZE9ubG9hZEhvb2sodXBkYXRlUmF0aW5nRm9y bSk7CgovLyBkZXBlbmRlbmNpZXM6Ci8vICogYWpheC5qczoKICAvKmV4dGVybiBz YWpheF9pbml0X29iamVjdCwgc2FqYXhfZG9fY2FsbCAqLwovLyAqIHdpa2liaXRz LmpzOgogIC8qZXh0ZXJuIGhvb2tFdmVudCwganNNc2cgKi8KLy8gVGhlc2Ugc2hv dWxkIGhhdmUgYmVlbiBpbml0aWFsaXplZCBpbiB0aGUgZ2VuZXJhdGVkIGpzCmlm KCB0eXBlb2Ygd2dBamF4UmV2aWV3ID09PSAidW5kZWZpbmVkIiB8fCAhd2dBamF4 UmV2aWV3ICkgewoJd2dBamF4UmV2aWV3ID0gewoJCXNlbmRpbmdNc2c6ICJTdWJt aXR0aW5nLi4uIiwKCQlzZW50TXNnT2s6ICJSZXZpZXcgY29tcGxldGUhIiwKCQlz ZW50TXNnQmFkOiAiUmV2aWV3IGZhaWxlZCEiLAoJCWFjdGlvbmNvbXBsZXRlOiAi QWN0aW9uIGNvbXBsZXRlIiwKCQlhY3Rpb25mYWlsZWQ6ICJBY3Rpb24gZmFpbGVk IgoJfTsKfQoKd2dBamF4UmV2aWV3LnN1cHBvcnRlZCA9IHRydWU7IC8vIHN1cHBv cnRlZCBvbiBjdXJyZW50IHBhZ2UgYW5kIGJ5IGJyb3dzZXIKd2dBamF4UmV2aWV3 LmlucHJvZ3Jlc3MgPSBmYWxzZTsgLy8gYWpheCByZXF1ZXN0IGluIHByb2dyZXNz CndnQWpheFJldmlldy50aW1lb3V0SUQgPSBudWxsOyAvLyBzZWUgd2dBamF4UmV2 aWV3LmFqYXhDYWxsCgp3Z0FqYXhSZXZpZXcuYWpheENhbGwgPSBmdW5jdGlvbigp IHsKCWlmKCAhd2dBamF4UmV2aWV3LnN1cHBvcnRlZCApIHsKCQlyZXR1cm4gdHJ1 ZTsKCX0gZWxzZSBpZiggd2dBamF4UmV2aWV3LmlucHJvZ3Jlc3MgKSB7CgkJcmV0 dXJuIGZhbHNlOwoJfQoJaWYoICF3ZlN1cHBvcnRzQWpheCgpICkgewoJCS8vIExh enkgaW5pdGlhbGl6YXRpb24gc28gd2UgZG9uJ3QgdG9zcyB1cAoJCS8vIEFjdGl2 ZVggd2FybmluZ3Mgb24gaW5pdGlhbCBwYWdlIGxvYWQKCQkvLyBmb3IgSUUgNiB1 c2VycyB3aXRoIHNlY3VyaXR5IHNldHRpbmdzLgoJCXdnQWpheFJldmlldy5zdXBw b3J0ZWQgPSBmYWxzZTsKCQlyZXR1cm4gdHJ1ZTsKCX0KCXZhciBmb3JtID0gZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm13LXJldmlld2Zvcm0iKTsKCXZhciBub3Rl cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3cE5vdGVzIik7Cgl2YXIgcmVh c29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndwUmVhc29uIik7CglpZigg IWZvcm0gKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQoJd2dBamF4UmV2aWV3LmlucHJv Z3Jlc3MgPSB0cnVlOwoJLy8gQnVpbGQgdXAgYXJndW1lbnRzCgl2YXIgYXJncyA9 IFtdOwoJdmFyIGlucHV0cyA9IGZvcm0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlu cHV0Iik7Cglmb3IoIHZhciBpPTA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsK CQkvLyBEaWZmZXJlbnQgaW5wdXQgdHlwZXMgbWF5IG9jY3VyIGRlcGVuZGluZyBv biB0YWdzLi4uCgkJaWYoIGlucHV0c1tpXS5uYW1lID09ICJ0aXRsZSIgfHwgaW5w dXRzW2ldLm5hbWUgPT0gImFjdGlvbiIgKSB7CgkJCS8vIE5vIG5lZWQgdG8gc2Vu ZCB0aGVzZS4uLgoJCX0gZWxzZSBpZiggaW5wdXRzW2ldLnR5cGUgPT0gInN1Ym1p dCIgKSB7CgkJCWlucHV0c1tpXS52YWx1ZSA9IHdnQWpheFJldmlldy5zZW5kaW5n TXNnOwoJCX0gZWxzZSBpZiggaW5wdXRzW2ldLnR5cGUgPT0gImNoZWNrYm94IiAp IHsKCQkJYXJncy5wdXNoKCBpbnB1dHNbaV0ubmFtZSArICJ8IiArIChpbnB1dHNb aV0uY2hlY2tlZCA/IDEgOiAwKSApOwoJCX0gZWxzZSBpZiggaW5wdXRzW2ldLnR5 cGUgIT0gInJhZGlvIiB8fCBpbnB1dHNbaV0uY2hlY2tlZCApIHsKCQkJYXJncy5w dXNoKCBpbnB1dHNbaV0ubmFtZSArICJ8IiArIGlucHV0c1tpXS52YWx1ZSApOwoJ CX0KCQlpbnB1dHNbaV0uZGlzYWJsZWQgPSAiZGlzYWJsZWQiOwoJfQoJaWYoIG5v dGVzICkgewoJCWFyZ3MucHVzaCggbm90ZXMubmFtZSArICJ8IiArIG5vdGVzLnZh bHVlICk7CgkJbm90ZXMuZGlzYWJsZWQgPSAiZGlzYWJsZWQiOwoJfQoJdmFyIHNl bGVjdHMgPSBmb3JtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzZWxlY3QiKTsKCWZv ciggdmFyIGk9MDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsKCQkvLyBHZXQg dGhlIHNlbGVjdGVkIHRhZyBsZXZlbC4uLgoJCWlmKCBzZWxlY3RzW2ldLnNlbGVj dGVkSW5kZXggPj0gMCApIHsKCQkJdmFyIHNvcHRpb24gPSBzZWxlY3RzW2ldLmdl dEVsZW1lbnRzQnlUYWdOYW1lKCJvcHRpb24iKVtzZWxlY3RzW2ldLnNlbGVjdGVk SW5kZXhdOwoJCQlhcmdzLnB1c2goIHNlbGVjdHNbaV0ubmFtZSArICJ8IiArIHNv cHRpb24udmFsdWUgKTsKCQl9CgkJc2VsZWN0c1tpXS5kaXNhYmxlZCA9ICJkaXNh YmxlZCI7Cgl9CgkvLyBTZW5kIQoJdmFyIG9sZCA9IHNhamF4X3JlcXVlc3RfdHlw ZTsKCXNhamF4X3JlcXVlc3RfdHlwZSA9ICJQT1NUIjsKCXNhamF4X2RvX2NhbGwo ICJSZXZpc2lvblJldmlldzo6QWpheFJldmlldyIsIGFyZ3MsIHdnQWpheFJldmll dy5wcm9jZXNzUmVzdWx0ICk7CglzYWpheF9yZXF1ZXN0X3R5cGUgPSBvbGQ7Cgkv LyBJZiB0aGUgcmVxdWVzdCBpc24ndCBkb25lIGluIDMwIHNlY29uZHMsIGFsbG93 IHVzZXIgdG8gdHJ5IGFnYWluCgl3Z0FqYXhSZXZpZXcudGltZW91dElEID0gd2lu ZG93LnNldFRpbWVvdXQoCgkJZnVuY3Rpb24oKSB7IHdnQWpheFJldmlldy5pbnBy b2dyZXNzID0gZmFsc2U7IHdnQWpheFJldmlldy51bmxvY2tGb3JtKCk7IH0sCgkJ MzAwMDAKCSk7CglyZXR1cm4gZmFsc2U7Cn07Cgp3Z0FqYXhSZXZpZXcudW5sb2Nr Rm9ybSA9IGZ1bmN0aW9uKCkgewoJdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVt ZW50QnlJZCgibXctcmV2aWV3Zm9ybSIpOwoJdmFyIHN1Ym1pdCA9IGRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKCJzdWJtaXRyZXZpZXciKTsKCXZhciBub3RlcyA9IGRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3cE5vdGVzIik7Cgl2YXIgcmVhc29uID0g ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndwUmVhc29uIik7CglpZiggIWZvcm0g fHwgIXN1Ym1pdCApIHsKCQlyZXR1cm4gZmFsc2U7Cgl9CglzdWJtaXQuZGlzYWJs ZWQgPSAiIjsKCXZhciBpbnB1dHMgPSBmb3JtLmdldEVsZW1lbnRzQnlUYWdOYW1l KCJpbnB1dCIpOwoJZm9yKCB2YXIgaT0wOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsr KSB7CgkJaW5wdXRzW2ldLmRpc2FibGVkID0gIiI7Cgl9CglpZiggbm90ZXMgKSB7 CgkJbm90ZXMuZGlzYWJsZWQgPSAiIjsKCX0KCWlmKCByZWFzb24gKSB7CgkJcmVh c29uLmRpc2FibGVkID0gIiI7Cgl9Cgl2YXIgc2VsZWN0cyA9IGZvcm0uZ2V0RWxl bWVudHNCeVRhZ05hbWUoInNlbGVjdCIpOwoJZm9yKCB2YXIgaT0wOyBpIDwgc2Vs ZWN0cy5sZW5ndGg7IGkrKykgewoJCXNlbGVjdHNbaV0uZGlzYWJsZWQgPSAiIjsK CX0KfTsKCndnQWpheFJldmlldy5wcm9jZXNzUmVzdWx0ID0gZnVuY3Rpb24ocmVx dWVzdCkgewoJaWYoICF3Z0FqYXhSZXZpZXcuc3VwcG9ydGVkICkgewoJCXJldHVy bjsKCX0KCXZhciByZXNwb25zZSA9IHJlcXVlc3QucmVzcG9uc2VUZXh0OwoJaWYo IG1zZyA9IHJlc3BvbnNlLnN1YnN0cig2KSApIHsKCQlqc01zZyggbXNnLCAncmV2 aWV3JyApOyAvLyBzdWNjZXNzIG5vdGljZQoJCXdpbmRvdy5zY3JvbGwoMCwwKTsg Ly8gc2Nyb2xsIHVwIHRvIG5vdGljZQoJCXRhZ0JveCA9IGRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCdtdy1yZXZpc2lvbnRhZycpOwoJCWlmKCB0YWdCb3ggKSB0YWdC b3guc3R5bGUuZGlzcGxheSA9ICdub25lJzsgLy8gcmVtb3ZlIHRhZyBmcm9tIGRy YWZ0Cgl9Cgl3Z0FqYXhSZXZpZXcuaW5wcm9ncmVzcyA9IGZhbHNlOwoJaWYoIHdn QWpheFJldmlldy50aW1lb3V0SUQgKSB7CgkJd2luZG93LmNsZWFyVGltZW91dCh3 Z0FqYXhSZXZpZXcudGltZW91dElEKTsKCX0KCXZhciBzdWJtaXQgPSBkb2N1bWVu dC5nZXRFbGVtZW50QnlJZCgic3VibWl0cmV2aWV3Iik7CglpZiggcmVzcG9uc2Uu aW5kZXhPZignPHN1YyM+JykgPT0gMCApIHsKCQlkb2N1bWVudC50aXRsZSA9IHdn QWpheFJldmlldy5hY3Rpb25jb21wbGV0ZTsKCQlpZiggc3VibWl0ICkgc3VibWl0 LnZhbHVlID0gd2dBamF4UmV2aWV3LnNlbnRNc2dPazsKCX0gZWxzZSB7CgkJZG9j dW1lbnQudGl0bGUgPSB3Z0FqYXhSZXZpZXcuYWN0aW9uZmFpbGVkOwoJCWlmKCBz dWJtaXQgKSBzdWJtaXQudmFsdWUgPSB3Z0FqYXhSZXZpZXcuc2VudE1zZ0JhZDsK CX0KCXdnQWpheFJldmlldy51bmxvY2tGb3JtKCk7Cn07Cgp3Z0FqYXhSZXZpZXcu b25Mb2FkID0gZnVuY3Rpb24oKSB7Cgl2YXIgc3VibWl0ID0gZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoInN1Ym1pdHJldmlldyIpOwoJaWYoIHN1Ym1pdCApIHsKCQlz dWJtaXQub25jbGljayA9IHdnQWpheFJldmlldy5hamF4Q2FsbDsKCX0KfTsKCmhv b2tFdmVudCgibG9hZCIsIHdnQWpheFJldmlldy5vbkxvYWQpOwo= ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=Brushtypes.jpg Content-Type: image/jpeg; name=Brushtypes.jpg Content-Location: http://upload.wikimedia.org/wikipedia/commons/5/5e/Brushtypes.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAgEAlgCWAAD/4RBbRXhpZgAATU0AKgAAAAgABwESAAMAAAAB AAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAc AAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAAFuNgAAAnEAAW42AAACcQ QWRvYmUgUGhvdG9zaG9wIENTMiBXaW5kb3dzADIwMDY6MDQ6MjEgMDU6NDU6NDgA AAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACkKADAAQAAAABAAABBQAAAAAAAAAG AQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAA AgEABAAAAAEAAAEuAgIABAAAAAEAAA8lAAAAAAAAAEgAAAABAAAASAAAAAH/2P/g ABBKRklGAAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/b AIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwM DAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwR EQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAQACgAwEi AAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEA AQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIR AwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZE k1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm 9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUy gZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi 8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//a AAwDAQACEQMRAD8A9IyOqUY/VcPpjwfVzmXPqd2/QekXs/tNv3f9bV1cd9ZLn1/X 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 /////////wPoAAAAAP////////////////////////////8D6AAAAAD///////// ////////////////////A+gAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4 QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANDAAAABgAAAAAAAAAAAAABBQAAApAA AAAHAGIAcgB1AHMAaABlAHMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAA AAAAApAAAAEFAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAA AAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAE AAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAEF AAAAAFJnaHRsb25nAAACkAAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAAAAAF c2xpY2UAAAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAA AAAGb3JpZ2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAA AABUeXBlZW51bQAAAApFU2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRzT2JqYwAA AAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAA AAAAAEJ0b21sb25nAAABBQAAAABSZ2h0bG9uZwAAApAAAAADdXJsVEVYVAAAAAEA AAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZhbHRUYWdU RVhUAAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhU AAAAAQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2Rl ZmF1bHQAAAAJdmVydEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVm YXVsdAAAAAtiZ0NvbG9yVHlwZWVudW0AAAARRVNsaWNlQkdDb2xvclR5cGUAAAAA Tm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAApsZWZ0T3V0c2V0bG9uZwAAAAAA AAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRzZXRsb25nAAAAAAA4 QklNBCgAAAAAAAwAAAABP/AAAAAAAAA4QklNBBQAAAAAAAQAAAADOEJJTQQMAAAA AA9BAAAAAQAAAKAAAABAAAAB4AAAeAAAAA8lABgAAf/Y/+AAEEpGSUYAAQIAAEgA SAAA/+0ADEFkb2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkM EQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwM DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCABAAKADASIAAhEBAxEB/90ABAAK /8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAA AAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGB MgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl 8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn 9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMk YuFygpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0 lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIRAxEAPwD0 jI6pRj9Vw+mPB9XOZc+p3b9B6Rez+02/d/1tXVx31kufX9dOi2tP8yWM/wDYl9mM /wD6K7FNjKyR2NJIoDxCO7Ix8cB19rKmnQF7g0E/2lGnMxMhxbRfXa5okhj2uIHn tKyfrJDnUNIGgcZ+JZ/5FZ3QJq6vUBpvZYxx8tLP+qagZVKqTw6W9YTAkqgOv9GJ gZlXxnT71ZzyRhZEaH0nwf7JXGnFr2kAaQQfklORjsFRiDu9wCCJGoQM7Pw+n47s rNtbRQ2AXuPc6Na385znfutQujOLuk4ZJn9BXr/ZC5/67UU33Yzckk1Vsc+uvgby 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 3euC4ksbX6bG2MeBteza/wCj9NdalGcZjiibFkf4vpKiCNC8D/jafYzp+K+s7XNb kEGAeWMq/ODvzbPpLtunv34GM+Z3VMMnvLQuK/xsgnp1HlXf+XGb/Fdj0d27pGC7 xx6j97GpyG4vLM2/FP1qoixxfV1THYTdZ/N7si9xox8WP1jGdu99271cLPXqa8Q6 q8t+trbSII6mHO+IzbR/31KrSC+3rB+uprZ0F99jhWzHupsc9zd239Ixm7bLf31v Lmv8Ys/8z86P3sf/ANuKEgL076Iutezi/VDJxczr1Pp3V33MqvvfAO8QMXCqstsJ 2vu9H9Gz02sr+yel/hvU9Tv15T/i2e5v1qA7PwrGn/OxX/8AfV6snTgIGh+KBLi1 eU+sweev4Oxu4ml4EvFYB3td9N27c/2fQXVrzH/G9ZZTn9Msqe5jhRkE7HFv0XUP b9CF6a1wc0ObqHCR8CmridA//9kAOEJJTQQhAAAAAABVAAAAAQEAAAAPAEEAZABv AGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwAAAAEwBBAGQAbwBiAGUAIABQAGgAbwB0 AG8AcwBoAG8AcAAgAEMAUwAyAAAAAQA4QklNBAYAAAAAAAcAAQAAAAEBAP/hOrNo dHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/eHBhY2tldCBiZWdpbj0i77u/ IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1s bnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IjMuMS4xLTExMSI+CiAgIDxy ZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1y ZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0 PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxl bWVudHMvMS4xLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvanBlZzwvZGM6 Zm9ybWF0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNj cmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eGFwPSJodHRw Oi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAgICAgICAgPHhhcDpDcmVhdG9y VG9vbD5BZG9iZSBQaG90b3Nob3AgQ1MyIFdpbmRvd3M8L3hhcDpDcmVhdG9yVG9v bD4KICAgICAgICAgPHhhcDpDcmVhdGVEYXRlPjIwMDYtMDQtMjFUMDU6NDU6NDgt MDU6MDA8L3hhcDpDcmVhdGVEYXRlPgogICAgICAgICA8eGFwOk1vZGlmeURhdGU+ MjAwNi0wNC0yMVQwNTo0NTo0OC0wNTowMDwveGFwOk1vZGlmeURhdGU+CiAgICAg ICAgIDx4YXA6TWV0YWRhdGFEYXRlPjIwMDYtMDQtMjFUMDU6NDU6NDgtMDU6MDA8 L3hhcDpNZXRhZGF0YURhdGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAg ICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxu czp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAg ICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9z VHlwZS9SZXNvdXJjZVJlZiMiPgogICAgICAgICA8eGFwTU06RG9jdW1lbnRJRD51 dWlkOkQwOERCQURDMjNEMURBMTE4QUQyQjQ4Q0VDQzAxQ0I1PC94YXBNTTpEb2N1 bWVudElEPgogICAgICAgICA8eGFwTU06SW5zdGFuY2VJRD51dWlkOkQxOERCQURD MjNEMURBMTE4QUQyQjQ4Q0VDQzAxQ0I1PC94YXBNTTpJbnN0YW5jZUlEPgogICAg ICAgICA8eGFwTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2Ui PgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD51dWlkOjEyRENCNEZGQkND MURBMTE5QjdERUZENERDMzYwNTBCPC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAg ICAgICA8c3RSZWY6ZG9jdW1lbnRJRD51dWlkOjExRENCNEZGQkNDMURBMTE5QjdE RUZENERDMzYwNTBCPC9zdFJlZjpkb2N1bWVudElEPgogICAgICAgICA8L3hhcE1N OkRlcml2ZWRGcm9tPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJk ZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlm Zj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlm ZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlm ZjpYUmVzb2x1dGlvbj4xNTAwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgog ICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4xNTAwMDAwLzEwMDAwPC90aWZmOllS ZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZm OlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpOYXRpdmVEaWdlc3Q+MjU2 LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2 LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0 MzI7NzNCOThDQkFFQjVGMjA1OUVDNkJERjAwNTgzMkZCMTY8L3RpZmY6TmF0aXZl RGlnZXN0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNj cmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0 cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhl bFhEaW1lbnNpb24+NjU2PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAg PGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI2MTwvZXhpZjpQaXhlbFlEaW1lbnNpb24+ CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgog ICAgICAgICA8ZXhpZjpOYXRpdmVEaWdlc3Q+MzY4NjQsNDA5NjAsNDA5NjEsMzcx MjEsMzcxMjIsNDA5NjIsNDA5NjMsMzc1MTAsNDA5NjQsMzY4NjcsMzY4NjgsMzM0 MzQsMzM0MzcsMzQ4NTAsMzQ4NTIsMzQ4NTUsMzQ4NTYsMzczNzcsMzczNzgsMzcz NzksMzczODAsMzczODEsMzczODIsMzczODMsMzczODQsMzczODUsMzczODYsMzcz OTYsNDE0ODMsNDE0ODQsNDE0ODYsNDE0ODcsNDE0ODgsNDE0OTIsNDE0OTMsNDE0 OTUsNDE3MjgsNDE3MjksNDE3MzAsNDE5ODUsNDE5ODYsNDE5ODcsNDE5ODgsNDE5 ODksNDE5OTAsNDE5OTEsNDE5OTIsNDE5OTMsNDE5OTQsNDE5OTUsNDE5OTYsNDIw MTYsMCwyLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDIw LDIyLDIzLDI0LDI1LDI2LDI3LDI4LDMwOzYyN0I5N0JFMkFFMjBDN0JGNDQxODY3 QjJFNDFEOUI0PC9leGlmOk5hdGl2ZURpZ2VzdD4KICAgICAgPC9yZGY6RGVzY3Jp cHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAg ICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90 b3Nob3AvMS4wLyI+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bo b3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmls ZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAg ICAgIDxwaG90b3Nob3A6SGlzdG9yeS8+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9u PgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+ /+IMWElDQ19QUk9GSUxFAAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJ AAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAEAAPbWAAEAAAAA 0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAA AgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAA AlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAA A/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAA BDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3 bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYt Mi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQAB AAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZ WiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAA ABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3 dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xv dXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0 IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRl c2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2 Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4g SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAAT pP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521l YXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1 cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZ AF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQ ANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFg AWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAId AiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAML AxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQt BDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWG BZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZ BysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjn CPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3Arz CwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1A DVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/P D+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKj EsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9 FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkg GUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzM HPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDE IPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJ JTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymd KdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6C Lrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4 M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlC OX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8h P2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVV RZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkvi TCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLH UxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoH WlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2Gi YfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2ma afFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHw cktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6Rnql ewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6 hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0x jZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cK l3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFH obaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavp rFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbw t2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48Jf wtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42 zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 2vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf 56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q0 9ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+4ADkFk b2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwM DAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQU Dg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM /8AAEQgBBQKQAwEiAAIRAQMRAf/dAAQAKf/EAT8AAAEFAQEBAQEBAAAAAAAAAAMA AQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQC BQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT 8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV 5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhED ITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLS RJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYn N0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A9VSSSSUpJJJJSkkkklKSSSSUpJJJJSkk kklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJ JSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSU pJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklKS SSSUpJJJJT//0PVUkkO2xtVb7XmGsaXOPkBKSnkelfWB9317zsEvcce1hrqZulgf QBucP6+21divEul9VtxfrJT1QnX7QX2eG2xxF3/QscvbU2Ju10hS6SSSctUkkkkp SSSSSloSVPqHU6cBjXPBe5x0YOY/eWc/61UsAP2d5nzCBkBuU0S7qSwP+duMGgux 3ie0gpf87cfUjGsI5Go1S4h3CuE9noElmYHXsLPu9CsPZZt3Q8RMfu/vLTRQpJJJ JSkkkklLcJLE651u3Bsbj4zWmwjc9zuBP0Vkj6y9WLo3sj+oEw5Ig0SuESdXsUlx jfrR1bcQ57Bp+4EQfWfqgEksPxbCXuw7q4JPXpLE6X9YPtVzMe9oa60ex44Lh+bC 204EEWEEEbrpJJIoUkkkkpSZJYn1k+slPRaWta0W5Nv0K+wH79iBIAspAJNB20l5 a/63dfuudaMtzB+4wANH9mFrdG+vWUy5tPU4tqcQPWAAc2f3o9rk0ZYk0vOGYF7v epKLXNe0OaZa4SCOCCpJ7GpJJJJSkkkklKSSSSUpJJJJSkkkklKSSSSUpJJJJSkk kklOfldb6XiZIxMq8VXOAcA4ECDx+kj0/wDpK5XZXa0PrcHsPDmkEFee/Xe6etXD gsrY2R8N/wD39YVHWM3p5bZi3PpcD+aYB/rN+i5VDzRGSUTGwDw6fM2By9wEgdSH 2JJch0T6+Y97G09SHpWgfzzRLXfynsb/ADa6qjIoyKxZRY21h4cwgj8FYhkhMek/ T9JhlCUdwmSSST1qkkkklKSSSSUpJYP1h+uPSOhNLL3+rk9sdn0tf3v3F5l17/GL 1/qb3V0W/Y8Ygt9KnQkH9+w+9JT6v1H6y9C6Y7ZnZ1VL9fZO52n8ivc5Y9/+M36p 1fRvst1I9lTu39fYvF3Wue4veS5ztS46kppJQtT7I3/Gn9VS4NJyG68mrQf9JbfT vrT0DqUjDzqnuABLCdjhP8mzavn9IOIOnZJT9KAgiRqDwU68D6V9bOv9JcPseZYG CJqed9Zj/g37v+gvS/qh/jCxOuWfYs5rcXOMemATst093p7voP8A+DRtT2SSSSSl JJJJKUkkkkpw6c6131qyMQuJqbQ2GToHDa/d/wCCLbXCtznD6+Hbx63okf2PTXdK LDK+PwnJmzx4eDxhErpJJKVhUkkkkp//0fVFm/WS84/Qs60HafRc0Hzd+jb/ANUt Jc/9eLCzoFrQY9R7GkeInf8A99TZmok+CYi5AeL5U6jT4L2P6uZZzeh4WQ525zqm h5H7zf0b/wDpNXk1jJMcEheif4vcn1eg+gTJxrns+Ad+lb/1agwS1PiGbMNAXqEk klZYFJJJJKUkkkkp5nrm5+e7cdGgNA+W5ZeQ0lrR5rU6pY27LefBxb93tWfYJ2/N QT3LLHo1smuGgR2UAAR5RMo14Lvb4T+RRH0BPgPypvUp6LY1rsbLryGGPTc13yBh 3/RXetIcA4cESFwFo3Mc3uNw/CV3HTrRbg0WD86tv5FLjO4WT6NlJJJSLFJJIdzi yl7hy1pI+QSU8b1Z3r5t9kyC6B8B7VSbWRxzHKuvaXEkjU6k+aG1nucO0KvIWbZh s1G1EgGOO6mawR5qwWAOjtEwUiwSI4KYY6rgWmC+trXt0fU4OafCF3+JeMnFqvbq LWB2nmFwlrIc4eXPZdh9Xf8AkXF/qn/qnKXCdwx5OjpJJJKZjUkkkkpo9X6izpmB bluG8sAFbCY3PcdrGLynquTl9Qy3ZFztz7DL44/qt/kN+iu6+uD33ZGJhBs1gOvc fMexi5tvTwA0kDXX7iq2fIRLhHRtcvEAcR6uEan1Q2DqjHGLmlzRAEQtbIxGmTGo IRqsNraZLfpaH71BxHszkh3fqN1c5OM/p9zt1mPrWTzsn6P9hy6tec9Hruw+p12U e1xuY0+Ba47Xt/q7V6MrmGfFHy0aWaPDLTqukkkpGNSSSSSlJJJJKUkkkkpSSSSS lJJJJKUkkkkpSSSSSnzb66tjrl5JHuayNZiGM/zFy2Q32FdR9c3B3XL4EEFo3ePs rXNZMlv4QsyR/Wy/vFvx/m4+QQ1uc2wEHstDA6zmYFrb8e01WDv2P9dv0Xf2lng/ pPgOU7hI+aXUHYp0IovovS/r9jWwzqLPSJH89XLm/wBpn02rqaMijIrFlFjbazw5 hBH4LxIvcIjstnofVczCz8cUWurbdYyu1uha5rnNDtzXbm/21Nj5iYIE/UD1/SYc mCNEx08H1pJJJXWqpcX9dfrv+yGuxMBzTl6h7udny/eXZnhfPPV8l+RnX2OJM2OM n4lApCDMzMjMvffkPNllhlznGSSVXMpJJIWSCdMkpSWoCQISSUrVTa5zXAtMEagh RhOAkp9T+oP18tz7WdH6s8G/aBjZJ0LyP8Fd/wAJ/o/9IvQl83U22U3MtrJa+twc xw5BB3NXv/1e6g/qfRcPOt2+rdU11obqN/56QU6SSSSKlJJJklPlNmY5n1lsyt0v ZllxPkH/APkV6svGrnzl2O53Pc4/eV7BiO34tL/3q2n7wFV5U6z+hbfORoY/IhMk kkrTUUkkkkp//9L1Vct9fn/5Nor/AHrZiP3Wn/yS6lcf9fbjOJR2G55+ftUeX5Cv x/OHjb6odxyP4LrP8W1rvS6hT+a19bx4y5rmu/8APS5nJYWn7oW5/i5eW9TzK5MO paSO0tdH/flBi0nFlyfKX0BJJJW2upJJJJSkkkklPKXnc8uGkvdH3uVSNWnzKtvJ IG7nc6fvKraS3xnRRS3LIGFrZeQe3PzCDEtA+9WHwXOPkgbeJ4nRMK4I7J3vHH+4 rsOhT+ycaTPt7/ErkrW/T+Mfgur6B/yTR8/ylPx7lZPYOkkkkpVikHK/o1vf2O/I jIWT/R7f6jvyJKeTcOChx7tNIRS3VBOhPgoSygruZD5HG1M8Q8HsivAERwQmc3Ue QTSEtO8bXEniF1X1aAHRcaO4dPx3OXKZJhr5HwXV/Vtwd0bHj83cP+k5OxfMfJbk 2DqJJJKZjUkkkkp536wNH7SocRr6RaD8XLEke0f1h9y3PrS7Y+h+3sRu+bVzZti4 ie5j7lBOAM2xjNQYPtmsmO/5CjCz9C0k/JUK3zXqeDwi+qPQA8DPKAhqUmWjcuDQ 0nvEg/Bd7W8Pra8cOAcPgQvPn2sNLT3iOV3PSrTd03FsPLqmE/cn4hVsWQ3RbaSS SlY1JJJJKUkkkkpSSSSSlJJJJKUkkkkpSSSSSlJJJJKfNfreP8tZH9Yf9S1c7e3S O0rpfrewjrOR5lpn4taudvB107hZUtMk/wC8W9H5I+Qaoad5PkiOAkTweEmtlxKk AdPMJErkL2iZ4RJ221OGhDhx8UrOI8FE/wA7V/WH5URrSCdC+14rzZj1vdyWiUZB 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 SnFqyLsat2OcZj3brH04Xqvve/c/Y12/6C2+jY3Vseu1vU+os6k8uBreyltGwR9A trfZuSU6aSSSSnH+tInotw8YH3rxro4lvUaY+ljOPzY5rl7R9Y/+Sbf6zPxcAvGu htnql9X79N7Y+DSf++pBXQebof4vrizrprHFtbgfl7l1X11IZ0TI7gwPxXF/Uuz0 /rJjj97e372ldf8AXx+3orwT9J7QnjZQeF+rTN3XcIcfp6v+ravf14J9Uqjd9YsG sfnX1/g4O/76ve0xTy2di/WN/wBY8uzpOVRhVvx8drnZNLrBY5pyP5lwfV/N7vf/ AF1p9Gq67VZczq+bjZZhprZj1Gpzed2/dZZu3Lm/rh0nqGd1W62jpjuoubiMZhZD MllDsS7da/1xW97Xb3u9F3qf8F6a0PqXgjAdkUv6Oel5L2VuuusyWZNt59w9SxzX vsb79ySnqkkkklKSSSSU0OuVNu6NnVOEtdj2iP7Dl5z9W7S76vsd+diZTXT4Nf8A S/zl6bms9TDvr/fre372kLyz6qS7pfVcefoBtg+LSkl6XMdFTneRn5Kj/ivbuzup 3TyGj7ySrGc8fYi/sa90n4IX+KoH/KDuxLfyuQ6pOz6CkkkitUkkkkpSSSSSlLhf rKWtzum5IEFmQ5s/2l3S4H60NP2NlkGac14+W9yBSHA+vrfR+sFeQNCRW+fMLsbX 7qmuGsgH7wuY/wAY9f8AQsgcuYR90LoKbBZ07Gf+9Uwn47Qgeq8bvEfXZ/6eloP5 pP3r0T6h17Ok6CBFbfuYP/JLzX64u3dQY3waB95Xqf1PZt6UdI98fc1iEen1RLr9 HVy82jE9H1iR9otbRXAn3vnZ/wBSgv6vgsYX7y5rcluG6AdLnObUGf59jVDrXSG9 WxWY5yLcR1drLq76C0WNcz6O31G2N/6K5+76r19Jdj5NvVeo5bH51Fjsd76tj7n2 1tZbbFDXbfU2bvcnrHsUkkklLLzX6/MdR1qjLHZ4K9KXDf4y8QnEryhxwT4EIS2+ q6O/0c/qQbZ0z1uXY1jLR8N3v/6LlP6wYYv+p1tbdTiP3Mj90O3f+e3punkZnTSw 8XUkR5xH/VK/0mM76vGt2psqdXYP5TQa/wDvqZG6OnivJ2+x8gcNUbDpN+XTSNTY 9rfvMKN7Nlrm/ukj7lpfVan1evYgiQxxef7IlPOzFWtPoPVnjHwHAH2sYR9wXQ/U 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 fFanTNo6L1Ul0asGnflZdA/ROPmnIRVn9YafNfQPRDPR8I8/oK+8/mhfPwEXt1/O C98+rhB6FgEcehX/ANSmqdNJJJJSkkkklKSSSSU+ef4143dO4mLfj/g15+1xXoX+ NYadOMc+rrPh6S88byrGHZjm2HmMNgPMlBefaEWwA4dZ8zKE/wCiFKdlvV9Y/wAW 93qfVtrO9drxHxh//fl1K5H/ABZE/wDN54mQL3wPDRi65U5bllGy6SSSCVJJJJKW XJ/4ymtP1aJI1FzNvz3LrFyn+Moj/m2QTqb64H+ckkbvjzdCzyd2V/plpqzqrJg1 5DHTzEOaVQESyf3v4qxWQLLfJ4KSn6FSUK3B7GuHDgCPmFNJCkkkklP/1/VF5x/j W+lj8z28O68dSQKR18n0vMn/AJkY08z2/rFcW7vr+RZCSKjsH1X/ABT7f2tdPP2c x/nNXqq+VUkSh+qkl8qpIKfqpJfKqSSn6c6x/wAl5X/FuXLXbftjP7K8MSVDnvmh 5x/Nucp8sv8AC/J9jyv6U6fErG6htnSfkvNUlTx/zh82+fkHk/Rf1J/8T1H9Z/8A 1S318qpLYx/JHyDj5Pnl5l+qkl8qpJ6x+qkl8qpJKfqLP/olnw1WNVt3j5wvnZJM nuF8di/QGRG93iud6vsgzz3XkKShn0ZA/Sv1Y/5Bw/6n8XLUXyskrA2Hkwncv1Uk vlVJFD9VJL5VSSU/VK5qyPUd8SvntJZ3xT5IeZZMfV+g3fSCJmT7fiV88JKl/kOY 84/9Jkj80X6F6V/ylV/a/wCpK6RfKySvfCf9zn++f+jFbzHzjyfqpJfKqS0GF+qk l8qpJKfqpJfKqSSn6qXmGZ/+UfO5/mj8P5uteSJIjdT09sb8nX893h4r0T/FFH7O zo/0rPyOXiiSRU/VSS+VUkFP1UkvlVJJT9VJL5VSSU/VKwvrj/yU74O/6kr5zSSU N3tOnbf2H1T6U7q/u1Wbj7fSdE8rnUkVB2/8MNTyPBe9fVef+b3T5mfQZz8F81JI FT9VJL5VSSU/VSS+VUklP1UkvlVJJT7T/jYjZ03nm7j/AKyvPW/E/guYSVjDsxze ufP2CqTpud4eKE/6A+kuWSUx2KzqH3v/ABZz/wA3ncR6748eGcrrl8rJKlL5izDZ +qkl8qpIJfqpJfKqSSn6pXJ/4zJ/5tjw+0V/kevAkklB3ht3M5+mEb8+/wCkubSS S/UHTd37Oxd87vRr3TzO1qtL5VSSQ/VSS+VUklP/2Q== ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline Content-Type: image/png Content-Location: http://upload.wikimedia.org/wikibooks/en/b/bc/Wiki.png Content-Transfer-Encoding: Base64 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 BJfWNP3dzdyyeevrvxOPL0/DYE/p/PcaLHzP5Bx852R8677OzDzvaIN/yqvVdXDz 1Q8wHqufXuvWaK797/Dm9fReCTpsVAnvTEGVh6dXePp8T69M31zPW9x7hjjfo7j3 mIztem0Up7t7eo+U3aen96TM2/QJYOYf9vD07o3T831Vy5OdDqolruOuNTRw99UL HD0AzQODZ8ptIABQ0SGcddfmrRtkNpCF/ZaF+cdk1kt199P9pulmeMsEJF/9aWaZ dSbn7jv3I5gWw8x/6NFAVz1tnr4N/H9F/jgNVzVNV71tTzhCQAIKjHjAZF7RWh+J 80i3JKvngmm3M+b79Ge2e42Zvliyz3hxHhg+zKSyPb0CJftcqNGkXfXuxbzKsPM8 Sng1swIOUbEarcE944o3VIJptxSsdwc9iam3MPSF6c8tr2uIRq9kCQ73RoZPYN4p Fuh3fPU/Gi9SX0MN+P+FpX1pqi+030vW7p4+3ZgKT9V8Xj194x7FvRpLDCXk8/RJ f5zNo1jt/7Lz3Et4l1cDBxh7rGR/80QwrIbDz9AFXTtcbT+D293GzkP3b1wJrmjJ VfrSzU8/yV0bXCHNIxgCWePDts6gWydv8xVMe5K+rlZ/G108TvfQ6mqit5EYLpgH h1t93Wew/XhxOixzH5qnaunn52tYz6xz3k2rb5l2DLoybr6Gpu5a3Vw8BrvCAQB8 bWr82j9ImgyY7nU/w7t4pWcv3Yt792DWfaipXv1NW+HA5sXE8J5eOP6VyRcDrIFD dMVpFasvbwqOrrtxn1r9QBNofA2/Zm429J0lRh6e5jX0O5hpzz3q6UqarinkQsOz 4CF05uDAeAV+zzHTUtzq66uYHIevPoEB0fyXq6uPetMRccctpmkZxkz/J80j+KyB 3wu0zJIMeLxCGWPtkGxTIRzGmGa6iQfy9AqSgmEzHEbvoBtlMo8MCX9HsM2G2QAS KhzmJTLeYx95nGfMtJVmvTJc1Sbw+RmGmIHjb9AF5v+7bg10FTNvS3+Cbabcfef4 il7MoYUMJFb6Fpz2QQnffPD3c+M0CFThdxHNv5Bu5BLelxiDBtoCB+ixKRg+M2Wb QOtijhvQtFykQDTj6vXVpQfNND/NjWv1u2X3q9VvYJsPalIEpgkYYH5No/dIzVhW t8gMHCZxDXo5s70hrW6imeWfwPEcAVh6anyWOGbwfKjoAUyl38N2Pm8xb590g33l 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 ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=poweredby_mediawiki_88x31.png Content-Type: image/png; name=poweredby_mediawiki_88x31.png Content-Location: http://bits.wikimedia.org/skins-1.5/common/images/poweredby_mediawiki_88x31.png Content-Transfer-Encoding: Base64 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 RU5ErkJggg== ------------l3zI15SHHfQvVkJLudMbfE Content-Disposition: inline; filename=wikimedia-button.png Content-Type: image/png; name=wikimedia-button.png Content-Location: http://en.wikibooks.org/images/wikimedia-button.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFgAAAAfCAMAAABUFvrSAAAAA3NCSVQICAjb4U/g AAAAilBMVEVjZGeGh4nn6+yZmZni5uTW1taAgYNtbnGkpKYBhbLd3t1svZdCroKt rq/Cv79ztMs7ncDMzMy5t7enzL3Hx8h6e37l5eXw8PDK0dOVwtOozdsfkrnKk47E 1tUNiba8RjxKs4bN3eKawM2SybIslr5Yp8TV4N+80dbY5Oek08O5zNJ+wqW20cf2 9vZ09tAFAAAACXBIWXMAAArwAAAK8AFCrDSYAAACh0lEQVR4Xs3RiZKbMAwGYMu3 zX2T+072fP/XqwSUppM0bLfdmf1DxlhmvhGCRV8UFmVfkm8Ig/0beLnZbJYfcuNK T8Htr6BLcvuBCAv5o/Pf4HjTJ/4AbCyICVhRXk6JUssBXiqVpK16FCvyXJcPHvgJ n5xLVD7CydqdHsKEWjsN7x3B2QC3Kun2k5mE29Rhh4eiH3JcHOgN1vt/h/fIXN7C bZEtl8us2IbFauH6YRirFBO0Wqa6K1bM5gzLQDvGtNKMGdEqrcmrRth7fyIlCMPt M26et2EYUGlxwZ0w3jKDz2WWeVSZ9Z5glltGBY8B8LERtHgwLPeUHsZJ7FfoYc/o 0vq2X+Ms8Chj1gD+he/gCjzBMasMq6hgbdSJwtCSsaiCK3jh1i8FgWFwfg0pxQXh mceAYZkwLO5hMGUPx2DtLWxZLlg2wFJKhC9FBwZ+gFcES0zOhGxZJaVleKmqUrKD VV+QGACJo6ClqgDwDjPC87cRHjveS0rVSimiAZalAdXBQ4ExkEAfTyGcd2WjRhhn PDv3o5AdvN3N6OPJT4fguq4T51J5uIJf65RK9efTw3Pn3PwcjHBwnq+dS+qHiadg zvkT9nc8o9zDwWp3xEns+MOU412W3Z72MKcG0119CF7lITjIXepw6nesSliuhS0B Ig48ByEzDaXW+Z9gnqC0QOoJf3x+xN3pXpMRt23FJXAuFHBdRpFQXEbl3Y4bCj85 TJrMZrMkXXduc5syaoSHpsGLVl2WStRNE5XNTQjuQj1TEKUk5N7CGiypNApcc4BY aVClju7CQ+bY6YCn8+ZusmsArk8ewEQn6WKxOCZz3kzDXEzB71fhT7sn/v4/QvBN vjv8RfkBEHe0Bwh42FAAAAAASUVORK5CYII= ------------l3zI15SHHfQvVkJLudMbfE--