You can subscribe to this list here.
| 2003 |
Jan
(9) |
Feb
(6) |
Mar
|
Apr
(2) |
May
|
Jun
(4) |
Jul
(19) |
Aug
(18) |
Sep
(11) |
Oct
(14) |
Nov
(16) |
Dec
(50) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(42) |
Feb
(39) |
Mar
(66) |
Apr
(26) |
May
(32) |
Jun
(21) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: mamutas <mam...@ho...> - 2004-06-18 23:42:22
|
But how it is going to be tied to the data loader class? The class which would read/write the big XML file with all game related data? Well, not to read the XML file actually, but to read/write the content of the DOM created from that XML file. Or has something changed in the original plan? ----- Original Message ----- From: "Guyver" <gu...@ho...> To: "Xenocide Programming List" <xen...@li...> Sent: Thursday, June 03, 2004 6:20 AM Subject: [Xenocide-programming] Base data interfaces > Here's my reworked revision of classes for base scape. It's not lot but > I ask you to revise this and comment. > > As for handling data in game I would suggest to go in approach similar > to how relative data bases work, storing data in some kind of > DataManagers similar to resource managers. In example soldiers have > their own datamanager, which serializes itself in it's own special way, > and each soldier to have relation where he or she belongs, like base (by > base ID, while bases are managed by BaseManager which keeps relations > between base id and actual object), aircraft they are assigned to. > Another approach is to have bases/aircrafts to hold list of soldiers > which belong to them, but it's rather not convinient, becouse soldier > can belong to one base at the time and to one ship. Keeping that data in > soldier's interface is better. > > Send sugestions how you see data storage. > > Guyver > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by the new InstallShield X. > From Windows to Linux, servers to mobile, InstallShield X is the one > installation-authoring solution that does it all. Learn more and > evaluate today! http://www.installshield.com/Dev2Dev/0504 > _______________________________________________ > Xenocide-programming mailing list > Xen...@li... > https://lists.sourceforge.net/lists/listinfo/xenocide-programming > |
|
From: Jeffrey W. <min...@cp...> - 2004-06-08 18:26:09
|
In my humble opinion, the restructuring that is going on and the formation of task forces necessitates this change. Having the discussion on the forums allows us to have everything centralized in one place. It also allows non-list members to read our discussions as necessary. This is especially important since task forces will be composed of programmers and artists/writers. If you want to get notices via email, you could subscribe to a topic or track a forum. That's my 2 cents. -mindstormmaster -----Original Message----- From: xen...@li... [mailto:xen...@li...] On Behalf Of Tommy Persson Sent: Tuesday, June 08, 2004 11:03 AM To: Xen...@li... Subject: [Xenocide-programming] Shutting down the mailing list? Hi, When was this decided and why? I find it much easier to read this mailing list than hunting topics in an already too crowded forum. I even had thoughts of submitting it to the gmane Usenet server. I understand that we want to avoid fragmentation and make it easier for people to see what's going on but is nothing holy anymore? There is a reason why the programming forum is so inactive, it's easier to discuss things on a mailing list or a newsgroup. That's my thoughts anyway. Discussion please? Am I alone in thinking this way? Tommy "LordT" Persson to...@ho... ------------------------------------------------------- This SF.Net email is sponsored by: GNOME Foundation Hackers Unite! GUADEC: The world's #1 Open Source Desktop Event. GNOME Users and Developers European Conference, 28-30th June in Norway http://2004/guadec.org _______________________________________________ Xenocide-programming mailing list Xen...@li... https://lists.sourceforge.net/lists/listinfo/xenocide-programming |
|
From: Tommy P. <to...@ho...> - 2004-06-08 18:04:22
|
Hi, When was this decided and why? I find it much easier to read this mailing list than hunting topics in an already too crowded forum. I even had thoughts of submitting it to the gmane Usenet server. I understand that we want to avoid fragmentation and make it easier for people to see what's going on but is nothing holy anymore? There is a reason why the programming forum is so inactive, it's easier to discuss things on a mailing list or a newsgroup. That's my thoughts anyway. Discussion please? Am I alone in thinking this way? Tommy "LordT" Persson to...@ho... |
|
From: FabGuy <xen...@fa...> - 2004-06-05 09:12:59
|
Hi, this is also a test if I can post/receive messages on this list. Attached you should find the "xenocide_names.xsd" which has become rather= broad. :D Purpose of the file is to define the format of the names.xml which itself= will be the basis for soldier's name generation. I have not yet understood how to create my own type. XMLSpy always claime= d the document to be invalid when I created a "<xs:simpleType>" defining = the pattern of the type (e.g. sex being an enumeration of male, female an= d both). So there is space for improvement. I hope this is the correct list for that kind of things... Cheers, FabGuy= |
|
From: Guyver <gu...@ho...> - 2004-06-03 11:28:53
|
Hehe, I haven't attached code to my post ;-P. Here it goes |
|
From: Guyver <gu...@ho...> - 2004-06-03 11:27:39
|
Oh, I forget to mention that i dropped the idea of Buildable ability. You can also see there's DOMNode* in serialize method. This is like I see serialization. Of course it could be better to have specialized serializer that we could feed with data or read from, and it could do it's job like writing/reading XML or binary files, in case of bin files it could do necessary endian convertion etc. Guyver PS. I haven't been developing for a while, but that's becouse end of the semester on university is comming and I have bunch of work lately not related to programming :(. So be patient when I'm not replaying to e-mail for one day or two. I will reply sooner or later, but i will ;-) |
|
From: Guyver <gu...@ho...> - 2004-06-03 11:20:40
|
Here's my reworked revision of classes for base scape. It's not lot but I ask you to revise this and comment. As for handling data in game I would suggest to go in approach similar to how relative data bases work, storing data in some kind of DataManagers similar to resource managers. In example soldiers have their own datamanager, which serializes itself in it's own special way, and each soldier to have relation where he or she belongs, like base (by base ID, while bases are managed by BaseManager which keeps relations between base id and actual object), aircraft they are assigned to. Another approach is to have bases/aircrafts to hold list of soldiers which belong to them, but it's rather not convinient, becouse soldier can belong to one base at the time and to one ship. Keeping that data in soldier's interface is better. Send sugestions how you see data storage. Guyver |
|
From: Hymie t. C. R. <con...@sh...> - 2004-06-02 05:05:18
|
> <RK> No, it is not at all bad, I suggested to use .NET as I know that the interoperativility between Managed C++
> and C# is not a big problem and you can even do the UI in Managed C++ (however because of the extensions
> needed the code looks a little dirty). The idea was to use as much as we can of the PAQ Manipulation Routines,
> while gaining the UI capacity of those platforms. So either Managed C++, C# or Java are good options regarding
> the UI, I know that Managed C++ is not a problem at all, but C# is a cleaner language so that is why I suggested
> it the first time.
RK, how do you actually use managed C++ with unmanaged C++ exported classes? I made up a quick managed C++ form application and tried using the normal _dllexport/_dllimport thing to use a class from an unmanaged DLL. The project compiled, but blew chunks when it tried to run. What kind of extra declarations do you have to do to use exported classes in managed C++?
Item ob du ainen pauren wild schaczen so vass
im dy haut zu samen an seinen hals und stich
im dar durch, als hie gemalt stet so maint
er man hab im denn hals ab geschnitten und schat nit
-- a great party trick from the Codex Wallerstein
|
|
From: Hymie t. C. R. <con...@sh...> - 2004-06-02 03:36:15
|
----- Original Message -----
From: "Ermete Gaudenzi" <ex...@li...>
To: <xen...@li...>
Sent: Tuesday, June 01, 2004 3:55 AM
Subject: [Xenocide-programming] c# problems
> The problem is that to use the exported functions of a DLL (in .NET
they're
> called "unmanaged dll function") we have to declare it again in C# and we
> can forget to simply handle classes.
>
> Concretely in paqfiles.dll there are 129 exported functions that must be
> declared again. Plus this if we want to group them again into classes or
> (better) if we want to use them like classes we have to write a wrapper
for
> each class and for each datatype.
I just started messing around with C# (just installed it) and didn't realize
it was this limited for supporting C++. Man, this is no better than Visual
Basic's support for C++. :(
Do you think we can manage to interface PAQExplorer and PAQFiles by only
using functions? It'd be a lot less convenient, but for interfacing between
the UI and PAQFiles do we necessarily need classes?
> We can have the insane idea of porting the whole PAQFiles under C++
> managed (.NET) or C# but what about the rest of the project? I don't
think
> there's a way to access .NET code from outside. I mean without declare
> again every exported function and write wrappers.
>
> What are the alternatives?
> 1) leave PAQExplorer under C++ but use gtk or qt as graphic libraries,
> which are multiplatform and non-microsoft (fortunately!). I don't know if
> there's an IDE that supports them
wGlade is a windows port of Glade (graphical creation of GTK code), and
might be promising. But isn't using GTK even more work than writing
wrappers in C#?
Item ob du ainen pauren wild schaczen so vass
im dy haut zu samen an seinen hals und stich
im dar durch, als hie gemalt stet so maint
er man hab im denn hals ab geschnitten und schat nit
-- a great party trick from the Codex
Wallerstein
|
|
From: Ed R. <Ed...@tu...> - 2004-06-01 18:25:29
|
Howdy all, Fritz here (worked a LONG time ago on the project, been lurking on the mailing list, but haven't had time to interact due to school) For my Junior Project, I wrote a C#/Unmanaged C++ game using, suprise suprise, OGRE, and I found that crossing the C#/Unmanaged C++ barrier is not very difficult, if you use the right interface. Unfortunately, the right interface has been .ini style files for pretty much everything, however, it does work seamlessly. My team wrote the front-end, the Battle.NET style server, the update client, and essentially everything except for the in-game proper stuff, and the fact that all of that could be done in C# has been a godsend! If you can find proper borders in the project, namely things such as the main menu, audio/video config stuff, etc, you can save a lot of time using C# for those portions while keeping the main portion in Unmanaged C++. I would say keep the central core in C++, but for all the fringe programs, definitely take a good look at C#, mainly because while there is a nice class for nearly everything in C#, if you want to do something that it won't let you do, you simply can't. On 1 Jun 2004 at 9:42, Red Knight wrote: > > Hi, > > regarding your statement: > > > <RK> That is a no-no C# is pretty just for UIs or that kind of > > applications. It still has to prove that can implement 3D Engines and > > that stuff (And we have lot of code written too). > > as a personal note: did you take a look at axiom? it's a (now very > popular) c# port of OGRE and it's _very_ fast, sometimes even faster but > generally nearly as fast as the OGRE C++ version... > Not that I think of converting c# :) > > <RK> I did a couple of weeks ago, and I was really impressed with what they have done. > However regarding the prove, I still have to see commercial games released using C#... needless > to say I expect it tohappen in the very near future ( but even if no commercial I > dontwantXenocide to bethefirst :D). > > > Anyway, i didn't want to disturb the discussion as it's just a minor > side note and has no real impact :) moving to c# would mean leaving > everything behind and starting from scratch (except for certain wrappers > maybe...) which i wouldn't want to do :D > > <RK> Neither do I, that was the point. Howeverfor UI applications, C# is the way to go... in fact if > we have to make graphical applications (as the PAQ Manager) I prefer we go the C# route as the > .NET framework for UIs is amazing. > > Greetings > Red Knight > > > > > > > > > > > > ____________________________________________________ > IncrediMail - Email has finally evolved - Click Here Ed "Fritz" Ray -- Network Administrator, Residence Hall, OIT Ed...@tu... |
|
From: Ermete G. <ex...@li...> - 2004-06-01 09:58:29
|
I have found some problems using external dlls from a c# project. In C# we can basically use only .NET assemblies (which are NOT common dlls). Check <http://www.dotnet247.com/247reference/msgs/15/76678.aspx>here and <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconinteroperatingwithunmanagedcode.asp>here for more info The problem is that to use the exported functions of a DLL (in .NET they're called "unmanaged dll function") we have to declare it again in C# and we can forget to simply handle classes. Concretely in paqfiles.dll there are 129 exported functions that must be declared again. Plus this if we want to group them again into classes or (better) if we want to use them like classes we have to write a wrapper for each class and for each datatype. It's like hell!! Note that under linux there are no DLLs and the wrappers should be certainly modified Another problem I encountered is that I couldn't find a way to separate project files from intermediate and final ones. The directory where's the project file is the same for all others and the configuration windows does not give me the possibility to change the project directory Incredible.. forget compatibility where Microsoft is in the middle!! I think we can forget also the PAQExplorer under C# :-( We can have the insane idea of porting the whole PAQFiles under C++ managed (.NET) or C# but what about the rest of the project? I don't think there's a way to access .NET code from outside. I mean without declare again every exported function and write wrappers. What are the alternatives? 1) leave PAQExplorer under C++ but use gtk or qt as graphic libraries, which are multiplatform and non-microsoft (fortunately!). I don't know if there's an IDE that supports them 2) try to use c++ managed and see if it has the same problems 3) anything else?! Exio82 |
|
From: Hymie t. C. R. <con...@sh...> - 2004-05-31 02:53:08
|
Hi everyone, I have a question here. A while ago some documents describing units and items in XML files were passed around on this mailing list. I noticed the restriction in the document where human firearms, e.g. pistols and assault rifles were designated to be "terrestrial use" only. I actually asked a question about the use of firearms in vacuum, low/zero gravity, and other atmospheres on another mailing list that I subscribe to, and got a large amount of interesting discussion from some very knowledgable people. Should I post some of the text of the results here, or should I post them on the website's forums under Creative Text?
Hymie
Item ob du ainen pauren wild schaczen so vass
im dy haut zu samen an seinen hals und stich
im dar durch, als hie gemalt stet so maint
er man hab im denn hals ab geschnitten und schat nit
-- a great party trick from the Codex Wallerstein
|
|
From: <cpt...@le...> - 2004-05-28 22:03:00
|
> Second, we can also make it multiplatform using QT or GTK as graphic > libraries.. anyone has some experience with them? We used gtkmm (the official GTK C++ wrapper) for a college project last year. The guy who did the GUI part didn't have any experience, but encountered no problems at all. Our target platform was Linux, but I could compile and run the project on my Windows box without making any changes (using the MinGW g++ compiler). Pros: - Seems easy to learn. - Very portable. - LGPL licensed. - Anti-aliased Fonts. :) Cons: - Several dependencies (glib, pango, libsigc++, ...) - I don't like GTK's "Open file..."-dialog. CptJackSparrow |
|
From: Ermete G. <ex...@li...> - 2004-05-28 12:19:19
|
Hi all, about the file archives subsystem, the PAQ explorer application (which manage the archives for developers) is still developed under the Borland C++ Builder environment and has some problems with unexpected crashes with Strings. Hymie and me were talking about port the work on the .NET framework but there are some considerations to do. First of all anyone who wants to use the program must install the framework too. I don't know if there's a way to compile it to be independent from the framework. Second, we can also make it multiplatform using QT or GTK as graphic libraries.. anyone has some experience with them? I heard that using MFC (windows, no .NET) would be like hell and anyway no multiplatform. What do you think? porting the project requires to reimplement only the GUI part and complete it with all features Exio82 |
|
From: Ermete G. <ex...@li...> - 2004-05-27 16:10:55
|
Sorry I forgot the attachment... Exio82 |
|
From: Ermete G. <ex...@li...> - 2004-05-27 15:35:55
|
<html> Hi to all<br> I developed an exception class for another project and I found it very useful.<br> At the moment I used it for the PAQ Files project and I made it parametric so we can decide if keep it or not.<br> We can choose to use it or not and if yes to move it into the misc package<br><br> This class saves internally a copy of the errno variable and GetLastError (only on Windows) and report them when the exception is converted to string. It also supports multiple error messages arranged in a stack.<br> For example:<br> I ask the file handler to opena file and an exception is generated "CreateFile failed". I catch the exception, add the message "Error opening the file <xenocide.conf>" and I throw it again.<br><br> when the toString() method is invoked the generated text is:<br> <b>FileNotFoundException:<br> Error opening the file <xenocide.conf><br> CreateFile failed<br> - GetLastError() reported: "Insufficient privileges"<br> - errno reported: "no error"<br><br> </b>What you think about it?<br><br> Exio82<br> </html> |
|
From: Vlad J. <vla...@ho...> - 2004-05-27 05:02:03
|
Guyver, I am not quite sure what objects are you going to serialize? The ones you will be using for the baseview? Is it just temporary implementation? Regards, mamutas -----Original Message----- From: xen...@li... [mailto:xen...@li...] On Behalf Of Guyver Sent: Monday, May 10, 2004 8:58 AM To: Xenocide Programming List Subject: [Xenocide-programming] Simple interface for serializing. Here's my first code (not much thou:). Working on baseview I found that no one has tried to read data, that is really needed, becouse we are making data driven engine. While RedKnight is working in collaboration with Yake developers on creating automatic serialization mechanism, I drafted small replacement, to use in my developement. Derive from it and implement serialize as you like. Guyver PS. There's also IDataInterface class, which is supposed to work as workaround for purpose of registring variables and/or functions to use in scripting engine like Lua, (I'm using luabind becouse of it's simplicity). It's not like scripting will look like in future, but helps before that future comes. --- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.690 / Virus Database: 451 - Release Date: 5/22/2004 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.691 / Virus Database: 452 - Release Date: 5/26/2004 |
|
From: breunor <br...@pr...> - 2004-05-23 06:13:44
|
May I suggest an additional variable be included as part of the price. Mamutas asks what to do if market supply/demand forces affect a price, this variable could be used to reflect that. This variable could be the result of other variables being calculated somewhere else. Multiple factors could affect price, and the result of those factors could be held by a single variable. That allows you to eventually make as complicated a system as you like, but for version 1 you just define the variable as equaling 1 for everything. Later on you might say (1/(#of corpses/days of game time)) is the value or something like that. Just a thought, I'll return to my corner now... |
|
From: mamutas <ma...@pr...> - 2004-05-22 19:07:48
|
I think these are very valid questions. Cpt., what do you say? Mamutas. -----Original Message----- From: xen...@li... [mailto:xen...@li...] On Behalf Of Andrew Pokrovski Sent: Tuesday, May 04, 2004 10:28 AM To: xen...@li... Subject: RE: [Xenocide-programming] Draft for the Items/Weapons System Hey guys. Sorry for the long absence, I've been quite loaded down with university work and a job as well. Luckily, it's summer break time, so I should be able to put in a little more time. To weigh in on the 'hazardous environment' discussion, it's probably a good idea to have a special category for them - not only do they inflict damage over time, but (possibly) the area of effect could shrink/expand over that time span. Think fire spreading or smoke clearing. So, you'd have a 'time span' and a 'area of effect growth/shrink rate' and extra rules for that. Also, question on items: where does picking up and dropping things fit in? Is it at the 'FieldCarriable' level? Andrew / NickAragua --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.690 / Virus Database: 451 - Release Date: 5/22/2004 |
|
From: mamutas <ma...@pr...> - 2004-05-22 19:05:55
|
Hi, I finally had a chance to read XML and corresponding docs. I apologize for such delay sincerely. I want to mention here that I had very few comments. I found the overall design very solid and well thought through. Here are my comments: -- Combatants XML -- 1) how are we going to handle different purchase prices for the same type of combatants? For example, each soldier could cost differently. 2) how are we going to handle market regulated sale price? For example, if you have sold thousands of gray corpses, they really should cost less now since the demand is lower... 3) are we going to have temporary stats modifiers? For example, after soldier was stunned, all his stats are lowered and gradually increase with time back to normal... -- Facilities XML -- 4) I think it would be easier to use the same time unit for all time related attributes. Now, facilities uses days, transfers uses hours... Can't we use hours everywhere? We can display them however we choose, but for data it will be more uniform. -- Planets XML -- 5) Why do we have terrain attributes in political section of the planet? Again... Great job! All hails Cpt. Boxershorts!!! Regards, mamutas -----Original Message----- From: xen...@li... [mailto:xen...@li...] On Behalf Of Cpt. Boxershorts Sent: Sunday, April 18, 2004 6:11 PM To: xen...@li... Subject: RE: [Xenocide-programming] XML facility-item data Well, since it looks like the ftp site got restored from a back up, the previous link is bad. I uploaded it again, as well as the unzipped files. I also added one more file I had missed...config.planets.xml. It's designed to hold info for geodata.h http://www.projectxenocide.com/public/CTD/CptBoxershorts/xml/Config/ The Captain --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.690 / Virus Database: 451 - Release Date: 5/22/2004 |
|
From: <ben...@id...> - 2004-05-21 08:13:25
|
Dear Open Source developer I am doing a research project on "Fun and Software Development" in which I kindly invite you to participate. You will find the online survey under http://fasd.ethz.ch/qsf/. The questionnaire consists of 53 questions and you will need about 15 minutes to complete it. With the FASD project (Fun and Software Development) we want to define the motivational significance of fun when software developers decide to engage in Open Source projects. What is special about our research project is that a similar survey is planned with software developers in commercial firms. This procedure allows the immediate comparison between the involved individuals and the conditions of production of these two development models. Thus we hope to obtain substantial new insights to the phenomenon of Open Source Development. With many thanks for your participation, Benno Luthiger PS: The results of the survey will be published under http://www.isu.unizh.ch/fuehrung/blprojects/FASD/. We have set up the mailing list fa...@we... for this study. Please see http://fasd.ethz.ch/qsf/mailinglist_en.html for registration to this mailing list. _______________________________________________________________________ Benno Luthiger Swiss Federal Institute of Technology Zurich 8092 Zurich Mail: benno.luthiger(at)id.ethz.ch _______________________________________________________________________ |
|
From: Red K. <red...@pr...> - 2004-05-20 12:47:37
|
I2lmbmRlZiB4ZW5vY2lkZV9fZGF0YWludGVyZmFjZXNfX2JlaGF2aW9yX19pY2Fycmllcl9oCiNk ZWZpbmUgeGVub2NpZGVfX2RhdGFpbnRlcmZhY2VzX19iZWhhdmlvcl9faWNhcnJpZXJfaAoKI2lu Y2x1ZGUgPHV0aWxpdHkvY29tbW9uLmg+CiNpbmNsdWRlICIuLi8uLi9jb21tb24veGVub3JlcXVp c2l0ZXMuaCINCg0KLy8gUks6IFRoaXMgdHdvIGhhZCBhbHJlYWR5IGJlZW4gYWRkZWQgaW4gdGhl IGN1cnJlbnQgQ1ZTLCBqdXN0IGRvIGFuIHVwZGF0ZS4gKHV0aWxpdHkgYW5kIHhlbm9yZXF1aXNp dGVzLmgpDQovLyAgICAgSSBzdWdnZXN0IGV2ZXJ5b25lIHRoYXQgZXZlcnkgdGltZSB5b3Ugd29y ayBkbyBhbiB1cGRhdGUgb2YgdGhlIGFwcHJvcHJpYXRlIG1vZHVsZXMuDQojaW5jbHVkZSA8bWFw Pg0KI2luY2x1ZGUgPGJvb3N0L3NoYXJlZF9wdHIuaHBwPg0KCiNpbmNsdWRlICIuLi8uLi9jb21t b24vZXhjZXB0aW9ucy5oIgoKdXNpbmcgbmFtZXNwYWNlIFV0aWxpdHk7CgpuYW1lc3BhY2UgWGVu b2NpZGUKewogICAgbmFtZXNwYWNlIEJlaGF2aW9yCiAgICB7DQoKCi8vIFJLOiBUaGUgY29kZSBp cyBhbG1vc3QgcmVhZHkgZm9yIENWUyBBY2NlcHRhbmNlLCBqdXN0IGNvcnJlY3QgYSBjb3VwbGUg b2YgdGhpbmdzIEkgcG9pbnRlZCBvdXQuCi8vICAgICBNb3N0IG9mIHRoZW0gYXJlIHRoaW5ncyB5 b3UgZm9yZ290IHRvIGFkZCwgYW5kIGEgdmVyeSBsaXR0bGUgbWlzdW5kZXJzdGFuZGluZyByZWdh cmRpbmcKLy8gICAgIGR1cGxpY2F0ZWQgb2JqZWN0cywgYnV0IGV4Y2VsZW50IGpvYiBzbyBmYXIu Ci8vIFJLOiBZb3Ugc2hvdWxkIHRha2UgYSBsb29rIGF0IGdyb3VwaW5nIHRlY2huaXF1ZXMgZnJv bSB0aGUgYm9vayBDb2RlIENvbXBsZXRlLCBpdCBpcyBhbiBleGNlbGVudAovLyAgICAgcmVzb3Vy Y2UuCnRlbXBsYXRlPCBjbGFzcyBDYXJyaWFibGVPYmplY3QgPgpjbGFzcyBDYXJyaWVyQ29udGFp bmVyCnsKcHVibGljOiAgIAoKICAgdHlwZWRlZiBib29zdDo6c2hhcmVkX3B0cjwgQ2FycmllckNv bnRhaW5lciA+IFJlZmVyZW5jZTsKICAgCiAgIHR5cGVkZWYgVXRpbGl0eTo6VHVwbGUyPCBVSW50 MzIsIFVJbnQzMiA+IFBvc2l0aW9uVHVwbGU7DQogICB0eXBlZGVmIFV0aWxpdHk6OlR1cGxlMzwg Q2FycmlhYmxlT2JqZWN0LCBVSW50MzIsIFVJbnQzMj4gUG9zaXRpb25lZE9iamVjdDsKICAgCiAg IHN0YXRpYyBjb25zdCBQb3NpdGlvblR1cGxlIGFueXdoZXJlOwogICBzdGF0aWMgY29uc3QgUG9z aXRpb25UdXBsZSBudWxsUG9zaXRpb247DQoKICAgdHlwZWRlZiB0eXBlbmFtZSBzdGQ6OnZlY3Rv cjxQb3NpdGlvbmVkT2JqZWN0Pjo6aXRlcmF0b3IgSXRlcmF0b3I7CgogICAvLyEgQGJyaWVmIFRo aXMgaXMgdGhlIGRlZmF1bHQgY29uc3RydWN0b3IuCiAgIC8vISBAcGFyYW0gbmFtZSBpcyB0aGUg c3ltYm9saWMgbmFtZSBvZiB0aGUgY29udGFpbmVyLgogICBDYXJyaWVyQ29udGFpbmVyICggVXRp bGl0eTo6U3RyaW5nIG5hbWUsIFVJbnQzMiBtYXhYU2l6ZSwgVUludDMyIG1heFlTaXplLCBSZWFs IG1heFdlaWdodCwgVUludDMyIG1heEl0ZW1zICk7CgogICAvLyEgSXQgYWRkcyBhbiBlbGVtZW50 IGluIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCiAgIC8vISBAcmVtYXJrIElmIHRoZSBwb3NpdGlv bnMgYXJlIGludmFsaWQgdGhlbiBpdCB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbi4KICAgdm9pZCBh ZGRFbGVtZW50ICggQ2FycmlhYmxlT2JqZWN0IGVsZW1lbnQsIEludDMyIHhQb3NpdGlvbiwgSW50 MzIgeVBvc2l0aW9uICk7CiAgIC8vISBJdCBhZGRzIGFuIGVsZW1lbnQgaW4gdGhlIHNwZWNpZmll ZCBwb3NpdGlvbi4KICAgLy8hIEByZW1hcmsgSWYgdGhlIHBvc2l0aW9ucyBhcmUgaW52YWxpZCB0 aGVuIGl0IHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uLgogICB2b2lkIGFkZEVsZW1lbnQgKCBDYXJy aWFibGVPYmplY3QgZWxlbWVudCwgUG9zaXRpb25UdXBsZSBwb3NpdGlvbiA9IG51bGxQb3NpdGlv biApOwoKICAgLy8hIEl0IHJlbW92ZXMgYW4gZWxlbWVudCBmcm9tIHRoZSBjb250YWluZXIuCgl2 b2lkIHJlbW92ZUVsZW1lbnQgKCBDYXJyaWFibGVPYmplY3QgZWxlbWVudCApOwoKICAgLy8gUks6 IER1cGxpY2F0ZXMgbm8gYWxsb3dlZCBoZXJlLi4uCiAgIC8vISBJdCByZW1vdmVzIHRoZSBGSVJT VCBlbGVtZW50IFtpbl0gT0NDVVBZSU5HIHBvc2l0aW9uICh4LHkpIGFuZCByZXR1cm5zIGl0Lgog ICBDYXJyaWFibGVPYmplY3QgcmVtb3ZlRWxlbWVudCAoIFVJbnQzMiB4UG9zaXRpb24sIFVJbnQz MiB5UG9zaXRpb24gKTsKCiAgIC8vISBAYnJpZWYgUmV0dXJucyB0cnVlIGlmIHRoZSBlbGVtZW50 IGNhbiBiZSBhZGRlZCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLg0KICAgLy8hIEBicmllZiBB c3N1bWVzIHBvc2l0aW9uYWwgY29udGFpbmVyLgogICBCb29sIGNhbkFkZEVsZW1lbnQgKCBDYXJy aWFibGVPYmplY3QgZWxlbWVudCwgSW50MzIgeFBvc2l0aW9uLCBJbnQzMiB5UG9zaXRpb24gKTsK ICAgLy8hIEBicmllZiBSZXR1cm5zIHRydWUgaWYgdGhlIGVsZW1lbnQgY2FuIGJlIGFkZGVkIGF0 IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCiAgIC8vISBAYnJpZWYgQXNzdW1lcyBwb3NpdGlvbmFs IGNvbnRhaW5lci4NCiAgIEJvb2wgY2FuQWRkRWxlbWVudCAoIENhcnJpYWJsZU9iamVjdCBlbGVt ZW50LCBQb3NpdGlvblR1cGxlIHBvc2l0aW9uID0gQ2FycmllckNvbnRhaW5lcjo6YW55d2hlcmUg KTsKCiAgIC8vISBSZXR1cm5zIHRoZSBjb250YWluZXIgbmFtZQogICBVdGlsaXR5OjpTdHJpbmcg Z2V0Q29udGFpbmVyTmFtZSAoKTsKCiAgIC8vISBSZXR1cm5zIHRoZSBjb250YWluZXIgaGFzaCB2 YWx1ZS4KICAgVUludDMyIGdldENvbnRhaW5lck5hbWVIYXNoICgpOwoKICAgLy8hIFJldHVybiB0 aGUgdG90YWwgd2VpZ2h0IG9mIGFsbCB0aGUgb2JqZWN0cyBzdG9yZWQgaW4gdGhlIGNvbnRhaW5l ci4KICAgUmVhbCBnZXRDdXJyZW50VG90YWxXZWlnaHQgKCk7CgogICAvLyEgQGJyaWVmIFJldHVy bnMgYW4gaXRlcmF0b3IgdG8gdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGNvbnRhaW5lci4KICAg SXRlcmF0b3IgZ2V0Q29udGFpbmVyQmVnaW4gKCk7CgogICAvLyEgQGJyaWVmIFJldHVybnMgYW4g aXRlcmF0b3Igc2hvd2luZyB0aGUgZW5kIG9mIHRoZSBjb250YWluZXIuCiAgIEl0ZXJhdG9yIGdl dENvbnRhaW5lckVuZCAoKTsKCnByb3RlY3RlZDoKCiAgIC8vISBUaGUgbmFtZSBvZiB0aGUgY29u dGFpbmVyCiAgIFV0aWxpdHk6OlN0cmluZyBuYW1lOwogICAvLyEgVGhpcyBpcyB0aGUgcHJlY2Fs Y3VsYXRlZCBjb250YWluZXIgbmFtZSBoYXNoIHZhbHVlLgogICBVSW50MzIgbmFtZUhhc2g7Cgog ICAvLyEgVGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgY29udGFpbmVyIGluIHRoZSBYIGF4aXMuCiAg IFVJbnQzMiBtYXhYU2l6ZTsKICAgLy8hIFRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIGNvbnRhaW5l ciBpbiB0aGUgWSBheGlzLgogICBVSW50MzIgbWF4WVNpemU7CiAgIC8vISBUaGUgbWF4aW11bSB3 ZWlnaHQgb2YgdGhlIGl0ZW1zIGluIHRoZSBjb250YWluZXIuCiAgIFJlYWwgbWF4V2VpZ2h0Owog ICAvLyEgVGhlIG1heGltdW0gaXRlbXMgdGhhdCBjYW4gYmUgcHV0IGluIHRoZSBjb250YWluZXIs IHdoZXRoZXIgdGhlcmUgaXMgc3BhY2UgYXZhaWxhYmxlIG9yIG5vdC4KICAgVUludDMyIG1heEl0 ZW1zOwoKICAgLy8hIFRoaXMgaXMgdGhlIGVsZW1lbnQgY29udGFpbmVyCiAgIHN0ZDo6dmVjdG9y PFBvc2l0aW9uZWRPYmplY3Q+IGNvbnRhaW5lckVsZW1lbnRzOwoKCWlubGluZSBCb29sIHBvaW50 SW5SZWN0YW5nbGUoVUludDMyIHBvaW50WCwgVUludDMyIHBvaW50WSwgVUludDMyIGNvcm5lclgs IFVJbnQzMiBjb3JuZXJZLCBVSW50MzIgd2lkdGgsIFVJbnQzMiBoZWlnaHQpDQoJeyByZXR1cm4g KChwb2ludFggPj0gY29ybmVyWCkgfHwgKHBvaW50WSA+PSBjb3JuZXJZKSB8fCAocG9pbnRYIDw9 IGNvcm5lclggKyB3aWR0aCkgfHwgKHBvaW50WSA8PSBjb3JuZXJZICsgaGVpZ2h0KSk7IH0NCg0K ICAgLy8hIEBicmllZiBSZXR1cm5zIHRydWUgaWYgdGhlIGVsZW1lbnQgY2FuIGJlIGFkZGVkIHcv byByZWdhcmQgdG8gb3RoZXIgaXRlbXMNCiAgIEJvb2wgY2FuV2Vha0FkZEVsZW1lbnQgKENhcnJp YWJsZU9iamVjdCBlbGVtZW50LCBJbnQzMiB4UG9zaXRpb24sIEludDMyIHlQb3NpdGlvbik7DQoN CiAgIC8vISBAYnJpZWYgVGhpcyBpcyBhIHVzZXIgc3BlY2lmaWNhYmxlIHdheSBvZiBmaW5kaW5n IGEgcGxhY2UgaW4gdGhlIGNvbnRhaW5lciBmb3IgYW4gc3BlY2lmaWVkIGVsZW1lbnQuCiAgIHZp cnR1YWwgUG9zaXRpb25UdXBsZSBmaW5kRWxlbWVudFBvc2l0aW9uICggQ2FycmlhYmxlT2JqZWN0 IGVsZW1lbnQgKTsKICAgCiAgIC8vISBAYnJpZWYgSWYgeW91IG5lZWQgdG8gc3BlY2lmeSBhIGRp ZmZlcmVudCBhY2NlcHRpb24gQmVoYXZpb3Igb3ZlcnJpZGUgdGhpcyBtZXRob2QuCiAgIC8vISBA cGFyIEZvciBleGFtcGxlIGlmIHlvdSBoYXZlIHRvIGFjY2VwdCBvbmx5IElXZWFwb25zIHRoZW4g eW91IG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGFjY2VwdCBvbmx5IGVsZW1lbnRzIGRlcml2ZWQg ZnJvbSBJV2VhcG9uIGludGVyZmFjZS4KICAgLy8hIEByZW1hcmsgVGhpcyBtZXRob2QgaXMgY2Fs bGVkIGFmdGVyIGEgcGxhY2Ugd2FzIGZvdW5kIChvciBwcm92aWRlZCkgZm9yIHRoZSBlbGVtZW50 LgogICAvLyEgQHJldHVybnMgVHJ1ZSB0byBhY2NlcHQgdGhlIGVsZW1lbnQsIGZhbHNlIHRvIHJl amVjdCBpdC4KICAgdmlydHVhbCBCb29sIHVzZXJEZWZpbmVkRWxlbWVudEFjY2VwdCAoIENhcnJp YWJsZU9iamVjdCBlbGVtZW50LCBQb3NpdGlvblR1cGxlIHBvc2l0aW9uICk7Cgp9OwoKLy8gU3Rh dGljIGNvbnN0YW50IGluaXRpYWxpemF0aW9uLgp0ZW1wbGF0ZTwgY2xhc3MgQ2FycmlhYmxlT2Jq ZWN0ID4KY29uc3QgdHlwZW5hbWUgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+OjpQ b3NpdGlvblR1cGxlIENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0Pjo6YW55d2hlcmUg PSBDYXJyaWVyQ29udGFpbmVyPENhcnJpYWJsZU9iamVjdD46OlBvc2l0aW9uVHVwbGUgKDAsMCk7 Cgp0ZW1wbGF0ZTwgY2xhc3MgQ2FycmlhYmxlT2JqZWN0ID4KY29uc3QgdHlwZW5hbWUgQ2Fycmll ckNvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+OjpQb3NpdGlvblR1cGxlIENhcnJpZXJDb250YWlu ZXI8Q2FycmlhYmxlT2JqZWN0Pjo6bnVsbFBvc2l0aW9uID0gQ2FycmllckNvbnRhaW5lcjxDYXJy aWFibGVPYmplY3Q+OjpQb3NpdGlvblR1cGxlICgtMSwtMSk7CgoKdGVtcGxhdGU8IGNsYXNzIENh cnJpYWJsZU9iamVjdCA+CkNhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0Pjo6Q2Fycmll ckNvbnRhaW5lciAoIFV0aWxpdHk6OlN0cmluZyBuYW1lLCBVSW50MzIgbWF4WFNpemUsIFVJbnQz MiBtYXhZU2l6ZSwgUmVhbCBtYXhXZWlnaHQsIFVJbnQzMiBtYXhJdGVtcyApCnsNCiAgIHRoaXMt Pm5hbWUgPSBuYW1lOw0KICAgdGhpcy0+bWF4WFNpemUgPSBtYXhYU2l6ZTsNCiAgIHRoaXMtPm1h eFlTaXplID0gbWF4WVNpemU7DQogICB0aGlzLT5tYXhXZWlnaHQgPSBtYXhXZWlnaHQ7DQogICB0 aGlzLT5tYXhJdGVtcyA9IG1heEl0ZW1zOw0KLy8gICB0aGlzLT5jb250YWluZXJFbGVtZW50cyA9 IFtdOw0KLy8gICBVSW50MzIgbmFtZUhhc2g7DQovLyAgIHZpcnR1YWwgUG9zaXRpb25UdXBsZSBm aW5kRWxlbWVudFBvc2l0aW9uICggQ2FycmlhYmxlT2JqZWN0IGVsZW1lbnQgKTsNCi8vICAgdmly dHVhbCBCb29sIHVzZXJEZWZpbmVkRWxlbWVudEFjY2VwdCAoIENhcnJpYWJsZU9iamVjdCBlbGVt ZW50LCBQb3NpdGlvblR1cGxlIHBvc2l0aW9uICk7DQp9Ow0KDQp0ZW1wbGF0ZTwgY2xhc3MgQ2Fy cmlhYmxlT2JqZWN0ID4NCkJvb2wgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+Ojpj YW5XZWFrQWRkRWxlbWVudCAoQ2FycmlhYmxlT2JqZWN0IGVsZW1lbnQsIEludDMyIHhQb3NpdGlv biwgSW50MzIgeVBvc2l0aW9uKQ0Kew0KICAgLy8gUks6IFRoaXMgaXMgYSBtZXRob2QgdGhhdCBu ZWVkcyB0byBhc3NlcnQgdXMgKHRob3NlIHdobyB1c2UgdGhlIGNsYXNzKSB0aGF0IHdlIGNhbiBh ZGQgYW4gZWxlbWVudCBhbnl3aGVyZS4NCiAgIC8vICAgICBUaGF0IGlzIHdoeSBpdCBkb2VzbnQg cHJlY29uZGl0aW9ucy4NCiAgIGlmICgoY29udGFpbmVyRWxlbWVudHMuc2l6ZSgpID09IG1heEl0 ZW1zKSB8fCAoZWxlbWVudC5nZXRPYmplY3RXZWlnaHQoKSArIHRoaXMtPmdldEN1cnJlbnRUb3Rh bFdlaWdodCgpID4gbWF4V2VpZ2h0KSkNCgl7DQoJCXJldHVybiBmYWxzZTsNCgl9DQoJaWYgKCh4 UG9zaXRpb24gPCAwKSB8fCAoeVBvc2l0aW9uIDwgMCkNCgkJfHwgKHhQb3NpdGlvbiArIGVsZW1l bnQuZ2V0T2JqZWN0WFNpemUoKSA+PSBtYXhYU2l6ZSkNCgkJfHwgKHlQb3NpdGlvbiArIGVsZW1l bnQuZ2V0T2JqZWN0WVNpemUoKSA+PSBtYXhZU2l6ZSkpDQoJew0KCQlyZXR1cm4gZmFsc2U7DQoJ fQ0KCXJldHVybiB0cnVlOw0KfQ0KDQoKdGVtcGxhdGU8IGNsYXNzIENhcnJpYWJsZU9iamVjdCA+ CnZvaWQgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+OjphZGRFbGVtZW50ICggQ2Fy cmlhYmxlT2JqZWN0IGVsZW1lbnQsIEludDMyIHhQb3NpdGlvbiwgSW50MzIgeVBvc2l0aW9uICkK ew0KICAgLy8gUks6IFlvdSBtaXNzZWQgYSBwcmVjb25kaXRpb24gaGVyZSAobm8gZHVwbGljYXRl cykNCglhZGRFbGVtZW50KGVsZW1lbnQsIFBvc2l0aW9uVHVwbGUoeFBvc2l0aW9uLCB5UG9zaXRp b24pKTsNCn07Cgp0ZW1wbGF0ZTwgY2xhc3MgQ2FycmlhYmxlT2JqZWN0ID4Kdm9pZCBDYXJyaWVy Q29udGFpbmVyPENhcnJpYWJsZU9iamVjdD46OmFkZEVsZW1lbnQgKCBDYXJyaWFibGVPYmplY3Qg ZWxlbWVudCwgdHlwZW5hbWUgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+OjpQb3Np dGlvblR1cGxlIHBvc2l0aW9uKQp7CQ0KCWlmIChwb3NpdGlvbiA9PSBudWxsUG9zaXRpb24pDQoJ ew0KICAgICAgLy8gUks6IEFsd2F5cyB0aGluayB0aGUgZm9sbG93aW5nLCBwcmVjb25kaXRpb24g Y2FuIGJlIHJlbW92ZWQgdmlhIGFuIHNjcmlwdA0KICAgICAgLy8gICAgIGZvciBoaWdoIHBlcmZv cm1hbmNlIHRoYXRzIHdoeSB3ZSBmbGFnIHRoZW0uIHNvIHRoZXkgaGF2ZSB0byBiZSBzaW1wbGUN CiAgICAgIC8vICAgICBzdGF0ZW1lbnRzLiBIZXJlIHRoZSBwcmVjb25kaXRpb24gaXMgdGhhdCB3 ZSBjYW4gYWRkIGVsZW1lbnRzICh3ZSBoYXZlDQogICAgICAvLyAgICAgYWxyZWFkeSB0ZXN0ZWQg dGhhdCBiZWZvcmUpLg0KDQogICAgICAvLyAjUFJFQ09ORElUSU9OQkVHSU4NCiAgICAgIGlmIChj YW5XZWFrQWRkRWxlbWVudChlbGVtZW50LCAwLCAwKSkNCiAgICAgICAgIHRocm93IG5ldyBYRUlu dmFsaWRQYXJhbWV0ZXIgKCk7DQogICAgICAvLyAjUFJFQ09ORElUSU9ORU5EDQoJCQ0KICAgICAg Y29udGFpbmVyRWxlbWVudHMucHVzaF9iYWNrKFBvc2l0aW9uZWRPYmplY3QoZWxlbWVudCwgMCwg MCkpOw0KCX0NCgllbHNlIGlmICggY2FuV2Vha0FkZEVsZW1lbnQoZWxlbWVudCwgcG9zaXRpb24u Z2V0Rmlyc3QoKSwgcG9zaXRpb24uZ2V0U2Vjb25kKCkpICkNCgl7DQoJCWlmIChwb3NpdGlvbiA9 PSBhbnl3aGVyZSkNCgkJew0KCQkJUG9zaXRpb25UdXBsZSBvcGVuUG9zaXRpb24gPSBmaW5kRWxl bWVudFBvc2l0aW9uKGVsZW1lbnQpOw0KICAgICAgICAgDQogICAgICAgICAvLyBSSzogVGhlIGV4 Y2VwdGlvbiBpcyBhIGNsYXNzaWMgdXNlIG9mIGFuIGludmFsaWQgcGFyYW1ldGVyLCB0aGUgcGFy YW1ldGVyIChlbGVtZW50LHBvc2l0aW9uKQ0KICAgICAgICAgLy8gICAgIGRvIG5vdCBmdWxmaWxs IHRoZSByZXF1aXJlbWVudHMgb2YgdGhlIG1ldGhvZC4NCg0KICAgICAgICAgLy8gI1BSRUNPTkRJ VElPTkJFR0lODQogICAgICAgICBpZiAoIG9wZW5Qb3NpdGlvbiA9PSBudWxsUG9zaXRpb24gKQ0K ICAgICAgICAgICAgdGhyb3cgbmV3IFhFSW52YWxpZFBhcmFtZXRlciAoKTsNCiAgICAgICAgIC8v ICNQUkVDT05ESVRJT05FTkQNCg0KCQkJYWRkRWxlbWVudChlbGVtZW50LCBvcGVuUG9zaXRpb24u Z2V0Rmlyc3QoKSwgb3BlblBvc2l0aW9uLmdldFNlY29uZCgpKTsNCg0KCQl9DQoJCWVsc2UgaWYg KCB1c2VyRGVmaW5lZEVsZW1lbnRBY2NlcHQoZWxlbWVudCwgcG9zaXRpb24pICkNCiAgICAgIHsN CiAgICAgICAgIC8vIFJLOiBZb3UgbWlzc2VkIHRoZSBwcmVjb25kaXRpb24gaGVyZSAobm8gZHVw bGljYXRlcykNCgkJCWNvbnRhaW5lckVsZW1lbnRzLnB1c2hfYmFjayhQb3NpdGlvbmVkT2JqZWN0 KGVsZW1lbnQsIHBvc2l0aW9uLmdldEZpcnN0KCksIHBvc2l0aW9uLmdldFNlY29uZCgpKSk7DQog ICAgICB9Ow0KCX0NCn07Cgp0ZW1wbGF0ZTwgY2xhc3MgQ2FycmlhYmxlT2JqZWN0ID4Kdm9pZCBD YXJyaWVyQ29udGFpbmVyPENhcnJpYWJsZU9iamVjdD46OnJlbW92ZUVsZW1lbnQgKCBDYXJyaWFi bGVPYmplY3QgZWxlbWVudCApCnsNCglVSW50MzIgY29udGFpbmVyU2l6ZSA9IGNvbnRhaW5lckVs ZW1lbnRzLnNpemUoKTsNCglmb3IgKCBVSW50MzIgaSA9IDA7IGkgIT0gY29udGFpbmVyU2l6ZTsg aSsrICkNCgl7DQoJCWlmIChjb250YWluZXJFbGVtZW50c1tpXS5nZXRGaXJzdCgpID09IGVsZW1l bnQpDQoJCXsNCgkJCWNvbnRhaW5lckVsZW1lbnRzW2ldID0gY29udGFpbmVyRWxlbWVudHNbY29u dGFpbmVyU2l6ZSAtIDFdOw0KCQkJY29udGFpbmVyRWxlbWVudHMucG9wX2JhY2soKTsgICAgICAg ICANCiAgICAgICAgIC8vIFJLOiB3ZSBoYXZlIGRlbGV0ZWQgKHRha2VuIG91dCB0aGUgZWxlbWVu dCBmcm9tIHRoZSBjb250YWluZXIpIG5vdyB3ZSByZXR1cm4uDQogICAgICAgICByZXR1cm47DQog ICAgICAgICAvLyBSSzogVGhpcyBpcyBhIGxvZ2ljIG1pc3Rha2UgeW91IGtlZXAgbG9va2luZyBm b3IgZHVwbGljYXRlcyAod2hhdCBieSBkZXNpZ24gaXMgbm90IGFsbG93ZWQpLi4uDQogICAgICAg ICAvLyAgICAgU2VlIG15IGNvcnJlY3Rpb25zIG9uIHRoZSB0b3AuDQogICAgICAgICAvLwkJCWkg PSBjb250YWluZXJTaXplIC0gMTsNCgkJfQ0KCX0NCn07Cgp0ZW1wbGF0ZTwgY2xhc3MgQ2Fycmlh YmxlT2JqZWN0ID4KQ2FycmlhYmxlT2JqZWN0IENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2Jq ZWN0Pjo6cmVtb3ZlRWxlbWVudCAoIFVJbnQzMiB4UG9zaXRpb24sIFVJbnQzMiB5UG9zaXRpb24g KQp7DQoJVUludDMyIGNvbnRhaW5lclNpemUgPSBjb250YWluZXJFbGVtZW50cy5zaXplKCk7DQoJ Zm9yICggVUludDMyIGkgPSAwOyBpIDwgY29udGFpbmVyU2l6ZTsgaSsrICkNCgl7DQoJCVBvc2l0 aW9uZWRPYmplY3QgY3VycmVudEVsZW1lbnQgPSBjb250YWluZXJFbGVtZW50c1tpXTsNCg0KICAg ICAgaWYgKCBwb2ludEluUmVjdGFuZ2xlKCAgeFBvc2l0aW9uLA0KCQkJCQkJCQl5UG9zaXRpb24s DQoJCQkJCQkJCWN1cnJlbnRFbGVtZW50LmdldFNlY29uZCgpLA0KCQkJCQkJCQljdXJyZW50RWxl bWVudC5nZXRUaGlyZCgpLA0KCQkJCQkJCQljdXJyZW50RWxlbWVudC5nZXRGaXJzdCgpLmdldE9i amVjdFhTaXplKCksDQoJCQkJCQkJCWN1cnJlbnRFbGVtZW50LmdldEZpcnN0KCkuZ2V0T2JqZWN0 WVNpemUoKSkgKQ0KCQl7DQoJCQljb250YWluZXJFbGVtZW50c1tpXSA9IGNvbnRhaW5lckVsZW1l bnRzW2NvbnRhaW5lclNpemUtMV07DQoJCQljb250YWluZXJFbGVtZW50cy5wb3BfYmFjaygpOw0K CQkNCiAgICAgICAgIHJldHVybiBjdXJyZW50RWxlbWVudC5nZXRGaXJzdCgpOw0KCQl9Ow0KCX07 DQoNCiAgIC8vIFJLOiBBcyB5b3Ugc2VlIHdlIGNhbm5vdCBmbGFnIHRoaXMgb25lIGZvciByZW1v dmFsLCBjYXVzZSBpZiB3ZSBkbyBpdCB3ZSBpbnRyb2R1Y2UNCiAgIC8vICAgICBhIHByb2JsZW0g d2hhdCBkbyB3ZSByZXR1cm4/Pz8/IChJcyBpdCBwb2ludGVyPywgaXMgaXQgb2JqZWN0Pywgd2hh dCBpcyBhIG51bGwgb2JqZWN0Pz8/ICkNCiAgIA0KICAgLy8gSWYgdGhpcyBwb2ludCBpcyByZWFj aGVkLCB0aGUgcG9zaXRpb24gaXMgdW5vY2N1cGllZA0KCXRocm93IG5ldyBYRUludmFsaWRQYXJh bWV0ZXIoKTsNCg0KICAgLy8gUks6IEJpZyBwcm9ibGVtLCB5b3UgYXJlIGFzc3VtaW5nIHdlIHdp bGwgY29udGFpbiBwb2ludGVycyAod2hhdCBtYXkgYmUgd3JvbmcpLi4uDQogICAvLyAgICAgQmUg ZXh0cmEgY2FyZWZ1bCB3aXRoIHRlbXBsYXRlcy4gKEluIHNob3J0IHRoaXMgc3RhdGVtZW50IGNh bm5vdCBiZSBoZXJlKQ0KICAgLy8gcmV0dXJuIE5VTEw7DQp9OwoKdGVtcGxhdGU8IGNsYXNzIENh cnJpYWJsZU9iamVjdCA+ClV0aWxpdHk6OkJvb2wgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFibGVP YmplY3Q+OjpjYW5BZGRFbGVtZW50ICggQ2FycmlhYmxlT2JqZWN0IGVsZW1lbnQsIEludDMyIHhQ b3NpdGlvbiwgSW50MzIgeVBvc2l0aW9uICkKew0KCWlmICghIGNhbldlYWtBZGRFbGVtZW50KGVs ZW1lbnQsIHhQb3NpdGlvbiwgeVBvc2l0aW9uKSkgDQogICAgICByZXR1cm4gZmFsc2U7DQoJDQog ICByZXR1cm4gdXNlckRlZmluZWRFbGVtZW50QWNjZXB0KGVsZW1lbnQsIFBvc2l0aW9uVHVwbGUo eFBvc2l0aW9uLCB5UG9zaXRpb24pKTsNCn07Cgp0ZW1wbGF0ZTwgY2xhc3MgQ2FycmlhYmxlT2Jq ZWN0ID4KVXRpbGl0eTo6Qm9vbCBDYXJyaWVyQ29udGFpbmVyPENhcnJpYWJsZU9iamVjdD46OmNh bkFkZEVsZW1lbnQgKCBDYXJyaWFibGVPYmplY3QgZWxlbWVudCwgdHlwZW5hbWUgQ2FycmllckNv bnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+OjpQb3NpdGlvblR1cGxlIHBvc2l0aW9uICkKew0KCWlm IChwb3NpdGlvbiA9PSBhbnl3aGVyZSkgDQogICAgICAvLyBSSzogVXNlICE9IGluc3RlYWQsIHRo ZSAhIGF0IHRoZSBzdGFydCBjYW4gYmUgbmVnbGVjdGVkIHdoZW4gcmVhZGluZyBiZWNhdXNlDQog ICAgICAvLyAgICAgdGhlIHN0YXRlbWVudCBpcyBsb25nLiBJIGtub3cgdGhlcmUgYXJlIGNhc2Vz IHRoYXQgaXQgaXMgaW1wb3NpYmxlIHRvIGRvIHNvDQogICAgICAvLyAgICAgYnV0IGluIHRoaXMg Y2FzZSB5b3UgZ2FpbiByZWFkYWJpbGl0eSB3aXRob3V0IG1ha2luZyB0aGluZ3MgY29tcGxleC4N CiAgICAgIHJldHVybiAoISh0aGlzLT5maW5kRWxlbWVudFBvc2l0aW9uKGVsZW1lbnQpID09IG51 bGxQb3NpdGlvbikpOw0KCWVsc2UgDQogICAgICByZXR1cm4gY2FuQWRkRWxlbWVudCggZWxlbWVu dCwgcG9zaXRpb24uZ2V0Rmlyc3QoKSwgcG9zaXRpb24uZ2V0U2Vjb25kKCkgKTsNCn07Cgp0ZW1w bGF0ZTwgY2xhc3MgQ2FycmlhYmxlT2JqZWN0ID4KVXRpbGl0eTo6U3RyaW5nIENhcnJpZXJDb250 YWluZXI8Q2FycmlhYmxlT2JqZWN0Pjo6Z2V0Q29udGFpbmVyTmFtZSAoKQp7DQoJcmV0dXJuIG5h bWU7DQp9OwoKdGVtcGxhdGU8IGNsYXNzIENhcnJpYWJsZU9iamVjdCA+ClV0aWxpdHk6OlVJbnQz MiBDYXJyaWVyQ29udGFpbmVyPENhcnJpYWJsZU9iamVjdD46OmdldENvbnRhaW5lck5hbWVIYXNo ICgpCnsNCglyZXR1cm4gbmFtZUhhc2g7DQp9OwoKdGVtcGxhdGU8IGNsYXNzIENhcnJpYWJsZU9i amVjdCA+ClV0aWxpdHk6OlJlYWwgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+Ojpn ZXRDdXJyZW50VG90YWxXZWlnaHQgKCkKew0KCVJlYWwgcmV0dXJuVmFsdWUgPSAwOw0KDQogICBV SW50MzIgY29udGFpbmVyU2l6ZSA9IGNvbnRhaW5lckVsZW1lbnRzLnNpemUoKTsNCiAgIGZvciAo VUludDMyIGkgPSAwOyBpIDwgY29udGFpbmVyU2l6ZTsgaSsrKQ0KCQlyZXR1cm5WYWx1ZSArPSBj b250YWluZXJFbGVtZW50c1tpXS5nZXRGaXJzdCgpLmdldE9iamVjdFdlaWdodCgpOw0KDQogICBy ZXR1cm4gcmV0dXJuVmFsdWU7DQp9OwoKdGVtcGxhdGU8IGNsYXNzIENhcnJpYWJsZU9iamVjdCA+ CnR5cGVuYW1lIENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0Pjo6SXRlcmF0b3IgQ2Fy cmllckNvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+OjpnZXRDb250YWluZXJCZWdpbiAoKQp7DQoJ cmV0dXJuIGNvbnRhaW5lckVsZW1lbnRzLmJlZ2luKCk7DQp9OwoKdGVtcGxhdGU8IGNsYXNzIENh cnJpYWJsZU9iamVjdCA+CnR5cGVuYW1lIENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0 Pjo6SXRlcmF0b3IgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+OjpnZXRDb250YWlu ZXJFbmQgKCkKew0KCXJldHVybiBjb250YWluZXJFbGVtZW50cy5lbmQoKTsNCn07Cgp0ZW1wbGF0 ZTwgY2xhc3MgQ2FycmlhYmxlT2JqZWN0ID4KdHlwZW5hbWUgQ2FycmllckNvbnRhaW5lcjxDYXJy aWFibGVPYmplY3Q+OjpQb3NpdGlvblR1cGxlIENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2Jq ZWN0Pjo6ZmluZEVsZW1lbnRQb3NpdGlvbiAoIENhcnJpYWJsZU9iamVjdCBlbGVtZW50ICkKew0K CWZvciAoVUludDMyIHggPSAwOyB4ICE9IG1heFhTaXplOyB4KyspDQogICB7DQogICAJZm9yIChV SW50MzIgeSA9IDA7IHkgIT0gbWF4WVNpemU7IHkrKykNCiAgICAgIHsNCiAgICAgICAgIGlmIChj YW5BZGRFbGVtZW50KGVsZW1lbnQsIHgsIHkpKQ0KCQkgICAJcmV0dXJuIFBvc2l0aW9uVHVwbGUo eCwgeSk7DQogICAgICB9DQogICB9Ow0KDQoJcmV0dXJuIG51bGxQb3NpdGlvbjsNCn07DQoNCg0K dGVtcGxhdGU8IGNsYXNzIENhcnJpYWJsZU9iamVjdCA+ClV0aWxpdHk6OkJvb2wgQ2FycmllckNv bnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+Ojp1c2VyRGVmaW5lZEVsZW1lbnRBY2NlcHQgKCBDYXJy aWFibGVPYmplY3QgZWxlbWVudCwgdHlwZW5hbWUgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFibGVP YmplY3Q+OjpQb3NpdGlvblR1cGxlIHBvc2l0aW9uICkKew0KCXJldHVybiB0cnVlOw0KfTsKCgoK Ci8vISAgIEBicmllZiBUaGlzIGludGVyZmFjZSBpcyBpbmhlcml0ZWQgYnkgYW55IG9iamVjdCB0 aGF0IGNhbiBjYXJyeSBvciBzdG9yZSBvYmplY3RzIGxpa2UgR2VuZXJhbCBTdG9yZXMsIEFpcmNy YWZ0cywgU29sZGllcnMsIGV0Yy4KLy8hICAgQHBhciBUaGUgY2FycmllciBpbnRlcmZhY2Ugd2ls bCBkZWZpbmUgYWxsIHRoZSBuZWNlc2FyeSBtZXRob2RzIHRvIG1hbmlwdWxhdGUgCi8vISAgICAg ICAgdGhlIGNvbnRhaW5lcnMgdGhhdCBldmVyeSBjYXJyaWVyIG9iamVjdCB3aWxsIGhhdmUuIAov LyEgICBAcGFyIEF0IHRoZSBjb25zdHJ1Y3Rpb24gb2YgdGhlIG9iamVjdCB0aGUgaW50ZXJuYWxD YXJyaWVySW5pdCB2aXJ0dWFsIG1ldGhvZAovLyEgICAgICAgIHdpbGwgYmUgY2FsbGVkIGFuZCB0 aGUgY2FycmllciB3aWxsIGluaXRpYWxpemUgaXRzZWxmLCBiYXNlZCBvbiB0aGUgY29udGFpbmVy cwovLyEgICAgICAgIHRoYXQgaXQgaXMgYWxsb3dlZCB0byB1c2UuCi8vISAgIEBub3RlIEl0IHdv dWxkIGJlIGludGVyZXN0aW5nIHRvIGJlIGFibGUgdG8gaW5pdGlhbGl6ZSB0aGlzIHZhbHVlcyBm cm9tIGFuIHNjcmlwdCBvciB2aWEgCi8vISAgICAgICAgYW4gc3BlY2lhbCBmaWxlLCBiZWNhdXNl IG9mIHRoYXQgYW55IGNhcnJpZXIgb2JqZWN0IHdpbGwgaGF2ZSBhIGNsYXNzIG5hbWUuIEZvciBp bnN0YW5jZQovLyEgICAgICAgIGEgc29sZGllciBmaWxlIHdpbGwgYmUgYXNzb2NpYXRlZCB0byBp dHMgY29uZmlndXJhdGlvbiB2aWEgYSAiU29sZGllciIgbmFtZS4gVGhlIG5hbWUgb2YgdGhlCi8v ISAgICAgICAgY2xhc3MgY2FuIGJlIHJldHJpZXZlZCB2aWEgaXRzIEMrKyBSVFRJIGluZm9ybWF0 aW9uLgovLyEgICBAcmVtYXJrIEV2ZXJ5IGNhcnJpYWJsZSBvYmplY3QgbXVzdCBoYXZlIG9ubHkg b25lIElDYXJyaWVyIGFzc29jaWF0ZWQgYXMgYSBwYXJlbnQuCnRlbXBsYXRlPCBjbGFzcyBDYXJy aWFibGVPYmplY3QgPgpjbGFzcyBJQ2Fycmllcgp7CnB1YmxpYzoKCiAgIHR5cGVkZWYgdHlwZW5h bWUgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+OjpSZWZlcmVuY2UgQ29udGFpbmVy UmVmZXJlbmNlOwoKICAgQ29udGFpbmVyUmVmZXJlbmNlIGdldENhcnJpZXJDb250YWluZXJCeU5h bWUgKCBVdGlsaXR5OjpTdHJpbmcgbmFtZSApOwoKcHJvdGVjdGVkOgoKICAgLy8hIEBicmllZiBU aGlzIGlzIHRoZSBpbml0aWFsaXphdGlvbiBtZXRob2QgdGhhdCB3ZSB3aWxsIGhhdmUgdG8gb3Zl cnJpZGUgdG8gbW9kaWZ5IHRoZQogICAvLyEgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcy4KICAgdmly dHVhbCB2b2lkIGluaXRpYWxpemVDYXJyaWVyICgpOwoKICAgc3RkOjptYXA8IFV0aWxpdHk6OlN0 cmluZywgQ29udGFpbmVyUmVmZXJlbmNlID4gY2FycmllckNvbnRhaW5lcnM7Cgp9OwoKCnRlbXBs YXRlPCBjbGFzcyBDYXJyaWFibGVPYmplY3QgPgp0eXBlbmFtZSBJQ2FycmllcjxDYXJyaWFibGVP YmplY3Q+OjpDb250YWluZXJSZWZlcmVuY2UgSUNhcnJpZXI8Q2FycmlhYmxlT2JqZWN0Pjo6Z2V0 Q2FycmllckNvbnRhaW5lckJ5TmFtZSAoIFV0aWxpdHk6OlN0cmluZyBuYW1lICkKewogICBDb250 YWluZXJSZWZlcmVuY2UgYXV4ICggY2FycmllckNvbnRhaW5lcnMuZmluZCAoIG5hbWUgKSApOwoK ICAgLy8gI1BSRUNPTkRJVElPTkJFR0lOCiAgIGlmICggYXV4ID09IE5VTEwgKQogICAgICB0aHJv dyBuZXcgWEVJbnZhbGlkUGFyYW1ldGVyICgpOwogICAvLyAjUFJFQ09ORElUSU9ORU5ECgogICBy ZXR1cm4gYXV4OwoKfTsgCgp0ZW1wbGF0ZTwgY2xhc3MgQ2FycmlhYmxlT2JqZWN0ID4Kdm9pZCBJ Q2FycmllcjxDYXJyaWFibGVPYmplY3Q+Ojppbml0aWFsaXplQ2FycmllciAoKQp7fTsKCgoKCX07 IC8vIEJlaGF2aW9yCn07IC8vIFhlbm9jaWRlCgoKI2VuZGlmCg== |
|
From: Tamas T. <te...@cs...> - 2004-05-20 08:10:44
|
Remarks: - in the attached version addElement(what, where) accepts 'nullPosition' by default to ignore positional restraints and 'anywhere' to find a position in accordance with positional restraints; I hope something like this is what you meant by "not positional interface" - IIRC 'for' loops are discouraged in the programming guideline doc, so I'd like to have a clarification on how much are we going for "readability" vs. "compactness" centurion |
|
From: Red K. <red...@pr...> - 2004-05-19 12:30:37
|
I2lmbmRlZiB4ZW5vY2lkZV9fZGF0YWludGVyZmFjZXNfX2JlaGF2aW9yX19pY2Fycmllcl9oDQoj ZGVmaW5lIHhlbm9jaWRlX19kYXRhaW50ZXJmYWNlc19fYmVoYXZpb3JfX2ljYXJyaWVyX2gNCg0K I2luY2x1ZGUgPHV0aWxpdHkvY29tbW9uLmg+DQojaW5jbHVkZSAiLi4vLi4vY29tbW9uL3hlbm9y ZXF1aXNpdGVzLmgiDQ0KI2luY2x1ZGUgPG1hcD4NDQojaW5jbHVkZSA8Ym9vc3Qvc2hhcmVkX3B0 ci5ocHA+DQ0KI2luY2x1ZGUgIi4uLy4uL2NvbW1vbi9leGNlcHRpb25zLmgiDQoNCnVzaW5nIG5h bWVzcGFjZSBVdGlsaXR5Ow0KDQpuYW1lc3BhY2UgWGVub2NpZGUNCnsNCiAgICBuYW1lc3BhY2Ug QmVoYXZpb3INCiAgICB7DQ0KLy8gUks6IEkgZG9udCBrbm93IGlmIHlvdXIgZGV2ZWxvcG1lbnQg ZW52aXJvbm1lbnQgb3IgeW91ciBtYWlsIGNsaWVudCBrZWVwcyB0cmFzaGluZyB0aGUgc291cmNl cw0KLy8gICAgIHRyeSB0byB6aXAgdGhlbSB0aGUgbmV4dCB0aW1lLg0KDQoNCi8vIFJLOiBOZXZl ciBwdXQgZnVuY3Rpb25zIGluIHRoZSBnZW5lcmFsIG5hbWVzcGFjZSB3aXRob3V0IGEgY2xhc3Mu Li4gVGhhdCBpcyBlaXRoZXIgYW4gaW50ZXJuYWwgbWV0aG9kLCBvciBmaW5kIHNvbWV3aGVyZSBp dA0KLy8gICAgIGJlbG9uZ3MgdG8uLi4gc29tZSBzb3J0IG9mIEdlb21ldHJ5IHV0aWxpdHkgY2xh c3MgKEkgZGlzY291cmFnZSB0aGlzIGZvciBub3cpLiBJZiB3ZSBuZWVkIGl0LCB3ZSBjYW4gcmVm YWN0b3IgaXQgaW4gYSBjb3VwbGUgb2YgbWludXRlcy4NCkJvb2wgcG9pbnRJblJlY3RhbmdsZShV SW50MzIgcG9pbnRYLCBVSW50MzIgcG9pbnRZLCBVSW50MzIgY29ybmVyWCwgVUludDMyIGNvcm5l clksIFVJbnQzMiB3aWR0aCwgVUludDMyIGhlaWdodCkNCnsNCglyZXR1cm4gKChwb2ludFggPj0g Y29ybmVyWCkgfHwgKHBvaW50WSA+PSBjb3JuZXJZKSB8fCAocG9pbnRYIDw9IGNvcm5lclggKyB3 aWR0aCkgfHwgKHBvaW50WSA8PSBjb3JuZXJZICsgaGVpZ2h0KSk7DQp9DQ0KDQp0ZW1wbGF0ZTwg Y2xhc3MgQ2FycmlhYmxlT2JqZWN0ID4NCmNsYXNzIENhcnJpZXJDb250YWluZXINCnsNCnB1Ymxp YzogICANCg0KICAgdHlwZWRlZiBib29zdDo6c2hhcmVkX3B0cjwgQ2FycmllckNvbnRhaW5lciA+ IFJlZmVyZW5jZTsNCiAgIA0KICAgdHlwZWRlZiBVdGlsaXR5OjpUdXBsZTI8IFVJbnQzMiwgVUlu dDMyID4gUG9zaXRpb25UdXBsZTsNDQogICB0eXBlZGVmIFV0aWxpdHk6OlR1cGxlMzwgQ2Fycmlh YmxlT2JqZWN0LCBVSW50MzIsIFVJbnQzMj4gUG9zaXRpb25lZE9iamVjdDsNCiAgIA0KICAgc3Rh dGljIGNvbnN0IFBvc2l0aW9uVHVwbGUgYW55d2hlcmU7DQogICBzdGF0aWMgY29uc3QgUG9zaXRp b25UdXBsZSBudWxsUG9zaXRpb247DQoNCiAgIHR5cGVkZWYgdHlwZW5hbWUgc3RkOjp2ZWN0b3I8 UG9zaXRpb25lZE9iamVjdD46Oml0ZXJhdG9yIEl0ZXJhdG9yOw0KDQogICAvLyEgQGJyaWVmIFRo aXMgaXMgdGhlIGRlZmF1bHQgY29uc3RydWN0b3IuDQogICAvLyEgQHBhcmFtIG5hbWUgaXMgdGhl IHN5bWJvbGljIG5hbWUgb2YgdGhlIGNvbnRhaW5lci4NCiAgIENhcnJpZXJDb250YWluZXIgKCBV dGlsaXR5OjpTdHJpbmcgbmFtZSwgVUludDMyIG1heFhTaXplLCBVSW50MzIgbWF4WVNpemUsIFJl YWwgbWF4V2VpZ2h0LCBVSW50MzIgbWF4SXRlbXMgKTsNCg0KICAgLy8hIEl0IGFkZHMgYW4gZWxl bWVudCBpbiB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLg0KICAgLy8hIEByZW1hcmsgSWYgdGhlIHBv c2l0aW9ucyBhcmUgaW52YWxpZCB0aGVuIGl0IHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uLg0KICAg dm9pZCBhZGRFbGVtZW50ICggQ2FycmlhYmxlT2JqZWN0IGVsZW1lbnQsIEludDMyIHhQb3NpdGlv biwgSW50MzIgeVBvc2l0aW9uICk7DQogICAvLyEgSXQgYWRkcyBhbiBlbGVtZW50IGluIHRoZSBz cGVjaWZpZWQgcG9zaXRpb24uDQogICAvLyEgQHJlbWFyayBJZiB0aGUgcG9zaXRpb25zIGFyZSBp bnZhbGlkIHRoZW4gaXQgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24uDQogICB2b2lkIGFkZEVsZW1l bnQgKCBDYXJyaWFibGVPYmplY3QgZWxlbWVudCwgUG9zaXRpb25UdXBsZSBwb3NpdGlvbiA9IGFu eXdoZXJlICk7DQoNCiAgIC8vISBJdCByZW1vdmVzIGFuIGVsZW1lbnQgZnJvbSB0aGUgY29udGFp bmVyLg0KCXZvaWQgcmVtb3ZlRWxlbWVudCAoIENhcnJpYWJsZU9iamVjdCBlbGVtZW50ICk7DQog ICAvLyEgSXQgcmVtb3ZlcyB0aGUgRklSU1QgZWxlbWVudCBbaW5dIE9DQ1VQWUlORyBwb3NpdGlv biAoeCx5KSBhbmQgcmV0dXJucyBpdC4NCiAgIENhcnJpYWJsZU9iamVjdCByZW1vdmVFbGVtZW50 ICggVUludDMyIHhQb3NpdGlvbiwgVUludDMyIHlQb3NpdGlvbiApOw0KDQogICAvLyEgQGJyaWVm IFJldHVybnMgdHJ1ZSBpZiB0aGUgZWxlbWVudCBjYW4gYmUgYWRkZWQgYXQgdGhlIHNwZWNpZmll ZCBwb3NpdGlvbi4NDQogICAvLyEgQGJyaWVmIEFzc3VtZXMgcG9zaXRpb25hbCBjb250YWluZXIu DQogICBCb29sIGNhbkFkZEVsZW1lbnQgKCBDYXJyaWFibGVPYmplY3QgZWxlbWVudCwgSW50MzIg eFBvc2l0aW9uLCBJbnQzMiB5UG9zaXRpb24gKTsNCiAgIC8vISBAYnJpZWYgUmV0dXJucyB0cnVl IGlmIHRoZSBlbGVtZW50IGNhbiBiZSBhZGRlZCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLg0K ICAgLy8hIEBicmllZiBBc3N1bWVzIHBvc2l0aW9uYWwgY29udGFpbmVyLg0NCiAgIEJvb2wgY2Fu QWRkRWxlbWVudCAoIENhcnJpYWJsZU9iamVjdCBlbGVtZW50LCBQb3NpdGlvblR1cGxlIHBvc2l0 aW9uID0gQ2FycmllckNvbnRhaW5lcjo6YW55d2hlcmUgKTsNCg0KICAgLy8hIEBicmllZiBJdCBj aGVja3Mgd2hldGhlciB0aGVyZSBpcyBhIHBvc2l0aW9uIHRoYXQgaW4gd2hpY2ggaXQgY2FuIHB1 dCB0aGUgZWxlbWVudC4NCiAgIC8vISBAYnJpZWYgQXNzdW1lcyBwb3NpdGlvbmFsIGNvbnRhaW5l ci4NDQogICANCiAgIC8vIFJLOiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgYWNjb21wbGlzaGVkIGJ5 IHRoZSBtb3N0IGNvbW1vbiBhZGRFbGVtZW50ICggZWxlbWVudCApIGNhbGwsIHRoYXQgaXMgd2h5 IHRoZSBhbnl3aGVyZSBjb25zdGFudCBpcyB0aGVyZSBmb3INCiAgIC8vICAgICB0byBoYXZlIGEg dW5pZmllZCBzdHlsZS4gVGhpcyBtZXRob2QgaXMgZWl0aGVyIHN1cGVyZmx1b3VzIChpdCBpcyBy ZXBsaWNhdGluZyBhbHJlYWR5IGF2YWlsYWJsZSBmdW5jdGlvbmFsaXR5KSBvciBpdCBpcyBtaXN0 YWtlbmx5DQogICAvLyAgICAgcGxhY2VkIGFzIHB1YmxpYywgYW5kIHNob3VsZCBiZSB1c2VkIGFz IGEgcHJpdmF0ZSB1dGlsaXR5IG1ldGhvZC4NCg0KICAgLy8hIEByZXR1cm5zIG51bGxQb3NpdGlv biBpZiBpdCBjb3VsZG50IGZpbmQgYSBwb3NpdGlvbiB0byBwdXQgdGhlIGVsZW1lbnRzIGluIHRo ZSBjb250YWluZXIuDQogICAvLyEgQHJldHVybnMgQSBQb3NpdGlvblR1cGxlIHdpdGggdGhlIHRv cC1sZWZ0IHBvc2l0aW9uIHdoZXJlIGl0IGNhbiBwdXQgdGhlIGVsZW1lbnQsIHlvdSBoYXZlIHRv IHBhc3MgdGhhdCBwYXJhbWV0ZXIgdG8gYW4gYWRkRWxlbWVudCBjYWxsLg0KICAgUG9zaXRpb25U dXBsZSB3aGVyZUNhbkFkZEVsZW1lbnQgKCBDYXJyaWFibGVPYmplY3QgZWxlbWVudCApOw0KDQog ICAvLyEgUmV0dXJucyB0aGUgY29udGFpbmVyIG5hbWUNCiAgIFV0aWxpdHk6OlN0cmluZyBnZXRD b250YWluZXJOYW1lICgpOw0KDQogICAvLyEgUmV0dXJucyB0aGUgY29udGFpbmVyIGhhc2ggdmFs dWUuDQogICBVSW50MzIgZ2V0Q29udGFpbmVyTmFtZUhhc2ggKCk7DQoNCiAgIC8vISBSZXR1cm4g dGhlIHRvdGFsIHdlaWdodCBvZiBhbGwgdGhlIG9iamVjdHMgc3RvcmVkIGluIHRoZSBjb250YWlu ZXIuDQogICBSZWFsIGdldEN1cnJlbnRUb3RhbFdlaWdodCAoKTsNCg0KICAgLy8hIEBicmllZiBS ZXR1cm5zIGFuIGl0ZXJhdG9yIHRvIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBjb250YWluZXIu DQogICBJdGVyYXRvciBnZXRDb250YWluZXJCZWdpbiAoKTsNCg0KICAgLy8hIEBicmllZiBSZXR1 cm5zIGFuIGl0ZXJhdG9yIHNob3dpbmcgdGhlIGVuZCBvZiB0aGUgY29udGFpbmVyLg0KICAgSXRl cmF0b3IgZ2V0Q29udGFpbmVyRW5kICgpOw0KDQpwcm90ZWN0ZWQ6DQoNCiAgIC8vISBUaGUgbmFt ZSBvZiB0aGUgY29udGFpbmVyDQogICBVdGlsaXR5OjpTdHJpbmcgbmFtZTsNCiAgIC8vISBUaGlz IGlzIHRoZSBwcmVjYWxjdWxhdGVkIGNvbnRhaW5lciBuYW1lIGhhc2ggdmFsdWUuDQogICBVSW50 MzIgbmFtZUhhc2g7DQoNCiAgIC8vISBUaGUgbWF4aW11bSBzaXplIG9mIHRoZSBjb250YWluZXIg aW4gdGhlIFggYXhpcy4NCiAgIFVJbnQzMiBtYXhYU2l6ZTsNCiAgIC8vISBUaGUgbWF4aW11bSBz aXplIG9mIHRoZSBjb250YWluZXIgaW4gdGhlIFkgYXhpcy4NCiAgIFVJbnQzMiBtYXhZU2l6ZTsN CiAgIC8vISBUaGUgbWF4aW11bSB3ZWlnaHQgb2YgdGhlIGl0ZW1zIGluIHRoZSBjb250YWluZXIu DQogICBSZWFsIG1heFdlaWdodDsNCiAgIC8vISBUaGUgbWF4aW11bSBpdGVtcyB0aGF0IGNhbiBi ZSBwdXQgaW4gdGhlIGNvbnRhaW5lciwgd2hldGhlciB0aGVyZSBpcyBzcGFjZSBhdmFpbGFibGUg b3Igbm90Lg0KICAgVUludDMyIG1heEl0ZW1zOw0KDQogICAvLyEgVGhpcyBpcyB0aGUgZWxlbWVu dCBjb250YWluZXINCiAgIHN0ZDo6dmVjdG9yPFBvc2l0aW9uZWRPYmplY3Q+IGNvbnRhaW5lckVs ZW1lbnRzOw0KDQogICAvLyEgQGJyaWVmIFRoaXMgaXMgYSB1c2VyIHNwZWNpZmljYWJsZSB3YXkg b2YgZmluZGluZyBhIHBsYWNlIGluIHRoZSBjb250YWluZXIgZm9yIGFuIHNwZWNpZmllZCBlbGVt ZW50Lg0KICAgdmlydHVhbCBQb3NpdGlvblR1cGxlIGZpbmRFbGVtZW50UG9zaXRpb24gKCBDYXJy aWFibGVPYmplY3QgZWxlbWVudCApOw0KICAgDQogICAvLyEgQGJyaWVmIElmIHlvdSBuZWVkIHRv IHNwZWNpZnkgYSBkaWZmZXJlbnQgYWNjZXB0aW9uIEJlaGF2aW9yIG92ZXJyaWRlIHRoaXMgbWV0 aG9kLg0KICAgLy8hIEBwYXIgRm9yIGV4YW1wbGUgaWYgeW91IGhhdmUgdG8gYWNjZXB0IG9ubHkg SVdlYXBvbnMgdGhlbiB5b3Ugb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gYWNjZXB0IG9ubHkgZWxl bWVudHMgZGVyaXZlZCBmcm9tIElXZWFwb24gaW50ZXJmYWNlLg0KICAgLy8hIEByZW1hcmsgVGhp cyBtZXRob2QgaXMgY2FsbGVkIGFmdGVyIGEgcGxhY2Ugd2FzIGZvdW5kIChvciBwcm92aWRlZCkg Zm9yIHRoZSBlbGVtZW50Lg0KICAgLy8hIEByZXR1cm5zIFRydWUgdG8gYWNjZXB0IHRoZSBlbGVt ZW50LCBmYWxzZSB0byByZWplY3QgaXQuDQogICB2aXJ0dWFsIEJvb2wgdXNlckRlZmluZWRFbGVt ZW50QWNjZXB0ICggQ2FycmlhYmxlT2JqZWN0IGVsZW1lbnQsIFBvc2l0aW9uVHVwbGUgcG9zaXRp b24gKTsNCg0KfTsNCg0vLyBSSzogVGhpcyBkZXNpZ24gaXMgc3VwcG9zZWQgdG8gYmUgcG9zaXRp b25hbCAod2l0aCBhIHBvc2liaWxpdHkgdG8gdXNlIHRoZSBQT1NJVElPTkFMIERPTlQgQ0FSRSBp bnRlcmZhY2UpIHNvIHRoaXMgaW5oZXJpdGFuY2UgaXMgc3VwZXJmbHVvdXMuDQp0ZW1wbGF0ZTwg Y2xhc3MgQ2FycmlhYmxlT2JqZWN0ID4NDQpjbGFzcyBQb3NpdGlvbmFsQ29udGFpbmVyOiBwdWJs aWMgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+DQ0Kew0NCnB1YmxpYzoNDQoJLy8h IEBicmllZiBUaGlzIGlzIHRoZSBkZWZhdWx0IGNvbnN0cnVjdG9yLg0NCgkvLyEgQHBhcmFtIG5h bWUgaXMgdGhlIHN5bWJvbGljIG5hbWUgb2YgdGhlIGNvbnRhaW5lci4NDQogICBQb3NpdGlvbmFs Q29udGFpbmVyICggVXRpbGl0eTo6U3RyaW5nIG5hbWUsIFVJbnQzMiBtYXhYU2l6ZSwgVUludDMy IG1heFlTaXplLCBSZWFsIG1heFdlaWdodCwgVUludDMyIG1heEl0ZW1zICk7DQ0KcHJvdGVjdGVk Og0NCgl2aXJ0dWFsIENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0Pjo6UG9zaXRpb25U dXBsZSBmaW5kRWxlbWVudFBvc2l0aW9uIChDYXJyaWFibGVPYmplY3QgZWxlbWVudCk7DQ0KfTsN DQoNCi8vIFN0YXRpYyBjb25zdGFudCBpbml0aWFsaXphdGlvbi4NCnRlbXBsYXRlPCBjbGFzcyBD YXJyaWFibGVPYmplY3QgPg0KY29uc3QgdHlwZW5hbWUgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFi bGVPYmplY3Q+OjpQb3NpdGlvblR1cGxlIENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0 Pjo6YW55d2hlcmUgPSBDYXJyaWVyQ29udGFpbmVyPENhcnJpYWJsZU9iamVjdD46OlBvc2l0aW9u VHVwbGUgKDAsMCk7DQoNCnRlbXBsYXRlPCBjbGFzcyBDYXJyaWFibGVPYmplY3QgPg0KY29uc3Qg dHlwZW5hbWUgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+OjpQb3NpdGlvblR1cGxl IENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0Pjo6bnVsbFBvc2l0aW9uID0gQ2Fycmll ckNvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+OjpQb3NpdGlvblR1cGxlICgtMSwtMSk7DQoNCg0K dGVtcGxhdGU8IGNsYXNzIENhcnJpYWJsZU9iamVjdCA+DQpDYXJyaWVyQ29udGFpbmVyPENhcnJp YWJsZU9iamVjdD46OkNhcnJpZXJDb250YWluZXIgKCBVdGlsaXR5OjpTdHJpbmcgbmFtZSwgVUlu dDMyIG1heFhTaXplLCBVSW50MzIgbWF4WVNpemUsIFJlYWwgbWF4V2VpZ2h0LCBVSW50MzIgbWF4 SXRlbXMgKQ0Kew0NCiAgIHRoaXMtPm5hbWUgPSBuYW1lOw0NCiAgIHRoaXMtPm1heFhTaXplID0g bWF4WFNpemU7DQ0KICAgdGhpcy0+bWF4WVNpemUgPSBtYXhZU2l6ZTsNDQogICB0aGlzLT5tYXhX ZWlnaHQgPSBtYXhXZWlnaHQ7DQ0KICAgdGhpcy0+bWF4SXRlbXMgPSBtYXhJdGVtczsNDQovLyAg IHRoaXMtPmNvbnRhaW5lckVsZW1lbnRzID0gW107DQ0KLy8gICBVSW50MzIgbmFtZUhhc2g7DQ0K Ly8gICB2aXJ0dWFsIFBvc2l0aW9uVHVwbGUgZmluZEVsZW1lbnRQb3NpdGlvbiAoIENhcnJpYWJs ZU9iamVjdCBlbGVtZW50ICk7DQ0KLy8gICB2aXJ0dWFsIEJvb2wgdXNlckRlZmluZWRFbGVtZW50 QWNjZXB0ICggQ2FycmlhYmxlT2JqZWN0IGVsZW1lbnQsIFBvc2l0aW9uVHVwbGUgcG9zaXRpb24g KTsNDQp9Ow0NCg0KdGVtcGxhdGU8IGNsYXNzIENhcnJpYWJsZU9iamVjdCA+DQp2b2lkIENhcnJp ZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0Pjo6YWRkRWxlbWVudCAoIENhcnJpYWJsZU9iamVj dCBlbGVtZW50LCBJbnQzMiB4UG9zaXRpb24sIEludDMyIHlQb3NpdGlvbiApDQp7DQ0KCWlmIChj YW5BZGRFbGVtZW50KGVsZW1lbnQsIHhQb3NpdGlvbiwgeVBvc2l0aW9uKSkNDQoJCQljb250YWlu ZXJFbGVtZW50cy5wdXNoX2JhY2soUG9zaXRpb25lZE9iamVjdChlbGVtZW50LCB4UG9zaXRpb24s IHlQb3NpdGlvbikpOw0NCn07DQoNCnRlbXBsYXRlPCBjbGFzcyBDYXJyaWFibGVPYmplY3QgPg0K dm9pZCBDYXJyaWVyQ29udGFpbmVyPENhcnJpYWJsZU9iamVjdD46OmFkZEVsZW1lbnQgKCBDYXJy aWFibGVPYmplY3QgZWxlbWVudCwgdHlwZW5hbWUgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFibGVP YmplY3Q+OjpQb3NpdGlvblR1cGxlIHBvc2l0aW9uKQ0Kew0NCglpZiAocG9zaXRpb24gPT0gYW55 d2hlcmUpDQ0KCXsNDQoJCVBvc2l0aW9uVHVwbGUgb3BlblBvc2l0aW9uID0gZmluZEVsZW1lbnRQ b3NpdGlvbihlbGVtZW50KTsNDQoJCWlmICghKG9wZW5Qb3NpdGlvbiA9PSBudWxsUG9zaXRpb24p KQ0NCgkJCWFkZEVsZW1lbnQoZWxlbWVudCwgb3BlblBvc2l0aW9uLmdldEZpcnN0KCksIG9wZW5Q b3NpdGlvbi5nZXRTZWNvbmQoKSk7DQ0KCQkvLyBSSzogTkVWRVIgRVZFUiB0aHJvdyB1bnN0cnVj dHVyZWQgZXhjZXB0aW9ucy4uLiBhbmQgTkVWRVIgRVZFUiBieSB2YWx1ZSAoc2V2ZXJhbCBwcm9i bGVtcyBhcnJpc2UgYmVjYXVzZSBvZiB0aGlzKS4NICAgICAgLy8gICAgIFVTRSB0aGUgZXhjZXB0 aW9ucyB0aGF0IGFyZSBzcGVjaWZpZWQgaW4gdGhlIGV4Y2VwdGlvbnMuaCBmaWxlLi4uDSAgICAg IC8vICAgICBJbiB0aGlzIGNhc2UgdGhlIHByb2JsZW0gaXMgY2F1c2VkIGJ5IHRoZSB1c2VyIG1p c2JlaGF2aW9yIG9yIG5vdCBjYWxsaW5nIGNhbkFkZEVsZW1lbnQgYmVmb3JlIGNhbGxpbmcgYWRk LiAoIHlvdSBkb250IGhhdmUgdG8gY2hlY2sgYW55dGhpbmcgaGVyZSwgZXhjZXB0IHRoYXQgeW91 IGNhbiBwdXQgdGhlIG9iamVjdCB3aGVyZSBpdCBiZWxvbmdzIGFzIGEgcHJlY29uZGl0aW9uKS4N ICAgICAgZWxzZSB0aHJvdyAiTm8gcGxhY2UgaW4gdGhlIGNvbnRhaW5lciI7DQ0KDQ0KCX0NDQoJ ZWxzZSBhZGRFbGVtZW50KGVsZW1lbnQsIHBvc2l0aW9uLmdldEZpcnN0KCksIHBvc2l0aW9uLmdl dFNlY29uZCgpKTsNDQp9Ow0KDQp0ZW1wbGF0ZTwgY2xhc3MgQ2FycmlhYmxlT2JqZWN0ID4NCnZv aWQgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+OjpyZW1vdmVFbGVtZW50ICggQ2Fy cmlhYmxlT2JqZWN0IGVsZW1lbnQgKQ0Kew0NCglVSW50MzIgaW5kZXggPSAwOw0NCiAgIC8vIFJL OiBUaGUgc2FtZSB0aGluZyBhYm91dCBmb3IgdGhhdCBpcyBwbGFjZWQgc29tZXdoZXJlIGVsc2Uu Li4gZGlkbnQgZmxhZyBldmVyeSBvY2N1cmVuY2Ugb2YgdGhpcyBpbiB0aGUgc291cmNlIHRob3Vn aC4NCgl3aGlsZSAoaW5kZXggPD0gY29udGFpbmVyRWxlbWVudHMuc2l6ZSgpKQ0NCgl7DQ0KCQlp ZiAoY29udGFpbmVyRWxlbWVudHMuYXQoaW5kZXgpLmdldEZpcnN0KCkgPT0gZWxlbWVudCkNDQoJ CXsNDQoJCQkvLyBtYW51YWwgZXJhc2UNDQoJCQl3aGlsZSAoaW5kZXggPCBjb250YWluZXJFbGVt ZW50cy5zaXplKCkpDQ0KCQkJew0NCgkJCQljb250YWluZXJFbGVtZW50c1tpbmRleF0gPSBjb250 YWluZXJFbGVtZW50cy5hdChpbmRleCsxKTsNDQoJCQkJaW5kZXgrKzsNDQoJCQl9DQ0KCQkJY29u dGFpbmVyRWxlbWVudHMucG9wX2JhY2soKTsNDQoJCX0NDQoJCWluZGV4Kys7DQ0KCX0NDQp9Ow0K DQp0ZW1wbGF0ZTwgY2xhc3MgQ2FycmlhYmxlT2JqZWN0ID4NCkNhcnJpYWJsZU9iamVjdCBDYXJy aWVyQ29udGFpbmVyPENhcnJpYWJsZU9iamVjdD46OnJlbW92ZUVsZW1lbnQgKCBVSW50MzIgeFBv c2l0aW9uLCBVSW50MzIgeVBvc2l0aW9uICkNCnsNICAgLy8gUks6IFRoaXMgaXMgYSBiZXR0ZXIg d2F5IG9mIGRvaW5nIHRoZSBzYW1lLCBhcyBtdWNoIGFzIHlvdSBjYW4gZm9yIGxvb2tzIHdpdGgg aXRlcmF0b3IgY291bnRlcnMNCiAgIC8vICAgICB1c2UgRk9SIGFzIGl0IGlzIHRoZSBiZXN0IGNv bnRyb2wgc3RydWN0dXJlIGZvciB0aGF0IGNhc2UuIFRha2UgYSBsb29rIGF0IGhvdyB0aWdodCB0 aGUgbmV3DQogICAvLyAgICAgaW1wbGVtZW50YXRpb24gaXMsIGFuZCBob3cgd2UgZG9udCB3YXN0 ZSBlZmZvcnRzIHRvIGtlZXAgdGhlIHZlY3RvciAib3JkZXJlZCIuLi4gQXMgdGhlcmUgaXMNCiAg IC8vICAgICBubyBvcmRlcmVkIHJlcXVpcmVtZW50IG9uIHRoaXMgd2UgY2FuIG1vdmUgd2hhdGV2 ZXIgb2JqZWN0IGV2ZXJ5d2hlcmUgd2Ugd2FudC4gSWYgd2UgZW5kIHVwDQogICAvLyAgICAgbmVl ZGluZyBhIG1vcmUgc3RyaWN0IG9yZGVyIHdlIGNhbiBwYXJ0aWFsIHNwZWNpYWxpemF0ZSB0aGlz IHRlbXBsYXRlLg0KCVVJbnQzMiBpbmRleCA9IDA7DSAgIFVJbnQzMiBjb250YWluZXJTaXplID0g Y29udGFpbmVyRWxlbWVudHMuc2l6ZSAoKTsNDQogICBmb3IgKCBVSW50MzIgaSA9IDA7IGkgPCBj b250YWluZXJTaXplOyBpKysgKQ0KICAgew0KICAgICAgUG9zaXRpb25lZE9iamVjdCBjdXJyZW50 RWxlbWVudCA9IGNvbnRhaW5lckVsZW1lbnRzW2ldOw0KICAgICAgaWYgKCBwb2ludEluUmVjdGFu Z2xlKCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeFBvc2l0aW9uLCANCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgeVBvc2l0aW9uLCANCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY3VycmVudEVsZW1lbnQuZ2V0U2Vjb25kKCksIA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjdXJyZW50RWxlbWVudC5nZXRUaGlyZCgpLCANCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY3VycmVudEVsZW1lbnQuZ2V0Rmlyc3QoKS5nZXRPYmplY3RYU2l6ZSgpLCANCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEVsZW1lbnQuZ2V0Rmlyc3QoKS5nZXRP YmplY3RZU2l6ZSgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICkN CiAgICAgIHsNCiAgICAgICAgIGNvbnRhaW5lckVsZW1lbnRzW2ldID0gY29udGFpbmVyRWxlbWVu dHNbY29udGFpbmVyU2l6ZS0xXTsNCiAgICAgICAgIGNvbnRhaW5lckVsZW1lbnRzLnBvcF9iYWNr ICgpOw0KICAgICAgICAgcmV0dXJuIGN1cnJlbnRFbGVtZW50LmdldEZpcnN0ICgpOw0KICAgICAg fTsNCiAgIH07DQoNCiAgIHRocm93IG5ldyBYRUludmFsaWRQYXJhbWV0ZXIgKCk7ICAgDQoNCi8q DXdoaWxlIChpbmRleCAhPSBjb250YWluZXJFbGVtZW50cy5zaXplKCkpDQ0KCXsNDQoJCVBvc2l0 aW9uZWRPYmplY3QgY3VycmVudEVsZW1lbnQgPSBjb250YWluZXJFbGVtZW50cy5hdChpbmRleCk7 DQ0KCQlpZiAocG9pbnRJblJlY3RhbmdsZSh4UG9zaXRpb24sIHlQb3NpdGlvbiwgY3VycmVudEVs ZW1lbnQuZ2V0U2Vjb25kKCksIGN1cnJlbnRFbGVtZW50LmdldFRoaXJkKCksIGN1cnJlbnRFbGVt ZW50LmdldEZpcnN0KCkuZ2V0T2JqZWN0WFNpemUoKSwgY3VycmVudEVsZW1lbnQuZ2V0Rmlyc3Qo KS5nZXRPYmplY3RZU2l6ZSgpKSkNCgkJew0KCQkJLy8gbWFudWFsIGVyYXNlDQoJCQl3aGlsZSAo aW5kZXggPCBjb250YWluZXJFbGVtZW50cy5zaXplKCkpDQoJCQl7DQoJCQkJY29udGFpbmVyRWxl bWVudHNbaW5kZXhdID0gY29udGFpbmVyRWxlbWVudHMuYXQoaW5kZXgrMSk7DQoJCQkJaW5kZXgr KzsNCgkJCX0NCgkJCWNvbnRhaW5lckVsZW1lbnRzLnBvcF9iYWNrKCk7DQoJCQlyZXR1cm4gY3Vy cmVudEVsZW1lbnQuZ2V0Rmlyc3QoKTsNCgkJfQ0KCQlpbmRleCsrOw0JfQ0JLy8gaWYgdGhpcyBw b2ludCBpcyByZWFjaGVkLCB0aGUgcG9zaXRpb24gaXMgdW5vY2N1cGllZA0KCXRocm93ICJObyBl bGVtZW50IGF0IGdpdmVuIHBvaW50IjsNCglyZXR1cm4gTlVMTDsNKi8NCn07DQoNCnRlbXBsYXRl PCBjbGFzcyBDYXJyaWFibGVPYmplY3QgPg0KVXRpbGl0eTo6Qm9vbCBDYXJyaWVyQ29udGFpbmVy PENhcnJpYWJsZU9iamVjdD46OmNhbkFkZEVsZW1lbnQgKCBDYXJyaWFibGVPYmplY3QgZWxlbWVu dCwgSW50MzIgeFBvc2l0aW9uLCBJbnQzMiB5UG9zaXRpb24gKQ0Kew0NCgkvLyB0aHJvdyBleGNl cHRpb25zIGhlcmU/DQ0KCWlmICgoY29udGFpbmVyRWxlbWVudHMuc2l6ZSgpID09IG1heEl0ZW1z KQ0NCgkJfHwgKGVsZW1lbnQuZ2V0T2JqZWN0V2VpZ2h0KCkgKyB0aGlzLT5nZXRDdXJyZW50VG90 YWxXZWlnaHQoKSA+IG1heFdlaWdodCkNDQoJCXx8ICh4UG9zaXRpb24gPCAwKSB8fCAoeVBvc2l0 aW9uIDwgMCkNDQoJCXx8ICh4UG9zaXRpb24gKyBlbGVtZW50LmdldE9iamVjdFhTaXplKCkgPj0g bWF4WFNpemUpDQ0KCQl8fCAoeVBvc2l0aW9uICsgZWxlbWVudC5nZXRPYmplY3RZU2l6ZSgpID49 IG1heFlTaXplKSkNDQogICAgICAgICAvLyBSSzogTkVWRVIgdXNlIHRoZSBDIG1hc2sgZm9yIGJv b2xlYW4gdmFsdWVzLiBGQUxTRSBpcyAwIGluc3RlYWQgb2YgZmFsc2UuLi4gDSAgICAgICAgIC8v ICAgICBRdWl0ZSBhIHByb2JsZW0sIHlvdSBhcmUgZG9pbmcgYSBjb2hlcnNpb24gaW4gaGVyZSBh bmQgdXNpbmcgYXJpdGhtZXRpYyBib29sZWFucyB0aGF0IGlzIHF1aXRlIGEgYmFkIGFuZCByaXNr eSBoYWJpdC4NICAgICAgICAgLy8gICAgIFVzZSByZXR1cm4gZmFsc2U7IGluc3RlYWQuDSAgICAg ICAgIHJldHVybiBGQUxTRTsNDQoJcmV0dXJuIHVzZXJEZWZpbmVkRWxlbWVudEFjY2VwdChlbGVt ZW50LCBQb3NpdGlvblR1cGxlKHhQb3NpdGlvbiwgeVBvc2l0aW9uKSk7DQ0KfTsNCg0KdGVtcGxh dGU8IGNsYXNzIENhcnJpYWJsZU9iamVjdCA+DQpVdGlsaXR5OjpCb29sIENhcnJpZXJDb250YWlu ZXI8Q2FycmlhYmxlT2JqZWN0Pjo6Y2FuQWRkRWxlbWVudCAoIENhcnJpYWJsZU9iamVjdCBlbGVt ZW50LCB0eXBlbmFtZSBDYXJyaWVyQ29udGFpbmVyPENhcnJpYWJsZU9iamVjdD46OlBvc2l0aW9u VHVwbGUgcG9zaXRpb24gKQ0Kew0NCglpZiAocG9zaXRpb24gPT0gYW55d2hlcmUpIHJldHVybiAo ISh0aGlzLT53aGVyZUNhbkFkZEVsZW1lbnQoZWxlbWVudCkgPT0gbnVsbFBvc2l0aW9uKSk7DQ0K CWVsc2UgcmV0dXJuIGNhbkFkZEVsZW1lbnQoZWxlbWVudCwgcG9zaXRpb24uZ2V0Rmlyc3QoKSwg cG9zaXRpb24uZ2V0U2Vjb25kKCkpOw0NCn07DQoNCnRlbXBsYXRlPCBjbGFzcyBDYXJyaWFibGVP YmplY3QgPg0KdHlwZW5hbWUgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+OjpQb3Np dGlvblR1cGxlIENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0Pjo6d2hlcmVDYW5BZGRF bGVtZW50ICggQ2FycmlhYmxlT2JqZWN0IGVsZW1lbnQgKQ0Kew0NCglyZXR1cm4gZmluZEVsZW1l bnRQb3NpdGlvbihlbGVtZW50KTsNDQp9Ow0KDQp0ZW1wbGF0ZTwgY2xhc3MgQ2FycmlhYmxlT2Jq ZWN0ID4NClV0aWxpdHk6OlN0cmluZyBDYXJyaWVyQ29udGFpbmVyPENhcnJpYWJsZU9iamVjdD46 OmdldENvbnRhaW5lck5hbWUgKCkNCnsNDQoJcmV0dXJuIG5hbWU7DQ0KfTsNCg0KdGVtcGxhdGU8 IGNsYXNzIENhcnJpYWJsZU9iamVjdCA+DQpVdGlsaXR5OjpVSW50MzIgQ2FycmllckNvbnRhaW5l cjxDYXJyaWFibGVPYmplY3Q+OjpnZXRDb250YWluZXJOYW1lSGFzaCAoKQ0Kew0NCglyZXR1cm4g bmFtZUhhc2g7DQ0KfTsNCg0KdGVtcGxhdGU8IGNsYXNzIENhcnJpYWJsZU9iamVjdCA+DQpVdGls aXR5OjpSZWFsIENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0Pjo6Z2V0Q3VycmVudFRv dGFsV2VpZ2h0ICgpDQp7DQ0KCVVJbnQzMiBpdGVyYXRvciA9IDA7DQ0KCVJlYWwgcmV0dXJuVmFs dWUgPSAwOw0NCgl3aGlsZSAoaXRlcmF0b3IgPCBjb250YWluZXJFbGVtZW50cy5zaXplKCkpDQ0K CXsNDQoJCXJldHVyblZhbHVlICs9IGNvbnRhaW5lckVsZW1lbnRzLmF0KGl0ZXJhdG9yKS5nZXRG aXJzdCgpLmdldE9iamVjdFdlaWdodCgpOw0NCgkJaXRlcmF0b3IrKzsNDQoJfQ0NCglyZXR1cm4g cmV0dXJuVmFsdWU7DQ0KfTsNCg0KdGVtcGxhdGU8IGNsYXNzIENhcnJpYWJsZU9iamVjdCA+DQp0 eXBlbmFtZSBDYXJyaWVyQ29udGFpbmVyPENhcnJpYWJsZU9iamVjdD46Okl0ZXJhdG9yIENhcnJp ZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0Pjo6Z2V0Q29udGFpbmVyQmVnaW4gKCkNCnsNDQoJ cmV0dXJuIGNvbnRhaW5lckVsZW1lbnRzLmJlZ2luKCk7DQ0KfTsNCg0KdGVtcGxhdGU8IGNsYXNz IENhcnJpYWJsZU9iamVjdCA+DQp0eXBlbmFtZSBDYXJyaWVyQ29udGFpbmVyPENhcnJpYWJsZU9i amVjdD46Okl0ZXJhdG9yIENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0Pjo6Z2V0Q29u dGFpbmVyRW5kICgpDQp7DQ0KCXJldHVybiBjb250YWluZXJFbGVtZW50cy5lbmQoKTsNDQp9Ow0K DQ0KLy8hIEZvciBzdGFuZGFyZCBzdG9yZS10eXBlIGNvbnRhaW5lcnMgOikNCnRlbXBsYXRlPCBj bGFzcyBDYXJyaWFibGVPYmplY3QgPg0KdHlwZW5hbWUgQ2FycmllckNvbnRhaW5lcjxDYXJyaWFi bGVPYmplY3Q+OjpQb3NpdGlvblR1cGxlIENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0 Pjo6ZmluZEVsZW1lbnRQb3NpdGlvbiAoIENhcnJpYWJsZU9iamVjdCBlbGVtZW50ICkNCnsNDQoJ aWYgKCBjYW5BZGRFbGVtZW50KGVsZW1lbnQsMSwxKSApDQ0KCQlyZXR1cm4gUG9zaXRpb25UdXBs ZSgxLDEpOw0NCgllbHNlDQ0KCQlyZXR1cm4gbnVsbFBvc2l0aW9uOw0NCn07DQoNCi8vISBGb3Ig c3RhbmRhcmQgcG9zaXRpb25hbCBjb250YWluZXJzDXRlbXBsYXRlPCBjbGFzcyBDYXJyaWFibGVP YmplY3QgPg10eXBlbmFtZSBDYXJyaWVyQ29udGFpbmVyPENhcnJpYWJsZU9iamVjdD46OlBvc2l0 aW9uVHVwbGUgUG9zaXRpb25hbENvbnRhaW5lcjxDYXJyaWFibGVPYmplY3Q+OjpmaW5kRWxlbWVu dFBvc2l0aW9uICggQ2FycmlhYmxlT2JqZWN0IGVsZW1lbnQgKQ0NCnsNDQoJVUludDMyIHggPSAw Ow0NCglVSW50MzIgeSA9IDA7DQ0KDSAgIC8vIFJLOiBUaGlzIGlzIGJldHRlciBoYW5kbGVkIGJ5 IDIgZm9yIHN0YXRlbWVudHMuDSAgIHdoaWxlICh4ICE9IG1heFhTaXplKQ0NCgl7DQ0KCQl3aGls ZSAoeSAhPSBtYXhZU2l6ZSkNDQoJCXsNDQoJCQlpZiAoY2FuQWRkRWxlbWVudChlbGVtZW50LCB4 LCB5KSkNDQoJCQkJcmV0dXJuIFBvc2l0aW9uVHVwbGUoeCwgeSk7DQ0KCQkJeSsrOw0NCgkJfQ0N CgkJeSA9IDA7DQ0KCQl4Kys7DQ0KCX0NDQoJcmV0dXJuIG51bGxQb3NpdGlvbjsNDQp9Ow0NCg0N Cg0NCi8vIFJLOiBUaGlzIGhhcyB0byBiZSBpbXBsZW1lbnRlZCBhbnl3YXlzIGJ1dCB3aWxsIGFs d2F5cyByZXR1cm4gdHJ1ZSB1bmxlc3Mgb3ZlcnJpZGVuLg0KdGVtcGxhdGU8IGNsYXNzIENhcnJp YWJsZU9iamVjdCA+DQpVdGlsaXR5OjpCb29sIENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2Jq ZWN0Pjo6dXNlckRlZmluZWRFbGVtZW50QWNjZXB0ICggQ2FycmlhYmxlT2JqZWN0IGVsZW1lbnQs IHR5cGVuYW1lIENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0Pjo6UG9zaXRpb25UdXBs ZSBwb3NpdGlvbiApDQp7DQogICByZXR1cm4gdHJ1ZTsNCn07DQoNCg0KDQoNCi8vISAgIEBicmll ZiBUaGlzIGludGVyZmFjZSBpcyBpbmhlcml0ZWQgYnkgYW55IG9iamVjdCB0aGF0IGNhbiBjYXJy eSBvciBzdG9yZSBvYmplY3RzIGxpa2UgR2VuZXJhbCBTdG9yZXMsIEFpcmNyYWZ0cywgU29sZGll cnMsIGV0Yy4NCi8vISAgIEBwYXIgVGhlIGNhcnJpZXIgaW50ZXJmYWNlIHdpbGwgZGVmaW5lIGFs bCB0aGUgbmVjZXNhcnkgbWV0aG9kcyB0byBtYW5pcHVsYXRlIA0KLy8hICAgICAgICB0aGUgY29u dGFpbmVycyB0aGF0IGV2ZXJ5IGNhcnJpZXIgb2JqZWN0IHdpbGwgaGF2ZS4gDQovLyEgICBAcGFy IEF0IHRoZSBjb25zdHJ1Y3Rpb24gb2YgdGhlIG9iamVjdCB0aGUgaW50ZXJuYWxDYXJyaWVySW5p dCB2aXJ0dWFsIG1ldGhvZA0KLy8hICAgICAgICB3aWxsIGJlIGNhbGxlZCBhbmQgdGhlIGNhcnJp ZXIgd2lsbCBpbml0aWFsaXplIGl0c2VsZiwgYmFzZWQgb24gdGhlIGNvbnRhaW5lcnMNCi8vISAg ICAgICAgdGhhdCBpdCBpcyBhbGxvd2VkIHRvIHVzZS4NCi8vISAgIEBub3RlIEl0IHdvdWxkIGJl IGludGVyZXN0aW5nIHRvIGJlIGFibGUgdG8gaW5pdGlhbGl6ZSB0aGlzIHZhbHVlcyBmcm9tIGFu IHNjcmlwdCBvciB2aWEgDQovLyEgICAgICAgIGFuIHNwZWNpYWwgZmlsZSwgYmVjYXVzZSBvZiB0 aGF0IGFueSBjYXJyaWVyIG9iamVjdCB3aWxsIGhhdmUgYSBjbGFzcyBuYW1lLiBGb3IgaW5zdGFu Y2UNCi8vISAgICAgICAgYSBzb2xkaWVyIGZpbGUgd2lsbCBiZSBhc3NvY2lhdGVkIHRvIGl0cyBj b25maWd1cmF0aW9uIHZpYSBhICJTb2xkaWVyIiBuYW1lLiBUaGUgbmFtZSBvZiB0aGUNCi8vISAg ICAgICAgY2xhc3MgY2FuIGJlIHJldHJpZXZlZCB2aWEgaXRzIEMrKyBSVFRJIGluZm9ybWF0aW9u Lg0KLy8hICAgQHJlbWFyayBFdmVyeSBjYXJyaWFibGUgb2JqZWN0IG11c3QgaGF2ZSBvbmx5IG9u ZSBJQ2FycmllciBhc3NvY2lhdGVkIGFzIGEgcGFyZW50Lg0KdGVtcGxhdGU8IGNsYXNzIENhcnJp YWJsZU9iamVjdCA+DQpjbGFzcyBJQ2Fycmllcg0Kew0KcHVibGljOg0KDQogICB0eXBlZGVmIHR5 cGVuYW1lIENhcnJpZXJDb250YWluZXI8Q2FycmlhYmxlT2JqZWN0Pjo6UmVmZXJlbmNlIENvbnRh aW5lclJlZmVyZW5jZTsNCg0KICAgQ29udGFpbmVyUmVmZXJlbmNlIGdldENhcnJpZXJDb250YWlu ZXJCeU5hbWUgKCBVdGlsaXR5OjpTdHJpbmcgbmFtZSApOw0KDQpwcm90ZWN0ZWQ6DQoNCiAgIC8v ISBAYnJpZWYgVGhpcyBpcyB0aGUgaW5pdGlhbGl6YXRpb24gbWV0aG9kIHRoYXQgd2Ugd2lsbCBo YXZlIHRvIG92ZXJyaWRlIHRvIG1vZGlmeSB0aGUNCiAgIC8vISBpbml0aWFsaXphdGlvbiBwcm9j ZXNzLg0KICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVDYXJyaWVyICgpOw0KDQogICBzdGQ6Om1h cDwgVXRpbGl0eTo6U3RyaW5nLCBDb250YWluZXJSZWZlcmVuY2UgPiBjYXJyaWVyQ29udGFpbmVy czsNCg0KfTsNCg0KDQp0ZW1wbGF0ZTwgY2xhc3MgQ2FycmlhYmxlT2JqZWN0ID4NCnR5cGVuYW1l IElDYXJyaWVyPENhcnJpYWJsZU9iamVjdD46OkNvbnRhaW5lclJlZmVyZW5jZSBJQ2FycmllcjxD YXJyaWFibGVPYmplY3Q+OjpnZXRDYXJyaWVyQ29udGFpbmVyQnlOYW1lICggVXRpbGl0eTo6U3Ry aW5nIG5hbWUgKQ0Kew0KICAgQ29udGFpbmVyUmVmZXJlbmNlIGF1eCAoIGNhcnJpZXJDb250YWlu ZXJzLmZpbmQgKCBuYW1lICkgKTsNCg0KICAgLy8gUks6IFVzZSB0aGlzIGtpbmQgb2Ygc3RydWN0 dXJlcyB0byBjaGVjayBmb3IgdGhpbmdzIHRoYXQgbXVzdCBoYXZlIGJlZW4gaW4gdGhlDQogICAv LyAgICAgbWV0aG9kIGNvbnRyYWN0Li4uIHRoYXQgbWVhbnMgYW55dGhpbmcgeW91IGFzc3VtZSBo YXMgdG8gYmUgdHJ1ZSBvbiBlbnRyYW5jZQ0KICAgLy8gICAgIG9yIGV2ZW4gaW4gdGhlIG1pZGRs ZSBvciBlbmQgb2YgdGhlIG1ldGhvZC4gVGhlIFRBRyBwcmVmaXggI1BSRUNPTkRJVElPTiBpcw0K ICAgLy8gICAgIHVzZWQgdG8gZmxhZyB0aGUgY29uc3RydWN0IHRvIGZ1cnRoZXIgcmVtb3ZhbCBp biByZWxlYXNlIG1vZGUgaWYgdGhlIGNvbnRyb2xzDQogICAvLyAgICAgZG8gaGF2ZSBhIHBlcmZv cm1hbmNlIGltcGFjdCAocHJvZmlsaW5nIGNvbXByb2JhYmxlIG9mIGNvdXJzZSkuDQogICAvLyAj UFJFQ09ORElUSU9OQkVHSU4NCiAgIGlmICggYXV4ID09IE5VTEwgKQ0KICAgICAgdGhyb3cgbmV3 IFhFSW52YWxpZFBhcmFtZXRlciAoKTsNCiAgIC8vICNQUkVDT05ESVRJT05FTkQNCg0KICAgcmV0 dXJuIGF1eDsNCg0KfTsgDQoNCnRlbXBsYXRlPCBjbGFzcyBDYXJyaWFibGVPYmplY3QgPg0Kdm9p ZCBJQ2FycmllcjxDYXJyaWFibGVPYmplY3Q+Ojppbml0aWFsaXplQ2FycmllciAoKQ0Ke307DQoN Cg0KDQoJfTsgLy8gQmVoYXZpb3INCn07IC8vIFhlbm9jaWRlDQoNCg0KI2VuZGlmDQo= |
|
From: Robert B. <rbe...@an...> - 2004-05-11 04:03:41
|
Alright, somebody help me out here. I'm new, and these messages with nothing but noise are kicking my rear. How does one translate these into useable files or get them to where one can read them? I've tried copying and renaming em - everything. What's the deal? Thanks: Jolly Robert -----Original Message----- From: xen...@li... [mailto:xen...@li...] On Behalf Of xen...@li... Sent: Monday, May 10, 2004 11:08 PM To: xen...@li... Subject: Xenocide-programming digest, Vol 1 #168 - 2 msgs Send Xenocide-programming mailing list submissions to xen...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/xenocide-programming or, via email, send a message with subject or body 'help' to xen...@li... You can reach the person managing the list at xen...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of Xenocide-programming digest..." Today's Topics: 1. Simple interface for serializing. (Guyver) 2. BaseScape Work in Progress (Guyver) --__--__-- Message: 1 Date: Mon, 10 May 2004 15:58:05 +0200 From: Guyver <gu...@ho...> To: Xenocide Programming List <xen...@li...> Subject: [Xenocide-programming] Simple interface for serializing. This is a multi-part message in MIME format. --------------020201050001000009020003 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Here's my first code (not much thou:). Working on baseview I found that no one has tried to read data, that is really needed, becouse we are making data driven engine. While RedKnight is working in collaboration with Yake developers on creating automatic serialization mechanism, I drafted small replacement, to use in my developement. Derive from it and implement serialize as you like. Guyver PS. There's also IDataInterface class, which is supposed to work as workaround for purpose of registring variables and/or functions to use in scripting engine like Lua, (I'm using luabind becouse of it's simplicity). It's not like scripting will look like in future, but helps before that future comes. --------------020201050001000009020003 Content-Type: text/plain; name="idataobject.h" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="idataobject.h" #ifndef xenocide__datainterfaces__idatainterface_h #define xenocide__datainterfaces__idatainterface_h #include <utility/common.h> #include "../../common/xenorequisites.h" // Forward declarations of streams #include <iosfwd> namespace Xenocide { using namespace Utility; //! This class provides us scripting of interfaces to derivated classes. class IDataInterface { public: //! Registers commands for script access to class. virtual void registerCommands () = 0; }; // class IDataInterface namespace Objects { //! All data objects derive from this class to be able to serialize them. class IDataObject { public: //! Primary serialization mechanism of data interfaces. //! Implemented in derivated classes. //! /param serialStream stream source (be it fstream or iostream or whateverstream), to/from which data will be serialized //! /param save if set then serializes object data to stream, else serializes object from stream virtual Bool serialize (std::iostream& serialStream, Bool save = false) = 0; }; // class IDataObject }; // namespace Objects }; // namespace Xenocide #endif // xenocide__datainterfaces__objects__idatainterface_h --------------020201050001000009020003-- --__--__-- Message: 2 Date: Mon, 10 May 2004 22:15:44 +0200 From: Guyver <gu...@ho...> To: Xenocide Programming List <xen...@li...> Subject: [Xenocide-programming] BaseScape Work in Progress This is a multi-part message in MIME format. --------------010302050502060906080005 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Here's first part of my assignment. Class Facility and it's derivated classed are specialized in one task (Defense, Shield etc.). Check it out and feel free to review it and/or post ideas. Guyver PS. Get to work all developers out there. The truth is out there. Like aliens... there're waiting for Xenocide to kick human asses. And we need to give them what they want, cuz if not they're gonna tear us all apart, starting from the ones that haven't worked at all... really. :) --------------010302050502060906080005 Content-Type: application/octet-stream; name="datainterfaces.zi_" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="datainterfaces.zi_" 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 H9wh8ATPfDT9wv+s/wFQSwECFAAKAAAAAABuraowAAAAAAAAAAAAAAAADwAAAAAAAAAAABAA wEEAAAAAZGF0YWludGVyZmFjZXMvUEsBAhQACgAAAAAALJOqMAAAAAAAAAAAAAAAABcAAAAA AAAAAAAQAMBBLQAAAGRhdGFpbnRlcmZhY2VzL2FiaWxpdHkvUEsBAhQAFAACAAgALJOqMNH+ jqU3AQAAiQIAACIAAAAAAAAAAQAgAICBYgAAAGRhdGFpbnRlcmZhY2VzL2FiaWxpdHkvYnVp bGRhYmxlLmhQSwECFAAUAAIACABuraowe5H2/RcCAAD7BAAAHAAAAAAAAAABACAAgIHZAQAA ZGF0YWludGVyZmFjZXMvaWRhdGFvYmplY3QuaFBLAQIUAAoAAAAAAHmtqjAAAAAAAAAAAAAA AAAXAAAAAAAAAAAAEADAQSoEAABkYXRhaW50ZXJmYWNlcy9vYmplY3RzL1BLAQIUABQAAgAI AM+oqjC+ngw7KAEAAGAGAAAjAAAAAAAAAAEAIACAgV8EAABkYXRhaW50ZXJmYWNlcy9vYmpl Y3RzL2ZhY2lsaXR5LmNwcFBLAQIUABQAAgAIAPOtqjCExNFMyQQAACIPAAAhAAAAAAAAAAEA IAAAAMgFAABkYXRhaW50ZXJmYWNlcy9vYmplY3RzL2ZhY2lsaXR5LmhQSwUGAAAAAAcABwAB AgAA0AoAAAAA --------------010302050502060906080005-- --__--__-- _______________________________________________ Xenocide-programming mailing list Xen...@li... https://lists.sourceforge.net/lists/listinfo/xenocide-programming End of Xenocide-programming Digest |