From: Arun Kumar Date: 2009-08-23T22:05:23+09:00 Subject: Re: Parsing pdf files --000e0cd6b3faef22340471cec08f Content-Type: multipart/alternative; boundary=000e0cd6b3faef222d0471cec08d --000e0cd6b3faef222d0471cec08d Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Helo Alex, Suppose the data in the pdf is two-columned ( as is the case in research papers) or has some tables . The copied version should have the same amount of spaces between words and columns. I'll attach an example two columned text in here for your reference. For the program I'm writing, the layout is most essential. If you are not able to see a two column output in your text editor (since its probably more than 80 characters per line) please reduce the font size of your text editor (or use a large monitor ;) ). Observe how theres space between the two columned output. This was done by copying from evince to gedit or emacs On Sun, Aug 23, 2009 at 4:50 PM, Axel Etzold wrote: > > -------- Original-Nachricht -------- > > Datum: Sun, 23 Aug 2009 19:46:23 +0900 > > Von: Arun Kumar > > An: ruby-talk@ruby-lang.org > > Betreff: Re: Parsing pdf files > > > hello Alex, > > Thank you. But I would like to point out that its not very accurate in > > maintaining the layout. I already tried it out. you can copy a pdf file > > from > > evince to gedit, you will get a better accuracy of layout. What escapes me > > is how to do it programatically :) > > > > cheers & regards, > > Arun > > Dear Arun, > > could you say something more about what layout features you need ? > > Best regards, > > Axel > > -- > Neu: GMX Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate > f=C3=BCr nur 19,99 Euro/mtl.!* http://portal.gmx.net/de/go/dsl02 > -- || =E0=A4=B6=E0=A5=8D=E0=A4=B0=E0=A5=80 =E0=A4=9C=E0=A4=BE=E0=A4=A8=E0=A4= =95=E0=A5=80=E0=A4=B0=E0=A4=98=E0=A5=81=E0=A4=A8=E0=A4=BE=E0=A4=A5=E0=A5=8B= =E0=A4=B5=E0=A4=BF=E0=A4=9C=E0=A4=AF=E0=A4=A4=E0=A5=87 || --000e0cd6b3faef222d0471cec08d Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Helo Alex,

Suppose the data in the pdf is two-columned ( as is the c= ase in research papers) or has some tables . The copied version should have= the same amount of spaces between words and columns. I'll attach an ex= ample two columned text in here for your reference. For the program I'm= writing, the layout is most essential.

If you are not able to see a two column output in your text editor (sin= ce its probably more than 80 characters per line) please reduce the font si= ze of your text editor (or use a large monitor ;) ).

Observe how th= eres space between the two columned output. This was done by copying from e= vince to gedit or emacs




On Sun, Aug 23, 2009 at 4:50 PM, Axel Etzold <AEtzold@gmx.de> wrote:
>
> -----= --- Original-Nachricht --------
> > Datum: Sun, 23 Aug 2009 19:46:= 23 +0900
> > Von: Arun Kumar <ar= un.einstein@gmail.com>
> > An: ruby-talk@ruby-lang.org
> > Betreff: Re: Parsin= g pdf files
>
> > hello Alex,
> > Thank you. But I would like to p= oint out that its not very accurate in
> > maintaining the layout.= I already tried it out. you can copy a pdf file
> > from
> = > evince to gedit, you will get a better accuracy of layout. What escape= s me
> > is how to do it programatically :)
> >
> > chee= rs & regards,
> > Arun
>
> Dear Arun,
>
&= gt; could you say something more about what layout features you need ?
>
> Best regards,
>
> Axel
>
> --
> = Neu: GMX Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate
> f=C3= =BCr nur 19,99 Euro/mtl.!* ht= tp://portal.gmx.net/de/go/dsl02
>



--
|| =E0=A4=B6=E0=A5=8D=E0=A4=B0=E0=A5=80 =E0=A4=9C= =E0=A4=BE=E0=A4=A8=E0=A4=95=E0=A5=80=E0=A4=B0=E0=A4=98=E0=A5=81=E0=A4=A8=E0= =A4=BE=E0=A4=A5=E0=A5=8B =E0=A4=B5=E0=A4=BF=E0=A4=9C=E0=A4=AF=E0=A4=A4=E0= =A5=87 ||
--000e0cd6b3faef222d0471cec08d-- --000e0cd6b3faef22340471cec08f Content-Type: text/plain; charset=US-ASCII; name="ie.txt" Content-Disposition: attachment; filename="ie.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fypsg95u0 U2FtcGxlIEpvYiBQb3N0aW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBudW1iZXIsIHB1Ymxpc2hlciwgYW5kIHByaWNlIG9mIGJvb2sgZnJvbSBhbiBBbWF6 b24gd2ViCkpvYiBUaXRsZTogU2VuaW9yIERCTVMgQ29uc3VsdGFudCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGFnZS4KTG9jYXRpb246IERhbGxhcyxUWCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRSBzeXN0ZW1zIGNhbiBhbHNvIGJlIHVzZWQg dG8gZXh0cmFjdCBkYXRhIG9yIGtub3dsZWRnZQpSZXNwb25zaWJpbGl0aWVzOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gbGVzcy1zdHJ1Y3R1cmVk IHdlYiBzaXRlcyBieSB1c2luZyBib3RoIHRoZSBIVE1MIHRleHQKREJNUyBBcHBsaWNhdGlvbnMg Y29uc3VsdGFudCB3b3JrcyB3aXRoIHByb2plY3QgdGVhbXMgICAgICAgICAgICBpbiB0aGVpciBw YWdlcyBhcyB3ZWxsIGFzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGh5cGVybGlua3MgYmUtCnRvIGRl ZmluZSBEQk1TIGJhc2VkIHNvbHV0aW9ucyB0aGF0IHN1cHBvcnQgdGhlIGVudGVycHJpc2UgICAg ICAgIHR3ZWVuIHRoZWlyIHBhZ2VzLiBGb3IgZXhhbXBsZSwgdGhlIFdlYktCIHByb2plY3QgYXQK ZGVwbG95bWVudCBvZiBFbGVjdHJvbmljIENvbW1lcmNlLCBTYWxlcyBGb3JjZSBBdXRvbWEtICAg ICAgICAgICBDYXJuZWdpZSBNZWxsb24gVW5pdmVyc2l0eSBoYXMgZXhwbG9yZWQgZXh0cmFjdGlu ZyBzdHJ1Yy0KdGlvbiwgYW5kIEN1c3RvbWVyIFNlcnZpY2UgYXBwbGljYXRpb25zLiAgICAgICAg ICAgICAgICAgICAgICAgICB0dXJlZCBpbmZvcm1hdGlvbiBmcm9tIHVuaXZlcnNpdHkgY29tcHV0 ZXItc2NpZW5jZSBkZXBhcnQtCkRlc2lyZWQgUmVxdWlyZW1lbnRzOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudHMgWzIyXS4gVGhlIG92ZXJhbGwgV2ViS0Ig c3lzdGVtIGF0dGVtcHRlZCB0byBpZGVuLQozLTUgeWVhcnMgZXhwLiBkZXZlbG9waW5nIE9yYWNs ZSBvciBTUUwgU2VydmVyIGFwcHMgdXNpbmcgICAgICAgIHRpZnkgYWxsIGZhY3VsdHksIHN0dWRl bnRzLCBjb3Vyc2VzLCBhbmQgcmVzZWFyY2ggcHJvamVjdHMgaW4KVmlzdWFsIEJhc2ljLCBDL0Mr KywgUG93ZXJidWlsZGVyLCBQcm9ncmVzcywgb3Igc2ltaWxhci4gICAgICAgICBhIGRlcGFydG1l bnQgYXMgd2VsbCBhcyByZWxhdGlvbnMgYmV0d2VlbiB0aGVzZSBlbnRpdGllcwpSZWNlbnQgZXhw ZXJpZW5jZSByZWxhdGVkIHRvIGluc3RhbGxpbmcgYW5kIGNvbmZpZ3VyaW5nICAgICAgICAgICBz dWNoIGFzOiBpbnN0cnVjdG9yKHByb2YsIGNvdXJzZSksIGFkdmlzb3Ioc3R1ZGVudCwgcHJvZiks Ck9yYWNsZSBvciBTUUwgU2VydmVyIGluIGJvdGggZGV2LiAgICAgICAgICAgICBhbmQgZGVwbG95 bWVudCAgICAgYW5kIG1lbWJlcihwZXJzb24sIHByb2plY3QpLgplbnZpcm9ubWVudHMuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMi4yICAgICBJRSBNZXRob2RzCkRlc2lyZWQgU2tpbGxzOgpVbmRlcnN0YW5kaW5nIG9mIFVO SVggb3IgTlQsIHNjcmlwdGluZyBsYW5ndWFnZS4gS25vdyAgICAgICAgICAgIFRoZXJlIGFyZSBh IHZhcmlldHkgb2YgYXBwcm9hY2hlcyB0byBjb25zdHJ1Y3RpbmcgSUUgc3lzLQpwcmluY2lwbGVz IG9mIHN0cnVjdHVyZWQgc29mdHdhcmUgZW5naW5lZXJpbmcgYW5kIHByb2plY3QgICAgICAgIHRl bXMuIE9uZSBhcHByb2FjaCBpcyB0byBtYW51YWxseSBkZXZlbG9wIGluZm9ybWF0aW9uLQptYW5h Z2VtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGV4dHJhY3Rpb24gcnVsZXMgYnkgZW5jb2RpbmcgcGF0dGVybnMgKGUuZy4gcmVndWxhciBl eHByZXMtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2lvbnMpIHRoYXQgcmVsaWFibHkgaWRlbnRpZnkgdGhlIGRlc2lyZWQg ZW50aXRpZXMgb3IgcmVsYXRpb25zLgpGaWxsZWQgSm9iIFRlbXBsYXRlOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciBleGFtcGxlLCB0aGUgU3Vpc2VraSBz eXN0ZW0gWzhdIGV4dHJhY3RzIGluZm9ybWF0aW9uIG9uCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJhY3RpbmcgcHJv dGVpbnMgZnJvbSBiaW9tZWRpY2FsIHRleHQgdXNpbmcgbWFudWFsbHkgZGUtCnRpdGxlOiBTZW5p b3IgREJNUyBDb25zdWx0YW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVsb3BlZCBwYXR0ZXJucy4Kc3RhdGU6IFRYCmNp dHk6IERhbGxhcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSG93ZXZlciwgZHVlIHRvIHRoZSB2YXJpZXR5IG9mIGZvcm1zIGFuZCBjb250ZXh0cyBp biB3aGljaApjb3VudHJ5OiBVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRoZSBkZXNpcmVkIGluZm9ybWF0aW9uIGNhbiBhcHBlYXIsIG1hbnVh bGx5IGRldmVsb3BpbmcKbGFuZ3VhZ2U6IFBvd2VyYnVpbGRlciwgUHJvZ3Jlc3MsIEMsIEMrKywg VmlzdWFsIEJhc2ljICAgICAgICAgICBwYXR0ZXJucyBpcyB2ZXJ5IGRpZmZpY3VsdCBhbmQgdGVk aW91cyBhbmQgcmFyZWx5IHJlc3VsdHMgaW4KcGxhdGZvcm06IFVOSVgsIE5UICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2J1c3Qgc3lzdGVtcy4gQ29uc2Vx dWVudGx5LCBzdXBlcnZpc2VkIG1hY2hpbmUtbGVhcm5pbmcKYXBwbGljYXRpb246IFNRTCBTZXJ2 ZXIsIE9yYWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2RzIHRyYWlu ZWQgb24gaHVtYW4gYW5ub3RhdGVkIGNvcnBvcmEgaGFzIGJlY29tZQphcmVhOiBFbGVjdHJvbmlj IENvbW1lcmNlLCBDdXN0b21lciBTZXJ2aWNlICAgICAgICAgICAgICAgICAgICAgIHRoZSBtb3N0 IHN1Y2Nlc3NmdWwgYXBwcm9hY2ggdG8gZGV2ZWxvcGluZyByb2J1c3QgSUUgc3lzLQpyZXF1aXJl ZCB5ZWFycyBvZiBleHBlcmllbmNlOiAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRlbXMgWzE0XS4gQSB2YXJpZXR5IG9mIGxlYXJuaW5nIG1ldGhvZHMgaGF2ZSBiZWVuIGFwcGxp ZWQKZGVzaXJlZCB5ZWFycyBvZiBleHBlcmllbmNlOiA1ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0byBJRS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPbmUgYXBwcm9hY2ggaXMgdG8gYXV0b21hdGljYWxs eSBsZWFybiBwYXR0ZXJuLWJhc2VkIGV4LQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWN0aW9uIHJ1bGVzIGZvciBpZGVu dGlmeWluZyBlYWNoIHR5cGUgb2YgZW50aXR5IG9yIHJlbGF0aW9uLgogICAgIEZpZ3VyZSAyOiBT YW1wbGUgSm9iIFBvc3RpbmcgYW5kIEZpbGxlZCBUZW1wbGF0ZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciBleGFtcGxl LCBvdXIgcHJldmlvdXNseSBkZXZlbG9wZWQgc3lzdGVtLCBSYXBpZXIgWzEyOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEz XSwgbGVhcm5zIGV4dHJhY3Rpb24gcnVsZXMgY29uc2lzdGluZyBvZiB0aHJlZSBwYXJ0czogMSkg YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHByZS1maWxsZXIgcGF0dGVybiB0aGF0IG1hdGNoZXMgdGhlIHRleHQgaW1tZWRp YXRlbHkgcHJlLQphZmZpbGlhdGVkIHdpdGggYSBzcGVjaWZpYyBvcmdhbml6YXRpb24gWzczOyAy NF0uIEluIGJpb21lZGljYWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjZWRpbmcgdGhlIHBocmFzZSB0byBiZSBleHRyYWN0 ZWQsIDIpIGEgZmlsbGVyIHBhdHRlcm4gdGhhdAp0ZXh0LCBvbmUgY2FuIGlkZW50aWZ5IHRoYXQg YSBwcm90ZWluIGludGVyYWN0cyB3aXRoIGFub3RoZXIKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVzIHRoZSBwaHJh c2UgdG8gYmUgZXh0cmFjdGVkLCBhbmQgMykgYSBwb3N0LWZpbGxlciBwYXQtCnByb3RlaW4gb3Ig dGhhdCBhIHByb3RlaW4gaXMgbG9jYXRlZCBpbiBhIHBhcnRpY3VsYXIgcGFydCBvZiB0aGUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0ZXJuIHRoYXQgbWF0Y2hlcyB0aGUgdGV4dCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgdGhl IGZpbGxlci4KY2VsbCBbMTA7IDIzXS4gRm9yIGV4YW1wbGUsIGlkZW50aWZ5aW5nIHByb3RlaW4g aW50ZXJhY3Rpb25zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUGF0dGVybnMgYXJlIGV4cHJlc3NlZCBpbiBhbiBlbmhhbmNl ZCByZWd1bGFyLWV4cHJlc3Npb24KaW4gdGhlIGFic3RyYWN0IGV4Y2VycHQgaW4gRmlndXJlIDEg d291bGQgcmVxdWlyZSBleHRyYWN0aW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2UsIHNpbWlsYXIgdG8gdGhh dCB1c2VkIGluIFBlcmwgWzcyXTsgYW5kIGEgYm90dG9tLXVwCnRoZSByZWxhdGlvbjogaW50ZXJh Y3RzKE5PU0lQLCBlTk9TKS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbmFsIHJ1bGUgbGVhcm5lciBpcyB1c2Vk IHRvIGluZHVjZSBydWxlcyBmcm9tIGEgY29ycHVzCklFIGNhbiBhbHNvIGJlIHVzZWQgdG8gZXh0 cmFjdCBmaWxsZXJzIGZvciBhIHByZWRldGVybWluZWQgc2V0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgbGFiZWxlZCB0 cmFpbmluZyBleGFtcGxlcy4gSW4gV3JhcHBlciBJbmR1Y3Rpb24gWzM3XSBhbmQKb2Ygc2xvdHMg KHJvbGVzKSBpbiBhIHBhcnRpY3VsYXIgdGVtcGxhdGUgKGZyYW1lKSByZWxldmFudCB0bwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEJvb3N0ZWQgV3JhcHBlciBJbmR1Y3Rpb24gKEJXSSkgWzMwXSwgcmVndWxhci1leHByZXNz aW9uLQp0aGUgZG9tYWluLiBJbiB0aGlzIHBhcGVyLCB3ZSBjb25zaWRlciB0aGUgdGFzayBvZiBl eHRyYWN0LQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHR5cGUgcGF0dGVybnMgYXJlIGxlYXJuZWQgZm9yIGlkZW50aWZ5aW5n IHRoZSBiZWdpbm5pbmcgYW5kCmluZyBhIGRhdGFiYXNlIGZyb20gcG9zdGluZ3MgdG8gdGhlIFVT RU5FVCBuZXdzZ3JvdXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZW5kaW5nIG9mIGV4dHJhY3RlZCBwaHJhc2VzLiBJbmR1 Y3RpdmUgTG9naWMgUHJvZ3JhbW1pbmcKYXVzdGluLmpvYnMgWzEyXS4gRmlndXJlIDIgc2hvd3Mg YSBzYW1wbGUgbWVzc2FnZSBmcm9tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElMUCkgWzQ1XSBoYXMgYWxzbyBiZWVuIHVz ZWQgdG8gbGVhcm4gbG9naWNhbCBydWxlcyBmb3IgaWRlbi0KdGhlIG5ld3Nncm91cCBhbmQgdGhl IGZpbGxlZCBjb21wdXRlci1zY2llbmNlIGpvYiB0ZW1wbGF0ZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZnlpbmcgcGhy YXNlcyB0byBiZSBleHRyYWN0ZWQgZnJvbSBhIGRvY3VtZW50IFsyOV0uCndoZXJlIHNldmVyYWwg c2xvdHMgbWF5IGhhdmUgbXVsdGlwbGUgZmlsbGVycy4gRm9yIGV4YW0tCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW4gYWx0 ZXJuYXRpdmUgZ2VuZXJhbCBhcHByb2FjaCB0byBJRSBpcyB0byB0cmVhdCBpdCBhcyBhIHNlLQpw bGUsIHNsb3RzIHN1Y2ggYXMgbGFuZ3VhZ2VzLCBwbGF0Zm9ybXMsIGFwcGxpY2F0aW9ucywgYW5k CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcXVlbmNlIGxhYmVsaW5nIHRhc2sgaW4gd2hpY2ggZWFjaCB3b3JkICh0b2tlbikg aW4gdGhlIGRvY3UtCmFyZWFzIHVzdWFsbHkgaGF2ZSBtb3JlIHRoYW4gb25lIGZpbGxlciwgd2hp bGUgc2xvdHMgcmVsYXRlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnQgaXMgYXNzaWduZWQgYSBsYWJlbCAodGFnKSBm cm9tIGEgZml4ZWQgc2V0IG9mIGFsdGVybmF0aXZlcy4KdG8gdGhlIGpvYiBzIHRpdGxlIG9yIGxv Y2F0aW9uIHVzdWFsbHkgaGF2ZSBvbmx5IG9uZSBmaWxsZXIuCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yIGV4YW1wbGUs IGZvciBlYWNoIHNsb3QsIFgsIHRvIGJlIGV4dHJhY3RlZCwgd2UgaW5jbHVkZSBhClNpbWlsYXIg YXBwbGljYXRpb25zIGluY2x1ZGUgZXh0cmFjdGluZyByZWxldmFudCBzZXRzIG9mIHByZS0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0b2tlbiBsYWJlbCBCZWdpblggdG8gbWFyayB0aGUgYmVnaW5uaW5nIG9mIGEgZmlsbGVy IGZvciBYCmRlZmluZWQgc2xvdHMgZnJvbSB1bml2ZXJzaXR5IGNvbGxvcXVpdW0gYW5ub3VuY2Vt ZW50cyBbMjldCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYW5kIEluc2lkZVggdG8gbWFyayBvdGhlciB0b2tlbnMgaW4gYSBm aWxsZXIgZm9yIFguIEZpbmFsbHksCm9yIGFwYXJ0bWVudCByZW50YWwgYWRzIFs2N10uCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgd2UgaW5jbHVkZSB0aGUgbGFiZWwgT3RoZXIgZm9yIHRva2VucyB0aGF0IGFyZSBub3QgaW5j bHVkZWQKQW5vdGhlciBhcHBsaWNhdGlvbiBvZiBJRSBpcyBleHRyYWN0aW5nIHN0cnVjdHVyZWQg ZGF0YSBmcm9tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW4gdGhlIGZpbGxlciBvZiBhbnkgc2xvdC4gR2l2ZW4gYSBzZXF1 ZW5jZSBsYWJlbGVkIHdpdGggdGhlc2UKdW5zdHJ1Y3R1cmVkIG9yIHNlbWktc3RydWN0dXJlZCB3 ZWIgcGFnZXMuIFdoZW4gYXBwbGllZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3MsIGl0IGlzIGVhc3kgdG8gZXh0cmFj dCB0aGUgZGVzaXJlZCBmaWxsZXJzLgp0byBzZW1pLXN0cnVjdHVyZWQgSFRNTCwgdHlwaWNhbGx5 IGdlbmVyYXRlZCBmcm9tIGFuIHVuLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uZSBhcHByb2FjaCB0byB0aGUgcmVzdWx0 aW5nIHNlcXVlbmNlIGxhYmVsaW5nIHByb2JsZW0gaXMKZGVybHlpbmcgZGF0YWJhc2UgYnkgYSBw cm9ncmFtIG9uIGEgd2ViIHNlcnZlciwgYW4gSUUgc3lzLQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHVzZSBhIHN0YXRp c3RpY2FsIHNlcXVlbmNlIG1vZGVsIHN1Y2ggYXMgYSBIaWRkZW4gTWFya292CnRlbSBpcyB0eXBp Y2FsbHkgY2FsbGVkIGEgd3JhcHBlciBbMzddLCBhbmQgdGhlIHByb2Nlc3MgaXMKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN b2RlbCAoSE1NKSBbNTddIG9yIGEgQ29uZGl0aW9uYWwgUmFuZG9tIEZpZWxkIChDRlIpCnNvbWV0 aW1lcyByZWZlcnJlZCB0byBhcyBzY3JlZW4gc2NyYXBpbmcuIEEgdHlwaWNhbCBhcHBsaWNhLQp0 aW9uIGlzIGV4dHJhY3RpbmcgZGF0YSBvbiBjb21tZXJjaWFsIGl0ZW1zIGZyb20gd2ViIHN0b3Jl cyAgICAgIFszOF0uIFNldmVyYWwgZWFybGllciBJRSBzeXN0ZW1zIHVzZWQgZ2VuZXJhdGl2ZSBI TU0gbW9kLQpmb3IgYSBjb21wYXJpc29uIHNob3BwaW5nIGFnZW50IChzaG9wYm90KSBbMjddIHN1 Y2ggYXMgTXlTaS0gICAgIGVscyBbNDsgMzFdOyBob3dldmVyLCBkaXNjcmltaW5hdGVseS10cmFp bmVkIENSRiBtb2RlbHMgaGF2ZQptb24gKHd3dy5teXNpbW9uLmNvbSkgb3IgRnJvb2dsZSAoZnJv b2dsZS5nb29nbGUuY29tKS4gICAgICAgICAgIHJlY2VudGx5IGJlZW4gc2hvd24gdG8gaGF2ZSBh biBhZHZhbnRhZ2Ugb3ZlciBITU0gcyBbNTQ7CkZvciBleGFtcGxlLCBhIHdyYXBwZXIgbWF5IGV4 dHJhY3QgdGhlIHRpdGxlLCBhdXRob3IsIElTQk4gICAgICAgNjVdLiBJbiBib3RoIGNhc2VzLCB0 aGUgbW9kZWwgcGFyYW1ldGVycyBhcmUgbGVhcm5lZCBmcm9tCg== --000e0cd6b3faef22340471cec08f--