From 75e481b8054fb685f94eeb59e92c4fb50e6d4611 Mon Sep 17 00:00:00 2001 From: Svjatoslav Agejenko Date: Sun, 7 Apr 2013 15:12:11 +0300 Subject: [PATCH] initial commit --- .classpath | 26 ++ .gitignore | 1 + .project | 23 ++ .settings/org.eclipse.core.resources.prefs | 3 + .settings/org.eclipse.jdt.core.prefs | 5 + .settings/org.eclipse.m2e.core.prefs | 4 + COPYING | 341 ++++++++++++++++ doc/JavaInspect.dot | 266 +++++++++++++ doc/JavaInspect.png | Bin 0 -> 170735 bytes doc/example.png | Bin 0 -> 49583 bytes doc/example.resized.png | Bin 0 -> 46577 bytes doc/index.html | 139 +++++++ doc/legend.png | Bin 0 -> 31970 bytes pom.xml | 103 +++++ .../example/RenderExampleProject.java | 26 ++ .../example/RenderJavaInspect.java | 34 ++ .../structure/ObjectReturnedByMethod.java | 5 + .../structure/ObjectVisibleAsClassField.java | 5 + .../example/structure/SampleClass.java | 11 + .../example/structure/SampleEnum.java | 7 + .../example/structure/SampleInterface.java | 5 + .../example/structure/SampleSuperClass.java | 10 + .../structure/ClassDescriptor.java | 366 ++++++++++++++++++ .../structure/FieldDescriptor.java | 136 +++++++ .../javainspect/structure/Graph.java | 110 ++++++ .../javainspect/structure/GraphElement.java | 22 ++ .../structure/MethodDescriptor.java | 140 +++++++ .../javainspect/structure/Utils.java | 144 +++++++ 28 files changed, 1932 insertions(+) create mode 100644 .classpath create mode 100644 .gitignore create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 COPYING create mode 100644 doc/JavaInspect.dot create mode 100644 doc/JavaInspect.png create mode 100644 doc/example.png create mode 100644 doc/example.resized.png create mode 100644 doc/index.html create mode 100644 doc/legend.png create mode 100755 pom.xml create mode 100644 src/main/java/eu/svjatoslav/javainspect/example/RenderExampleProject.java create mode 100644 src/main/java/eu/svjatoslav/javainspect/example/RenderJavaInspect.java create mode 100644 src/main/java/eu/svjatoslav/javainspect/example/structure/ObjectReturnedByMethod.java create mode 100644 src/main/java/eu/svjatoslav/javainspect/example/structure/ObjectVisibleAsClassField.java create mode 100644 src/main/java/eu/svjatoslav/javainspect/example/structure/SampleClass.java create mode 100644 src/main/java/eu/svjatoslav/javainspect/example/structure/SampleEnum.java create mode 100644 src/main/java/eu/svjatoslav/javainspect/example/structure/SampleInterface.java create mode 100644 src/main/java/eu/svjatoslav/javainspect/example/structure/SampleSuperClass.java create mode 100644 src/main/java/eu/svjatoslav/javainspect/structure/ClassDescriptor.java create mode 100644 src/main/java/eu/svjatoslav/javainspect/structure/FieldDescriptor.java create mode 100644 src/main/java/eu/svjatoslav/javainspect/structure/Graph.java create mode 100644 src/main/java/eu/svjatoslav/javainspect/structure/GraphElement.java create mode 100644 src/main/java/eu/svjatoslav/javainspect/structure/MethodDescriptor.java create mode 100644 src/main/java/eu/svjatoslav/javainspect/structure/Utils.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..fd7ad7f --- /dev/null +++ b/.classpath @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2f7896d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +target/ diff --git a/.project b/.project new file mode 100644 index 0000000..9a24d02 --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + javainspect + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..5b781ec --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/test/java=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..60105c1 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..ff7698f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=false +version=1 diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..10828e0 --- /dev/null +++ b/COPYING @@ -0,0 +1,341 @@ + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/doc/JavaInspect.dot b/doc/JavaInspect.dot new file mode 100644 index 0000000..fc58358 --- /dev/null +++ b/doc/JavaInspect.dot @@ -0,0 +1,266 @@ +digraph Java { +graph [rankdir=LR, overlap = false, concentrate=true]; + +// Class: eu.svjatoslav.javainspect.structure.ClassDescriptor + class_eu_svjatoslav_javainspect_structure_ClassDescriptor[label=< + + // class descriptor header + + + // fields: + // methods + + // distinctiveReferenceColor + + // interfaceColor + + // superClass + + // dump + + // MAX_REFERECNES_COUNT + + // nameToFieldMap + + // superClassColor + + // isInterface + + // referenceCount + + // isEnum + + // interfaces + + // fullyQualifiedName + + // isArray + + + // methods: + // getClassName + + // getDot + + // isVisible + + // indexFields + + // areReferencesShown + + // enlistFieldReferences + + // enlistFields + + // getEmbeddedDot + + // enlistImplementedInterfaces + + // getGraphId + + // enlistMethodReferences + + // enlistMethods + + // enlistSuperClass + + // generateDotHeader + + // getBackgroundColor + + // getBorderWidth + + // getPackageName + + // getAllFields + + // getColor + + // getDistinctiveColor + + // setDistinctiveColor + + // registerReference + +
eu.svjatoslav.javainspect.structure
ClassDescriptor
Listmethods
StringdistinctiveReferenceColor
StringinterfaceColor
ClassDescriptorsuperClass
Graphdump
intMAX_REFERECNES_COUNT
MapnameToFieldMap
StringsuperClassColor
booleanisInterface
intreferenceCount
booleanisEnum
Listinterfaces
StringfullyQualifiedName
booleanisArray
StringgetClassName
StringgetDot
booleanisVisible
voidindexFields
booleanareReferencesShown
voidenlistFieldReferences
voidenlistFields
StringgetEmbeddedDot
voidenlistImplementedInterfaces
StringgetGraphId
voidenlistMethodReferences
voidenlistMethods
voidenlistSuperClass
voidgenerateDotHeader
StringgetBackgroundColor
StringgetBorderWidth
StringgetPackageName
ListgetAllFields
StringgetColor
StringgetDistinctiveColor
voidsetDistinctiveColor
voidregisterReference
>, shape="none"]; + + // field references to other classes + class_eu_svjatoslav_javainspect_structure_ClassDescriptor:methods -> class_eu_svjatoslav_javainspect_structure_MethodDescriptor[label="methods", color="antiquewhite4", style="bold"]; + class_eu_svjatoslav_javainspect_structure_ClassDescriptor:dump -> class_eu_svjatoslav_javainspect_structure_Graph[label="dump", color="blueviolet", style="bold"]; + class_eu_svjatoslav_javainspect_structure_ClassDescriptor:nameToFieldMap -> class_eu_svjatoslav_javainspect_structure_FieldDescriptor[label="nameToFieldMap", color="brown4", style="bold"]; + + // method references to other classes + class_eu_svjatoslav_javainspect_structure_ClassDescriptor:getAllFields -> class_eu_svjatoslav_javainspect_structure_FieldDescriptor[label="getAllFields", color="brown4", style="dotted, bold"]; + + // interfaces implemented by class: eu.svjatoslav.javainspect.structure.ClassDescriptor + class_eu_svjatoslav_javainspect_structure_GraphElement -> class_eu_svjatoslav_javainspect_structure_ClassDescriptor[style="dotted, tapered", color="olivedrab2", penwidth=20, dir="forward"]; + +// Class: eu.svjatoslav.javainspect.structure.MethodDescriptor + class_eu_svjatoslav_javainspect_structure_MethodDescriptor[label=< + + // class descriptor header + + + // fields: + // name + + // parent + + // typeArguments + + // returnType + + + // methods: + // getDot + + // isVisible + + // getEmbeddedDot + + // getGraphId + + // getMethodLabel + +
eu.svjatoslav.javainspect.structure
MethodDescriptor
Stringname
ClassDescriptorparent
ListtypeArguments
ClassDescriptorreturnType
StringgetDot
booleanisVisible
StringgetEmbeddedDot
StringgetGraphId
StringgetMethodLabel
>, shape="none"]; + + // field references to other classes + + // method references to other classes + + // interfaces implemented by class: eu.svjatoslav.javainspect.structure.MethodDescriptor + class_eu_svjatoslav_javainspect_structure_GraphElement -> class_eu_svjatoslav_javainspect_structure_MethodDescriptor[style="dotted, tapered", color="olivedrab2", penwidth=20, dir="forward"]; + +// Class: eu.svjatoslav.javainspect.structure.Graph + class_eu_svjatoslav_javainspect_structure_Graph[label=< + + // class descriptor header + + + // fields: + // nameToClassMap + + + // methods: + // addClass + + // addObject + + // generateGraph + + // generateGraph + +
eu.svjatoslav.javainspect.structure
Graph
MapnameToClassMap
ClassDescriptoraddClass
ClassDescriptoraddObject
voidgenerateGraph
voidgenerateGraph
>, shape="none"]; + + // field references to other classes + + // method references to other classes + +// Class: eu.svjatoslav.javainspect.structure.Utils + class_eu_svjatoslav_javainspect_structure_Utils[label=< + + // class descriptor header + + + // fields: + // lightColors + + // systemDataTypes + + // lastChosenLightColor + + // lastChosenDarkColor + + // systemMethods + + // enumMethods + + // darkColors + + // systemPackages + + + // methods: + // initDarkColors + + // initEnumMethods + + // initLightColors + + // initSystemDataTypes + + // initSystemMethods + + // initSystemPackages + + // isSystemMethod + + // getNextDarkColor + + // getNextLightColor + + // isSystemDataType + + // isSystemPackage + + // isEnumMethod + +
eu.svjatoslav.javainspect.structure
Utils
ListlightColors
ListsystemDataTypes
intlastChosenLightColor
intlastChosenDarkColor
ListsystemMethods
ListenumMethods
ListdarkColors
ListsystemPackages
voidinitDarkColors
voidinitEnumMethods
voidinitLightColors
voidinitSystemDataTypes
voidinitSystemMethods
voidinitSystemPackages
booleanisSystemMethod
StringgetNextDarkColor
StringgetNextLightColor
booleanisSystemDataType
booleanisSystemPackage
booleanisEnumMethod
>, shape="none"]; + + // field references to other classes + + // method references to other classes + +// Class: eu.svjatoslav.javainspect.structure.GraphElement + class_eu_svjatoslav_javainspect_structure_GraphElement[label=< + + // class descriptor header + + + // methods: + // getDot + + // isVisible + + // getEmbeddedDot + + // getGraphId + +
eu.svjatoslav.javainspect.structure
GraphElement
StringgetDot
booleanisVisible
StringgetEmbeddedDot
StringgetGraphId
>, shape="none"]; + + // method references to other classes + +// Class: eu.svjatoslav.javainspect.structure.FieldDescriptor + class_eu_svjatoslav_javainspect_structure_FieldDescriptor[label=< + + // class descriptor header + + + // fields: + // name + + // parent + + // typeArguments + + // type + + + // methods: + // getDot + + // isVisible + + // getEmbeddedDot + + // getGraphId + +
eu.svjatoslav.javainspect.structure
FieldDescriptor
Stringname
ClassDescriptorparent
ListtypeArguments
ClassDescriptortype
StringgetDot
booleanisVisible
StringgetEmbeddedDot
StringgetGraphId
>, shape="none"]; + + // field references to other classes + + // method references to other classes + + // interfaces implemented by class: eu.svjatoslav.javainspect.structure.FieldDescriptor + class_eu_svjatoslav_javainspect_structure_GraphElement -> class_eu_svjatoslav_javainspect_structure_FieldDescriptor[style="dotted, tapered", color="olivedrab2", penwidth=20, dir="forward"]; +} diff --git a/doc/JavaInspect.png b/doc/JavaInspect.png new file mode 100644 index 0000000000000000000000000000000000000000..057976bb569a8b92789578268525e88f5e8847de GIT binary patch literal 170735 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%0AU8W5PicV^Y`{Su`w||{HapF*VMyO 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

E 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 I#Ek;}9~<8Q0{{R3 literal 0 HcmV?d00001 diff --git a/doc/example.png b/doc/example.png new file mode 100644 index 0000000000000000000000000000000000000000..7b495ed4091b84df8983e4e73dcb542fa0253f05 GIT binary patch literal 49583 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

!H|&O?gXRJ?&+z@={S%wZVboqOjrO;v$pS z=yZCx>3g*~C!}qOEX1R#obWUwgCd$^+B%XMLF17Xfm;CA0talcLdc7d%q=bZzT`4Z z_350WHw0rin!Y9jPzEgDoZ)ABR&S0 z%3D2c3l+zO{Qo_@_=4r${(eI~3sU2GX<6B2DO^Wedv0xGbCad&>lc4fvl>w z{AWoGqTI>WZUu1A?&z2y zv(IoqD#ZtV5`r-XH#@7NyEXT0(kqiKq;{#m$^e%Fyc0JVGTc!ET!VANsoF=peBPit zcA+ogluhmL>u@tv780^chz|P4$hs0yD2%*Z6GfnjC=BUS)?n7>x2@*w25$=PuB;Ca z+Vvb4&Q7;h*CPY62GPDQs{OghUMONeI^Q*}WBZSstL2p%U};zZoX%$AU@>-J1ODaw z{qgA#+*^G|bw=HBAH1G}@|Hk>EEJscMVqAGq696wZ~ttH|v; z=rc1jXrdZ_m%wlIZt3gcMeKR$R7HcSoLq(cCaxm{Zi#Hb)@(}1iiwChjLD1X@^nc( z<#+lnW(Onm+na3lBoUlOS?zjInIy+>iNm+c!gChW!L<=lU*5w=iq(ARc-`F$o<)ULDur-}wO zkiuv03FYYA~FA7w^(KzfJ&UNo5)%Uas{6sbIJ^syQpA;n*HQ&& zw(HaOXoq~;BCncDhk z9HSQ+C@85BG@=F0ioevenkiu9UpqZ2Q$<^zY~=F;GH^oz0f}f(WnOoiadyG=d7hW2 z{y3a~EI5L{{;(ayj{ni;XFWN$`_2SR%%Oiap$sa>&wtBKR5a-cR2D#i)S*-Hb5Es_ASBdrQE!$7mC;ZYrm5dCwG^BsQg&oEm>QRO^G{sRsquh-Yx*+38zre0rPr)Soly0ffn0V-gfGVPJ| ztCaUfoiw`STEp@5^3B@-8U~rJ16oH^;$C7`t3hKDf9wqnGxR&-d-5;8!8VO^fL7b* zrEk|MDJcu~U}?;wrGOc|b>@oN#j|*mcF$$Gu;3$iQH|mkk{s%HVT=|Z=4K{U4f=@v zg>!f6q*)!w18T}Wo?tj1&NV7BhWm4hUkRT6_}Z{1FfI)z^0gm573P>i3ZPg1p$$?u zCj0uZTNe7dY>?7I8%wb=zVM-e2DL|AWuejGI~@HVMMW#CeiiJ3Ki^WVw`6FIaP})N z2``6zZ*$xGg@$k2v;dTy^FV{kl5R(EiVo&=^A0FLgj zBT;({4Z{(ohyg0Q&Oe83c!H27TIip<%avF%essr}A|}>0-#_kdKTNoWQ@GdT<*7XP zN{Y6IQ`enae$^Hq0EtP1{oDyGjN0#XL=YfrBGD`2^zmx+;e1073x0lWnk-8GEULH>f1-6k^x zlhbI7AM+vxW-Gm>s_S3W^7jN;==n?@MWCG?roIbhl4wZFLUW(!XnFCj???>EQk-x~ za+wyDrXO3-uP(1=-!@K+NkUQw*qkJyNe^ieFv7=eDve7ILDVKL!j-gEtFJH!Vf;v-p}&XzV%jPS-ZQt!&1`HPmA9J3f)Ob%}n&H?={PwWdI7lJn0Lxsh)}4*9RKeXObu{X@;@AiR-) zHX~)zvz`)cEmyzvuSdPhZV- z^{C&JT03k!YkAkY_ys11m9V`eTE%{zO*B!}Y&Ov$T%xAL(XuAZ`T7BrE6OEc2qt8wpwPdhBibkPzaP-a{`Cho`nTA=w2!4vDaf1^~ zW@9E08RJz91*v(5g2#u&=J5k}`tM%nd*3l}3o^vL1#BDCT;wAXsLCO;byhfzxH^Kx zN&qJSVsr$k6`&=QSBAbD29Oyr9SBU6$;_v&xq{^DOvD|%D;qxD0w^M2XGljkzSDN- zoEws2iYW>@tA72a&`amlD-=-TM@uGNUS6kAhN{+7e<8PUNlZ*KKIUS}+xyCQZNJ0; zAms(kFvhAiKagecLegv-$T2f#{1?urO1%^BaOTgK-hNy5*dNMG^`Z4R(qS(-`564d%94lKR94AA)j*7F}HqEnEPUt8&kX zW%yGpiqCT=Mt+uQ{C0(UN}U+KbJDuuRAn49{qQetj4wn1FQ=L=KpOpuU%hVqvGFQ# zVO56M)Me*iN)~9z_kiSfUtIjHaz5TGsr8M%e(8VK)W8fdU4Jm@yxSdC6?#)BwuP?j zGxz5!gUka?d4{AjF+w$!N)R60G)#Yiq>sOibY;dQi?P%D8FEV`HeFPa z+iv^<`MLxxFxftccS(tp_Y*k$k^NC=!-QT4ju92D>vMmfkm*o6w>Zg3HlJ4MdH2NN zN9CjI{*U>JPOHs;Toji?Dzlp`sI}XP&tw_h9o^9AhnsEvxKMUqCo{PMM8K|RSvGWJ;!hhYdAf#0PPMrNMHB_|bbh~-T`+eN(xnS9yvpL=& zNw`XBvOOq*XnYvY>RyP$D(1b->1Z?j*R1U@zqt7lVXn>Nru~mW;TO&yz~_|~3k}Qd z;)b!ji!rPEPUktPOP$~L2tb};Q+#V+-qoM7OibnpX<^o&8es75I4Nkp5qk|vN4i=~XUVJi4VTN_AU=C#f0Qfdc?wfZzL)Zrs-x>|oq2$)7 zc)g|J(w?54t8=FB$&L6tGW{_%E+H55c0PG~?BUsLqkOL=$s=MVZWJoMRSCET-FUXc zrgY1WCVrk_f$pr1tE0yJUn}Sfd~n4RxF}O(MAb_pk4r6JtdtZ`M!H%g7U)c3r1Y^c zX0%MI8y&zV2YJTTC5ch{HBM-$#w97#{!PjLZ83*WZ38Vn=#=vFqOEvYy?RBLl^lu# zBQ^RQ8M!~-Uv#w6IRXU2MYSXOhc`g8fC1hqU0h}S~kcS$N zOHPO2ClvjN9a3-J5J+n}Iem0-bJ6HliHH#q3V-+%Sr#eO@_9{E$PKSR2q{O_0i%G> zL0Q?rCa|EMh%UVE>PxS(KX_9}#k->0g!9@@NXgkFbm;Zdt)X=noZc4r2M34UX{(5# zi1E9-JDq1ZC_%038J3N<76uiuIX1sYiI?Z*^v>;;cvTg>Y;0KWC^Rv(H+54kyxP4? zIGXK|Ujt!bZo~_3%HUm*TD4L4we94}w^P6Eo_(K&3l{)$BJ>=&0a(`C_1FLv{%>W! znnN<9=+eEI5z+GC@nm0rLy&O}1hKHN(BG#Cp{)NfjkxC2n0B6Jbfvll>@#+>~zR?2Jko%n8! zOA4u9gIOR1MvtTYoxM4oXxQ!j@Q61ggQpOx&2!@{z z-33G6e_x!1b@+BKiY-k)B>K+Kd&gFR%*cSwO9=5}(F&B#agrgx*^4_o1l^oA3-`-9 zndL+eXq6xz4;kG*-_nIIHt%0gOim`$j=$d5NaFn6VU(o)7cHTI_OK0aAg4h0M^n<9 zDP1m`(Azie+u?oml6=;H$d2d)%MeZoK!j#wWbE(n-x}3mHb3N!wRC#&IC}{3CsA|| zujdnw@n?;zt?7kZMj3t36;KSeX_)u8`WT(#-SBXOqrUXj88o2|1RCpX$0>>)-W-=! z;$ejV=QLCYFpR2nA97R&p4`0E1lPR*kC3)uU|?*GUSE5PpI`g@GmF$cu~CN^!r{$E z+Ie(aHsO}NVTCB(-L2tzp60|`o8C8FuLW8&(|lEzXJ-WG6=BE#PGEo<;$dMS_u%g4 zmI`ncMbBN`+`a;(KA?iXKg*&}DwnV9gq+Ye@(?N~hxAvn0S2j};#(qBvu~Fa%OFShlEuw#Y8ZAKT8^HU7Kn#z3U0vU- zKY}fPQH;94l{!*)^rJhjsEunh4@nn8v-gu!F8Jed@li!Q=aKEavE#?{>q3_TsOMq5 zT4WJ5NVM+naq~6jX&4+x+GXvrDijo0Xr-@Yd%q|Y1T*y#?PJ!wJgE7luiPNFSc9c6 zIRDYjnsnQbr(c|E%yVVs&lWfSY0QdXg5dUD=H_)K@7N#ql~d6b*`J3;MFM$KahK~J zV_6d2xtLWlq(%UT50hL#WsOffk;6a$0DXHaFOF6u-!h4c0wvdl^w8i}Hd$>HOp;Y+ zhbZCv>M^(smX*2r)dxNxSb;#GHyr@;i-8DaglVOk3$%H<7a7P^gvjncR{$I=B7h(M z5nzMe?E&1Yu#JYjuCrfcOG3=hG7V;eK{zV`dI%3Bi6|>d1M(3^uB0kNP2SE4%^15ywpud?7lhaM+lkTl927<)U*qEf(88fy?22i#Z-ghPK2qdXj^ju)YL&Z5yvVcM{0WZp9J)+zT2QBqJhOV z=!*X$BlDHbJ$3$9n0BH@=!_>_@--ZqB0T#e+I`XVSn{0I$Q8v2O)2@*9H2Qp0{B~p zb9G@|Z|jLQY`&$)g`gA4X3ceK`Gh=^S^jqez38k;A`?%B38KY>P{FSjAfBh|{jqID=BauM^)~oyTZ73U^?bx9 z#7JM?lxT%mW27rT6&H%iaepiJ77&c>IkCPGa5#bAR3y%uzIh#B#&XA+Mjy{dZ6oel z6Z&RXd}p*A%}}Jl#JFj6T;UW|Sw&0xfRqETrN#UM)Jb!}!Fz9x!xZkTqN&8wc1Y6O zEJw(C*A;sApFVf%t^QT4i5O-zoFaW`H&xnT){ou&J}Pj#rv>H_JO;Fjcs~dc9hoPD z^;E6#vt8-^#;iK@({Xl}bTL0%Z_~{%Ika1egQOF6@+%LbD936a-f9%*a=;uf9aL0w#tWVs&Cz&JmQuFG?Ycx zW(iS4NgnEOlUm(4bI5)td*nVVM)PjbBs(KrmXD=E=BEw}*?nq5bt;4NhU9&Q;^{Bg z|FRyfAQ&Y;1NJ68EywAWca{Bu38L5mIGK8csN|wPS5E9cqgmn$Tcbb~)B73EZz(YF zDNzR=9jpnHRM7LpTxY7AqqayMl85ThclzXI8S@_%Qy>?A`K>xGuKD>KtmJjk1i#2Y zp!ECM-K$_U{Ml()l3VbUFth0Ex461)!U3P7w8beK=%!*5OId{(OJaHjU!ZR5$Lo(b)(ESP#pnrY~rz#JZ z0K1>orOqtAWi0BGU=)neB-_M2$+3>f3utE+Yniez2|G`?dwaR7o9f9b?!X0!P?WyDvd(3u%F6Q-&0_|I^ZK2cE~D7j)m0BNf{O{@SmzBm+(>*vCA7%COZMr0pUrh1 zChi%kTa3;9t{qpcNc}J{JBic?_Vc6#My((;7n~DU7Ka;JjKl*OL(kefv^t^wIOrMI z@*t5KWm3rl>3TO}!nimC_#U(H!tO5+b95i9q8)v)(B!w4 z(}LAnPq1eWO4Wx9IauaOwb{t~hF;*mdHdz}=c9a($cAWY3M^zQQ*g`)D_CK(84-o# zS+SOoDw2we^YDx8l&TKrbyU$1_A=W2QA%EORAT8sF)Ut((J%4Gxm*VnLM8+Aoh!de zp!HHIFmaz04DMV>CJ+v_i6$)4n6=KQB}X-EScO7)Hjn@s+2nmmW;i(VU7Oj)1I2}x z9)naD`oc!O>tG&vlJd90t{E8MI?9kpNXnwBstpLcY|Re1nyuE8$7S(Yptou*R)t5% z`LF=$dtbyaA4`W6#r#@L4O>#sPp_8%^scqutUt!cGyFldLpsZa8Hz|AEBJ#K@}Y>I ziig(oi14YZQI?=<5kC+InS*&Ck1=Bn^JrBDKHpUcWw-A)H6{mZo3v0b2=@C_Qu5pW z0@~lsEdlp7IY*UJ)@v{EqX|h( zh6H83ld@9?hvHrj0cjfUr4j+xrQACF?((H>$D2?a0U^E5mR&Dw*u(YXNS1l6q7X&u zMh$x6j&X&01jUy|EQ3X~Zb+7SYPx)r*cE=niSzQ-6_Xep_H-wuLO;pJ==lL>0>)nw zLKe-*DMVb0ooI4={f4-<{OVNtobY%^zb$j0e{GQ{e^H}BZE&=2&=}iTsRPsV~ngqO1a_u0- z8guk&yNp!T@HsW4971C>dFxc=fc-baB+H(sTOa*tN1~Dm%}pK{IW>quMy`x=?Gf2d zfa9%@JN&$w-^uXZgNGZcYz`da*{U1E9Qxt7f^9T2Ol+Lub^bQ{!Eg=1jS^!b_=N!~ zQ8Fqfe~j})@X+cfd@XpaML=cG&NxbS(~Do8!9-tqfM zXG1j;Dik15>W6;%`P7Bs)~6Y?&Jfsm+uRpR9ec0M5GwdF2=(|f!?0nUY}OW0gRkDoENXB8>`~V5ZP_fT1~MeenW7%K zlr4@c5=Hdka?>W^hC%;QDxW;%YNs8PVjj{iS?Z7?GzTcj9$9sK*lnJ z*QpgGGJg6dU&w{|07Kp6Vtm=Sa=&dGT^|Y;5wS2jb3BZ|}<|K4eCcS)WfBHhlmY}fd+KZSOSWlX2Bb!sZjLq8G|P1tki=aB-gPVV-ma!F59Wp!L=GQgeB zfiVW-k{QXIS%b&TI6j#l3I?&SgF%==N}EDk>+;>gs+4h|Ym-Ktj>&DHwbZIfg@q#|VG{tfzVKfkM?$?MGp zCA{!&^Kdi;r~F6KohAHn`14wJtRw3pGaGlwyy2-L*jIe}vpO%7AZb=xBj->L+MLc) zD7;h*8jfEKzZ*9X#2|V+x$=0UsANWDM%oYUbr->)6)geC`ckFbk>7>fmOI46gcIQX z!5GQNmThADlhV9Ktl35V44Jtvb`$CfEmsc~Y;Yvq(13GGz+$0d9r+umjyD5;xIvtW z3FWRMC@>K4*+Is+d3o_%DapxJb#p%{LL;1XoVxj+ENxfluzfH|_)!m3l;wm^1p#8E z-^M^ZKu#9TR9hl5x?Eksn7u3ivNUE5M#BPORk1?Lvf?{BmUXLwpF3uW#hdzM)4vaT zJn6s(0R&hsEoH5jH-V_3y>%pTfg2KgIm zaLuoP68{fXZyiGai$7Qk?&5i7&di+IXYYMjUU(4SH(EdVIC(EqawgB*Tu3!EV&xsS3P?%$ zas$=uVJE2p7)Yf~a--81c(}O9a&tflF%EQ)6B84^erA8c_H`uZM&cKm+Rk{%V8$TZ}sD%KDiNZ2xV<;dn-swV7gC(ayV0EOPYe#U`A4%|b`o2iU^9DyG9 zA}1EiY3xfrC?G$^qX4%CLODD60Tf*{<%|LySbORhl2*ktbBN-~1Mk#Z;p0D7b0H03 z?QUfwOtsz_Jb`hsy#t2^UW*J2G)7SC+TUm^9c0Q960VpY7wMBCg1mHzP0dcmVe_{t zKJB!R(IeBX(yfB7XV}etQ6(eir->po48S3F1_rb7>=)m@eG{S6LT_;R{RO@%o$o>C z+v$roJ2#h_mS!VBS^dHnX#9ZOqW$9*=J`ehg@pID0MKBY^8rAMx*HV6xec3mfQQTY zRh*AANR|Nps7jdh4ZufL`sH)SQe^U>Dh3?M`T2~DefMx~=O$KG)~&5A>KMfU6kS1f z_sC?sy!$YALvOT!PKXI}Ch`wA^R>p{B0=bCaLTMK}5^PD~z`^flygMTat(%>Z zZ1$)>zjb%wZPyBN(s8WN%==!9;l1o5=6%f_A`2FIjV8QcvxW!+X{b65w?KkF`WV<8bE#h+!26iZz~Ml0hS8_tnXoGl3^W%==cNJ0w2jP;I3jM|C+eq zSehq<4Dlwjqs}1$*4k_=wXtzNUps?xd8m>?N#n+41pT}-vCnUnEj7J!QUXtAcyb7E zPO`~0{d(Kphc}DQ-@KifGjFh-^k*=XlQC%h!s$o^k*eCQcWb7deiBr0y(YpCLI#jv zyNA#4?Id}>8J$Wk1!ZtM=7Mol$gd9F@qX5ON9jyuG6Ne2cB)N}fod7+y zxVGOIyyd`7l`-9fEwG3a_yFGp@>X7+!w(5+YYti^2IC?mj}u({1e1Hg5Y#%A-Hr1W z5RMAziDo;CjD}* z)ULT1rAYk+2MbR)8?+K}nbF?kh(mgn!BZ|1lbgzNQ3U9-!zopg36w9Rm;>7~GBZc? zT524Q5JW!j;JZ@}okx-joAqJ;G|A;$XCyc!uGV-Ur!|yyA2A%sev#oV$R#2dl7c1y zY7>QhPhM%#rDlZzNg#zT#^mMwABj5PAV5Ju0Vp1OKMSyYG2fVMHhowf@DH@L>Jr4I zhxxG*D{z(J9EQVy70t4NKkKI5Y`JeHc+~JbZKR-CWqm+XQ>?`jE0=Qpt9^54j$Tt+ z>mUW{BqRb&0J5Z{fj%^`hX}4F*|V>DQ%w2x`|bEtrfB1aEtVFmX zG)qwEDTe2@6G%tn@WtFhAR zhIbg7TNLVj-H+e$O~SG>RfB%MdMz+UfQN|kBc-1fV9+y z$5pD{L@XfkfsdRfGdHFK7cIsAdIjoUi{XbX-k=U7@f(TgS2I(|fX_x5A;OctJ%Jjd z^nXXK4a_H|4y2oV0TCHh^B|9l*0iXwkZ{SL7OyX4@qasmJVyU?=F|A*XL|K)EMkFY z@H?Ml^No#LJgGTMt1o*zl9+(_q$THK`i%|hBnmN1R*Q+G58muY`Q1$WYpp`M;{D=t z^e{^mG1tG3xvk6-=hw>K8+*4vK{kI)7&b;agjoqE{-$wAPAeyCI^sXDLs6y3bC&wT zCrH;in&+-4WllEym^jc*dhJY7--v1%4I@I0CulJcD<+KizvT-g#1Dxt9+K&}&vzyR zaC*dfv7d@eT&|MT00fPIK>=SnsWIq|zK$4xVE6(}wDnjy{kkPYQ&I_pM%C)x5pU=j zZQ~=J*3)`%6)n5aUxi&yBYA&rhM zrff*TQ7uu-HEhtW(bbeHH?Tpoq5XC+m61W}LK7K~vKo6@xvLOE?Y#y=kua*Qsc}xO z3(7oox*=RoO>({6)TS5P0Hp*&I;z*_n;@(e|NVGrj$p_YScLBF(T_k!=}`gQDX#WA_Ze|KNCyRT>I(w8tWH#`m6Ki><%T-{^ zF|6!ijGZv5tDA}usz#sL#BQG6Co5{HAK^T?-25rzmk!WW9t%m2FhO-gpO?Vd9=Ey& z9GTNUUT4!^xjPt1tB$IV5;Qa+x*HWc-!I3WvEy5L-8UaeH_k>=w|O4X>({cPMLR9q zqwGY^*B%--=V3ZsNh|Z>nydv%^KmtD_8$?&Joy<)kT_GCdqg6sI6tRUySCWw-O9P? zY}B37lvQOXBd0AC4h~bM$`tlTU$ltPy1uuImii}>@&~`fQ4Of`z7?hafP0|rsTn>` z%{u+ir0D!}(vDtt$3fD5t_q;1zgx}eDS#7+1j?HJK;0kjI;c=!7mm z1fyEZbNy`yJLA%;F$df_aAemfWlf5pkmmjGOb9;~MF}J+rxH_&YE|vi1+nppiFb+ zsjNN!-1*;T`~${LNAp{elAo86iD~{Az=`pk4gjLdykkxv|B$Sru0M(Cbo!doko+r5 z>3i)UYRn4l)44D)W!cNH5KTxJ+@cf^hWTuRgm3ebqy>%YtmCk1COdo|@YNoN0c2Xj z{%Et6-}et5)+3;M_8S}E1S^GW{knWN+a~Td>w8;$^jb^%GyRLZ9103~-AYOt2#rBd z3Qg%r{Ab5eMVe;@9n_VkI*=7~@NB{S#kdL}Bp;(P@mLFDQKSwPQNsqMubQnu0YOO- zE$zq0O`BfZD{4@Gm=IkZ_4S zd#&e%R~f%uBZrwp%;yksQFdB)>hf`}toxUQ}j&i556~_lABOdmjQeS-ErU@idPO z*PotJsu&}oCBPIWf<-QsqhVGmM$BMKO*l@2 zO(qcyf&`LLlIiKnHu+?9ZP51NLHDbjxJO%qM?H8f%ucj_us@1w+p`}`+`YJHC?NohZlbxZ-n=2AE(Xv7(CYQC`vSV&Slktm8!STIe|f}!%Umn^ zp*oTTaF_J|tEl`7P-Z|)cTUU9p9NY4lEOM6NBpKvsVUa=mN)MK5mLMWh*O_`v$e2b z+C>@Ix(4=jmLCCw;z^4ZCbhaq?E9|WbSn>lU;N3`)Z`L!TvTHDVLJAHH0hBZEb8goVPQUA#dmV>1X~c&-1-za38-4b$14z z0zkz^SKQoen%MuHR(eWYpZjL%<)w$+BI{P);~S0qqLi(zyV|m{@_IpP%u4rP2kp(L z)}{)jDsL8w*Ioh3h@SAGuESQXwKG@L&8jb>uNlKm1q8aL*$9Z2K~bigcF@z$ac;f> zRFgL&aPgR*`ghTing_q#fd0+0;d@cnoPdHzxWgU;*%-BM5++ z^1d=+?`yx0oE_*^Sv*+z`SZTo?Qnc+i*t0edZ61AxTYQJxyac7j4THlfEBIff?ifw zsDSB|=<85T#+3Lq3S4+TJr<|_RWcF2J3Nv1bAI}9h+wc9X!Y-Vc4~CA!P2DoCesQ$ zD+)ktufM!1b^SUc9##mic@XhDFC&RYM#F_KlQv8P@g#bq>XV=p+EFHzgFonpnEy`kp^l$W1BwVarrDrNHkxldJw{N@s1H+2szjX%!S1GPrkKal!YXPi*b z74hhW;Vik=Tkl%*MN$OEMFNe!>B9R*_ZFc2N8s-&EPN<#VP$<+>Js;`mBM7~eYVlK zBGe8s6@~2A^$penx(>PI^PRNcR1x43;q zYwxQ}zFL?A(ZGIskF~`A-cxnadg1)yI;i|xU&U((2p|tIP(ZW!M$BR;kxn-F6u653 z4aZYzMHskRQTpqentsc2nU4LO^tsy0FNSay_?)PZCgh(1WaWzuSigqIA=mEWPXXa& zV{fHHs%G_@Y={WogFy>Wm7IYZOssN3LW1a-MtmS}CW|lhd#M|}*8c&PrCRT`I~LlETGwf@<)|?f>jk^pt;nuTXR@xO2R}Nb=W~F z2&9fu>yhfR*loLCZkqI!Ss(}_1-0d#` zZKs;I6VqSy4YPVC?Qg#~Uxx%C!Dbl!o=44^B}h2kmKo|u&MdTR2`0#^a$6@5P3ha9s~1AR@*4SnIhN~ zPi3HjiJ@2(RhK`#eLVo=H^RTxqq?a)zL>YpvQo$(1rj;p&9}0kcfT^ zMai1EU1OemeiTau%$yM(6p)Alc8!Dc>YZV*I{BMS2&^e~6JI>Fu@Hw|ExDY# zD9l4}x6k6OV`pPwsfs|wqgGW6*2YVf`Yq^E7cGGB_aPMePwrUK!&?jU5CEP; za~#p^(d>q}DTu#5rhMugR!i=@RldXt`In-A2vBxd z&2KqkQc;Z07Mi3!142(4wE}+`j0=0q{>#}#2I!kYRnvn4bzlZKBv1xmk6foQ$q%Z` zs%(Wbk3v4iwP*a6*z>9xLTVR`LHr^~9}Hw-!hl1(4jF#bR~rNguiekU3bSBzHC*Ki z5OwwC8~-HTG2?#z-R9|5n781KJN*o@UO{AZw3#G}s~9cxzV*Hg{cz>ebHDv$f9N-g zUa~+q=4c`>0gU~>mr~Mp3~U5+9~OW7#b0K607d(*|6`2%sE_XiteDMq0>Zk^OkxTO zy~2xkPvSHS0#I=lfV%?l$LaEZIRtD1fh&E?4}$PKq}}9-2(8UhoU)lpW4!#NoSc}y zK)xvBhF^d<78xBvuj7*AgQwW`VVjt|S;8+1w10_^IOSVo@ zB+B!J-&9G1!DgmvYCXnzxrx}F^CWTjFOVx5qX9#)v@iz54ztYfn82p~!iO$eXMS7Wkg(1o$Q#fSC}k#d*oe*Tc-q8;5B6F2(!b3}-|x&T8NIc#N&XQp>bi zKB$R&cp;(#pxT%r;MA|U`r4du2+@-*XSA?017H60)=(0sejP1xPiPZxQbm6MDG88Y z5<8FrHA_GVq@@ek@C_oA{pxZ-s8r31qs=^1+5yOil|9nF$X+yw`T+amBKUtHgBz&Zds;X4g6BN7cBm(^-OfX-BTXGRqr%S3^n?lSBRtI%~V-({$JX&#Oy zE`1IQ^^o>wQ=@s0b+$RI#qG7mh^O5=xQK{|Z1JjkIZgORWVoj;-UZt+e0v=b*v-P5 zOylDpJFZ+=%iOouFW<)e3>3anD+_*r&T;(z-s>v{w*$1xDI73n%;V z;{ely=d}RrFBy46$)5Z3uTGJ`!~sSRNHno+V4`B+k4{lTB-TVc!1i6wT(e018Cw6N z-1x2Kvsvk3;8_8=zisYU0*N<62Dk;mUd#+X)43XEchd8L6HEtw{0mBz7Ya(??Fe~D z-lys|WJ7?srq~*k(ndJpRw|ZYvu6KCLemD*C9(%W5a+ESlAc08GPZdH zZY_il?{i~=CChVLY{vr5_3aUaSiX;dA_T*aierccTMJL+o}^2?@Dj*I(+p^7k<-@j zn#(i{(GO!RzO1XV1vY*pT=pfizf?R>m75jh7X>6O4cb6V%$51xY?DvFL>01vh%$JA4J5C z51rRUm6w6Syf4~hA(ySL|Ag=`)4dNe^K2yaBCh|I7ViJnJvlnEn`Zm?t8gnVt)5aq zX=ET*i_!Mxitg7xvE2I(+h3Np%9vU41JCc5UpyGKdHtQbdVjclba6De)+$E&BHg+w+!0%uI`tyw0!<$xA$-#0M$6SxaUpG zWmw&<43ctHrC|pykzR=~g~yK&hOu$3^~7 z{|(f};Hd^3wBrekO2T$371Wu@NRi-zhZ9}&YbeNB?(042dGr%=6BtCX0lrd^F-1Q^ zHKcIvb{N_YTH@o=R(yUl@@RJOnJnfuf6|ro#ch~#+0m?R<(U<*L&o(axe{VH3ek{! zH8h&lWT(sE>)YNHU}iQc__<0}?g{_i4x|I9#_fD0`7bS}U4C_5tmGu8i)~~$Azh#M z7Tb{h*m8F#ayvwoDKMg45~208;o(b5KKUe@^P1cg|6Mn|CCg=93&$^YD~!X^*&s`V z3-vWFSmk(l2fsj5tayrqvkEYVMP=0sFh%%W`cbQvA=V5+D|Z;>A0-2kr>BFG1i{yn zBJ^%|@~Z3tzqR%N?e$bP;p6Y(l(cOyxbxnXuw>eb9v3tnM~ zrQaIq_+0FB^2aVB;_G>AXq#8_=cQuB=+2}X{V2+TVy*fTAB(2Mih&`S^;#MqKb7M7 z_o;U2^<7`&+eekkJdTjU>MM;*7cWuY%)+@_2C>DJC%uD}Pc$6nFIJE@V7@|YyKj8v zbcR)mOgjb0(?-g7SJ9-Y@HZZZSKxgz1^qTU_nc!_+#Xz5vcV-76$Ct?ryBe1!o;da z7aQLIySs_CGoKZb@|#*IZPDB|?OqAmLp?eueH^}#Rgf-=y}x0r(7lEOdPfFmGjP{t z1pvZF*~1iy+*I#H8_;Un!#d^C-@Lx%GH%~9Md?TaRroJ}H}Qvxt{OnF_3jldlB8Wx z07X~{f}bm}Pp+2pc$`|7xyjaUk7k6-T14PH*Ts^fXTK{a*#+WvdYXd7Psf{s0|QD> z>klYQM)M$<$Fnj=h7BVbmol*amlt{l>R#~lZYPGH?N-y0;1TD5Qa)Es)(m`7^$LIk zXNj)?HlqD`nsXp2Huj|u1o@jVO@rN-a1AJFnp>W;`DfJ_(n4{gkc}G4M#RuCoX-AE zrjPw^Hfx8##Gef^aop>n{MmIuH;&MNUjx_*y5ew^3N_vSfO%3sV^f)6tckis|!d{DtjxOY+ z1nFofwNlO|D~WGGvI8a>4GW_^S)<)b@159S2wcvwnx&sC!TukWN@0{ z;ovZ3%+0-v;IRg+F%lmO=hv4F6+Jz2TW!6cp17QU1eN;CmCN2RvA!n2pvjxXGX5mN^*5CkF@ZCtm%#SeAt& za%?`BtjWj@%rUUpPL5{4AyJ~*>s<6!B@H+$>?rNOWdGAkutLhiNJX>Zg@DqE9jU=>*P%1(1HCGU(iwV`GV^` ziakvtyhK|W5|GFGrVt*6ee~(mr!el-Y4uum97rISdo?hZ!^8bEI{-{7kA4;$*UuX9 zcdDHyCnqbkand`7b)RL4%AZ#B+`zm4EaLEPCcTP~JH9@Eg6m))vaAfa3l1B6h$xxj z`Easq8XN$9CIP8hO4!c!tO#E-QC1!T=AxmtUj>0fg*)e*214NMn|^J!B;|q@Gjwia z-(vw{0{hg2gpEq37^Qt{xgSJSl-9UN13S?DKJKr5Bt9VwmnRNO4X}mAb9A90z{UZeK zNhZgcWib53T|!wXddKs<++Fa}D9*kAB-WS;-p$g3Thr!_Dsar zCngg6gpNFUG;Jo6#-Uvp8|_2W{74bZ%a`(+LJnr&?4sbR(Bf?q>vrGhDjIJ;itg@7-JDq*s9T@~qar?v@Yh&uaV>pc3kvWnE-~gv;0~O! z^&OPQUoA@4N7sS>j=FJ7B(p9TxJ@|DZa3Ji0QMETO#T;$P3_|2iqIxs(>sp?mxHT?59(sU>T`PQ;!{N$G_8nH^F6AcwKV{Y1YQGxf;B$rQyPq7;HMQ@OSBgLv(wKrbhEbtv1#N)m;MQbKF^6aAlE)2 zd^;bmwLQ)8e6TF@9b?!i{AZBX%7bp$LUp}h zff(od9yK<<3Tv&#kM*FBZZvMVD}cV{@6ju(0g*MfBqb3Hi=G)ncgHTX4w2P_5*WR- zEr>gKC8f~9pcnDJvV+6nl5Jx3SA?&#gL8#_&fddiQisy$LxuO40Upzu>bz7NzR?aw zK>18b>uW>c&$R=7IH;N7TT8ln3sS50n2TcRc4`N><`ZOj3F^uZ!hc*&2fw>gP#yEyV`rsqPT(>gQ3e)voQ3}=Dm(Rwcjw|?EgLDCLzdPpqK#7u>!i+`~q zT)ymIz)@FQ)d9j(VkT%w6+IN4<0sIcdQi*pQ|hXG0;!qJ97Yv(pZVM(57i(oa*>&k zhFas$$cR84w%_QQG95_E4(uiBR^14b0eqv_?YIV|qlI?0_C)dofjf_I{uM$SmK$HG z*iq_=TLK_wXzF1FHj*Bc(i*uaTmn;&9}P}Ge7uQ@yBf~ECYTgVK=35N)+!OcoD@g~ z*QYRRU8zUhc?)6ZnXT_)mdgK$fWPNBWaOiD?z?%cReV*v?&%aL?4oFMs6x`K4C&Te zcV5sh2)qy?GTM!o0zHTF0IoF=U*;&t1pRYrA-K;&Pv03${Jf277)W-jX20xAd`$

4xHM80Xj40_km#3!B-+L_oH$eAoty@rcZx|?Qq8`DQUFMo)zl`%9(tm$IL}&)_@Bapal84 z5E+qw1YmSz@w!g2Fm!`H-p;ccf44LS8nC-fsf?&?#eDe0{!w;WY|TR8X2!tDy{?`_ z1#J>2v1DID0=$e-a^OSwlhD?A*hNQ682hsMi2j*i)yZF_0@zwA0I z_MHp)szEmEav=NLo6(3Q=Bq41A|iu2>#j0NzxSYgmFgO(g3N#P-V8epS?;Irg0TG@ zoD_pQUBbOapb$@5RNxbHmO8;E^A4c1iEqyx8B+_{&w&bog@ZGOlM)wiBk9bOK(CLr zF2gPxE;lYj9#Suh{EqiRFibbO7`*8GZk=+CmVR)vXQw@3Elop3oXq znAqSQIh;fnRw}QON@&#N5Ec13iw$}iEYS4juEs8)<36@eU#n$aP~7+FP8{6F$EJeN zhzXjkj8Q3^Ms&lMZnaKsS^`~2)A4d=zl@hN-3(p*CT1p1ZvZGk3kWneX~GQ7EIF8(V$-x=}P$5$3|{6UF1Z3c+}`Uh7$CMz!I z*C3V|A6t<|PP7yy;@Gf6Q2EvAd>RHF@lM>*0#}$ z@9#tJ9ABU{Z9%Xdu~EA?9*N4S156ckBa-3tP?Fh7LNhyopG!_uyVn@U@40ZsQhfg{ zn2cZXmfbZ8^i~XZ@O-7@-s(SgN`&i!xmSibshM-euD&s_v9W<3|5$Y72cYE1l>Boo z(SLUiNS#blmCw*Sk-u0`!Tdvi;6#FLY7d)*G>%}*jl`>YC>Vgf!bC=vZ{N-{GB9*M zKJD@hjDicp^JQ_-dyGnD9Wsnch%g=Oh$E?lD*~}67H zp@(>DeoETDWyRB@<=~IsA~q0V^gfAqX`L9Isa&B zSZEX9Uj_5$1q$<+b^(xF%F<9lULI)d^_!T9>b-vN0k4I2fP#n5M_dl}_4e{Q{H-0A zOsH?7h&A@d$SA9KXR=EROOB20bR6XD`z*w9j-JHSQ$J+SP48Z9XYzs8)6x{wNd4WA zpMy!hQI1DRNN!a2c6Yx5$-CKy520}H%{awW=qv2FG`Mmim-LVq{bZ{>OdaZ`iczV^ zF|g2iP9dW(s18dg{h5I8$mI!kH?3(`SO(xPOT7lI1s(@cMJw}FA(~1-;4IeK`;TXT zccQ3TW5|z8`lI7szdoZ9KA<|*xZ{%mICZWsrJwKlL!wP$62YBT$J9~gvjPmGY&V5}uV;H5`D-rKAGbSjV zT&Zg|JiTjYuKKNVcv6lNq7I^iv9|^1dt29i+v#XhPWsoSDlfdr`2u~D;LDDjdNp!+ z)|}J(ao6x=`r2P6T1-$7ZzayO&{P{zVqzsB?ZC#zI94;2Yp|VW%cEe7c(z6imY!36 zpqt^BFJRX>lTgBNLjPira&%<eWGV`g*DFMtSq*?F3p=S>UV=Fduj(;!L|1BDc(YlacwlUKR3hsSGrWWng&q&n`&W z>$4ZMHa*kutz!k@@^3nOimDZ+aRty)ExStf>32M5BNYohWypJs!&%?)y@aXeSLWYw zdCT4Ik8m;y(*_q7-1_<(>|C9?Q62P!j0N~N-W}B397f#!p-HPr4nj*;(AsS+zs2|X zp>tYj@n)-BX~C=ATUsV%ZXi@4?5Ns!@7>NdtJbbl&i!@gM-wWs8xFy9SY0*pq215R zF4EV&Mtt*&Yhm1{5!PN#+fByQLq7e^3wYbmj496O(fJF^Y41SFmOL z)@pJ>g|CBk&6R{gDD7#K8QGf-a9tX7*1ri9PUMBMzkP=%6T-tB+k)}4eIYnp}{cbdP z;qeYM6*{mPm%{55bbXbW?YKX0b`|coKKD-L^L3q|W9D>zSZ|zqmNNajn_pYgFMYCT zN&;tHcV0+`?6R(S1bQP0F^!zhi6 zeXsQN#LWz^tE}QPf8SsHx@fFOCp~di+0OpzlE9~>vB??2d9HG>e)uNx=JO#kQx(pr zx25UdA9Zg$-$O;w=(}AhknMFbdNq;HEM{+X z-^$5ebmozV?1U5Ya$MtZ)Wi3Fm{wa9Gx_(gPT!DXfm6fq{?a}^D{`cNEkn+1Bg5y8 z@BcTK7h`K5Koze}yQBqF`m9IrbRPE%RfrYHimm5jby#ZjY7;5=3pck$rQEn`%dl61 zQJ9$c@o1<)cRl`-KfQR=w=e(AC_|Fq_c?9+Un_R?H=2gb!$TF!LMi=~wkT*+@Y(eF zIfo*Ot%viCz`+^`=X)VQXQp5CzQRZqb7i}gH2?;#WMoCyY)Lf0yVAnW4$EyaG!z|Utv5F& z2JigO=H}X5i9?42;V**XC)e-p`o4Cl#m?J$RxF%zg?`Aj($ob5^O zB1@vE7~kcZdPZOSLpF&=w&ytyGczgWkk*@{FiB^4Z9%6g?=z|<&y=nJGY3_lfnZOz^ zE5~h2FtfGamrskeyqtsg!|Rs1qah{MD57-)Zb@8pw%yaUKQF?-Li^V|ZC(immK8nvw3L zrnfT1H26LCBFQ4?h7qPh54*8#CddAF^w4?fVg%ZVGsNBJU~sc(wrXc3v*tNwTu^i=;ydA4GF@QegQkR4F5roE}=ZxxF1yqpq|he?+e>z{f_H9MfZz zD5G^>Aol5xsy5$Jy&ak1vk46q71@>EUU>}Ak`C2+w$A34$Hl?>&^~ZS=AorU7=(3J zvfwef*t`tkZU^3fQ;zWjMpwz3fwSEK6fIf^P`1XGV*6YHZkKy{<_kk3IDCBMN~dLd z*t>PPby?#4a6K-@&4ZKXYRf{Hgqgsg6*EJX`?d}h-x5>)2f1#K%^#{tE8P0{-fwo5r%xTOEM>*i*&NjP ztdYNalKUpKeXa52cZvprs_LZ$C#nuUAe?R5gp%ZtACA zB#V|aQ0krC=daW57`yjIKfAk>gDXKynd;T-xCSg^kQyqpv@(AXnrfoa{Qb@fm0kCPVR&F!bRMYy%quPuw|pz#@`!m!_S z=vMR`{FMN5&bUxbgwM@Fy}=-cRFSg0YvD-DV?$K80puS}NGqj_jL@ve%Z z4;TU?yRX~4eO5l0L#c67znZ_23^l%PyiDPz%zPI`BxOpBFec)mX=O3d;H8)QvKO!} z5YYYj5!`I>m*m?EA$Zo5&oN>7fx7LcTh=@;VkOSAvpM^44iRm`+K(9GeeEu5V%u6h zr}J^Jq#PEjNPkq^qQlzFyU7#x438bjY2@^jFKY&Ag3K|+;uYlrQy#zRfdNfB63ouV zEWial8+*YzMzh*>8r7*|>Gv#IFy7yzmCav8zkP0x zsDKhm`-kS(^8M(a(HjoKCeU#NiQGHRKBiZ{Y@p+csb7}$r zZ~9oSKWC1D7IOVe3>#2{bsP^?z9lrB`H`?MdYry27W?;cYXV`^0Gk|s6#cC9Uu~z%#@1WLtP|s#q(E5~BI;$ulwy4JZ{q*L%JVx1wzLUp?xdmN}bq9%L5zt+JV$ z8TD~!jN84K$Yc4@-tn6^(R_q)LKttc>7l>Rt&csGZkRwe?flx07wNE@+7ys{5eh;3 zl3)>%ocQ)kIK7?-FYoL1Zg%6R51EKdd4NJ*{842A!zqogN^rs`7h7e1p@a@9&sAZo z0zW9bncA1FZ@xH@p!VET zk0Mv}7~-P_K0&L{7jjz~>IJ@qFuxNk^*awPi31M~hPXOHqeSAH+zj!bmaikRrXum^ zkBBT$SQt>>=+j9XNPd!gRwQg+R{oNtk%OuqZSAAxcUudAOvw!HQ;V7?&mr+b`b2V%38)Il1 zpNeRT%oe{&xWd3#KtEh{{r56YEvv01<9FuVyQ`XGt94ORe|Xy5Y?6AT zig$`|SzS8X=r8RrUMxVY4dlWJ$U%Q93bgvsINZvRf77LCzfj5f02Ne`VJ)duAh&YF zKMpC=J*cM69APw=QoI4Kq>5c?beEDMr zx;I|GPZDJa-#X1Pl^4-_py<0Tg#+!(`l|AUl{$CurrVBpxPCq;IxFcM# zA@q-YvKDne+<;crOyc%FQ!Xz0;R*Hlh8*S zT7oquKqpZMydWW5ZaFw04-xY|3Yy2Lq-T^L+WzuX{4L+oWG@PY%qBaYobi^vZ|XXH zsY-Jo_I-NdX&wuyM%h3>038ysEd%uBa(q&$plx8C9ZsO`$^Epiovn~r@&y`%3va;GtDcBLe%aVJ}Uqo0TEF`i0k}C^yQ8 z?Mx)%l7B(oI_Xexmj$HD->R?GseKRzt0I=1?0*FUY(BYZrozI=2%BjZyOg=nuK)hV zSi&RN-a_J&Vm~a9?8mcY+=24G^!}LdV^lOLOLZc}z7IuQIBt$Bgs3~zFQDY09g>e$ z%Bdzf{L@?_0iS!o9r^7;Nkcqu#S=*+*9AjFHq z=Y@>_oEa3rYFaP1r?6v87&0?DwnR@QTzkv}{yT={AjZ^dXZp=rh?r{2zP{^&3AY!! zf2rXAS`(f}VPa>J5Y=*sQly?`jHu>Tf4#rg$;`SMvS8QI&rW_`)P3pd8=@hVMM>~= zz^SGN{@b^^?6<=ERyN)@W7%gaYV!IAr&wgzW(o(3tVQGHsCdCkJTr>2MO(Sj<6Jlt z$1;I#1J`H4o>a|tvrvOZKSP&uy%g>a(8n&iY!e+>PB}U01(Ax%_|Zm@yaHId-uDvi z3|oIg%MEl6=WlO>y&U?eC83*L$WYOrcc~9|U6M&>rUzeHQ=8}+kkO>ouLCDEn*?a7 zX0feiQSd_d=As2cMok$lfd&_BQ5rl2p;3ZnyU>P3Ux=_u)Zk(OOIXv-tXaWV*AEi6` zoB~6BVK0;b`yXu^nP~07f&GSpC5x}`pS=-hlAM1trZ17#k{rUYoGHf0tNakgb%<%k zJq9TyXT20a|kefx%q;LT*Jrj{4ewAdWRgO_%#EV<^L^HdZ9Tqc;~R z6F=KklF7$|+}S%Y`Jd$2&1(OAm09YwHRLq|USe&2yRW}n<*Nowy=NmT%+Az8kc+WL zBo{zQ61jRS?UbP<6c>11{ckP88|PPO-krj_zZ#=_L_yT$O1s$mi(a{?bb&{t(6T|y z@ZL23@T=l8d<3`m)m=6ROzrn)We#49Oo!=JeU$WJaKbebAmxO0Q{3Vx^}hWGGcY6} zIZ_$;`r=#21%F&T4U-GZ^LS3$w9_fh3WBgl8;A(ZBO*Z#1Ipe|#{V5GY-xch{FO7^ z!HAHwk32gP7U52YnL-2NTO$;LB80)Uu-yUHKAq;6o*p7*2!fWRTDkFfclXrz?Y{<_ zZnKur)Nk?X{zAt`=VpCMV`Dj@f##+-ffrfa9mJ@#f;uiNGcUDAn;!bwJc@;ncy4Zf zSxwUW3|31cBQ6VG%x?wiI_7&aiv#n)10-aI_g|x#AGTk`AJRVmxp5ofbzKn2&_J|5f8g!!qk|W(9As~%N2+YtW-9z^vEuy4=beA*?APk*? zbPwGO-S7_g(|hmt-s2zOoS9i`uiAUg-s|_X)T}Ys-K4JaXqWjf=Vv?u&bcL$QsORX zB-fg;EJi!;9;t^}5A!bGW6sd@yPoT$`5KY3l^9-E?gtR4@`u>rHTka^4b`W|*Y9jg0Jj$%w^ulrdfi{f@vB)Dt^11V z3U~B=p`TIrI(gBZ$4aP(YRHu%i+Wk^;p5h1*-@%Q*&BQsd0fCU8)m&ZE{r#q-!*a$8NWIW) z%&ov(GR92mpXWq1za?~)dZv=7ZY(Hg^@Sc7Q5kB~*UAdKt5Iid6^yGIm5ue9z-qZo zK#=c?dIC~gavf&1zPdy(h}}kVkDeRuEVh6=oeuN#-t8xWIgz~{x1LTf80dD(U;oNY z_g1)OQYx-Q6XtNny$4#g&DQaxe+c>HgZlIVb(NkWeZP9^mPG{Rj49TGeFDADiH|WZ z?j|AwPKG`k)kFGaT0fy?1grG-2TO0eS2z@|7};pd3^q5nO*~41^>NQwjT&v1Y|pZi zJofB}yjM&b`z7>*foh`EQ3WtNjZpD!=} z1|el9DgE~4gRf?VDcH^~f6&K{D z3h5eh!7-zWUEc4=R7T-|NFjc}%K=Ujm{wLaXs8twDL!=8$L~;M(+s6maRJdQpSXsF^AG_Wgt5uNSRLCvlMn`n> zXQpPBaSBqqoL5HZetSp)xjHV^WiLL)%>Ve>e6H5{64z!e-G5ee!l7P3&iHwk*X4Y* z0onoERcHX_S6YPJMbYVYSAf+;D9to$Kc)0!O;NAb~v{EZ=9SrrnYbWMhen|Rk(Ju$jiZ=xnq3pJm=A_mM8iKQN6`8PlR!!b2w6WStWbi%Lzz!vHOY^!WWm`+J{k3vkal9 zvyEP@@R^ikL{Rr;d7IVN9&GfaS}mG+yHs7pQ%h87NH_fDgMim!u&Ujh=b-cM<*@)K z{ZAfJTb)UGvZ5wF;%?>Ajmb1ILyaygJX>};Z?nHe;(tVi4wyy)oQ52d` zY$7g-%D3sVT_IBh%xg`zJA)St48odF&ZKEDlKQBI0vw zZ1zJy(+L2(irpCzS~7$u?2h%`!=&dY#rv5&LP6?JQ7Yc^gV@9+rC-=dAZWCj-t%LJ z8?E7Rl%Y2zDDj)}7$08=?d*7&vA7o^B*YDe+(ZUpG20+a9s+k$6Eg2OA5D$xKlhId zH0ez&OBM0;ee@}|eL|rR#kAqotGrWw#5x#!AK*OkS3X0Cf|3P2={Y6r%d@h`w(6CC zkgj2Npm+{S-kZ?oh|&9dX*}=xFiRlf&^6}k=~lnGxax!b>i#To4xWqbF_7-YSOdf3`YX!Jgvo{M9RKJS^Cx~1{f~N&4ODd$s<-h{oFKjj| zuqPdBMCR$G@OQVTQgN*ZOEZ&-HIBpcO{QwUp0O|yQP+E&4(Z=^Gt3tt-!S2$>21f` zsAHzj_->02LNH%vDo}C$sECeMf(`&H7_V?WRF&u7r? z=mr^B@APXA49q_laD6z6rVtrE`m>S3;qok{>^rcL$nWlEuUWT70{Q6bvS=4Li_kjD zd?EHAK*e@n>Tc+6;N2LOlcV*~l&xv6vzF4j5J4ko3g4!s)g5lS>`!EdvoA>ct*Cq5 z*L6C6x<+5n@p`y7jpx32ir1=KO8aYuAj9Wvpjk}KRk&OoJ)AKqawtE)o0oxSjX~n^ zQxkCuEUi`KK<=EGtt1*=p)1=YR}sUr~)^XXD>(rV!S(i)eKn@ zx4L(%!wSoRTsy-AINo_G{%{?+Y z@4XUE%#jih>&CC=LXvil=e4JBT+p?&6fhaynDEyN_=fkDtF_x%$A^0|%)}s2Py}U^ z)fpxyryM!?38>2JQg3{jTDWUo*7%WJRR3gKFK$}zL?2#btaS6*r%g+q_c91(Z?C3O z!{RXV(TUc($L1TWAGStObzX}kLfz6&ubkZ8GaZyh*9oR!^sumK@$n;huT~#{qf%^6 zl16Oj^zYI!xR48tHGl=}m^t-)&SP1ZudhB}4!)8qe7AsH38H&C*)%voc1`d511p0o zfSA|;>P&A8?ao)qdF#XkjG@^vCqKUqV4Yd~iNI7VKpX>yUtSYE|I$To38kewZ=5&` zu2ikA0j5YAt6~#+k?vO7E4c9VUG81|ovu~!IN5;35fBOYnA~wf)x~+&YDdM6Qh_M% zeEmzi_7B~<)<0Do4ZwvImg5DHqkU02=b{a=FW;gkM%a8$1^3tTsmo#SAAB}G#D<+U z^k6*@==rY{gCHi~;=9(%U{X@xslI?aF=d7ThBsrPsYU*p){f>W7#Trm$9c2!voTp+ zM|4d#3Z0vZJtzNyG;XjTG!yNRwYray%86b?G0MqtIMg5mwtTv0M3753RqmB zn!fUl3+n#2o+lvp6)II@%C=ozF}6=8igFU~;}z*lM>sNJu{A~lW#x_#heB>JS!VaT z&!euwYAO5Z#Yb3XA+Wfrw?jkXf_y!e)AFyvJ}(tkQXmdDFDB~zS3Hq=L8m4u{mG&; zmux%keeNe4WkEamh)`ta3pl`>N`|#wEMJ?H=ziQavtD?B+%T);T?EdkT_4|n0n#gh;$D2wDnea$sk&GzS7puc^>e{ z_}fST9_4D*>QMB9XM|$mao#Vc4c%r?+q$L~;$Gt^g^drC$RYjLM!@6@@a~`tpo};G z!OqL`z2PQV^S$0)87@@>|Jwab>Xos4ymGhv!L%>3M8$pDb`4iw@8T5O!F{+=Li#Bw zIb&T4hv|JcaCajUJ3; zJIq_1?-lx~z|#atV)eBfV&xH!wv{u}866|X@%Z77JSW$&cgvB77fP_dsBLjTu-N7s zO5rJ4wyT+M8CykLONGX_cr)o()IwF~pL{Z~O!2H$7bj;ifc6e;Wqq-UggzPDG-DaQ z5S&YWS;#Hv=GMcLP|O~i>T2TN8lA`8AVN6}w_@+`Qzk4iZF_! zlKr9Jq_y=Pc9&`^oZ{k0UKr3W3>cXNf&+S`4^SP=9U*JER(VL%yC6^wZY;A=#(fK>ST=~>5sw(+}AI()GR>tB!E$u|RuUcjjo z%~zfJr{7<+cZF3pyxt&(1grn}i+C9jD5rAcSRe14=ghC=G@r0H2v%9k21h=~+|Xj& zjp{6YSXX7!;JgJ2C4uZqY1pjnp6_fFwb2EQ+8Xwb5MYx)@Kefp-k;ELHwbWFh?+t# zFFl4nQ@EH^Yv9=;{v*T%d~^-zS0R7_#7!@=b92}BGDA=K&AV0-)ZXhzn!MlKC9AuO zyAuPy*X#Qnykd8$Tu}=O?;mpG^~fW{*@=!kG1mkzH~pwa-opWvJ1)nzNC?e2B^?8bzI z!>JA;aj)YTHfl(b9I;M1{>FHI(H{(Nl0Vjck{1t;-=|x8exMaNi zBQXgjZ_z291!;tL9Oi{(;L_c#tNhZvYw>7vat5aHsw-r#tX`mo#_no+esy8;S07bZ zy&mXfOXljhPGssLYO8{OVP}2nwZq(Ss)TVT$I6zW1htB4((Q}PvWnU#?;NuiQC<)N zZkMxPU4&XKC@j^spiP#LPoU>?#Go+jf$YUvg-FGSxb*&``?b8z0|%ZKhJ6$t(dI8w zj!e1|!*qpI1w4k)0od>R1wT!fl+2VmIZit>?rO6w_mXUEEzvFfllxdV5&AQ%I3I7- znwMLI!=?2+g`oJ8(M+Ddd*gZK^3*t|_m$mY%-8a)io15zyq3gwS*D8<`0WW20atFm ze#-6etomiSr8af_T&rDzJITz5r_lM}I{pgo=A<^Kv=HcjTXA8iU-awAvKe@bQTn3U z3Bj$-1NRlKBcx}20hegjF3YIW;56vlPtV96#)4@~yk!W){S|g^dsI8Zzph4lrKN9c zpfJ>=FTDxhx(8y(h+w93B>-xP1>1)L;`&KFP|Hn_Ui8k4!`?cz+f9KF-8|!t6=Th0 zMQAzfMIJ0+i*@4Uu}WfMG0E$55{w*)Kg3~KS7?FZbMnX(nunsk5GImfrAoxxNScEP z5JX75RH9Eg8C#*4Y?w~lIvB1|_!3xAapZ z7EjC+vM)2s1~jL25f(+)Q+vJHr_%FjPo4VinZ|i}ZPj6?SWvZIpXOhm)i0dO>B>+u zw7oKa8<<7manf|2(Ekl@Hgz&KOnAlw`bE_HytMR)v)(R=zk@2rMdR#sUon_COzkF( z(Db0}@BqD=+?oNFkuh9p{i0aKxWD~$bEANRmsbPe>-zlJsA|&R-ygvJ>`M_96%lEO zlm@uW2SpEoL)DwLd9~^l0O*j!JS*^#_kR~VA0*u!1olkCN|A$sLGzm989*IQRZ(9L z#(e(#`IyrofGVIhOaMG(0T!&LIC`>z!odD zu$v=wWNmr*qAlM+HxGa%F+FZq0LaD!-hESB|1v!q0Jn_;Iw?mEYhnr+4UJ*MS%?H_vdi0kS;DQKpvWLi!(5EwB^|Dp%fF(3)*-VBBHfkE5 z1hn@bSpsBbMn;P@4l9sGulir$qk{v0J>GoXkA9t=fnjuXw9(^q@R>kW`We8^H0cf;tpQly=U5%>0En~0!$YelPOh#s-@kJR2?+@Z)MjSBayq;l8yj1v!$w(G zT59Lu@N3>T2nKUR0OW|_;kd_MU}^zJ8K*+BFHuoZ04TuN*qD!x&xa2m0E~bNsK zhwt$b+N!GQp(Q0H0Oke2)~KMMQ17}g<-`dfLj&+3UV?mH7uDK(WM2Rr*?kz$TnCV> z_UHf%ZIw_xD;atDw@XMw&~|jkOkP^8`gO041x!L$H^me-dKP^L?PkXQE3|wVaa$}5 z`C6y}onB<#f`6>76{tT82nYaTNAKKmQu4hZhH8z7tS+E?yjOQ^b@j#PqSIwVL&LWA)6-Khvx}*c7?qZNI~;Q+H(Az$7y5`>K*zSg0@xFyJk#1_MwKWU~{&e>;)( zW`;Nk0;ueA*Si*~4GCYpB@$!G`ONz2Ri27`;invS>*pp~lLQLG2{=uKQejRO3M!^U zdaW@6=u9C`TDUr4l!TzVjAGkQa@bZqMopczJ-YugQ%zAQKQzM(O|A0PZ>)#OVym!!0G_b5%YMzzKvY;*|s zcE-lU__)5Yq~x8V%F4>{@NkTIa$5KxPM@GM6q_00Vs{nFF|D1T$6hOJ~q za|Q~QmIY=mchlIN0Tg?g?pLZW7C{0Ij~_h(%36v2d`s|N^hiNrA+0L_ClC+6w@%1V zn9B>#vevw+!;Y`BUy?m#1(Htw2BGC)y_s#>xEYZ3T`(5_vgTxGuobHc&FkT+)3u*qG12MIeXWnFrT@>&qCcOW2)4orR7IIPkf@p zW6=bmQyB;(K}z+k2~(loZTNV@WptJrUBgu_=i2K)MO-oBBGl};*E*86Ehr>(KZfnH z#>M6$YgD~BqM$gofvqTHc@&incwYE9GxOu#>_!azI&#XYq^Yd8Yn@C1&cTcI6w|Zag^Jsl^eOyhO4$fP!&SXCHBnk_V zCx`qXJOzGFt%QfKvAeVfGqQ+!Qb5Ll~?d_$drQP1%UPU?C+1OOL#)U1>DB$MGn8Bro+USm? z+S=JJ(u01f%CLmWd3bPre~a}&Vk)}QSo)&ODQ;HbF&W<%ByoPj}JFiyjqPj5) z!~F#rg)g^eZX1fp<1Jo+zc83?W zX!gc@#N)}dtQXLgG-AIJ80Eh`n*aS{nvdQcb}6Ce z`9-69zm$^{i&X8n1=Nk9R+g2*UIiZ!`4{#%kQ{BChT?qHvdrst6wmQyu;y)5{O8e) z>nkFjLnJe^o;3-qsaKvG>W3d`4Rn^);^UH7+g>#^@S@)~#Kw}m*q)itf-5(nnn9tY zfsvK@NZfHa(H8=j>Q)jLZ0iqqdA+*0YiX`UH8_ zZWb9tke4@rhvuXHGVg58?5DHO7-4iZ!8CWD?Hl~8J(#YgB@`2huJWj9>WR9z(89!I z%tT5Wq&Z>-<3eiyj%^dUv}E|T2+>>z_gWY?fh4Cm`C@w(DG4OwB?Sv}G!e~H@g8!I za>MsSHZWd(k;+yQ-ui7xt~q6m*D#~ z8sM!2n81JZ^z;l5I{|C#)fFos(f0C?hr3ks9AjR)@LZOW6gZ07_b=WZfODpCWN_#$ zFE#bEv9u=Vv2t_r{ry%UbO-mz2`xMlpR(?ujkinDBhGKtT>Fzkqkr1Ek?RyXYKWgo ztTI;GJ4(i~qtgvpz8-#U(bpHe(wACBs1dds=LjW3HyyYiil;u+8i{Yx^PuXZVPZlu zTmPFMs)SFa#iyGy=OsBPvenm?oa{E#8KKAHb4{<~fcI+gK<4_!nr z38agbHm4XBVj`%$oi5#sxW8$i4h^L9J?#5|nmIg{&OoHLN9s20Z@&AwPrpnkG7$kg zUeHw~lMSIRCrK|~RB?ta8%^wn>@i3Y1IK_MBr_!+=Xk`a$O35;<+!L0wJ%DZ3omIZ z9<61oePIQPQU|~xNqMI2LK|>_4shlGSInT3K(Cyqr|dW?4VXQFwHC1AvY49c+nLDZ z<&3sYb*X^Px6osU(mOcd(D1f;xOoWayqGtmdmK_ZuASl?ar~{GSh!57EuuFp#BGV$ z{m2Xqwj&-b=#c4&dk>VTXIS<%Oz;7>zkXXI*l-rsE3cA0z*9$NGTr~8&lpduT3i$S_MP3^`WW3;cV4z{L(DYgKs}q z{SJms;%>WtifkpR4>kLc)?7!|itjX$KysZ!&aI(qs4s!rwsbT{fWWnGpTv2RgJ_luhK$$jTFp(-mqTojBbeJo zi9%f(d}kYjBl(RG8=O^%Ej%JmBVIjhJ;?g8(R2M?q@cn={>B+~h-qVZ?aH~4fO0)d9 zz%=y#NEW0Yx3#mO(hXWN4ZeHSCU8Lf^k)YP(YHnta2w^8)jwkYBXkgTg^yzc zdGls=eR%s-=$S@g^NH4uBe-$)xhNpjpoL#Y`<<3ajSqiwE#rgN%bq5xKYwg#8{De( zr?my1*R~X-Z_t1LFyAaxI`_t_l4*5giwOIX!O@e%YEgO9kGm5OR-Y1KPiSqLDM|hC z-=J_A?IoYVGX{i5j-sTtE}XX#s)&ToanN<+oIN;&L$4vClc=j6wQ8>w>|n1(mk)q} z{-Y^JvJ7J5`1~c}{F(p#<`)?PqM>~{Upaz&%n7mg`b`0@D$b7Oj+aKN3ktRVn?rkp zY3QyYueSNsd|ne9+%i$7Ni1L=dePWLqY+CSdbhBb$M_?%%lzYgTB9S_@djwL7*cv5 zGX&atRm#h<9Jb18q0ZLYiiu+*J{Ku~kW1Ed*hq+KGd)Hur+j=W8*f&-; ze}w4;SU<3Zj4&EQgD@~#{4US0B#)F0%Hv*HlxaaA9x5!);}TP0)EXG1`w^|^+UaVH zdr=RwHGOD_X3F*iij*FTcU-W;F%e#n-DL~gx?iCANtYN_5rT%(qTs1tiKLF3+no}*3j1{})nX7fc%s<=qg z_NvD&)67X2u9AAI<0{F3sBCmnYiKXezIzJCsh~6!_M8~|MdK3=D5e3_Oqr!aAj#L^ z2n)L}biB!Ta!mNnv+tTdyEFhaG*pS~S%46S&`JHB6tbCE2(&MTod1_MH(;NO`F;F* zI;(SwA5+Yrq<>LN0keI5KdNXJe#$7`@zf6%dx96+%`G6{=VSX2yNGLebXdJo$DE*S zIzsV8^$tZ&k+dc$K&`1#ipF?PhwC(C+(IKU>eXtNypbstC(lsU$E1#|%!H-$su}j7 zVZzon44rkc7~JZq^l967GZ5|igt9Pe<5IMJiIO9?Nj3Hj=enWWKD(u*jN;4qP@_lR zEttLdzg6bpTwk3uqu6vxzSTX^&$_n%%pg>6i@c3K>c(Svx={@29uNBgRwkH4{&NRO+Z$^SkvBaso6 zk_5KHYyAf68iBRG5j{fezGR^^fAwsda1nbW;y&Zh%MZYr9wwpxX-%E^2K9=Bk`9K zcS7IEuPCGAMGLg}aWV|5`4$BUc=X#`ldenlUM3FNTPOsU-WpXXy@$_LD|)BM*1OY3 zVt|a?nR=RZk%82JRs8shhzKA<@r^Z|dODlF7PYf!*4~Z} zJe0$ zeWIkVwjIZ6I9+i$f#fd~2k_PAG!}q$&E<$#;A?Ot1(W&FVEN_Td;dPKqSVYRH}lHx z8_}01Yv^DK#aGJ8gFo+n&jC-kLGLd6F7RrqAX%m-m*EAXm!t}%w zp?VO@E82jMh6O_V3G31(ki}0(JUgNF1w}L5iWxC`MzbvDohjTmOghF@mIAUniI#XEY6n?^LHQuUrPkp?U!bjo}M~iZ&SMF6WC(n zZB3UsBsNRx>*k+Z-Y zl=@ZdFj!e`S~Ia1g-I0?6Yy4;OPd}muokp~H%rDufGS;Ym(~@w@woo_kc}8Mb?vrx zmFf3Y8no;d9UYM(+VTX;Cd+wqE+*WfwoZWKG|l^I;fbsaX+8z2bb>DM$ef-14mb&+H5`AW|kDM#tg3^3U_nrJR+^>vmAfT`0 z(2G?uXYRL+^|{S;n;XgOfXTlB+ZH7R4%KzMriEe$^xMw|kDaiZ%o&gduPXICeZL4pY{V2RyDl+%W z`Sz))olvaeKhl1h{PU`p$bZS=VS$s66s~WtYu2Q-#~F*9N-O`?0=Sa|e1PzD64s8A z^Y&InJ0IR$HBVqE1y8wtnf~KMaTO`UYCXJ8`yPF~(1&a?DqI;+@$nLhW!TP7d+*Zo z>qPDIk8?lVJtz0DI8>G^y3i3S)=2U4Oa`96iq1{{B1XFrWh?8?u4s;i1`GlC|BnrT zfBy`M1|zVlJ0-9Yud~a;ZAMp;AqV@I3Tu*k8X>sy|icZ{PYkC9f$Kk&{|8cXKT%-fcv!n3?Kn79iFW*M;)|OSn z7Y}^%A}-%tj`+bhe>!`6OH@;^b8YOES_O|COQr*!1{{v|tOC{0@Ge%=NYC+|fZajS zdSK>bsaGz|4{>cK*98IM&=Am&x{KG==|niEY}+$~*?+_iHIvi3C|~2dLfJ*WH0^xsVGs(q6brr5s3Zx~KgPCbUmrD1yC?7~cj< zZX-Tv=~r8j@zIbS(r3Elt8le`tKZ;i=g{ZRHvI_#jmV8(Sw*?I|D|^wDtSUzt-{De zvr?@uce0*|McTP=0&cIasjeZ99d%qhi>f?_js9)xOjLuppn!>ywPssHpSx2!8w;qI znvtpFzMTHmx8o}EG=}ag4?G*bG~S2j$!1>P9olPgUfEH!Pk+-d|LpwD3;^+L(X+%6 zcpNQhAZDpRQh;OdG?z`Gj=e-?R$Mn@EYalzrc&9n?mNgCp_>wUwrNp%tRx!;8o-{ z++m7r5y$xJb-S{N$V59U_p(RD2U25~>n`qFi6_Fs6W!5~04KzMyeXfBs@wsYnr6+W z6iYMM^yag4&z}a)#%jB)2x?pGI|OQalw0@jEy|@a{*FO!EogMHyUA}=zo8QT+`uZ1 z{~cfdT=Z$S_#^2#{Lg#-b#aYo#@~@ym;{2Og|WLP5w#I-ap1`B%X=BOv~3N4xO1jg|2UwzpW;7PMpnu zcM;nT7C2ir``a9=ob_w6#h;g?63m!U@0(w7uirB(x6 z0i#CVO<>&>_V*ifkG99|(a_vOn31AO*`tRtmTA6M>T?Rai`=6Pyy0!93$w9S<@ zpP$#7{_*Ai=W4WnF8;r+{^ugW(ROlXIG@i#HA$`#VTw%o8*#OAg0N60m4Gxq3A^{a zm=8CYVDTzl4VOGO}4VzTBrZ4_q zN04AMEBtYK|Jir2oCBwcFUaeU&*wy$;llApWOK0J?tseq$5(No{Z-BW(du7ODMm1p z5TH$K>Al}8Q`DGSDgyB+tty3XtQc1X?|;88_EsJ}=PUb;+8bT*e|`f0J31~2X1w2) z1dc{a_>V_lR;0Az+rcEhu9q2|Cg#Sof^wy@(M5a3qQ&mHZ~HizsZ$tELR^) zvOeE62mK@N2M}m+fUhDJQ1lP;-#!p{{zT;`L29{w`a=d{Ou=f#;S385F-+!C=VGx( zue4eWnhG5sW%{Qp)~=>G2!5HdKwT zxoKQG`$p7E{g2}fw>5L=Nhw#6*Palr-*NY?CeQ`G>keHYtgjl~eKXyiE<24&9Q1|3 zDjqY1I;yJi_}!0efereNeCRe5Et{JZP62@9EHt7bT@Da93b~m&WH_gzC&z6}H~1Yg82Vo`r-Imld~fTl0;*+g`Vvy+9qE zRUe&O@`_kkwDJY-OZDrrDu4*+qlbv4RR6QgKugeu8V(<~Y9Pi(~$-Oqe zFzkUAGV6C!#^*VU78avc+O;WRXLbL6<5eyyt6@9-w>tj{#Q!%s|H-p|>MSpSpNot3 z0N^R(G<&91p=f%y{*rfBj`@Sb-X5&_U#aN-8%|$s%z*zyAS&7lhIP literal 0 HcmV?d00001 diff --git a/doc/example.resized.png b/doc/example.resized.png new file mode 100644 index 0000000000000000000000000000000000000000..7bb57605f6d65b1bd6ebd4542bc1545ab6cbffb0 GIT binary patch literal 46577 zcmX`Sb9^M<(>5GC+1R#i+qP|EV{>EMw(VqNXJb!nCmZX@cYpW$&L2Hzy8F|o }f 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 JO4K0W{{!&|n0o*K literal 0 HcmV?d00001 diff --git a/doc/index.html b/doc/index.html new file mode 100644 index 0000000..9028b5c --- /dev/null +++ b/doc/index.html @@ -0,0 +1,139 @@ + + + + +JavaInspect + + +

JavaInspect - Utility to visualize java software

+ Download +    + Online + homepage    + Other applications + hosted on svjatoslav.eu +
+Program author:
+    Svjatoslav Agejenko
+    Homepage: http://svjatoslav.eu
+    Email: svjatoslav@svjatoslav.eu
+
+This software is distributed under GNU GENERAL PUBLIC LICENSE Version 2.
+
+
+ +

General

+ + JavaInspect is a Java library that you can embed into your Java project + with a few lines of Maven configuration and then visualize any part of + your Java program structure with few simple JavaInspect API calls at + application runtime. + +
+
JavaInspect uses Java reflection to discover class relations and + structure and produces GraphViz dot file that describes your + application. Then launches GraphViz to generate bitmap graph in PNG + format on your Desktop directory. + + +

Current status

+ + This is simple utility, quickly written. Tested on Linux (can be + relatively simply ported to other operating systems too). So far I used + it for my own needs. There might be bugs and missing features. Feedback + and code contributions are welcome. + + +

Example graphs

+ + Example visualization of + Sixth + project: + architecture + graphs + +
+
A very simple example: +
+ + +
Graph legend: +
+ + + +

Usage example

+ + Following example produces graph for JavaInspect itself: + +
+
+// Create graph
+final Graph graph = new Graph();
+
+// Add some object to the graph.
+graph.addObject(graph);
+
+// Add some class to the graph.
+graph.addClass(Utils.class);
+
+// Produce bitmap image titled "JavaInspect.png" to the user Desktop
+// directory.
+graph.generateGraph("JavaInspect", true);
+
+
+
+Result:
+    Generated DOT file: JavaInspect.dot
+    Generated PNG image: JavaInspect.png
+
+
+ + + +

Embedding JavaInspect in your project

+
+
+Declare JavaInspect as dependency:
+
+    <dependencies>
+
+        ...
+
+        <dependency>
+            <groupId>eu.svjatoslav</groupId>
+            <artifactId>javainspect</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+ 
+    </dependencies>
+    
+  
+  
+Add Maven repository to retrieve artifact from:
+  
+    <repositories>
+        <repository>
+            <id>svjatoslav.eu</id>
+            <name>Svjatoslav repository</name>
+            <url>http://www2.svjatoslav.eu/maven/</url>
+        </repository>
+    </repositories>
+
+ + + + +

Requirements

+ +
+ GraphViz - shall be installed on + the computer. + + + + diff --git a/doc/legend.png b/doc/legend.png new file mode 100644 index 0000000000000000000000000000000000000000..f4341a3b4cb814b3f881678acd76f5fa203dda45 GIT binary patch literal 31970 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 bA^NiPbh8UJ@q_ + 4.0.0 + eu.svjatoslav + javainspect + 1.0-SNAPSHOT + jar + Java inspect + Java inspect + + + svjatoslav.eu + http://svjatoslav.eu + + + + + eu.svjatoslav + svjatoslavcommons + 1.0 + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.3.2 + + 1.6 + 1.6 + true + UTF-8 + + + + + org.apache.maven.plugins + maven-source-plugin + 2.2.1 + + + attach-sources + + jar + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.9 + + + attach-javadocs + + jar + + + + + + + + + org.apache.maven.wagon + wagon-ssh + 2.2 + + + + + + + svjatoslav.eu + Svjatoslav repository + http://www2.svjatoslav.eu/maven/ + + + + + + + svjatoslav.eu + svjatoslav.eu + scp://svjatoslav.eu:7022/var/www/maven + + + svjatoslav.eu + svjatoslav.eu + scp://svjatoslav.eu:7022/var/www/maven + + + + + scm:git:ssh://git@svjatoslav.eu:7022/home/git/repositories/javainspect.git + scm:git:ssh://git@svjatoslav.eu:7022/home/git/repositories/javainspect.git + + + \ No newline at end of file diff --git a/src/main/java/eu/svjatoslav/javainspect/example/RenderExampleProject.java b/src/main/java/eu/svjatoslav/javainspect/example/RenderExampleProject.java new file mode 100644 index 0000000..0cea641 --- /dev/null +++ b/src/main/java/eu/svjatoslav/javainspect/example/RenderExampleProject.java @@ -0,0 +1,26 @@ +/* + * JavaInspect - Utility to visualize java software + * Copyright (C) 2013, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public License + * as published by the Free Software Foundation. + */ + +package eu.svjatoslav.javainspect.example; + +import eu.svjatoslav.javainspect.example.structure.SampleClass; +import eu.svjatoslav.javainspect.structure.Graph; + +public class RenderExampleProject { + + public static void main(final String[] args) { + final Graph graph = new Graph(); + + graph.addClass(SampleClass.class); + + graph.generateGraph("example"); + + } + +} diff --git a/src/main/java/eu/svjatoslav/javainspect/example/RenderJavaInspect.java b/src/main/java/eu/svjatoslav/javainspect/example/RenderJavaInspect.java new file mode 100644 index 0000000..e749a1b --- /dev/null +++ b/src/main/java/eu/svjatoslav/javainspect/example/RenderJavaInspect.java @@ -0,0 +1,34 @@ +/* + * JavaInspect - Utility to visualize java software + * Copyright (C) 2013, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public License + * as published by the Free Software Foundation. + */ + +package eu.svjatoslav.javainspect.example; + +import java.io.FileNotFoundException; + +import eu.svjatoslav.javainspect.structure.Graph; +import eu.svjatoslav.javainspect.structure.Utils; + +public class RenderJavaInspect { + + public static void main(final String[] args) throws FileNotFoundException { + + // Create graph + final Graph graph = new Graph(); + + // Add some object to the graph. + graph.addObject(graph); + + // Add some class to the graph. + graph.addClass(Utils.class); + + // Produce bitmap image titled "JavaInspect.png" to the user Desktop + // directory. + graph.generateGraph("JavaInspect", true); + } +} diff --git a/src/main/java/eu/svjatoslav/javainspect/example/structure/ObjectReturnedByMethod.java b/src/main/java/eu/svjatoslav/javainspect/example/structure/ObjectReturnedByMethod.java new file mode 100644 index 0000000..42e3186 --- /dev/null +++ b/src/main/java/eu/svjatoslav/javainspect/example/structure/ObjectReturnedByMethod.java @@ -0,0 +1,5 @@ +package eu.svjatoslav.javainspect.example.structure; + +public class ObjectReturnedByMethod { + +} diff --git a/src/main/java/eu/svjatoslav/javainspect/example/structure/ObjectVisibleAsClassField.java b/src/main/java/eu/svjatoslav/javainspect/example/structure/ObjectVisibleAsClassField.java new file mode 100644 index 0000000..76b34d2 --- /dev/null +++ b/src/main/java/eu/svjatoslav/javainspect/example/structure/ObjectVisibleAsClassField.java @@ -0,0 +1,5 @@ +package eu.svjatoslav.javainspect.example.structure; + +public class ObjectVisibleAsClassField { + +} diff --git a/src/main/java/eu/svjatoslav/javainspect/example/structure/SampleClass.java b/src/main/java/eu/svjatoslav/javainspect/example/structure/SampleClass.java new file mode 100644 index 0000000..244af16 --- /dev/null +++ b/src/main/java/eu/svjatoslav/javainspect/example/structure/SampleClass.java @@ -0,0 +1,11 @@ +package eu.svjatoslav.javainspect.example.structure; + +public class SampleClass extends SampleSuperClass { + + ObjectVisibleAsClassField sampleClassField; + + public ObjectReturnedByMethod sampleMethod() { + return new ObjectReturnedByMethod(); + } + +} diff --git a/src/main/java/eu/svjatoslav/javainspect/example/structure/SampleEnum.java b/src/main/java/eu/svjatoslav/javainspect/example/structure/SampleEnum.java new file mode 100644 index 0000000..3335289 --- /dev/null +++ b/src/main/java/eu/svjatoslav/javainspect/example/structure/SampleEnum.java @@ -0,0 +1,7 @@ +package eu.svjatoslav.javainspect.example.structure; + +public enum SampleEnum { + + ONE, TWO, THREE, FOUR + +} diff --git a/src/main/java/eu/svjatoslav/javainspect/example/structure/SampleInterface.java b/src/main/java/eu/svjatoslav/javainspect/example/structure/SampleInterface.java new file mode 100644 index 0000000..f88cf16 --- /dev/null +++ b/src/main/java/eu/svjatoslav/javainspect/example/structure/SampleInterface.java @@ -0,0 +1,5 @@ +package eu.svjatoslav.javainspect.example.structure; + +public interface SampleInterface { + public SampleEnum getSomeValue(); +} diff --git a/src/main/java/eu/svjatoslav/javainspect/example/structure/SampleSuperClass.java b/src/main/java/eu/svjatoslav/javainspect/example/structure/SampleSuperClass.java new file mode 100644 index 0000000..837e35e --- /dev/null +++ b/src/main/java/eu/svjatoslav/javainspect/example/structure/SampleSuperClass.java @@ -0,0 +1,10 @@ +package eu.svjatoslav.javainspect.example.structure; + +public class SampleSuperClass implements SampleInterface { + + @Override + public SampleEnum getSomeValue() { + return SampleEnum.ONE; + } + +} diff --git a/src/main/java/eu/svjatoslav/javainspect/structure/ClassDescriptor.java b/src/main/java/eu/svjatoslav/javainspect/structure/ClassDescriptor.java new file mode 100644 index 0000000..86b07de --- /dev/null +++ b/src/main/java/eu/svjatoslav/javainspect/structure/ClassDescriptor.java @@ -0,0 +1,366 @@ +/* + * JavaInspect - Utility to visualize java software + * Copyright (C) 2013, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public License + * as published by the Free Software Foundation. + */ + +package eu.svjatoslav.javainspect.structure; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Describes single class instance + */ +public class ClassDescriptor implements GraphElement { + + private static final int MAX_REFERECNES_COUNT = 10; + + public final String fullyQualifiedName; + + Map nameToFieldMap = new HashMap(); + + public List methods = new ArrayList(); + + /** + * Incoming arrows will have this color. + */ + private String distinctiveReferenceColor; + + private String interfaceColor; + + private String superClassColor; + + boolean isEnum; + + boolean isInterface; + + boolean isArray; + + private final Graph dump; + + List interfaces = new ArrayList(); + + ClassDescriptor superClass; + + /** + * Amount of field and method references pointing to this class. + */ + private int referenceCount = 0; + + public ClassDescriptor(final Class clazz, final Graph dump) { + this.dump = dump; + + fullyQualifiedName = clazz.getName(); + dump.nameToClassMap.put(fullyQualifiedName, this); + + isArray = clazz.isArray(); + + if (isArray) { + final Class componentType = clazz.getComponentType(); + dump.addClass(componentType); + } + + // System.out.println("class: " + fullyQualifiedName); + + isEnum = clazz.isEnum(); + + isInterface = clazz.isInterface(); + + if (!isVisible()) + return; + + indexFields(clazz.getDeclaredFields()); + indexFields(clazz.getFields()); + + indexMethods(clazz); + + for (final Class interfaceClass : clazz.getInterfaces()) + interfaces.add(dump.addClass(interfaceClass)); + + superClass = dump.addClass(clazz.getSuperclass()); + } + + public boolean areReferencesShown() { + return referenceCount <= MAX_REFERECNES_COUNT; + } + + public void enlistFieldReferences(final StringBuffer result) { + if (nameToFieldMap.isEmpty()) + return; + + result.append("\n"); + result.append(" // field references to other classes\n"); + for (final Map.Entry entry : nameToFieldMap + .entrySet()) + result.append(entry.getValue().getDot()); + } + + public void enlistFields(final StringBuffer result) { + if (nameToFieldMap.isEmpty()) + return; + + result.append("\n"); + result.append(" // fields:\n"); + + // enlist fields + for (final Map.Entry entry : nameToFieldMap + .entrySet()) + result.append(entry.getValue().getEmbeddedDot()); + } + + public void enlistImplementedInterfaces(final StringBuffer result) { + if (interfaces.isEmpty()) + return; + + result.append("\n"); + result.append(" // interfaces implemented by class: " + + fullyQualifiedName + "\n"); + + for (final ClassDescriptor interfaceDescriptor : interfaces) { + if (!interfaceDescriptor.isVisible()) + continue; + + result.append(" " + interfaceDescriptor.getGraphId() + " -> " + + getGraphId() + "[style=\"dotted, tapered\", color=\"" + + interfaceDescriptor.getInterfaceColor() + + "\", penwidth=20, dir=\"forward\"];\n"); + } + } + + public void enlistMethodReferences(final StringBuffer result) { + if (methods.isEmpty()) + return; + + result.append("\n"); + result.append(" // method references to other classes\n"); + for (final MethodDescriptor methodDescriptor : methods) + result.append(methodDescriptor.getDot()); + } + + public void enlistMethods(final StringBuffer result) { + if (methods.isEmpty()) + return; + + result.append("\n"); + result.append(" // methods:\n"); + + // enlist methods + for (final MethodDescriptor methodDescriptor : methods) + result.append(methodDescriptor.getEmbeddedDot()); + } + + public void enlistSuperClass(final StringBuffer result) { + if (superClass == null) + return; + + if (!superClass.isVisible()) + return; + + result.append("\n"); + result.append(" // super class for: " + fullyQualifiedName + "\n"); + + result.append(" " + superClass.getGraphId() + " -> " + getGraphId() + + "[style=\"tapered\", color=\"" + + superClass.getSuperClassColor() + + "\", penwidth=10, dir=\"forward\"];\n"); + } + + public void generateDotHeader(final StringBuffer result) { + result.append("\n"); + result.append("// Class: " + fullyQualifiedName + "\n"); + + result.append(" " + getGraphId() + "[label=<\n"); + + result.append("\n"); + result.append(" // class descriptor header\n"); + result.append(" \n"); + } + + public List getAllFields() { + final List result = new ArrayList(); + + for (final Map.Entry entry : nameToFieldMap + .entrySet()) + result.add(entry.getValue()); + + return result; + } + + public String getBackgroundColor() { + String bgColor = ""; + + if (isEnum) + bgColor = "bgcolor=\"navajowhite2\""; + + if (isInterface) + bgColor = "bgcolor=\"darkslategray1\""; + + return bgColor; + } + + public String getBorderWidth() { + + if (!areReferencesShown()) + return "4"; + return "1"; + } + + public String getClassName(final boolean differentiateArray) { + + final int i = fullyQualifiedName.lastIndexOf('.'); + + String result = fullyQualifiedName.substring(i + 1); + + if (isArray) + result = result.substring(0, result.length() - 1); + + if (differentiateArray) + if (isArray) + result += " []"; + + return result; + } + + public String getColor() { + if (getDistinctiveColor() == null) + setDistinctiveColor(Utils.getNextDarkColor()); + + return getDistinctiveColor(); + } + + public String getDistinctiveColor() { + return distinctiveReferenceColor; + } + + @Override + public String getDot() { + if (!isVisible()) + return ""; + + if (isArray) + return ""; + + final StringBuffer result = new StringBuffer(); + + generateDotHeader(result); + + enlistFields(result); + + enlistMethods(result); + + result.append("
" + + "" + getPackageName() + + "
" + "" + + getClassName(false) + "" + "
>, shape=\"none\"];\n"); + + enlistFieldReferences(result); + + enlistMethodReferences(result); + + enlistImplementedInterfaces(result); + + enlistSuperClass(result); + + return result.toString(); + } + + @Override + public String getEmbeddedDot() { + return null; + } + + @Override + public String getGraphId() { + final String result = "class_" + + fullyQualifiedName.replace('.', '_').replace(";", "") + .replace("[L", ""); + return result; + } + + public String getInterfaceColor() { + if (interfaceColor == null) + interfaceColor = Utils.getNextLightColor(); + + return interfaceColor; + } + + public String getPackageName() { + + final int i = fullyQualifiedName.lastIndexOf('.'); + + if (i == -1) + return ""; + + return fullyQualifiedName.substring(0, i).replace("[L", ""); + } + + // public String getReadableName() { + // + // // do not print full class name for well known system classes + // final String packageName = getPackageName(); + // + // if (packageName.equals("java.util")) + // return getClassName(); + // + // if (packageName.equals("java.lang")) + // return getClassName(); + // + // return fullyQualifiedName; + // } + + public String getSuperClassColor() { + if (superClassColor == null) + superClassColor = Utils.getNextLightColor(); + + return superClassColor; + } + + public void indexFields(final Field[] fields) { + for (final Field field : fields) { + if (nameToFieldMap.containsKey(field.getName())) + continue; + + final FieldDescriptor fieldDescriptor = new FieldDescriptor(field, + this, dump); + + } + } + + private void indexMethods(final Class clazz) { + final Method[] methods = clazz.getMethods(); + + for (final Method method : methods) + new MethodDescriptor(method, this, dump); + + } + + @Override + public boolean isVisible() { + + if (Utils.isSystemDataType(fullyQualifiedName)) + return false; + + if (Utils.isSystemPackage(fullyQualifiedName)) + return false; + + return true; + } + + public void registerReference() { + referenceCount++; + } + + public void setDistinctiveColor(final String distinctiveColor) { + distinctiveReferenceColor = distinctiveColor; + } +} diff --git a/src/main/java/eu/svjatoslav/javainspect/structure/FieldDescriptor.java b/src/main/java/eu/svjatoslav/javainspect/structure/FieldDescriptor.java new file mode 100644 index 0000000..96b3602 --- /dev/null +++ b/src/main/java/eu/svjatoslav/javainspect/structure/FieldDescriptor.java @@ -0,0 +1,136 @@ +/* + * JavaInspect - Utility to visualize java software + * Copyright (C) 2013, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public License + * as published by the Free Software Foundation. + */ + +package eu.svjatoslav.javainspect.structure; + +import java.lang.reflect.Field; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.List; + +public class FieldDescriptor implements GraphElement { + + public String name; + public ClassDescriptor type; + private ClassDescriptor parent; + List typeArguments = new ArrayList(); + + public FieldDescriptor(final Field field, final ClassDescriptor parent, + final Graph dump) { + + this.parent = parent; + + if (!field.getDeclaringClass().getName() + .equals(parent.fullyQualifiedName)) + // if field is inherited, do not index it + return; + + // if (field.getType().isArray()) + // System.out.println("field name: " + field.getName()); + + parent.nameToFieldMap.put(field.getName(), this); + + name = field.getName(); + type = dump.addClass(field.getType()); + type.registerReference(); + + final Type genericType = field.getGenericType(); + if (genericType instanceof ParameterizedType) { + final ParameterizedType pt = (ParameterizedType) genericType; + for (final Type t : pt.getActualTypeArguments()) + if (t instanceof Class) { + final Class cl = (Class) t; + final ClassDescriptor genericTypeDescriptor = dump + .addClass(cl); + genericTypeDescriptor.registerReference(); + typeArguments.add(genericTypeDescriptor); + } + + } + } + + @Override + public String getDot() { + + if (!isVisible()) + return ""; + + final StringBuffer result = new StringBuffer(); + + // describe associated types + for (final ClassDescriptor classDescriptor : typeArguments) + if (classDescriptor.isVisible()) + if (classDescriptor.areReferencesShown()) + result.append(" " + getGraphId() + " -> " + + classDescriptor.getGraphId() + "[label=\"" + name + + "\", color=\"" + classDescriptor.getColor() + + "\", style=\"bold\"];\n"); + + if (!type.isVisible()) + return result.toString(); + + // main type + boolean showLink = type.areReferencesShown(); + + if (type == parent) + showLink = false; + + if (parent.isEnum) + showLink = false; + + if (showLink) + result.append(" " + getGraphId() + " -> " + type.getGraphId() + + "[label=\"" + name + "\"," + " color=\"" + + type.getColor() + "\", style=\"bold\"];\n"); + + return result.toString(); + } + + @Override + public String getEmbeddedDot() { + + if (!isVisible()) + return ""; + + final StringBuffer result = new StringBuffer(); + + result.append(" // " + name + "\n"); + if (parent.isEnum && (type == parent)) { + result.append(" "); + result.append(name + "\n"); + } else { + result.append(" "); + result.append(""); + result.append(type.getClassName(true) + ""); + result.append(""); + result.append(name + "\n"); + } + return result.toString(); + } + + @Override + public String getGraphId() { + return parent.getGraphId() + ":" + name; + } + + @Override + public boolean isVisible() { + if (name.contains("$")) + return false; + + if (name.equals("serialVersionUID")) + return false; + + return true; + } + +} \ No newline at end of file diff --git a/src/main/java/eu/svjatoslav/javainspect/structure/Graph.java b/src/main/java/eu/svjatoslav/javainspect/structure/Graph.java new file mode 100644 index 0000000..e1f7ff8 --- /dev/null +++ b/src/main/java/eu/svjatoslav/javainspect/structure/Graph.java @@ -0,0 +1,110 @@ +/* + * JavaInspect - Utility to visualize java software + * Copyright (C) 2013, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public License + * as published by the Free Software Foundation. + */ + +package eu.svjatoslav.javainspect.structure; + +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.HashMap; +import java.util.Map; + +import eu.svjatoslav.commons.file.CommonPathResolver; + +public class Graph { + + /** + * Maps class fully qualified names to class descriptors. + */ + Map nameToClassMap = new HashMap(); + + public Graph() { + } + + public Graph(final Class clazz) { + addClass(clazz); + } + + public Graph(final Object root) { + addClass(root.getClass()); + } + + public ClassDescriptor addClass(final Class clazz) { + + if (clazz == null) + return null; + + final String className = clazz.getName(); + + if (nameToClassMap.containsKey(className)) + return nameToClassMap.get(className); + + return new ClassDescriptor(clazz, this); + } + + public ClassDescriptor addObject(final Object object) { + return addClass(object.getClass()); + } + + public void generateGraph(final String graphName) { + generateGraph(graphName, false); + } + + public void generateGraph(final String graphName, final boolean keepDotFile) { + + final String desktopPath = CommonPathResolver.getDesktopDirectory() + .getAbsolutePath() + "/"; + + final String dotFilePath = desktopPath + graphName + ".dot"; + final String imageFilePath = desktopPath + graphName + ".png"; + + System.out.println("Dot file path:" + dotFilePath); + + try { + // write DOT file to disk + final PrintWriter out = new PrintWriter(dotFilePath); + out.write(getDot()); + out.close(); + + // execute GraphViz to visualize graph + try { + Runtime.getRuntime() + .exec(new String[] { "dot", "-Tpng", dotFilePath, "-o", + imageFilePath }).waitFor(); + } catch (final InterruptedException e) { + } finally { + } + + if (!keepDotFile) { + // delete dot file + final File dotFile = new File(dotFilePath); + dotFile.delete(); + } + } catch (final IOException e) { + System.err.println(e); + } + } + + private String getDot() { + final StringBuffer result = new StringBuffer(); + + result.append("digraph Java {\n"); + result.append("graph [rankdir=LR, overlap = false, concentrate=true];\n"); + + for (final Map.Entry entry : nameToClassMap + .entrySet()) + result.append(entry.getValue().getDot()); + + result.append("}\n"); + + final String resultStr = result.toString(); + return resultStr; + } + +} diff --git a/src/main/java/eu/svjatoslav/javainspect/structure/GraphElement.java b/src/main/java/eu/svjatoslav/javainspect/structure/GraphElement.java new file mode 100644 index 0000000..7aed6fe --- /dev/null +++ b/src/main/java/eu/svjatoslav/javainspect/structure/GraphElement.java @@ -0,0 +1,22 @@ +/* + * JavaInspect - Utility to visualize java software + * Copyright (C) 2013, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public License + * as published by the Free Software Foundation. + */ + +package eu.svjatoslav.javainspect.structure; + +public interface GraphElement { + + public String getDot(); + + public String getEmbeddedDot(); + + public String getGraphId(); + + public boolean isVisible(); + +} diff --git a/src/main/java/eu/svjatoslav/javainspect/structure/MethodDescriptor.java b/src/main/java/eu/svjatoslav/javainspect/structure/MethodDescriptor.java new file mode 100644 index 0000000..a7ce38b --- /dev/null +++ b/src/main/java/eu/svjatoslav/javainspect/structure/MethodDescriptor.java @@ -0,0 +1,140 @@ +/* + * JavaInspect - Utility to visualize java software + * Copyright (C) 2013, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public License + * as published by the Free Software Foundation. + */ + +package eu.svjatoslav.javainspect.structure; + +import java.lang.reflect.Method; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.List; + +public class MethodDescriptor implements GraphElement { + + public String name; + public ClassDescriptor returnType; + private final ClassDescriptor parent; + + List typeArguments = new ArrayList(); + + public MethodDescriptor(final Method method, final ClassDescriptor parent, + final Graph dump) { + + this.parent = parent; + + name = method.getName(); + + if (!method.getDeclaringClass().getName() + .equals(parent.fullyQualifiedName)) + // do not index inherited methods + return; + + parent.methods.add(this); + + returnType = dump.addClass(method.getReturnType()); + returnType.registerReference(); + + final Type genericType = method.getGenericReturnType(); + if (genericType instanceof ParameterizedType) { + final ParameterizedType pt = (ParameterizedType) genericType; + for (final Type t : pt.getActualTypeArguments()) + if (t instanceof Class) { + final Class cl = (Class) t; + final ClassDescriptor classDescriptor = dump.addClass(cl); + classDescriptor.registerReference(); + typeArguments.add(classDescriptor); + } + + } + + } + + @Override + public String getDot() { + + if (!isVisible()) + return ""; + + final StringBuffer result = new StringBuffer(); + + // describe associated types + for (final ClassDescriptor classDescriptor : typeArguments) + if (classDescriptor.isVisible()) + if (classDescriptor.areReferencesShown()) + result.append(" " + getGraphId() + " -> " + + classDescriptor.getGraphId() + "[label=\"" + name + + "\", color=\"" + classDescriptor.getColor() + + "\", style=\"dotted, bold\"];\n"); + + if (!returnType.isVisible()) + return result.toString(); + + // main type + if (returnType.areReferencesShown()) + result.append(" " + getGraphId() + " -> " + + returnType.getGraphId() + "[label=\"" + name + "\"," + + " color=\"" + returnType.getColor() + + "\", style=\"dotted, bold\"];\n"); + + return result.toString(); + } + + @Override + public String getEmbeddedDot() { + if (!isVisible()) + return ""; + + final StringBuffer result = new StringBuffer(); + + result.append(" // " + name + "\n"); + + result.append(" " + + "" + returnType.getClassName(true) + + "" + "" + + getMethodLabel() + "\n"); + + return result.toString(); + } + + @Override + public String getGraphId() { + return parent.getGraphId() + ":" + name; + } + + public String getMethodLabel() { + return name; + } + + @Override + public boolean isVisible() { + + if (Utils.isSystemMethod(name)) + return false; + + if (parent.isEnum && Utils.isEnumMethod(name)) + return false; + + if (!(name.startsWith("get") || name.startsWith("set"))) + return true; + + final String upprCaseName = name.substring(3).toUpperCase(); + + for (String parentField : parent.nameToFieldMap.keySet()) { + parentField = parentField.toUpperCase(); + + if (upprCaseName.equals(parentField)) + return false; + + } + + return true; + } + +} diff --git a/src/main/java/eu/svjatoslav/javainspect/structure/Utils.java b/src/main/java/eu/svjatoslav/javainspect/structure/Utils.java new file mode 100644 index 0000000..25caa1d --- /dev/null +++ b/src/main/java/eu/svjatoslav/javainspect/structure/Utils.java @@ -0,0 +1,144 @@ +/* + * JavaInspect - Utility to visualize java software + * Copyright (C) 2013, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public License + * as published by the Free Software Foundation. + */ + +package eu.svjatoslav.javainspect.structure; + +import java.util.ArrayList; +import java.util.List; + +public class Utils { + + private static final List systemDataTypes = new ArrayList(); + + private static final List systemMethods = new ArrayList(); + + private static final List systemPackages = new ArrayList(); + + private static final List darkColors = new ArrayList(); + + private static final List lightColors = new ArrayList(); + + private static final List enumMethods = new ArrayList(); + + public static int lastChosenDarkColor = -1; + + public static int lastChosenLightColor = -1; + + static { + initEnumMethods(); + initSystemDataTypes(); + initDarkColors(); + initLightColors(); + initSystemMethods(); + initSystemPackages(); + } + + /** + * retrieves colors from predefined palette + */ + public static String getNextDarkColor() { + lastChosenDarkColor++; + if (lastChosenDarkColor >= darkColors.size()) + lastChosenDarkColor = 0; + + return darkColors.get(lastChosenDarkColor); + } + + /** + * retrieves colors from predefined palette + */ + public static String getNextLightColor() { + lastChosenLightColor++; + if (lastChosenLightColor >= lightColors.size()) + lastChosenLightColor = 0; + + return lightColors.get(lastChosenLightColor); + } + + public static void initDarkColors() { + darkColors.add("antiquewhite4"); + darkColors.add("blueviolet"); + darkColors.add("brown4"); + darkColors.add("chartreuse4"); + darkColors.add("cyan4"); + darkColors.add("deeppink1"); + darkColors.add("deepskyblue3"); + darkColors.add("firebrick1"); + darkColors.add("goldenrod3"); + darkColors.add("gray0"); + } + + public static void initEnumMethods() { + enumMethods.add("values"); + enumMethods.add("valueOf"); + enumMethods.add("name"); + enumMethods.add("compareTo"); + enumMethods.add("valueOf"); + enumMethods.add("getDeclaringClass"); + enumMethods.add("ordinal"); + } + + public static void initLightColors() { + lightColors.add("olivedrab2"); + lightColors.add("peachpuff2"); + lightColors.add("seagreen1"); + lightColors.add("yellow"); + lightColors.add("violet"); + } + + public static void initSystemDataTypes() { + systemDataTypes.add("void"); + systemDataTypes.add("int"); + systemDataTypes.add("long"); + systemDataTypes.add("float"); + systemDataTypes.add("double"); + systemDataTypes.add("boolean"); + systemDataTypes.add("char"); + systemDataTypes.add("short"); + systemDataTypes.add("byte"); + } + + public static void initSystemMethods() { + systemMethods.add("wait"); + systemMethods.add("equals"); + systemMethods.add("toString"); + systemMethods.add("hashCode"); + systemMethods.add("notify"); + systemMethods.add("notifyAll"); + systemMethods.add("getClass"); + } + + public static void initSystemPackages() { + systemPackages.add("java."); + systemPackages.add("javax."); + systemPackages.add("sun."); + } + + public static boolean isEnumMethod(final String name) { + return enumMethods.contains(name); + } + + public static boolean isSystemDataType(final String name) { + return systemDataTypes.contains(name); + } + + public static boolean isSystemMethod(final String name) { + return systemMethods.contains(name); + } + + public static boolean isSystemPackage(final String name) { + + for (final String packagePrefix : systemPackages) + if (name.startsWith(packagePrefix)) + return true; + + return false; + } + +} -- 2.20.1