Jump to content

Grovyle91

Innovator
  • Posts

    100
  • Joined

  • Last visited

Reputation

12 Good

1 Follower

About Grovyle91

  • Birthday 12/27/1991

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Ah... oh well... glad to see that it worked for you via one way or another. I'm sure that it'll be fixed when I get the chance to work on (re)writing the B(2)/W(2) support. As a side note: I think I'm almost satisfied with the new code base. Which means I'll release it on GitHub soon. Though this does not mean I've a new build ready, it only means I'll start accepting contributions to the source code.
  2. Hmm... that's weird indeed. As I'm looking at the editor right now, the values are a bit... outdated and/or invalid... please keep in mind that the last version was released ages ago. I'm still working on a new version. Anyway, I do not know how the second ribbon gets added. Given the hex data 20 00 at 0x0C - 0x0D, it should only have the Premiere Ribbon (the ribbon data that PMGE gives is not correct, so ignore that). Did it have that ribbon the first time you got it?
  3. Ah, then the 1 is a bit to determine if there's an item or not. Well... that makes sense. I wonder why my save was being zeroed out in the whole remaining data. Anyway, at least there's a use for that 1 Verstuurd van mijn GT-I8160 met Tapatalk
  4. Hmm... odd. Didn't notice it in my save. I'm almost sure that in my case everything was zeroed out upon removal, but don't take my word for it until I've tried it again (which may take some time as I receive PMD:GtI tomorrow, though it's just too bad I'm not able to get any save files from my 3DS... ).
  5. Ah... yeah, that's difficult. Although you said you want the core to be platform-agnostic, there's also a possibility to use NuGet within .NET (like Maven in Java). A quick search lead me to this package or this one. Though I can understand if you don't want to switch , it's just another possibility. Currently I'm using NuGet in order to import the Extended WPF Toolkit. I recommend it if you ever want to develop a GUI in WPF. But it will take some time in order to get used to it. WinForms is way easier to understand, but has a more limited capability of modifying controls and such.
  6. I need to correct myself after investigating some more. You know about those mystery boxes right? Yeah... the resulting item id needs to be stored somewhere. So look at this: 00000101 11100000 00100100 10000000 1 (Dainty Box) 00000101 11101001 01011001 10000000 1 (Dainty Box) 00000110 00101000 00100100 10000000 1 (Hard Box) 00000101 11001101 10110111 00000000 1 (Shiny Box) 00000101 11001101 01011101 00000000 1 (Shiny Box) Right, there's no way I've more than 1 of each of those boxes. So the only logical explanation to this, is that it uses those bits for the hidden item id. And there are still some bits left. Since an amount can only be 0 - 99 (which uses 7 bits), I think the 7 bits after the hidden id is the amount in case of an item that uses this (like stick, geo pebble, etc.). And again 0 if it isn't used. This still leaves the leftover 1, which is still unknown to me. So after applying this, you get the following: hhhxxxxx xxxxxxpp pppppppp pnnnnnnn 1 h = member holding bits (000 = none, 001 = member 1, 010 = member 2, 011 = member 3, 100 = member 4) x = item ID (total amount of 1,351 items, so 1 - 1,351) p = item parameter (in case of a mystery box: hidden item id; item with amount: amount of item (1 - 99); otherwise 0) n = item amount of the hidden item (1 - 99, 0 for items without an amount), 0 if there's no hidden item 1 = seems to be constant on my part / unknown So it gets even more complex, yay! But that's not all... I've tried to figure out how the main item storage is stored. And I'm partly there. It seems that the item ids and parameters are seperated from each other. If you take a look at this screenshot of my notes, you'll instantly see it's not easy to decode this properly without using bitwise operations and gluing the pieces together. It looks like there are 6 bits at the very beginning that are not used (or used by something else). Later on after each 8 items, these 6 bits are a kind of overflow used by the previous 8 items. It's not even easy to explain, so just take a look at the screenshot. Regarding the character names at 0x13F, I've also noticed that your partner's name is right after it. But it's not updated at all. E.g. I've chosen Turtwig in the beginning (with just "Turtwig" as his name since I didn't bother to think of something else), but he's evolved to Torterra and the name at 0x149 - 0x152 is still Turtwig. So I wonder where this name is being used elsewhere in the game. Anyway, this is what I found out for now. I'm done for today...
  7. No problem Once I'm home I'll send you the list including the program I used in case I something screw up. Verstuurd van mijn GT-I8160 met Tapatalk
  8. Yes, I'm using C# and WPF. One of its benefits is having a nice GUI editor (although WPF XAML isn't easy either). I've no experience making one in C or C++. I do know about Qt (but haven't worked with it), maybe you can try that (if you haven't already) if you want to keep cross platform capability. Making a GUI in C++ from scratch can be hard, especially if you want it to be cross perform (using various native OS libraries and such). If you don't care about cross platform, you can also try importing your library from C/C++ into VB.NET/C#. But you need to write a wrapper around your library if it's unmanaged. Verstuurd van mijn GT-I8160 met Tapatalk
  9. Haha... you didn't have to change it if you really depend on it. I just saw that the minimum requirement for .NET 4.5 is Win7 SP1 or Vista SP2. I think I just need to update it sometime. I'll take a look at your data structure trying to figure some more out I should have an old save lying around somewhere. EDIT: I'm progressing slowly trying to find a correct data structure. I'm going with your example, apples. You should take a look at this (example of 8 apples in my inventory): 00000001 00000000 01101000 00000011 00000010 00000000 11010000 00000110 00000100 00000000 10100000 00001101 00001000 00000000 01000000 00011011 00010000 00000000 10000000 00110110 00100000 00000000 00000000 01101101 01000000 00000000 00000000 11011010 10000000 00000000 00000000 10110100 00000001 As you already figured out, there's some shifting happening here. But the funniest thing is, I don't think an item takes 31 bytes. Why would the first line otherwise end with an 1? I tested it with only one apple in my inventory, and it showed me the complete first line. Plus, it would be weird for the devs to store it like that. There's some pattern though. Take groups of 16 bits, shift them a couple of times to the right (how much is depending on the line number) WITH overflow. Don't know how it's called properly, but when a bit gets lost while shifting, it gets added to the other side. (see edit 2) That's not the complete story though. As you can see, there's an extra byte in the 8th line. I don't know why, but it seems like it's another shift, although a very weird one. So if you shift everything, you get this: 00000001 00000000 01101000 00000011 00000001 00000000 01101000 00000011 (>> 1) 00000001 00000000 01101000 00000011 (>> 2) 00000001 00000000 01101000 00000011 (>> 3) 00000001 00000000 01101000 00000011 (>> 4) 00000001 00000000 01101000 00000011 (>> 5) 00000001 00000000 01101000 00000011 (>> 6) 10000000 00000000 00000000 10110100 00000001 (this is a tricky one...) If you go on like this (I've tried with 16 apples), you get the exact same results, only at another offset. It seems like the first page of your inventory is at 0x8BA2 - 0x8BC2 (33 bytes long), second page is at 0x8BC3 - 0x8BE3 (also 33 bytes long), etc. This results that the total inventory of 48 items (6 pages) is located at 0x8BA2 - 0x8C67 (198 bytes long). Then again, I really don't know what the devs were thinking about this shifting process... it seems a bit... inconvenient. But this is what I got from my test results. I'll try with another item, trying to figure out the whole shifting process. EDIT2: Take a look at https://en.wikipedia.org/wiki/Bitwise_operation#Rotate_no_carry (or https://en.wikipedia.org/wiki/Circular_shift) for the bit shifting that is used here (aka bit rotation or circular shifting). EDIT3: Found what I was looking for, a complete brain breaker. Ignore the first 3 (but you can use them for more research): 8x Petrify Orb: 00000001 00000000 11111000 00001001 00000010 00000000 11110000 00010011 00000100 00000000 11100000 00100111 00001000 00000000 11000000 01001111 00010000 00000000 10000000 10011111 00100000 00000000 00000000 00111111 [color=red]01000001[/color] [color=red]01000001[/color] 00000000 00000000 01111110 [color=green]10000010[/color] [color=green]10000010[/color] 00000000 00000000 11111100 00000100 As you can see, the Petrify Orb has more overflow to the next set of bits. And for future reference, team members holding items: 8x Petrify Orb (with some given to members): 00000001 00000000 11111000 0[b]1[/b]001001 (1st team member) 00000010 00000000 11110000 00010011 [color=red]0000010[b]1[/b][/color] (2nd team member) [color=red]00000101[/color] 00000000 11100000 00100111 [color=green]000010[b]11[/b][/color] (3rd team member) [color=green]00001011[/color] 00000000 11000000 01001111 [color=blue]0001[b]1[/b]000[/color] (4th team member) [color=blue]00011000[/color] 00000000 10000000 10011111 00100000 00000000 00000000 00111111 01000001 00000000 00000000 01111110 10000010 00000000 00000000 11111100 00000100 According to this, I've concluded the following: each item indeed uses 33 bits. Following up the last example, you can do this: 8x Petrify Orb (with some given to members): 00000001 00000000 11111000 01001001 [color=red]0[/color] 0000001[color=silver]0[/color] 00000000 11110000 00010011 [color=red]01[/color] 000001[color=silver]01[/color] 00000000 11100000 00100111 [color=red]011[/color] 00001[color=silver]011[/color] 00000000 11000000 01001111 [color=red]1000[/color] 0001[color=silver]1000[/color] 00000000 10000000 10011111 [color=red]00000[/color] 001[color=silver]00000[/color] 00000000 00000000 00111111 [color=red]000001[/color] 01[color=silver]000001[/color] 00000000 00000000 01111110 [color=red]0000010[/color] 1[color=silver]0000010[/color] 00000000 00000000 11111100 00000100 And then you need to read it from right to left, grouped as above (I think), which results in: 8x Petrify Orb (with some given to members): 0 01001001 11111000 00000000 00000001 01 00010011 11110000 00000000 0000001 011 00100111 11100000 00000000 000001 1000 01001111 11000000 00000000 00001 00000 10011111 10000000 00000000 0001 000001 00111111 00000000 00000000 001 0000010 01111110 00000000 00000000 01 00000100 11111100 00000000 00000000 1 And then polishing it a bit up: 8x Petrify Orb (with some given to members): 00100100 11111100 00000000 00000000 1 (1st team member) 01000100 11111100 00000000 00000000 1 (2nd team member) 01100100 11111100 00000000 00000000 1 (3rd team member) 10000100 11111100 00000000 00000000 1 (4th team member) 00000100 11111100 00000000 00000000 1 00000100 11111100 00000000 00000000 1 00000100 11111100 00000000 00000000 1 00000100 11111100 00000000 00000000 1 And there you have it! I hope, at least it looks like this is it. It's possible the reading from right to left is a bit off, because I do not exactly know the ordering and grouping (this just seemed logical to me). I guess you need to experiment with some other items to figure the ordering out. But it definitely looks like something EDIT4: I really don't know if you like figuring these things out yourself, but I don't think you have to anymore (sorry if you wanted that, but I was a bit caught up in this ). I've looked some more with random items, and I can confirm this data structure is indeed correct. Let me explain the structure: hhhxxxxx xxxxxx00 00nnnnnn n0000000 1 h = member holding bits (000 = none, 001 = member 1, 010 = member 2, 011 = member 3, 100 = member 4) x = item ID (total amount of 1,351 items, so 1 - 1,351) n = item amount (0 - 99, 0 for items without an amount) 0/1 = seems to be constant on my part / unknown Of course you'll still need to decode and encode it. But you can read that method in my earlier edits. In order to get the total amount of available items, I've dug up some old program from 2009 in which I can view/edit the MD strings in the rom. It lists every item (and more) ingame. Luckily, the string order is exactly the same as the item IDs (with an offset of course). I can send it to you if you want. This way you can make a list of items names .
  10. Wow... good job on finding that. I know I've tried to edit the saves way back when the game was just released, but miserably failed. Certainly didn't thought of trying this. But... .NET 4.5 already? Right... Win8. I'm still stuck at Win7 and .NET 4.0 . Don't want to switch over to Win8 Anyway... again, good job. Although I haven't played it anymore for like... many years, I'll be watching this thread and you since it's interesting to follow the progress >
  11. I sent you a PM. Haha, yes. The names will definitely be updated (I saw someone has posted something about Scyther being misspelled as Scyter too..., so I'll fix that as well). I also think it's about time I give you a heads-up. I haven't been able to work on PMGE for the last couple of weeks. But I've made some progress before it that I haven't shared yet. I'm currently busy redesigning the interface and optimizing the internal code (read: almost rewriting from scratch). I'd like to know your thoughts about the new user interface: here and here. As you can see in the first image, the whole interface is different. Now, it only has text, text and text. Most text is clickable though, this way you can edit it. You should notice it in the image as well: when you hover a editable item, it blinks (fade animation), though you cannot see my mouse pointer, it's there I assure you. The second image shows the text editor for the description of a card. The reason I changed it to this, is that 1) users won't be flooded with editable items and 2) the interface looks way cleaner now. But now I'm stuck with the Pokémon/item/etc. exporter/importer/editor for the PCDs. Since this a variable part of the card, I cannot simply create one editor for it. So I need to find a solution for this. Please keep in mind that this is only done for the PCD files currently, since I already had a working code base for reading those. If more people like this interface, I'll extend it to other files later. If not, I'll change it before extending it, but I'd like to know what I need to change. So, let me hear your thoughts!
  12. Oh now you mention it, distribution cards, I have used them in the past. It was for a friend of mine who didn't have the ability to edit saves, but still wanted some events. But as I already said, I won't argue with you about this feature. Why I added this feature? It helps learning something about a subject. In my case, hex editing saves and programming in C#/WPF. It nice when you have a goal, instead of doing something without one. I just tried to express my first impressions about Pokegen in a neutral way; explaining why people can have the feeling it's been thrown in together. If you don't appreciate constructive criticism, the error is not on my part. However, if it wasn't clear for you I tried to be neutral, I failed and therefore I'm sorry. Let's close this matter and move on. I didn't come back just to argue about something. It did help to quickly check if cards were legal or not. And hiding or locking the advanced stuff in order to prevent it from being edited accidentally, that's a good point as well. Then again, I based it mostly on Pokesav's design, which isn't that great or straightforward. But I'll change that. Aww... I was hoping to find one are you a designer then? I need a new icon and I'm bad at drawing stuff (be it on paper or digitally)... Anyway, thanks again for your post. It's nice to know that you can help testing later Btw... I want to remake my GTS querier program for releasing it to the public as well. It's not a custom GTS server (too many exist already), but mainly a checker/querier for the official server. This way you're able to tell if a Pokémon on the GTS is legal or not. But I'm not too sure if this will cause a massive start of GTS hacks (if not already). Because the transmission is not encrypted, everyone can make a application that's pretending to be the game. This way, you can practically tell the server to post/retrieve/trade/etc... Then again, the protocol is lying around somewhere until someone picks it up and do stuff with it. It depends how much time I have and if there are people that will actually use it. The GTS itself is still being used. I just tried it again, and I got a result from last week. You can also see that this Charizard here has been cheated in through Action Replay codes... Something you can't see in-game until you trade it. Which is a shame really...
  13. That's your opinion, it's your choice to implement it or not. But please do not say it's "pointless except for idiots", because it makes me an idiot then... And I'm definitely not, thank you very much. The main reason why I created this program, is that there wasn't a good wondercard importer/exporter yet. There was Pokesav, which mainly corrupted the files when a character wasn't supported. There was a command line importer/exporter, which many people don't like. There was... nothing else really. I'm not going to argue with you about the editing feature. However, I have to agree with evandixon regarding Pokegen's GUI. It does look like it's been "thrown in together inside a textbox just to support mystery gifts". From what I've seen of main GUI, it could've been better. Even if you don't want to support card editing, at least sort some things out. Don't format everything to one string and put it in a textbox. It easy to code it, but it negatively influences the usability for the users. Tell me, if you look at e.g. YouTube's search interface, imagine it does not provide thumbnails, styling, etc. whatsoever and it's one block text containing your search results, would you like it that way? I don't. When everything is divided into a recognizable layout, you can go directly to what you're interested in and skip the rest. People want to use the software as fast and efficient as possible these days. Which clearly does not apply when everything is one block text, because you have to read everything in order to find what you're looking for. Now I cannot say PMGE is a good example, because it isn't. It does have everything divided into smaller parts, but the interface is way too advanced for most users. In order to simplify it, you need to design it in a way that it's (mostly) recognizable for the users or leave things out, otherwise it might lead to poor design. Anyway, that's just the impression of fellow developer. I know designing a good GUI can be hard (sometimes nearly impossible even), that's why we have a course dedicated to it. The main problem is that developers are designing graphical interfaces in their point of view, not the user's point of view. It may make sense to you, but it might not to someone else who has to use it. Edit: Thanks Nigoli for your bug reports, I'll take those into account later. Currently I'm trying to refactor everything only while maintaining all current important features. So when I release it on GitHub for the first time, new features won't be added yet (like Gen V stuff). Then I'll slowly make progress fixing and/or implementing them.
  14. Thanks! Haha, yeah... I have 3 years BSc and 2 years MSc (provided I can make it in time and I decide to do MSc ). Anyway, I found the source, and as I assumed, the code is a mess. I don't know if you know some programming terms, but in that time I was like "inheritance, what is that?", "unit testing?! wtf are you talking about?", "documentation? meh..." and so on. And I think Microsoft deprecated a feature in .NET 4.0 I used in WPF (the one that's supposed to make some texts glow with a white color so it's easier to read against the dark green background). I don't know what issues there are at the moment, but I think I haven't fixed the Gen IV save files problems in the newest version (and probably other problems as well). And now I definitely don't remember where the problem lies anymore. So... I'm thinking of making a new project and importing the original code while refactoring it, which would probably solve a lot of bugs (but may introduce some new ones as well). I saw that I still have some very old files which the newest versions don't use anymore (yay for primitive version control...). I would like to know if the Gen IV parts are working as intended (apart from the saving problem). Clearly the Gen V parts are not, since the research was still in its early stages in that time. But I don't know what the latest R&Ds are. And I need to refresh my knowledge about this subject again before adding new features. And I think I'm going to strip out some features. E.g. the context menu registering feature was nice, but was anyone actually using it? It required an install, but I think more people like having this program portable. This means I can focus on more important features. And as for other developers, I'd love to 'recruit' them . Because as I said, I'm thinking of releasing the source on GitHub, so others can do pull requests and such. Also, an issue tracker is a must... The one thing I definitely need help with later on (or others working on) is the AR part. I don't get it why it's that popular. Maybe it's me not using it, or the country I live in where it's not that popular, or maybe it's something else entirely. Right... I'll try to get a working base from my old source code. When I'm done, I'll try releasing it on GitHub and see how it goes. Which may take some time though. In the meantime, I'll try to keep you up to date. And if there are some devs out there willing to contribute, please don't hesitate to reply or PM me! I'm more willing to continue the development if there are some other devs as well. But please do note, I've decided to stay with C# and WPF for the moment. The GUI is just too awesome, plus, I hope I can use it as a base instead of redesigning it, which will save me some time. So, thanks again for your reply. And I feel I need to thank all of the people here who helped maintaining this thread and helping others while I was away. I haven't read all the posts, nor will I because most of them are outdated, but it definitely gives me the feeling this subject of Pokémon is not dead yet (I'm actually surprised the forum is still active, although not as active as it was back in 2010/2011 I think). So yeah, thanks all!
  15. Hello from an old friend! I noticed I still got replies on my old project in my email, though I didn't read them. I owe you all an apology for not keeping you up to date about my status and such. So for that, I apologize. I hope you want to hear me out on this, so please read this post. You can skip a few parts you're not interested in, but since it has been 2½ years, surely I can take away a few minutes of your time? I simply lost interest in keeping this application up to date, that's one reason. I lost interest in the main Pokémon games as well (even when I still was developing this program). The other one is, well... real-life can be such an ass sometimes... (when does it not?) I needed to pass my exams in 2011 in order to be allowed to go to college. And since that had a higher priority, I left this project alone for a while in the hope I could return again someday (I believe it isn't the first time I left without saying anything). Anyway... that's way in the past. I passed my exams thankfully. I'm studying Computer Engineering at the Delft University of Technology now, how ironic (and yes, I'm Dutch for those who hadn't noticed). I'm in the second year of my BSc and almost everything is going as well as I hoped it would be. The first year was easy, though I didn't pass Linear Algebra part 2 (the only course that's prevented me from getting the full 60 ECs). The main reason for being it an easy year overall, was because of me working on projects like this one. I learned a lot from it, though not everything. That's why I moved on to other small projects. Okay... before I'm going to bore you with my life story, let's get on with the status update on this application I wanted to give you. I noticed that my thread is still stickied and people are still posting in it, which gives me the impression people are still using it. Although I have to admit I have been offline for too long, so I don't know exactly how much interest there is anymore. Please let me know if there are still people who want to see this application have another boost. This reminds me of someone asking me to release the source a long while ago. Short story, I rejected. The main reason was that I didn't know how to use version control properly (SourceForge was the leader in that time, and SVN isn't easy to use) and I didn't want to release the source right there and then without proper version control so that other people could contribute (that, and I thought the code was a mess, and now I'm sure of it, because it's 2½ years later and I've progressed far in software engineering). I'm currently thinking of open sourcing this application as community based software development on GitHub, if people are still interested that is. Though I'm not sure if the current state of the application statisfies me or others, so maybe there will be a lot of refactoring before I may be able to release the next version. And I'm also not sure if I still need to develop in C#. .NET is a great framework, don't get me wrong, but it's only available for Windows. Of course, there's Mono for Linux and Mac I believe, but it's only for Windows Forms Applications, and for the sake of it I made this one in WPF ('cool animations and theming possibilities', I thought at that time, and you gotta admit, it does look cool ), and I got almost flamed for it from Windows XP users as well, as it meant partly dropping support for that OS (it was 2010 I believe, why were there still people using that OS that was released in 2001? Thank god everyone uses Windows 7 now). Anyway, don't suggest moving to Java, just don't. On the other hand, C# is easy to learn and use, and there is a base right now, even if a lot of refactoring needs to be done. It depends how much interest there is and how much people want to contribute. Long story short, if you want to give this application another boost, let me know by replying in this thread. And let me know if you want to help contributing on the source code too, for I will release it on GitHub iff (yes, iff, it means if and only if) there are people wanting to revive this application. Just don't get me wrong, there won't be a next version in the next weeks or months (maybe even never, I don't promise anything). Since I'm going to colleges, I haven't that much time left in comparison to I had before it. Just one another note, I don't want some random people trying to contribute, I need people who have at least some knowledge of programming in C# (or another language, but you definitely need to be good at it, because it means rewriting everything) and GitHub. If you have a GitHub account and contributed something, post your account so I can be sure you have the skills. One last disclaimer: I hope I still have the source code. I never throw something away without a reason, which is why I still have countless of useless projects in my Visual Studio folder since 2008 (and 40+ GB of documents, but I'm pretty sure there are some idiotic applications saving data to this folder as well...). I have seen the PMGE folder, but you'll never know. For those of you interested in what kind of projects I was working on (skip this part otherwise): HexEditHelp for Pokesav (a tool for hex editing the Pokesav application for translations and such), Pokémon GTS Querier (a tool for querying the GTS servers, it shows more data then the game itself, never publicly released because you could get the PKM files, only given to some moderator/developer/administrator around here, can't remember who), SavSendReceive (thread can still be found on gbatemp.net I think, it's a wrapper around NetCat and NDS homebrew software for sending and receiving save files over WiFi, I think it supported real game carts, but I can't remember), PMD2textEDIT (an editor for PMD2 roms, helping me translating some of the Japanese text to the English ones before the English version released, also on gbatemp.net I think), a bot for some Steam games giveaway site (never publicly released for obvious reasons, I'm even not actively participating on that site anymore), an old school project on which I (with another person) got a 10 (which is an A+ in US terms I believe), some old school hacking tools, some old test projects, many old started but never finished projects. So yeah, I've quite a history. Many of them were from before or around the time I developed PMGE. Currently I'm working on a Steam bot and a website around it for managing my private Minecraft server remotely through HTTP and Steam chat, but that's progressing slowly. I might hear from you guys, or not. I hope the first one, since I was afraid of rage posts like "WHERE IS THE F*CKING DEVELOPER I WANT THIS SH*T UPDATED RIGHT NOW!", but since this is not the case I really hope I can restart the development after 2½ years. I put a lot of effort in it, and it showed, as it was quite popular at that time. And for the one hoping I was alright (Conri I believe), I am, and for the record here, I'm a 'he' . And yeah, I'm bad at organizing posts. If I say, "just one note" or "one last disclaimer", it doesn't necessarily mean you've almost reached the end of the post . So... long post is long, but you're almost done I promise. Grtzz!! Oh... for the people who have PM'ed me in the last 2½ years and are reading this: I haven't read them yet, and don't be so sure to get a response from me. It may not be relevant anymore.
×
×
  • Create New...