diff --git a/.gitignore b/.gitignore index f69985ef1f..d08644bcc7 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ bin/ /text-ui-test/ACTUAL.txt text-ui-test/EXPECTED-UNIX.TXT +data/ +src/main/java/META-INF/MANIFEST.MF diff --git a/HrArchitecture.png b/HrArchitecture.png new file mode 100644 index 0000000000..c713d8c278 Binary files /dev/null and b/HrArchitecture.png differ diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..177c473e85 --- /dev/null +++ b/META-INF/MANIFEST.MF @@ -0,0 +1,4 @@ +Manifest-Version: 1.0 +Main-Class: seedu.duke.Duke +Class-Path: seedu.duke + diff --git a/build.gradle b/build.gradle index b0c5528fb5..91fffd027d 100644 --- a/build.gradle +++ b/build.gradle @@ -43,4 +43,5 @@ checkstyle { run{ standardInput = System.in + enableAssertions = true } diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 0f072953ea..c912582bc6 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -2,8 +2,7 @@ Display | Name | Github Profile | Portfolio --------|:----:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +![](https://via.placeholder.com/100.png?text=Photo) | Ye Yutong | [Github](https://github.com/yeyutong811) | [Portfolio](team/yeyutong811.md) +![](https://via.placeholder.com/100.png?text=Photo) | John Ng | [Github](https://github.com/JohnNub) | [Portfolio](team/johnnub.md) +![](https://via.placeholder.com/100.png?text=Photo) | Varsha MS | [Github](https://github.com/Varsha3006) | [Portfolio](team/varsha3006.md) +![](https://via.placeholder.com/100.png?text=Photo) | Wang Zixin | [Github](https://github.com/WangZixin67) | [Portfolio](team/WangZixin67.md) diff --git a/docs/BackendDiagram/Architecture.png b/docs/BackendDiagram/Architecture.png new file mode 100644 index 0000000000..c3513ff945 Binary files /dev/null and b/docs/BackendDiagram/Architecture.png differ diff --git a/docs/BackendDiagram/Architecture.puml b/docs/BackendDiagram/Architecture.puml new file mode 100644 index 0000000000..aad27248b9 --- /dev/null +++ b/docs/BackendDiagram/Architecture.puml @@ -0,0 +1,21 @@ +@startuml + + +Package " "<> { +class Duke +class Ui +class Storage +class Logic +class Model +} + + +Duke -up-> Ui +Duke -up-> Logic +Logic -> Model +Model -> Logic +Logic -left> Ui +Logic --> Storage + + +@enduml \ No newline at end of file diff --git a/docs/BackendDiagram/ParserFlow.png b/docs/BackendDiagram/ParserFlow.png new file mode 100644 index 0000000000..ce9dd65b04 Binary files /dev/null and b/docs/BackendDiagram/ParserFlow.png differ diff --git a/docs/BackendDiagram/ParserFlow.puml b/docs/BackendDiagram/ParserFlow.puml new file mode 100644 index 0000000000..f6fb4c624b --- /dev/null +++ b/docs/BackendDiagram/ParserFlow.puml @@ -0,0 +1,19 @@ +@startuml +participant ":Ui" as Ui +participant ":Parser" as Parser +participant ":Command" as Command +->Ui:run() +activate Ui +Ui -> Parser : parse() +activate Parser +return UserInput +loop status != ACCEPT +Ui -> Command: validate() +activate Command +return status +end +Ui -> Command: execute() +activate Command +return printString +return +@enduml \ No newline at end of file diff --git a/docs/BackendDiagram/StorageFlow.png b/docs/BackendDiagram/StorageFlow.png new file mode 100644 index 0000000000..33a7c67ba8 Binary files /dev/null and b/docs/BackendDiagram/StorageFlow.png differ diff --git a/docs/BackendDiagram/StorageFlow.puml b/docs/BackendDiagram/StorageFlow.puml new file mode 100644 index 0000000000..a66d6a63ee --- /dev/null +++ b/docs/BackendDiagram/StorageFlow.puml @@ -0,0 +1,36 @@ +@startuml +participant ":Duke" as duke +participant ":FileManager" as fm +activate duke + +duke -> fm : readAll() + +activate fm +fm -> fm : readEvents() +activate fm +return +fm-> fm : readFinance() +activate fm +return +fm->fm : readMembers() +activate fm +return +return +loop +duke -> : Ui:run() +duke <-[dotted]- +duke -> fm : saveAll() +activate fm +fm -> fm :saveEvents() +activate fm +return +fm -> fm :saveFinance() +activate fm +return +fm -> fm :saveMembers() +activate fm +return + +return +end +@enduml \ No newline at end of file diff --git a/docs/BackendDiagram/command1.png b/docs/BackendDiagram/command1.png new file mode 100644 index 0000000000..b882e5cced Binary files /dev/null and b/docs/BackendDiagram/command1.png differ diff --git a/docs/BackendDiagram/command2.png b/docs/BackendDiagram/command2.png new file mode 100644 index 0000000000..c9434e0e33 Binary files /dev/null and b/docs/BackendDiagram/command2.png differ diff --git a/docs/BackendDiagram/command3.png b/docs/BackendDiagram/command3.png new file mode 100644 index 0000000000..f3b7ba7e23 Binary files /dev/null and b/docs/BackendDiagram/command3.png differ diff --git a/docs/BackendDiagram/command4.png b/docs/BackendDiagram/command4.png new file mode 100644 index 0000000000..81a725f5c4 Binary files /dev/null and b/docs/BackendDiagram/command4.png differ diff --git a/docs/BackendDiagram/command5.png b/docs/BackendDiagram/command5.png new file mode 100644 index 0000000000..4d406d6ef4 Binary files /dev/null and b/docs/BackendDiagram/command5.png differ diff --git a/docs/BackendDiagram/command6.png b/docs/BackendDiagram/command6.png new file mode 100644 index 0000000000..e27cea8c34 Binary files /dev/null and b/docs/BackendDiagram/command6.png differ diff --git a/docs/BackendDiagram/command7.png b/docs/BackendDiagram/command7.png new file mode 100644 index 0000000000..e27cea8c34 Binary files /dev/null and b/docs/BackendDiagram/command7.png differ diff --git a/docs/BackendDiagram/command8.png b/docs/BackendDiagram/command8.png new file mode 100644 index 0000000000..16ad65e035 Binary files /dev/null and b/docs/BackendDiagram/command8.png differ diff --git a/docs/CCAManager_logo.png b/docs/CCAManager_logo.png new file mode 100644 index 0000000000..eb84e8d441 Binary files /dev/null and b/docs/CCAManager_logo.png differ diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 0ec3db103d..1458598b66 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1,34 +1,1007 @@ # Developer Guide -## Design & implementation +![](CCAManager_logo.png) -{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.} +# Table of Contents +- [1. Introduction](#1-introduction) +- [2. Setting up](#2-setting-up) +- [3. Design and Implementation](#3-design-and-implementation) + * [3.1. Input Parsing](#31-input-parsing) + * [3.2. Commands](#32-commands) + * [3.3. Finance](#33-finance) + * [3.4. Event](#34-event) + * [3.5. HR](#35-hr) + * [3.6. Storage](#36-storage) +- [4. Product Scope](#4-product-scope) + * [4.1. Target user profile](#41-target-user-profile) + * [4.2. Value proposition](#42-value-proposition) +- [5. User Stories](#5-user-stories) +- [6. Non-Functional Requirements](#6-non-functional-requirements) +- [7. Glossary](#7-glossary) +- [8. Instructions for manual testing](#8-instructions-for-manual-testing) -## Product scope -### Target user profile -{Describe the target user profile} +## 1. Introduction +CCA Manager is a revolutionary all-in-one management tool that changes the way you can manage interest groups with unrivaled efficiency and simplicity. Its lightweight Command Line Interface (CLI) allows administrators to breeze through tasks quickly and easily while offering powerful features to advanced users. -### Value proposition +This developer guide is written to document the implementation of CCA Manager. This document is intended for people who +are interested in learning more about the technical details of the various features and the organization of the application. -{Describe the value proposition: what problem does it solve?} +You can also find CCA Manager's user guide [here](https://ay2021s1-cs2113t-f14-1.github.io/tp/UserGuide.html) -## User Stories +## 2. Setting up +For running the software release, refer to the guide [here](https://github.com/AY2021S1-CS2113T-F14-1/tp/blob/master/README.md). + +To set up the project for development. Follow the following steps: + +* Ensure that Java 11 or higher is installed on the development machine. +* Download the source code from the CCA Manager repository [here](https://github.com/AY2021S1-CS2113T-F14-1/tp). +* You may choose to set up an IDE to facilitate easy development of the project. The team uses [Intellij IDEA](https://www.jetbrains.com/idea/) for developing the project. Other IDEs may be used, but have not been verified to work. +* Import the project folder into your IDE. + +## 3. Design and Implementation +This section seeks to explain the high-level design of the application. Given below is a quick overview of each component and the explanation of the design architecture in greater detail. +Diagrams found in our documentation were generated using PlantUML, in compliance to the UML standards defined in the module requirements. + +### 3.1. Input Parsing +![Parser](BackendDiagram/ParserFlow.png) + +Input parsing describes the process of converting the user's input into an executable command. The diagram above shows the execution flow required to run a single command. + +The `Parser` is responsible for the input conversion to a `UserInput` object. Subsequently, we use `validate()` in a loop to identify the command to execute, then we execute the command action with `execute()`. + +**3.1.1 Current Implementation** +The `Parser` class in `seedu.duke.backend` handles most of the input parsing. The `Parser` is a standalone class. Its purpose is to handle the conversion of read Strings from the `Ui` to UserInput objects +safely for the rest of the program to handle. It implements the following operations: + +* `Parser#parse()` - Converts the supplied input `String` to a `UserInput` object +* `Parser#checkCategory()` - Convert the supplied `String` to a `String` category. This function implements Shorthand category detection. +Shorthand Commands is a feature which aims to reduce the amount of typing required to execute commands to improve efficiency. In this case, the key word for a category such as `events` can be shortened to `e`. +* `Parser#sanitize()` - Check for unsupported, illegal or potentially malicious input and remove it from the `String`. +For example the EICAR Test String `X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*` can cause data loss by tricking antivirus software into quarantining data files. + +Given below is an explanation on the logical flow of the `parse()` function. + +1. The supplied `String` is sent to `sanitize()` to remove any potentially unwanted input that may cause undefined application behavior. +2. `sanitize()` will analyze the `String` and run a set list of checks to verify that the input is safe for the rest of the routine to handle. +3. `parse()` will split the `String` to a `String[]` to identify the number of arguments. +4. `checkCategory()` is invoked to identify if the command belongs to a specific category. +5. A `HashMap` is created to store all the arguments supplied by the user. +6. A new `UserInput` object is created with the arguments in the HashMap, the category of the command and the command. +7. The function returns the `UserInput` to the `Ui` for further execution. + +**3.1.2 Design Considerations** +Aspect: Statefulness of Parser object +* Alternative 1 (Current Choice): Parser does not preserve state between parses. + * Pros: Easy to implement. Easy to test. Promotes use of single commands over multi-step commands. + * Cons: Unable to implement intelligent functionality where previous input influences the behavior of the next. + * Reason for choice: Our focus for this application is simplicity and efficiency. Having stateful commands runs counter to this design philosophy. + +* Alternative 2: Parser preserves stateful information + * Pros: Able to implement multi-step commands. Can easily implement confirmation step for commands that manipulate large volume of data. + * Cons: More complicated to implement. Harder to ensure the behaviour of the parser is consistent. Harder to debug. + +Aspect: Design of parser +* Alternative 1 (Current Choice): Dedicated parser class creates an object to be passed into all other Command objects + * Pros: Allows other classes to check for the required arguments without having to do low level string handling. Enforces consistent parsing across all commands. Enables `/` arguments to be added and read in any order. + * Cons: Incurs additional overhead from adding an extra step between the input operation and the command invocation. + +* Alternative 2: Each Command handles its own input independently + * Pros: Command classes are free to simplify the parsing step depending on the required complexity of the command. No intermediate step and overhead. + * Cons: More difficult to enforce parsing standards across Commands. String manipulation becomes required in every command. + +[Return to top](#Developer-guide) + +### 3.2. Commands +**3.2.1 Current Implementation** +The abstract `Command` class in `seedu.duke` defines how the rest of the commands interact with the `UI` and `UserInput` objects. +Its purpose is to ensure that all commands conform to the same design and coding standards to be compatible with the `UI` layer while also being +sufficiently flexible to allow for complex commands to be created. It specifies the following *abstract* methods: + +* `Command#help()` - Allows commands to specify a default help `String` to be displayed if the argument supplied is incorrect. +* `Command#validate()` - Checks if the supplied `UserInput` was intended for this command and validates if the supplied arguments are correct. This is akin to knocking the doors of houses on a street to look for an individual. +* `Command#execute()` - Performs the command action. This is only run if `validate()` returns `ACCEPT`. + +Given below is the logical flow of the `Command` input to execution flow: + +1. The `Ui` reads the user input. +2. The `Ui` calls the `Parser` to parse the input +3. The `Parser` returns the `UserInput` to the `Ui` +4. The `Ui` checks through the list of available commands and runs `validate()` on each of them until one command returns either `ARGUMENT_ERR` or `ACCEPT` + * If the `Ui` receives an `ARGUMENT_ERR`, it calls the `help()` function of that command and prints the `String` to the `Ui`. + * If the `Ui` receives an `ACCEPT`, it proceeds with the execution flow from 5. + * If the `Ui` receives no `ACCEPT`s or `ARGUMENT_ERR` after going through all commands, the `Ui` prints a list of available commands. +5. The `Ui` calls the `execute()` method of the command that `ACCEPT` the `UserInput`. +6. The `Ui` prints the output String returned from the `execute()` method. + +**3.2.2 Design Considerations** +Aspect: The need to instantiate a `Command` +* Alternative 1 (Current Choice): Classes that inherit `Command` are instantiated on `UI` initialization. + * Pros: Easy to implement. Less overhead from executing commands. Locality of the code allows for minimal merge conflicts when developing collaboratively. + * Cons: Requires more memory at load to hold all the objects. + * Reason for choice: Since we do not have a stateful parser, this option was chosen as the simplest implementation that gets the job done. + +* Alternative 2: `Command`s only contain static methods + * Pros: Conceptually more sensible than having exactly one instance of each command. + * Cons: More complicated to implement, java has no elegant simple way to exploit inheritance and static functions in a list of classes making this option unpractical without implementing a bunch of hacks. + +Aspect: Design of `Command` criteria checking +* Alternative 1 (Current Choice): Each class is free to specify its own matching patterns and criterion. + * Pros: Allows for more complex criteria evaluation without having a dedicated class for resolving commands. Makes good use of abstraction and inheritance and puts all the `Command` related functions in the same class. + * Cons: Searching of the command list is `O(n)` but the individual validation functions may not be `O(1)`, resulting in higher potential overhead if validation functions are not optimized. + * Reason for choice: We wanted development of command related functions to all be housed in the same class. This design achieves that goal while giving us a great deal of flexibility. + +* Alternative 2: Dedicated class for command resolution and validation + * Pros: Further separates the job of command resolution from the `Ui` and `Command`. Simplifies `Command` class. + * Cons: Would be a class which features a very un-elegant large `if-else` block or `switch` block. Requires every new command to update this class with a substantial amount of new lines. Harder to develop collaboratively, increases chances of merge conflicts. + +**3.2.3 Creating a Command** +This subsection demonstrates how simple it is to create a new command in the application. + +1. Create a new command class. The class should extend the `Command` class in `seedu.duke.` +![](BackendDiagram/command1.png) +2. Override 3 functions, `execute()`, `validate(UserInput)` and `help()`. +3. In `validate()`, write code to check if the `UserInput` object is intended for your command. +![](BackendDiagram/command2.png) + 1. Check if the category is for your command’s category (Red box in image above) + 2. Check if the command matches the name of your command (Blue box in image above) + 3. Optionally you can check the number of arguments if your command accepts arguments. + The figure below shows how to check for the minimum number of arguments + ![](BackendDiagram/command3.png) + The figure below shows how to check if an argument exists and is supplied by the user + ![](BackendDiagram/command4.png) + 4. Validate should return `ACCEPT`, `NO_MATCH` or `ARGUMENT_ERR`. Refer to the function javadoc for the meaning of each value, shown below. + ![](BackendDiagram/command5.png) + 5. You may want to save additional information like the `UserInput` object to a local variable as it is not supplied directly to the `execute()` function. +4. Set `help()` to return some useful information when the user enters the command syntax incorrectly. +![](BackendDiagram/command6.png) +5. Write the command working code in `execute()`. It should return a message to be displayed to the user. +![](BackendDiagram/command7.png) +6. Add your command to the `initializeCommands()` section of `seedu.duke.backend.Ui` +![](BackendDiagram/command8.png) +7. If all steps were completed correctly, you should be able to use your new command after compiling and running the program. + +[Return to top](#Developer-guide) + +### 3.3. Finance +(by: Wang Zixin) +The diagram below shows the architecture of Finance feature: +![Architecture of Finance](financeDiagramPic/Architecture.png) + +**3.3.1. Add/delete finance log entry feature** +**3.3.1.1. Current Implementation** +The `CommandFinanceAdd` class in `seedu.duke.finance` handles adding finance log entry. It adds a new `FinanceLog` instance according to `userInput` into `FinanceList`. +The `CommandFinanceDel` in the same package handles deleting finance log entry. It deletes a certain `FinanceLog` instance according to the index provided by `userInput` from `FinanceList`. +They implement the following operations: +* `CommandFinanceAdd#execute()` - Adds a new finance log entry into the `FinanceList` according to `userInput`. +* `CommandFinanceDel#execute()` - Deletes a certain finance log entry from `FinanceList` according to the index provided by `userInput`. + +Given below is an example usage scenario and how the add/delete finance log entry behaves at each step. + +Step 1. The user launches the application for the first time. The `FinanceList` will be initialized with no `FinanceLog` in it. + +![](financeDiagramPic/1-1S1.png) + +Step 2. The user executes `finance addLog iphone12 1299` command to add a finance log entry with content "iphone12" and value "1299" into finance list. The `finance addLog` command +calls `CommandFinanceAdd#execute()`, then `FinanceList` will be added a `FinanceLog` with its `finLog` as `iphone12` and its value as `1299`. + +![](financeDiagramPic/1-1S2.png) + +Step 3. The user executes `finance delLog 1` command to delete the 1st finance log entry in the finance list. The `finance delLog` +command calls `CommandFinanceDel#execute()`, causing the `FinanceLog` of index 1 removed from `FinanceList`. + +![](financeDiagramPic/1-1S3.png) + +The sequence diagram for adding a finance log entry is shown below: + +![](financeDiagramPic/CommandFinanceAdd.png) + +The sequence diagram for deleting a finance log entry is shown below: + +![](financeDiagramPic/CommandFinanceDel.png) + +**3.3.1.2. Design Considerations** +Aspect: User input format for adding a finance log entry +* Alternative 1(Current Choice): The user inputs command in format `finance addLog ITEM_NAME ITEM_VALUE`. + * Pros: It is more convenient for the user to type commands and easier to memorize the command format. + * Cons: It takes longer time to execute the command for the program has to identify which part is `ITEM_NAME` and which part is + `ITEM_VALUE`. If the user inputs a separate number for `ITEM_NAME` but forgets to type `ITEM_VALUE`, then the program will mistake + the separate number in `ITEM_NAME` for its `ITEM_VALUE`. For example, if the user just input `finance summary iphone 12` but forgot to + type the price, then the finance log entry will become `iphone $12`. + +* Alternative 2: The user inputs command in format `finance addLog /n ITEM_VALUE /v ITEM_VALUE`. + * Pros: The program can easily detect if the input command is valid. + * Cons: It is harder for the user to memorize the command format. It also costs more time when executing. + + +**3.3.2. List the summary of finance log entries** +**3.3.2.1. Current Implementation** +The `CommandFinanceSummary` class in `seedu.duke.finance` handles listing all the finance log entries in `FinanceList` and +showing the total budget of all the `FinanceLog`. +It implements the following operation: +* `CommandFinanceSummary#execute()` - Lists all `FinanceLog` in `FinanceList` and shows the total budget of them. + +Given below is an example usage scenario and how the program list the summary of finance log entries. + +Step 1. After some `finance addLog` commands, the user created a `FinanceList` with two `FinanceLog`. The first `FinanceLog` is +"iphone12 $1299" and the second `FinanceLog` is "chicken rice $3.5". + +![](financeDiagramPic/1-2S1.png) + +Step 2. The user executes `finance summary` command to list the summary of `FinanceList`. The `finance summary` command calls +`CommandFinanceSummary#execute()`, then every `FinanceLog` in `FinanceList` will be output and the total budget will be printed out at the bottom. Nothing will be changed in `FinanceList`. + +![](financeDiagramPic/1-2S2.png) + +The sequence diagram of listing summary of finance log entries is shown below: + +![](financeDiagramPic/CommandFinanceSummary.png) + + +**3.3.2.2. Design Considerations** +Aspect: Repeated items +* Alternative 1(Current Choice): The summary will output all the repeated items. + * Pros: It can display all the indexes of the repeated items so that when user wants to delete any one of them, + he can just refer to this summary. + * Cons: It cannot display the total budget for these repeated items. The user has to find a way to calculate it + by himself. + +* Alternative 2: The summary will combine all the repeated items then output them. + * Pros: The user do not have to calculate the total budget for repeated items by himself. + * Cons: The summary cannot show each index of the repeated items that it is confusing when user wants to delete + any one of them. + + +**3.3.3. Change the information of a finance log entry** +**3.3.3.1. Current Implementation** +The `CommandFinanceChange` class in `seedu.duke.finance` handles changing a particular `FinanceLog`'s `finLog` and +`finLogVal` in `FinanceList` whose index is provided by the user. +It implements the following operation: +* `CommandFinanceChange#execute()` - Change the `FinanceLog`'s `finLog` and `finLogVal` whose index is provided by the user. + +Given below is an example usage scenario and how the program change the information of a `FinanceLog`. + +Step 1. After some `finance addLog` commands, the user created a `FinanceList` with two `FinanceLog`. The first is +"iphone12 $1299", the second is "rent room $40". + +![](financeDiagramPic/1-3S1.png) + +Step 2. The user executes `finance changeLog /i 2 /n rent field 50` to change the second `FinanceLog`'s information. +The `finance changeLog` command calls `CommandFinanceChnage#execute()`, then the second `FinanceLog`'s `finLog` is changed +to "rent field" and its `finLogVal` is changed to "$50". + +![](financeDiagramPic/1-3S2.png) + + +**3.3.3.2. Design Considerations** +Aspect: User input format +* Alternative 1(Current Choice): It changes both `finLog` and `finLogVal` together at the same time. + * Pros: The user does not need to remember two different command formats and the current format can increase the + efficiency of the program. + * Cons: Every time the user has to type in both `ITEM_NAME` and `ITEM_VALUE`, it may waste some time for the user. + +* Alternative 2: Split the command into changeName and changeNum. + * Pros: The user can choose whether just change only `finLog` or `finLogVal` and it is easier to debug. + * Cons: If the user want to change both `finLog` and `finLogVal`, it will waste more time on typing commands. Also, + it takes longer time to execute the commands, including others. + + +The sequence diagram of changing information of a finance log entry is shown below: + +![](financeDiagramPic/CommandFinanceChange.png) + + +[Return to top](#Developer-guide) + +### 3.4. Event + +(By: Varsha)
+ +The diagram below shows the overall architecture for `Event` feature.
+ + +![](EventDiagram/EventSteps/eventArchi.png) + + + +There are a total of 9 commands under `Event` feature. + `CommandEventAdd`, `CommandEventDel`, `CommandEventList` ,`CommandEventStatus`, `CommandSearchEvent` , `CommandEventCountdown` , `CommandAddEventAttendance`,`CommandDelEventAttendance`, `CommandViewEventAttendence`. + + The implementation for each `Event` command is described in detail below. + +**3.4.1. Add/delete events feature** `CommandEventAdd` , `CommandEventDel` + +(By: Varsha)
+**3.4.1.1. Current Implementation**
+ +The `CommandEventAdd` class in `seedu.duke.event` handles the adding of events. According to the `userInput`, it adds a new event to the `EventList`. +The `CommandEventDel` class in the same package handles deleting of a event. It deletes an `Event` instance according to the index provided by `userInput` from the `EventList`. +They implement the following operations: +* `CommandEventAdd#execute()` - Adds a new `Event` into the `EventList` according to `userInput`. +* `CommandEventDel#execute()` - Deletes an `Event` from `EventList` or deletes all the events in the list. + +Note: To delete a particular event, enter the index of the event. For example, `event delEvent 2`
+Note: To delete all the events in the list, enter `all` instead of the index of the event. For example, `event delEvent all`
+Note: When a new event is added, if the event name and date matches to an existing event in the list, it is considered a duplicate event. It will not be added + to the event list.
+ +Given below is an example usage scenario and how add/delete event function behaves at each step. + +Step 1. The user launches the application for the first time. + +![](EventDiagram/EventSteps/Step1.png) + +Step 2. The user executes `event addEvent /n arduino course /d 2020-12-30 /t 18-00` command to add a new event with the name "arduino course", +the date of the event "2020-12-30" and the time "18-00" into event list. +The `event addEvent` command calls `CommandEventAdd#execute()`, then `EventList` will add a new `Event` with event name as `arduino course`, date as `2020-12-30` and time as `18-00`. + +![](EventDiagram/EventSteps/Step2.png) + +Step 3. The user executes `event delEvent 1` command to delete the 1st event in the event list. The `event delEvent` +command calls `CommandEventDel#execute()`, causing the `Event` at index 1 to be removed from `EventList`. + +![](EventDiagram/EventSteps/Step3.png) + +The sequence diagram for adding an event is as shown below: + +![CommandEventAdd](EventDiagram/SequenceDiagram/CommandEventAdd.png) + +The sequence diagram for deleting **a particular event** or **all events** is as shown below: + +![CommandEventDelete](EventDiagram/SequenceDiagram/CommandEventDelete.png) + +**3.4.1.2. Design Considerations**
+ +Aspect : User input format for adding an event
+* Alternative 1 (current choice) : The user will input the command in the format `event addEvent /n EVENT_NAME /d EVENT_DATE /t EVENT_TIME`.
+ * Pros: Easy to detect if user input is valid for each parameter, `/n`,`/d`and`/t`.
+ * Cons : It may be hard for the user to memorise the command format at the beginning.
+ +* Alternative 2 : User input with the format `event addevent EVENT_NAME EVENT_DATE EVENT_TIME`
+ * Pros: It is more convenient for the user to type commands and easier to memorise the command format.
+ * Cons : It takes longer to execute the command as the program will take time to identify the respective parameters within the command entered.
+ +[Return to top](#Developer-guide) + +**3.4.2. Listing Events** `CommandEventList` + +(By: Varsha)
+**3.4.2.1 Current implementation** + +The `CommandEventList` class in `seedu.duke.event` handles listing all the events in `EventList`. + +It implements the following operation: +* `CommandEventList#execute()` - Lists all `Event` in `EventList`. + +Given below is an example usage scenario and how the program list the events. + +Step 1. Assume there are 2 `Event` in the `EventList`. +The first `Event` has the name arduino course on 30 December 2020 at 18-00 and the second `Event` has the name Autodesk course on 25 May 2021 from 12-00. + +![](EventDiagram/EventSteps/2Step1.png) + +Step 2.The user executes `event listEvent` command to list the `EventList`. The `event listEvent` command calls +`CommandEventList#execute()`, then every `Event` in `EventList` will be printed out. Nothing will be changed in `EventList`. + +![](EventDiagram/EventSteps/2Step2.png) + +**3.4.2.2. Design Considerations**
+ +Aspect: Repeated items
+* Alternative 1 (Current Choice): `event listEvent` command will only list unique events present in the list. It will not show repeated events. +When a new event is added, if the event name and date matches to an existing event in the list, it is considered a duplicate event. It will not be added +to the event list.
+ * Pros : The resulting event list does not contain duplicates. The number of events in the list will be valid.
+ * Cons : Requires more methods to be written. + +* Alternative 2 : Program accepts duplicated events and filters the duplicates for the user.
+ * Pros: It can display all the indexes of the repeated items which user can refer to delete the duplicates.
+ * Cons : The duplicate list is redundant to the user.
+ + +The sequence diagram for listing events is as shown below: + +![](EventDiagram/SequenceDiagram/CommandEventList.png) + +[Return to top](#Developer-guide) + +**3.4.3. Searching for an event via name or date** `CommandSearchEvent` + +(By: Varsha)
+**Current Implementation** + +The `CommandSearchEvent` class in `seedu.duke.event` handles searching of an event via its name or its date. + +It implements the following operation: +* `CommandSearchEvent#execute()` - Search all `Event` in `EventList` for the name or date entered by user. + + The sequence diagram for searching for an event is as shown below: + + ![](EventDiagram/SequenceDiagram/CommandSearchEvent.png) + +**3.5.4.2. Design Considerations** +Aspect: Search conditions
+* Alternative 1(Current choice): It will search for `Event` by the name or date entered. + * Pros: Its faster. If the name or date of the first `Event` in the does not match it skips to the next `Event` instead of checking other conditions. + * Cons: If the user input contains some common strings like "and" or "the", there will be too many results shown to the user. + +* Alternative 2: It will search for `Event` whose information matches all the conditions provided by user input. + * Pros: There will not be too many results when the user input includes common strings like "The" or "and". + * Cons: Since it's a linear search, therefore, the bigger the data size, the longer the search, especially with more conditions to check. + +[Return to top](#Developer-guide) + +**3.4.4. Displaying countdown to upcoming events** `CommandEventCountdown` + +(By: Varsha)
+**Current Implementation** + +The `CommandEventCountdown` class in `seedu.duke.event` handles displaying of countdown as an additional feature in the `EventList`. + +It implements the following operation:
+* `CommandEventCountdown#execute()` - displays countdown feature for all upcoming `Event` in the `EventList`. It shows the number of days remaining to the respective event and sorts them such that the +earliest upcoming events is first on the list. (Earliest Deadline First,EDF) + +The sequence diagram for displaying countdown is as shown below: + +![](EventDiagram/SequenceDiagram/CommandEventCountdown.png) + +**3.5.4.2. Design Considerations** + Aspect: Format of countdown feature
+ * Alternative 1(Current choice): `event countdown` events are sorted such that the most upcoming events is displayed ahead of others.
+ * Pros: Users can view the most urgent event easily. It lists out all the events with the countdown feature.
+ * Cons: The more events added, the longer it will take to list the events.
+ * Alternative 2: `event countdown EVENT_INDEX` Will only display the countdown for the event in the index given.
+ * Pros: Faster, can easily retrieve the event from the list.
+ * Cons: Less useful to user as compared to alternative 1, where the EDF algorithm is used to sort the list.
+ + + +[Return to top](#Developer-guide) + +**3.4.5. Mark an event as completed** `CommandEventStatus` + +(By: Varsha)
+**Current Implementation** + +The `CommandEventStatus` class in `seedu.duke.event` handles marking of an event. It can manually mark an event as done. + +It implements the following operation:
+* `CommandEventStatus#execute()` - Marks an `Event` in the `EventList` as done. + +The sequence diagram for marking an event as done is as shown below: + +![CommandEventStatus](EventDiagram/SequenceDiagram/CommandEventStatus.png) + +[Return to top](#CCA-manager-developer-guide) + +**3.4.6. Add/delete event participants feature** `CommandAddEventAttendance` , `CommandDelEventAttendance` + +(By: Ye Yutong)
+**3.4.6.1. Current Implementation** +The `CommandAddEventAttendance` class in `seedu.duke.event` handles the adding of event participants. According to the `userInput`, it adds a new participant to the specified event in the `EventList`. +The `CommandDelEventAttendance` class in the same package handles deleting of an event participant. It deletes a `Member` instance from the event participants list of the specified `Event`. +They implement the following operations: +* `CommandAddEventAttendance#execute()` - Adds a new participant into the event participant list of the `Event`, according to `userInput`. +* `CommandDelEventAttendance#execute()` - Deletes a participant from the event participant list of the `Event`, according to `userInput`. + +Given below is an example usage scenario and how add/delete event participants function behaves at each step. + +Step 1. After a `event addEvent` command, the user has created a `EventList` with some `Event`. Assuming there is an `Event` in the list, +with the name arduino course on 30 December 2020 at 18-00 and the second `Event` has the name Autodesk course on 25 May 2021 at 12-00. + +![](EventDiagram/EventSteps/6Step1.png) + +Step 2. After a `hr addMember` command, the user created a `MemberList` with some `Member`. Assuming there is 1 `Member` in the list, +with the name "Harry Potter", phone number "88888888", email "qaz@gmail.com", role "president".
+ +![](EventDiagram/EventSteps/6Step2.png) + +Step 3. The user executes `event addAttendance /n arduino course /m harry potter` command to add a new participant with the name "Harry Potter" to the event with the name "arduino course", +into eventParticipants list. +The `event addAttendance` command calls `CommandAddEventAttendance#execute()`, then `EventList` will add a `Member` with the member name `Harry Potter` in the `MemberList`, to the `Event` with event name `arduino course` in the `EventList`. + +![](EventDiagram/EventSteps/6Step3.png) + +Step 4. The user executes `event delAttendance /n arduino course /m harry potter` command to delete `Member` with the member name `Harry Potter` from the event participants list. +The `event delAttendance` command calls `CommandDelEventAttendance#execute()`, causing the specified `Member` to be removed from the event participants list of the specified `Event`. + +![](EventDiagram/EventSteps/6Step4.png) + +The sequence diagram for adding a participant into a particular event is as shown below: + +![CommandAddEventAttendance](EventDiagram/SequenceDiagram/CommandAddEventAttendance.png) + +The sequence diagram for deleting a participant from a particular event is as shown below: + +![CommandDelEventAttendance](EventDiagram/SequenceDiagram/CommandDelEventAttendance.png) + +**3.4.6.2. Design Considerations**
+ +Aspect: Delete participant attendance from an event
+* Alternative 1 (Current Choice): `event delAttendance` command will only delete member from each event by the member name.
+ * Pros : The user can delete quickly if he is familiar with the name of the targeted participant.
+ * Cons : The user needs to type in the full name of the participant in order to delete the person, might be less convenient if the user is not familiar with the names. + +* Alternative 2 : `event delAttendance` command will only delete member from each event by the member's index in the participant list.
+ * Pros : It is easier to implement. + * Cons : The user needs to view the participant list of the event first to view the index, hence requires more typing and less convenient.
+ +[Return to top](#Developer-guide) + +**3.4.7. Listing event participants** `CommandViewEventAttendance` + +(By: Ye Yutong)
+**3.4.7.1 Current implementation** +The `CommandViewEventAttendance` class in `seedu.duke.event` handles listing all the participants of the given event in the event participants list. + +It implements the following operation: +* `CommandViewEventAttendance#execute()` - Lists all `Member` of the given `Event` the event participants list. + +Given below is an example usage scenario and how the program list the participants. + +Step 1. After a `event addEvent` commands, the user has created a `EventList` with a `Event`. + The`Event` has the name arduino course on 30 December 2020 at 18-00. + +![](EventDiagram/EventSteps/7Step1.png) + +Step 2. After some `hr addMember` commands, the user created a `MemberList` with some `Member`. Assuming there are 2 members in the list. + The first `Member` has the name "John Sterling" with phone number "12345678", email "123@gmail.com", role "member". + The second `Member` has the name "Harry Potter", phone number "88888888", email "qaz@gmail.com", role "president".
+ +![](EventDiagram/EventSteps/7Step2.png) + +Step 3. After some `event addAttendance` commands, the user created a `MemberList` with some `Member`. Assuming the 2 participants in the event participants list are the 2 members in the `MemberList`. + +![](EventDiagram/EventSteps/7Step3.png) + +Step 4.The user executes `event listAttendance` command to list the event participants list. The `event listAttendance` command calls +`CommandViewEventAttendance#execute()`, then every `Member` in event participants list of the `Event` will be printed out. Nothing will be changed in the event participants list. + +![](EventDiagram/EventSteps/7Step4.png) + +The sequence diagram for listing participants in an event is as shown below: + +![](EventDiagram/SequenceDiagram/CommandViewEventAttendance.png) + +[Return to top](#Developer-guide) + +### 3.5. HR +The diagram below shows the overall architecture for HR feature.
+ +![](hrDiagramPic/HrArchi.png) + +There are a total of 7 commands under HR feature: + `CommandAddMember`, `CommandDelMember`, `CommandViewMember` ,`CommandListConnection`, `CommandSearchMember` , `CommandListProfAdmin` and `CommandChangeMemberInfo`. + +The implementation for each command is described in detail below. + +**3.5.1. Add/delete member feature** + +(By: Ye Yutong)
+**3.5.1.1. Current Implementation** +The add/delete member mechanism is facilitated by `CommandAddMember` and `CommandDelMember` classes. The +`CommandAddMember` class in `seedu.duke.hr` handles adding members. It adds a new `Member` instance according to +`userInput` into `MemberList`. +The `CommandDelMember` class in the same package handles deleting members. It deletes a certain `Member` instance +according to the index provided by `userInput` from `MemberList`. +These two classes implement the following operations: +* `CommandAddMember#execute()` - Adds a new member into the `MemberList` according to `userInput`. +* `CommandDelMember#execute()` - Deletes a certain member from `MemberList` according to the index provided by +`userInput`. + +Given below is an example usage scenario and how the add/delete member behaves at each step. + +Step 1. The user launches the application for the first time. The `MemberList` will be initialized with no `Member` in +it. + +![](hrDiagramPic/2-1S1.png) + +Step 2. The user executes `hr addMember /n john sterling /p 12345678 /e 123@gmail.com /r member` command to add a member + with name "John Sterling", phone number "12345678", email "123@gmail.com" and role "member" into member list. The + `hr addMember` command calls `CommandAddMember#execute()`, which then calls `MemberList#findByName()`, + `MemberList#standardizeMemberName()` and `MemberList#addToList()`. `MemberList#findByName()` finds the `Member` in the + list by the given member name. `MemberList#standardizeMemberName()` standardize the member name input by the user by + capitalizing the first letter in each word in the name. Then, `MemberList#addToList()` adds a `Member` with its + `memberName` as `John Sterling`, `memberPhone` as `12345678`, `memberEmail` as `123@gmail.com`, and `memberRole` as + `member` into `MemberList`. + +The following shortcut commands can achieve the same result:
+`hr add /n john sterling /p 12345678 /e 123@gmail.com /r member`
+`hr a /n john sterling /p 12345678 /e 123@gmail.com /r member`
+ +![](hrDiagramPic/2-1S2.png) + +Step 3. The user executes `hr delMember 1` command to delete the member in the member list. The `hr delMember` +command calls `CommandDelMember#execute()`, causing the `Member` of index 1 removed from `MemberList`, and the same +`Member` removed from the list of event participants of each `Event` in the `EventList`. + + The following shortcut commands can achieve the same result:
+ `hr delete 1`
+ `hr d 1`
+ +![](hrDiagramPic/2-1S3.png) + +The sequence diagram for adding a member is as shown below: + +![CommandAddMember](hrDiagramPic/CommandAddMember.png) + +The sequence diagram for deleting a member is as shown below: + +![CommandDelMember](hrDiagramPic/CommandDelMember.png) + +The method `MemberList#updateAttendanceRate()` referenced in the above diagrams is as shown below: + +![CommandDelMember](hrDiagramPic/UpdateAttendanceRate.png) + +The method `MemberList#deleteFromEvents()` referenced in the above diagram is as shown below: + +![CommandDelMember](hrDiagramPic/DeleteFromEvents.png) + +Refer to section 3.4.6.1 for the sequence diagram of the method `EventList#deletAttendance()` referenced in the above diagram. + +[Return to top](#Developer-guide) + +**3.5.2. List the members** + +(By: Ye Yutong)
+**3.5.2.1. Current Implementation** +The `CommandViewMember` class in `seedu.duke.hr` handles listing all the members in `MemberList` and +showing the contacts and role information of all the `Member`. +It implements the following operation: +* `CommandViewMember#execute()` - Lists all `Member` in `MemberList` and shows their contacts and roles. + +Given below is an example usage scenario and how the program list the information of members. + +Step 1. After some `hr addMember` commands, the user created a `MemberList` with two `Member`.
+The first `Member` is "John Sterling" with phone number "12345678", email "123@gmail.com", role "member".
+The second `Member` is "Harry Potter", phone number "88888888", email "qaz@gmail.com", role "president".
+ +![](hrDiagramPic/2-2S1.png) + +Step 2. The user executes `hr listMember` command to list the summary of `MemberList`. The `hr listMember` command calls +`CommandViewMember#execute()`, then every `Member` in `MemberList` and the contacts and roles will be printed out within + the same line, separated by "|". Nothing will be changed in `MemberList`. + + The following shortcut commands can achieve the same result:
+ `hr list`
+ `hr l`
+ + The sequence diagram for listing the members is as shown below: + + ![CommandViewMember](hrDiagramPic/CommandViewMember.png) + +[Return to top](#Developer-guide) + +**3.5.3. Change member information** + +(By: Ye Yutong)
+**3.5.3.1. Current Implementation** +The `CommandChangeInfo` class in `seedu.duke.hr` handles changing contacts and roles information of the members in +`MemberList` and showing the contacts and roles of the changed `Member`. +It implements the following operation: +* `CommandChangeInfo#execute()` - Changes any of the their contacts and roles `Member` in `MemberList` and shows the +modified member information. + +Given below is an example usage scenario and how the program list the information of members. + +Step 1. After some `hr addMember` commands, the user created a `MemberList` with two `Member`.
+The first `Member` is "John Sterling" with phone number "12345678", email "123@gmail.com", role "member".
+The second `Member` is "Harry Potter", phone number "88888888", email "qaz@gmail.com", role "president".
+ +Step 2. The user executes `hr changeInfo /n john sterling /p 11111111 /r publicity director` command to change the phone + number and role of the member with name "John Sterling" in the list. The `hr changeInfo` command calls +`CommandChangeInfo#execute()`, then `Member` with the `memberName` `John Sterling` in the `MemberList` will have its +`memberPhone` changed to `11111111`, and `memberRole` changed to `publicity director`. The `memberName` is not case +sensitive. + +The following shortcut commands can achieve the same result:
+`hr c /n john Sterling /p 11111111 /r publicity director`
+ +The sequence diagram for changing contacts and role information of a member is as shown below: + +![CommandChangeMemberInfo](hrDiagramPic/CommandChangeMemberInfo.png) + +**3.5.3.2. Design Considerations** +Aspect: Changing member information
+* Alternative 1(Current Choice): `Member` information is to be modified based on the member's full name. + * Pros: Easy to implement. Also, if the user knows the name of the target `Member`, which is a likely case in actual + practice, he can change the member's information quickly. + * Cons: Member name cannot be easily modified. If the user wants to change the name of the `Member`, the user has to delete + the target `Member`, and add the `Member` back using the new name. + +* Alternative 2: `Member` Information is to be modified based on the member's index in the list. + * Pros: `Member` name can be easily modified. + * Cons: This feature is very dependent on the list `Member` feature. The user will always need to call the `hr listMember` + command to find out the index of the target `Member`, before he can change the member's information. + +[Return to top](#Developer-guide) + + +**3.5.4. Search for members** +(by: Wang Zixin) + +**3.5.4.1 Current Implementation** +The `CommandSearchMember` class in `seedu.duke.hr` handles searching for any `Member` in `MemberList` whose information matches +any one of the conditions provided by the user input and then prints all the results. +It implements the following operation: +* `CommandSearchMember#execute()` - Search for any `Member` whose information matches any conditions +provided by the user input then print all the results. + +Given below is an example usage scenario and how the program search particular members. + +Step 1. After some `hr addMember` commands, the user created two `Member`s in `MemberList`. The first `Member` is +"John Sterling" with phone number "12345678", email "123@gmail.com", role "member". The second `Member` is +"Harry Potter", phone number "88888888", email "qaz@gmail.com", role "president". + +![](hrDiagramPic/3-5S1.png) + +Step 2. The user executes `hr search President` command to search for any `Member` whose information includes "President". +The program first check if the first `Member` matches the condition. This `Member` does not match the search condition. + +![](hrDiagramPic/3-5S2.png) + +Step 3. Then the program check if the second `Member` matches the condition. This `Member` now matches the search condition. +Because there is no more `Member`s, program will print out information of the second `Member`. + +![](hrDiagramPic/3-5S3.png) + +The sequence diagram for searching is given below: + +![](hrDiagramPic/CommandSearchMember.png) + +**3.5.4.2. Design Considerations** +Aspect: Search condition +* Alternative 1(Current choice): It will search for `Members` whose inforamtion matches any conditions provided by user input. + * Pros: It can maximize the number of results that are provided to user just like what google search is doing now. It can + also decrease the running time in some degree because it can jump to the next `Member` if the previous `Member`'s name or phone + number or email matches the search condition. + *Cons: If the user input contains some common strings like ".com" or "a", there will be too many results shown to the user. + +* Alternative 2: It will search for `Members` whose information matches all the conditions provided by user input. + * Pros: There will not be too many results when the user input includes common strings with other conditions. + * Cons: It will increase the running time a lot because it has to check all the information of `Member`s, especially + when there are many members. + +[Return to top](#Developer-guide) + +**3.5.5. List Professors and Administrators** +(by: Wang Zixin) + +**3.5.5.1 Current Implementation** +The `CommandListProfAdmin` class in `seedu.duke.hr` handles listing all the `Member`s in `MemberList` whose roles are professor +or administartor. +It implements the following operation: +* `CommandListProfAdmin#execute()` - List all the `Member`s who are professors or administrators + +Given below is an example usage scenario and how the program list all the professors or administrators. + +Step 1: After some `hr addMember` commands, the user has created three `Member` in `MemberList`. The first `Member` is +"John Sterling" with phone number "12345678", email "123@gmail.com", role "member". The second `Member` is +"Harry Potter", phone number "88888888", email "qaz@gmail.com", role "professor". The third `Member` is +"Tony Parker", phone number "114514", email "tp9@gmail.com", role "Administrator". + +![](hrDiagramPic/35S1.png) + +Step 2. Then the user executes `hr list prof&admin`. After sifting, the remaining `Member`'s information will be +printed. + +![](hrDiagramPic/35S2.png) + +The sequence diagram for listing professors and administrators is shown below: + +![](hrDiagramPic/CommandListProfAdmin.png) + +**3.5.5.2. Design Considerations** +Aspect: Just use `hr search` or use `hr list prof&admin` +* Alternative 1(Current choice): Use `hr list prof&admin` + * Pros: The user can just type one command, instead of typing `hr search prof` and `hr search admin`. + * Cons: It increases the time of searching all the `Command`s in command list and this command looks similar + to `hr list` that may confuse the user. + +* Alternative 2: Use `hr search` + * Pros: The time of searching all `Command`s in command list will not be influenced. + * Cons: The user has to type `hr search` twice to list professors and administrators and the lists are separated. + +[Return to top](#Developer-guide) + + +**3.5.6. List Connection** +(by: Wang Zixin) + +**3.5.6.1 Current Implementation** +The `CommandListConnection` class in `seedu.duke.hr` handles listing all the `Member`s in `MemberList` whose roles are speakers +or alumni. +It implements the following operation: +* `CommandListConnection#execute()` - List all the `Member`s who are speakers or alumni + +Given below is an example usage scenario and how the program list all the `Member` in connection. + +Step 1. After some `hr addMember` commands, the user has created three `Member` in `MemberList`. The first `Member` is + "John Sterling" with phone number "12345678", email "123@gmail.com", role "member". The second `Member` is + "Harry Potter", phone number "88888888", email "qaz@gmail.com", role "speaker". The third `Member` is + "Tony Parker", phone number "114514", email "tp9@gmail.com", role "Alumni". + +![](hrDiagramPic/3-6S1.png) + +Step 2. Then the user executes `hr list connections`. After sifting, the remaining `Member`'s information will be + printed. + +![](hrDiagramPic/3-6S2.png) + +The sequence diagram for listing connection is shown below: + +![](hrDiagramPic/CommandListConnection.png) + +**3.5.5.2. Design Considerations** +Aspect: Just use `hr search` or use `hr list connections` +* Alternative 1(Current choice): Use `hr list connections` + * Pros: The user can just type one command, instead of typing `hr search speaker` and `hr search alumni`. + * Cons: It increases the time of searching all the `Command`s in command list and this command looks similar + to `hr list` that may confuse the user. + +* Alternative 2: Use `hr search` + * Pros: The time of searching all `Command`s in command list will not be influenced. + * Cons: The user has to type `hr search` twice to list speakers and alumni and the lists are separated. + +[Return to top](#Developer-guide) + + +### 3.6. Storage + +![](BackendDiagram/StorageFlow.png) + +The storage component is responsible for storing persistent data to disk. This involves objects from all 3 categories of the application. +The above sequence diagram shows the program flow involving only the `FileManager` component, other aspects like the callers `Duke`, execution of `Ui` etc are ommitted for simplicity. + +The main process of the program in Duke invokes the `readAll()` function on start-up. This reads all the data saved on disk to memory. +During the program loop, the main process invokes `saveAll()` after every command run. This saves the current state of the application to file automatically. + +**Current Implementation** + +The `FileManager` class in `seedu.duke.backend` manages all the file related operations. Its purpose is to provide an abstraction layer for saving and reading the current state of the application to and from disk. +It is also used by the `import` command to perform importing of other CSV files. + +* `FileManager#getPath()` - Retrieves the working directory of the `FileManager`. +* `FileManager#setPath()` - Changes the working directory of the `FileManager`. +* `FileManager#saveAll()` - Saves the current state of the program. This function invokes `saveEvent()`, `saveFinance()` and `saveMembers()` in sequence. +* `FileManager#readAll()` - Reads the saved data in the working direction to program memory. This functions invokes `readEvent()`, `readFinance()` and `readMembers()` in sequence. +* `FileManager#saveEvent()` - Saves the event data to disk. +* `FileManager#saveFinance()` - Saves the finance data to disk. +* `FileManager#saveMembers()` - Saves the HR data to disk. +* `FileManager#saveFile()` - Saves a `String` to the specified filename. +* `FileManager#readFile()` - Reads a CSV file from disk and returns a `HashMap>` containing the header of each table mapped to an `ArrayList` of all rows in that column. This function is also used by the `import` command. +* `FileManager#readFinance()` - Reads the finance data from disk. +* `FileManager#readEvents()` - Reads the event data from disk. +* `FileManager#readMembers()` - Reads the hr data from the disk. + +**Design Considerations** +Aspect: When is the file saved +* Alternative 1 (Current Choice): Saving is performed automatically on every command completion. + * Pros: Convenient for users. No requirement to save all 3 categories independently. + * Cons: Requires more IO overhead to write the data to disk. Potentially wastes IO cycles writing unchanged data. + * Reason for choice: Our design philosophy is to make the program as convenient and easy to use as possible. This alternative allows us to align with that goal. +* Alternative 2: Dedicated saving command + * Pros: Only saves to the disk when required. Can revert accidental changes easily. + * Cons: The user may forget to save their data, resulting in data loss. +* Alternative 3: Each command calls the relevant saving function. + * Pros: Minimizes wasted IO cycles. Convenient for users. + * Cons: Need to ensure that all commands that change the state of the program actually save the data. Harder to check for bugs. + +Aspect: The format of the file +* Alternative 1 (Current Choice): CSV File + * Pros: Commonly used file format, easy to edit. Compatible with other programs. + * Cons: None + * Reason for choice: This the best choice as it is an already established file format compatible with other programs. +* Alternative 2: Use `serializable` Java interface + * Pros: Extremely easy to write and read from file. Very good retention of data and it's relationships. Easy to implement. + * Cons: Filetype is not user editable as it is written by the java serializer. +* Alternative 3: Use a proprietary file format designed specifically for CCA Manager + * Pros: Able to tailor the design of the file format to suit the requirements of the program. + * Cons: May not be editable by the user with a text editor. Does not offer compatibility with any existing programs. + +[Return to top](#Developer-guide) + +## 4. Product Scope +### 4.1. Target user profile + +Our product targets people who manage interest groups and CCAs. +However, our software solution allows us to easily expand the target audience to target schools and corporate enterprise clients in the future. + +[Return to top](#Developer-guide) +### 4.2. Value proposition + +Management software is expensive and complex, training employees to use it is time-consuming. CCA Manager aims to solve these +problems by offering an all-in-one solution focused on simplicity and efficiency. +Our use of industry standard csv format ensures compatibility with leading industry tools. +Shorthand Commands and Relative Time allow advanced users to enter up to 70% more commands per minute. The import command allows users to migrate existing data quickly and get started in no time. + + +[Return to top](#Developer-guide) +## 5. User Stories + +(By: Varsha) |Version| As a ... | I want to ... | So that I can ...| |--------|----------|---------------|------------------| -|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| -|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| +|v1.0|user|add/delete members to the list |keep track of the members in the CCA| +|v1.0|user|view a summary of members |view information of people in the various roles| +|v1.0|user|add/delete events to the list|so that i can manage the schedule| +|v1.0|user|view a summary of events |keep track of future and completed events| +|v1.0|user|add/delete entries|keep track of financial records in the CCA| +|v1.0|user|view financial summary |keep track of cash flow information at a glance| +|v2.0|user|view the number of days remaining for the events|remind myself of upcoming events | +|v2.0|user|perform a search on member/events|find the details of the member/event quickly| +|v2.0|user|view the list of contacts of the prof/admin|so that i know how to contact them for admin matters| +|v2.0|user|reassign member roles |so that I can update their roles and responsibilities| +|v2.0|user|change member phone numbers and emails |so that I can update their contacts| +|v2.0|user|take attendance | so that I can keep track of members participation in the club| +|v2.0|user|view members absence rate | so that I can identify members with low participation rate| +|v2.0|user|view the list of contacts of the connections (alumni, speakers) | So that I can source for collaborators or speakers for our events easily| +|v2.0|user| import other csv files | So that I can transfer my existing data into the program easily| + +[Return to top](#Developer-guide) + +## 6. Non-Functional Requirements + +1. Should work on any mainstream OS as long as it has Java 11 or above installed. +2. Should be able to hold hundreds of thousands of data entries without losing the data. +3. A user with average typing speed should be able to accomplish most of the tasks faster using commands than using the mouse. +4. The program should support writing to a universally supported and easy to edit non-proprietary file format such as RFC 4180 .csv files. + +[Return to top](#Developer-guide) +## 7. Glossary -## Non-Functional Requirements +**CCA** - Co-curricular Activity
+**CLI** - Command Line interface
+**UML** - Unified Modelling Language
+**CSV** - Comma-seperated values. This typically refers to the file type with extension .csv
+**EDF** - Earliest Deadline First
+**OS** - Operating Systems
+**RFC** - Request for Comments, an internet standard specifying various applications of technology or methodology. +**IDE** - Integrated Development Environment. A software application that provides facilities for software development, such as IntelliJ. +**EICAR** - European Institute for Computer Antivirus Research +**Cash flow** - Real or virtual movement of money. +**IO** - Input/Output. Also known as the process of communicating within various parts of the operating system. The most common IO task is file related operations such as opening a file. +**Proprietary format** - A non-standard File format designed by a particular company, organization or individual. Could be designed with the details of the implementation kept secret. +**HR** - Human Resource -{Give non-functional requirements} +[Return to top](#Developer-guide) -## Glossary +## 8. Instructions for manual testing -* *glossary item* - Definition +This section contains information on how to test CCA Manager to ensure that the basic functionalities are working. -## Instructions for manual testing +1. Start the application from a terminal window by using `java -jar CCAManager.jar` +2. Add some entries with commands + * Use `hr addMember /n Harry Potter /p 12345678 /e H_P@gmail.com /r member` to add a new member + * Use `finance addLog iPhone 12 Pro 1800` to add a new finance entry + * Use `event addEvent /n Autodesk course /d 2020-12-20 /t 8-10.30pm` to add a new event +3. Check that the items have been added with the respective list commands + * Use `hr listmember` to show all the HR entries + * Use `event listEvent` to list all the events + * Use `finance summary` to show a summary of all finance entries +4. Type `bye` to exit the program +5. Launch the application again. +6. Repeat step 3 to verify that all the information entered has been saved +7. Type `event search /s course` to search for the event that you have entered +8. Type `event countdown` to see a list of events sorted by days in increasing order +9. Type `hr search /r member` to search for all members with the role of member +10. Type `finance changeLog /i 1 /n buy cake 5.5` to modify the finance entry that you have entered +11. Type `hr changeInfo /n Harry Potter /p 12345678 /e 123@gmail.com /r admin` to modify the member entry entered earlier +12. Type `event done 1` to set the status of the event to completed +13. Type `hr list prof&admin` to show a list of members with the role prof or admin +14. Type `event addAttendance /n Autodesk course /m Harry Potter` to add the member to the list of attendees +15. Repeat step 3 to verify that all the information has been modified successfully +16. Type `event listAttendance /n Autodesk course` to view the event attendance +17. Type `event delAttendance /n Autodesk course /m Harry Potter` to delete the attendance record +17. Clean up the entries by deleting them + * Use `event delEvent 1` to remove an event + * Use `event delEvent all` to remove all events + * Use `finance dellog 1` to remove the finance log + * Use `hr delMember 1` to remove the member +18. Type `bye` to exit the program +19. Launch the application again and repeat step 3 to verify that all the entries have been deleted. -{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} +[Return to top](#Developer-guide) diff --git a/docs/EventDiagram/EventArchi1.png b/docs/EventDiagram/EventArchi1.png new file mode 100644 index 0000000000..c42c070f08 Binary files /dev/null and b/docs/EventDiagram/EventArchi1.png differ diff --git a/docs/EventDiagram/EventArchi1.puml b/docs/EventDiagram/EventArchi1.puml new file mode 100644 index 0000000000..0c56b21c96 --- /dev/null +++ b/docs/EventDiagram/EventArchi1.puml @@ -0,0 +1,16 @@ +@startuml +hide circle +class "{abstract} \n Command" { +} + +Rectangle EventCommands { +"{abstract} \n Command" <|-down- CommandEventAdd +"{abstract} \n Command" <|-down CommandEventDel +"{abstract} \n Command" <|-down CommandEventList +"{abstract} \n Command" <|-down CommandSearchEvent +"{abstract} \n Command" <|-down CommandEventStatus +"{abstract} \n Command" <|-down CommandEventCountdown +"{abstract} \n Command" <|-down CommandAddEventAttendance +"{abstract} \n Command" <|-down CommandDelEventAttendance +"{abstract} \n Command" <|-down CommandViewEventAttendance +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/EventArchi2.png b/docs/EventDiagram/EventArchi2.png new file mode 100644 index 0000000000..2d1e64ad69 Binary files /dev/null and b/docs/EventDiagram/EventArchi2.png differ diff --git a/docs/EventDiagram/EventArchi2.puml b/docs/EventDiagram/EventArchi2.puml new file mode 100644 index 0000000000..333ebff6b2 --- /dev/null +++ b/docs/EventDiagram/EventArchi2.puml @@ -0,0 +1,21 @@ + +@startuml +scale max 1024 width +hide circle + +class "{abstract} \n Command" { +} + + + +"{abstract} \n Command" <|-down- EventCommands + +EventCommands -down> Event +Eventlist -> EventCommands +EventCommands -> Eventlist + + +Duke -> Ui +Ui -> "{abstract} \n Command" + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/EventSteps/2Step1.png b/docs/EventDiagram/EventSteps/2Step1.png new file mode 100644 index 0000000000..3b998bcbc8 Binary files /dev/null and b/docs/EventDiagram/EventSteps/2Step1.png differ diff --git a/docs/EventDiagram/EventSteps/2Step1.puml b/docs/EventDiagram/EventSteps/2Step1.puml new file mode 100644 index 0000000000..d050360ce7 --- /dev/null +++ b/docs/EventDiagram/EventSteps/2Step1.puml @@ -0,0 +1,25 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Initial state + +package EventList0 { + class State1 as "Event\nArduino Course Dec 30 2020 18-00" + class State2 as "Event\nAutoDesk Course May 25 2021 12-00" +} +package EventList1 { + class State3 as "Event\nArduino Course Dec 2020 30 18-00" + class State4 as "Event\nAutoDesk Course May 2021 25 12-00" +} +hide EventList1 + +EventList0 -left->EventList1 + + +class Pointer as "Current State" #FFFFF +Pointer -up-> EventList0 + + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/EventSteps/2Step2.png b/docs/EventDiagram/EventSteps/2Step2.png new file mode 100644 index 0000000000..6d3622ccf2 Binary files /dev/null and b/docs/EventDiagram/EventSteps/2Step2.png differ diff --git a/docs/EventDiagram/EventSteps/2Step2.puml b/docs/EventDiagram/EventSteps/2Step2.puml new file mode 100644 index 0000000000..eace2a61e3 --- /dev/null +++ b/docs/EventDiagram/EventSteps/2Step2.puml @@ -0,0 +1,24 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 2 + +package EventList0 { + class State1 as "Event\nArduino Course Dec 30 2020 18-00" + class State2 as "Event\nAutoDesk Course May 25 2021 12-00" +} +package EventList1 { + class State3 as "Event\nArduino Course Dec 30 2020 18-00" + class State4 as "Event\nAutoDesk Course May 25 2021 12-00" +} + +EventList0 -left->EventList1 : event listEvent + + +class Pointer as "Current State" #FFFFF +Pointer -up-> EventList0 + + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/EventSteps/6Step1.png b/docs/EventDiagram/EventSteps/6Step1.png new file mode 100644 index 0000000000..c5e4d5dbf2 Binary files /dev/null and b/docs/EventDiagram/EventSteps/6Step1.png differ diff --git a/docs/EventDiagram/EventSteps/6Step1.puml b/docs/EventDiagram/EventSteps/6Step1.puml new file mode 100644 index 0000000000..86525225ba --- /dev/null +++ b/docs/EventDiagram/EventSteps/6Step1.puml @@ -0,0 +1,32 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 1 + +package EventList0 { + class State1 as "Event \narduino course 30 Dec 2020 18-00 []" +} + +package EventList1 { + class State3 as "Event \narduino course 30 Dec 2020 18-00 [Harry Potter]" +} + +package EventList2 { + class State4 as "Event \narduino course 30 Dec 2020 18-00 []" +} + +package MemberList0 { + class State2 as "Member \nHarry Potter 88888888 qaz@gmail.com president" +} + +EventList0 -->EventList1 +EventList1 -->EventList2 +MemberList0 -->EventList1 + +hide EventList1 +hide EventList2 +hide MemberList0 + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/EventSteps/6Step2.png b/docs/EventDiagram/EventSteps/6Step2.png new file mode 100644 index 0000000000..2ddc52825b Binary files /dev/null and b/docs/EventDiagram/EventSteps/6Step2.png differ diff --git a/docs/EventDiagram/EventSteps/6Step2.puml b/docs/EventDiagram/EventSteps/6Step2.puml new file mode 100644 index 0000000000..10839b1890 --- /dev/null +++ b/docs/EventDiagram/EventSteps/6Step2.puml @@ -0,0 +1,31 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 2 + +package EventList0 { + class State1 as "Event \narduino course 30 Dec 2020 18-00 []" +} + +package EventList1 { + class State3 as "Event \narduino course 30 Dec 2020 18-00 [Harry Potter]" +} + +package EventList2 { + class State4 as "Event \narduino course 30 Dec 2020 18-00 []" +} + +package MemberList0 { + class State2 as "Member \nHarry Potter 88888888 qaz@gmail.com president" +} + +EventList0 -->EventList1 +EventList1 -->EventList2 +MemberList0 -->EventList1 + +hide EventList1 +hide EventList2 + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/EventSteps/6Step3.png b/docs/EventDiagram/EventSteps/6Step3.png new file mode 100644 index 0000000000..0cc24d7b2b Binary files /dev/null and b/docs/EventDiagram/EventSteps/6Step3.png differ diff --git a/docs/EventDiagram/EventSteps/6Step3.puml b/docs/EventDiagram/EventSteps/6Step3.puml new file mode 100644 index 0000000000..f2f2b0a590 --- /dev/null +++ b/docs/EventDiagram/EventSteps/6Step3.puml @@ -0,0 +1,30 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 3 + +package EventList0 { + class State1 as "Event \narduino course 30 Dec 2020 18-00 []" +} + +package EventList1 { + class State3 as "Event \narduino course 30 Dec 2020 18-00 [Harry Potter]" +} + +package EventList2 { + class State4 as "Event \narduino course 30 Dec 2020 18-00 []" +} + +package MemberList0 { + class State2 as "Member \nHarry Potter 88888888 qaz@gmail.com president" +} + +EventList0 -->EventList1 +EventList1 -->EventList2 +MemberList0 -->EventList1 + +hide EventList2 + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/EventSteps/6Step4.png b/docs/EventDiagram/EventSteps/6Step4.png new file mode 100644 index 0000000000..ed21ec8fa0 Binary files /dev/null and b/docs/EventDiagram/EventSteps/6Step4.png differ diff --git a/docs/EventDiagram/EventSteps/6Step4.puml b/docs/EventDiagram/EventSteps/6Step4.puml new file mode 100644 index 0000000000..90a7076728 --- /dev/null +++ b/docs/EventDiagram/EventSteps/6Step4.puml @@ -0,0 +1,28 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 4 + +package EventList0 { + class State1 as "Event \narduino course 30 Dec 2020 18-00 []" +} + +package EventList1 { + class State3 as "Event \narduino course 30 Dec 2020 18-00 [Harry Potter]" +} + +package EventList2 { + class State4 as "Event \narduino course 30 Dec 2020 18-00 []" +} + +package MemberList0 { + class State2 as "Member \nHarry Potter 88888888 qaz@gmail.com president" +} + +EventList0 -->EventList1 +EventList1 -->EventList2 +MemberList0 -->EventList1 + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/EventSteps/7Step1.png b/docs/EventDiagram/EventSteps/7Step1.png new file mode 100644 index 0000000000..bae479e14f Binary files /dev/null and b/docs/EventDiagram/EventSteps/7Step1.png differ diff --git a/docs/EventDiagram/EventSteps/7Step1.puml b/docs/EventDiagram/EventSteps/7Step1.puml new file mode 100644 index 0000000000..316cac931d --- /dev/null +++ b/docs/EventDiagram/EventSteps/7Step1.puml @@ -0,0 +1,21 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 1 + +package EventList0 { + class State1 as "Event \narduino course 30 Dec 2020 18-00 []" +} + +package MemberList0 { + class State2 as "Member \nJohn Sterling 12345678 123@gmail.com member" + class State3 as "Member \nHarry Potter 88888888 qaz@gmail.com president" +} + +hide MemberList0 +class Pointer as "Current State" #FFFFF +Pointer -up-> EventList0 + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/EventSteps/7Step2.png b/docs/EventDiagram/EventSteps/7Step2.png new file mode 100644 index 0000000000..788030eb1b Binary files /dev/null and b/docs/EventDiagram/EventSteps/7Step2.png differ diff --git a/docs/EventDiagram/EventSteps/7Step2.puml b/docs/EventDiagram/EventSteps/7Step2.puml new file mode 100644 index 0000000000..51e2b699c2 --- /dev/null +++ b/docs/EventDiagram/EventSteps/7Step2.puml @@ -0,0 +1,21 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 2 + +package EventList0 { + class State1 as "Event \narduino course 30 Dec 2020 18-00 []" +} + +package MemberList0 { + class State2 as "Member \nJohn Sterling 12345678 123@gmail.com member" + class State3 as "Member \nHarry Potter 88888888 qaz@gmail.com president" +} + +class Pointer as "Current State" #FFFFF +Pointer -up-> EventList0 + + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/EventSteps/7Step3.png b/docs/EventDiagram/EventSteps/7Step3.png new file mode 100644 index 0000000000..127f860c20 Binary files /dev/null and b/docs/EventDiagram/EventSteps/7Step3.png differ diff --git a/docs/EventDiagram/EventSteps/7Step3.puml b/docs/EventDiagram/EventSteps/7Step3.puml new file mode 100644 index 0000000000..a01af24663 --- /dev/null +++ b/docs/EventDiagram/EventSteps/7Step3.puml @@ -0,0 +1,27 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 3 + +package EventList0 { + class State1 as "Event \narduino course 30 Dec 2020 18-00 []" +} + +package EventList1 { + class State4 as "Event \narduino course 30 Dec 2020 18-00 [Harry Potter, John Sterling]" +} + +package MemberList0 { + class State2 as "Member \nJohn Sterling 12345678 123@gmail.com member" + class State3 as "Member \nHarry Potter 88888888 qaz@gmail.com president" +} + +EventList0 -->EventList1 +MemberList0 -->EventList1 + +class Pointer as "Current State" #FFFFF +Pointer -right-> EventList1 + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/EventSteps/7Step4.png b/docs/EventDiagram/EventSteps/7Step4.png new file mode 100644 index 0000000000..7b7f454305 Binary files /dev/null and b/docs/EventDiagram/EventSteps/7Step4.png differ diff --git a/docs/EventDiagram/EventSteps/7Step4.puml b/docs/EventDiagram/EventSteps/7Step4.puml new file mode 100644 index 0000000000..b0872c9622 --- /dev/null +++ b/docs/EventDiagram/EventSteps/7Step4.puml @@ -0,0 +1,32 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 4 + +package EventList0 { + class State1 as "Event \narduino course 30 Dec 2020 18-00 []" +} + +package MemberList0 { + class State2 as "Member \nJohn Sterling 12345678 123@gmail.com member" + class State3 as "Member \nHarry Potter 88888888 qaz@gmail.com president" +} + +package EventList1 { + class State4 as "Event \narduino course 30 Dec 2020 18-00 [Harry Potter, John Sterling]" +} + +package EventList2 { + class State5 as "Event \narduino course 30 Dec 2020 18-00 [Harry Potter, John Sterling]" +} + +EventList0 -->EventList1 +MemberList0 -->EventList1 +EventList1 -->EventList2 + +class Pointer as "Current State" #FFFFF +Pointer -right-> EventList2 + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/EventSteps/Step1.png b/docs/EventDiagram/EventSteps/Step1.png new file mode 100644 index 0000000000..cdc7a9cd62 Binary files /dev/null and b/docs/EventDiagram/EventSteps/Step1.png differ diff --git a/docs/EventDiagram/EventSteps/Step1.puml b/docs/EventDiagram/EventSteps/Step1.puml new file mode 100644 index 0000000000..b43809cc06 --- /dev/null +++ b/docs/EventDiagram/EventSteps/Step1.puml @@ -0,0 +1,29 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Initial state + +package EventList0 { + class State1 as " " +} +package EventList1 { + class State2 as "Event \narduino course Dec 30 2020 18-00" +} + + +package EventList2 { + class State00 as " " +} + +EventList0 -left->EventList1 +EventList1 -left->EventList2 +hide EventList1 +hide EventList2 + +class Pointer as "Current State" #FFFFF +Pointer -up-> EventList0 + + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/EventSteps/Step2.png b/docs/EventDiagram/EventSteps/Step2.png new file mode 100644 index 0000000000..c663e4428c Binary files /dev/null and b/docs/EventDiagram/EventSteps/Step2.png differ diff --git a/docs/EventDiagram/EventSteps/Step2.puml b/docs/EventDiagram/EventSteps/Step2.puml new file mode 100644 index 0000000000..a84448d2eb --- /dev/null +++ b/docs/EventDiagram/EventSteps/Step2.puml @@ -0,0 +1,28 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 2 + +package EventList0 { + class State1 as " " +} +package EventList1 { + class State2 as "Event \narduino course Dec 30 2020 18-00" +} + +package EventList2 { + class State3 as " " +} + +EventList0 -left->EventList1 +EventList1 -left->EventList2 + +hide EventList2 + +class Pointer as "Current State" #FFFFF +Pointer -up-> EventList1 + + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/EventSteps/Step3.png b/docs/EventDiagram/EventSteps/Step3.png new file mode 100644 index 0000000000..547c904ce3 Binary files /dev/null and b/docs/EventDiagram/EventSteps/Step3.png differ diff --git a/docs/EventDiagram/EventSteps/Step3.puml b/docs/EventDiagram/EventSteps/Step3.puml new file mode 100644 index 0000000000..aa4ac514a0 --- /dev/null +++ b/docs/EventDiagram/EventSteps/Step3.puml @@ -0,0 +1,28 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 3 + +package EventList0 { + class State1 as " " +} +package EventList1 { + class State2 as "Event \narduino course Dec 30 2020 18-00" +} + + +package EventList2 { + class State3 as " " +} + +EventList0 -left->EventList1 +EventList1 -left->EventList2 + + +class Pointer as "Current State" #FFFFF +Pointer -up-> EventList2 + + +@endum \ No newline at end of file diff --git a/docs/EventDiagram/EventSteps/eventArchi.png b/docs/EventDiagram/EventSteps/eventArchi.png new file mode 100644 index 0000000000..9b89514d18 Binary files /dev/null and b/docs/EventDiagram/EventSteps/eventArchi.png differ diff --git a/docs/EventDiagram/EventSteps/style.puml b/docs/EventDiagram/EventSteps/style.puml new file mode 100644 index 0000000000..aeb450fd0d --- /dev/null +++ b/docs/EventDiagram/EventSteps/style.puml @@ -0,0 +1,66 @@ +!define UI_COLOR #1D8900 +!define UI_COLOR_T1 #83E769 +!define UI_COLOR_T2 #3FC71B +!define UI_COLOR_T3 #166800 +!define UI_COLOR_T4 #0E4100 + +!define LOGIC_COLOR #3333C4 +!define LOGIC_COLOR_T1 #C8C8FA +!define LOGIC_COLOR_T2 #6A6ADC +!define LOGIC_COLOR_T3 #1616B0 +!define LOGIC_COLOR_T4 #101086 + +!define MODEL_COLOR #9D0012 +!define MODEL_COLOR_T1 #F97181 +!define MODEL_COLOR_T2 #E41F36 +!define MODEL_COLOR_T3 #7B000E +!define MODEL_COLOR_T4 #51000A + +!define STORAGE_COLOR #A38300 +!define STORAGE_COLOR_T1 #FFE374 +!define STORAGE_COLOR_T2 #EDC520 +!define STORAGE_COLOR_T3 #806600 +!define STORAGE_COLOR_T2 #544400 + +!define USER_COLOR #000000 + +skinparam BackgroundColor #FFFFFFF + +skinparam Shadowing false + +skinparam Class { + FontColor #FFFFFF + BorderThickness 1 + BorderColor #FFFFFF + StereotypeFontColor #FFFFFF + FontName Arial +} + +skinparam Actor { + BorderColor USER_COLOR + Color USER_COLOR + FontName Arial +} + +skinparam Sequence { + MessageAlign center + BoxFontSize 15 + BoxPadding 0 + BoxFontColor #FFFFFF + FontName Arial +} + +skinparam Participant { + FontColor #FFFFFFF + Padding 20 +} + +skinparam MinClassWidth 50 +skinparam ParticipantPadding 10 +skinparam Shadowing false +skinparam DefaultTextAlignment center +skinparam packageStyle Rectangle + +hide footbox +hide members +hide circle \ No newline at end of file diff --git a/docs/EventDiagram/SequenceDiagram/CommandAddEvent.puml b/docs/EventDiagram/SequenceDiagram/CommandAddEvent.puml new file mode 100644 index 0000000000..aa1a2f3bb1 --- /dev/null +++ b/docs/EventDiagram/SequenceDiagram/CommandAddEvent.puml @@ -0,0 +1,21 @@ +@startuml + -> ":CommandEventAdd": execute() + + +activate ":CommandEventAdd" +":CommandEventAdd" -> ":EventList" : addEvent() +activate ":EventList" +":EventList" -> ":Event": add() +activate ":Event" +return +":EventList" -> ":Event" : printEvent() +activate ":Event" +return +return output +return output +deactivate ":CommandEventAdd" + + + + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/SequenceDiagram/CommandAddEventAttendance.png b/docs/EventDiagram/SequenceDiagram/CommandAddEventAttendance.png new file mode 100644 index 0000000000..b5e35e97e7 Binary files /dev/null and b/docs/EventDiagram/SequenceDiagram/CommandAddEventAttendance.png differ diff --git a/docs/EventDiagram/SequenceDiagram/CommandAddEventAttendance.puml b/docs/EventDiagram/SequenceDiagram/CommandAddEventAttendance.puml new file mode 100644 index 0000000000..05a070e880 --- /dev/null +++ b/docs/EventDiagram/SequenceDiagram/CommandAddEventAttendance.puml @@ -0,0 +1,59 @@ +@startuml + -> ":CommandAddEventAttendance": execute() + +activate ":CommandAddEventAttendance" +":CommandAddEventAttendance" -> ":EventList" : addAttendance(eventName, memberName) +activate ":EventList" +":EventList" -> ":EventList" : checkEventExistence(eventName) +opt event does not exist +":EventList" --> ":CommandAddEventAttendance" : output +<-- ":CommandAddEventAttendance" : output +end +":EventList" -> ":MemberList" : checkMemberExistence(memberName) +activate ":MemberList" +":MemberList" -> ":EventList" +deactivate ":MemberList" +opt member does not exist +":EventList" --> ":CommandAddEventAttendance" : output +<-- ":CommandAddEventAttendance" : output +end + +activate ":EventList" +":EventList" -> ":Event" : findEventByName(eventName) +activate ":Event" +return + +":EventList" -> ":MemberList" : checkEventExistence(eventName) +activate ":MemberList" +":MemberList" --> ":EventList" +deactivate ":MemberList" +":EventList" -> ":Event" : getEventParticipants() +activate ":Event" +return +opt participant exists in event + +":EventList" --> ":CommandAddEventAttendance" : output +<-- ":CommandAddEventAttendance" : output +end + +activate ":MemberList" +":EventList" -> ":MemberList" :findMemberByName(memberName) +activate ":MemberList" +":MemberList" -> ":Member" : findEventByName(eventName) +activate ":Member" +return +return + +":EventList" -> ":Event" : setEventParticipants(m) +activate ":Event" +return + +":EventList" -> ":Event" : eventParticipants.size(); +activate ":Event" +return output +":EventList" --> ":CommandAddEventAttendance" : output +deactivate ":EventList" + +<-- ":CommandAddEventAttendance" : output +deactivate ":CommandAddEventAttendance" +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/SequenceDiagram/CommandDelEventAttendance.png b/docs/EventDiagram/SequenceDiagram/CommandDelEventAttendance.png new file mode 100644 index 0000000000..9d2b338199 Binary files /dev/null and b/docs/EventDiagram/SequenceDiagram/CommandDelEventAttendance.png differ diff --git a/docs/EventDiagram/SequenceDiagram/CommandDelEventAttendance.puml b/docs/EventDiagram/SequenceDiagram/CommandDelEventAttendance.puml new file mode 100644 index 0000000000..b23401cea3 --- /dev/null +++ b/docs/EventDiagram/SequenceDiagram/CommandDelEventAttendance.puml @@ -0,0 +1,60 @@ +@startuml + -> ":CommandDelEventAttendance": execute() + +activate ":CommandDelEventAttendance" +":CommandDelEventAttendance" -> ":EventList" : deleteAttendance(eventName, memberName) +activate ":EventList" +":EventList" -> ":EventList" : checkEventExistence(eventName) +opt event does not exist +":EventList" --> ":CommandDelEventAttendance" : output +<-- ":CommandDelEventAttendance" : output +end + +":EventList" -> ":EventList" : findEventByName(eventName) +activate ":MemberList" +":EventList" -> ":MemberList" : checkMemberExistence(memberName) +":MemberList" -> ":Event" : getEventParticipants() +activate ":Event" +return +":MemberList" --> ":EventList" +deactivate ":MemberList" +opt participant does not exist +":EventList" --> ":CommandDelEventAttendance" : output +<-- ":CommandDelEventAttendance" : output +end + +activate ":MemberList" +":EventList" -> ":MemberList" : findMemberIndex(list, memberName) +activate ":MemberList" +":MemberList" -> ":Event" : getEventParticipants() +activate ":Event" +return index +":MemberList" --> ":EventList" :index +deactivate ":MemberList" +":EventList" -> ":Event" : getEventParticipants() +activate ":Event" +":Event" -> ":Event" : get(index) +return getMemberName() + +":EventList" -> ":Event" : getEventParticipants() +activate ":Event" +":Event" -> ":Event" : remove(index) +return output + +":EventList" -> ":Event" : eventParticipants +activate ":Event" +":Event" -> ":Event" : size() +return output + +deactivate ":Event" + + +":EventList" --> ":CommandDelEventAttendance" : output +deactivate ":EventList" +<-- ":CommandDelEventAttendance" : output +deactivate ":CommandDelEventAttendance" + + + + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/SequenceDiagram/CommandEventAdd.png b/docs/EventDiagram/SequenceDiagram/CommandEventAdd.png new file mode 100644 index 0000000000..5f0487162a Binary files /dev/null and b/docs/EventDiagram/SequenceDiagram/CommandEventAdd.png differ diff --git a/docs/EventDiagram/SequenceDiagram/CommandEventCountdown.png b/docs/EventDiagram/SequenceDiagram/CommandEventCountdown.png new file mode 100644 index 0000000000..fd9b692cbc Binary files /dev/null and b/docs/EventDiagram/SequenceDiagram/CommandEventCountdown.png differ diff --git a/docs/EventDiagram/SequenceDiagram/CommandEventCountdown.puml b/docs/EventDiagram/SequenceDiagram/CommandEventCountdown.puml new file mode 100644 index 0000000000..4322b2fc5b --- /dev/null +++ b/docs/EventDiagram/SequenceDiagram/CommandEventCountdown.puml @@ -0,0 +1,28 @@ +@startuml + -> ":CommandEventCountdown" : execute() + +activate ":CommandEventCountdown" + +":CommandEventCountdown" -> ":EventList":countdownView() +activate ":EventList" +alt empty ArrayList + ":EventList" --> ":CommandEventCountdown" +else else + loop until end of ArrayList + ":EventList" -> ":Event": printEvent() + activate ":Event" + ":Event" -->":EventList" + deactivate ":Event" + ":EventList" -> ":Event": numberOfDaysLeft() + activate ":Event" + ":Event" --> ":EventList" + deactivate ":Event" + return output + + deactivate ":EventList" + end + <-- ":CommandEventCountdown" : output +end + +deactivate ":CommandEventCountdown" +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/SequenceDiagram/CommandEventDelete.png b/docs/EventDiagram/SequenceDiagram/CommandEventDelete.png new file mode 100644 index 0000000000..44d3db4f7f Binary files /dev/null and b/docs/EventDiagram/SequenceDiagram/CommandEventDelete.png differ diff --git a/docs/EventDiagram/SequenceDiagram/CommandEventDelete.puml b/docs/EventDiagram/SequenceDiagram/CommandEventDelete.puml new file mode 100644 index 0000000000..fdcdc04124 --- /dev/null +++ b/docs/EventDiagram/SequenceDiagram/CommandEventDelete.puml @@ -0,0 +1,30 @@ +@startuml + + -> ":CommandEventDel": execute() +activate ":CommandEventDel" + +alt isInteger + ":CommandEventDel" -> ":EventList" : deleteEvent() + activate ":EventList" + ":EventList" -> ":Event": remove() + activate ":Event" + activate ":EventList" + return + ":EventList" -> ":Event" : printEvent() + activate ":Event" + return output + deactivate + return output + <-- ":CommandEventDel" : output +else else + +":CommandEventDel" -> ":EventList" : clearEvents() + activate ":EventList" + ":EventList" -> ":Event" + destroy ":Event" + return output + <-- ":CommandEventDel" : output + deactivate ":EventList" + end + deactivate ":CommandEventDel" +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/SequenceDiagram/CommandEventList.png b/docs/EventDiagram/SequenceDiagram/CommandEventList.png new file mode 100644 index 0000000000..af7cbcf472 Binary files /dev/null and b/docs/EventDiagram/SequenceDiagram/CommandEventList.png differ diff --git a/docs/EventDiagram/SequenceDiagram/CommandEventList.puml b/docs/EventDiagram/SequenceDiagram/CommandEventList.puml new file mode 100644 index 0000000000..641be79c6f --- /dev/null +++ b/docs/EventDiagram/SequenceDiagram/CommandEventList.puml @@ -0,0 +1,24 @@ +@startuml + -> ":CommandEventList" : execute() + +activate ":CommandEventList" + +":CommandEventList" -> ":EventList":printEventList() +activate ":EventList" +alt empty ArrayList + ":EventList" --> ":CommandEventList" + activate ":CommandEventList" +else else + loop until end of ArrayList + ":EventList" -> ":Event" : printEvent() + activate ":Event" + ":Event" --> ":EventList" + deactivate ":Event" + ":EventList" --> ":CommandEventList" : output + deactivate ":EventList" + <-- ":CommandEventList" : output + end + deactivate ":CommandEventList" +end +deactivate ":CommandEventList" +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/SequenceDiagram/CommandEventStatus.png b/docs/EventDiagram/SequenceDiagram/CommandEventStatus.png new file mode 100644 index 0000000000..a12d39a7c4 Binary files /dev/null and b/docs/EventDiagram/SequenceDiagram/CommandEventStatus.png differ diff --git a/docs/EventDiagram/SequenceDiagram/CommandEventStatus.puml b/docs/EventDiagram/SequenceDiagram/CommandEventStatus.puml new file mode 100644 index 0000000000..838df5e94c --- /dev/null +++ b/docs/EventDiagram/SequenceDiagram/CommandEventStatus.puml @@ -0,0 +1,21 @@ +@startuml + -> ":CommandEventStatus": execute() + + +activate ":CommandEventStatus" +":CommandEventStatus" -> ":EventList" : isCompleted() +activate ":EventList" +":EventList" -> ":Event": getStatusIcon() +activate ":Event" +return +":EventList" -> ":Event" : printEvent() +activate ":Event" +return +return output +return output +deactivate ":CommandEventStatus" + + + + +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/SequenceDiagram/CommandSearchEvent.png b/docs/EventDiagram/SequenceDiagram/CommandSearchEvent.png new file mode 100644 index 0000000000..443466660e Binary files /dev/null and b/docs/EventDiagram/SequenceDiagram/CommandSearchEvent.png differ diff --git a/docs/EventDiagram/SequenceDiagram/CommandSearchEvent.puml b/docs/EventDiagram/SequenceDiagram/CommandSearchEvent.puml new file mode 100644 index 0000000000..9b1473f54f --- /dev/null +++ b/docs/EventDiagram/SequenceDiagram/CommandSearchEvent.puml @@ -0,0 +1,25 @@ +@startuml + -> ":CommandSearchEvent" : execute() + +activate ":CommandSearchEvent" + +":CommandSearchEvent" -> ":EventList" : searchEvents() +activate ":EventList" +":EventList" -> ":EventList" : checkEventNameMatch() +activate ":EventList" +return output +":EventList" -> ":EventList" : checkEventDateMatch() +activate ":EventList" +return output +":EventList" -> ":EventList" : printFilteredEvents() +activate ":EventList" +":EventList" -> ":Event" : printEvent() +activate ":Event" +":EventList" <-- ":Event" +deactivate ":Event" +return output +":CommandSearchEvent" <-- ":EventList" : output +deactivate ":EventList" + <-- ":CommandSearchEvent" : output +deactivate ":CommandSearchEvent" +@enduml \ No newline at end of file diff --git a/docs/EventDiagram/SequenceDiagram/CommandViewEventAttendance.png b/docs/EventDiagram/SequenceDiagram/CommandViewEventAttendance.png new file mode 100644 index 0000000000..2c5917c65c Binary files /dev/null and b/docs/EventDiagram/SequenceDiagram/CommandViewEventAttendance.png differ diff --git a/docs/EventDiagram/SequenceDiagram/CommandViewEventAttendance.puml b/docs/EventDiagram/SequenceDiagram/CommandViewEventAttendance.puml new file mode 100644 index 0000000000..a0fe292d0a --- /dev/null +++ b/docs/EventDiagram/SequenceDiagram/CommandViewEventAttendance.puml @@ -0,0 +1,24 @@ +@startuml + -> ":CommandViewEventAttendance": execute() + +activate ":CommandViewEventAttendance" +":CommandViewEventAttendance" -> ":EventList" : listAttendance(eventName) +activate ":EventList" +":EventList" -> ":EventList" : checkEventExistence(eventName) +opt isEventExists + ":EventList" -> ":Event" : findEventByName(eventName) + activate ":Event" + return + ":EventList" -> ":Event" : printEventParticipant() + activate ":Event" + return output + ":EventList" -> ":Event" : size() + activate ":Event" + return output +end + +return output +deactivate ":EventList" +<-- ":CommandViewEventAttendance" : output +deactivate ":CommandViewEventAttendance" +@enduml \ No newline at end of file diff --git a/docs/README.md b/docs/README.md index bbcc99c1e7..2b5be5a54e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,8 @@ # Duke -{Give product intro here} +![](CCAManager_logo.png) + +CCA Manager is a revolutionary all-in-one management tool that changes the way you can manage interest groups with unrivaled efficiency and simplicity. Its lightweight Command Line Interface (CLI) allows administrators to breeze through tasks quickly and easily while offering powerful features to advanced users. Useful links: * [User Guide](UserGuide.md) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index abd9fbe891..787d0cd8f7 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -1,42 +1,824 @@ # User Guide +![](CCAManager_logo.png) -## Introduction +
-{Give a product intro} +# Table of contents -## Quick Start +- [1. Introduction](#1-introduction) +- [2. About this User Guide](#2-about-this-user-guide) +- [3. Quick Start](#3-quick-start) +- [4. Features](#4features) + - [4.1 Help `help`](#41-help-help) + - [4.2 Exit the program: `bye`](#42-exit-the-program-bye) + - [4.3 HR features `HR`](#43-hr-features-hr) + - [Add members: `addMember`](#add-members-addmember) + - [Delete members: `delMember`](#delete-members-delmember) + - [List members: `listMember`](#list-members-listmember) + - [Change member information: `changeInfo`](#change-member-information-changeinfo) + - [Search members: `search`](#search-members-search) + - [View contacts of prof/admin: `list prof&admin`](#view-contacts-of-profadmin-list-profadmin) + - [View contacts of connections: `list connections`](#view-contacts-of-connections-list-connections) + - [4.4 Event features`event`](#44-event-featuresevent) + - [Add an event: `addEvent`](#add-an-event-addevent) + - [Delete an event: `delEvent`](#delete-an-event-delevent) + - [Clear all events: `delEvent all`](#clear-all-events-delevent-all) + - [List events: `listEvent`](#list-events-listevent) + - [Countdown events `countdown`](#countdown-events-countdown) + - [Mark an event as completed `done`](#mark-an-event-as-completed-done) + - [Search for an Event `search`](#search-for-an-event-search) + - [Add a participant to an event: `addAttendance`](#add-a-participant-to-an-event-addattendance) + - [Delete a participant from an event: `delAttendance`](#delete-a-participant-from-an-event-delattendance) + - [List participants in an event: `listAttendance`](#list-participants-in-an-event-listattendance) + - [4.5 Finance features `finance`](#45-finance-features-finance) + - [4.5.1 Add finance log entry: `addLog`](#451-add-finance-log-entry-addlog) + - [4.5.2 Delete finance log entry: `delLog`](#452-delete-finance-log-entry-dellog) + - [4.5.3 View financial summary: `summary`](#453-view-financial-summary-summary) + - [4.5.4 Change finance log entry information: `changeLog`](#454-change-finance-log-entry-information-changelog) + - [4.6 Import](#46-import) + - [4.7 Saving the data](#47-saving-the-data) +- [5. FAQ](#5-faq) +- [6. Command Summary](#6-command-summary) +- [7. Glossary](#7-glossary) -{Give steps to get started quickly} +
-1. Ensure that you have Java 11 or above installed. -1. Down the latest version of `Duke` from [here](http://link.to/duke). +## 1. Introduction +*(By: John)* -## Features -{Give detailed description of each feature} +Welcome to **CCA Manager!** +CCA Manager is a revolutionary tool that changes the way you can manage interest groups with unrivaled efficiency and simplicity. Its lightweight Command Line Interface (CLI) allows administrators to breeze through tasks quickly and easily while offering powerful features to advanced users. -### Adding a todo: `todo` -Adds a new item to the list of todo items. +**Feature Overview** -Format: `todo n/TODO_NAME d/DEADLINE` +* Allows you to manage an HR list of members and contacts +* Allows you to create events and record member attendance for events +* Allows you to track the financial spending and budgeting of your interest group +* You can import data from other programs +* Shorthand Commands allows you to quickly enter commands by reducing the amount of typing required +* Relative Time allows you to quickly specify the day of the event without having to type in the full date format -* The `DEADLINE` can be in a natural language format. -* The `TODO_NAME` cannot contain punctuation. +### 2. About this User Guide +(By: Varsha) -Example of usage: +This user guide provides a quick start guide for you to easily setup install CCA Manager, +documentation of all the features that CCA Manager offers, frequently asked questions and a summary of the available commands. +To navigate between the different sections, you could use the table of contents above. -`todo n/Write the rest of the User Guide d/next week` +Additionally, throughout this user guide, there will be various icons used as described in the legend below to provide you useful information on using the app: +> :bulb: This symbol denotes a tip which you might find useful when using the application. -`todo n/Refactor the User Guide to remove passive voice d/13/04/2020` +> :information_source: This symbol denotes some information that you will need to take note of when using the application. -## FAQ +> :`code` : Text that appears on the CLI / in code -**Q**: How do I transfer my data to another computer? +> : [Hyperlinked]() : Leads you to the appropriate section -**A**: {your answer here} +
-## Command Summary +## 3. Quick Start +(By: Varsha) -{Give a 'cheat sheet' of commands here} +The following steps will guide you through the process of running CCA Manager.
+ :one: Ensure that you have Java 11 or above installed. + > :bulb: To check the version of Java on your computer, follow the instructions [here](https://www.wikihow.com/Check-Your-Java-Version-in-the-Windows-Command-Line).
+ > :bulb: To download the latest version of Java on your computer, visit [here](https://www.oracle.com/java/technologies/javase-downloads.html).
+ + :two: Download the latest version of CCA manager from [here](https://github.com/AY2021S1-CS2113T-F14-1/tp/releases)
+ + :three: Navigate to the folder where you downloaded CCA Manager. Run the program by entering `java -jar CCAManager.jar` in a terminal. As seen in the figure below, the red arrow points to where you have to type in commands. + + > :information_source: To launch a terminal on Windows, open the start menu, type "Command Prompt" to search for the terminal and run it. +> On MacOS, you can find the Terminal in the `/Applications/Utilities` folder. Double click Terminal to launch it. +> On linux operating systems, the most common shortcut to opening the Terminal is CTRL+ALT+T. +> To navigate to the folder with CCA Manager, use the command `cd ` to go in to the folder. You can use `cd ..` to go back one level if you made a mistake. + + + ![](userGuidePic/terminal.PNG) + +
+ +You will see this welcome message if you have done the above steps correctly.
+ +![Welcome Message](userGuidePic/welcomeMessage.PNG) + +
+ +## 4. Features + +This section will show the features of our program in detail. +You can follow along as we go through each of the features if you are starting out, or skip ahead to the Command Summary +to see the commands of all features at a glance. + +#### Command Format + +Words in UPPER CASE are the parameters to be supplied by user. +> :information_source: Our program also supports shorthand commands. You can use shorthand command format for faster access. Instead of typing the word in its entirety, you can use the shorthand replacement instead. +For example, as shown in the picture below, instead of typing `event`, you can type just the letter `e`. Both serve the same functionality. + +![](userGuidePic/shorthandexample.PNG) + +
+ +### 4.1 Help `help` +*(By: John)* + +Shows a list of available commands.
+ +This command allows you to view a summary of all the available commands at a glance and gives you information how to use them. +Format: `help` + +Expected Outcome: + +![helpCommand](userGuidePic/helpCommand.PNG) + +[Return to the top](#user-guide) + +
+ +### 4.2 Exit the program: `bye` +*(By: John)* + +Exits the program. + +With this command you can gracefully exit the program directly, without having to close the terminal window.
+Format: `bye` + +[Return to the top](#user-guide) + +
+ +### 4.3 HR features `HR` +#### Add members: `addMember` +(By:Ye Yutong) + +Allows you to add a member to the list of members.
+ +Format: `hr addMember /n NAME /p PHONE_NUMBER /e EMAIL /r ROLE`
+ +Shorthand Format: +`hr` -> `h` +`addMember` -> `a`/`add` + +Example of usage:
+ `hr addMember /n John Sterling /p 88888888 /e js@gmail.com /r president`
+ `hr add /n Harry Potter /p 12345678 /e H_P@gmail.com /r member`
+ `hr a /n sakata Gintoki /p 999999999 /e Ginsan@gmail.com /r member`
+ + Example Scenario: + Let's say you want to add a member called `John Sterling`, with phone number `88888888`, email `js@gmail.com`, and role `president`. + Type `hr addMember /n John Sterling /p 88888888 /e js@gmail.com /r president` into the terminal and press enter as shown in the figure below. + + ![HrAddMemberCommand](userGuidePic/hrAddMemberCommand.PNG) + +
+ + Example Outcome: + + ![HrAddMemberCommand](userGuidePic/hrAddMemberCommand2.PNG) + + [Return to the top](#user-guide) + +
+ +#### Delete members: `delMember` +(By:Ye Yutong) + +Allows you to delete a member from the list of members.
+Format: `hr delMember MEMBER_INDEX`
+Deletes the member at the specified MEMBER_INDEX.
+ +The MEMBER_INDEX refers to the index number shown in the list of members.
+The MEMBER_INDEX must be an integer greater than 0.
+ +Shorthand Format: +`hr` -> `h` +`delMember` -> `d`/`delete` + +Example of usage:
+`hr delMember 1`
+`hr delete 19`
+`hr d 5`
+ +Example Scenario: +Let's say you want to remove the member that you have entered above. i.e. `hr addMember /n John Sterling /p 88888888 /e js@gmail.com /r president`. +To delete, type `hr delMember 1` into the terminal and press enter as shown in the figure below. + +![HrDelMemberCommand](userGuidePic/hrDelMemberCommand.PNG) + +Example Outcome: + +![HrDelMemberCommand](userGuidePic/hrDelMemberCommand2.PNG) + +[Return to the top](#user-guide) + +
+ +#### List members: `listMember` +(By:Ye Yutong) + +You can use this command to view the list of members, based on the order in which they are added into the list. +Format: `hr listMember`
+ +Shorthand Format: +`hr` -> `h` +`listMember` -> `l` / `list` + +Example of usage:
+`hr listMember`
+`hr list`
+`hr l`
+ +Expected Outcome: + +![HrListMemberCommand](userGuidePic/hrListMemberCommand.PNG) + +[Return to the top](#user-guide) + +
+ +#### Change member information: `changeInfo` +(By:Ye Yutong) + +You can use this command to change contact information and role of member in the list, based on the given member name. +Format: `hr changeInfo /n MEMBER_NAME (/p PHONE_NUMBER) (/e EMAIL) (/r MEMBER_ROLE)`
+ +MEMBER_NAME and at least one of PHONE_NUMBER, EMAIL and MEMBER_ROLE must be provided. + +Shorthand Format: +`hr` -> `h` +`changeInfo` -> `c` + +Example of usage:
+`hr changeInfo /n john sterling /p 12345678`
+`hr c /n Harry Potter /p 12345678 /e 123@gmail.com /r President`
+ +Example Scenario: +Let's say you have added a member called `John Sterling` via `hr addMember /n John Sterling /p 88888888 /e js@gmail.com /r president`. +To change the phone number of `John Sterling` from `88888888` to `12345678`, type `hr changeInfo /n john sterling /p 12345678` into the terminal and press enter. + +Expected Outcome: + +![HrChangeInfoCommand](userGuidePic/hrChangeInfoCommand.PNG) + +[Return to the top](#user-guide) + +
+ +#### Search members: `search` +(by: Wang Zixin) +You can use this command to search for a particular member. +The search command will return the member that matches the criteria you specify. +:bulb: If a member's information matches any of the conditions that the user inputs, +it will return this member. +Format: `hr search ITEM /n ITEM /p ITEM /e ITEM /r ITEM` +:bulb: User can choose any parts of conditions above to search. +:bulb: The ITEM without any symbol in front means searching the key from any parts of `Member`'s information. + +Shorthand Format: +`hr` -> `h` +`search` -> `s` + +Example of usage: +`hr search peter` +`hr search /n peter /r president` + +Expected outcomes: +![Example of usage 1](userGuidePic/hrsearchoutcome1.png) + +![Example of usage 2](userGuidePic/hrsearchoutcome2.png) + +[Return to the top](#user-guide) + +
+ +#### View contacts of prof/admin: `list prof&admin` +(by: Wang Zixin) +You can use this command as a shortcut to view the contacts of the professors and administrators. +:bulb: Professor/prof and administrator/admin are roles of members. +Format: `hr list prof&admin` + +Shorthand Format: +`hr` -> `h` +`list` -> `l` +`prof&admin` -> `pa` + +Example of usage: +`hr list prof&admin` + +Expected outcome: +![Example of usage](userGuidePic/hrprofadminoutcome.png) + +[Return to the top](#user-guide) + +
+ +#### View contacts of connections: `list connections` +(by: Wang Zixin) +You can use this command as a shortcut to list the contacts of connections(alumni, speakers). +:bulb: Alumni and speaker are roles of members. +Format: `hr list connections` + +Shorthand Format: +`hr` -> `h` +`list` -> `l` +`connections` -> `c` + +Example of usage: +`hr list connections` + +Expected outcome: +![Example of usage](userGuidePic/hrlistc.png) + +[Return to the top](#user-guide) + +
+ +### 4.4 Event features`event` +(By: Varsha) + +#### Add an event: `addEvent` +Allows you to add an event to the list of events.
+Format: `event addEvent /n EVENT_NAME /d EVENT_DATE /t EVENT_TIME`
+ +> :information_source: The EVENT_INDEX refers to the index number shown in the list of events.
+> :information_source: The EVENT_INDEX must be an integer greater than 0.
+> :information_source: The EVENT_DATE entered should be in the format YYYY-MM-DD.
+> :information_source: The EVENT_TIME entered should be in the 24-hour clock format (HH-mm).
+ + +> :bulb: You can use Relative Time by specifying date of week for convenience. For example `/d next friday` will schedule the event on the next friday from current day. + + +Shorthand Format:
+`event` -> `e`
+`addEvent` -> `add`/`a`
+ +Example of usage:
+ `event addEvent /n arduino course /d 2020-12-30 /t 08-00`
+ `event add /n arduino course /d 2020-12-30 /t 23-59`
+ `event a /n arduino course /d 2020-12-30 /t 08-00`
+ `e a /n arduino course /d 2020-12-30 /t 23-59`
+ `e a /n arduino course /d next friday /t 00-00`
+ +Example scenario:
+ +Let's say you want to add an event called `arduino course` on `2000-12-30` at time `08-00`. +Type `event addEvent /n arduino course /d 2020-12-30 /t 08-00` into the terminal and press enter to execute the command as shown below. + +![](userGuidePic/eventAdd1.png) + +
+ +The result will be a message that the event has been successfully added as shown in the figure below. + +![EventAddCommand](userGuidePic/eventAddCommand.PNG) + +[Return to the top](#user-guide) + +
+ +#### Delete an event: `delEvent` +(By: Varsha) + + Allows you to delete an event from the list of events.
+ Format: `event delEvent EVENT_INDEX`
+ It Deletes the event at the specified EVENT_INDEX.
+ +> :information_source: The EVENT_INDEX refers to the index number shown in the list of events.
+> :information_source: The EVENT_INDEX must be an integer greater than 0.
+ +Shorthand Format:
+`event` -> `e`
+`addEvent` -> `del`/`d`
+ +Example of usage: +`event delEvent 1`
+`event del 1`
+`event d 19`
+`e d 1`
+ +Example scenario:
+ +Let's say you want to remove the event that you have entered above. i.e. `event addEvent /n arduino course /d 2020-12-30 /t 08-00` +To delete, type `event delEvent 1` into the terminal and press enter as shown in the figure below. + + +![](userGuidePic/eventdel1.PNG) + +
+ +The result will be a message that the event has been removed successfully as shown in the figure below. + +![EventDeleteAtIndex](userGuidePic/eventDelEvent.PNG) + + [Return to the top](#user-guide) + +
+ +#### Clear all events: `delEvent all` +(By: Varsha) + +Allows you to clear all events from the list of events.
+Format: `event delEvent all` + +Shorthand Format:
+`event` -> `e`
+`delEvent` -> `del`/`d`
+ +Example of usage: +`event delEvent all`
+ +Example scenario:
+You may want to clear all the events in your list. To do so, type in `event delEvent all` into the terminal and press enter. It will prompt you with a confirmation message. +Type in `Y` to clear the list as shown below. + +![EventDeleteAll](userGuidePic/eventDeleteAll.PNG) + +[Return to the top](#user-guide) + +
+ +#### List events: `listEvent` +(By: Varsha) + +You can use this command to view the list of events, based on the order in which they are added into the list.
+Format: `event listEvent`
+ +Shorthand Format:
+`event` -> `e`
+`listEvent` -> `l`
+ +Example of usage:
+`event listEvent`
+`event l`
+`e l`
+ +Expected Outcome: + +![EventListEvent](userGuidePic/eventListEvent.PNG) + +[Return to the top](#user-guide) + +
+ +#### Countdown events `countdown` +(By: Varsha) + +You can use this command to show the number of days remaining until an event. It also sorts them so that the event due first will be displayed first.
+Format: `event countdown`
+ +Shorthand Format:
+`event` -> `e`
+`countdown` -> `c`
+ +Example of usage:
+`event countdown`
+`e countdown`
+`e c`
+ +Expected Outcome: + +![eventCountdown](userGuidePic/eventCountdown.PNG) + +[Return to the top](#user-guide) + +
+ +#### Mark an event as completed `done` +(By: Varsha) + +Allows you to mark an event as done.
+Format: `event done EVENT_INDEX`
+> :information_source: The EVENT_INDEX refers to the index number of the event that is to be marked as completed.
+> :information_source: The EVENT_INDEX must be an integer greater than 0.
+ +Shorthand Format:
+`event` -> `e`
+ +Example of usage:
+`event done 1`
+`e done 1`
+ +Example scenario:
+Let's say you have added one event to your list and the event is over. You can mark it as complete by entering `event done 1`in the terminal. The status will change +from `Up-coming` to `Done` as shown below. + +Expected Outcome:
+ +![](userGuidePic/eventMarkAsDone.PNG) + +[Return to the top](#user-guide) + +
+ +#### Search for an Event `search` +(By: Varsha) + +Allows you to search for a particular event by name or date.
+Format: 'event search /s KEYWORD'
+ +Shorthand Format:
+`event` -> `e`
+`search` -> `s`
+ +Example of usage:
+`event search /s arduino course`
+`event search /s 2000-12-16`
+`e search /s 2000-12-16`
+`e s /s 2000-12-16`
+ +Expected Outcome: + +The output when you search by name is as follows:
+![EventSearchByName](userGuidePic/eventSearchBydate.PNG) + +
+ +The output when you search by date is as follows:
+![EventSearchByDate](userGuidePic/eventSearch1.PNG) + + +> :information_source: Notice that both return the same output. +> +[Return to the top](#user-guide) + +
+ +#### Add a participant to an event: `addAttendance` +(By:Ye Yutong) + +Allows you to add a participant to an event in the list of events.
+Format: `event addAttendance /n EVENT_NAME /m MEMBER_NAME`
+ +> :information_source: Both the `EVENT_NAME` and the `MEMBER_NAME` need to be added into the list of events and members prior to using this feature.
+ +Shorthand Format:
+`event` -> `e`
+`addAttendance` -> `aa`/`addAttend`
+ +Example of usage:
+ `event addAttendance /n arduino course /m john sterling`
+ `event addAttend /n Autodesk course /m John`
+ `event aa /n Machine Learning course /m John`
+ +Example Scenario: +Let's say you have added a member called `John Sterling` via `hr addMember /n John Sterling /p 88888888 /e js@gamil.com /r president` and an event called `arduino course` via `event addEvent /n arduino course /d 2020-12-30 /t 08-00`. +To add the attendance of the member `John Sterling` to the event `arduino course`, type `event addAttendance /n arduino course /m john sterling` into the terminal and press enter. + +Expected Outcome: + +![EventAddAttendanceCommand](userGuidePic/eventAddAttendanceCommand.PNG) + +[Return to the top](#user-guide) + +
+ +#### Delete a participant from an event: `delAttendance` +(By:Ye Yutong) + +Allows you to delete a participant from an event in the list of events.
+ Format: `event delAttendance /n EVENT_NAME /m MEMBER_NAME`
+ +Shorthand Format:
+`event` -> `e`
+`delAttendance` -> `da`/`delAttend`
+ + Example of usage: + `event delAttendance /n arduino course /m john sterling`
+ `event delAttend /n Autodesk course /m Peter`
+ `event da /n Machine Learning course /m John`
+ + Example Scenario: + Let's say you have added the attendance of the member `John Sterling` to the event `arduino course` in the above section. + To delete this attendance, type `event delAttendance /n arduino course /m john sterling` into the terminal and press enter. + +
+ + Expected Outcome: + + ![EventDeleteAttendanceCommand](userGuidePic/eventDeleteAttendanceCommand.PNG) + + [Return to the top](#user-guide) + +
+ +#### List participants in an event: `listAttendance` +(By:Ye Yutong) + +Allows you to view the list of participants in an event, based on the order in which they are added into the list. +Format: `event listAttendance /n EVENT_NAME`
+ +Shorthand Format:
+`event` -> `e`
+`listAttendance` -> `la`/`listAttend`
+ +Example of usage: +`event listAttendance /n arduino course` +`event listAttend /n Autodesk course` +`event la /n Machine Learning course` + +Expected Outcome: + +![EventListAttendanceCommand](userGuidePic/eventListAttendanceCommand.PNG) + +[Return to the top](#user-guide) + +
+ +### 4.5 Finance features `finance` +(by: Wang Zixin) +#### 4.5.1 Add finance log entry: `addLog` +Allows you to add an entry into the finance log. +Format: `finance addLog ITEM_NAME ITEM_VALUE` + +Shorthand Format: +`finance` -> `f` +`addLog` -> `add`/`a` + +Example of usage: +`finance addLog have lunch 4.5` +`f addlog buy flight ticket 750` + +Expected outcomes: +![Example of usage 1](userGuidePic/addlog%20outcome1.png) + +![Example of usage 2](userGuidePic/addlog%20outcome2.png) + +[Return to the top](#user-guide) + +
+ +#### 4.5.2 Delete finance log entry: `delLog` +Allows you to remove an entry from finance log. +Format: `finance delLog ITEM_INDEX` + +Shorthand Format: +`finance` -> `f` +`delLog` -> `del`/`d` + +Example of usage: +`finance dellog 3` +`f del 1` + +Expected outcomes: +![Example of usage 1](userGuidePic/dellog%20outcome1.png) + +![Example of usage 2](userGuidePic/dellog%20outcome2.png) + +[Return to the top](#user-guide) + + +
+ +#### 4.5.3 View financial summary: `summary` +This command allows you to view a summary of the financial log and shows the total amount of money expended. +Format: `finance summary` + +Shorthand Format: +`finance` -> `f` +`summary` -> `s`/`l` + +Example of usage: +`finance summary` + +Expected Outcome: +![Example of usage](userGuidePic/summary%20outcome.png) + +[Return to the top](#user-guide) + +
+ +#### 4.5.4 Change finance log entry information: `changeLog` +Allows you to change the finance log entry's name and budget amount. +Format: `finance changeLog /i INDEX /n ITEM_NAME ITEM_VALUE` + +Shorthand Format: +`finance` -> `f` +`changeLog` -> `c` + +Example of usage: +`finance changeLog /i 1 /n buy cake 5.5` + +Expected Outcome: +![Example of usage](userGuidePic/FinanceChangeLog%20Outcome.png) + +[Return to the top](#user-guide) + +
+ +### 4.6 Import + +You can import data from other existing CSVs quickly with the import command. +Format: `import FILENAME /c finance /name HEADER_NAME /value HEADER_NAME` +OR `import FILENAME /c hr /name HEADER_NAME /phone HEADER_NAME /email HEADER_NAME /role HEADER_NAME` +OR `import FILENAME /c event /name HEADER_NAME /date HEADER_NAME /time HEADER_NAME` + +This command allows you to specify which columns of your CSV file you would like to copy over to the program. + +Example: Let's say you have a CSV file like shown below, and you would like to import it. +![CSV File](userGuidePic/import1.png) +In our example, the CSV file we are importing is in the same directory as CCA Manager. +![Location of File](userGuidePic/import2.png) +You can use the command `import sample.csv /c hr /name Member /phone Contact /email Email /role Role` to import the document. + +
+ +The expected outcome is as follows: + +![Outcome](userGuidePic/import3.png) + +If you would like to try out importing a file with a sample, we provide a sample file similar to the one shown in the above example. +You can download the sample [here](https://raw.githubusercontent.com/AY2021S1-CS2113T-F14-1/tp/master/docs/sample.csv). + +[Return to the top](#user-guide) + +
+ +### 4.7 Saving the data +(By: Varsha) + +CCA Manager saves all your data after every command. There is no need to save manually. + +[Return to the top](#user-guide) + +## 5. FAQ + +This section details the frequently asked questions (FAQ) regarding the use of the application. + +**Q** How do I transfer my data to another computer?
+**A** Install CCA Manager in the other computer and overwrite the empty data files it creates with the file that contains the data from your previous computer.
+You can find the data files in the "data" folder inside the folder that CCA Manager is running in. + +**Q** Is CCA Manager optimized for all Operating Systems(OS)?
+**A** CCA Manager is available for download on all major Operating Systems such as Windows, Mac and Linux. + +**Q** Where can I find the release? +**A** You can find it here [Download V2.1](https://github.com/AY2021S1-CS2113T-F14-1/tp/releases/tag/v2.1). + + + + +[Return to the top](#user-guide) + +
+ +## 6. Command Summary + +The following table provides a summary of all features and command formats. + + +Command | Format | Example +------- | ---------- | ------------ +addAttendance | `event addAttendance /n EVENT_NAME /m MEMBER_NAME` | `event addAttendance /n arduino course /m Peter`
+addMember | `hr addMember /n NAME /p PHONE_NUMBER /e EMAIL /r ROLE` | `hr addMember /n Harry /p 12345678 /e HP@gmail.com /r member`
+addEvent | `event addEvent /n EVENT_NAME /d EVENT_DATE /t EVENT_TIME` | `event addEvent /n arduino course /d 2020-09-16 /t 8pm`
+addLog | `finance addLog ITEM_NAME ITEM_VALUE` | `finance addLog have lunch 4.5` +bye | `bye` | - +changeInfo | `hr changeInfo /n MEMBER_NAME (/p PHONE_NUMBER) (/e EMAIL) (/r MEMBER_ROLE)` | `hr changeInfo /n Jack /p 12345678 /r president`
+changeLog | `finance changeLog /i INDEX /n ITEM_NAME ITEM_VALUE` | `finance changeLog /i 1 /n buy cake 5.5` +delAttendance | `event delAttendance /n EVENT_NAME /p MEMBER_NAME` | `event delAttendance /n arduino course /m Peter`
+delMember | `hr delMember MEMBER_INDEX` | `hr delMember 1` +delEvent | `event delEvent EVENT_INDEX` | `event delEvent 1` +delEvent all | `event delEvent all` | - +delLog | `finance delLog ITEM_INDEX` | `finance delLog 3` + +
+ +Command | Format | Example +------- | ---------- | ------------ +event done | `event done EVENT_INDEX`| `event done 2` +event search | `event search /s ` | `event search /s arduino` +event countdown | `event countdown` | - +help | `help` | - +hr search | `hr search ITEM (/n ITEM) (/p ITEM) (/e ITEM) (/r ITEM)` | `hr search /n Peter /r president` +import | `import FILENAME /c CATEGORY (...)` | `import sample.csv /c hr /name Member /phone Contact /email Email /role Role` +listAttendance | `event listAttendance /n EVENT_NAME` | `event listAttendance /n arduino course` +listMember | `hr listMember` | - +listEvent | `event listEvent` | - +list prof&admin | `hr list prof&admin` | - +list connections | `hr list connections` | - +summary | `finance summary` | - + + + +[Return to the top](#user-guide) + +
+ +## 7. Glossary +*(By: John)* + +This section explains certain technical terms used in the guide which may require more detail. + +**CCA** - Co-curricular Activity
+**CSV** - Comma-separated values. This typically refers to the file type with extension .csv
+**Command Line Interface(CLI)** - Processes commands to a computer program in the form of lines of text.
+**Terminal/Command Prompt** - An interface where you can type and execute text based commands. It is a basic feature of most Operating Systems. +**Directory** - Folder. A directory is a more technical name for referring to folders. +**Command** - A command is an instruction that will cause a program to perform a series of actions based on what was supplied to it. +**Index** - An index (of a list) refers to which position the item is in the list. In the list (apple,pear,banana) the index of "pear" is 2 because it's the 2nd element. +**HR** - Human Resource
+**OS** - Operating Systems
-* Add todo `todo n/TODO_NAME d/DEADLINE` diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 0000000000..d920b9db92 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,17 @@ + +title: "CCA Manager" +theme: minima + +header_pages: + - UserGuide.md + - DeveloperGuide.md + - AboutUs.md + +markdown: kramdown + +repository: "AY2021S1-CS2113T-F14-1/tp" +github_icon: "CCAManager_logo.png" + +plugins: + - jemoji + diff --git a/docs/financeDiagram/1.1S1.puml b/docs/financeDiagram/1.1S1.puml new file mode 100644 index 0000000000..6db12cd1c7 --- /dev/null +++ b/docs/financeDiagram/1.1S1.puml @@ -0,0 +1,28 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Initial state + +package FinanceList0 { + class State1 as " " +} +package FinanceList1 { + class State2 as "FinanceLog\niphone12 $1299" +} + +package FinanceList2 { + class State00 as " " +} + +FinanceList0 -left->FinanceList1 +FinanceList1 -left->FinanceList2 +hide FinanceList1 +hide FinanceList2 + +class Pointer as "Current State" #FFFFF +Pointer -up-> FinanceList0 + + +@enduml \ No newline at end of file diff --git a/docs/financeDiagram/1.1S2.puml b/docs/financeDiagram/1.1S2.puml new file mode 100644 index 0000000000..512b355529 --- /dev/null +++ b/docs/financeDiagram/1.1S2.puml @@ -0,0 +1,27 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title After Step 2 + +package FinanceList0 { + class State1 as " " +} +package FinanceList1 { + class State2 as "FinanceLog\niphone12 $1299" +} + +package FinanceList2 { + class State3 as " " +} + +FinanceList0 -left->FinanceList1 +FinanceList1 -left->FinanceList2 +hide FinanceList2 + +class Pointer as "Current State" #FFFFF +Pointer -up-> FinanceList1 + + +@enduml \ No newline at end of file diff --git a/docs/financeDiagram/1.1S3.puml b/docs/financeDiagram/1.1S3.puml new file mode 100644 index 0000000000..2a02661029 --- /dev/null +++ b/docs/financeDiagram/1.1S3.puml @@ -0,0 +1,26 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title After Step 3 + +package FinanceList0 { + class State1 as " " +} +package FinanceList1 { + class State2 as "FinanceLog\niphone12 $1299" +} + +package FinanceList2 { + class State3 as " " +} + +FinanceList0 -left->FinanceList1 +FinanceList1 -left->FinanceList2 + +class Pointer as "Current State" #FFFFF +Pointer -up-> FinanceList2 + + +@enduml \ No newline at end of file diff --git a/docs/financeDiagram/1.2S1.puml b/docs/financeDiagram/1.2S1.puml new file mode 100644 index 0000000000..bb87e4c4e6 --- /dev/null +++ b/docs/financeDiagram/1.2S1.puml @@ -0,0 +1,25 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Initial state + +package FinanceList0 { + class State1 as "FinanceLog\niphone12 $1299" + class State2 as "FinanceLog\nChicken rice $3.5" +} +package FinanceList1 { + class State3 as "FinanceLog\niphone12 $1299" + class State4 as "FinanceLog\nChicken rice $3.5" +} +hide FinanceList1 + +FinanceList0 -left->FinanceList1 + + +class Pointer as "Current State" #FFFFF +Pointer -up-> FinanceList0 + + +@enduml \ No newline at end of file diff --git a/docs/financeDiagram/1.2S2.puml b/docs/financeDiagram/1.2S2.puml new file mode 100644 index 0000000000..5aadb6480e --- /dev/null +++ b/docs/financeDiagram/1.2S2.puml @@ -0,0 +1,25 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title After Step 2 + +package FinanceList0 { + class State1 as "FinanceLog\niphone12 $1299" + class State2 as "FinanceLog\nChicken rice $3.5" +} +package FinanceList1 { + class State3 as "FinanceLog\niphone12 $1299" + class State4 as "FinanceLog\nChicken rice $3.5" +} + + +FinanceList0 -left->FinanceList1:finance summary + + +class Pointer as "Current State" #FFFFF +Pointer -up-> FinanceList1 + + +@enduml \ No newline at end of file diff --git a/docs/financeDiagram/1.3S1.puml b/docs/financeDiagram/1.3S1.puml new file mode 100644 index 0000000000..c9dee2ce0c --- /dev/null +++ b/docs/financeDiagram/1.3S1.puml @@ -0,0 +1,25 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Initial state + +package FinanceList0 { + class State2 as "FinanceLog\nrent room $40" + class State1 as "FinanceLog\niphone12 $1299" +} +package FinanceList1 { + class State3 as "FinanceLog\niphone12 $1299" + class State4 as "FinanceLog\nrent field $50" +} +hide FinanceList1 + +FinanceList0 -left->FinanceList1 + + +class Pointer as "Current State" #FFFFF +Pointer -up-> FinanceList0 + + +@enduml \ No newline at end of file diff --git a/docs/financeDiagram/1.3S2.puml b/docs/financeDiagram/1.3S2.puml new file mode 100644 index 0000000000..75145b451c --- /dev/null +++ b/docs/financeDiagram/1.3S2.puml @@ -0,0 +1,25 @@ +@startuml +!include style.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Initial state + +package FinanceList0 { + class State2 as "FinanceLog\nrent room $40" + class State1 as "FinanceLog\niphone12 $1299" +} +package FinanceList1 { + class State4 as "FinanceLog\nrent field $50" + class State3 as "FinanceLog\niphone12 $1299" +} + + +FinanceList0 -left->FinanceList1 + + +class Pointer as "Current State" #FFFFF +Pointer -up-> FinanceList1 + + +@enduml \ No newline at end of file diff --git a/docs/financeDiagram/Architecture.puml b/docs/financeDiagram/Architecture.puml new file mode 100644 index 0000000000..4647fe5a61 --- /dev/null +++ b/docs/financeDiagram/Architecture.puml @@ -0,0 +1,38 @@ +@startuml +hide circle +class "{abstract}\n Command" +class CommandFinanceAdd{ +} +class CommandFinanceDel{ +} +class CommandFinanceSummary { +} +class FinanceList{ +} +class FinanceLog { +} +"{abstract}\n Command" <|-right-CommandFinanceAdd +"{abstract}\n Command" <|-up-CommandFinanceDel +"{abstract}\n Command" <|-down-CommandFinanceSummary +"{abstract}\n Command" <|-down-CommandFinanceChange +FinanceList <-left-FinanceLog +FinanceLog <--FinanceList +FinanceList <-right-CommandFinanceAdd +CommandFinanceAdd <-- FinanceList +FinanceList <-right- CommandFinanceDel +CommandFinanceDel <-- FinanceList +FinanceList <--CommandFinanceSummary +CommandFinanceSummary <-- FinanceList +FinanceLog <-right- CommandFinanceAdd +FinanceList <--CommandFinanceChange +CommandFinanceChange <-- FinanceList +class Ui +class FileMananger +FinanceList <-- FileMananger +"{abstract}\n Command" <-- Ui +class Duke +Ui <-left- Duke +class DukeException +"{abstract}\n Command" <-down- DukeException + +@enduml \ No newline at end of file diff --git a/docs/financeDiagram/CommandFinanceAdd.puml b/docs/financeDiagram/CommandFinanceAdd.puml new file mode 100644 index 0000000000..bd0afb4781 --- /dev/null +++ b/docs/financeDiagram/CommandFinanceAdd.puml @@ -0,0 +1,15 @@ +@startuml +participant ":CommandFinanceAdd" as CommandFinanceAdd +participant "fl:FinanceLog" as FinanceLog +participant ":FinanceList" as FinanceList + + -> CommandFinanceAdd: execute() +activate CommandFinanceAdd +CommandFinanceAdd -> FinanceLog ** +activate FinanceLog +return +CommandFinanceAdd ->FinanceList: addLog(fl) +activate FinanceList +return output +return output +@enduml \ No newline at end of file diff --git a/docs/financeDiagram/CommandFinanceChange.puml b/docs/financeDiagram/CommandFinanceChange.puml new file mode 100644 index 0000000000..14072b645e --- /dev/null +++ b/docs/financeDiagram/CommandFinanceChange.puml @@ -0,0 +1,17 @@ +@startuml +participant ":CommandFinanceChange" as CommandFinanceChange +participant ":FinanceList" as FinanceList +participant ":FinanceLog" as FinanceLog +->CommandFinanceChange:execute() +activate CommandFinanceChange +CommandFinanceChange -> FinanceList : changeFinanceLog() +activate FinanceList +FinanceList -> FinanceLog: setFinLog() +activate FinanceLog +return +FinanceList -> FinanceLog:setFinLogVal() +activate FinanceLog +return +return output +return output +@enduml \ No newline at end of file diff --git a/docs/financeDiagram/CommandFinanceDel.puml b/docs/financeDiagram/CommandFinanceDel.puml new file mode 100644 index 0000000000..1477682408 --- /dev/null +++ b/docs/financeDiagram/CommandFinanceDel.puml @@ -0,0 +1,12 @@ +@startuml +participant ":CommandFinanceDel" as CommandFinanceDel +participant ":FinanceList" as FinanceList +participant ":FinanceLog" as FinanceLog +->CommandFinanceDel:execute() +activate CommandFinanceDel +CommandFinanceDel -> FinanceList:delLog(index) +activate FinanceList +FinanceList -> FinanceLog !! +return output +return output +@enduml \ No newline at end of file diff --git a/docs/financeDiagram/CommandFinanceSummary.puml b/docs/financeDiagram/CommandFinanceSummary.puml new file mode 100644 index 0000000000..66f6e71a11 --- /dev/null +++ b/docs/financeDiagram/CommandFinanceSummary.puml @@ -0,0 +1,19 @@ +@startuml +participant ":CommandFinanceSummary" as CommandFinanceSummary +participant ":FinanceList" as FinanceList +participant ":FinanceLog" as FinanceLog +->CommandFinanceSummary:execute() +activate CommandFinanceSummary +CommandFinanceSummary -> FinanceList : summary() +activate FinanceList +loop finSize +FinanceList -> FinanceLog: getLog() +activate FinanceLog +return finLog +FinanceList -> FinanceLog:getLogVal() +activate FinanceLog +return finLogVal +end +return output +return output +@enduml \ No newline at end of file diff --git a/docs/financeDiagram/style.puml b/docs/financeDiagram/style.puml new file mode 100644 index 0000000000..aeb450fd0d --- /dev/null +++ b/docs/financeDiagram/style.puml @@ -0,0 +1,66 @@ +!define UI_COLOR #1D8900 +!define UI_COLOR_T1 #83E769 +!define UI_COLOR_T2 #3FC71B +!define UI_COLOR_T3 #166800 +!define UI_COLOR_T4 #0E4100 + +!define LOGIC_COLOR #3333C4 +!define LOGIC_COLOR_T1 #C8C8FA +!define LOGIC_COLOR_T2 #6A6ADC +!define LOGIC_COLOR_T3 #1616B0 +!define LOGIC_COLOR_T4 #101086 + +!define MODEL_COLOR #9D0012 +!define MODEL_COLOR_T1 #F97181 +!define MODEL_COLOR_T2 #E41F36 +!define MODEL_COLOR_T3 #7B000E +!define MODEL_COLOR_T4 #51000A + +!define STORAGE_COLOR #A38300 +!define STORAGE_COLOR_T1 #FFE374 +!define STORAGE_COLOR_T2 #EDC520 +!define STORAGE_COLOR_T3 #806600 +!define STORAGE_COLOR_T2 #544400 + +!define USER_COLOR #000000 + +skinparam BackgroundColor #FFFFFFF + +skinparam Shadowing false + +skinparam Class { + FontColor #FFFFFF + BorderThickness 1 + BorderColor #FFFFFF + StereotypeFontColor #FFFFFF + FontName Arial +} + +skinparam Actor { + BorderColor USER_COLOR + Color USER_COLOR + FontName Arial +} + +skinparam Sequence { + MessageAlign center + BoxFontSize 15 + BoxPadding 0 + BoxFontColor #FFFFFF + FontName Arial +} + +skinparam Participant { + FontColor #FFFFFFF + Padding 20 +} + +skinparam MinClassWidth 50 +skinparam ParticipantPadding 10 +skinparam Shadowing false +skinparam DefaultTextAlignment center +skinparam packageStyle Rectangle + +hide footbox +hide members +hide circle \ No newline at end of file diff --git a/docs/financeDiagramPic/1-1S1.png b/docs/financeDiagramPic/1-1S1.png new file mode 100644 index 0000000000..d2d51e780b Binary files /dev/null and b/docs/financeDiagramPic/1-1S1.png differ diff --git a/docs/financeDiagramPic/1-1S2.png b/docs/financeDiagramPic/1-1S2.png new file mode 100644 index 0000000000..fc70af114e Binary files /dev/null and b/docs/financeDiagramPic/1-1S2.png differ diff --git a/docs/financeDiagramPic/1-1S3.png b/docs/financeDiagramPic/1-1S3.png new file mode 100644 index 0000000000..cd4563e0cc Binary files /dev/null and b/docs/financeDiagramPic/1-1S3.png differ diff --git a/docs/financeDiagramPic/1-2S1.png b/docs/financeDiagramPic/1-2S1.png new file mode 100644 index 0000000000..a5fe7095b0 Binary files /dev/null and b/docs/financeDiagramPic/1-2S1.png differ diff --git a/docs/financeDiagramPic/1-2S2.png b/docs/financeDiagramPic/1-2S2.png new file mode 100644 index 0000000000..dd445e40ae Binary files /dev/null and b/docs/financeDiagramPic/1-2S2.png differ diff --git a/docs/financeDiagramPic/1-3S1.png b/docs/financeDiagramPic/1-3S1.png new file mode 100644 index 0000000000..3e8d961327 Binary files /dev/null and b/docs/financeDiagramPic/1-3S1.png differ diff --git a/docs/financeDiagramPic/1-3S2.png b/docs/financeDiagramPic/1-3S2.png new file mode 100644 index 0000000000..9451eefe83 Binary files /dev/null and b/docs/financeDiagramPic/1-3S2.png differ diff --git a/docs/financeDiagramPic/Architecture.png b/docs/financeDiagramPic/Architecture.png new file mode 100644 index 0000000000..ecfc226ef5 Binary files /dev/null and b/docs/financeDiagramPic/Architecture.png differ diff --git a/docs/financeDiagramPic/CommandFinanceAdd.png b/docs/financeDiagramPic/CommandFinanceAdd.png new file mode 100644 index 0000000000..28e4e2974b Binary files /dev/null and b/docs/financeDiagramPic/CommandFinanceAdd.png differ diff --git a/docs/financeDiagramPic/CommandFinanceChange.png b/docs/financeDiagramPic/CommandFinanceChange.png new file mode 100644 index 0000000000..c74fe991fd Binary files /dev/null and b/docs/financeDiagramPic/CommandFinanceChange.png differ diff --git a/docs/financeDiagramPic/CommandFinanceDel.png b/docs/financeDiagramPic/CommandFinanceDel.png new file mode 100644 index 0000000000..2cc740e5ba Binary files /dev/null and b/docs/financeDiagramPic/CommandFinanceDel.png differ diff --git a/docs/financeDiagramPic/CommandFinanceSummary.png b/docs/financeDiagramPic/CommandFinanceSummary.png new file mode 100644 index 0000000000..156717fa2c Binary files /dev/null and b/docs/financeDiagramPic/CommandFinanceSummary.png differ diff --git a/docs/hrDiagram/2.1S1.puml b/docs/hrDiagram/2.1S1.puml new file mode 100644 index 0000000000..b65959da14 --- /dev/null +++ b/docs/hrDiagram/2.1S1.puml @@ -0,0 +1,27 @@ +@startuml +!include styleHR.puml + +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title After Step 1 + +package MemberList0 { + class State1 as " " +} +package MemberList1 { + class State2 as "Member\n__John Sterling:Member__" +} + +package MemberList2 { + class State3 as " " +} + +MemberList0 -left->MemberList1 +hide MemberList1 +hide MemberList2 + +class Pointer as "Current State" #FFFFF +Pointer -up-> MemberList0 + +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/2.1S2.puml b/docs/hrDiagram/2.1S2.puml new file mode 100644 index 0000000000..dbfa4f3e0a --- /dev/null +++ b/docs/hrDiagram/2.1S2.puml @@ -0,0 +1,26 @@ +@startuml +!include styleHR.puml + +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title After Step 2 + +package MemberList0 { + class State1 as " " +} +package MemberList1 { + class State2 as "Member\n__John Sterling:Member__" +} + +package MemberList2 { + class State3 as " " +} + +MemberList0 -left->MemberList1 +MemberList1 -left->MemberList2 +hide MemberList2 + +class Pointer as "Current State" #FFFFF +Pointer -up-> MemberList1 +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/2.1S3.puml b/docs/hrDiagram/2.1S3.puml new file mode 100644 index 0000000000..c0a126f604 --- /dev/null +++ b/docs/hrDiagram/2.1S3.puml @@ -0,0 +1,23 @@ +@startuml +!include styleHR.puml + +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +package MemberList0 { + class State1 as " " +} +package MemberList1 { + class State2 as "Member\n__John Sterling:Member__" +} + +package MemberList2 { + class State3 as " " +} + +MemberList0 -left->MemberList1 +MemberList1 -left->MemberList2 + +class Pointer as "Current State" #FFFFF +Pointer -up-> MemberList2 +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/2.2S1.puml b/docs/hrDiagram/2.2S1.puml new file mode 100644 index 0000000000..3dcdd3e5e5 --- /dev/null +++ b/docs/hrDiagram/2.2S1.puml @@ -0,0 +1,14 @@ +@startuml +!include styleHR.puml + +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title After Step 1 + +package MemberList { + class State0 as "__John Sterling:Member__" + class State1 as "__Harry Potter:Member__" +} + +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/3.5S1.puml b/docs/hrDiagram/3.5S1.puml new file mode 100644 index 0000000000..f2a8c3d9e5 --- /dev/null +++ b/docs/hrDiagram/3.5S1.puml @@ -0,0 +1,14 @@ +@startuml +!include styleHR.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Initial state + +package MemberList { + class State1 as "Member\nHarry Potter\n88888888\nqaz@gmail.com\npresident" + class State2 as "Member\nJohn Sterling\n12345678\n123@gmail.com\nmember" +} + + +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/3.5S2.puml b/docs/hrDiagram/3.5S2.puml new file mode 100644 index 0000000000..91ac92da36 --- /dev/null +++ b/docs/hrDiagram/3.5S2.puml @@ -0,0 +1,16 @@ +@startuml +!include styleHR.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 2 state + +package MemberList { + class State1 as "Member\nHarry Potter\n88888888\nqaz@gmail.com\npresident" + class State2 as "Member\nJohn Sterling\n12345678\n123@gmail.com\nmember" +} + +Search -up->State2 + + +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/3.5S3.puml b/docs/hrDiagram/3.5S3.puml new file mode 100644 index 0000000000..5b8377ff8d --- /dev/null +++ b/docs/hrDiagram/3.5S3.puml @@ -0,0 +1,16 @@ +@startuml +!include styleHR.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 3 state + +package MemberList { + class State1 as "Member\nHarry Potter\n88888888\nqaz@gmail.com\npresident" + class State2 as "Member\nJohn Sterling\n12345678\n123@gmail.com\nmember" +} + +Search -up->State1 + + +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/3.6S1.puml b/docs/hrDiagram/3.6S1.puml new file mode 100644 index 0000000000..fdcc3315e4 --- /dev/null +++ b/docs/hrDiagram/3.6S1.puml @@ -0,0 +1,24 @@ +@startuml +!include styleHR.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Initial state + +package MemberList { + class State0 as "Member\nTony Parker\n114514\ntp9@gmail.com\nAlumni" + class State1 as "Member\nHarry Potter\n88888888\nqaz@gmail.com\nspeaker" + class State2 as "Member\nJohn Sterling\n12345678\n123@gmail.com\nmember" +} + +package MemberToPrint { + class State3 as "Member\nTony Parker\n114514\ntp9@gmail.com\nAlumni" + class State4 as "Member\nHarry Potter\n88888888\nqaz@gmail.com\nspeaker" +} + +hide MemberToPrint + +MemberList -left-> MemberToPrint + + +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/3.6S2.puml b/docs/hrDiagram/3.6S2.puml new file mode 100644 index 0000000000..739978418e --- /dev/null +++ b/docs/hrDiagram/3.6S2.puml @@ -0,0 +1,23 @@ +@startuml +!include styleHR.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 2 state + +package MemberList { + class State0 as "Member\nTony Parker\n114514\ntp9@gmail.com\nAlumni" + class State1 as "Member\nHarry Potter\n88888888\nqaz@gmail.com\nspeaker" + class State2 as "Member\nJohn Sterling\n12345678\n123@gmail.com\nmember" +} + +package MemberToPrint { + class State3 as "Member\nTony Parker\n114514\ntp9@gmail.com\nAlumni" + class State4 as "Member\nHarry Potter\n88888888\nqaz@gmail.com\nspeaker" +} + + +MemberList -left-> MemberToPrint + + +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/35S1.puml b/docs/hrDiagram/35S1.puml new file mode 100644 index 0000000000..1ee129416a --- /dev/null +++ b/docs/hrDiagram/35S1.puml @@ -0,0 +1,24 @@ +@startuml +!include styleHR.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Initial state + +package MemberList { + class State0 as "Member\nTony Parker\n114514\ntp9@gmail.com\nAdministrator" + class State1 as "Member\nHarry Potter\n88888888\nqaz@gmail.com\nprofessor" + class State2 as "Member\nJohn Sterling\n12345678\n123@gmail.com\nmember" +} + +package MemberToPrint { + class State3 as "Member\nTony Parker\n114514\ntp9@gmail.com\nAdministrator" + class State4 as "Member\nHarry Potter\n88888888\nqaz@gmail.com\nprofessor" +} + +hide MemberToPrint + +MemberList -left-> MemberToPrint + + +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/35S2.puml b/docs/hrDiagram/35S2.puml new file mode 100644 index 0000000000..f60a05ea4d --- /dev/null +++ b/docs/hrDiagram/35S2.puml @@ -0,0 +1,23 @@ +@startuml +!include styleHR.puml +skinparam ClassFontColor #000000 +skinparam ClassBorderColor #000000 + +title Step 2 State + +package MemberList { + class State0 as "Member\nTony Parker\n114514\ntp9@gmail.com\nAdministrator" + class State1 as "Member\nHarry Potter\n88888888\nqaz@gmail.com\nprofessor" + class State2 as "Member\nJohn Sterling\n12345678\n123@gmail.com\nmember" +} + +package MemberToPrint { + class State3 as "Member\nTony Parker\n114514\ntp9@gmail.com\nAdministrator" + class State4 as "Member\nHarry Potter\n88888888\nqaz@gmail.com\nprofessor" +} + + +MemberList -left-> MemberToPrint + + +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/CommandAddMember.puml b/docs/hrDiagram/CommandAddMember.puml new file mode 100644 index 0000000000..05c1d79e98 --- /dev/null +++ b/docs/hrDiagram/CommandAddMember.puml @@ -0,0 +1,20 @@ +@startuml + -> ":CommandAddMember": execute() + + +activate ":CommandAddMember" +":CommandAddMember" -> ":MemberList" : addToList(m) +activate ":MemberList" +":MemberList" -> ":Member": add() +activate ":Member" +return +":MemberList" -> ":Member" : toString() +activate ":Member" +ref over ":Member", ":MemberList" + updateEventAttendance +end ref +return output +return output +<-- ":CommandAddMember" : output +deactivate ":CommandAddMember" +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/CommandChangeMemberInfo.puml b/docs/hrDiagram/CommandChangeMemberInfo.puml new file mode 100644 index 0000000000..c5ddc5c7b7 --- /dev/null +++ b/docs/hrDiagram/CommandChangeMemberInfo.puml @@ -0,0 +1,21 @@ +@startuml + + -> ":CommandChangeMemberInfo": execute() +activate ":CommandChangeMemberInfo" + +":CommandChangeMemberInfo" -> ":MemberList" : findMemberByName(memberName) +activate ":MemberList" +":MemberList" --> ":CommandChangeMemberInfo" +deactivate ":MemberList" +":CommandChangeMemberInfo" -> ":MemberList" : changeMemberInfo(m, newPhone, newEmail, newRole) +activate ":MemberList" +":MemberList" -> ":Member" : toString() +activate ":Member" +ref over ":Member", ":MemberList" + updateEventAttendance +end ref +return output +return output +return output + +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/CommandDelMember.puml b/docs/hrDiagram/CommandDelMember.puml new file mode 100644 index 0000000000..e4371e680b --- /dev/null +++ b/docs/hrDiagram/CommandDelMember.puml @@ -0,0 +1,24 @@ +@startuml + + -> ":CommandDelMember": execute() +activate ":CommandDelMember" +activate ":MemberList" +":CommandDelMember" -> ":MemberList" : deleteFromList(index) +activate ":MemberList" +":MemberList" -> ":Member" : toString() +activate ":Member" +ref over ":Member", ":MemberList" + updateEventAttendance(memberName) +end ref +return output + + +ref over ":MemberList", ":Member", ":EventList", ":Event" + deleteFromEvents(memberName) +end ref +":MemberList" -> ":Member" !! +return output +deactivate ":MemberList" +<-- ":CommandDelMember" : output +deactivate ":CommandDelMember" +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/CommandListConnection.puml b/docs/hrDiagram/CommandListConnection.puml new file mode 100644 index 0000000000..99d6bcee10 --- /dev/null +++ b/docs/hrDiagram/CommandListConnection.puml @@ -0,0 +1,13 @@ +@startuml +participant ":CommandListConnection" as CommandFinanceSummary +participant ":MemberList" as FinanceList +->CommandFinanceSummary:execute() +activate CommandFinanceSummary +CommandFinanceSummary -> FinanceList : searchConnection() +activate FinanceList +loop numOfMembers +FinanceList -> FinanceList: searcheRole() +end +return output +return output +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/CommandListProfAdmin.puml b/docs/hrDiagram/CommandListProfAdmin.puml new file mode 100644 index 0000000000..dba62222b6 --- /dev/null +++ b/docs/hrDiagram/CommandListProfAdmin.puml @@ -0,0 +1,13 @@ +@startuml +participant ":CommandListProfAdmin" as CommandFinanceSummary +participant ":MemberList" as FinanceList +->CommandFinanceSummary:execute() +activate CommandFinanceSummary +CommandFinanceSummary -> FinanceList : searchProfAdmin() +activate FinanceList +loop numOfMembers +FinanceList -> FinanceList: searcheRole() +end +return output +return output +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/CommandSearchMember.puml b/docs/hrDiagram/CommandSearchMember.puml new file mode 100644 index 0000000000..5f3f1272fd --- /dev/null +++ b/docs/hrDiagram/CommandSearchMember.puml @@ -0,0 +1,27 @@ +@startuml +participant ":CommandSearchMember" as CommandFinanceSummary +participant ":MemberList" as FinanceList +->CommandFinanceSummary:execute() +activate CommandFinanceSummary +CommandFinanceSummary -> FinanceList : search() +activate FinanceList +loop numOfMembers +opt any +FinanceList -> FinanceList: searchAny() +end +opt name +FinanceList -> FinanceList: searchName() +end +opt phone +FinanceList -> FinanceList: searchePhone() +end +opt email +FinanceList -> FinanceList: searcheEmail() +end +opt role +FinanceList -> FinanceList: searcheRole() +end +end +return output +return output +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/CommandViewMember.puml b/docs/hrDiagram/CommandViewMember.puml new file mode 100644 index 0000000000..08de8f4bc3 --- /dev/null +++ b/docs/hrDiagram/CommandViewMember.puml @@ -0,0 +1,28 @@ +@startuml + -> ":CommandViewMember" : execute() + +activate ":CommandViewMember" + +":CommandViewMember" -> ":MemberList":listMembers() +activate ":MemberList" +alt memberSize == 0 + ":MemberList" --> ":CommandViewMember" + <-- ":CommandViewMember" : output +else else + loop memberSize + ":MemberList" -> ":Member" : toString() + activate ":Member" + ref over ":Member", ":MemberList" + updateEventAttendance + end ref + return output + deactivate ":Member" + ":MemberList" --> ":CommandViewMember" : output + deactivate ":MemberList" + end + deactivate ":MemberList" +end +<-- ":CommandViewMember" : output +deactivate ":CommandViewMember" + +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/DeleteFromEvents.puml b/docs/hrDiagram/DeleteFromEvents.puml new file mode 100644 index 0000000000..2a0d544ca5 --- /dev/null +++ b/docs/hrDiagram/DeleteFromEvents.puml @@ -0,0 +1,23 @@ +@startuml +-> ":MemberList" : deleteFromEvents(memberName) +activate ":MemberList" +loop eventSize +":MemberList" -> ":EventList" +activate ":EventList" +":EventList" -> ":Event" :getEventName() +activate ":Event" +":Event" --> ":EventList" +deactivate ":Event" +":EventList" --> ":MemberList" : eventName +deactivate ":EventList" +":MemberList" -> ":EventList" : deleteAttendance(eventName, memberName) +ref over ":MemberList", ":EventList", ":Event" +deleteAttendance(eventName, memberName) +end ref +activate ":EventList" +":EventList" --> ":MemberList" +deactivate ":EventList" +end +<-- ":MemberList" +deactivate ":MemberList" +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/HrArchitecture.puml b/docs/hrDiagram/HrArchitecture.puml new file mode 100644 index 0000000000..fe70c21a53 --- /dev/null +++ b/docs/hrDiagram/HrArchitecture.puml @@ -0,0 +1,46 @@ +@startuml +class "{abstract} \n Command" +class CommandAddMember { +} +class CommandDelMember { +} +class CommandViewMember { +} +class MemberList { +} +class Member { +} + +Rectangle HrCommands { +"{abstract} \n Command" <|--CommandDelMember +"{abstract} \n Command" <|--CommandAddMember +"{abstract} \n Command" <|--CommandViewMember +"{abstract} \n Command" <|-- CommandSearchMember +"{abstract} \n Command" <|-- CommandListProfAdmin +"{abstract} \n Command" <|-- CommandListConnection +"{abstract} \n Command" <|-- CommandChangeMemberInfo +} +MemberList <-left-Member +Member <--MemberList +MemberList <--CommandAddMember +CommandAddMember <-- MemberList +MemberList <-- CommandDelMember +CommandDelMember <-- MemberList +MemberList <--CommandViewMember +CommandViewMember <-- MemberList +MemberList <--CommandSearchMember +CommandSearchMember <-- MemberList +MemberList <-- CommandListProfAdmin +CommandListProfAdmin <-- MemberList +MemberList <--CommandListConnection +CommandListConnection <-- MemberList +MemberList <--CommandChangeMemberInfo +CommandChangeMemberInfo <-- MemberList +class Ui +class FileMananger +MemberList <-- FileMananger +"{abstract} \n Command" <-- Ui +class Duke +Ui <-- Duke + +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/HrArchitecture1.puml b/docs/hrDiagram/HrArchitecture1.puml new file mode 100644 index 0000000000..f7e8340f68 --- /dev/null +++ b/docs/hrDiagram/HrArchitecture1.puml @@ -0,0 +1,22 @@ + +@startuml +scale max 1024 width +hide circle + +class "{abstract} \n Command" { +} + + + +"{abstract} \n Command" <|-down- HrCommands + +HrCommands -down> Member +MemberList -up> Member +MemberList -> HrCommands +HrCommands -> MemberList + + +Duke -> Ui +Ui -> "{abstract} \n Command" + +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/HrArchitecture2.puml b/docs/hrDiagram/HrArchitecture2.puml new file mode 100644 index 0000000000..202476ca79 --- /dev/null +++ b/docs/hrDiagram/HrArchitecture2.puml @@ -0,0 +1,14 @@ +@startuml +hide circle +class "{abstract} \n Command" { +} + +Rectangle HrCommands { +"{abstract} \n Command" <|-down- CommandAddMember +"{abstract} \n Command" <|-down CommandDelMember +"{abstract} \n Command" <|-down CommandViewMember +"{abstract} \n Command" <|-down CommandSearchMember +"{abstract} \n Command" <|-down CommandListConnection +"{abstract} \n Command" <|-down CommandListProfAdmin +"{abstract} \n Command" <|-down CommandChangeMemberInfo +@enduml \ No newline at end of file diff --git a/docs/hrDiagram/UpdateAttendanceRate.puml b/docs/hrDiagram/UpdateAttendanceRate.puml new file mode 100644 index 0000000000..119d701f7a --- /dev/null +++ b/docs/hrDiagram/UpdateAttendanceRate.puml @@ -0,0 +1,25 @@ +@startuml + -> ":MemberList" : updateAttendanceRate(memberName) + activate ":MemberList" + loop eventSize + ":MemberList" -> ":MemberList" : checkMemberExistence(memberName) + activate ":MemberList" + ":MemberList" --> ":MemberList" + deactivate ":MemberList" + end + ":MemberList" -> ":MemberList" : calculateAttendanceRate(attended, shouldAttend) + activate ":MemberList" + ":MemberList" --> ":MemberList" + deactivate ":MemberList" + ":MemberList" -> ":Member" : findMemberByName(memberName) + activate ":Member" + return + deactivate ":Member" + ":MemberList" -> ":Member" :setAttendanceRate(attendanceRate) + activate ":Member" + return + deactivate ":Member" + <-- ":MemberList" : output + deactivate ":MemberList" + @enduml + diff --git a/docs/hrDiagram/styleHR.puml b/docs/hrDiagram/styleHR.puml new file mode 100644 index 0000000000..aeb450fd0d --- /dev/null +++ b/docs/hrDiagram/styleHR.puml @@ -0,0 +1,66 @@ +!define UI_COLOR #1D8900 +!define UI_COLOR_T1 #83E769 +!define UI_COLOR_T2 #3FC71B +!define UI_COLOR_T3 #166800 +!define UI_COLOR_T4 #0E4100 + +!define LOGIC_COLOR #3333C4 +!define LOGIC_COLOR_T1 #C8C8FA +!define LOGIC_COLOR_T2 #6A6ADC +!define LOGIC_COLOR_T3 #1616B0 +!define LOGIC_COLOR_T4 #101086 + +!define MODEL_COLOR #9D0012 +!define MODEL_COLOR_T1 #F97181 +!define MODEL_COLOR_T2 #E41F36 +!define MODEL_COLOR_T3 #7B000E +!define MODEL_COLOR_T4 #51000A + +!define STORAGE_COLOR #A38300 +!define STORAGE_COLOR_T1 #FFE374 +!define STORAGE_COLOR_T2 #EDC520 +!define STORAGE_COLOR_T3 #806600 +!define STORAGE_COLOR_T2 #544400 + +!define USER_COLOR #000000 + +skinparam BackgroundColor #FFFFFFF + +skinparam Shadowing false + +skinparam Class { + FontColor #FFFFFF + BorderThickness 1 + BorderColor #FFFFFF + StereotypeFontColor #FFFFFF + FontName Arial +} + +skinparam Actor { + BorderColor USER_COLOR + Color USER_COLOR + FontName Arial +} + +skinparam Sequence { + MessageAlign center + BoxFontSize 15 + BoxPadding 0 + BoxFontColor #FFFFFF + FontName Arial +} + +skinparam Participant { + FontColor #FFFFFFF + Padding 20 +} + +skinparam MinClassWidth 50 +skinparam ParticipantPadding 10 +skinparam Shadowing false +skinparam DefaultTextAlignment center +skinparam packageStyle Rectangle + +hide footbox +hide members +hide circle \ No newline at end of file diff --git a/docs/hrDiagramPic/2-1S1.png b/docs/hrDiagramPic/2-1S1.png new file mode 100644 index 0000000000..44c0816d19 Binary files /dev/null and b/docs/hrDiagramPic/2-1S1.png differ diff --git a/docs/hrDiagramPic/2-1S2.png b/docs/hrDiagramPic/2-1S2.png new file mode 100644 index 0000000000..3d1ad5a6b0 Binary files /dev/null and b/docs/hrDiagramPic/2-1S2.png differ diff --git a/docs/hrDiagramPic/2-1S3.png b/docs/hrDiagramPic/2-1S3.png new file mode 100644 index 0000000000..b8790884a1 Binary files /dev/null and b/docs/hrDiagramPic/2-1S3.png differ diff --git a/docs/hrDiagramPic/2-2S1.png b/docs/hrDiagramPic/2-2S1.png new file mode 100644 index 0000000000..54b8104255 Binary files /dev/null and b/docs/hrDiagramPic/2-2S1.png differ diff --git a/docs/hrDiagramPic/3-5S1.png b/docs/hrDiagramPic/3-5S1.png new file mode 100644 index 0000000000..26b2a8ef7a Binary files /dev/null and b/docs/hrDiagramPic/3-5S1.png differ diff --git a/docs/hrDiagramPic/3-5S2.png b/docs/hrDiagramPic/3-5S2.png new file mode 100644 index 0000000000..89292a1463 Binary files /dev/null and b/docs/hrDiagramPic/3-5S2.png differ diff --git a/docs/hrDiagramPic/3-5S3.png b/docs/hrDiagramPic/3-5S3.png new file mode 100644 index 0000000000..87f5ae634a Binary files /dev/null and b/docs/hrDiagramPic/3-5S3.png differ diff --git a/docs/hrDiagramPic/3-6S1.png b/docs/hrDiagramPic/3-6S1.png new file mode 100644 index 0000000000..18c61bda5c Binary files /dev/null and b/docs/hrDiagramPic/3-6S1.png differ diff --git a/docs/hrDiagramPic/3-6S2.png b/docs/hrDiagramPic/3-6S2.png new file mode 100644 index 0000000000..bbe29c8bb6 Binary files /dev/null and b/docs/hrDiagramPic/3-6S2.png differ diff --git a/docs/hrDiagramPic/35S1.png b/docs/hrDiagramPic/35S1.png new file mode 100644 index 0000000000..c99a16c774 Binary files /dev/null and b/docs/hrDiagramPic/35S1.png differ diff --git a/docs/hrDiagramPic/35S2.png b/docs/hrDiagramPic/35S2.png new file mode 100644 index 0000000000..141a84192d Binary files /dev/null and b/docs/hrDiagramPic/35S2.png differ diff --git a/docs/hrDiagramPic/CommandAddMember.png b/docs/hrDiagramPic/CommandAddMember.png new file mode 100644 index 0000000000..4c62302bfe Binary files /dev/null and b/docs/hrDiagramPic/CommandAddMember.png differ diff --git a/docs/hrDiagramPic/CommandChangeMemberInfo.png b/docs/hrDiagramPic/CommandChangeMemberInfo.png new file mode 100644 index 0000000000..f78836ff43 Binary files /dev/null and b/docs/hrDiagramPic/CommandChangeMemberInfo.png differ diff --git a/docs/hrDiagramPic/CommandDelMember.png b/docs/hrDiagramPic/CommandDelMember.png new file mode 100644 index 0000000000..e21ec349ae Binary files /dev/null and b/docs/hrDiagramPic/CommandDelMember.png differ diff --git a/docs/hrDiagramPic/CommandListConnection.png b/docs/hrDiagramPic/CommandListConnection.png new file mode 100644 index 0000000000..6cf319aad8 Binary files /dev/null and b/docs/hrDiagramPic/CommandListConnection.png differ diff --git a/docs/hrDiagramPic/CommandListProfAdmin.png b/docs/hrDiagramPic/CommandListProfAdmin.png new file mode 100644 index 0000000000..b24699420f Binary files /dev/null and b/docs/hrDiagramPic/CommandListProfAdmin.png differ diff --git a/docs/hrDiagramPic/CommandSearchMember.png b/docs/hrDiagramPic/CommandSearchMember.png new file mode 100644 index 0000000000..f4c4b16e37 Binary files /dev/null and b/docs/hrDiagramPic/CommandSearchMember.png differ diff --git a/docs/hrDiagramPic/CommandViewMember.png b/docs/hrDiagramPic/CommandViewMember.png new file mode 100644 index 0000000000..e99db6e204 Binary files /dev/null and b/docs/hrDiagramPic/CommandViewMember.png differ diff --git a/docs/hrDiagramPic/DeleteFromEvents.png b/docs/hrDiagramPic/DeleteFromEvents.png new file mode 100644 index 0000000000..2a84848672 Binary files /dev/null and b/docs/hrDiagramPic/DeleteFromEvents.png differ diff --git a/docs/hrDiagramPic/HrArchi.png b/docs/hrDiagramPic/HrArchi.png new file mode 100644 index 0000000000..6fbc96b65c Binary files /dev/null and b/docs/hrDiagramPic/HrArchi.png differ diff --git a/docs/hrDiagramPic/HrArchitecture.png b/docs/hrDiagramPic/HrArchitecture.png new file mode 100644 index 0000000000..c713d8c278 Binary files /dev/null and b/docs/hrDiagramPic/HrArchitecture.png differ diff --git a/docs/hrDiagramPic/HrArchitecture1.png b/docs/hrDiagramPic/HrArchitecture1.png new file mode 100644 index 0000000000..8b1499f38b Binary files /dev/null and b/docs/hrDiagramPic/HrArchitecture1.png differ diff --git a/docs/hrDiagramPic/HrArchitecture2.png b/docs/hrDiagramPic/HrArchitecture2.png new file mode 100644 index 0000000000..25e72abcfb Binary files /dev/null and b/docs/hrDiagramPic/HrArchitecture2.png differ diff --git a/docs/hrDiagramPic/UpdateAttendanceRate.png b/docs/hrDiagramPic/UpdateAttendanceRate.png new file mode 100644 index 0000000000..7218bfa5ea Binary files /dev/null and b/docs/hrDiagramPic/UpdateAttendanceRate.png differ diff --git a/docs/sample.csv b/docs/sample.csv new file mode 100644 index 0000000000..2fbecc3d5c --- /dev/null +++ b/docs/sample.csv @@ -0,0 +1 @@ +ID,Member,Contact,Email,Social Security,Role 785,Tania Miles,41632256,Tania@example.com,S53040944A,Member 680,Dhruv Dickens,84395718,Dhruv@example.com,S58539397C,Member 993,Arda Parra,59936914,Arda@example.com,S68979217B,Member 895,Hadi Daly,12714681,Hadi@example.com,S34991100E,Member 560,Theresa Rojas,35325898,Theresa@example.com,S68295110D,Member 959,Sohail Craig,75299888,Sohail@example.com,S97787470G,AV Engineer 746,Cherry Odom,88132154,Cherry@example.com,S75533332F,Member 708,Fern Fernandez,20444534,Fern@example.com,S37097333H,Member 811,Maeve Bowden,95863105,Maeve@example.com,S89410452Q,Member 800,Nyah Redmond,67259289,Nyah@example.com,S14323659A,Team Lead 591,Kaira Palmer,98830618,Kaira@example.com,S20389826S,Member 765,Jacob Powell,18694110,Jacob@example.com,S56293535D,Member 545,Fletcher Fields,43116152,Fletcher@example.com,S52911734F,Member 398,Harmony Sparks,84194770,Harmony@example.com,S48989164G,Member 743,Kier Silva,24870812,Kier@example.com,S53232745G,Member 316,Cairon Whittaker,52550921,Cairon@example.com,S69979797H,Member 887,Aman Hagan,43991285,Aman@example.com,S46407406H,Member 465,Sienna Mccarty,96483545,Sienna@example.com,S53724377J,Member 446,Velma Osborn,97925065,Velma@example.com,S43560471Z,Member 777,Shah Richards,65639167,Shah@example.com,S93628703C,Member 16,Frederick Roman,89934413,Frederick@example.com,S60096871X,Head of Public Relations 39,Valentino Sheldon,54613450,Valentino@example.com,S63702722S,Event Manager 44,Chris Crossley,63080821,Chris@example.com,S17391132E,Event Manager 686,Krish Hinton,55322212,Krish@example.com,S43500310D,Member 53,Zaine Irwin,97306845,Zaine@example.com,S78000965F,Chairman 450,Aisling York,62451838,Aisling@example.com,S36217177W,Member 6,Emile Guerra,94090287,Emile@example.com,S62016457G,Treasurer 128,Duncan Mckay,15270080,Duncan@example.com,S32733884Q,Member 997,Justine Manning,72931971,Justine@example.com,S24300468W,Member 148,Terri Larson,15982202,Terri@example.com,S80225471E,Member 453,Storm Holt,53002779,Storm@example.com,S91711008G,Member 114,Hafsah Humphries,14424179,Hafsah@example.com,S50017948F,speaker 529,Amiyah Wilcox,97954570,Amiyah@example.com,S78579929H,Member 971,Siraj Luna,69837918,Siraj@example.com,S53241238C,Team Lead 490,Alice Holland,57981403,Alice@example.com,S41436463S,Member 960,Nikolas Shah,29574758,Nikolas@example.com,S59420177E,Member 530,Alyssia Maxwell,93110998,Alyssia@example.com,S90075147D,Team Lead 282,Kishan Thompson,22107566,Kishan@example.com,S57387656G,Member 166,Irene Roy,55779124,Irene@example.com,S94485041H,Member 627,Mai Hewitt,81741919,Mai@example.com,S41131215C,speaker 463,Hiba Bate,22694301,Hiba@example.com,S58834858S,Member 348,Kacy Davis,29465643,Kacy@example.com,S93711982G,Member 555,Nicolle Cochran,69387850,Nicolle@example.com,S25278223E,Member 470,Ifan Benitez,87563514,Ifan@example.com,S48208235F,Member 356,Farhana Zimmerman,91709566,Farhana@example.com,S50256686G,Member 226,Lillie-May Gill,69335733,Lillie-May@example.com,S56704880E,Member 25,Ashwin Bellamy,32413855,Ashwin@example.com,S72199708D,Vice-Chairman 741,Waleed Joseph,17262553,Waleed@example.com,S38698506S,Member 615,Donald Osborne,20916002,Donald@example.com,S46344166G,admin 203,Cari Alston,76994893,Cari@example.com,S59159707F,Member 102,Shelbie Joyner,26961705,Shelbie@example.com,S50756674H,Member 747,Percy Calderon,39793559,Percy@example.com,S42384079S,Member 469,Dhruv Devine,47606820,Dhruv@example.com,S80090828E,Internal Audit Team Lead 864,Alfie-James Hassan,19287841,Alfie-James@example.com,S49557000F,Member 719,Martyn Sanderson,41377455,Martyn@example.com,S59041263I,Member 967,Jamie Farmer,68806743,Jamie@example.com,S14755481K,Member 285,Timur Lowe,90075663,Timur@example.com,S39246945U,Member 380,Karina Sparrow,75038336,Karina@example.com,S24792328H,Member 96,Seb Anthony,77692340,Seb@example.com,S58634437H,Team Lead 63,Payton Dillard,54667573,Payton@example.com,S88263530F,Member 155,Kaleem Lam,38722838,Kaleem@example.com,S36433529H,prof 75,Sayed Beard,93033469,Sayed@example.com,S50469508C,admin 797,Jesus Rios,37756729,Jesus@example.com,S57557166S,Member 153,Piper Lutz,17349132,Piper@example.com,S63296803E,Member 987,Adelle Sanchez,86209472,Adelle@example.com,S36572409D,Member 975,Henry Roberson,99973765,Henry@example.com,S34182303G,Member 726,Rudy Rice,46589783,Rudy@example.com,S25059816H,Member 495,Rodney Mcintosh,27562313,Rodney@example.com,S98542821C,Member 414,Mildred Cresswell,89541720,Mildred@example.com,S60989295S,Member 265,Celine Hill,50713169,Celine@example.com,S99731524G,Member 217,Nabeel Stein,42831169,Nabeel@example.com,S73030843E,Member 600,Tayyib Proctor,33486882,Tayyib@example.com,S29771527F,professor 518,Teejay Cabrera,44708664,Teejay@example.com,S71872161G,Member 809,Nabiha Wiley,18355859,Nabiha@example.com,S59952548G,Member 738,Madison Madden,54938267,Madison@example.com,S80669016F,alumni 966,Elif Sampson,54991509,Elif@example.com,S16813490H,Team Lead 657,Shanelle Garcia,58457413,Shanelle@example.com,S82341956S,Member 201,Alivia Fuentes,45123354,Alivia@example.com,S66623879E,Member 736,Yaseen Stott,42504208,Yaseen@example.com,S85889641F,Member 911,Zane Rosas,18457305,Zane@example.com,S15916908I,Member 510,Barbara Flynn,56864976,Barbara@example.com,S92151201K,Member 225,Janet Mann,18811670,Janet@example.com,S43727277U,Member 367,Edna Southern,55525751,Edna@example.com,S85896502H,Member 642,Ebony Bellamy,94588310,Ebony@example.com,S62675367H,Member 976,Siyana Crane,43038980,Siyana@example.com,S92309248C,speaker 30,Lucia Galvan,26491941,Lucia@example.com,S78944698B,Member 275,Daniele House,25619661,Daniele@example.com,S61545571E,Member 330,Amanah Wormald,24146782,Amanah@example.com,S54496655D,Member 51,Ahmet Clayton,28774043,Ahmet@example.com,S18169803G,Member 973,Humzah Oconnell,13056807,Humzah@example.com,S14424551F,Legal Team Lead 942,Evelyn Diaz,98213577,Evelyn@example.com,S26703650H,Member 35,Lyndon Quintero,95675715,Lyndon@example.com,S27945662Q,Member 3,Mary Leblanc,12824994,Mary@example.com,S29355731A,Member 949,Isla-Mae Oneal,12596315,Isla-Mae@example.com,S97320122S,Member 857,Areeb Owens,30513526,Areeb@example.com,S28974480D,Member 790,Armani Puckett,49850449,Armani@example.com,S67377131F,Member 937,Elina Carrillo,78081057,Elina@example.com,S11717337G,Team Lead 724,Virgil Johnson,32233230,Virgil@example.com,S22908556G,Member 27,Humairaa Wheeler,13103223,Humairaa@example.com,S28630283H,Member 939,Shakir Key,57207760,Shakir@example.com,S31412213H,Member diff --git a/docs/team/WangZixin67.md b/docs/team/WangZixin67.md new file mode 100644 index 0000000000..363786a26c --- /dev/null +++ b/docs/team/WangZixin67.md @@ -0,0 +1,53 @@ +# Wang Zixin - Project Portfolio Page + +## Overview +I am part of a team of 4 software engineering students who are designing and implementing a +Command Line Interface (CLI) program which is called CCA manager. + +**Project: CCA Manager** +CCA Manager is a revolutionary tool that changes the way you can manage interest groups with unrivaled efficiency and simplicity. +Its lightweight Command Line Interface (CLI) allows administrators to breeze through tasks quickly and easily while offering powerful features to advanced users. + + +## Summary of Contributions +* **New features:** + * **Finance** + * `addLog`: Add a new finance log entry to the `FinanceList` + * `delLog`: Delete a finance log entry from the `FinanceList` + * `summary`: List all the finance log entries in `FinanceList` and output the total budget + * `changeLog`: Change the information of a finance log entry in `FinanceList` + * **Hr** + * `search`: Search for the members in `MemberList` whose information matches the condition provided by the user + * `list prof&admin`: List all the members who are professors or administrators + * `list connections`: List all the members who are speakers or alumni + + +* **Code contributed:** +[RepoSense link](https://nus-cs2113-ay2021s1.github.io/tp-dashboard/#breakdown=true&search=wangzixin67&sort=groupTitle&sortWithin=title&since=2020-09-27&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other) + + +* **Enhancements implemented:** + * Detect whether an email address is valid + * Detect whether the input budget number is valid + * Improve the search function to be able to search without limitation of capital letters + + +* **Contributions to documentation:** + * Added documentation for features `search`, `list prof&admin` and `list connections` in `hr` + * Added documentation for features `addLog`, `delLog`, `summary` and `changeLog` in `finance` + + +* **Contributions to the DG:** + * Added sequential diagrams, state diagrams and architecture diagram for `finance` feature and + `search`, `list prof&admin`, `list connection` in `hr` part + * Added feature description and design considerations for `finance` feature and `search`, `list prof&admin`, + `list connection` in `hr` part + + +* **Review/mentoring contributions:** + Increased the code simplicity. + + +* **Contributions beyond the project team:** + * Reported bugs and gave suggestions for fixing them. + * Helped find problems with unexecutable codes. diff --git a/docs/team/johndoe.md b/docs/team/johndoe.md deleted file mode 100644 index ab75b391b8..0000000000 --- a/docs/team/johndoe.md +++ /dev/null @@ -1,6 +0,0 @@ -# John Doe - Project Portfolio Page - -## Overview - - -### Summary of Contributions diff --git a/docs/team/johnnub.md b/docs/team/johnnub.md new file mode 100644 index 0000000000..dc80dd43f9 --- /dev/null +++ b/docs/team/johnnub.md @@ -0,0 +1,62 @@ +# John - Project Portfolio Page + +## Overview +This document covers my contribution to CCA Manager. CCA Manager is a revolutionary all in one tool conceptualized to deliver an efficient management system that integrates many different categories and aspects of management into one single easy to use program. +Instead of having dozens of text fields and hard to navigate menus, we made a focus on simplicity and efficiency to allow people to quickly get things done with CCA Manager rather than to have to figure out how to find a specific feature or spend hours managing the inputs in spreadsheet apps. + +### Summary of Contributions + +As one of the more experienced coders on the team, I had the responsibility of overseeing the development and structure of the high level aspects of the project, to ensure that the backend design and fundamentals of project base was built on a firm foundation that would allow for easy and quick development with minimal conflicting files. +Additionally, as the only member on the team doing Information Security, I was responsible for ensuring the architecture of the program was secure and not vulnerable to user exploits by minimizing the attack surface of the application. + + +User-Facing features developed + +* Bye command to terminate program +* Help command to display help information +* import command to import data from other csv files +* Relative Time feature for Events so that event dates can be defined by human friendly shortcuts like "next fri" or "next monday" instead of having to type the full date format + +Backend features developed + +* File Manager to load and save to CSV files without any third party library dependencies +* Parser to be able to read user input of any accepted format +* Sanitization whitelist to prevent potentially malicious input from causing undefined behavior in the program +* Ui framework for reading and printing user input +* Backend logic design from program boot to the command reading cycle +* Command framework to enable commands to be added by only creating one file and adding one line to register and activate it + +Additional contributions + +* Fuzzing inputs with common attack vectors to ensure consistent program behavior +* Application hardening to prevent unexpected crashes from user input +* Setting up of the team organization and repo +* Creation of deliverable builds (.jar files) +* Design and art for product logo + + +**Code Contributed** + +[RepoSense Link](https://nus-cs2113-ay2021s1.github.io/tp-dashboard/#breakdown=true&search=&sort=groupTitle&sortWithin=title&since=2020-09-27&timeframe=commit&mergegroup=&groupSelect=groupByRepos&checkedFileTypes=docs~functional-code~test-code~other&tabOpen=true&tabType=authorship&tabAuthor=JohnNub&tabRepo=AY2021S1-CS2113T-F14-1%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code~other) + +**Contributions to Development Guide** +* Introduction +* Feature Overview +* Instructions on how to run a terminal and navigate using the terminal +* Help Command +* Bye Command +* Import Command +* Glossary + + +**Contributions to Development Guide** +* Introduction +* Setting Up +* Input Parsing +* Commands +* Storage +* Target User Profile +* Value Proposition +* Non-Functional Requirements +* Glossary +* Instructions for Manual Testing diff --git a/docs/team/varsha3006.md b/docs/team/varsha3006.md new file mode 100644 index 0000000000..644c766e62 --- /dev/null +++ b/docs/team/varsha3006.md @@ -0,0 +1,62 @@ +# Varsha - Project Portfolio Page + +## Overview +I am part of a team of 4 software engineering students and we were tasked to design and implement a Command Line Interface (CLI) desktop application for our team project. +Our application is called **CCA Manager**. + +### About the project +CCA Manager is a revolutionary all-in-one management tool that changes the way +you can manage interest groups with unrivaled efficiency and simplicity. It has 3 features +in total, HR, Finance and Events. I was tasked with the Event Feature for our program. + +### Summary of Contributions +This section shows a brief summary of my contributions to the team project, including coding, documenting and other helpful contributions throughout the development of CCA Manager. + +#### Code Contributed + +[Reposense Link](https://nus-cs2113-ay2021s1.github.io/tp-dashboard/#breakdown=true&search=varsha3006) to access the code and documentation +that I have contributed in this project. + +#### Features Added + **New features:** \ +I added to the event feature in this project. Specifically `CommandEventAdd`, `CommandEventDel`, `CommandEventList` ,`CommandEventStatus`, `CommandSearchEvent` and `CommandEventCountdown` + +* The user will be able to use `event addEvent` to add a new event to the list.
+* The user may also use `event delEvent ` or `event delEvent all` command to delete an existing event or all events in the list.
+* To mark an event as completed, user can use `event done `
+* The user can use `event listEvent` to list all the events in the list.
+* The user can use `event search` to find events. They have the option to: + * Search by Event date
+ * Search by Event name
+ * The user can use `event countdown` to see number of days left to the upcoming event.
+ +**Enhancements Added:** +* User will not be able add an event that matches in name and date with an existing event. +* User can delete all events in the list with a confirmation message so that user doesn't accidentally delete all events data. +* User will be able to search by both date and name +* User will be able to see a countdown to upcoming events sorted by the earliest deadline first. + + +**Contributions to User Guide** +Created the first draft of the User Guide and provided a template for the rest to follow. +Section Added: +* Table of Contents +* About this User Guide +* Quick Start +* Glossary +* Contributed to Event features in Command Summary +* Event Features in UG: + * Add an event + * Delete an event + * Clear all events + * List events + * Countdown events + * Mark an event as completed + * Search for an Event + +**Contributions to Developer Guide:** +* All event features and descriptions under Section 3.4.1 to 3.4.5 (including all sequential diagrams, state diagrams and architecture diagram) +* User Stories +* Setting up +* Glossary +
diff --git a/docs/team/yeyutong811.md b/docs/team/yeyutong811.md new file mode 100644 index 0000000000..e852a27774 --- /dev/null +++ b/docs/team/yeyutong811.md @@ -0,0 +1,51 @@ +# Ye Yutong - Project Portfolio Page + +## Overview +I am part of a team of four students enrolled in the module CS2113T. We are tasked to design and implement a Command Line Interface (CLI) program, and our program is called CCA Manager. + +### About the project +**Project: CCA Manager** +CCA Manager is a revolutionary all-in-one management tool that changes the way +you can manage interest groups with unrivaled efficiency and simplicity. +There are 3 large features in this program: HR, Event, and Finance. + +### Summary of Contributions +Given below are my contributions to the project, which includes coding, documenting and other helpful contributions in the process of developing CCA Manager. + +#### Code Contributed +This is the link to view the code and documentations that I have contributed to this project: [RepoSense Link](https://nus-cs2113-ay2021s1.github.io/tp-dashboard/#breakdown=true&search=yeyutong811) + +#### Features Added + **New features:** + * **HR** + * `addMember`: Add Member to the list of members. + * `delMember`: Delete member from the list of members. + * `listMember`: Print the list of members. + * `changeInfo`: Change contacts and role of member in the list. + * **Event** + * `addAttendance`: Add a participant to an event in the list of events. + * `delAttendance`: Delete a participant from an event in the list of events. + * `listAttendance`: Prints the list of participants of an event in the list of events. + + **Enhancement Added:** + * Detect whether a phone number is valid. + * User cannot add a member with the member name that already exists in the member list. + * Input member name will be converted into title case to be stored. + * Update attendance rate when member is printed. + + **Contributions to User Guide** + * Added documentation for features `addMember`, `delMember`, `listMember` and `changeInfo` in `hr` + * Added documentation for features `addAttendance`, `delAttendance` and `listAttendance` in `event` + + **Contributions to Developer Guide:** + * Added sequential diagrams, state diagrams and architecture diagram for `hr` feature and + `addAttendance`, `delAttendance`, `listAttendance` in `event` part + * Added feature description and design considerations for `hr` feature and + `addAttendance`, `delAttendance`, `listAttendance` in `event` part + + **Contributions beyond the project team:** + * Reported bugs in the program for other teams. Examples: [1](https://github.com/AY2021S1-CS2113T-W12-3/tp/issues/186), [2](https://github.com/AY2021S1-CS2113T-W12-3/tp/issues/185), [3](https://github.com/AY2021S1-CS2113T-W12-3/tp/issues/183) + * Gave feedback to documentations of other teams. + + + diff --git a/docs/userGuidePic/FinanceChangeLog Outcome.png b/docs/userGuidePic/FinanceChangeLog Outcome.png new file mode 100644 index 0000000000..4126a5bd73 Binary files /dev/null and b/docs/userGuidePic/FinanceChangeLog Outcome.png differ diff --git a/docs/userGuidePic/addlog outcome1.png b/docs/userGuidePic/addlog outcome1.png new file mode 100644 index 0000000000..a33efaf11a Binary files /dev/null and b/docs/userGuidePic/addlog outcome1.png differ diff --git a/docs/userGuidePic/addlog outcome2.png b/docs/userGuidePic/addlog outcome2.png new file mode 100644 index 0000000000..1e9cb764bc Binary files /dev/null and b/docs/userGuidePic/addlog outcome2.png differ diff --git a/docs/userGuidePic/dellog outcome1.png b/docs/userGuidePic/dellog outcome1.png new file mode 100644 index 0000000000..03072d49cd Binary files /dev/null and b/docs/userGuidePic/dellog outcome1.png differ diff --git a/docs/userGuidePic/dellog outcome2.png b/docs/userGuidePic/dellog outcome2.png new file mode 100644 index 0000000000..1f7174445a Binary files /dev/null and b/docs/userGuidePic/dellog outcome2.png differ diff --git a/docs/userGuidePic/eventAdd1.png b/docs/userGuidePic/eventAdd1.png new file mode 100644 index 0000000000..bf7d67034d Binary files /dev/null and b/docs/userGuidePic/eventAdd1.png differ diff --git a/docs/userGuidePic/eventAddAttendanceCommand.PNG b/docs/userGuidePic/eventAddAttendanceCommand.PNG new file mode 100644 index 0000000000..dc73251cfa Binary files /dev/null and b/docs/userGuidePic/eventAddAttendanceCommand.PNG differ diff --git a/docs/userGuidePic/eventAddCommand.PNG b/docs/userGuidePic/eventAddCommand.PNG new file mode 100644 index 0000000000..eee2f48ece Binary files /dev/null and b/docs/userGuidePic/eventAddCommand.PNG differ diff --git a/docs/userGuidePic/eventCountdown.PNG b/docs/userGuidePic/eventCountdown.PNG new file mode 100644 index 0000000000..6dfd89441c Binary files /dev/null and b/docs/userGuidePic/eventCountdown.PNG differ diff --git a/docs/userGuidePic/eventDelEvent.PNG b/docs/userGuidePic/eventDelEvent.PNG new file mode 100644 index 0000000000..9193e98731 Binary files /dev/null and b/docs/userGuidePic/eventDelEvent.PNG differ diff --git a/docs/userGuidePic/eventDeleteAll.PNG b/docs/userGuidePic/eventDeleteAll.PNG new file mode 100644 index 0000000000..21e908d9f6 Binary files /dev/null and b/docs/userGuidePic/eventDeleteAll.PNG differ diff --git a/docs/userGuidePic/eventDeleteAttendanceCommand.PNG b/docs/userGuidePic/eventDeleteAttendanceCommand.PNG new file mode 100644 index 0000000000..e370bf3c11 Binary files /dev/null and b/docs/userGuidePic/eventDeleteAttendanceCommand.PNG differ diff --git a/docs/userGuidePic/eventListAttendanceCommand.PNG b/docs/userGuidePic/eventListAttendanceCommand.PNG new file mode 100644 index 0000000000..57940fe4a2 Binary files /dev/null and b/docs/userGuidePic/eventListAttendanceCommand.PNG differ diff --git a/docs/userGuidePic/eventListEvent.PNG b/docs/userGuidePic/eventListEvent.PNG new file mode 100644 index 0000000000..920354184f Binary files /dev/null and b/docs/userGuidePic/eventListEvent.PNG differ diff --git a/docs/userGuidePic/eventMarkAsDone.PNG b/docs/userGuidePic/eventMarkAsDone.PNG new file mode 100644 index 0000000000..60672fdbec Binary files /dev/null and b/docs/userGuidePic/eventMarkAsDone.PNG differ diff --git a/docs/userGuidePic/eventMarkAsDone1.PNG b/docs/userGuidePic/eventMarkAsDone1.PNG new file mode 100644 index 0000000000..2df5ffbaf5 Binary files /dev/null and b/docs/userGuidePic/eventMarkAsDone1.PNG differ diff --git a/docs/userGuidePic/eventSearch1.PNG b/docs/userGuidePic/eventSearch1.PNG new file mode 100644 index 0000000000..d286d9c366 Binary files /dev/null and b/docs/userGuidePic/eventSearch1.PNG differ diff --git a/docs/userGuidePic/eventSearchBydate.PNG b/docs/userGuidePic/eventSearchBydate.PNG new file mode 100644 index 0000000000..869ec6ab68 Binary files /dev/null and b/docs/userGuidePic/eventSearchBydate.PNG differ diff --git a/docs/userGuidePic/eventdel1.PNG b/docs/userGuidePic/eventdel1.PNG new file mode 100644 index 0000000000..1788b515a9 Binary files /dev/null and b/docs/userGuidePic/eventdel1.PNG differ diff --git a/docs/userGuidePic/helpCommand.PNG b/docs/userGuidePic/helpCommand.PNG new file mode 100644 index 0000000000..b93e70f966 Binary files /dev/null and b/docs/userGuidePic/helpCommand.PNG differ diff --git a/docs/userGuidePic/hrAddMemberCommand.PNG b/docs/userGuidePic/hrAddMemberCommand.PNG new file mode 100644 index 0000000000..8468157b5b Binary files /dev/null and b/docs/userGuidePic/hrAddMemberCommand.PNG differ diff --git a/docs/userGuidePic/hrAddMemberCommand2.PNG b/docs/userGuidePic/hrAddMemberCommand2.PNG new file mode 100644 index 0000000000..e789f2518f Binary files /dev/null and b/docs/userGuidePic/hrAddMemberCommand2.PNG differ diff --git a/docs/userGuidePic/hrChangeInfoCommand.PNG b/docs/userGuidePic/hrChangeInfoCommand.PNG new file mode 100644 index 0000000000..ff10db968f Binary files /dev/null and b/docs/userGuidePic/hrChangeInfoCommand.PNG differ diff --git a/docs/userGuidePic/hrDelMemberCommand.PNG b/docs/userGuidePic/hrDelMemberCommand.PNG new file mode 100644 index 0000000000..7094cec614 Binary files /dev/null and b/docs/userGuidePic/hrDelMemberCommand.PNG differ diff --git a/docs/userGuidePic/hrDelMemberCommand2.PNG b/docs/userGuidePic/hrDelMemberCommand2.PNG new file mode 100644 index 0000000000..b182107514 Binary files /dev/null and b/docs/userGuidePic/hrDelMemberCommand2.PNG differ diff --git a/docs/userGuidePic/hrListMemberCommand.PNG b/docs/userGuidePic/hrListMemberCommand.PNG new file mode 100644 index 0000000000..d9d6706cb5 Binary files /dev/null and b/docs/userGuidePic/hrListMemberCommand.PNG differ diff --git a/docs/userGuidePic/hrlistc.png b/docs/userGuidePic/hrlistc.png new file mode 100644 index 0000000000..b8c3ab78fd Binary files /dev/null and b/docs/userGuidePic/hrlistc.png differ diff --git a/docs/userGuidePic/hrprofadminoutcome.png b/docs/userGuidePic/hrprofadminoutcome.png new file mode 100644 index 0000000000..6ea9a009d0 Binary files /dev/null and b/docs/userGuidePic/hrprofadminoutcome.png differ diff --git a/docs/userGuidePic/hrsearchoutcome1.png b/docs/userGuidePic/hrsearchoutcome1.png new file mode 100644 index 0000000000..a9ca3ec362 Binary files /dev/null and b/docs/userGuidePic/hrsearchoutcome1.png differ diff --git a/docs/userGuidePic/hrsearchoutcome2.png b/docs/userGuidePic/hrsearchoutcome2.png new file mode 100644 index 0000000000..fab8eabfa3 Binary files /dev/null and b/docs/userGuidePic/hrsearchoutcome2.png differ diff --git a/docs/userGuidePic/import1.png b/docs/userGuidePic/import1.png new file mode 100644 index 0000000000..2a5777cf18 Binary files /dev/null and b/docs/userGuidePic/import1.png differ diff --git a/docs/userGuidePic/import2.png b/docs/userGuidePic/import2.png new file mode 100644 index 0000000000..b67b2d9a8b Binary files /dev/null and b/docs/userGuidePic/import2.png differ diff --git a/docs/userGuidePic/import3.png b/docs/userGuidePic/import3.png new file mode 100644 index 0000000000..f15b5d314f Binary files /dev/null and b/docs/userGuidePic/import3.png differ diff --git a/docs/userGuidePic/shorthandexample.PNG b/docs/userGuidePic/shorthandexample.PNG new file mode 100644 index 0000000000..a5c164283c Binary files /dev/null and b/docs/userGuidePic/shorthandexample.PNG differ diff --git a/docs/userGuidePic/summary outcome.png b/docs/userGuidePic/summary outcome.png new file mode 100644 index 0000000000..d20862487a Binary files /dev/null and b/docs/userGuidePic/summary outcome.png differ diff --git a/docs/userGuidePic/terminal.PNG b/docs/userGuidePic/terminal.PNG new file mode 100644 index 0000000000..ac04842de4 Binary files /dev/null and b/docs/userGuidePic/terminal.PNG differ diff --git a/docs/userGuidePic/welcomeMessage.PNG b/docs/userGuidePic/welcomeMessage.PNG new file mode 100644 index 0000000000..f963f408df Binary files /dev/null and b/docs/userGuidePic/welcomeMessage.PNG differ diff --git a/hs_err_pid28664.log b/hs_err_pid28664.log new file mode 100644 index 0000000000..a284b87db8 --- /dev/null +++ b/hs_err_pid28664.log @@ -0,0 +1,700 @@ +# +# There is insufficient memory for the Java Runtime Environment to continue. +# Native memory allocation (malloc) failed to allocate 1370736 bytes for Chunk::new +# Possible reasons: +# The system is out of physical RAM or swap space +# The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap +# Possible solutions: +# Reduce memory load on the system +# Increase physical memory or swap space +# Check if swap backing store is full +# Decrease Java heap size (-Xmx/-Xms) +# Decrease number of Java threads +# Decrease Java thread stack sizes (-Xss) +# Set larger code cache with -XX:ReservedCodeCacheSize= +# JVM is running with Unscaled Compressed Oops mode in which the Java heap is +# placed in the first 4GB address space. The Java Heap base address is the +# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress +# to set the Java Heap base and to place the Java Heap above 4GB virtual address. +# This output file may be truncated or incomplete. +# +# Out of Memory Error (./src/hotspot/share/memory/arena.cpp:197), pid=28664, tid=28172 +# +# JRE version: OpenJDK Runtime Environment Corretto-11.0.8.10.1 (11.0.8+10) (build 11.0.8+10-LTS) +# Java VM: OpenJDK 64-Bit Server VM Corretto-11.0.8.10.1 (11.0.8+10-LTS, mixed mode, tiered, compressed oops, g1 gc, windows-amd64) +# No core dump will be written. Minidumps are not enabled by default on client versions of Windows +# + +--------------- S U M M A R Y ------------ + +Command Line: --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED -XX:MaxMetaspaceSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xms256m -Xmx512m -Dfile.encoding=GBK -Duser.country=US -Duser.language=en -Duser.variant org.gradle.launcher.daemon.bootstrap.GradleDaemon 6.2 + +Host: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz, 8 cores, 7G, Windows 10 , 64 bit Build 18362 (10.0.18362.1110) +Time: Thu Oct 29 04:48:25 2020 Malay Peninsula Standard Time elapsed time: 14 seconds (0d 0h 0m 14s) + +--------------- T H R E A D --------------- + +Current thread (0x00000288c4e35000): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=28172, stack(0x000000af5b400000,0x000000af5b500000)] + + +Current CompileTask: +C2: 14628 2334 ! 4 java.net.URL:: (543 bytes) + +Stack: [0x000000af5b400000,0x000000af5b500000] +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [jvm.dll+0x5dfc8a] +V [jvm.dll+0x7179be] +V [jvm.dll+0x71908f] +V [jvm.dll+0x719753] +V [jvm.dll+0x240e48] +V [jvm.dll+0xb96ac] +V [jvm.dll+0xb9dac] +V [jvm.dll+0x346387] +V [jvm.dll+0x314173] +V [jvm.dll+0x3134ba] +V [jvm.dll+0x1fa925] +V [jvm.dll+0x1f9adf] +V [jvm.dll+0x17e4ec] +V [jvm.dll+0x208f27] +V [jvm.dll+0x20710b] +V [jvm.dll+0x6dc729] +V [jvm.dll+0x6d57d4] +V [jvm.dll+0x5debc6] +C [ucrtbase.dll+0x210b2] +C [KERNEL32.DLL+0x17c24] +C [ntdll.dll+0x6cea1] + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x00000288c9298070, length=28, elements={ +0x00000288a6eb1000, 0x00000288c44cd000, 0x00000288c44ce000, 0x00000288c4e31000, +0x00000288c4e33000, 0x00000288c4e35000, 0x00000288c4e38000, 0x00000288c4e3b000, +0x00000288c4fb3800, 0x00000288c4fda800, 0x00000288c5e2a000, 0x00000288c6724800, +0x00000288c5155800, 0x00000288c5166800, 0x00000288c5c80000, 0x00000288c5c7e000, +0x00000288c5c7f000, 0x00000288c5222800, 0x00000288c5223800, 0x00000288c5224800, +0x00000288c5927800, 0x00000288c592d000, 0x00000288c5928000, 0x00000288c592e000, +0x00000288c5929000, 0x00000288c592a000, 0x00000288c592a800, 0x00000288c592b800 +} + +Java Threads: ( => current thread ) + 0x00000288a6eb1000 JavaThread "main" [_thread_blocked, id=28568, stack(0x000000af5a900000,0x000000af5aa00000)] + 0x00000288c44cd000 JavaThread "Reference Handler" daemon [_thread_blocked, id=27472, stack(0x000000af5b000000,0x000000af5b100000)] + 0x00000288c44ce000 JavaThread "Finalizer" daemon [_thread_blocked, id=27996, stack(0x000000af5b100000,0x000000af5b200000)] + 0x00000288c4e31000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=21476, stack(0x000000af5b200000,0x000000af5b300000)] + 0x00000288c4e33000 JavaThread "Attach Listener" daemon [_thread_blocked, id=28536, stack(0x000000af5b300000,0x000000af5b400000)] +=>0x00000288c4e35000 JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=28172, stack(0x000000af5b400000,0x000000af5b500000)] + 0x00000288c4e38000 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=28092, stack(0x000000af5b500000,0x000000af5b600000)] + 0x00000288c4e3b000 JavaThread "Sweeper thread" daemon [_thread_blocked, id=19964, stack(0x000000af5b600000,0x000000af5b700000)] + 0x00000288c4fb3800 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=14200, stack(0x000000af5b700000,0x000000af5b800000)] + 0x00000288c4fda800 JavaThread "Service Thread" daemon [_thread_blocked, id=22044, stack(0x000000af5b800000,0x000000af5b900000)] + 0x00000288c5e2a000 JavaThread "Daemon health stats" [_thread_blocked, id=27164, stack(0x000000af5ba00000,0x000000af5bb00000)] + 0x00000288c6724800 JavaThread "Incoming local TCP Connector on port 52095" [_thread_in_native, id=19704, stack(0x000000af5c100000,0x000000af5c200000)] + 0x00000288c5155800 JavaThread "Daemon periodic checks" [_thread_blocked, id=10868, stack(0x000000af5c000000,0x000000af5c100000)] + 0x00000288c5166800 JavaThread "Daemon" [_thread_blocked, id=28476, stack(0x000000af5c200000,0x000000af5c300000)] + 0x00000288c5c80000 JavaThread "Handler for socket connection from /127.0.0.1:52095 to /127.0.0.1:52096" [_thread_in_native, id=26664, stack(0x000000af5c300000,0x000000af5c400000)] + 0x00000288c5c7e000 JavaThread "Cancel handler" [_thread_blocked, id=26640, stack(0x000000af5c400000,0x000000af5c500000)] + 0x00000288c5c7f000 JavaThread "Daemon worker" [_thread_in_vm, id=13476, stack(0x000000af5c500000,0x000000af5c600000)] + 0x00000288c5222800 JavaThread "Asynchronous log dispatcher for DefaultDaemonConnection: socket connection from /127.0.0.1:52095 to /127.0.0.1:52096" [_thread_blocked, id=23776, stack(0x000000af5c600000,0x000000af5c700000)] + 0x00000288c5223800 JavaThread "Stdin handler" [_thread_blocked, id=13492, stack(0x000000af5c700000,0x000000af5c800000)] + 0x00000288c5224800 JavaThread "Thread-8" [_thread_blocked, id=28324, stack(0x000000af5c800000,0x000000af5c900000)] + 0x00000288c5927800 JavaThread "Cache worker for journal cache (C:\Users\DELL\.gradle\caches\journal-1)" [_thread_blocked, id=28604, stack(0x000000af5ca00000,0x000000af5cb00000)] + 0x00000288c592d000 JavaThread "File lock request listener" [_thread_in_native, id=26336, stack(0x000000af5cb00000,0x000000af5cc00000)] + 0x00000288c5928000 JavaThread "Cache worker for file hash cache (C:\Users\DELL\.gradle\caches\6.2\fileHashes)" [_thread_blocked, id=27836, stack(0x000000af5cc00000,0x000000af5cd00000)] + 0x00000288c592e000 JavaThread "Cache worker for checksums cache (D:\CS2113T\tp\.gradle\checksums)" [_thread_blocked, id=25324, stack(0x000000af5cf00000,0x000000af5d000000)] + 0x00000288c5929000 JavaThread "Cache worker for file hash cache (D:\CS2113T\tp\.gradle\6.2\fileHashes)" [_thread_blocked, id=27920, stack(0x000000af5d000000,0x000000af5d100000)] + 0x00000288c592a000 JavaThread "Cache worker for cache directory md-supplier (C:\Users\DELL\.gradle\caches\6.2\md-supplier)" [_thread_blocked, id=26444, stack(0x000000af5d100000,0x000000af5d200000)] + 0x00000288c592a800 JavaThread "Cache worker for cache directory md-rule (C:\Users\DELL\.gradle\caches\6.2\md-rule)" [_thread_blocked, id=27864, stack(0x000000af5d200000,0x000000af5d300000)] + 0x00000288c592b800 JavaThread "Cache worker for execution history cache (C:\Users\DELL\.gradle\caches\6.2\executionHistory)" [_thread_blocked, id=26948, stack(0x000000af5d300000,0x000000af5d400000)] + +Other Threads: + 0x00000288c4499800 VMThread "VM Thread" [stack: 0x000000af5af00000,0x000000af5b000000] [id=28588] + 0x00000288c4fdb800 WatcherThread [stack: 0x000000af5b900000,0x000000af5ba00000] [id=28024] + 0x00000288a6ec8000 GCTaskThread "GC Thread#0" [stack: 0x000000af5aa00000,0x000000af5ab00000] [id=28580] + 0x00000288c5b08000 GCTaskThread "GC Thread#1" [stack: 0x000000af5bb00000,0x000000af5bc00000] [id=28096] + 0x00000288c5906800 GCTaskThread "GC Thread#2" [stack: 0x000000af5bc00000,0x000000af5bd00000] [id=28008] + 0x00000288c5907000 GCTaskThread "GC Thread#3" [stack: 0x000000af5bd00000,0x000000af5be00000] [id=12748] + 0x00000288c5b55000 GCTaskThread "GC Thread#4" [stack: 0x000000af5be00000,0x000000af5bf00000] [id=27512] + 0x00000288c5b56000 GCTaskThread "GC Thread#5" [stack: 0x000000af5bf00000,0x000000af5c000000] [id=16572] + 0x00000288c5370000 GCTaskThread "GC Thread#6" [stack: 0x000000af5c900000,0x000000af5ca00000] [id=28176] + 0x00000288c5366000 GCTaskThread "GC Thread#7" [stack: 0x000000af5cd00000,0x000000af5ce00000] [id=28180] + 0x00000288a6ed9000 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000af5ab00000,0x000000af5ac00000] [id=27820] + 0x00000288a6edc000 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000af5ac00000,0x000000af5ad00000] [id=27876] + 0x00000288c5ac4000 ConcurrentGCThread "G1 Conc#1" [stack: 0x000000af5ce00000,0x000000af5cf00000] [id=26360] + 0x00000288a6f7d800 ConcurrentGCThread "G1 Refine#0" [stack: 0x000000af5ad00000,0x000000af5ae00000] [id=28128] + 0x00000288a6f7e000 ConcurrentGCThread "G1 Young RemSet Sampling" [stack: 0x000000af5ae00000,0x000000af5af00000] [id=7920] + +Threads with active compile tasks: +C2 CompilerThread0 15676 2334 ! 4 java.net.URL:: (543 bytes) + +VM state:not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap address: 0x00000000e0000000, size: 512 MB, Compressed Oops mode: 32-bit +Narrow klass base: 0x0000000000000000, Narrow klass shift: 3 +Compressed class space size: 260046848 Address: 0x0000000100000000 + +Heap: + garbage-first heap total 262144K, used 60705K [0x00000000e0000000, 0x0000000100000000) + region size 1024K, 45 young (46080K), 2 survivors (2048K) + Metaspace used 31164K, capacity 31868K, committed 32048K, reserved 282624K + class space used 3977K, capacity 4173K, committed 4224K, reserved 253952K +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, A=archive, TAMS=top-at-mark-start (previous, next) +| 0|0x00000000e0000000, 0x00000000e0100000, 0x00000000e0100000|100%| O| |TAMS 0x00000000e0000000, 0x00000000e0000000| Untracked +| 1|0x00000000e0100000, 0x00000000e0200000, 0x00000000e0200000|100%| O| |TAMS 0x00000000e0100000, 0x00000000e0100000| Untracked +| 2|0x00000000e0200000, 0x00000000e0300000, 0x00000000e0300000|100%| O| |TAMS 0x00000000e0200000, 0x00000000e0200000| Untracked +| 3|0x00000000e0300000, 0x00000000e0400000, 0x00000000e0400000|100%|HS| |TAMS 0x00000000e0400000, 0x00000000e0300000| Complete +| 4|0x00000000e0400000, 0x00000000e0500000, 0x00000000e0500000|100%|HC| |TAMS 0x00000000e0500000, 0x00000000e0400000| Complete +| 5|0x00000000e0500000, 0x00000000e0600000, 0x00000000e0600000|100%|HC| |TAMS 0x00000000e0600000, 0x00000000e0500000| Complete +| 6|0x00000000e0600000, 0x00000000e0700000, 0x00000000e0700000|100%| O| |TAMS 0x00000000e0700000, 0x00000000e0600000| Untracked +| 7|0x00000000e0700000, 0x00000000e0800000, 0x00000000e0800000|100%| O| |TAMS 0x00000000e0800000, 0x00000000e0700000| Untracked +| 8|0x00000000e0800000, 0x00000000e0900000, 0x00000000e0900000|100%| O| |TAMS 0x00000000e0869e00, 0x00000000e0800000| Untracked +| 9|0x00000000e0900000, 0x00000000e0a00000, 0x00000000e0a00000|100%| O| |TAMS 0x00000000e0900000, 0x00000000e0900000| Untracked +| 10|0x00000000e0a00000, 0x00000000e0b00000, 0x00000000e0b00000|100%| O| |TAMS 0x00000000e0a00000, 0x00000000e0a00000| Untracked +| 11|0x00000000e0b00000, 0x00000000e0c00000, 0x00000000e0c00000|100%| O| |TAMS 0x00000000e0b00000, 0x00000000e0b00000| Untracked +| 12|0x00000000e0c00000, 0x00000000e0d00000, 0x00000000e0d00000|100%| O| |TAMS 0x00000000e0c00000, 0x00000000e0c00000| Untracked +| 13|0x00000000e0d00000, 0x00000000e0e00000, 0x00000000e0e00000|100%| O| |TAMS 0x00000000e0d00000, 0x00000000e0d00000| Untracked +| 14|0x00000000e0e00000, 0x00000000e0f00000, 0x00000000e0f00000|100%| O| |TAMS 0x00000000e0e00000, 0x00000000e0e00000| Untracked +| 15|0x00000000e0f00000, 0x00000000e0f6fa00, 0x00000000e1000000| 43%| O| |TAMS 0x00000000e0f00000, 0x00000000e0f00000| Untracked +| 16|0x00000000e1000000, 0x00000000e1000000, 0x00000000e1100000| 0%| F| |TAMS 0x00000000e1000000, 0x00000000e1000000| Untracked +| 17|0x00000000e1100000, 0x00000000e1100000, 0x00000000e1200000| 0%| F| |TAMS 0x00000000e1100000, 0x00000000e1100000| Untracked +| 18|0x00000000e1200000, 0x00000000e1200000, 0x00000000e1300000| 0%| F| |TAMS 0x00000000e1200000, 0x00000000e1200000| Untracked +| 19|0x00000000e1300000, 0x00000000e1300000, 0x00000000e1400000| 0%| F| |TAMS 0x00000000e1300000, 0x00000000e1300000| Untracked +| 20|0x00000000e1400000, 0x00000000e1400000, 0x00000000e1500000| 0%| F| |TAMS 0x00000000e1400000, 0x00000000e1400000| Untracked +| 21|0x00000000e1500000, 0x00000000e1500000, 0x00000000e1600000| 0%| F| |TAMS 0x00000000e1500000, 0x00000000e1500000| Untracked +| 22|0x00000000e1600000, 0x00000000e1600000, 0x00000000e1700000| 0%| F| |TAMS 0x00000000e1600000, 0x00000000e1600000| Untracked +| 23|0x00000000e1700000, 0x00000000e1700000, 0x00000000e1800000| 0%| F| |TAMS 0x00000000e1700000, 0x00000000e1700000| Untracked +| 24|0x00000000e1800000, 0x00000000e1800000, 0x00000000e1900000| 0%| F| |TAMS 0x00000000e1800000, 0x00000000e1800000| Untracked +| 25|0x00000000e1900000, 0x00000000e1900000, 0x00000000e1a00000| 0%| F| |TAMS 0x00000000e1900000, 0x00000000e1900000| Untracked +| 26|0x00000000e1a00000, 0x00000000e1a00000, 0x00000000e1b00000| 0%| F| |TAMS 0x00000000e1a00000, 0x00000000e1a00000| Untracked +| 27|0x00000000e1b00000, 0x00000000e1b00000, 0x00000000e1c00000| 0%| F| |TAMS 0x00000000e1b00000, 0x00000000e1b00000| Untracked +| 28|0x00000000e1c00000, 0x00000000e1c00000, 0x00000000e1d00000| 0%| F| |TAMS 0x00000000e1c00000, 0x00000000e1c00000| Untracked +| 29|0x00000000e1d00000, 0x00000000e1d00000, 0x00000000e1e00000| 0%| F| |TAMS 0x00000000e1d00000, 0x00000000e1d00000| Untracked +| 30|0x00000000e1e00000, 0x00000000e1e00000, 0x00000000e1f00000| 0%| F| |TAMS 0x00000000e1e00000, 0x00000000e1e00000| Untracked +| 31|0x00000000e1f00000, 0x00000000e1f00000, 0x00000000e2000000| 0%| F| |TAMS 0x00000000e1f00000, 0x00000000e1f00000| Untracked +| 32|0x00000000e2000000, 0x00000000e2000000, 0x00000000e2100000| 0%| F| |TAMS 0x00000000e2000000, 0x00000000e2000000| Untracked +| 33|0x00000000e2100000, 0x00000000e2100000, 0x00000000e2200000| 0%| F| |TAMS 0x00000000e2100000, 0x00000000e2100000| Untracked +| 34|0x00000000e2200000, 0x00000000e2200000, 0x00000000e2300000| 0%| F| |TAMS 0x00000000e2200000, 0x00000000e2200000| Untracked +| 35|0x00000000e2300000, 0x00000000e2300000, 0x00000000e2400000| 0%| F| |TAMS 0x00000000e2300000, 0x00000000e2300000| Untracked +| 36|0x00000000e2400000, 0x00000000e2400000, 0x00000000e2500000| 0%| F| |TAMS 0x00000000e2400000, 0x00000000e2400000| Untracked +| 37|0x00000000e2500000, 0x00000000e2500000, 0x00000000e2600000| 0%| F| |TAMS 0x00000000e2500000, 0x00000000e2500000| Untracked +| 38|0x00000000e2600000, 0x00000000e2600000, 0x00000000e2700000| 0%| F| |TAMS 0x00000000e2600000, 0x00000000e2600000| Untracked +| 39|0x00000000e2700000, 0x00000000e2700000, 0x00000000e2800000| 0%| F| |TAMS 0x00000000e2700000, 0x00000000e2700000| Untracked +| 40|0x00000000e2800000, 0x00000000e2800000, 0x00000000e2900000| 0%| F| |TAMS 0x00000000e2800000, 0x00000000e2800000| Untracked +| 41|0x00000000e2900000, 0x00000000e2900000, 0x00000000e2a00000| 0%| F| |TAMS 0x00000000e2900000, 0x00000000e2900000| Untracked +| 42|0x00000000e2a00000, 0x00000000e2a00000, 0x00000000e2b00000| 0%| F| |TAMS 0x00000000e2a00000, 0x00000000e2a00000| Untracked +| 43|0x00000000e2b00000, 0x00000000e2b00000, 0x00000000e2c00000| 0%| F| |TAMS 0x00000000e2b00000, 0x00000000e2b00000| Untracked +| 44|0x00000000e2c00000, 0x00000000e2c00000, 0x00000000e2d00000| 0%| F| |TAMS 0x00000000e2c00000, 0x00000000e2c00000| Untracked +| 45|0x00000000e2d00000, 0x00000000e2d00000, 0x00000000e2e00000| 0%| F| |TAMS 0x00000000e2d00000, 0x00000000e2d00000| Untracked +| 46|0x00000000e2e00000, 0x00000000e2e00000, 0x00000000e2f00000| 0%| F| |TAMS 0x00000000e2e00000, 0x00000000e2e00000| Untracked +| 47|0x00000000e2f00000, 0x00000000e2f00000, 0x00000000e3000000| 0%| F| |TAMS 0x00000000e2f00000, 0x00000000e2f00000| Untracked +| 48|0x00000000e3000000, 0x00000000e3000000, 0x00000000e3100000| 0%| F| |TAMS 0x00000000e3000000, 0x00000000e3000000| Untracked +| 49|0x00000000e3100000, 0x00000000e3100000, 0x00000000e3200000| 0%| F| |TAMS 0x00000000e3100000, 0x00000000e3100000| Untracked +| 50|0x00000000e3200000, 0x00000000e3200000, 0x00000000e3300000| 0%| F| |TAMS 0x00000000e3200000, 0x00000000e3200000| Untracked +| 51|0x00000000e3300000, 0x00000000e3300000, 0x00000000e3400000| 0%| F| |TAMS 0x00000000e3300000, 0x00000000e3300000| Untracked +| 52|0x00000000e3400000, 0x00000000e3400000, 0x00000000e3500000| 0%| F| |TAMS 0x00000000e3400000, 0x00000000e3400000| Untracked +| 53|0x00000000e3500000, 0x00000000e3500000, 0x00000000e3600000| 0%| F| |TAMS 0x00000000e3500000, 0x00000000e3500000| Untracked +| 54|0x00000000e3600000, 0x00000000e3600000, 0x00000000e3700000| 0%| F| |TAMS 0x00000000e3600000, 0x00000000e3600000| Untracked +| 55|0x00000000e3700000, 0x00000000e3700000, 0x00000000e3800000| 0%| F| |TAMS 0x00000000e3700000, 0x00000000e3700000| Untracked +| 56|0x00000000e3800000, 0x00000000e3800000, 0x00000000e3900000| 0%| F| |TAMS 0x00000000e3800000, 0x00000000e3800000| Untracked +| 57|0x00000000e3900000, 0x00000000e3900000, 0x00000000e3a00000| 0%| F| |TAMS 0x00000000e3900000, 0x00000000e3900000| Untracked +| 58|0x00000000e3a00000, 0x00000000e3a00000, 0x00000000e3b00000| 0%| F| |TAMS 0x00000000e3a00000, 0x00000000e3a00000| Untracked +| 59|0x00000000e3b00000, 0x00000000e3b00000, 0x00000000e3c00000| 0%| F| |TAMS 0x00000000e3b00000, 0x00000000e3b00000| Untracked +| 60|0x00000000e3c00000, 0x00000000e3c00000, 0x00000000e3d00000| 0%| F| |TAMS 0x00000000e3c00000, 0x00000000e3c00000| Untracked +| 61|0x00000000e3d00000, 0x00000000e3d00000, 0x00000000e3e00000| 0%| F| |TAMS 0x00000000e3d00000, 0x00000000e3d00000| Untracked +| 62|0x00000000e3e00000, 0x00000000e3e00000, 0x00000000e3f00000| 0%| F| |TAMS 0x00000000e3e00000, 0x00000000e3e00000| Untracked +| 63|0x00000000e3f00000, 0x00000000e3f00000, 0x00000000e4000000| 0%| F| |TAMS 0x00000000e3f00000, 0x00000000e3f00000| Untracked +| 64|0x00000000e4000000, 0x00000000e4000000, 0x00000000e4100000| 0%| F| |TAMS 0x00000000e4000000, 0x00000000e4000000| Untracked +| 65|0x00000000e4100000, 0x00000000e4100000, 0x00000000e4200000| 0%| F| |TAMS 0x00000000e4100000, 0x00000000e4100000| Untracked +| 66|0x00000000e4200000, 0x00000000e4200000, 0x00000000e4300000| 0%| F| |TAMS 0x00000000e4200000, 0x00000000e4200000| Untracked +| 67|0x00000000e4300000, 0x00000000e4300000, 0x00000000e4400000| 0%| F| |TAMS 0x00000000e4300000, 0x00000000e4300000| Untracked +| 68|0x00000000e4400000, 0x00000000e4400000, 0x00000000e4500000| 0%| F| |TAMS 0x00000000e4400000, 0x00000000e4400000| Untracked +| 69|0x00000000e4500000, 0x00000000e4500000, 0x00000000e4600000| 0%| F| |TAMS 0x00000000e4500000, 0x00000000e4500000| Untracked +| 70|0x00000000e4600000, 0x00000000e4600000, 0x00000000e4700000| 0%| F| |TAMS 0x00000000e4600000, 0x00000000e4600000| Untracked +| 71|0x00000000e4700000, 0x00000000e4700000, 0x00000000e4800000| 0%| F| |TAMS 0x00000000e4700000, 0x00000000e4700000| Untracked +| 72|0x00000000e4800000, 0x00000000e4800000, 0x00000000e4900000| 0%| F| |TAMS 0x00000000e4800000, 0x00000000e4800000| Untracked +| 73|0x00000000e4900000, 0x00000000e4900000, 0x00000000e4a00000| 0%| F| |TAMS 0x00000000e4900000, 0x00000000e4900000| Untracked +| 74|0x00000000e4a00000, 0x00000000e4a00000, 0x00000000e4b00000| 0%| F| |TAMS 0x00000000e4a00000, 0x00000000e4a00000| Untracked +| 75|0x00000000e4b00000, 0x00000000e4b00000, 0x00000000e4c00000| 0%| F| |TAMS 0x00000000e4b00000, 0x00000000e4b00000| Untracked +| 76|0x00000000e4c00000, 0x00000000e4c00000, 0x00000000e4d00000| 0%| F| |TAMS 0x00000000e4c00000, 0x00000000e4c00000| Untracked +| 77|0x00000000e4d00000, 0x00000000e4d00000, 0x00000000e4e00000| 0%| F| |TAMS 0x00000000e4d00000, 0x00000000e4d00000| Untracked +| 78|0x00000000e4e00000, 0x00000000e4e00000, 0x00000000e4f00000| 0%| F| |TAMS 0x00000000e4e00000, 0x00000000e4e00000| Untracked +| 79|0x00000000e4f00000, 0x00000000e4f00000, 0x00000000e5000000| 0%| F| |TAMS 0x00000000e4f00000, 0x00000000e4f00000| Untracked +| 80|0x00000000e5000000, 0x00000000e5000000, 0x00000000e5100000| 0%| F| |TAMS 0x00000000e5000000, 0x00000000e5000000| Untracked +| 81|0x00000000e5100000, 0x00000000e5100000, 0x00000000e5200000| 0%| F| |TAMS 0x00000000e5100000, 0x00000000e5100000| Untracked +| 82|0x00000000e5200000, 0x00000000e5200000, 0x00000000e5300000| 0%| F| |TAMS 0x00000000e5200000, 0x00000000e5200000| Untracked +| 83|0x00000000e5300000, 0x00000000e5300000, 0x00000000e5400000| 0%| F| |TAMS 0x00000000e5300000, 0x00000000e5300000| Untracked +| 84|0x00000000e5400000, 0x00000000e5400000, 0x00000000e5500000| 0%| F| |TAMS 0x00000000e5400000, 0x00000000e5400000| Untracked +| 85|0x00000000e5500000, 0x00000000e5500000, 0x00000000e5600000| 0%| F| |TAMS 0x00000000e5500000, 0x00000000e5500000| Untracked +| 86|0x00000000e5600000, 0x00000000e5600000, 0x00000000e5700000| 0%| F| |TAMS 0x00000000e5600000, 0x00000000e5600000| Untracked +| 87|0x00000000e5700000, 0x00000000e5700000, 0x00000000e5800000| 0%| F| |TAMS 0x00000000e5700000, 0x00000000e5700000| Untracked +| 88|0x00000000e5800000, 0x00000000e5800000, 0x00000000e5900000| 0%| F| |TAMS 0x00000000e5800000, 0x00000000e5800000| Untracked +| 89|0x00000000e5900000, 0x00000000e5900000, 0x00000000e5a00000| 0%| F| |TAMS 0x00000000e5900000, 0x00000000e5900000| Untracked +| 90|0x00000000e5a00000, 0x00000000e5a00000, 0x00000000e5b00000| 0%| F| |TAMS 0x00000000e5a00000, 0x00000000e5a00000| Untracked +| 91|0x00000000e5b00000, 0x00000000e5b00000, 0x00000000e5c00000| 0%| F| |TAMS 0x00000000e5b00000, 0x00000000e5b00000| Untracked +| 92|0x00000000e5c00000, 0x00000000e5c00000, 0x00000000e5d00000| 0%| F| |TAMS 0x00000000e5c00000, 0x00000000e5c00000| Untracked +| 93|0x00000000e5d00000, 0x00000000e5d00000, 0x00000000e5e00000| 0%| F| |TAMS 0x00000000e5d00000, 0x00000000e5d00000| Untracked +| 94|0x00000000e5e00000, 0x00000000e5e00000, 0x00000000e5f00000| 0%| F| |TAMS 0x00000000e5e00000, 0x00000000e5e00000| Untracked +| 95|0x00000000e5f00000, 0x00000000e5f00000, 0x00000000e6000000| 0%| F| |TAMS 0x00000000e5f00000, 0x00000000e5f00000| Untracked +| 96|0x00000000e6000000, 0x00000000e6000000, 0x00000000e6100000| 0%| F| |TAMS 0x00000000e6000000, 0x00000000e6000000| Untracked +| 97|0x00000000e6100000, 0x00000000e6100000, 0x00000000e6200000| 0%| F| |TAMS 0x00000000e6100000, 0x00000000e6100000| Untracked +| 98|0x00000000e6200000, 0x00000000e6200000, 0x00000000e6300000| 0%| F| |TAMS 0x00000000e6200000, 0x00000000e6200000| Untracked +| 99|0x00000000e6300000, 0x00000000e6300000, 0x00000000e6400000| 0%| F| |TAMS 0x00000000e6300000, 0x00000000e6300000| Untracked +| 100|0x00000000e6400000, 0x00000000e6400000, 0x00000000e6500000| 0%| F| |TAMS 0x00000000e6400000, 0x00000000e6400000| Untracked +| 101|0x00000000e6500000, 0x00000000e6500000, 0x00000000e6600000| 0%| F| |TAMS 0x00000000e6500000, 0x00000000e6500000| Untracked +| 102|0x00000000e6600000, 0x00000000e6600000, 0x00000000e6700000| 0%| F| |TAMS 0x00000000e6600000, 0x00000000e6600000| Untracked +| 103|0x00000000e6700000, 0x00000000e6700000, 0x00000000e6800000| 0%| F| |TAMS 0x00000000e6700000, 0x00000000e6700000| Untracked +| 104|0x00000000e6800000, 0x00000000e6800000, 0x00000000e6900000| 0%| F| |TAMS 0x00000000e6800000, 0x00000000e6800000| Untracked +| 105|0x00000000e6900000, 0x00000000e6900000, 0x00000000e6a00000| 0%| F| |TAMS 0x00000000e6900000, 0x00000000e6900000| Untracked +| 106|0x00000000e6a00000, 0x00000000e6a00000, 0x00000000e6b00000| 0%| F| |TAMS 0x00000000e6a00000, 0x00000000e6a00000| Untracked +| 107|0x00000000e6b00000, 0x00000000e6b00000, 0x00000000e6c00000| 0%| F| |TAMS 0x00000000e6b00000, 0x00000000e6b00000| Untracked +| 108|0x00000000e6c00000, 0x00000000e6c00000, 0x00000000e6d00000| 0%| F| |TAMS 0x00000000e6c00000, 0x00000000e6c00000| Untracked +| 109|0x00000000e6d00000, 0x00000000e6d00000, 0x00000000e6e00000| 0%| F| |TAMS 0x00000000e6d00000, 0x00000000e6d00000| Untracked +| 110|0x00000000e6e00000, 0x00000000e6e00000, 0x00000000e6f00000| 0%| F| |TAMS 0x00000000e6e00000, 0x00000000e6e00000| Untracked +| 111|0x00000000e6f00000, 0x00000000e6f00000, 0x00000000e7000000| 0%| F| |TAMS 0x00000000e6f00000, 0x00000000e6f00000| Untracked +| 112|0x00000000e7000000, 0x00000000e7000000, 0x00000000e7100000| 0%| F| |TAMS 0x00000000e7000000, 0x00000000e7000000| Untracked +| 113|0x00000000e7100000, 0x00000000e7100000, 0x00000000e7200000| 0%| F| |TAMS 0x00000000e7100000, 0x00000000e7100000| Untracked +| 114|0x00000000e7200000, 0x00000000e7200000, 0x00000000e7300000| 0%| F| |TAMS 0x00000000e7200000, 0x00000000e7200000| Untracked +| 115|0x00000000e7300000, 0x00000000e7300000, 0x00000000e7400000| 0%| F| |TAMS 0x00000000e7300000, 0x00000000e7300000| Untracked +| 116|0x00000000e7400000, 0x00000000e7400000, 0x00000000e7500000| 0%| F| |TAMS 0x00000000e7400000, 0x00000000e7400000| Untracked +| 117|0x00000000e7500000, 0x00000000e7500000, 0x00000000e7600000| 0%| F| |TAMS 0x00000000e7500000, 0x00000000e7500000| Untracked +| 118|0x00000000e7600000, 0x00000000e7600000, 0x00000000e7700000| 0%| F| |TAMS 0x00000000e7600000, 0x00000000e7600000| Untracked +| 119|0x00000000e7700000, 0x00000000e7700000, 0x00000000e7800000| 0%| F| |TAMS 0x00000000e7700000, 0x00000000e7700000| Untracked +| 120|0x00000000e7800000, 0x00000000e7800000, 0x00000000e7900000| 0%| F| |TAMS 0x00000000e7800000, 0x00000000e7800000| Untracked +| 121|0x00000000e7900000, 0x00000000e7900000, 0x00000000e7a00000| 0%| F| |TAMS 0x00000000e7900000, 0x00000000e7900000| Untracked +| 122|0x00000000e7a00000, 0x00000000e7a00000, 0x00000000e7b00000| 0%| F| |TAMS 0x00000000e7a00000, 0x00000000e7a00000| Untracked +| 123|0x00000000e7b00000, 0x00000000e7b00000, 0x00000000e7c00000| 0%| F| |TAMS 0x00000000e7b00000, 0x00000000e7b00000| Untracked +| 124|0x00000000e7c00000, 0x00000000e7c00000, 0x00000000e7d00000| 0%| F| |TAMS 0x00000000e7c00000, 0x00000000e7c00000| Untracked +| 125|0x00000000e7d00000, 0x00000000e7d00000, 0x00000000e7e00000| 0%| F| |TAMS 0x00000000e7d00000, 0x00000000e7d00000| Untracked +| 126|0x00000000e7e00000, 0x00000000e7e00000, 0x00000000e7f00000| 0%| F| |TAMS 0x00000000e7e00000, 0x00000000e7e00000| Untracked +| 127|0x00000000e7f00000, 0x00000000e7f00000, 0x00000000e8000000| 0%| F| |TAMS 0x00000000e7f00000, 0x00000000e7f00000| Untracked +| 128|0x00000000e8000000, 0x00000000e8000000, 0x00000000e8100000| 0%| F| |TAMS 0x00000000e8000000, 0x00000000e8000000| Untracked +| 129|0x00000000e8100000, 0x00000000e8100000, 0x00000000e8200000| 0%| F| |TAMS 0x00000000e8100000, 0x00000000e8100000| Untracked +| 130|0x00000000e8200000, 0x00000000e8200000, 0x00000000e8300000| 0%| F| |TAMS 0x00000000e8200000, 0x00000000e8200000| Untracked +| 131|0x00000000e8300000, 0x00000000e8300000, 0x00000000e8400000| 0%| F| |TAMS 0x00000000e8300000, 0x00000000e8300000| Untracked +| 132|0x00000000e8400000, 0x00000000e8400000, 0x00000000e8500000| 0%| F| |TAMS 0x00000000e8400000, 0x00000000e8400000| Untracked +| 133|0x00000000e8500000, 0x00000000e8500000, 0x00000000e8600000| 0%| F| |TAMS 0x00000000e8500000, 0x00000000e8500000| Untracked +| 134|0x00000000e8600000, 0x00000000e8600000, 0x00000000e8700000| 0%| F| |TAMS 0x00000000e8600000, 0x00000000e8600000| Untracked +| 135|0x00000000e8700000, 0x00000000e8700000, 0x00000000e8800000| 0%| F| |TAMS 0x00000000e8700000, 0x00000000e8700000| Untracked +| 136|0x00000000e8800000, 0x00000000e8800000, 0x00000000e8900000| 0%| F| |TAMS 0x00000000e8800000, 0x00000000e8800000| Untracked +| 137|0x00000000e8900000, 0x00000000e8900000, 0x00000000e8a00000| 0%| F| |TAMS 0x00000000e8900000, 0x00000000e8900000| Untracked +| 138|0x00000000e8a00000, 0x00000000e8a00000, 0x00000000e8b00000| 0%| F| |TAMS 0x00000000e8a00000, 0x00000000e8a00000| Untracked +| 139|0x00000000e8b00000, 0x00000000e8b00000, 0x00000000e8c00000| 0%| F| |TAMS 0x00000000e8b00000, 0x00000000e8b00000| Untracked +| 140|0x00000000e8c00000, 0x00000000e8c00000, 0x00000000e8d00000| 0%| F| |TAMS 0x00000000e8c00000, 0x00000000e8c00000| Untracked +| 141|0x00000000e8d00000, 0x00000000e8d00000, 0x00000000e8e00000| 0%| F| |TAMS 0x00000000e8d00000, 0x00000000e8d00000| Untracked +| 142|0x00000000e8e00000, 0x00000000e8e00000, 0x00000000e8f00000| 0%| F| |TAMS 0x00000000e8e00000, 0x00000000e8e00000| Untracked +| 143|0x00000000e8f00000, 0x00000000e8f00000, 0x00000000e9000000| 0%| F| |TAMS 0x00000000e8f00000, 0x00000000e8f00000| Untracked +| 144|0x00000000e9000000, 0x00000000e9000000, 0x00000000e9100000| 0%| F| |TAMS 0x00000000e9000000, 0x00000000e9000000| Untracked +| 145|0x00000000e9100000, 0x00000000e9100000, 0x00000000e9200000| 0%| F| |TAMS 0x00000000e9100000, 0x00000000e9100000| Untracked +| 146|0x00000000e9200000, 0x00000000e9200000, 0x00000000e9300000| 0%| F| |TAMS 0x00000000e9200000, 0x00000000e9200000| Untracked +| 147|0x00000000e9300000, 0x00000000e9300000, 0x00000000e9400000| 0%| F| |TAMS 0x00000000e9300000, 0x00000000e9300000| Untracked +| 148|0x00000000e9400000, 0x00000000e9400000, 0x00000000e9500000| 0%| F| |TAMS 0x00000000e9400000, 0x00000000e9400000| Untracked +| 149|0x00000000e9500000, 0x00000000e9500000, 0x00000000e9600000| 0%| F| |TAMS 0x00000000e9500000, 0x00000000e9500000| Untracked +| 150|0x00000000e9600000, 0x00000000e9600000, 0x00000000e9700000| 0%| F| |TAMS 0x00000000e9600000, 0x00000000e9600000| Untracked +| 151|0x00000000e9700000, 0x00000000e9700000, 0x00000000e9800000| 0%| F| |TAMS 0x00000000e9700000, 0x00000000e9700000| Untracked +| 152|0x00000000e9800000, 0x00000000e9800000, 0x00000000e9900000| 0%| F| |TAMS 0x00000000e9800000, 0x00000000e9800000| Untracked +| 153|0x00000000e9900000, 0x00000000e9900000, 0x00000000e9a00000| 0%| F| |TAMS 0x00000000e9900000, 0x00000000e9900000| Untracked +| 154|0x00000000e9a00000, 0x00000000e9a00000, 0x00000000e9b00000| 0%| F| |TAMS 0x00000000e9a00000, 0x00000000e9a00000| Untracked +| 155|0x00000000e9b00000, 0x00000000e9b00000, 0x00000000e9c00000| 0%| F| |TAMS 0x00000000e9b00000, 0x00000000e9b00000| Untracked +| 156|0x00000000e9c00000, 0x00000000e9c00000, 0x00000000e9d00000| 0%| F| |TAMS 0x00000000e9c00000, 0x00000000e9c00000| Untracked +| 157|0x00000000e9d00000, 0x00000000e9d00000, 0x00000000e9e00000| 0%| F| |TAMS 0x00000000e9d00000, 0x00000000e9d00000| Untracked +| 158|0x00000000e9e00000, 0x00000000e9e00000, 0x00000000e9f00000| 0%| F| |TAMS 0x00000000e9e00000, 0x00000000e9e00000| Untracked +| 159|0x00000000e9f00000, 0x00000000e9f00000, 0x00000000ea000000| 0%| F| |TAMS 0x00000000e9f00000, 0x00000000e9f00000| Untracked +| 160|0x00000000ea000000, 0x00000000ea000000, 0x00000000ea100000| 0%| F| |TAMS 0x00000000ea000000, 0x00000000ea000000| Untracked +| 161|0x00000000ea100000, 0x00000000ea100000, 0x00000000ea200000| 0%| F| |TAMS 0x00000000ea100000, 0x00000000ea100000| Untracked +| 162|0x00000000ea200000, 0x00000000ea200000, 0x00000000ea300000| 0%| F| |TAMS 0x00000000ea200000, 0x00000000ea200000| Untracked +| 163|0x00000000ea300000, 0x00000000ea300000, 0x00000000ea400000| 0%| F| |TAMS 0x00000000ea300000, 0x00000000ea300000| Untracked +| 164|0x00000000ea400000, 0x00000000ea400000, 0x00000000ea500000| 0%| F| |TAMS 0x00000000ea400000, 0x00000000ea400000| Untracked +| 165|0x00000000ea500000, 0x00000000ea500000, 0x00000000ea600000| 0%| F| |TAMS 0x00000000ea500000, 0x00000000ea500000| Untracked +| 166|0x00000000ea600000, 0x00000000ea600000, 0x00000000ea700000| 0%| F| |TAMS 0x00000000ea600000, 0x00000000ea600000| Untracked +| 167|0x00000000ea700000, 0x00000000ea700000, 0x00000000ea800000| 0%| F| |TAMS 0x00000000ea700000, 0x00000000ea700000| Untracked +| 168|0x00000000ea800000, 0x00000000ea800000, 0x00000000ea900000| 0%| F| |TAMS 0x00000000ea800000, 0x00000000ea800000| Untracked +| 169|0x00000000ea900000, 0x00000000ea900000, 0x00000000eaa00000| 0%| F| |TAMS 0x00000000ea900000, 0x00000000ea900000| Untracked +| 170|0x00000000eaa00000, 0x00000000eaa00000, 0x00000000eab00000| 0%| F| |TAMS 0x00000000eaa00000, 0x00000000eaa00000| Untracked +| 171|0x00000000eab00000, 0x00000000eab00000, 0x00000000eac00000| 0%| F| |TAMS 0x00000000eab00000, 0x00000000eab00000| Untracked +| 172|0x00000000eac00000, 0x00000000eac00000, 0x00000000ead00000| 0%| F| |TAMS 0x00000000eac00000, 0x00000000eac00000| Untracked +| 173|0x00000000ead00000, 0x00000000ead00000, 0x00000000eae00000| 0%| F| |TAMS 0x00000000ead00000, 0x00000000ead00000| Untracked +| 174|0x00000000eae00000, 0x00000000eae00000, 0x00000000eaf00000| 0%| F| |TAMS 0x00000000eae00000, 0x00000000eae00000| Untracked +| 175|0x00000000eaf00000, 0x00000000eaf00000, 0x00000000eb000000| 0%| F| |TAMS 0x00000000eaf00000, 0x00000000eaf00000| Untracked +| 176|0x00000000eb000000, 0x00000000eb000000, 0x00000000eb100000| 0%| F| |TAMS 0x00000000eb000000, 0x00000000eb000000| Untracked +| 177|0x00000000eb100000, 0x00000000eb100000, 0x00000000eb200000| 0%| F| |TAMS 0x00000000eb100000, 0x00000000eb100000| Untracked +| 178|0x00000000eb200000, 0x00000000eb200000, 0x00000000eb300000| 0%| F| |TAMS 0x00000000eb200000, 0x00000000eb200000| Untracked +| 179|0x00000000eb300000, 0x00000000eb300000, 0x00000000eb400000| 0%| F| |TAMS 0x00000000eb300000, 0x00000000eb300000| Untracked +| 180|0x00000000eb400000, 0x00000000eb400000, 0x00000000eb500000| 0%| F| |TAMS 0x00000000eb400000, 0x00000000eb400000| Untracked +| 181|0x00000000eb500000, 0x00000000eb500000, 0x00000000eb600000| 0%| F| |TAMS 0x00000000eb500000, 0x00000000eb500000| Untracked +| 182|0x00000000eb600000, 0x00000000eb600000, 0x00000000eb700000| 0%| F| |TAMS 0x00000000eb600000, 0x00000000eb600000| Untracked +| 183|0x00000000eb700000, 0x00000000eb700000, 0x00000000eb800000| 0%| F| |TAMS 0x00000000eb700000, 0x00000000eb700000| Untracked +| 184|0x00000000eb800000, 0x00000000eb800000, 0x00000000eb900000| 0%| F| |TAMS 0x00000000eb800000, 0x00000000eb800000| Untracked +| 185|0x00000000eb900000, 0x00000000eb900000, 0x00000000eba00000| 0%| F| |TAMS 0x00000000eb900000, 0x00000000eb900000| Untracked +| 186|0x00000000eba00000, 0x00000000eba00000, 0x00000000ebb00000| 0%| F| |TAMS 0x00000000eba00000, 0x00000000eba00000| Untracked +| 187|0x00000000ebb00000, 0x00000000ebb00000, 0x00000000ebc00000| 0%| F| |TAMS 0x00000000ebb00000, 0x00000000ebb00000| Untracked +| 188|0x00000000ebc00000, 0x00000000ebc00000, 0x00000000ebd00000| 0%| F| |TAMS 0x00000000ebc00000, 0x00000000ebc00000| Untracked +| 189|0x00000000ebd00000, 0x00000000ebd00000, 0x00000000ebe00000| 0%| F| |TAMS 0x00000000ebd00000, 0x00000000ebd00000| Untracked +| 190|0x00000000ebe00000, 0x00000000ebe00000, 0x00000000ebf00000| 0%| F| |TAMS 0x00000000ebe00000, 0x00000000ebe00000| Untracked +| 191|0x00000000ebf00000, 0x00000000ebf00000, 0x00000000ec000000| 0%| F| |TAMS 0x00000000ebf00000, 0x00000000ebf00000| Untracked +| 192|0x00000000ec000000, 0x00000000ec000000, 0x00000000ec100000| 0%| F| |TAMS 0x00000000ec000000, 0x00000000ec000000| Untracked +| 193|0x00000000ec100000, 0x00000000ec100000, 0x00000000ec200000| 0%| F| |TAMS 0x00000000ec100000, 0x00000000ec100000| Untracked +| 194|0x00000000ec200000, 0x00000000ec200000, 0x00000000ec300000| 0%| F| |TAMS 0x00000000ec200000, 0x00000000ec200000| Untracked +| 195|0x00000000ec300000, 0x00000000ec300000, 0x00000000ec400000| 0%| F| |TAMS 0x00000000ec300000, 0x00000000ec300000| Untracked +| 196|0x00000000ec400000, 0x00000000ec400000, 0x00000000ec500000| 0%| F| |TAMS 0x00000000ec400000, 0x00000000ec400000| Untracked +| 197|0x00000000ec500000, 0x00000000ec500000, 0x00000000ec600000| 0%| F| |TAMS 0x00000000ec500000, 0x00000000ec500000| Untracked +| 198|0x00000000ec600000, 0x00000000ec600000, 0x00000000ec700000| 0%| F| |TAMS 0x00000000ec600000, 0x00000000ec600000| Untracked +| 199|0x00000000ec700000, 0x00000000ec700000, 0x00000000ec800000| 0%| F| |TAMS 0x00000000ec700000, 0x00000000ec700000| Untracked +| 200|0x00000000ec800000, 0x00000000ec800000, 0x00000000ec900000| 0%| F| |TAMS 0x00000000ec800000, 0x00000000ec800000| Untracked +| 201|0x00000000ec900000, 0x00000000ec900000, 0x00000000eca00000| 0%| F| |TAMS 0x00000000ec900000, 0x00000000ec900000| Untracked +| 202|0x00000000eca00000, 0x00000000eca00000, 0x00000000ecb00000| 0%| F| |TAMS 0x00000000eca00000, 0x00000000eca00000| Untracked +| 203|0x00000000ecb00000, 0x00000000ecb00000, 0x00000000ecc00000| 0%| F| |TAMS 0x00000000ecb00000, 0x00000000ecb00000| Untracked +| 204|0x00000000ecc00000, 0x00000000ecc00000, 0x00000000ecd00000| 0%| F| |TAMS 0x00000000ecc00000, 0x00000000ecc00000| Untracked +| 205|0x00000000ecd00000, 0x00000000ecd00000, 0x00000000ece00000| 0%| F| |TAMS 0x00000000ecd00000, 0x00000000ecd00000| Untracked +| 206|0x00000000ece00000, 0x00000000ece00000, 0x00000000ecf00000| 0%| F| |TAMS 0x00000000ece00000, 0x00000000ece00000| Untracked +| 207|0x00000000ecf00000, 0x00000000ecf00000, 0x00000000ed000000| 0%| F| |TAMS 0x00000000ecf00000, 0x00000000ecf00000| Untracked +| 208|0x00000000ed000000, 0x00000000ed000000, 0x00000000ed100000| 0%| F| |TAMS 0x00000000ed000000, 0x00000000ed000000| Untracked +| 209|0x00000000ed100000, 0x00000000ed100000, 0x00000000ed200000| 0%| F| |TAMS 0x00000000ed100000, 0x00000000ed100000| Untracked +| 210|0x00000000ed200000, 0x00000000ed200000, 0x00000000ed300000| 0%| F| |TAMS 0x00000000ed200000, 0x00000000ed200000| Untracked +| 211|0x00000000ed300000, 0x00000000ed380800, 0x00000000ed400000| 50%| E| |TAMS 0x00000000ed300000, 0x00000000ed300000| Complete +| 212|0x00000000ed400000, 0x00000000ed500000, 0x00000000ed500000|100%| E|CS|TAMS 0x00000000ed400000, 0x00000000ed400000| Complete +| 213|0x00000000ed500000, 0x00000000ed600000, 0x00000000ed600000|100%| E|CS|TAMS 0x00000000ed500000, 0x00000000ed500000| Complete +| 214|0x00000000ed600000, 0x00000000ed700000, 0x00000000ed700000|100%| E|CS|TAMS 0x00000000ed600000, 0x00000000ed600000| Complete +| 215|0x00000000ed700000, 0x00000000ed800000, 0x00000000ed800000|100%| E|CS|TAMS 0x00000000ed700000, 0x00000000ed700000| Complete +| 216|0x00000000ed800000, 0x00000000ed900000, 0x00000000ed900000|100%| E|CS|TAMS 0x00000000ed800000, 0x00000000ed800000| Complete +| 217|0x00000000ed900000, 0x00000000eda00000, 0x00000000eda00000|100%| E|CS|TAMS 0x00000000ed900000, 0x00000000ed900000| Complete +| 218|0x00000000eda00000, 0x00000000edb00000, 0x00000000edb00000|100%| E|CS|TAMS 0x00000000eda00000, 0x00000000eda00000| Complete +| 219|0x00000000edb00000, 0x00000000edc00000, 0x00000000edc00000|100%| E|CS|TAMS 0x00000000edb00000, 0x00000000edb00000| Complete +| 220|0x00000000edc00000, 0x00000000edd00000, 0x00000000edd00000|100%| E|CS|TAMS 0x00000000edc00000, 0x00000000edc00000| Complete +| 221|0x00000000edd00000, 0x00000000ede00000, 0x00000000ede00000|100%| E|CS|TAMS 0x00000000edd00000, 0x00000000edd00000| Complete +| 222|0x00000000ede00000, 0x00000000edf00000, 0x00000000edf00000|100%| E|CS|TAMS 0x00000000ede00000, 0x00000000ede00000| Complete +| 223|0x00000000edf00000, 0x00000000ee000000, 0x00000000ee000000|100%| E|CS|TAMS 0x00000000edf00000, 0x00000000edf00000| Complete +| 224|0x00000000ee000000, 0x00000000ee100000, 0x00000000ee100000|100%| E|CS|TAMS 0x00000000ee000000, 0x00000000ee000000| Complete +| 225|0x00000000ee100000, 0x00000000ee1d8a30, 0x00000000ee200000| 84%| S|CS|TAMS 0x00000000ee100000, 0x00000000ee100000| Complete +| 226|0x00000000ee200000, 0x00000000ee300000, 0x00000000ee300000|100%| S|CS|TAMS 0x00000000ee200000, 0x00000000ee200000| Complete +| 227|0x00000000ee300000, 0x00000000ee400000, 0x00000000ee400000|100%| E|CS|TAMS 0x00000000ee300000, 0x00000000ee300000| Complete +| 228|0x00000000ee400000, 0x00000000ee500000, 0x00000000ee500000|100%| E|CS|TAMS 0x00000000ee400000, 0x00000000ee400000| Complete +| 229|0x00000000ee500000, 0x00000000ee600000, 0x00000000ee600000|100%| E|CS|TAMS 0x00000000ee500000, 0x00000000ee500000| Complete +| 230|0x00000000ee600000, 0x00000000ee700000, 0x00000000ee700000|100%| E|CS|TAMS 0x00000000ee600000, 0x00000000ee600000| Complete +| 231|0x00000000ee700000, 0x00000000ee800000, 0x00000000ee800000|100%| E|CS|TAMS 0x00000000ee700000, 0x00000000ee700000| Complete +| 232|0x00000000ee800000, 0x00000000ee900000, 0x00000000ee900000|100%| E|CS|TAMS 0x00000000ee800000, 0x00000000ee800000| Complete +| 233|0x00000000ee900000, 0x00000000eea00000, 0x00000000eea00000|100%| E|CS|TAMS 0x00000000ee900000, 0x00000000ee900000| Complete +| 234|0x00000000eea00000, 0x00000000eeb00000, 0x00000000eeb00000|100%| E|CS|TAMS 0x00000000eea00000, 0x00000000eea00000| Complete +| 235|0x00000000eeb00000, 0x00000000eec00000, 0x00000000eec00000|100%| E|CS|TAMS 0x00000000eeb00000, 0x00000000eeb00000| Complete +| 236|0x00000000eec00000, 0x00000000eed00000, 0x00000000eed00000|100%| E|CS|TAMS 0x00000000eec00000, 0x00000000eec00000| Complete +| 237|0x00000000eed00000, 0x00000000eee00000, 0x00000000eee00000|100%| E|CS|TAMS 0x00000000eed00000, 0x00000000eed00000| Complete +| 238|0x00000000eee00000, 0x00000000eef00000, 0x00000000eef00000|100%| E|CS|TAMS 0x00000000eee00000, 0x00000000eee00000| Complete +| 239|0x00000000eef00000, 0x00000000ef000000, 0x00000000ef000000|100%| E|CS|TAMS 0x00000000eef00000, 0x00000000eef00000| Complete +| 240|0x00000000ef000000, 0x00000000ef100000, 0x00000000ef100000|100%| E|CS|TAMS 0x00000000ef000000, 0x00000000ef000000| Complete +| 241|0x00000000ef100000, 0x00000000ef200000, 0x00000000ef200000|100%| E|CS|TAMS 0x00000000ef100000, 0x00000000ef100000| Complete +| 242|0x00000000ef200000, 0x00000000ef300000, 0x00000000ef300000|100%| E|CS|TAMS 0x00000000ef200000, 0x00000000ef200000| Complete +| 243|0x00000000ef300000, 0x00000000ef400000, 0x00000000ef400000|100%| E|CS|TAMS 0x00000000ef300000, 0x00000000ef300000| Complete +| 244|0x00000000ef400000, 0x00000000ef500000, 0x00000000ef500000|100%| E|CS|TAMS 0x00000000ef400000, 0x00000000ef400000| Complete +| 245|0x00000000ef500000, 0x00000000ef600000, 0x00000000ef600000|100%| E|CS|TAMS 0x00000000ef500000, 0x00000000ef500000| Complete +| 246|0x00000000ef600000, 0x00000000ef700000, 0x00000000ef700000|100%| E|CS|TAMS 0x00000000ef600000, 0x00000000ef600000| Complete +| 247|0x00000000ef700000, 0x00000000ef800000, 0x00000000ef800000|100%| E|CS|TAMS 0x00000000ef700000, 0x00000000ef700000| Complete +| 248|0x00000000ef800000, 0x00000000ef900000, 0x00000000ef900000|100%| E|CS|TAMS 0x00000000ef800000, 0x00000000ef800000| Complete +| 249|0x00000000ef900000, 0x00000000efa00000, 0x00000000efa00000|100%| E|CS|TAMS 0x00000000ef900000, 0x00000000ef900000| Complete +| 250|0x00000000efa00000, 0x00000000efb00000, 0x00000000efb00000|100%| E|CS|TAMS 0x00000000efa00000, 0x00000000efa00000| Complete +| 251|0x00000000efb00000, 0x00000000efc00000, 0x00000000efc00000|100%| E|CS|TAMS 0x00000000efb00000, 0x00000000efb00000| Complete +| 252|0x00000000efc00000, 0x00000000efd00000, 0x00000000efd00000|100%| E|CS|TAMS 0x00000000efc00000, 0x00000000efc00000| Complete +| 253|0x00000000efd00000, 0x00000000efe00000, 0x00000000efe00000|100%| E|CS|TAMS 0x00000000efd00000, 0x00000000efd00000| Complete +| 254|0x00000000efe00000, 0x00000000eff00000, 0x00000000eff00000|100%| E|CS|TAMS 0x00000000efe00000, 0x00000000efe00000| Complete +| 255|0x00000000eff00000, 0x00000000f0000000, 0x00000000f0000000|100%| E|CS|TAMS 0x00000000eff00000, 0x00000000eff00000| Complete + +Card table byte_map: [0x00000288c0820000,0x00000288c0920000] _byte_map_base: 0x00000288c0120000 + +Marking Bits (Prev, Next): (CMBitMap*) 0x00000288a6ed61b0, (CMBitMap*) 0x00000288a6ed6178 + Prev Bits: [0x00000288c1220000, 0x00000288c1a20000) + Next Bits: [0x00000288c0a20000, 0x00000288c1220000) + +Polling page: 0x00000288a6d30000 + +Metaspace: + +Usage: + Non-class: 27.11 MB capacity, 26.64 MB ( 98%) used, 428.70 KB ( 2%) free+waste, 54.19 KB ( <1%) overhead. + Class: 4.11 MB capacity, 3.89 MB ( 95%) used, 195.29 KB ( 5%) free+waste, 26.19 KB ( <1%) overhead. + Both: 31.21 MB capacity, 30.53 MB ( 98%) used, 623.98 KB ( 2%) free+waste, 80.38 KB ( <1%) overhead. + +Virtual space: + Non-class space: 28.00 MB reserved, 27.17 MB ( 97%) committed + Class space: 248.00 MB reserved, 4.13 MB ( 2%) committed + Both: 276.00 MB reserved, 31.30 MB ( 11%) committed + +Chunk freelists: + Non-Class: 1.00 KB + Class: 19.00 KB + Both: 20.00 KB + +MaxMetaspaceSize: 256.00 MB +CompressedClassSpaceSize: 248.00 MB + +CodeHeap 'non-profiled nmethods': size=120000Kb used=1014Kb max_used=1014Kb free=118985Kb + bounds [0x00000288b8790000, 0x00000288b8a00000, 0x00000288bfcc0000] +CodeHeap 'profiled nmethods': size=120000Kb used=4638Kb max_used=4638Kb free=115361Kb + bounds [0x00000288b1260000, 0x00000288b16f0000, 0x00000288b8790000] +CodeHeap 'non-nmethods': size=5760Kb used=1151Kb max_used=1175Kb free=4608Kb + bounds [0x00000288b0cc0000, 0x00000288b0f30000, 0x00000288b1260000] + total_blobs=2746 nmethods=2251 adapters=406 + compilation: enabled + stopped_count=0, restarted_count=0 + full_count=0 + +Compilation events (20 events): +Event: 14.402 Thread 0x00000288c4e38000 2369 3 jdk.internal.org.objectweb.asm.ClassWriter:: (117 bytes) +Event: 14.402 Thread 0x00000288c4e38000 nmethod 2369 0x00000288b16b3e10 code [0x00000288b16b40a0, 0x00000288b16b4cc8] +Event: 14.402 Thread 0x00000288c4e38000 2370 3 jdk.internal.org.objectweb.asm.ClassVisitor:: (7 bytes) +Event: 14.403 Thread 0x00000288c4e38000 nmethod 2370 0x00000288b16b4f90 code [0x00000288b16b5160, 0x00000288b16b5488] +Event: 14.405 Thread 0x00000288c4e38000 2373 3 java.util.regex.Pattern$BmpCharProperty::match (55 bytes) +Event: 14.405 Thread 0x00000288c4e38000 nmethod 2373 0x00000288b16b5590 code [0x00000288b16b5780, 0x00000288b16b5be8] +Event: 14.405 Thread 0x00000288c4e38000 2374 3 org.objectweb.asm.SymbolTable::addConstantNameAndType (137 bytes) +Event: 14.405 Thread 0x00000288c4e38000 nmethod 2374 0x00000288b16b5d90 code [0x00000288b16b6000, 0x00000288b16b67a8] +Event: 14.405 Thread 0x00000288c4e38000 2376 3 org.objectweb.asm.Frame::putAbstractType (379 bytes) +Event: 14.406 Thread 0x00000288c4e38000 nmethod 2376 0x00000288b16b6c10 code [0x00000288b16b7080, 0x00000288b16b89f8] +Event: 14.406 Thread 0x00000288c4e38000 2375 3 org.objectweb.asm.SymbolTable::hash (15 bytes) +Event: 14.406 Thread 0x00000288c4e38000 nmethod 2375 0x00000288b16b9510 code [0x00000288b16b96e0, 0x00000288b16b9858] +Event: 14.406 Thread 0x00000288c4e38000 2377 3 org.objectweb.asm.ByteVector::putByteArray (49 bytes) +Event: 14.406 Thread 0x00000288c4e38000 nmethod 2377 0x00000288b16b9990 code [0x00000288b16b9b60, 0x00000288b16b9e18] +Event: 14.406 Thread 0x00000288c4e38000 2378 3 jdk.internal.org.objectweb.asm.MethodWriter::put (1602 bytes) +Event: 14.409 Thread 0x00000288c4e38000 nmethod 2378 0x00000288b16b9f10 code [0x00000288b16ba800, 0x00000288b16bdb78] +Event: 14.418 Thread 0x00000288c4e38000 2380 3 jdk.internal.misc.Unsafe::weakCompareAndSetInt (11 bytes) +Event: 14.418 Thread 0x00000288c4e38000 nmethod 2380 0x00000288b16bf190 code [0x00000288b16bf340, 0x00000288b16bf458] +Event: 14.418 Thread 0x00000288c4e38000 2381 3 java.lang.Long::hashCode (8 bytes) +Event: 14.418 Thread 0x00000288c4e38000 nmethod 2381 0x00000288b16bf510 code [0x00000288b16bf6c0, 0x00000288b16bf7b8] + +GC Heap History (6 events): +Event: 0.947 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total 262144K, used 29696K [0x00000000e0000000, 0x0000000100000000) + region size 1024K, 24 young (24576K), 0 survivors (0K) + Metaspace used 10425K, capacity 10632K, committed 10752K, reserved 264192K + class space used 1098K, capacity 1164K, committed 1280K, reserved 253952K +} +Event: 0.953 GC heap after +{Heap after GC invocations=1 (full 0): + garbage-first heap total 262144K, used 8615K [0x00000000e0000000, 0x0000000100000000) + region size 1024K, 3 young (3072K), 3 survivors (3072K) + Metaspace used 10425K, capacity 10632K, committed 10752K, reserved 264192K + class space used 1098K, capacity 1164K, committed 1280K, reserved 253952K +} +Event: 10.667 GC heap before +{Heap before GC invocations=1 (full 0): + garbage-first heap total 262144K, used 89511K [0x00000000e0000000, 0x0000000100000000) + region size 1024K, 84 young (86016K), 3 survivors (3072K) + Metaspace used 20802K, capacity 21218K, committed 21296K, reserved 274432K + class space used 2493K, capacity 2660K, committed 2688K, reserved 253952K +} +Event: 10.690 GC heap after +{Heap after GC invocations=2 (full 0): + garbage-first heap total 262144K, used 15613K [0x00000000e0000000, 0x0000000100000000) + region size 1024K, 10 young (10240K), 10 survivors (10240K) + Metaspace used 20802K, capacity 21218K, committed 21296K, reserved 274432K + class space used 2493K, capacity 2660K, committed 2688K, reserved 253952K +} +Event: 13.672 GC heap before +{Heap before GC invocations=3 (full 0): + garbage-first heap total 262144K, used 45309K [0x00000000e0000000, 0x0000000100000000) + region size 1024K, 39 young (39936K), 10 survivors (10240K) + Metaspace used 24801K, capacity 25352K, committed 25520K, reserved 276480K + class space used 3129K, capacity 3321K, committed 3328K, reserved 253952K +} +Event: 13.678 GC heap after +{Heap after GC invocations=4 (full 0): + garbage-first heap total 262144K, used 17697K [0x00000000e0000000, 0x0000000100000000) + region size 1024K, 2 young (2048K), 2 survivors (2048K) + Metaspace used 24801K, capacity 25352K, committed 25520K, reserved 276480K + class space used 3129K, capacity 3321K, committed 3328K, reserved 253952K +} + +Deoptimization events (20 events): +Event: 11.292 Thread 0x00000288c5c7f000 Uncommon trap: trap_request=0xffffff4d fr.pc=0x00000288b87e44d0 relative=0x0000000000000a50 +Event: 11.292 Thread 0x00000288c5c7f000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000288b87e44d0 method=java.io.WinNTFileSystem.resolve(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; @ 156 c2 +Event: 11.292 Thread 0x00000288c5c7f000 DEOPT PACKING pc=0x00000288b87e44d0 sp=0x000000af5c5fac00 +Event: 11.292 Thread 0x00000288c5c7f000 DEOPT UNPACKING pc=0x00000288b0ce74af sp=0x000000af5c5faba0 mode 2 +Event: 11.492 Thread 0x00000288c5c7f000 Uncommon trap: trap_request=0xffffff4d fr.pc=0x00000288b87efbd4 relative=0x0000000000000094 +Event: 11.492 Thread 0x00000288c5c7f000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000288b87efbd4 method=java.util.LinkedHashMap.afterNodeInsertion(Z)V @ 1 c2 +Event: 11.492 Thread 0x00000288c5c7f000 DEOPT PACKING pc=0x00000288b87efbd4 sp=0x000000af5c5fa4f0 +Event: 11.492 Thread 0x00000288c5c7f000 DEOPT UNPACKING pc=0x00000288b0ce74af sp=0x000000af5c5fa470 mode 2 +Event: 11.538 Thread 0x00000288c5c7f000 Uncommon trap: trap_request=0xffffff4d fr.pc=0x00000288b87f897c relative=0x000000000000023c +Event: 11.538 Thread 0x00000288c5c7f000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000288b87f897c method=java.util.concurrent.ConcurrentHashMap.get(Ljava/lang/Object;)Ljava/lang/Object; @ 76 c2 +Event: 11.538 Thread 0x00000288c5c7f000 DEOPT PACKING pc=0x00000288b87f897c sp=0x000000af5c5f84d0 +Event: 11.538 Thread 0x00000288c5c7f000 DEOPT UNPACKING pc=0x00000288b0ce74af sp=0x000000af5c5f8438 mode 2 +Event: 13.893 Thread 0x00000288c5c7f000 Uncommon trap: trap_request=0xffffff4d fr.pc=0x00000288b87bd364 relative=0x0000000000000224 +Event: 13.893 Thread 0x00000288c5c7f000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000288b87bd364 method=java.util.HashMap.hash(Ljava/lang/Object;)I @ 1 c2 +Event: 13.893 Thread 0x00000288c5c7f000 DEOPT PACKING pc=0x00000288b87bd364 sp=0x000000af5c5f8b60 +Event: 13.893 Thread 0x00000288c5c7f000 DEOPT UNPACKING pc=0x00000288b0ce74af sp=0x000000af5c5f8a98 mode 2 +Event: 14.377 Thread 0x00000288c5c7f000 Uncommon trap: trap_request=0xffffff4d fr.pc=0x00000288b887c184 relative=0x00000000000001a4 +Event: 14.377 Thread 0x00000288c5c7f000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000288b887c184 method=java.util.regex.Pattern$BmpCharProperty.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z @ 39 c2 +Event: 14.377 Thread 0x00000288c5c7f000 DEOPT PACKING pc=0x00000288b887c184 sp=0x000000af5c5f97d0 +Event: 14.377 Thread 0x00000288c5c7f000 DEOPT UNPACKING pc=0x00000288b0ce74af sp=0x000000af5c5f9780 mode 2 + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 10.316 Thread 0x00000288c5c7f000 Exception (0x00000000eb848828) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 10.782 Thread 0x00000288c5c7f000 Exception (0x00000000efdeef08) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 10.928 Thread 0x00000288c5c7f000 Exception (0x00000000ef9e2b80) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 10.929 Thread 0x00000288c5c7f000 Exception (0x00000000ef9f0ce8) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 10.929 Thread 0x00000288c5c7f000 Exception (0x00000000ef9f4468) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 839] +Event: 11.608 Thread 0x00000288c5c7f000 Exception (0x00000000ef0b6f48) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 13.151 Thread 0x00000288c5c7f000 Exception (0x00000000eecd3db8) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 13.321 Thread 0x00000288c5c7f000 Exception (0x00000000eeaa29a0) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 13.337 Thread 0x00000288c5c7f000 Exception (0x00000000ee9a4250) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 13.337 Thread 0x00000288c5c7f000 Exception (0x00000000ee9ac498) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 13.893 Thread 0x00000288c5c7f000 Implicit null exception at 0x00000288b87bd175 to 0x00000288b87bd354 +Event: 13.949 Thread 0x00000288c5c7f000 Exception (0x00000000ef46b9f8) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 13.950 Thread 0x00000288c5c7f000 Exception (0x00000000ef47c9d8) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 13.951 Thread 0x00000288c5c7f000 Exception (0x00000000ef481ac8) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 13.964 Thread 0x00000288c5c7f000 Exception (0x00000000ef370118) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 13.966 Thread 0x00000288c5c7f000 Exception (0x00000000ef382268) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 13.971 Thread 0x00000288c5c7f000 Exception (0x00000000ef3ecec8) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 14.401 Thread 0x00000288c5c7f000 Exception (0x00000000edfcd2a8) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 14.402 Thread 0x00000288c5c7f000 Exception (0x00000000edfd19f0) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 14.405 Thread 0x00000288c5c7f000 Exception (0x00000000ede365c0) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] + +Events (20 events): +Event: 14.418 loading class org/gradle/configuration/ConfigurationTargetIdentifier$Type done +Event: 14.418 loading class org/gradle/configuration/ApplyScriptPluginBuildOperationType$Details +Event: 14.418 loading class org/gradle/configuration/ApplyScriptPluginBuildOperationType$Details done +Event: 14.418 loading class org/gradle/tooling/internal/protocol/events/InternalPluginIdentifier +Event: 14.418 loading class org/gradle/tooling/internal/protocol/events/InternalPluginIdentifier done +Event: 14.418 loading class org/gradle/tooling/internal/provider/runner/PluginApplicationTracker +Event: 14.418 loading class org/gradle/tooling/internal/provider/runner/PluginApplicationTracker done +Event: 14.419 loading class org/gradle/configuration/InitScriptTarget +Event: 14.419 loading class org/gradle/configuration/InitScriptTarget done +Event: 14.419 loading class org/gradle/configuration/DefaultScriptTarget +Event: 14.419 loading class org/gradle/configuration/DefaultScriptTarget done +Event: 14.419 loading class org/gradle/groovy/scripts/DefaultScriptCompilerFactory$ScriptCompilerImpl +Event: 14.419 loading class org/gradle/groovy/scripts/DefaultScriptCompilerFactory$ScriptCompilerImpl done +Event: 14.419 loading class org/gradle/groovy/scripts/CachingScriptSource +Event: 14.419 loading class org/gradle/groovy/scripts/CachingScriptSource done +Event: 14.419 loading class org/gradle/groovy/scripts/DelegatingScriptSource +Event: 14.419 loading class org/gradle/groovy/scripts/DelegatingScriptSource done +Event: 14.419 loading class org/gradle/internal/resource/CachingTextResource +Event: 14.419 loading class org/gradle/internal/resource/CachingTextResource done +Event: 14.420 loading class java/io/StringReader + + +Dynamic libraries: +0x00007ff6c1270000 - 0x00007ff6c127d000 C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin\java.exe +0x00007ffee84e0000 - 0x00007ffee86d0000 C:\WINDOWS\SYSTEM32\ntdll.dll +0x00007ffee6590000 - 0x00007ffee6642000 C:\WINDOWS\System32\KERNEL32.DLL +0x00007ffee58c0000 - 0x00007ffee5b65000 C:\WINDOWS\System32\KERNELBASE.dll +0x00007ffee5590000 - 0x00007ffee568a000 C:\WINDOWS\System32\ucrtbase.dll +0x00007ffed8860000 - 0x00007ffed8877000 C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin\jli.dll +0x00007ffed7890000 - 0x00007ffed78a5000 C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin\VCRUNTIME140.dll +0x00007ffee6cb0000 - 0x00007ffee6e44000 C:\WINDOWS\System32\USER32.dll +0x00007ffee5b70000 - 0x00007ffee5b91000 C:\WINDOWS\System32\win32u.dll +0x00007ffedb410000 - 0x00007ffedb694000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.1139_none_9e7bf2d3e4605ac6\COMCTL32.dll +0x00007ffee7060000 - 0x00007ffee7086000 C:\WINDOWS\System32\GDI32.dll +0x00007ffee83f0000 - 0x00007ffee848e000 C:\WINDOWS\System32\msvcrt.dll +0x00007ffee63f0000 - 0x00007ffee6586000 C:\WINDOWS\System32\gdi32full.dll +0x00007ffee68c0000 - 0x00007ffee6bf5000 C:\WINDOWS\System32\combase.dll +0x00007ffee5490000 - 0x00007ffee552e000 C:\WINDOWS\System32\msvcp_win.dll +0x00007ffee6730000 - 0x00007ffee6850000 C:\WINDOWS\System32\RPCRT4.dll +0x00007ffee6370000 - 0x00007ffee63f0000 C:\WINDOWS\System32\bcryptPrimitives.dll +0x00007ffee71d0000 - 0x00007ffee71fe000 C:\WINDOWS\System32\IMM32.DLL +0x00007ffebc4b0000 - 0x00007ffebc54b000 C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin\msvcp140.dll +0x00007ffea4da0000 - 0x00007ffea585d000 C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin\server\jvm.dll +0x00007ffee7260000 - 0x00007ffee7303000 C:\WINDOWS\System32\ADVAPI32.dll +0x00007ffee6f00000 - 0x00007ffee6f97000 C:\WINDOWS\System32\sechost.dll +0x00007ffee6fa0000 - 0x00007ffee6fa8000 C:\WINDOWS\System32\PSAPI.DLL +0x00007ffedb100000 - 0x00007ffedb109000 C:\WINDOWS\SYSTEM32\WSOCK32.dll +0x00007ffee1e50000 - 0x00007ffee1e74000 C:\WINDOWS\SYSTEM32\WINMM.dll +0x00007ffee1600000 - 0x00007ffee160a000 C:\WINDOWS\SYSTEM32\VERSION.dll +0x00007ffee6850000 - 0x00007ffee68bf000 C:\WINDOWS\System32\WS2_32.dll +0x00007ffee1d90000 - 0x00007ffee1dbd000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll +0x00007ffee5ba0000 - 0x00007ffee5bea000 C:\WINDOWS\System32\cfgmgr32.dll +0x00007ffee5400000 - 0x00007ffee5411000 C:\WINDOWS\System32\kernel.appcore.dll +0x00007ffee2230000 - 0x00007ffee2240000 C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin\verify.dll +0x00007ffee3d30000 - 0x00007ffee3f24000 C:\WINDOWS\SYSTEM32\DBGHELP.DLL +0x00007ffedb0c0000 - 0x00007ffedb0ea000 C:\WINDOWS\SYSTEM32\dbgcore.DLL +0x00007ffecf040000 - 0x00007ffecf068000 C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin\java.dll +0x00007ffee15b0000 - 0x00007ffee15ba000 C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin\jimage.dll +0x00007ffed5920000 - 0x00007ffed5937000 C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin\zip.dll +0x00007ffee79f0000 - 0x00007ffee80d7000 C:\WINDOWS\System32\SHELL32.dll +0x00007ffee6c00000 - 0x00007ffee6ca9000 C:\WINDOWS\System32\shcore.dll +0x00007ffee5bf0000 - 0x00007ffee6370000 C:\WINDOWS\System32\windows.storage.dll +0x00007ffee53b0000 - 0x00007ffee53d3000 C:\WINDOWS\System32\profapi.dll +0x00007ffee5420000 - 0x00007ffee546a000 C:\WINDOWS\System32\powrprof.dll +0x00007ffee53a0000 - 0x00007ffee53b0000 C:\WINDOWS\System32\UMPDC.dll +0x00007ffee7200000 - 0x00007ffee7252000 C:\WINDOWS\System32\shlwapi.dll +0x00007ffee5470000 - 0x00007ffee5487000 C:\WINDOWS\System32\cryptsp.dll +0x00007ffecf020000 - 0x00007ffecf039000 C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin\net.dll +0x00007ffee01d0000 - 0x00007ffee02c0000 C:\WINDOWS\SYSTEM32\WINHTTP.dll +0x00007ffee4b90000 - 0x00007ffee4bf7000 C:\WINDOWS\system32\mswsock.dll +0x00007ffeca6b0000 - 0x00007ffeca6c2000 C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin\nio.dll +0x00007ffed5800000 - 0x00007ffed582a000 C:\Users\DELL\.gradle\native\36\windows-amd64\native-platform.dll +0x00007ffed8380000 - 0x00007ffed8389000 C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin\management.dll +0x00007ffed7810000 - 0x00007ffed781b000 C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin\management_ext.dll +0x00007ffee4700000 - 0x00007ffee4733000 C:\WINDOWS\system32\rsaenh.dll +0x00007ffee5740000 - 0x00007ffee5766000 C:\WINDOWS\System32\bcrypt.dll +0x00007ffee52c0000 - 0x00007ffee52e5000 C:\WINDOWS\SYSTEM32\USERENV.dll +0x00007ffee4d60000 - 0x00007ffee4d6c000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll +0x00007ffee48a0000 - 0x00007ffee48da000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL +0x00007ffee8490000 - 0x00007ffee8498000 C:\WINDOWS\System32\NSI.dll +0x00007ffedd630000 - 0x00007ffedd646000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL +0x00007ffede5c0000 - 0x00007ffede5dc000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL +0x00007ffee48e0000 - 0x00007ffee49ab000 C:\WINDOWS\SYSTEM32\DNSAPI.dll + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin;C:\WINDOWS\SYSTEM32;C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.1139_none_9e7bf2d3e4605ac6;C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin\server;C:\Users\DELL\.gradle\native\36\windows-amd64 + +VM Arguments: +jvm_args: --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED -XX:MaxMetaspaceSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xms256m -Xmx512m -Dfile.encoding=GBK -Duser.country=US -Duser.language=en -Duser.variant +java_command: org.gradle.launcher.daemon.bootstrap.GradleDaemon 6.2 +java_class_path (initial): C:\Users\DELL\.gradle\wrapper\dists\gradle-6.2-bin\6zaomcc3lf3gnwxgkllci1muk\gradle-6.2\lib\gradle-launcher-6.2.jar +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 4 {product} {ergonomic} + size_t CompressedClassSpaceSize = 260046848 {product} {ergonomic} + uint ConcGCThreads = 2 {product} {ergonomic} + uint G1ConcRefinementThreads = 8 {product} {ergonomic} + size_t G1HeapRegionSize = 1048576 {product} {ergonomic} + uintx GCDrainStackTargetSize = 64 {product} {ergonomic} + bool HeapDumpOnOutOfMemoryError = true {manageable} {command line} + size_t InitialHeapSize = 268435456 {product} {command line} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MaxHeapSize = 536870912 {product} {command line} + size_t MaxMetaspaceSize = 268435456 {product} {command line} + size_t MaxNewSize = 321912832 {product} {ergonomic} + size_t MinHeapDeltaBytes = 1048576 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 5836300 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122910970 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122910970 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + bool UseCompressedClassPointers = true {lp64_product} {ergonomic} + bool UseCompressedOops = true {lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags + #1: stderr all=off uptime,level,tags + +Environment Variables: +JAVA_HOME=C:\Program Files\Amazon Corretto\jdk11.0.8_10 +PATH=C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files\Amazon Corretto\jdk11.0.8_10\bin;C:\Python38\Scripts\;C:\Python38\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Bitvise SSH Client;C:\Program Files\Git\cmd;D:\NodeJS\;C:\ProgramData\chocolatey\bin;c:\WINDOWS\System32\WBem;C:\Program Files (x86)\Graphviz\bin\;C:\Users\DELL\Anaconda3\Library\mingw-w64\bin;C:\Users\DELL\Anaconda3;C:\Users\DELL\Anaconda3\Library\usr\bin;C:\Users\DELL\Anaconda3\Library\bin;C:\Users\DELL\Anaconda3\Scripts;C:\Users\DELL\AppData\Local\Programs\Python\Python37-32\Scripts\;C:\Users\DELL\AppData\Local\Programs\Python\Python37-32\;C:\Users\DELL\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\SSH Communications Security\SSH Secure Shell;C:\Users\DELL\AppData\Local\Programs\Microsoft VS Code\bin;D:\VSCode_config\mingw32\bin;C:\Users\DELL\AppData\Roaming\npm;C:\Program Files\JetBrains\IntelliJ IDEA 2020.1.1\bin;;C:\Program Files (x86)\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin;D:\Graphviz\bin +USERNAME=DELL +OS=Windows_NT +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel + + + +--------------- S Y S T E M --------------- + +OS: Windows 10 , 64 bit Build 18362 (10.0.18362.1110) +OS uptime: 1 days 0:31 hours + +CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx, fma + +Memory: 4k page, system-wide physical 8025M (406M free) +TotalPageFile size 32601M (AvailPageFile size 4M) +current process WorkingSet (physical memory assigned to process): 219M, peak: 219M +current process commit charge ("private bytes"): 417M, peak: 417M + +vm_info: OpenJDK 64-Bit Server VM (11.0.8+10-LTS) for windows-amd64 JRE (11.0.8+10-LTS), built on Jul 13 2020 00:42:50 by "Administrator" with MS VC++ 15.9 (VS2017) + +END. diff --git a/replay_pid28664.log b/replay_pid28664.log new file mode 100644 index 0000000000..709463b61c --- /dev/null +++ b/replay_pid28664.log @@ -0,0 +1,4980 @@ +JvmtiExport can_access_local_variables 0 +JvmtiExport can_hotswap_or_post_breakpoint 0 +JvmtiExport can_post_on_exceptions 0 +# 313 ciObject found +instanceKlass javax/script/Bindings +instanceKlass javax/script/ScriptContext +instanceKlass javax/script/ScriptEngineFactory +instanceKlass javax/script/ScriptEngine +instanceKlass java/time/zone/ZoneRules +instanceKlass java/time/chrono/Era +instanceKlass java/time/chrono/Chronology +instanceKlass java/time/format/DateTimeFormatter +instanceKlass java/time/temporal/ValueRange +instanceKlass java/time/temporal/TemporalQuery +instanceKlass java/time/MonthDay +instanceKlass java/time/LocalTime +instanceKlass java/time/YearMonth +instanceKlass java/time/OffsetDateTime +instanceKlass java/time/LocalDate +instanceKlass java/time/chrono/ChronoLocalDate +instanceKlass java/time/Year +instanceKlass java/time/Period +instanceKlass java/time/OffsetTime +instanceKlass java/time/LocalDateTime +instanceKlass java/time/chrono/ChronoLocalDateTime +instanceKlass java/time/ZonedDateTime +instanceKlass java/time/chrono/ChronoZonedDateTime +instanceKlass java/time/chrono/ChronoPeriod +instanceKlass java/time/temporal/TemporalField +instanceKlass org/codehaus/groovy/runtime/metaclass/MethodHelper +instanceKlass java/time/Instant +instanceKlass java/time/temporal/TemporalAdjuster +instanceKlass java/time/temporal/Temporal +instanceKlass java/time/temporal/TemporalAccessor +instanceKlass org/codehaus/groovy/jsr223/ScriptStaticExtensions +instanceKlass org/apache/groovy/datetime/extensions/DateTimeStaticExtensions +instanceKlass org/apache/groovy/dateutil/extensions/DateUtilStaticExtensions +instanceKlass org/codehaus/groovy/runtime/XmlGroovyMethods +instanceKlass org/codehaus/groovy/runtime/SwingGroovyMethods +instanceKlass org/apache/groovy/sql/extensions/SqlExtensions +instanceKlass org/codehaus/groovy/jsr223/ScriptExtensions +instanceKlass org/apache/groovy/datetime/extensions/DateTimeExtensions +instanceKlass org/apache/groovy/dateutil/extensions/DateUtilExtensions +instanceKlass org/codehaus/groovy/runtime/m12n/ExtensionModule +instanceKlass org/codehaus/groovy/runtime/m12n/PropertiesModuleFactory +instanceKlass org/codehaus/groovy/util/URLStreams +instanceKlass org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl$DefaultModuleListener +instanceKlass org/codehaus/groovy/runtime/m12n/ExtensionModuleScanner +instanceKlass java/util/ResourceBundle$CacheKey +instanceKlass java/time/ZoneId +instanceKlass org/codehaus/groovy/runtime/DefaultGroovyStaticMethods +instanceKlass java/util/stream/DoubleStream +instanceKlass java/util/function/ToDoubleFunction +instanceKlass java/util/stream/LongStream +instanceKlass java/util/function/ToLongFunction +instanceKlass java/util/function/ToIntFunction +instanceKlass org/codehaus/groovy/reflection/AccessPermissionChecker +instanceKlass org/codehaus/groovy/runtime/RangeInfo +instanceKlass org/codehaus/groovy/runtime/NumberAwareComparator +instanceKlass org/codehaus/groovy/runtime/EncodingGroovyMethods +instanceKlass java/lang/ProcessHandle +instanceKlass java/util/concurrent/CompletableFuture +instanceKlass java/util/concurrent/CompletionStage +instanceKlass java/lang/ProcessHandle$Info +instanceKlass org/codehaus/groovy/reflection/CachedClass$CachedMethodComparatorByName +instanceKlass java/lang/reflect/AccessibleObject$$Lambda$166 +instanceKlass org/codehaus/groovy/reflection/CachedMethod$MyComparator +instanceKlass org/codehaus/groovy/runtime/memoize/MemoizeCache +instanceKlass org/codehaus/groovy/reflection/CachedClass$3$1 +instanceKlass org/codehaus/groovy/reflection/stdclasses/CachedSAMClass$1 +instanceKlass java/util/stream/IntStream +instanceKlass org/codehaus/groovy/transform/trait/Traits$Implemented +instanceKlass org/codehaus/groovy/util/ReferenceType$HardRef +instanceKlass org/codehaus/groovy/util/ManagedReference +instanceKlass org/codehaus/groovy/reflection/ClassInfo$GlobalClassSet +instanceKlass org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods +instanceKlass org/codehaus/groovy/vmplugin/v7/Java7$1 +instanceKlass org/codehaus/groovy/runtime/DefaultGroovyMethodsSupport +instanceKlass groovyjarjarasm/asm/Opcodes +instanceKlass org/codehaus/groovy/ast/Variable +instanceKlass org/codehaus/groovy/vmplugin/v5/Java5 +instanceKlass org/codehaus/groovy/vmplugin/VMPlugin +instanceKlass org/codehaus/groovy/vmplugin/VMPluginFactory +instanceKlass org/codehaus/groovy/reflection/GroovyClassValue +instanceKlass org/codehaus/groovy/reflection/GroovyClassValueFactory +instanceKlass org/codehaus/groovy/reflection/ClassInfo$1 +instanceKlass org/codehaus/groovy/reflection/ClassInfo$Sentinel +instanceKlass org/codehaus/groovy/reflection/CachedClass +instanceKlass org/codehaus/groovy/reflection/GroovyClassValue$ComputeValue +instanceKlass org/codehaus/groovy/reflection/ClassInfo +instanceKlass org/codehaus/groovy/util/Finalizable +instanceKlass org/codehaus/groovy/util/ComplexKeyHashMap$Entry +instanceKlass org/codehaus/groovy/util/ComplexKeyHashMap$EntryIterator +instanceKlass org/codehaus/groovy/util/ComplexKeyHashMap +instanceKlass org/codehaus/groovy/reflection/ReflectionCache +instanceKlass groovy/lang/Buildable +instanceKlass java/lang/Process +instanceKlass groovy/lang/Writable +instanceKlass java/util/Timer +instanceKlass java/util/TimerTask +instanceKlass groovy/lang/MetaProperty +instanceKlass groovy/lang/ListWithDefault +instanceKlass groovy/lang/Range +instanceKlass groovy/util/BufferedIterator +instanceKlass java/util/BitSet +instanceKlass org/codehaus/groovy/reflection/GeneratedMetaMethod$DgmMethodRecord +instanceKlass groovy/lang/MetaClassRegistry$MetaClassCreationHandle +instanceKlass org/codehaus/groovy/runtime/m12n/ExtensionModuleRegistry +instanceKlass org/codehaus/groovy/util/Reference +instanceKlass org/codehaus/groovy/util/ReferenceManager +instanceKlass org/codehaus/groovy/util/ReferenceBundle +instanceKlass org/codehaus/groovy/util/ManagedConcurrentLinkedQueue +instanceKlass org/codehaus/groovy/util/FastArray +instanceKlass org/codehaus/groovy/reflection/ParameterTypes +instanceKlass groovy/lang/MetaClassRegistryChangeEventListener +instanceKlass java/util/EventListener +instanceKlass org/codehaus/groovy/runtime/m12n/ExtensionModuleScanner$ExtensionModuleListener +instanceKlass org/codehaus/groovy/runtime/metaclass/MetaClassRegistryImpl +instanceKlass org/codehaus/groovy/runtime/InvokerHelper +instanceKlass org/codehaus/groovy/runtime/callsite/AbstractCallSite +instanceKlass org/codehaus/groovy/runtime/callsite/CallSite +instanceKlass org/codehaus/groovy/runtime/callsite/CallSiteArray +instanceKlass com/google/common/collect/MapMakerInternalMap$AbstractStrongKeyEntry +instanceKlass com/google/common/collect/MapMakerInternalMap$WeakValueEntry +instanceKlass org/gradle/instantexecution/serialization/ClassLoaderRole +instanceKlass kotlin/Pair +instanceKlass com/google/common/collect/Multiset$Entry +instanceKlass com/google/common/collect/ObjectCountHashMap +instanceKlass org/gradle/api/internal/initialization/loadercache/DefaultClassLoaderCache$CachedClassLoader +instanceKlass org/gradle/api/internal/initialization/loadercache/DefaultClassLoaderCache$$Lambda$165 +instanceKlass org/gradle/groovy/scripts/internal/DefaultScriptCompilationHandler$ClassesDirCompiledScript$$Lambda$164 +instanceKlass org/gradle/configuration/DefaultScriptPluginFactory$ScriptPluginImpl$2 +instanceKlass org/gradle/groovy/scripts/internal/BuildScriptData +instanceKlass org/gradle/api/internal/initialization/ClassLoaderScopeIdentifier$Id +instanceKlass org/gradle/model/dsl/internal/transform/ClosureCreationInterceptingVerifier +instanceKlass org/gradle/groovy/scripts/internal/FactoryBackedCompileOperation +instanceKlass org/gradle/groovy/scripts/internal/BuildScriptTransformer$1 +instanceKlass org/gradle/groovy/scripts/internal/BuildScriptTransformer +instanceKlass org/gradle/api/internal/collections/IterationOrderRetainingSetElementSource$1 +instanceKlass org/gradle/api/internal/plugins/DefaultPluginManager$4 +instanceKlass org/gradle/api/plugins/AppliedPlugin +instanceKlass org/gradle/api/internal/plugins/ApplyPluginBuildOperationType$Result +instanceKlass org/gradle/api/internal/plugins/DefaultPluginManager +instanceKlass org/gradle/api/internal/plugins/ImperativeOnlyPluginTarget +instanceKlass org/gradle/api/internal/plugins/PluginTarget +instanceKlass org/gradle/groovy/scripts/internal/DefaultScriptRunnerFactory$ScriptRunnerImpl +instanceKlass org/gradle/groovy/scripts/internal/CrossBuildInMemoryCachingScriptClassCache$CachedCompiledScript +instanceKlass org/gradle/internal/classloader/ImplementationHashAware +instanceKlass org/gradle/groovy/scripts/internal/DefaultScriptCompilationHandler$ClassesDirCompiledScript +instanceKlass org/gradle/cache/internal/DefaultPersistentDirectoryCache$Initializer +instanceKlass org/objectweb/asm/Opcodes +instanceKlass org/gradle/groovy/scripts/internal/FileCacheBackedScriptClassCompiler$RemapBuildScriptsAction +instanceKlass org/gradle/groovy/scripts/internal/FileCacheBackedScriptClassCompiler$ProgressReportingInitializer +instanceKlass com/google/common/io/ByteArrayDataOutput +instanceKlass com/google/common/io/ByteArrayDataInput +instanceKlass com/google/common/io/ByteStreams +instanceKlass java/math/MutableBigInteger +instanceKlass org/gradle/internal/hash/HashValue +instanceKlass org/gradle/internal/hash/HashUtil +instanceKlass org/gradle/groovy/scripts/internal/ScriptCacheKey +instanceKlass org/gradle/groovy/scripts/internal/NoDataCompileOperation +instanceKlass com/google/common/collect/MapMakerInternalMap$StrongValueEntry +instanceKlass org/codehaus/groovy/control/CompilationUnit$SourceUnitOperation +instanceKlass org/codehaus/groovy/ast/GroovyCodeVisitor +instanceKlass org/gradle/plugin/use/internal/PluginUseScriptBlockMetadataCompiler +instanceKlass org/codehaus/groovy/ast/ASTNode +instanceKlass org/gradle/groovy/scripts/internal/InitialPassStatementTransformer +instanceKlass org/gradle/api/Script +instanceKlass org/gradle/internal/resource/CachingTextResource +instanceKlass org/gradle/groovy/scripts/DelegatingScriptSource +instanceKlass org/gradle/groovy/scripts/DefaultScriptCompilerFactory$ScriptCompilerImpl +instanceKlass org/gradle/configuration/DefaultScriptTarget +instanceKlass org/gradle/tooling/internal/provider/runner/PluginApplicationTracker$$Lambda$163 +instanceKlass org/gradle/configuration/BuildOperationScriptPlugin$OperationDetails +instanceKlass org/gradle/configuration/BuildOperationScriptPlugin$1$1 +instanceKlass org/gradle/configuration/internal/UserCodeApplicationId +instanceKlass org/gradle/configuration/BuildOperationScriptPlugin$1 +instanceKlass org/gradle/configuration/BuildOperationScriptPlugin$2 +instanceKlass org/gradle/configuration/ApplyScriptPluginBuildOperationType$Result +instanceKlass org/gradle/configuration/BuildOperationScriptPlugin +instanceKlass org/gradle/configuration/ScriptTarget +instanceKlass org/gradle/groovy/scripts/internal/CompileOperation +instanceKlass org/gradle/groovy/scripts/Transformer +instanceKlass org/gradle/groovy/scripts/internal/StatementTransformer +instanceKlass org/gradle/configuration/DefaultScriptPluginFactory$ScriptPluginImpl +instanceKlass org/gradle/api/internal/attributes/DefaultOrderedDisambiguationRule +instanceKlass org/gradle/api/internal/attributes/DefaultOrderedCompatibilityRule +instanceKlass org/gradle/api/internal/attributes/AttributeMatchingRules +instanceKlass com/google/common/collect/Ordering +instanceKlass org/gradle/api/attributes/java/TargetJvmVersion +instanceKlass org/gradle/api/internal/artifacts/JavaEcosystemSupport$BundlingDisambiguationRules +instanceKlass org/gradle/api/internal/artifacts/JavaEcosystemSupport$BundlingCompatibilityRules +instanceKlass org/gradle/api/attributes/Bundling +instanceKlass org/gradle/api/internal/artifacts/JavaEcosystemSupport$$Lambda$162 +instanceKlass org/gradle/api/internal/artifacts/JavaEcosystemSupport$LibraryElementsDisambiguationRules +instanceKlass org/gradle/api/internal/artifacts/JavaEcosystemSupport$LibraryElementsCompatibilityRules +instanceKlass org/gradle/api/internal/artifacts/JavaEcosystemSupport$1 +instanceKlass org/gradle/api/internal/artifacts/JavaEcosystemSupport$UsageDisambiguationRules +instanceKlass org/gradle/api/internal/attributes/DefaultCompatibilityRuleChain$ExceptionHandler +instanceKlass org/gradle/api/internal/artifacts/JavaEcosystemSupport$UsageCompatibilityRules +instanceKlass org/gradle/api/attributes/AttributeCompatibilityRule +instanceKlass org/gradle/api/internal/artifacts/JavaEcosystemSupport +instanceKlass org/gradle/internal/locking/DefaultDependencyLockingHandler$$Lambda$161 +instanceKlass org/gradle/internal/locking/DefaultDependencyLockingHandler$$Lambda$160 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/internal/locking/DefaultDependencyLockingHandler +instanceKlass org/gradle/api/internal/artifacts/ivyservice/moduleconverter/DefaultRootComponentMetadataBuilder$MetadataHolder +instanceKlass org/gradle/internal/component/local/model/DefaultLocalComponentMetadata +instanceKlass org/gradle/api/internal/artifacts/configurations/MutationValidator +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/api/internal/artifacts/configurations/DefaultConfigurationContainer$$Lambda$159 +instanceKlass org/gradle/api/internal/artifacts/dsl/CapabilityNotationParserFactory +instanceKlass org/gradle/api/internal/file/copy/CopySpecSource +instanceKlass org/gradle/api/file/CopySpec +instanceKlass org/gradle/api/file/CopyProcessingSpec +instanceKlass org/gradle/api/file/ContentFilterable +instanceKlass org/gradle/api/file/CopySourceSpec +instanceKlass org/gradle/api/artifacts/ConfigurablePublishArtifact +instanceKlass org/gradle/api/artifacts/PublishArtifact +instanceKlass org/gradle/api/internal/artifacts/dsl/PublishArtifactNotationParserFactory +instanceKlass org/gradle/api/internal/collections/DefaultPendingSource +instanceKlass org/gradle/api/Namer$Comparator +instanceKlass org/gradle/api/internal/collections/SortedSetElementSource +instanceKlass org/gradle/api/artifacts/Configuration$Namer +instanceKlass org/gradle/api/internal/artifacts/ivyservice/moduleconverter/DefaultRootComponentMetadataBuilder +instanceKlass org/gradle/api/internal/artifacts/ivyservice/moduleconverter/RootComponentMetadataBuilder +instanceKlass org/gradle/api/internal/artifacts/configurations/ConfigurationInternal +instanceKlass org/gradle/internal/deprecation/DeprecatableConfiguration +instanceKlass org/gradle/api/reflect/TypeOf +instanceKlass org/gradle/api/internal/artifacts/configurations/ConfigurationsProvider +instanceKlass org/gradle/internal/locking/LockEntryFilterFactory$$Lambda$158 +instanceKlass org/gradle/internal/locking/LockEntryFilterFactory$$Lambda$157 +instanceKlass org/gradle/internal/locking/LockEntryFilterFactory +instanceKlass org/gradle/api/resources/TextResource +instanceKlass org/gradle/internal/locking/LockEntryFilter +instanceKlass org/gradle/internal/locking/LockFileReaderWriter +instanceKlass org/gradle/internal/locking/DependencyLockingNotationConverter +instanceKlass org/gradle/api/internal/artifacts/dsl/dependencies/DependencyLockingState +instanceKlass org/gradle/internal/locking/DefaultDependencyLockingProvider +instanceKlass org/gradle/api/internal/project/DefaultProjectAccessListener +instanceKlass org/gradle/api/internal/attributes/AttributeDesugaring +instanceKlass org/gradle/api/internal/artifacts/transform/Transformation +instanceKlass org/gradle/api/internal/artifacts/transform/ConsumerProvidedVariantFinder +instanceKlass org/gradle/api/internal/artifacts/transform/VariantSelector +instanceKlass org/gradle/api/internal/artifacts/transform/DefaultArtifactTransforms +instanceKlass org/gradle/api/internal/artifacts/ivyservice/DefaultConfigurationResolver$$Lambda$156 +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/artifact/DependencyArtifactsVisitor +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/oldresult/ResolvedConfigurationBuilder +instanceKlass org/gradle/api/internal/artifacts/ivyservice/DefaultConfigurationResolver +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/projectresult/ResolvedLocalComponentsResult +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ShortCircuitEmptyConfigurationResolver +instanceKlass org/gradle/api/artifacts/result/ResolutionResult +instanceKlass org/gradle/api/internal/artifacts/ResolveContext +instanceKlass org/gradle/api/artifacts/ResolvedConfiguration +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/artifact/VisitedArtifactSet +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ErrorHandlingConfigurationResolver +instanceKlass org/gradle/api/internal/artifacts/DefaultDependencyManagementServices$ArtifactTransformResolutionGradleUserHomeServices$2 +instanceKlass org/gradle/api/internal/artifacts/type/DefaultArtifactTypeRegistry +instanceKlass org/gradle/api/artifacts/transform/TransformParameters$None +instanceKlass org/gradle/api/artifacts/transform/TransformParameters +instanceKlass org/gradle/api/artifacts/transform/TransformAction +instanceKlass org/gradle/api/artifacts/transform/VariantTransform +instanceKlass org/gradle/api/artifacts/transform/TransformSpec +instanceKlass org/gradle/api/internal/artifacts/transform/DefaultVariantTransformRegistry$RecordingRegistration +instanceKlass org/gradle/api/internal/artifacts/transform/DefaultVariantTransformRegistry +instanceKlass org/gradle/api/internal/artifacts/ArtifactTransformRegistration +instanceKlass org/gradle/api/internal/artifacts/transform/Transformer +instanceKlass org/gradle/api/internal/tasks/properties/PropertyVisitor +instanceKlass org/gradle/api/internal/artifacts/transform/DefaultTransformationRegistrationFactory +instanceKlass org/gradle/api/tasks/ClasspathNormalizer +instanceKlass org/gradle/internal/fingerprint/AbsolutePathInputNormalizer +instanceKlass org/gradle/internal/fingerprint/IgnoredPathInputNormalizer +instanceKlass org/gradle/api/tasks/CompileClasspathNormalizer +instanceKlass org/gradle/internal/fingerprint/OutputNormalizer +instanceKlass org/gradle/internal/fingerprint/NameOnlyInputNormalizer +instanceKlass org/gradle/internal/fingerprint/RelativePathInputNormalizer +instanceKlass org/gradle/api/tasks/FileNormalizer +instanceKlass org/gradle/internal/fingerprint/impl/DefaultFileCollectionFingerprinterRegistry$1 +instanceKlass org/gradle/internal/fingerprint/impl/DefaultFileCollectionFingerprinterRegistry +instanceKlass com/google/common/collect/CompactHashMap$Itr +instanceKlass sun/reflect/annotation/AnnotationParser$$Lambda$155 +instanceKlass org/gradle/api/reflect/InjectionPointQualifier +instanceKlass org/gradle/api/internal/tasks/properties/AbstractPropertyNode +instanceKlass org/gradle/api/internal/tasks/properties/bean/RuntimeBeanNodeFactory +instanceKlass org/gradle/api/internal/tasks/properties/DefaultPropertyWalker +instanceKlass org/gradle/api/internal/tasks/properties/DefaultTypeMetadataStore$$Lambda$154 +instanceKlass org/gradle/api/internal/tasks/properties/DefaultTypeMetadataStore$$Lambda$153 +instanceKlass org/gradle/api/internal/tasks/properties/TypeMetadata +instanceKlass org/gradle/internal/reflect/PropertyMetadata +instanceKlass org/gradle/api/internal/tasks/properties/DefaultTypeMetadataStore +instanceKlass org/gradle/api/internal/tasks/properties/TypeMetadataStore +instanceKlass org/gradle/api/internal/tasks/properties/InspectionSchemeFactory$InspectionSchemeImpl +instanceKlass org/gradle/api/internal/tasks/properties/InspectionScheme +instanceKlass org/apache/commons/lang/builder/HashCodeBuilder +instanceKlass com/google/common/base/Equivalence$Wrapper +instanceKlass org/gradle/internal/reflect/Methods +instanceKlass org/gradle/internal/reflect/annotations/impl/DefaultTypeAnnotationMetadataStore$$Lambda$152 +instanceKlass java/util/Spliterators$IteratorSpliterator +instanceKlass org/gradle/internal/service/scopes/ExecutionGlobalServices$$Lambda$151 +instanceKlass org/gradle/internal/scripts/ScriptOrigin +instanceKlass org/gradle/api/reflect/HasPublicType +instanceKlass org/gradle/api/internal/PolymorphicDomainObjectContainerInternal +instanceKlass org/gradle/api/ExtensiblePolymorphicDomainObjectContainer +instanceKlass org/gradle/api/internal/rules/NamedDomainObjectFactoryRegistry +instanceKlass org/gradle/util/ConfigureUtil$WrappedConfigureAction +instanceKlass org/gradle/util/ClosureBackedAction +instanceKlass org/gradle/api/internal/AbstractTask +instanceKlass org/gradle/api/internal/TaskInternal +instanceKlass org/gradle/internal/reflect/AnnotationCategory$1 +instanceKlass org/gradle/api/tasks/Optional +instanceKlass org/gradle/api/tasks/PathSensitive +instanceKlass org/gradle/api/tasks/CompileClasspath +instanceKlass org/gradle/api/tasks/Classpath +instanceKlass org/gradle/api/tasks/SkipWhenEmpty +instanceKlass org/gradle/work/Incremental +instanceKlass org/gradle/api/artifacts/transform/CacheableTransform +instanceKlass org/gradle/api/tasks/CacheableTask +instanceKlass org/gradle/internal/reflect/annotations/impl/DefaultTypeAnnotationMetadataStore$1 +instanceKlass org/gradle/internal/reflect/TypeValidationContext +instanceKlass org/gradle/internal/reflect/annotations/TypeAnnotationMetadata +instanceKlass org/gradle/internal/reflect/annotations/impl/DefaultTypeAnnotationMetadataStore +instanceKlass org/gradle/internal/execution/caching/CachingDisabledReason +instanceKlass org/gradle/api/internal/artifacts/transform/CacheableInvocation +instanceKlass org/gradle/api/internal/artifacts/transform/TransformationWorkspaceIdentity +instanceKlass org/gradle/api/internal/artifacts/transform/DefaultTransformerInvocationFactory +instanceKlass org/gradle/api/internal/artifacts/DefaultDependencyManagementServices$ArtifactTransformResolutionGradleUserHomeServices$1 +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementGradleUserHomeScopeServices$3 +instanceKlass org/gradle/cache/internal/CompositeCleanupAction$ScopedCleanupAction +instanceKlass org/gradle/api/internal/artifacts/transform/TransformationWorkspaceProvider$TransformationWorkspace +instanceKlass org/gradle/internal/snapshot/impl/ImplementationSnapshotSerializer +instanceKlass org/gradle/internal/fingerprint/FileSystemLocationFingerprint +instanceKlass org/gradle/internal/execution/history/impl/FileCollectionFingerprintSerializer +instanceKlass org/gradle/internal/execution/history/AfterPreviousExecutionState +instanceKlass org/gradle/internal/execution/history/impl/DefaultExecutionHistoryStore +instanceKlass org/gradle/api/internal/changedetection/state/DefaultExecutionHistoryCacheAccess +instanceKlass org/gradle/internal/execution/steps/ExecuteStep +instanceKlass org/gradle/internal/execution/BeforeExecutionContext +instanceKlass org/gradle/internal/execution/AfterPreviousExecutionContext +instanceKlass org/gradle/internal/execution/steps/CleanupOutputsStep +instanceKlass org/gradle/internal/execution/steps/ResolveInputChangesStep +instanceKlass org/gradle/internal/execution/steps/TimeoutStep +instanceKlass org/gradle/internal/execution/steps/CatchExceptionStep +instanceKlass org/gradle/internal/execution/steps/CreateOutputsStep +instanceKlass org/gradle/internal/execution/CurrentSnapshotResult +instanceKlass org/gradle/internal/execution/steps/StoreExecutionStateStep +instanceKlass org/gradle/internal/execution/steps/BroadcastChangingOutputsStep +instanceKlass org/gradle/internal/execution/steps/SkipUpToDateStep +instanceKlass org/gradle/internal/execution/history/changes/IncrementalInputProperties +instanceKlass org/gradle/internal/execution/steps/ResolveChangesStep +instanceKlass org/gradle/api/internal/artifacts/DefaultDependencyManagementServices$NoOpCachingStateStep +instanceKlass org/gradle/internal/execution/history/BeforeExecutionState +instanceKlass org/gradle/internal/execution/history/ExecutionState +instanceKlass org/gradle/internal/execution/UnitOfWork$ImplementationVisitor +instanceKlass org/gradle/internal/execution/steps/BuildOperationStep +instanceKlass org/gradle/internal/execution/UnitOfWork$WorkValidationContext +instanceKlass org/gradle/internal/execution/steps/ValidateStep +instanceKlass org/gradle/internal/execution/steps/LoadExecutionStateStep +instanceKlass org/gradle/internal/execution/impl/DefaultWorkExecutor +instanceKlass org/gradle/internal/id/UniqueId$1 +instanceKlass com/google/common/base/Ascii +instanceKlass com/google/common/io/BaseEncoding$Alphabet +instanceKlass com/google/common/io/BaseEncoding +instanceKlass org/gradle/internal/id/UniqueId +instanceKlass org/gradle/internal/service/scopes/GlobalScopeServices$$Lambda$150 +instanceKlass org/gradle/internal/execution/timeout/Timeout +instanceKlass org/gradle/internal/execution/timeout/impl/DefaultTimeoutHandler +instanceKlass org/gradle/internal/fingerprint/overlap/impl/DefaultOverlappingOutputDetector +instanceKlass org/gradle/internal/execution/history/changes/ChangeVisitor +instanceKlass org/gradle/internal/execution/history/changes/InputFileChanges +instanceKlass org/gradle/internal/execution/history/changes/ExecutionStateChanges +instanceKlass org/gradle/internal/execution/history/changes/ChangeContainer +instanceKlass org/gradle/internal/execution/history/changes/DefaultExecutionStateChangeDetector +instanceKlass org/gradle/api/internal/attributes/DefaultDisambiguationRuleChain$ExceptionHandler +instanceKlass org/gradle/internal/action/DefaultConfigurableRules +instanceKlass org/gradle/internal/action/ConfigurableRules +instanceKlass org/gradle/api/artifacts/CacheableRule +instanceKlass org/gradle/internal/snapshot/impl/AbstractArraySnapshot +instanceKlass org/gradle/internal/snapshot/impl/AbstractScalarValueSnapshot +instanceKlass org/gradle/api/internal/DefaultActionConfiguration +instanceKlass org/gradle/internal/action/DefaultConfigurableRule +instanceKlass org/gradle/internal/action/InstantiatingAction +instanceKlass org/gradle/api/internal/artifacts/dsl/dependencies/PlatformSupport$$Lambda$149 +instanceKlass org/gradle/api/ActionConfiguration +instanceKlass org/gradle/api/internal/artifacts/dsl/dependencies/PlatformSupport$ComponentCategoryDisambiguationRule +instanceKlass org/gradle/api/internal/ReusableAction +instanceKlass org/gradle/api/attributes/AttributeDisambiguationRule +instanceKlass org/gradle/api/internal/attributes/MultipleCandidatesResult +instanceKlass org/gradle/api/attributes/MultipleCandidatesDetails +instanceKlass org/gradle/api/internal/attributes/DefaultDisambiguationRuleChain +instanceKlass org/gradle/api/HasImplicitReceiver +instanceKlass org/gradle/internal/action/InstantiatingAction$ExceptionHandler +instanceKlass org/gradle/api/internal/attributes/DefaultCompatibilityRuleChain +instanceKlass org/gradle/api/attributes/DisambiguationRuleChain +instanceKlass org/gradle/api/attributes/CompatibilityRuleChain +instanceKlass org/gradle/api/internal/attributes/DefaultAttributeMatchingStrategy +instanceKlass org/gradle/api/internal/attributes/CompatibilityCheckResult +instanceKlass org/gradle/api/attributes/CompatibilityCheckDetails +instanceKlass org/gradle/api/internal/attributes/DefaultAttributesSchema$MergedSchema +instanceKlass org/gradle/api/internal/attributes/DefaultAttributesSchema$DefaultAttributeMatcher +instanceKlass org/gradle/api/attributes/AttributeMatchingStrategy +instanceKlass org/gradle/internal/component/model/AttributeSelectionSchema +instanceKlass org/gradle/internal/component/model/AttributeMatcher +instanceKlass org/gradle/internal/component/model/ComponentAttributeMatcher +instanceKlass org/gradle/api/internal/attributes/DefaultAttributesSchema +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/store/StoreSet +instanceKlass org/gradle/api/internal/artifacts/DefaultGlobalDependencyResolutionRules$CompositeDependencySubstitutionRules +instanceKlass org/gradle/api/internal/artifacts/DefaultGlobalDependencyResolutionRules +instanceKlass org/gradle/api/artifacts/ComponentModuleMetadataDetails +instanceKlass org/gradle/api/artifacts/ComponentModuleMetadata +instanceKlass org/gradle/api/internal/artifacts/dsl/ComponentModuleMetadataContainer +instanceKlass org/gradle/api/internal/artifacts/dsl/ModuleReplacementsData +instanceKlass org/gradle/api/capabilities/CapabilitiesMetadata +instanceKlass org/gradle/internal/component/external/model/JavaEcosystemVariantDerivationStrategy +instanceKlass org/gradle/internal/component/external/model/NoOpDerivationStrategy +instanceKlass org/gradle/api/internal/artifacts/dsl/MetadataRuleWrapper +instanceKlass org/gradle/api/internal/notations/ComponentIdentifierParserFactory +instanceKlass org/gradle/api/artifacts/DependencyConstraintMetadata +instanceKlass org/gradle/internal/typeconversion/TypedNotationConverter +instanceKlass org/gradle/api/internal/notations/DependencyStringNotationConverter +instanceKlass org/gradle/api/internal/notations/DependencyMetadataNotationParser +instanceKlass org/gradle/api/internal/artifacts/repositories/resolver/AbstractDependencyImpl +instanceKlass org/gradle/api/artifacts/DirectDependencyMetadata +instanceKlass org/gradle/api/artifacts/DependencyMetadata +instanceKlass org/gradle/internal/typeconversion/NotationParserBuilder$LazyDisplayName +instanceKlass org/gradle/internal/typeconversion/CompositeNotationConverter +instanceKlass org/gradle/internal/typeconversion/JustReturningConverter +instanceKlass org/gradle/internal/rules/DefaultRuleActionAdapter +instanceKlass org/gradle/internal/rules/DefaultRuleActionValidator +instanceKlass org/gradle/api/artifacts/ivy/IvyModuleDescriptor +instanceKlass org/gradle/api/internal/artifacts/dsl/ComponentMetadataRuleContainer +instanceKlass org/gradle/internal/rules/RuleAction +instanceKlass org/gradle/internal/action/ConfigurableRule +instanceKlass org/gradle/api/internal/artifacts/dsl/SpecConfigurableRule +instanceKlass org/gradle/internal/rules/SpecRuleAction +instanceKlass org/gradle/internal/rules/RuleActionAdapter +instanceKlass org/gradle/internal/rules/RuleActionValidator +instanceKlass org/gradle/api/internal/artifacts/ComponentMetadataProcessor +instanceKlass org/gradle/api/attributes/Category$Impl +instanceKlass org/gradle/api/attributes/Category +instanceKlass org/gradle/internal/resolve/caching/ComponentMetadataRuleExecutor$$Lambda$148 +instanceKlass org/gradle/internal/resolve/caching/ComponentMetadataRuleExecutor$$Lambda$147 +instanceKlass org/gradle/internal/component/model/ConfigurationMetadata +instanceKlass org/gradle/api/artifacts/component/ModuleComponentIdentifier +instanceKlass org/gradle/internal/component/external/model/AbstractRealisedModuleResolveMetadataSerializationHelper +instanceKlass org/gradle/internal/component/external/model/VirtualComponentIdentifier +instanceKlass org/gradle/internal/component/external/model/ModuleComponentResolveMetadata +instanceKlass org/gradle/internal/resolve/caching/DesugaringAttributeContainerSerializer +instanceKlass org/gradle/api/internal/artifacts/DefaultArtifactRepositoryContainer$$Lambda$146 +instanceKlass org/gradle/api/internal/artifacts/DefaultArtifactRepositoryContainer$$Lambda$145 +instanceKlass org/gradle/api/internal/collections/AbstractIterationOrderRetainingElementSource$RealizedElementCollectionIterator +instanceKlass org/gradle/api/internal/DefaultNamedDomainObjectCollection$UnfilteredIndex +instanceKlass org/gradle/api/internal/DefaultDomainObjectCollection$1 +instanceKlass org/gradle/api/internal/collections/DefaultCollectionEventRegister +instanceKlass org/gradle/api/internal/collections/ListElementSource$1 +instanceKlass org/gradle/api/internal/provider/Collector +instanceKlass org/gradle/api/internal/collections/AbstractIterationOrderRetainingElementSource +instanceKlass org/gradle/api/internal/artifacts/DefaultArtifactRepositoryContainer$RepositoryNamer +instanceKlass org/gradle/internal/reflect/JavaReflectionUtil +instanceKlass java/lang/SafeVarargs +instanceKlass org/gradle/api/internal/collections/CollectionFilter +instanceKlass org/gradle/api/artifacts/repositories/RepositoryContentDescriptor +instanceKlass org/gradle/api/artifacts/repositories/InclusiveRepositoryContentDescriptor +instanceKlass org/gradle/api/artifacts/repositories/IvyArtifactRepository +instanceKlass org/gradle/api/artifacts/repositories/FlatDirectoryArtifactRepository +instanceKlass org/gradle/api/artifacts/repositories/MavenArtifactRepository +instanceKlass org/gradle/api/artifacts/repositories/MetadataSupplierAware +instanceKlass org/gradle/api/artifacts/repositories/AuthenticationSupported +instanceKlass org/gradle/api/artifacts/repositories/UrlArtifactRepository +instanceKlass org/gradle/api/internal/collections/IndexedElementSource +instanceKlass org/gradle/api/Rule +instanceKlass org/gradle/api/NamedDomainObjectCollectionSchema +instanceKlass org/gradle/api/NamedDomainObjectProvider +instanceKlass org/gradle/api/internal/DefaultNamedDomainObjectCollection$Index +instanceKlass org/gradle/api/internal/collections/ElementSource +instanceKlass org/gradle/api/internal/collections/PendingSource +instanceKlass org/gradle/api/internal/collections/CollectionEventRegister +instanceKlass org/gradle/api/internal/WithEstimatedSize +instanceKlass org/gradle/internal/metaobject/PropertyMixIn +instanceKlass org/gradle/internal/metaobject/MethodMixIn +instanceKlass org/gradle/internal/component/external/model/CapabilityInternal +instanceKlass org/gradle/api/capabilities/Capability +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/GradleModuleMetadataParser +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/strategy/MavenVersionSelectorScheme +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/PomParent +instanceKlass org/gradle/internal/component/external/model/ModuleDependencyMetadata +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/AbstractModuleDescriptorParser +instanceKlass org/gradle/api/artifacts/repositories/AuthenticationContainer +instanceKlass org/gradle/api/artifacts/repositories/ArtifactRepository +instanceKlass org/gradle/api/internal/artifacts/repositories/DefaultBaseRepositoryFactory +instanceKlass org/gradle/api/internal/DefaultCollectionCallbackActionDecorator +instanceKlass org/apache/ivy/util/MessageLogger +instanceKlass org/gradle/api/internal/artifacts/ivyservice/DefaultIvyContextManager +instanceKlass org/gradle/internal/resource/local/CompositeLocallyAvailableResourceFinder +instanceKlass org/gradle/api/internal/artifacts/repositories/resolver/AbstractResourcePattern +instanceKlass org/gradle/internal/resource/local/LocallyAvailableResourceFinderSearchableFileStoreAdapter$$Lambda$144 +instanceKlass org/gradle/internal/resource/local/ivy/LocallyAvailableResourceFinderFactory$$Lambda$143 +instanceKlass org/gradle/internal/resource/local/LocallyAvailableResourceCandidates +instanceKlass org/gradle/internal/resource/local/AbstractLocallyAvailableResourceFinder +instanceKlass org/gradle/internal/resource/local/ivy/LocallyAvailableResourceFinderFactory$$Lambda$142 +instanceKlass org/gradle/api/internal/artifacts/repositories/resolver/ResourcePattern +instanceKlass org/gradle/internal/resource/local/ivy/LocallyAvailableResourceFinderFactory +instanceKlass org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator$CurrentSystemPropertyAccess +instanceKlass org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator$SystemPropertyAccess +instanceKlass org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator +instanceKlass org/gradle/api/internal/artifacts/mvnsettings/DefaultMavenFileLocations +instanceKlass org/apache/maven/settings/io/SettingsReader +instanceKlass org/apache/maven/settings/building/SettingsBuildingRequest +instanceKlass org/gradle/api/internal/artifacts/mvnsettings/DefaultMavenSettingsProvider +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/graph/conflicts/CapabilitiesConflictHandler$Resolver +instanceKlass org/gradle/internal/resolve/resolver/ResolveContextToComponentResolver +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/graph/conflicts/CapabilitiesConflictHandler +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/graph/conflicts/ModuleConflictHandler +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/graph/conflicts/ConflictHandler +instanceKlass org/gradle/api/internal/artifacts/ivyservice/dependencysubstitution/DependencySubstitutionApplicator +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/graph/DependencyGraphVisitor +instanceKlass org/gradle/internal/resolve/resolver/ArtifactSelector +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/DefaultArtifactDependencyResolver +instanceKlass org/gradle/internal/resolve/caching/CrossBuildCachingRuleExecutor$AnySerializer +instanceKlass org/gradle/internal/resolve/caching/ComponentMetadataSupplierRuleExecutor$$Lambda$141 +instanceKlass org/gradle/internal/resolve/caching/CrossBuildCachingRuleExecutor$EntryValidator +instanceKlass org/gradle/internal/resolve/caching/CrossBuildCachingRuleExecutor$CachedEntry +instanceKlass org/gradle/api/internal/artifacts/configurations/dynamicversion/CachePolicy +instanceKlass org/gradle/internal/resolve/caching/ComponentMetadataSupplierRuleExecutor$$Lambda$140 +instanceKlass org/gradle/api/artifacts/ModuleVersionIdentifier +instanceKlass org/gradle/api/artifacts/ResolvedModuleVersion +instanceKlass org/gradle/internal/resolve/caching/ImplicitInputRecorder +instanceKlass org/gradle/api/artifacts/ComponentMetadata +instanceKlass org/gradle/api/internal/artifacts/ModuleVersionIdentifierSerializer +instanceKlass org/gradle/api/internal/artifacts/DefaultComponentSelectorConverter +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/excludes/simple/DefaultExcludeNothing +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/excludes/specs/ExcludeNothing +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/excludes/factories/Unions +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/excludes/factories/Intersections +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/excludes/specs/ModuleSetExclude +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/excludes/specs/GroupSetExclude +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/excludes/simple/DefaultExcludeFactory +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/excludes/factories/DelegatingExcludeFactory +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/excludes/factories/CachingExcludeFactory$ConcurrentCache +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/excludes/factories/CachingExcludeFactory$MergeCaches +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/excludes/specs/ExcludeSpec +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/excludes/factories/ExcludeFactory +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/ErrorHandlingArtifactResolver +instanceKlass org/gradle/api/internal/artifacts/component/DefaultComponentIdentifierFactory +instanceKlass org/gradle/api/artifacts/result/ResolvedArtifactResult +instanceKlass org/gradle/api/artifacts/result/ArtifactResult +instanceKlass org/gradle/api/internal/artifacts/MetadataResolutionContext +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/ConnectionFailureRepositoryBlacklister +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementBuildScopeServices$1 +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/verification/DependencyVerificationOverride$$Lambda$139 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/api/internal/artifacts/configurations/ResolutionStrategyInternal +instanceKlass org/gradle/api/artifacts/ResolutionStrategy +instanceKlass org/gradle/api/internal/artifacts/verification/signatures/SignatureVerificationService +instanceKlass org/gradle/security/internal/PublicKeyService +instanceKlass org/gradle/api/internal/artifacts/verification/signatures/DefaultSignatureVerificationServiceFactory +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/ResolvedArtifactCaches +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/artifacts/InMemoryModuleArtifactCache +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementBuildScopeServices$$Lambda$138 +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementBuildScopeServices$$Lambda$137 +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementBuildScopeServices$$Lambda$136 +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementBuildScopeServices$$Lambda$135 +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementBuildScopeServices$$Lambda$134 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/artifacts/DefaultModuleArtifactCache$CachedArtifactSerializer +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/artifacts/DefaultModuleArtifactCache$ArtifactAtRepositoryKeySerializer +instanceKlass org/gradle/api/internal/artifacts/metadata/ModuleComponentFileArtifactIdentifierSerializer +instanceKlass org/gradle/internal/component/local/model/ComponentFileArtifactIdentifier +instanceKlass org/gradle/api/internal/artifacts/metadata/ComponentArtifactIdentifierSerializer +instanceKlass org/gradle/internal/component/external/model/DefaultModuleComponentArtifactIdentifier +instanceKlass org/gradle/internal/DisplayName +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/artifacts/CachedArtifact +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/artifacts/CachedArtifacts +instanceKlass org/gradle/api/internal/artifacts/ModuleComponentSelectorSerializer +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/ModuleMetadataSerializer +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/ModuleMetadataStore +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/ModuleMetadataCache$CachedMetadata +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/dynamicversions/ModuleVersionsCache$CachedModuleVersionList +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementBuildScopeServices$$Lambda$133 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/internal/component/model/ModuleSources +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/ModuleDescriptorHashCodec +instanceKlass org/gradle/api/internal/artifacts/repositories/metadata/MetadataFileSource +instanceKlass org/gradle/internal/component/model/PersistentModuleSource +instanceKlass org/gradle/internal/component/model/ModuleSource +instanceKlass org/gradle/api/internal/artifacts/repositories/metadata/DefaultMetadataFileSourceCodec +instanceKlass org/gradle/internal/component/model/PersistentModuleSource$Codec +instanceKlass org/gradle/internal/component/external/descriptor/Configuration +instanceKlass org/gradle/internal/component/model/IvyArtifactName +instanceKlass org/gradle/internal/component/external/model/ivy/MutableIvyModuleResolveMetadata +instanceKlass org/gradle/api/internal/artifacts/repositories/metadata/DefaultMavenImmutableAttributesFactory +instanceKlass org/gradle/internal/component/external/model/maven/MutableMavenModuleResolveMetadata +instanceKlass org/gradle/internal/component/external/model/MutableModuleComponentResolveMetadata +instanceKlass org/gradle/api/internal/artifacts/repositories/metadata/MavenImmutableAttributesFactory +instanceKlass org/gradle/internal/component/external/model/PreferJavaRuntimeVariant$PreferJarVariantUsageDisambiguationRule +instanceKlass org/gradle/internal/component/external/model/PreferJavaRuntimeVariant$PreferRuntimeVariantUsageDisambiguationRule +instanceKlass org/gradle/api/attributes/LibraryElements$Impl +instanceKlass org/gradle/api/attributes/Usage$Impl +instanceKlass org/gradle/model/internal/inspect/FormattingValidationProblemCollector +instanceKlass org/gradle/api/attributes/LibraryElements +instanceKlass org/gradle/api/attributes/Usage +instanceKlass org/gradle/api/attributes/Attribute +instanceKlass org/gradle/api/internal/attributes/EmptySchema$DoNothingDisambiguationRule +instanceKlass org/gradle/api/internal/attributes/EmptySchema$DoNothingCompatibilityRule +instanceKlass org/gradle/api/internal/attributes/DisambiguationRule +instanceKlass org/gradle/api/internal/attributes/CompatibilityRule +instanceKlass org/gradle/api/internal/attributes/UsageCompatibilityHandler +instanceKlass org/gradle/api/internal/attributes/DefaultImmutableAttributes$1 +instanceKlass org/gradle/api/internal/attributes/DefaultImmutableAttributes +instanceKlass org/gradle/api/internal/attributes/AttributeValue +instanceKlass org/gradle/api/internal/attributes/ImmutableAttributes +instanceKlass org/gradle/api/internal/attributes/AttributeContainerInternal +instanceKlass org/gradle/api/internal/changedetection/state/AbiExtractingClasspathResourceHasher +instanceKlass org/gradle/api/internal/changedetection/state/SplitResourceSnapshotterCacheService +instanceKlass org/gradle/api/internal/tasks/properties/annotations/LocalStatePropertyAnnotationHandler +instanceKlass org/gradle/api/internal/tasks/properties/annotations/NoOpPropertyAnnotationHandler +instanceKlass org/gradle/api/internal/tasks/properties/annotations/DestroysPropertyAnnotationHandler +instanceKlass org/gradle/api/internal/tasks/properties/annotations/InputPropertyAnnotationHandler +instanceKlass org/gradle/api/internal/tasks/properties/PropertyValue +instanceKlass org/gradle/api/internal/tasks/properties/annotations/NestedBeanAnnotationHandler +instanceKlass org/gradle/api/internal/tasks/properties/annotations/AbstractOutputPropertyAnnotationHandler +instanceKlass org/gradle/api/internal/artifacts/transform/CacheableTransformTypeAnnotationHandler +instanceKlass org/gradle/api/internal/tasks/properties/annotations/CacheableTaskTypeAnnotationHandler +instanceKlass org/gradle/api/internal/resolve/LocalLibraryResolver +instanceKlass org/gradle/api/internal/resolve/VariantBinarySelector +instanceKlass org/gradle/api/internal/resolve/LocalLibraryMetaDataAdapter +instanceKlass org/gradle/api/internal/resolve/LibraryResolutionErrorMessageBuilder +instanceKlass org/gradle/model/internal/manage/schema/cache/ModelSchemaCache +instanceKlass org/gradle/model/internal/manage/schema/extract/DefaultModelSchemaStore +instanceKlass org/gradle/model/RuleSource +instanceKlass org/gradle/model/internal/manage/schema/extract/StructSchemaExtractionStrategySupport +instanceKlass org/gradle/model/internal/manage/schema/extract/JavaUtilCollectionStrategy +instanceKlass org/gradle/model/ModelMap +instanceKlass org/gradle/model/internal/manage/schema/extract/ModelMapStrategy +instanceKlass org/gradle/model/internal/manage/schema/extract/AbstractProxyClassGenerator +instanceKlass org/gradle/model/internal/manage/schema/extract/SpecializedMapStrategy +instanceKlass org/gradle/model/internal/type/WildcardTypeWrapper +instanceKlass org/gradle/model/internal/type/WildcardWrapper +instanceKlass org/gradle/model/internal/type/ParameterizedTypeWrapper +instanceKlass com/google/common/reflect/Types$ClassOwnership$1LocalClass +instanceKlass com/google/common/reflect/Types$ParameterizedTypeImpl +instanceKlass sun/reflect/generics/tree/ArrayTypeSignature +instanceKlass sun/reflect/generics/tree/IntSignature +instanceKlass com/google/common/reflect/Types$1 +instanceKlass com/google/common/reflect/Types +instanceKlass com/google/common/reflect/Types$WildcardTypeImpl +instanceKlass com/google/common/reflect/TypeResolver$TypeVariableKey +instanceKlass org/gradle/model/ModelSet +instanceKlass com/google/common/reflect/TypeVisitor +instanceKlass com/google/common/reflect/TypeResolver$TypeTable +instanceKlass com/google/common/reflect/TypeResolver +instanceKlass sun/reflect/generics/tree/VoidDescriptor +instanceKlass java/lang/Class$EnclosingMethodInfo +instanceKlass org/gradle/model/internal/type/ClassTypeWrapper +instanceKlass org/gradle/model/internal/type/TypeWrapper +instanceKlass org/gradle/model/internal/manage/schema/CompositeSchema +instanceKlass org/gradle/model/internal/manage/schema/AbstractModelSchema +instanceKlass org/gradle/model/internal/manage/schema/ManagedImplSchema +instanceKlass org/gradle/model/internal/type/ModelType +instanceKlass org/gradle/model/internal/manage/schema/extract/ModelSetStrategy +instanceKlass org/gradle/model/internal/manage/schema/extract/JdkValueTypeStrategy +instanceKlass org/gradle/model/internal/manage/schema/extract/EnumStrategy +instanceKlass org/gradle/model/internal/manage/schema/ModelSchema +instanceKlass org/gradle/model/internal/manage/schema/extract/PrimitiveStrategy +instanceKlass org/gradle/model/internal/manage/schema/extract/ModelSchemaExtractionContext +instanceKlass org/gradle/model/internal/manage/schema/extract/DefaultModelSchemaExtractor +instanceKlass org/gradle/api/internal/resolve/DefaultProjectModelResolver +instanceKlass org/gradle/vcs/internal/services/VersionControlServices$VcsResolverFactory +instanceKlass org/gradle/vcs/internal/resolver/OncePerBuildInvocationVcsVersionWorkingDirResolver +instanceKlass org/gradle/vcs/internal/resolver/DefaultVcsVersionWorkingDirResolver +instanceKlass org/gradle/vcs/internal/VersionRef +instanceKlass org/gradle/vcs/internal/resolver/PersistentVcsMetadataCache$VersionRefSerializer +instanceKlass org/gradle/cache/internal/CleanupActionFactory$BuildOperationCacheCleanupDecorator +instanceKlass org/gradle/internal/resource/local/ModificationTimeFileAccessTimeJournal +instanceKlass org/gradle/vcs/internal/VersionControlRepositoryConnection +instanceKlass org/gradle/vcs/internal/VersionControlSystem +instanceKlass org/gradle/vcs/internal/services/DefaultVersionControlRepositoryFactory +instanceKlass org/gradle/vcs/internal/DefaultVcsMappingsStore +instanceKlass org/gradle/vcs/internal/DefaultVcsMappingFactory +instanceKlass org/gradle/vcs/internal/services/DefaultVersionControlSpecFactory +instanceKlass org/gradle/internal/typeconversion/CharSequenceNotationConverter +instanceKlass org/gradle/api/internal/notations/ModuleIdentifierNotationConverter +instanceKlass org/gradle/api/internal/artifacts/ivyservice/projectmodule/DefaultLocalComponentRegistry +instanceKlass org/gradle/model/internal/manage/schema/extract/ModelSchemaAspect +instanceKlass org/gradle/platform/base/internal/VariantAspectExtractionStrategy +instanceKlass org/gradle/composite/internal/IncludedBuildDependencyMetadataBuilder +instanceKlass org/gradle/composite/internal/LocalComponentInAnotherBuildProvider +instanceKlass org/gradle/internal/component/local/model/LocalComponentMetadata +instanceKlass org/gradle/internal/component/model/ComponentResolveMetadata +instanceKlass org/gradle/internal/component/local/model/BuildableLocalComponentMetadata +instanceKlass org/gradle/api/internal/artifacts/ivyservice/projectmodule/DefaultProjectLocalComponentProvider +instanceKlass org/gradle/api/artifacts/Configuration +instanceKlass org/gradle/api/attributes/HasConfigurableAttributes +instanceKlass org/gradle/api/internal/artifacts/ivyservice/moduleconverter/DefaultLocalComponentMetadataBuilder +instanceKlass org/gradle/internal/component/local/model/LocalFileDependencyMetadata +instanceKlass org/gradle/api/attributes/AttributeContainer +instanceKlass org/gradle/api/attributes/HasAttributes +instanceKlass org/gradle/api/internal/artifacts/ivyservice/moduleconverter/dependencies/DefaultLocalConfigurationMetadataBuilder +instanceKlass org/gradle/util/WrapUtil +instanceKlass org/gradle/api/internal/artifacts/ivyservice/moduleconverter/dependencies/DefaultDependencyDescriptorFactory +instanceKlass org/gradle/internal/component/model/LocalOriginDependencyMetadata +instanceKlass org/gradle/internal/component/model/ForcingDependencyMetadata +instanceKlass org/gradle/internal/component/model/DependencyMetadata +instanceKlass org/gradle/api/artifacts/Dependency +instanceKlass org/gradle/api/artifacts/VersionConstraint +instanceKlass org/gradle/internal/component/model/ExcludeMetadata +instanceKlass org/gradle/api/internal/artifacts/ivyservice/moduleconverter/dependencies/DefaultExcludeRuleConverter +instanceKlass org/gradle/api/internal/initialization/DefaultScriptHandler +instanceKlass org/gradle/api/internal/artifacts/DefaultDependencyManagementServices$DefaultDependencyResolutionServices +instanceKlass org/gradle/api/internal/artifacts/dsl/DefaultComponentModuleMetadataHandler +instanceKlass org/gradle/api/artifacts/dsl/DependencyLockingHandler +instanceKlass org/gradle/api/artifacts/dsl/DependencyHandler +instanceKlass org/gradle/api/artifacts/dsl/ComponentModuleMetadataHandler +instanceKlass org/gradle/api/internal/artifacts/repositories/DefaultUrlArtifactRepository$Factory +instanceKlass org/gradle/api/internal/artifacts/ComponentModuleMetadataProcessor +instanceKlass org/gradle/api/internal/artifacts/dsl/dependencies/DependencyLockingProvider +instanceKlass org/gradle/api/internal/artifacts/dsl/DefaultComponentMetadataHandler +instanceKlass org/gradle/api/internal/artifacts/ComponentMetadataProcessorFactory +instanceKlass org/gradle/api/internal/artifacts/dsl/ComponentMetadataHandlerInternal +instanceKlass org/gradle/api/artifacts/dsl/ComponentMetadataHandler +instanceKlass org/gradle/api/artifacts/dsl/ArtifactHandler +instanceKlass org/gradle/api/artifacts/dsl/RepositoryHandler +instanceKlass org/gradle/api/artifacts/ArtifactRepositoryContainer +instanceKlass org/gradle/api/NamedDomainObjectList +instanceKlass org/gradle/api/artifacts/dsl/DependencyConstraintHandler +instanceKlass org/gradle/api/internal/artifacts/configurations/ConfigurationContainerInternal +instanceKlass org/gradle/api/artifacts/ConfigurationContainer +instanceKlass org/gradle/api/file/ProjectLayout +instanceKlass org/gradle/api/internal/artifacts/transform/MutableTransformationWorkspaceProvider +instanceKlass org/gradle/internal/file/ReservedFileSystemLocation +instanceKlass org/gradle/api/internal/artifacts/transform/TransformationRegistrationFactory +instanceKlass org/gradle/api/internal/artifacts/query/ArtifactResolutionQueryFactory +instanceKlass org/gradle/api/internal/artifacts/BaseRepositoryFactory +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/MetaDataParser +instanceKlass org/gradle/api/internal/artifacts/GlobalDependencyResolutionRules +instanceKlass org/gradle/api/internal/artifacts/VariantTransformRegistry +instanceKlass org/gradle/api/internal/artifacts/ArtifactPublicationServices +instanceKlass org/gradle/internal/component/external/model/VariantDerivationStrategy +instanceKlass org/gradle/api/internal/artifacts/type/ArtifactTypeRegistry +instanceKlass org/gradle/api/internal/artifacts/transform/TransformerInvocationFactory +instanceKlass org/gradle/api/internal/artifacts/ConfigurationResolver +instanceKlass org/gradle/api/internal/artifacts/transform/ArtifactTransforms +instanceKlass org/gradle/api/internal/tasks/TaskResolver +instanceKlass org/gradle/api/internal/artifacts/DefaultDependencyManagementServices$DependencyResolutionScopeServices +instanceKlass org/gradle/api/internal/artifacts/DefaultDependencyManagementServices$ArtifactTransformResolutionGradleUserHomeServices +instanceKlass org/gradle/api/internal/initialization/RootScriptDomainObjectContext +instanceKlass org/gradle/internal/resource/UriTextResource$UriResourceLocation +instanceKlass org/gradle/groovy/scripts/TextResourceScriptSource +instanceKlass org/gradle/internal/resource/ResourceLocation +instanceKlass org/gradle/internal/resource/UriTextResource +instanceKlass org/gradle/initialization/InitScriptHandler$1 +instanceKlass org/gradle/initialization/DirectoryInitScriptFinder +instanceKlass org/gradle/initialization/CompositeInitScriptFinder +instanceKlass org/gradle/initialization/InitScriptFinder +instanceKlass org/gradle/initialization/BuildOperatingFiringSettingsPreparer$LoadBuild$1 +instanceKlass org/gradle/initialization/LoadBuildBuildOperationType$Details +instanceKlass org/gradle/initialization/BuildOperatingFiringSettingsPreparer$LoadBuild +instanceKlass org/gradle/internal/event/BroadcastDispatch$ActionInvocationHandler +instanceKlass org/gradle/internal/operations/notify/BuildOperationNotificationBridge$2$$Lambda$132 +instanceKlass org/gradle/internal/resources/DefaultResourceLockCoordinationService$AcquireLocks +instanceKlass org/gradle/internal/work/DefaultWorkerLeaseService$3 +instanceKlass org/gradle/internal/resources/DefaultResourceLockCoordinationService$2 +instanceKlass org/gradle/internal/resources/DefaultResourceLockCoordinationService$DefaultResourceLockState +instanceKlass org/gradle/internal/resources/ResourceLockState +instanceKlass org/gradle/internal/work/DefaultWorkerLeaseService$4 +instanceKlass com/google/common/collect/Iterables +instanceKlass org/gradle/internal/invocation/GradleBuildController$1 +instanceKlass com/google/common/util/concurrent/AbstractFuture$Failure +instanceKlass com/google/common/util/concurrent/AbstractFuture$Cancellation +instanceKlass com/google/common/util/concurrent/AbstractFuture$SetFuture +instanceKlass com/google/common/util/concurrent/Uninterruptibles +instanceKlass org/gradle/internal/resources/AbstractTrackedResourceLock +instanceKlass org/gradle/internal/work/WorkerLeaseRegistry$WorkerLeaseCompletion +instanceKlass org/gradle/internal/resources/AbstractResourceLockRegistry$3 +instanceKlass org/gradle/internal/resources/AbstractResourceLockRegistry$2 +instanceKlass com/google/common/base/Platform$JdkPatternCompiler +instanceKlass com/google/common/base/PatternCompiler +instanceKlass com/google/common/base/Platform +instanceKlass com/google/common/base/Stopwatch +instanceKlass com/google/common/util/concurrent/AbstractFuture$Waiter +instanceKlass com/google/common/util/concurrent/AbstractFuture$Listener +instanceKlass com/google/common/util/concurrent/AbstractFuture$UnsafeAtomicHelper$1 +instanceKlass com/google/common/util/concurrent/AbstractFuture$AtomicHelper +instanceKlass com/google/common/util/concurrent/internal/InternalFutureFailureAccess +instanceKlass com/google/common/util/concurrent/AbstractFuture$Trusted +instanceKlass com/google/common/util/concurrent/ListenableFuture +instanceKlass com/google/common/cache/LocalCache$LoadingValueReference +instanceKlass org/gradle/internal/resources/AbstractResourceLockRegistry$1 +instanceKlass org/gradle/internal/work/DefaultWorkerLeaseService$WorkerLeaseLockRegistry$1 +instanceKlass org/gradle/internal/invocation/GradleBuildController$$Lambda$131 +instanceKlass org/gradle/tooling/internal/protocol/ModelIdentifier +instanceKlass org/gradle/internal/invocation/BuildActionRunner$Result +instanceKlass org/gradle/internal/logging/format/TersePrettyDurationFormatter +instanceKlass org/gradle/internal/buildevents/BuildResultLogger +instanceKlass org/gradle/util/TreeVisitor +instanceKlass org/gradle/internal/buildevents/BuildExceptionReporter +instanceKlass org/gradle/internal/logging/format/DurationFormatter +instanceKlass org/gradle/internal/buildevents/BuildLogger +instanceKlass org/gradle/api/internal/tasks/execution/statistics/TaskExecutionStatisticsEventAdapter +instanceKlass org/gradle/internal/scan/eob/BuildScanEndOfBuildNotifier$BuildResult +instanceKlass org/gradle/internal/logging/sink/ProgressLogEventGenerator$Operation +instanceKlass org/gradle/internal/logging/progress/DefaultProgressLoggerFactory$ProgressLoggerImpl +instanceKlass org/gradle/internal/operations/notify/BuildOperationNotificationBridge$Started +instanceKlass org/gradle/api/internal/tasks/RegisterTaskBuildOperationType$Details +instanceKlass org/gradle/api/internal/tasks/RealizeTaskBuildOperationType$Details +instanceKlass org/gradle/api/internal/ExecuteDomainObjectCollectionCallbackBuildOperationType$Details +instanceKlass org/gradle/configuration/internal/ExecuteListenerBuildOperationType$Details +instanceKlass org/gradle/configuration/ApplyScriptPluginBuildOperationType$Details +instanceKlass org/gradle/api/internal/plugins/ApplyPluginBuildOperationType$Details +instanceKlass org/gradle/api/internal/tasks/testing/operations/ExecuteTestBuildOperationType$Details +instanceKlass org/gradle/internal/operations/OperationStartEvent +instanceKlass org/gradle/internal/operations/DefaultBuildOperationExecutor$3 +instanceKlass org/gradle/internal/operations/DefaultBuildOperationExecutor$DefaultBuildOperationContext +instanceKlass org/gradle/internal/MutableReference +instanceKlass org/gradle/internal/operations/OperationIdentifier +instanceKlass org/gradle/internal/operations/BuildOperationContext +instanceKlass org/gradle/internal/operations/DefaultBuildOperationExecutor$1 +instanceKlass org/gradle/internal/operations/BuildOperationDescriptor$Builder +instanceKlass org/gradle/internal/operations/BuildOperationDescriptor +instanceKlass org/gradle/internal/operations/DefaultBuildOperationExecutor$CallableBuildOperationWorker +instanceKlass org/gradle/launcher/exec/RunAsBuildOperationBuildActionRunner$3 +instanceKlass org/gradle/internal/vfs/impl/DefaultVirtualFileSystem$$Lambda$130 +instanceKlass org/gradle/internal/invocation/GradleBuildController +instanceKlass org/gradle/internal/invocation/BuildController +instanceKlass org/gradle/launcher/exec/InProcessBuildActionExecuter$1 +instanceKlass org/gradle/configuration/internal/DefaultListenerBuildOperationDecorator +instanceKlass org/gradle/deployment/internal/DefaultDeploymentRegistry$PendingChanges +instanceKlass org/gradle/initialization/ContinuousExecutionGate$GateKeeper +instanceKlass org/gradle/initialization/DefaultContinuousExecutionGate +instanceKlass org/gradle/kotlin/dsl/tooling/builders/BuildSrcClassPathModeConfigurationAction +instanceKlass org/gradle/initialization/buildsrc/GroovyBuildSrcProjectConfigurationAction +instanceKlass org/gradle/configuration/project/PluginsProjectConfigureActions +instanceKlass org/gradle/api/internal/InternalAction +instanceKlass org/gradle/configuration/project/ProjectConfigureAction +instanceKlass org/gradle/initialization/buildsrc/BuildSrcProjectConfigurationAction +instanceKlass org/gradle/initialization/buildsrc/BuildSrcBuildListenerFactory +instanceKlass org/gradle/initialization/buildsrc/BuildSourceBuilder$1 +instanceKlass org/gradle/initialization/buildsrc/BuildBuildSrcBuildOperationType$Result +instanceKlass org/gradle/instantexecution/extensions/UnsafeLazyKt +instanceKlass org/gradle/internal/service/scopes/VirtualFileSystemServices$BuildSessionServices$2 +instanceKlass org/gradle/internal/service/scopes/VirtualFileSystemServices$BuildSessionServices$1 +instanceKlass org/gradle/internal/service/scopes/VirtualFileSystemServices$BuildSessionServices$$Lambda$129 +instanceKlass java/util/function/BooleanSupplier +instanceKlass org/gradle/internal/vfs/RoutingVirtualFileSystem +instanceKlass org/gradle/instantexecution/InstantExecutionHost$DefaultClassicModeBuild +instanceKlass org/gradle/instantexecution/ClassicModeBuild +instanceKlass kotlin/UnsafeLazyImpl +instanceKlass kotlin/UNINITIALIZED_VALUE +instanceKlass kotlin/SafePublicationLazyImpl$Companion +instanceKlass kotlin/SafePublicationLazyImpl +instanceKlass kotlin/Lazy +instanceKlass kotlin/LazyKt$WhenMappings +instanceKlass kotlin/LazyKt__LazyJVMKt +instanceKlass kotlin/reflect/jvm/internal/KPropertyImpl$Companion +instanceKlass kotlin/reflect/jvm/internal/KCallableImpl +instanceKlass kotlin/reflect/jvm/internal/pcollections/MapEntry +instanceKlass kotlin/reflect/jvm/internal/ReflectProperties$Val$1 +instanceKlass kotlin/reflect/jvm/internal/ReflectProperties$Val +instanceKlass kotlin/reflect/jvm/internal/ReflectProperties +instanceKlass kotlin/jvm/internal/Lambda +instanceKlass kotlin/text/Regex$Companion +instanceKlass kotlin/text/Regex +instanceKlass kotlin/jvm/internal/DefaultConstructorMarker +instanceKlass kotlin/reflect/jvm/internal/KDeclarationContainerImpl$Companion +instanceKlass kotlin/reflect/jvm/internal/impl/resolve/scopes/ResolutionScope +instanceKlass kotlin/reflect/jvm/internal/KClassifierImpl +instanceKlass kotlin/reflect/jvm/internal/pcollections/ConsPStack +instanceKlass kotlin/reflect/jvm/internal/pcollections/IntTree +instanceKlass kotlin/reflect/jvm/internal/pcollections/IntTreePMap +instanceKlass kotlin/reflect/jvm/internal/pcollections/HashPMap +instanceKlass kotlin/reflect/jvm/internal/KClassCacheKt +instanceKlass kotlin/reflect/jvm/internal/KDeclarationContainerImpl +instanceKlass kotlin/jvm/internal/ClassBasedDeclarationContainer +instanceKlass kotlin/jvm/internal/FunctionBase +instanceKlass kotlin/reflect/KMutableProperty1 +instanceKlass kotlin/reflect/KType +instanceKlass kotlin/reflect/KMutableProperty0 +instanceKlass kotlin/reflect/KProperty0 +instanceKlass kotlin/reflect/KMutableProperty2 +instanceKlass kotlin/reflect/KMutableProperty +instanceKlass kotlin/reflect/KProperty2 +instanceKlass kotlin/reflect/KClass +instanceKlass kotlin/jvm/internal/ReflectionFactory +instanceKlass kotlin/reflect/KClassifier +instanceKlass kotlin/jvm/internal/Reflection +instanceKlass kotlin/jvm/internal/CallableReference$NoReceiver +instanceKlass kotlin/reflect/KProperty$Getter +instanceKlass kotlin/reflect/KFunction +instanceKlass kotlin/reflect/KProperty$Accessor +instanceKlass org/gradle/execution/SelectedTaskExecutionAction +instanceKlass org/gradle/execution/DryRunBuildExecutionAction +instanceKlass org/gradle/execution/BuildExecutionAction +instanceKlass org/gradle/execution/DefaultBuildWorkExecutor +instanceKlass org/gradle/execution/IncludedBuildLifecycleBuildWorkExecutor +instanceKlass org/gradle/execution/DeprecateUndefinedBuildWorkExecutor +instanceKlass org/gradle/execution/BuildOperationFiringBuildWorkerExecutor +instanceKlass org/gradle/initialization/InternalBuildFinishedListener +instanceKlass org/gradle/BuildResult +instanceKlass org/gradle/initialization/exception/StackTraceSanitizingExceptionAnalyser +instanceKlass org/gradle/initialization/exception/DefaultExceptionAnalyser +instanceKlass org/gradle/initialization/exception/MultipleBuildFailuresExceptionAnalyser +instanceKlass org/gradle/configuration/DefaultProjectsPreparer +instanceKlass org/gradle/configuration/BuildOperatingFiringProjectsPreparer$1 +instanceKlass org/gradle/initialization/ConfigureBuildBuildOperationType$Result +instanceKlass org/gradle/configuration/BuildOperatingFiringProjectsPreparer +instanceKlass org/gradle/initialization/ModelConfigurationListener +instanceKlass org/gradle/initialization/InstantiatingBuildLoader +instanceKlass org/gradle/initialization/ProjectPropertySettingBuildLoader +instanceKlass org/gradle/initialization/NotifyingBuildLoader$4 +instanceKlass org/gradle/initialization/NotifyingBuildLoader$1 +instanceKlass org/gradle/initialization/LoadProjectsBuildOperationType$Result$Project +instanceKlass org/gradle/initialization/NotifyProjectsLoadedBuildOperationType$Result +instanceKlass org/gradle/initialization/NotifyingBuildLoader +instanceKlass org/gradle/api/internal/project/ProjectFactory +instanceKlass org/gradle/initialization/DefaultGradleLauncher +instanceKlass org/gradle/initialization/DefaultTaskExecutionPreparer +instanceKlass org/gradle/initialization/BuildOperatingFiringTaskExecutionPreparer +instanceKlass org/gradle/execution/ExcludedTaskFilteringBuildConfigurationAction +instanceKlass org/gradle/execution/BuildExecutionContext +instanceKlass org/gradle/execution/DefaultBuildConfigurationActionExecuter +instanceKlass org/gradle/execution/TaskNameResolvingBuildConfigurationAction +instanceKlass org/gradle/execution/DefaultTasksBuildExecutionAction +instanceKlass org/gradle/execution/BuildConfigurationAction +instanceKlass org/gradle/execution/commandline/CommandLineTaskConfigurer +instanceKlass org/gradle/execution/taskpath/ProjectFinderByTaskPath +instanceKlass org/gradle/execution/taskpath/TaskPathResolver +instanceKlass org/gradle/api/tasks/TaskContainer +instanceKlass org/gradle/api/PolymorphicDomainObjectContainer +instanceKlass org/gradle/api/tasks/TaskCollection +instanceKlass org/gradle/execution/TaskSelectionResult +instanceKlass org/gradle/execution/TaskNameResolver +instanceKlass org/gradle/execution/TaskPathProjectEvaluator +instanceKlass org/gradle/api/internal/tasks/options/OptionValueNotationParserFactory +instanceKlass org/gradle/internal/scan/config/BuildScanConfig +instanceKlass org/gradle/internal/scan/config/BuildScanConfigServices$1 +instanceKlass org/gradle/util/VersionNumber$AbstractScheme$Scanner +instanceKlass org/gradle/util/VersionNumber$AbstractScheme +instanceKlass org/gradle/util/VersionNumber$Scheme +instanceKlass org/gradle/util/VersionNumber +instanceKlass org/gradle/api/internal/AbstractMutationGuard +instanceKlass org/gradle/api/internal/project/BuildOperationCrossProjectConfigurator +instanceKlass org/gradle/api/internal/WithMutationGuard +instanceKlass org/gradle/internal/concurrent/CompositeStoppable$2 +instanceKlass org/gradle/internal/scan/config/BuildScanConfig$Attributes +instanceKlass org/gradle/internal/scan/config/BuildScanConfigManager +instanceKlass org/gradle/internal/scan/config/BuildScanConfigProvider +instanceKlass org/gradle/internal/scan/config/BuildScanConfigInit +instanceKlass org/gradle/internal/scan/config/BuildScanPluginCompatibility +instanceKlass org/gradle/internal/scan/config/BuildScanConfigServices +instanceKlass org/gradle/internal/scan/eob/DefaultBuildScanEndOfBuildNotifier +instanceKlass org/gradle/internal/scan/eob/BuildScanEndOfBuildNotifier +instanceKlass org/gradle/internal/scan/time/BuildScanClock +instanceKlass org/gradle/internal/scan/time/BuildScanBuildStartedTime +instanceKlass org/gradle/internal/scan/BuildScanServices +instanceKlass kotlin/coroutines/Continuation +instanceKlass org/gradle/instantexecution/DefaultInstantExecution +instanceKlass org/gradle/initialization/InstantExecution +instanceKlass org/gradle/instantexecution/InstantExecutionHost +instanceKlass org/gradle/instantexecution/DefaultInstantExecution$Host +instanceKlass kotlin/jvm/internal/CallableReference +instanceKlass kotlin/reflect/KProperty1 +instanceKlass kotlin/jvm/functions/Function1 +instanceKlass kotlin/reflect/KProperty +instanceKlass kotlin/reflect/KCallable +instanceKlass kotlin/reflect/KAnnotatedElement +instanceKlass kotlin/reflect/KDeclarationContainer +instanceKlass org/gradle/instantexecution/initialization/InstantExecutionStartParameter +instanceKlass org/gradle/cache/internal/FileContentCacheFactory$Calculator +instanceKlass org/gradle/language/nativeplatform/internal/incremental/sourceparser/CachingCSourceParser +instanceKlass org/gradle/language/nativeplatform/internal/incremental/sourceparser/CSourceParser +instanceKlass org/gradle/language/nativeplatform/internal/incremental/DefaultCompilationStateCacheFactory +instanceKlass org/gradle/language/nativeplatform/internal/incremental/CompilationStateCacheFactory +instanceKlass org/gradle/language/java/artifact/JavadocArtifact +instanceKlass org/gradle/api/internal/tasks/compile/processing/AnnotationProcessorDetector +instanceKlass org/gradle/language/java/internal/JavaLanguagePluginServiceRegistry$JavaGradleScopeServices +instanceKlass org/gradle/initialization/DefaultJdkToolsInitializer +instanceKlass org/gradle/api/internal/tasks/compile/incremental/cache/DefaultGeneralCompileCaches +instanceKlass org/gradle/api/internal/tasks/compile/incremental/cache/GeneralCompileCaches +instanceKlass org/gradle/api/internal/tasks/CompileServices$GradleScopeCompileServices +instanceKlass org/gradle/api/internal/artifacts/transform/TransformationNodeDependencyResolver +instanceKlass org/gradle/api/internal/artifacts/transform/TransformationNodeRegistry +instanceKlass org/gradle/api/internal/artifacts/DependencyServices$DependencyManagementGradleServices +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/internal/execution/CachingResult +instanceKlass org/gradle/internal/execution/UpToDateResult +instanceKlass org/gradle/internal/execution/SnapshotResult +instanceKlass org/gradle/internal/execution/Result +instanceKlass org/gradle/internal/execution/ExecutionRequestContext +instanceKlass org/gradle/internal/execution/Context +instanceKlass org/gradle/internal/execution/OutputChangeListener +instanceKlass org/gradle/internal/scan/config/BuildScanPluginApplied +instanceKlass org/gradle/internal/execution/history/OutputFilesRepository +instanceKlass org/gradle/internal/execution/WorkExecutor +instanceKlass org/gradle/internal/execution/Step +instanceKlass org/gradle/internal/service/scopes/ExecutionGradleServices +instanceKlass org/gradle/caching/internal/origin/OriginMetadataFactory +instanceKlass org/gradle/caching/internal/controller/BuildCacheController +instanceKlass org/gradle/caching/internal/controller/BuildCacheCommandFactory +instanceKlass org/gradle/caching/internal/packaging/impl/TarPackerFileSystemSupport +instanceKlass org/gradle/caching/internal/packaging/BuildCacheEntryPacker +instanceKlass org/gradle/caching/internal/packaging/impl/FilePermissionAccess +instanceKlass org/gradle/caching/internal/BuildCacheServices$3 +instanceKlass org/gradle/internal/service/scopes/GradleScopeServices$$Lambda$128 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/api/execution/TaskExecutionGraphListener +instanceKlass org/gradle/execution/plan/LocalTaskNodeExecutor +instanceKlass org/gradle/execution/plan/TaskDependencyResolver +instanceKlass org/gradle/execution/plan/PlanExecutor +instanceKlass org/gradle/api/services/internal/BuildServiceRegistryInternal +instanceKlass org/gradle/execution/plan/WorkNodeDependencyResolver +instanceKlass org/gradle/execution/plan/TaskNodeDependencyResolver +instanceKlass org/gradle/execution/plan/DependencyResolver +instanceKlass org/gradle/api/internal/tasks/WorkDependencyResolver +instanceKlass org/gradle/execution/plan/TaskNodeFactory +instanceKlass org/gradle/api/execution/TaskExecutionListener +instanceKlass org/gradle/execution/plan/WorkNodeExecutor +instanceKlass org/gradle/execution/plan/NodeExecutor +instanceKlass org/gradle/api/internal/tasks/options/OptionReader +instanceKlass org/gradle/execution/TaskSelector +instanceKlass org/gradle/execution/commandline/CommandLineTaskParser +instanceKlass org/gradle/initialization/TaskExecutionPreparer +instanceKlass org/gradle/internal/cleanup/BuildOutputCleanupRegistry +instanceKlass org/gradle/internal/scan/scopeids/BuildScanScopeIds +instanceKlass org/gradle/execution/BuildWorkExecutor +instanceKlass org/gradle/execution/BuildConfigurationActionExecuter +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ClassBuilderImpl$$Lambda$127 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/api/Incubating +instanceKlass javax/annotation/Nonnull +instanceKlass javax/annotation/Nullable +instanceKlass org/gradle/api/plugins/PluginContainer +instanceKlass org/gradle/api/plugins/PluginCollection +instanceKlass org/gradle/configuration/ConfigurationTargetIdentifier +instanceKlass org/gradle/api/internal/plugins/DefaultObjectConfigurationAction +instanceKlass org/gradle/api/plugins/ObjectConfigurationAction +instanceKlass org/gradle/execution/taskgraph/TaskExecutionGraphInternal +instanceKlass org/gradle/api/services/BuildServiceRegistry +instanceKlass org/gradle/api/internal/plugins/PluginManagerInternal +instanceKlass org/gradle/api/initialization/IncludedBuild +instanceKlass org/gradle/api/execution/TaskExecutionGraph +instanceKlass org/gradle/api/plugins/PluginManager +instanceKlass org/gradle/api/internal/project/AbstractPluginAware +instanceKlass org/gradle/api/internal/GradleInternal +instanceKlass org/gradle/api/invocation/Gradle +instanceKlass org/gradle/initialization/DefaultSettingsPreparer +instanceKlass org/gradle/initialization/BuildOperatingFiringSettingsPreparer$1 +instanceKlass org/gradle/initialization/LoadBuildBuildOperationType$Result +instanceKlass org/gradle/initialization/BuildOperatingFiringSettingsPreparer +instanceKlass org/gradle/initialization/SettingsLoader +instanceKlass org/gradle/initialization/DefaultSettingsLoaderFactory +instanceKlass org/gradle/util/GUtil$1 +instanceKlass org/gradle/util/Path +instanceKlass org/gradle/internal/build/DefaultPublicBuildPath +instanceKlass org/gradle/api/internal/project/ProjectState +instanceKlass org/gradle/internal/model/ModelContainer +instanceKlass org/gradle/api/internal/project/ProjectStateRegistry$SafeExclusiveLock +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass org/gradle/api/internal/SettingsInternal +instanceKlass org/gradle/initialization/SettingsFactory +instanceKlass org/gradle/initialization/ScriptEvaluatingSettingsProcessor +instanceKlass org/gradle/api/initialization/Settings +instanceKlass org/gradle/initialization/SettingsEvaluatedCallbackFiringSettingsProcessor +instanceKlass org/gradle/initialization/RootBuildCacheControllerSettingsProcessor +instanceKlass org/gradle/initialization/BuildOperationSettingsProcessor$1 +instanceKlass org/gradle/initialization/EvaluateSettingsBuildOperationType$Result +instanceKlass org/gradle/initialization/BuildOperationSettingsProcessor +instanceKlass org/gradle/internal/id/LongIdGenerator +instanceKlass org/gradle/configuration/DefaultInitScriptProcessor +instanceKlass org/gradle/configuration/ScriptPluginFactorySelector$1 +instanceKlass org/gradle/configuration/ScriptPluginFactorySelector$ProviderInstantiator +instanceKlass org/gradle/configuration/ScriptPluginFactorySelector +instanceKlass org/gradle/plugin/management/internal/autoapply/DefaultAutoAppliedPluginHandler +instanceKlass org/gradle/plugin/management/internal/SingletonPluginRequests +instanceKlass java/util/DualPivotQuicksort +instanceKlass org/gradle/plugin/use/internal/DefaultPluginId +instanceKlass org/gradle/plugin/management/internal/autoapply/AutoAppliedGradleEnterprisePlugin +instanceKlass org/gradle/plugin/management/internal/DefaultPluginRequest +instanceKlass org/gradle/api/internal/artifacts/DefaultModuleVersionSelector +instanceKlass org/gradle/api/artifacts/ModuleVersionSelector +instanceKlass org/gradle/api/internal/artifacts/DefaultModuleIdentifier +instanceKlass org/gradle/plugin/management/internal/autoapply/DefaultAutoAppliedPluginRegistry +instanceKlass org/gradle/api/file/SourceDirectorySet +instanceKlass org/gradle/api/internal/model/DefaultObjectFactory +instanceKlass org/gradle/api/internal/MutationGuards$1 +instanceKlass org/gradle/api/internal/MutationGuard +instanceKlass org/gradle/api/internal/MutationGuards +instanceKlass org/gradle/api/internal/CollectionCallbackActionDecorator$1 +instanceKlass org/gradle/api/internal/collections/DefaultDomainObjectCollectionFactory +instanceKlass org/gradle/process/internal/ExecHandleBuilder +instanceKlass org/gradle/process/internal/ExecAction +instanceKlass org/gradle/process/ExecSpec +instanceKlass org/gradle/process/internal/JavaExecAction +instanceKlass org/gradle/process/JavaExecSpec +instanceKlass org/gradle/process/BaseExecSpec +instanceKlass org/gradle/process/internal/JavaForkOptionsInternal +instanceKlass org/gradle/process/JavaForkOptions +instanceKlass org/gradle/process/ProcessForkOptions +instanceKlass org/gradle/process/JavaDebugOptions +instanceKlass org/gradle/process/internal/DefaultExecActionFactory +instanceKlass org/gradle/api/internal/changedetection/state/SplitFileHasher +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementBuildScopeServices$$Lambda$126 +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolutionstrategy/ExternalResourceCachePolicy +instanceKlass org/gradle/internal/resource/connector/ResourceConnectorSpecification +instanceKlass org/gradle/api/internal/artifacts/repositories/transport/RepositoryTransport +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/ModuleComponentRepository +instanceKlass org/gradle/internal/resource/local/LocallyAvailableExternalResource +instanceKlass org/gradle/internal/resource/ExternalResource +instanceKlass org/gradle/internal/resource/local/FileResourceConnector +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementBuildScopeServices$$Lambda$125 +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementBuildScopeServices$$Lambda$124 +instanceKlass org/gradle/api/internal/filestore/DefaultArtifactIdentifierFileStore$$Lambda$123 +instanceKlass org/gradle/internal/component/external/model/ModuleComponentArtifactIdentifier +instanceKlass org/gradle/api/artifacts/component/ComponentArtifactIdentifier +instanceKlass org/gradle/api/internal/filestore/DefaultArtifactIdentifierFileStore$1 +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementBuildScopeServices$$Lambda$122 +instanceKlass org/gradle/internal/resource/cached/CachedExternalResource +instanceKlass org/gradle/internal/resource/metadata/ExternalResourceMetaData +instanceKlass org/gradle/internal/resource/cached/DefaultCachedExternalResourceIndex$CachedExternalResourceSerializer +instanceKlass org/gradle/internal/resource/cached/CachedItem +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ArtifactCachesProvider$$Lambda$121 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementBuildScopeServices$$Lambda$120 +instanceKlass org/gradle/internal/resource/local/LocallyAvailableResource +instanceKlass org/gradle/internal/resource/local/DefaultPathKeyFileStore +instanceKlass org/gradle/api/internal/file/TmpDirTemporaryFileProvider$1 +instanceKlass org/gradle/api/internal/file/DefaultTemporaryFileProvider +instanceKlass org/gradle/internal/resource/cached/DefaultExternalResourceFileStore$$Lambda$119 +instanceKlass org/gradle/api/Namer +instanceKlass org/gradle/internal/resource/cached/DefaultExternalResourceFileStore$1 +instanceKlass org/gradle/internal/resource/local/GroupedAndNamedUniqueFileStore$Grouper +instanceKlass org/gradle/internal/resource/local/PathKeyFileStore +instanceKlass org/gradle/internal/resource/local/GroupedAndNamedUniqueFileStore +instanceKlass org/gradle/internal/hash/ChecksumHasher +instanceKlass org/gradle/internal/hash/DefaultChecksumService +instanceKlass org/gradle/internal/resource/transport/sftp/SftpConnectorFactory +instanceKlass com/jcraft/jsch/HostKeyRepository +instanceKlass com/jcraft/jsch/Logger +instanceKlass org/gradle/internal/resource/transport/sftp/LockableSftpClient +instanceKlass org/gradle/internal/resource/transport/sftp/SftpClientFactory$SftpClientCreator +instanceKlass org/gradle/internal/resource/transport/aws/s3/S3ConnectorFactory +instanceKlass org/gradle/internal/resource/transport/gcp/gcs/GcsConnectorFactory +instanceKlass org/gradle/internal/resource/transfer/ExternalResourceConnector +instanceKlass org/gradle/internal/resource/transfer/ExternalResourceAccessor +instanceKlass org/gradle/internal/resource/transfer/ExternalResourceLister +instanceKlass org/gradle/internal/resource/transfer/ExternalResourceUploader +instanceKlass org/gradle/internal/resource/transport/http/HttpConnectorFactory +instanceKlass org/gradle/internal/resource/transport/http/DefaultSslContextFactory +instanceKlass org/gradle/internal/resource/transport/file/FileConnectorFactory +instanceKlass org/gradle/internal/resource/TextResource +instanceKlass org/gradle/internal/resource/DefaultTextFileResourceLoader +instanceKlass org/gradle/api/file/FileContents +instanceKlass org/gradle/api/internal/provider/DefaultProviderFactory +instanceKlass org/gradle/api/internal/provider/ValueSourceProviderFactory$Listener +instanceKlass org/gradle/api/provider/ValueSourceParameters$None +instanceKlass org/gradle/api/provider/ValueSourceParameters +instanceKlass org/gradle/api/provider/ValueSource +instanceKlass org/gradle/internal/isolated/IsolationScheme +instanceKlass org/gradle/api/internal/provider/DefaultValueSourceProviderFactory +instanceKlass org/gradle/initialization/DefaultGradleProperties +instanceKlass org/gradle/initialization/DefaultGradlePropertiesLoader +instanceKlass org/gradle/internal/isolation/Isolatable +instanceKlass org/gradle/internal/snapshot/impl/DefaultValueSnapshotter$IsolatableVisitor +instanceKlass org/gradle/internal/snapshot/ValueSnapshot +instanceKlass org/gradle/internal/hash/Hashable +instanceKlass org/gradle/internal/snapshot/impl/DefaultValueSnapshotter$ValueSnapshotVisitor +instanceKlass org/gradle/internal/snapshot/impl/DefaultValueSnapshotter$ValueVisitor +instanceKlass org/gradle/api/internal/provider/ManagedFactories$ProviderManagedFactory +instanceKlass org/gradle/api/internal/provider/ManagedFactories$PropertyManagedFactory +instanceKlass org/gradle/api/internal/provider/ManagedFactories$MapPropertyManagedFactory +instanceKlass org/gradle/api/internal/provider/ManagedFactories$ListPropertyManagedFactory +instanceKlass org/gradle/api/internal/provider/CollectionPropertyInternal +instanceKlass org/gradle/api/internal/provider/CollectionProviderInternal +instanceKlass org/gradle/api/internal/provider/ManagedFactories$SetPropertyManagedFactory +instanceKlass org/gradle/api/internal/file/ManagedFactories$DirectoryPropertyManagedFactory +instanceKlass org/gradle/api/file/Directory +instanceKlass org/gradle/api/internal/file/ManagedFactories$DirectoryManagedFactory +instanceKlass org/gradle/api/internal/provider/AbstractMinimalProvider +instanceKlass org/gradle/api/internal/file/ManagedFactories$RegularFilePropertyManagedFactory +instanceKlass org/gradle/api/internal/file/DefaultFileSystemLocation +instanceKlass org/gradle/api/file/RegularFile +instanceKlass org/gradle/api/file/FileSystemLocation +instanceKlass org/gradle/api/internal/file/ManagedFactories$RegularFileManagedFactory +instanceKlass org/gradle/api/internal/file/AbstractFileCollection +instanceKlass org/gradle/api/internal/file/collections/FileCollectionContainer +instanceKlass org/gradle/api/internal/file/collections/ManagedFactories$ConfigurableFileCollectionManagedFactory +instanceKlass org/gradle/internal/state/DefaultManagedFactoryRegistry +instanceKlass org/gradle/plugin/use/internal/PluginDependencyResolutionServices$2 +instanceKlass org/gradle/internal/exceptions/FailureResolutionAware +instanceKlass org/gradle/plugin/use/resolve/internal/PluginResolutionResult +instanceKlass org/gradle/plugin/use/internal/DefaultPluginRequestApplicator +instanceKlass org/gradle/internal/ImmutableActionSet +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ObjectCreationDetails +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$InvokeConstructorStrategy +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator$GeneratedClassImpl$GeneratedConstructorImpl +instanceKlass org/gradle/internal/instantiation/generator/ClassGenerator$GeneratedConstructor +instanceKlass org/gradle/internal/instantiation/generator/ClassGenerator$SerializationConstructor +instanceKlass java/lang/invoke/MethodHandles$Lookup$$Lambda$118 +instanceKlass jdk/internal/org/objectweb/asm/ClassReader +instanceKlass org/objectweb/asm/Handler +instanceKlass org/objectweb/asm/Attribute +instanceKlass org/gradle/model/internal/asm/AsmClassGeneratorUtils +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ClassBuilderImpl$$Lambda$117 +instanceKlass com/google/common/collect/LinkedHashMultimap$ValueSet$1 +instanceKlass com/google/common/collect/AbstractMapBasedMultimap$WrappedCollection$WrappedIterator +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ClassBuilderImpl$$Lambda$116 +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ClassBuilderImpl$$Lambda$115 +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ClassBuilderImpl$$Lambda$114 +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ClassBuilderImpl$$Lambda$113 +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ClassBuilderImpl$$Lambda$112 +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ClassBuilderImpl$$Lambda$111 +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ClassBuilderImpl$$Lambda$110 +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ClassBuilderImpl$$Lambda$109 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ClassBuilderImpl$$Lambda$108 +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ClassBuilderImpl$$Lambda$107 +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$MethodCodeBody +instanceKlass org/objectweb/asm/Edge +instanceKlass org/objectweb/asm/Label +instanceKlass org/objectweb/asm/Frame +instanceKlass org/objectweb/asm/ByteVector +instanceKlass org/objectweb/asm/Symbol +instanceKlass org/objectweb/asm/SymbolTable +instanceKlass org/objectweb/asm/MethodVisitor +instanceKlass org/objectweb/asm/FieldVisitor +instanceKlass org/objectweb/asm/ModuleVisitor +instanceKlass org/objectweb/asm/AnnotationVisitor +instanceKlass org/gradle/model/internal/asm/AsmClassGenerator +instanceKlass org/gradle/api/internal/provider/PropertyInternal +instanceKlass org/gradle/api/internal/provider/OwnerAware +instanceKlass org/gradle/api/internal/provider/HasConfigurableValueInternal +instanceKlass org/gradle/api/internal/provider/ProviderInternal +instanceKlass org/gradle/api/internal/provider/ValueSupplier +instanceKlass org/gradle/internal/instantiation/generator/ManagedObjectFactory +instanceKlass org/gradle/util/ConfigureUtil +instanceKlass org/gradle/internal/metaobject/AbstractDynamicObject +instanceKlass org/gradle/api/plugins/Convention +instanceKlass org/gradle/api/plugins/ExtensionContainer +instanceKlass org/gradle/internal/metaobject/DynamicObject +instanceKlass org/gradle/internal/metaobject/PropertyAccess +instanceKlass org/gradle/internal/metaobject/MethodAccess +instanceKlass org/gradle/internal/extensibility/ConventionAwareHelper +instanceKlass org/gradle/api/internal/HasConvention +instanceKlass org/gradle/api/internal/IConventionAware +instanceKlass org/gradle/api/internal/GeneratedSubclass +instanceKlass org/gradle/api/internal/ConventionMapping +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ClassBuilderImpl +instanceKlass org/gradle/internal/MutableActionSet +instanceKlass groovy/lang/GroovyObjectSupport +instanceKlass groovy/lang/GroovyCallable +instanceKlass java/lang/module/ModuleDescriptor$Builder$$Lambda$106 +instanceKlass jdk/internal/module/Checks +instanceKlass java/lang/module/ModuleDescriptor$Builder +instanceKlass java/lang/reflect/Proxy$ProxyBuilder$$Lambda$105 +instanceKlass jdk/internal/HotSpotIntrinsicCandidate +instanceKlass java/lang/Deprecated +instanceKlass org/gradle/api/internal/DynamicObjectAware +instanceKlass org/gradle/internal/extensibility/NoConventionMapping +instanceKlass sun/reflect/annotation/AnnotationParser$$Lambda$104 +instanceKlass java/lang/annotation/Target +instanceKlass sun/reflect/annotation/AnnotationInvocationHandler +instanceKlass sun/reflect/annotation/AnnotationParser$1 +instanceKlass sun/reflect/annotation/ExceptionProxy +instanceKlass java/lang/annotation/Retention +instanceKlass sun/reflect/annotation/AnnotationType$1 +instanceKlass sun/reflect/annotation/AnnotationType +instanceKlass java/lang/reflect/GenericArrayType +instanceKlass java/lang/annotation/Documented +instanceKlass java/lang/annotation/Inherited +instanceKlass java/lang/Class$AnnotationData +instanceKlass org/gradle/api/NonExtensible +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator$MethodMetadata +instanceKlass sun/reflect/generics/tree/Wildcard +instanceKlass sun/reflect/generics/tree/BottomSignature +instanceKlass org/gradle/internal/reflect/PropertyAccessor +instanceKlass org/gradle/internal/reflect/PropertyMutator +instanceKlass org/gradle/internal/reflect/JavaPropertyReflectionUtil +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator$PropertyMetadata +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator$ClassMetadata +instanceKlass org/gradle/internal/reflect/MutablePropertyDetails +instanceKlass java/beans/Introspector$1 +instanceKlass jdk/internal/misc/JavaBeansAccess +instanceKlass java/beans/FeatureDescriptor +instanceKlass com/sun/beans/WeakCache +instanceKlass java/beans/Introspector +instanceKlass org/gradle/internal/reflect/MethodSet$MethodKey +instanceKlass org/gradle/plugin/management/internal/PluginRequestInternal +instanceKlass org/gradle/plugin/management/PluginRequest +instanceKlass org/gradle/plugin/use/PluginId +instanceKlass org/gradle/internal/reflect/PropertyDetails +instanceKlass org/gradle/internal/reflect/MutableClassDetails +instanceKlass org/gradle/internal/reflect/ClassDetails +instanceKlass org/gradle/internal/reflect/ClassInspector +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator$ClassGenerationVisitor +instanceKlass org/gradle/internal/instantiation/generator/AsmBackedClassGenerator$ClassInspectionVisitorImpl +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator$InjectionAnnotationValidator +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator$DisabledAnnotationValidator +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator$ClassValidator +instanceKlass org/gradle/internal/reflect/MethodSet +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator$ClassGenerationHandler +instanceKlass org/gradle/cache/internal/DefaultCrossBuildInMemoryCacheFactory$DefaultClassMap$1 +instanceKlass org/gradle/plugin/management/internal/DefaultPluginResolutionStrategy +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/strategy/VersionSelector +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/strategy/DefaultVersionSelectorScheme +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/strategy/CachingVersionSelectorScheme +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/strategy/Version +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/strategy/StaticVersionComparator +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/strategy/DefaultVersionComparator +instanceKlass org/gradle/plugin/use/resolve/internal/PluginResolution +instanceKlass org/gradle/plugin/internal/PluginUsePluginServiceRegistry$BuildScopeServices$1 +instanceKlass org/gradle/plugin/use/internal/PluginRepositoryHandlerProvider +instanceKlass org/gradle/plugin/use/internal/PluginRepositoriesProvider +instanceKlass org/gradle/api/internal/plugins/PluginDescriptorLocator +instanceKlass org/gradle/api/internal/plugins/PluginImplementation +instanceKlass org/gradle/api/internal/plugins/DefaultPluginRegistry +instanceKlass org/gradle/api/internal/plugins/PotentialPlugin +instanceKlass org/gradle/model/internal/inspect/ModelRuleSourceDetector$1 +instanceKlass org/gradle/instantexecution/ClassLoaderScopeSpec +instanceKlass com/google/common/collect/MapMakerInternalMap$StrongKeyWeakValueEntry$Helper +instanceKlass org/gradle/api/internal/initialization/ClassLoaderScopeIdentifier +instanceKlass org/gradle/initialization/ClassLoaderScopeRegistryListener$1 +instanceKlass org/gradle/api/internal/initialization/loadercache/ClassLoaderId +instanceKlass org/gradle/initialization/ClassLoaderScopeId +instanceKlass org/gradle/api/internal/initialization/AbstractClassLoaderScope +instanceKlass org/gradle/api/internal/initialization/ClassLoaderScope +instanceKlass org/gradle/initialization/DefaultClassLoaderScopeRegistry +instanceKlass org/gradle/composite/internal/plugins/CompositeBuildPluginResolverContributor$Resolution +instanceKlass org/gradle/composite/internal/plugins/CompositeBuildPluginResolverContributor +instanceKlass org/gradle/api/internal/artifacts/dsl/dependencies/UnknownProjectFinder +instanceKlass org/gradle/api/internal/initialization/ScriptHandlerInternal +instanceKlass org/gradle/api/initialization/dsl/ScriptHandler +instanceKlass org/gradle/api/internal/initialization/DefaultScriptHandlerFactory +instanceKlass org/gradle/api/internal/model/NamedObjectInstantiator$1 +instanceKlass org/gradle/internal/state/Managed +instanceKlass com/google/common/base/ExtraObjectsMethodsForWeb +instanceKlass org/gradle/model/internal/inspect/ValidationProblemCollector +instanceKlass org/gradle/api/internal/initialization/DefaultScriptClassPathResolver +instanceKlass org/gradle/api/internal/artifacts/Module +instanceKlass org/gradle/internal/service/scopes/BuildScopeServices$DependencyMetaDataProviderImpl +instanceKlass org/gradle/api/internal/file/AbstractFileResolver$2 +instanceKlass org/apache/commons/io/FilenameUtils +instanceKlass org/gradle/internal/typeconversion/NotationConverterToNotationParserAdapter$ResultImpl +instanceKlass kotlin/jvm/functions/Function0 +instanceKlass org/gradle/util/DeferredUtil +instanceKlass org/gradle/internal/scripts/ScriptingLanguages$1 +instanceKlass org/gradle/scripts/ScriptingLanguage +instanceKlass org/gradle/internal/scripts/ScriptingLanguages +instanceKlass org/gradle/internal/scripts/DefaultScriptFileResolver +instanceKlass org/gradle/internal/scripts/ScriptFileResolver +instanceKlass org/gradle/initialization/layout/BuildLayoutConfiguration +instanceKlass org/gradle/api/internal/artifacts/DefaultDependencyManagementServices +instanceKlass org/gradle/workers/internal/DefaultWorkResult +instanceKlass org/gradle/api/tasks/WorkResult +instanceKlass org/gradle/internal/work/ConditionalExecutionQueue +instanceKlass org/gradle/groovy/scripts/ScriptRunner +instanceKlass org/gradle/groovy/scripts/internal/DefaultScriptRunnerFactory +instanceKlass org/gradle/groovy/scripts/internal/BuildScopeInMemoryCachingScriptClassCompiler +instanceKlass org/gradle/groovy/scripts/ScriptCompiler +instanceKlass org/gradle/groovy/scripts/DefaultScriptCompilerFactory +instanceKlass org/gradle/groovy/scripts/ScriptSource +instanceKlass org/gradle/groovy/scripts/internal/DefaultScriptCompilationHandler$NoOpGroovyResourceLoader +instanceKlass groovy/lang/GroovyResourceLoader +instanceKlass org/gradle/groovy/scripts/internal/DefaultScriptCompilationHandler +instanceKlass org/gradle/groovy/scripts/internal/BuildOperationBackedScriptCompilationHandler$1 +instanceKlass org/gradle/internal/operations/RunnableBuildOperation +instanceKlass org/gradle/internal/scripts/CompileScriptBuildOperationType$Result +instanceKlass org/gradle/groovy/scripts/internal/BuildOperationBackedScriptCompilationHandler +instanceKlass org/gradle/groovy/scripts/internal/CompiledScript +instanceKlass com/google/common/base/AbstractIterator$1 +instanceKlass com/google/common/base/AbstractIterator +instanceKlass com/google/common/base/Splitter$1 +instanceKlass com/google/common/base/CharMatcher +instanceKlass com/google/common/base/CommonPattern +instanceKlass com/google/common/base/Splitter$Strategy +instanceKlass com/google/common/base/Splitter +instanceKlass org/gradle/configuration/DefaultImportsReader$2 +instanceKlass com/google/common/io/LineBuffer +instanceKlass com/google/common/io/LineReader +instanceKlass com/google/common/io/CharStreams +instanceKlass org/gradle/configuration/DefaultImportsReader$1 +instanceKlass com/google/common/io/Resources +instanceKlass org/gradle/configuration/DefaultImportsReader +instanceKlass org/gradle/internal/classloader/ConfigurableClassLoaderHierarchyHasher +instanceKlass org/gradle/api/internal/initialization/loadercache/DefaultClassLoaderCache$ClassLoaderSpec +instanceKlass org/gradle/api/internal/initialization/loadercache/DefaultClassLoaderCache +instanceKlass org/gradle/internal/classloader/DefaultClassLoaderFactory +instanceKlass org/gradle/api/internal/initialization/loadercache/DefaultClasspathHasher +instanceKlass org/gradle/api/internal/tasks/DefaultTaskDependencyFactory +instanceKlass org/gradle/api/internal/file/FileCollectionInternal +instanceKlass org/gradle/api/internal/tasks/TaskDependencyContainer +instanceKlass org/gradle/api/internal/file/DefaultFileCollectionFactory +instanceKlass org/gradle/api/internal/file/collections/DefaultDirectoryFileTreeFactory +instanceKlass org/gradle/internal/exceptions/DiagnosticsVisitor +instanceKlass org/gradle/internal/typeconversion/ErrorHandlingNotationParser +instanceKlass org/gradle/internal/typeconversion/NotationConvertResult +instanceKlass org/gradle/internal/typeconversion/NotationConverterToNotationParserAdapter +instanceKlass org/gradle/internal/typeconversion/TypeInfo +instanceKlass org/gradle/internal/typeconversion/NotationParserBuilder +instanceKlass org/gradle/api/internal/file/FileOrUriNotationConverter +instanceKlass org/gradle/api/internal/file/AbstractFileResolver +instanceKlass org/gradle/api/internal/file/DefaultFileLookup +instanceKlass org/gradle/api/tasks/util/internal/PatternSets$PatternSetFactory +instanceKlass org/gradle/api/tasks/util/internal/PatternSets +instanceKlass org/gradle/api/internal/changedetection/state/ZipInput +instanceKlass org/gradle/api/internal/changedetection/state/ZipHasher +instanceKlass org/gradle/internal/fingerprint/FileCollectionFingerprint$1 +instanceKlass org/gradle/internal/fingerprint/impl/EmptyCurrentFileCollectionFingerprint +instanceKlass org/gradle/internal/snapshot/FileSystemSnapshotVisitor +instanceKlass org/gradle/internal/fingerprint/CurrentFileCollectionFingerprint +instanceKlass org/gradle/internal/fingerprint/FileCollectionFingerprint +instanceKlass org/gradle/internal/fingerprint/impl/AbstractFingerprintingStrategy +instanceKlass org/gradle/api/internal/changedetection/state/RuntimeClasspathResourceHasher +instanceKlass org/gradle/api/internal/changedetection/state/ResourceFilter$1 +instanceKlass org/gradle/api/internal/changedetection/state/ResourceFilter +instanceKlass org/gradle/internal/fingerprint/FingerprintingStrategy +instanceKlass org/gradle/internal/fingerprint/impl/DefaultFileCollectionSnapshotter +instanceKlass org/gradle/api/file/FileVisitor +instanceKlass org/gradle/internal/fingerprint/impl/DefaultGenericFileTreeSnapshotter +instanceKlass org/gradle/internal/service/scopes/VirtualFileSystemServices$GradleUserHomeServices$1 +instanceKlass org/gradle/internal/service/scopes/VirtualFileSystemServices$GradleUserHomeServices$$Lambda$103 +instanceKlass org/gradle/internal/vfs/impl/DefaultSnapshotHierarchy$1 +instanceKlass org/gradle/internal/vfs/impl/DefaultSnapshotHierarchy +instanceKlass org/gradle/internal/vfs/SnapshotHierarchy +instanceKlass java/util/function/Predicate$$Lambda$102 +instanceKlass org/gradle/internal/snapshot/impl/DirectorySnapshotter$DefaultExcludes$$Lambda$101 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/internal/snapshot/impl/DirectorySnapshotter$DefaultExcludes$$Lambda$100 +instanceKlass org/gradle/internal/snapshot/impl/DirectorySnapshotter$DefaultExcludes$$Lambda$99 +instanceKlass org/gradle/internal/snapshot/impl/DirectorySnapshotter$DefaultExcludes$$Lambda$98 +instanceKlass java/util/function/Predicate$$Lambda$97 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/internal/snapshot/impl/DirectorySnapshotter$DefaultExcludes$EndMatcher +instanceKlass org/gradle/internal/snapshot/impl/DirectorySnapshotter$DefaultExcludes$StartMatcher +instanceKlass org/gradle/internal/snapshot/impl/DirectorySnapshotter$DefaultExcludes +instanceKlass java/nio/file/FileVisitor +instanceKlass org/gradle/internal/snapshot/impl/DirectorySnapshotter +instanceKlass com/google/common/math/IntMath$1 +instanceKlass com/google/common/math/MathPreconditions +instanceKlass com/google/common/math/IntMath +instanceKlass com/google/common/util/concurrent/Striped$1 +instanceKlass com/google/common/util/concurrent/Striped$6 +instanceKlass java/util/concurrent/locks/ReadWriteLock +instanceKlass com/google/common/util/concurrent/Striped$5 +instanceKlass com/google/common/util/concurrent/Striped +instanceKlass org/gradle/internal/vfs/impl/DefaultVirtualFileSystem$StripedProducerGuard +instanceKlass org/apache/tools/ant/util/FileUtils +instanceKlass org/apache/tools/ant/taskdefs/condition/Os +instanceKlass org/apache/tools/ant/taskdefs/condition/Condition +instanceKlass org/apache/tools/ant/types/resources/Appendable +instanceKlass org/apache/tools/ant/types/resources/FileProvider +instanceKlass org/apache/tools/ant/types/resources/Touchable +instanceKlass org/apache/tools/ant/ProjectComponent +instanceKlass org/apache/tools/ant/types/ResourceCollection +instanceKlass org/apache/tools/ant/DirectoryScanner +instanceKlass org/apache/tools/ant/types/ResourceFactory +instanceKlass org/apache/tools/ant/types/selectors/SelectorScanner +instanceKlass org/apache/tools/ant/FileScanner +instanceKlass org/apache/commons/io/filefilter/IOFileFilter +instanceKlass org/apache/commons/io/FileUtils +instanceKlass com/google/common/io/CharSource +instanceKlass com/google/common/hash/PrimitiveSink +instanceKlass com/google/common/io/Closer$SuppressingSuppressor +instanceKlass com/google/common/io/Closer$Suppressor +instanceKlass com/google/common/io/Closer +instanceKlass com/google/common/io/CharSink +instanceKlass java/io/File$TempDirectory +instanceKlass org/gradle/internal/snapshot/CompleteFileSystemLocationSnapshot +instanceKlass org/gradle/internal/snapshot/MetadataSnapshot +instanceKlass org/gradle/internal/snapshot/FileSystemNode +instanceKlass org/gradle/internal/snapshot/FileSystemSnapshot +instanceKlass org/gradle/internal/vfs/watch/FileWatcherRegistry$ChangeHandler +instanceKlass org/gradle/internal/vfs/watch/FileWatcherRegistry +instanceKlass org/gradle/internal/vfs/WindowsFileWatcherRegistry$Factory +instanceKlass org/gradle/api/internal/changedetection/state/CachingResourceHasher +instanceKlass org/gradle/api/internal/changedetection/state/ResourceHasher +instanceKlass org/gradle/api/internal/changedetection/state/RegularFileHasher +instanceKlass org/gradle/api/internal/changedetection/state/ConfigurableNormalizer +instanceKlass org/gradle/api/internal/changedetection/state/DefaultResourceSnapshotterCacheService +instanceKlass org/gradle/configuration/ScriptPlugin +instanceKlass org/gradle/api/Plugin +instanceKlass org/gradle/configuration/internal/DefaultUserCodeApplicationContext +instanceKlass org/gradle/internal/operations/DefaultBuildOperationExecutor$RunnableBuildOperationWorker +instanceKlass org/gradle/internal/operations/BuildOperationQueue +instanceKlass org/gradle/internal/operations/DefaultBuildOperationQueueFactory +instanceKlass org/gradle/internal/operations/BuildOperationQueue$QueueWorker +instanceKlass org/gradle/internal/operations/DefaultBuildOperationExecutor$BuildOperationState +instanceKlass org/gradle/internal/operations/BuildOperationRef +instanceKlass org/gradle/internal/operations/DefaultBuildOperationExecutor$BuildOperationExecutionListener +instanceKlass org/gradle/internal/operations/DefaultBuildOperationExecutor$BuildOperationExecution +instanceKlass org/gradle/internal/operations/BuildOperationWorker +instanceKlass org/gradle/internal/operations/DefaultBuildOperationExecutor +instanceKlass org/gradle/internal/operations/DelegatingBuildOperationExecutor +instanceKlass org/gradle/api/internal/artifacts/DefaultBuildIdentifier +instanceKlass org/gradle/composite/internal/CompositeBuildClassPathInitializer +instanceKlass com/google/common/collect/AbstractMapEntry +instanceKlass com/google/common/collect/LinkedHashMultimap$ValueSetLink +instanceKlass org/gradle/api/artifacts/component/ComponentSelector +instanceKlass org/gradle/composite/internal/DefaultIncludedBuildTaskGraph +instanceKlass org/gradle/composite/internal/IncludedBuildController +instanceKlass org/gradle/composite/internal/DefaultIncludedBuildControllers +instanceKlass org/gradle/initialization/DefaultGradleLauncherFactory$3 +instanceKlass org/gradle/internal/featurelifecycle/ScriptUsageLocationReporter +instanceKlass org/gradle/groovy/scripts/ScriptExecutionListener +instanceKlass org/gradle/profile/BuildProfileServices$1$1 +instanceKlass org/gradle/initialization/DefaultGradleLauncherFactory$NestedBuildFactoryImpl +instanceKlass org/gradle/initialization/NestedBuildFactory +instanceKlass org/gradle/instantexecution/InstantExecutionBuildScopeListenerManagerAction +instanceKlass org/gradle/instantexecution/InstantExecutionClassLoaderScopeRegistryListener +instanceKlass org/gradle/instantexecution/serialization/ScopeLookup +instanceKlass org/gradle/initialization/ClassLoaderScopeRegistryListener +instanceKlass org/gradle/profile/ProfileListener +instanceKlass org/gradle/profile/ProfileEventAdapter +instanceKlass org/gradle/api/internal/artifacts/transform/ArtifactTransformListener +instanceKlass org/gradle/initialization/BuildCompletionListener +instanceKlass org/gradle/api/artifacts/DependencyResolutionListener +instanceKlass org/gradle/execution/taskgraph/TaskListenerInternal +instanceKlass org/gradle/api/ProjectEvaluationListener +instanceKlass org/gradle/internal/service/scopes/BuildScopeListenerManagerAction +instanceKlass org/gradle/profile/BuildProfileServices$1 +instanceKlass org/gradle/tooling/provider/model/ToolingModelBuilder +instanceKlass org/gradle/language/cpp/internal/tooling/ToolingNativeServices$ToolingModelRegistration +instanceKlass org/gradle/authentication/aws/AwsImAuthentication +instanceKlass org/gradle/internal/resource/transport/aws/s3/S3ResourcesPluginServiceRegistry$AuthenticationSchemeAction +instanceKlass org/gradle/nativeplatform/toolchain/internal/metadata/CompilerMetaDataProvider +instanceKlass org/gradle/nativeplatform/toolchain/internal/metadata/CompilerMetaDataProviderFactory +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/nativeplatform/internal/resolve/NativeDependencyResolver +instanceKlass org/gradle/nativeplatform/internal/resolve/LibraryBinaryLocator +instanceKlass org/gradle/nativeplatform/internal/resolve/NativeDependencyResolverServices +instanceKlass org/gradle/language/cpp/internal/NativeDependencyCache +instanceKlass org/gradle/ide/xcode/internal/xcodeproj/GidGenerator +instanceKlass org/gradle/ide/xcode/internal/services/XcodeServices$GlobalIdGeneratorServices +instanceKlass org/gradle/plugins/ide/internal/configurer/UniqueProjectNameProvider +instanceKlass org/gradle/plugins/ide/internal/tooling/ToolingModelServices$BuildScopeToolingServices +instanceKlass org/gradle/caching/http/internal/HttpBuildCacheServiceServices$$Lambda$96 +instanceKlass org/apache/http/HttpRequest +instanceKlass org/apache/http/HttpMessage +instanceKlass org/gradle/caching/http/internal/HttpBuildCacheRequestCustomizer +instanceKlass org/gradle/caching/http/internal/DefaultHttpBuildCacheServiceFactory +instanceKlass org/gradle/caching/BuildCacheServiceFactory +instanceKlass org/gradle/caching/configuration/AbstractBuildCache +instanceKlass org/gradle/caching/configuration/BuildCache +instanceKlass org/gradle/caching/configuration/internal/DefaultBuildCacheServiceRegistration +instanceKlass org/gradle/ivy/IvyDescriptorArtifact +instanceKlass org/gradle/ivy/IvyModule +instanceKlass org/gradle/api/publish/ivy/internal/publisher/IvyPublisher +instanceKlass org/gradle/api/publish/ivy/internal/IvyServices$BuildServices +instanceKlass org/gradle/api/internal/artifacts/ivyservice/projectmodule/DefaultProjectDependencyPublicationResolver +instanceKlass org/gradle/api/internal/artifacts/ivyservice/projectmodule/ProjectDependencyPublicationResolver +instanceKlass org/gradle/maven/MavenPomArtifact +instanceKlass org/gradle/maven/MavenModule +instanceKlass org/gradle/api/publish/maven/internal/publisher/MavenDuplicatePublicationTracker +instanceKlass org/gradle/api/publish/internal/validation/DuplicatePublicationTracker +instanceKlass org/gradle/api/publish/maven/internal/publisher/MavenPublishers +instanceKlass org/gradle/api/publication/maven/internal/MavenFactory +instanceKlass org/gradle/api/publication/maven/internal/VersionRangeMapper +instanceKlass org/gradle/api/publish/maven/internal/MavenPublishServices$ComponentRegistrationAction +instanceKlass org/gradle/language/base/artifact/SourcesArtifact +instanceKlass org/gradle/api/component/Artifact +instanceKlass org/gradle/api/internal/component/DefaultComponentTypeRegistry$DefaultComponentTypeRegistration +instanceKlass org/gradle/jvm/JvmLibrary +instanceKlass org/gradle/platform/base/Library +instanceKlass org/gradle/api/component/Component +instanceKlass org/gradle/api/internal/component/ComponentTypeRegistration +instanceKlass org/gradle/api/internal/component/DefaultComponentTypeRegistry +instanceKlass org/gradle/language/jvm/internal/JvmPluginServiceRegistry$ComponentRegistrationAction +instanceKlass org/gradle/jvm/internal/services/PlatformJvmServices$LocalLibraryDependencyResolverFactory +instanceKlass org/gradle/jvm/internal/services/PlatformJvmServices$BuildScopeServices +instanceKlass org/gradle/jvm/toolchain/internal/DefaultJavaInstallationRegistry +instanceKlass org/gradle/jvm/toolchain/JavaInstallationRegistry +instanceKlass org/gradle/api/internal/resolve/ProjectModelResolver +instanceKlass org/gradle/platform/base/internal/registry/ComponentModelBaseServiceRegistry$BuildScopeServices +instanceKlass org/gradle/vcs/internal/resolver/VcsDependencyResolver +instanceKlass org/gradle/vcs/internal/resolver/VcsVersionWorkingDirResolver +instanceKlass org/gradle/vcs/internal/services/VersionControlServices$VersionControlBuildServices +instanceKlass org/gradle/authentication/http/HttpHeaderAuthentication +instanceKlass org/gradle/authentication/http/DigestAuthentication +instanceKlass org/gradle/internal/authentication/AbstractAuthentication +instanceKlass org/gradle/internal/authentication/AuthenticationInternal +instanceKlass org/gradle/authentication/http/BasicAuthentication +instanceKlass org/gradle/authentication/Authentication +instanceKlass org/gradle/internal/authentication/DefaultAuthenticationSchemeRegistry +instanceKlass org/gradle/internal/resource/transport/http/HttpResourcesPluginServiceRegistry$AuthenticationSchemeAction +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/ResolverProviderFactory +instanceKlass org/gradle/internal/component/external/model/ModuleComponentArtifactMetadata +instanceKlass org/gradle/internal/component/model/ComponentArtifactMetadata +instanceKlass org/gradle/internal/verifier/HttpRedirectVerifier +instanceKlass org/gradle/internal/resource/cached/AbstractCachedIndex +instanceKlass org/gradle/internal/resource/TextUriResourceLoader$Factory +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/ModuleRepositoryCacheProvider +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/verification/DependencyVerificationOverride +instanceKlass org/gradle/internal/resolve/caching/CrossBuildCachingRuleExecutor +instanceKlass org/gradle/internal/resolve/caching/CachingRuleExecutor +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/strategy/VersionParser +instanceKlass org/gradle/api/internal/artifacts/ivyservice/projectmodule/ProjectDependencyResolver +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/ComponentResolvers +instanceKlass org/gradle/internal/resolve/resolver/OriginArtifactSelector +instanceKlass org/gradle/internal/resolve/resolver/ArtifactResolver +instanceKlass org/gradle/internal/resolve/resolver/DependencyToComponentIdResolver +instanceKlass org/gradle/internal/resolve/resolver/ComponentMetaDataResolver +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/ResolveIvyFactory +instanceKlass org/gradle/api/internal/artifacts/repositories/transport/RepositoryTransportFactory +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/StartParameterResolutionOverride +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/excludes/ModuleExclusions +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/ModuleRepositoryCaches +instanceKlass org/gradle/util/internal/SimpleMapInterner +instanceKlass org/gradle/util/BuildCommencedTimeProvider +instanceKlass org/gradle/api/internal/runtimeshaded/RuntimeShadedJarFactory +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/ModuleSourcesSerializer +instanceKlass org/gradle/api/internal/artifacts/repositories/metadata/MavenMutableModuleMetadataFactory +instanceKlass org/gradle/api/internal/artifacts/repositories/metadata/IvyMutableModuleMetadataFactory +instanceKlass org/gradle/api/internal/artifacts/repositories/metadata/MutableModuleMetadataFactory +instanceKlass org/gradle/internal/resource/local/LocallyAvailableResourceFinder +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/FileStoreAndIndexProvider +instanceKlass org/gradle/api/internal/artifacts/verification/signatures/SignatureVerificationServiceFactory +instanceKlass org/gradle/internal/resource/TextUriResourceLoader +instanceKlass org/gradle/api/internal/artifacts/repositories/resolver/ExternalResourceAccessor +instanceKlass org/gradle/api/internal/artifacts/ComponentSelectorConverter +instanceKlass org/gradle/api/internal/artifacts/mvnsettings/LocalMavenRepositoryLocator +instanceKlass org/gradle/api/internal/artifacts/ivyservice/projectmodule/ProjectPublicationRegistry +instanceKlass org/gradle/api/internal/filestore/ArtifactIdentifierFileStore +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/RepositoryBlacklister +instanceKlass org/gradle/api/internal/artifacts/ArtifactDependencyResolver +instanceKlass org/gradle/api/internal/artifacts/mvnsettings/MavenSettingsProvider +instanceKlass org/gradle/api/internal/artifacts/mvnsettings/MavenFileLocations +instanceKlass org/gradle/api/internal/artifacts/ivyservice/projectmodule/LocalComponentRegistry +instanceKlass org/gradle/internal/resource/cached/ExternalResourceFileStore +instanceKlass org/gradle/internal/resource/local/FileStore +instanceKlass org/gradle/internal/resource/cached/CachedExternalResourceIndex +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/dynamicversions/AbstractModuleVersionsCache +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/dynamicversions/ModuleVersionsCache +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/AbstractModuleMetadataCache +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/ModuleMetadataCache +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/artifacts/AbstractArtifactsCache +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/artifacts/ModuleArtifactsCache +instanceKlass org/gradle/api/internal/artifacts/ivyservice/modulecache/artifacts/ModuleArtifactCache +instanceKlass org/gradle/api/internal/artifacts/component/ComponentIdentifierFactory +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/result/AttributeContainerSerializer +instanceKlass org/gradle/internal/resource/local/FileStoreSearcher +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementBuildScopeServices +instanceKlass org/gradle/plugin/management/internal/PluginResolutionStrategyInternal +instanceKlass org/gradle/plugin/management/PluginResolutionStrategy +instanceKlass org/gradle/plugin/use/internal/PluginResolverFactory +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/strategy/VersionSelectorScheme +instanceKlass org/gradle/plugin/use/internal/PluginDependencyResolutionServices +instanceKlass org/gradle/plugin/use/resolve/service/internal/InjectedClasspathPluginResolver +instanceKlass org/gradle/plugin/use/resolve/internal/PluginResolver +instanceKlass org/gradle/api/internal/artifacts/dsl/dependencies/ProjectFinder +instanceKlass org/gradle/api/internal/artifacts/DependencyResolutionServices +instanceKlass org/gradle/plugin/management/internal/autoapply/AutoAppliedPluginRegistry +instanceKlass org/gradle/plugin/internal/PluginUsePluginServiceRegistry$BuildScopeServices +instanceKlass org/gradle/plugin/use/resolve/internal/PluginResolverContributor +instanceKlass org/gradle/composite/internal/CompositeBuildServices$CompositeBuildBuildScopeServices +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/api/internal/artifacts/dsl/dependencies/DependencyFactory +instanceKlass org/gradle/plugin/management/internal/autoapply/AutoAppliedPluginHandler +instanceKlass org/gradle/kotlin/dsl/provider/KotlinScriptEvaluator +instanceKlass org/gradle/kotlin/dsl/provider/ClassPathModeExceptionCollector +instanceKlass org/gradle/plugin/use/internal/PluginRequestApplicator +instanceKlass org/gradle/kotlin/dsl/provider/PluginRequestsHandler +instanceKlass org/gradle/kotlin/dsl/provider/KotlinScriptClassPathProvider +instanceKlass kotlin/jvm/functions/Function2 +instanceKlass kotlin/Function +instanceKlass org/gradle/kotlin/dsl/provider/BuildServices +instanceKlass org/gradle/kotlin/dsl/concurrent/AsyncIOScopeFactory +instanceKlass org/gradle/kotlin/dsl/concurrent/BuildServices +instanceKlass org/gradle/kotlin/dsl/cache/ScriptCache +instanceKlass org/gradle/kotlin/dsl/cache/BuildServices +instanceKlass org/gradle/caching/configuration/internal/BuildCacheConfigurationInternal +instanceKlass org/gradle/caching/configuration/BuildCacheConfiguration +instanceKlass org/gradle/caching/configuration/CompatibilitySupportForBuildCacheConfiguration +instanceKlass org/gradle/caching/local/internal/DirectoryBuildCacheFileStoreFactory +instanceKlass org/gradle/caching/configuration/internal/BuildCacheServiceRegistration +instanceKlass org/gradle/caching/internal/BuildCacheServices$2 +instanceKlass org/gradle/api/internal/file/DefaultFileSystemOperations +instanceKlass org/gradle/api/file/FileSystemOperations +instanceKlass org/gradle/internal/resource/LocalBinaryResource +instanceKlass org/gradle/internal/resource/ReadableContent +instanceKlass org/gradle/api/resources/internal/ReadableResourceInternal +instanceKlass org/gradle/internal/resource/Resource +instanceKlass org/gradle/api/resources/ReadableResource +instanceKlass org/gradle/api/resources/Resource +instanceKlass org/gradle/api/internal/file/collections/MinimalFileTree +instanceKlass org/gradle/api/internal/file/collections/MinimalFileCollection +instanceKlass org/gradle/api/internal/file/delete/DeleteSpecInternal +instanceKlass org/gradle/api/file/DeleteSpec +instanceKlass org/gradle/api/internal/file/DefaultFileOperations +instanceKlass org/gradle/api/internal/file/FileOperations +instanceKlass org/gradle/process/internal/DefaultExecOperations +instanceKlass org/gradle/process/ExecOperations +instanceKlass org/gradle/internal/service/scopes/BuildScopeServices$$Lambda$95 +instanceKlass org/gradle/tooling/provider/model/internal/BuildScopeToolingModelBuilderRegistryAction +instanceKlass org/gradle/api/internal/project/ProjectInternal +instanceKlass org/gradle/api/internal/plugins/PluginAwareInternal +instanceKlass org/gradle/model/internal/registry/ModelRegistryScope +instanceKlass org/gradle/api/internal/DomainObjectContext +instanceKlass org/gradle/api/internal/file/HasScriptServices +instanceKlass org/gradle/api/internal/project/ProjectIdentifier +instanceKlass org/gradle/api/Project +instanceKlass org/gradle/api/plugins/PluginAware +instanceKlass org/gradle/api/internal/initialization/ScriptClassPathInitializer +instanceKlass org/gradle/api/internal/resources/DefaultResourceHandler$Factory +instanceKlass org/gradle/api/internal/resources/ApiTextResourceAdapter$Factory +instanceKlass org/gradle/initialization/buildsrc/BuildSourceBuilder +instanceKlass org/gradle/configuration/DefaultScriptPluginFactory +instanceKlass org/gradle/groovy/scripts/internal/FileCacheBackedScriptClassCompiler +instanceKlass org/gradle/api/internal/project/DefaultProjectRegistry +instanceKlass org/gradle/internal/service/scopes/BuildScopeServiceRegistryFactory +instanceKlass org/gradle/api/internal/plugins/PluginInspector +instanceKlass org/gradle/api/internal/tasks/TaskStatistics +instanceKlass org/gradle/internal/service/scopes/ServiceRegistryFactory +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementServices +instanceKlass org/gradle/api/internal/properties/GradleProperties +instanceKlass org/gradle/initialization/InitScriptHandler +instanceKlass org/gradle/api/internal/artifacts/ProjectModuleFactory +instanceKlass org/gradle/groovy/scripts/internal/ScriptCompilationHandler +instanceKlass org/gradle/tooling/provider/model/ToolingModelBuilderRegistry +instanceKlass org/gradle/api/internal/project/taskfactory/ITaskFactory +instanceKlass org/gradle/internal/actor/ActorFactory +instanceKlass org/gradle/initialization/BuildLoader +instanceKlass org/gradle/api/internal/component/ComponentTypeRegistry +instanceKlass org/gradle/api/internal/project/ProjectTaskLister +instanceKlass org/gradle/api/internal/tasks/userinput/BuildScanUserInputHandler +instanceKlass org/gradle/api/internal/tasks/userinput/UserInputReader +instanceKlass org/gradle/api/internal/tasks/userinput/UserInputHandler +instanceKlass org/gradle/internal/authentication/AuthenticationSchemeRegistry +instanceKlass org/gradle/api/internal/artifacts/configurations/DependencyMetaDataProvider +instanceKlass org/gradle/internal/operations/logging/BuildOperationLoggerFactory +instanceKlass org/gradle/api/invocation/BuildInvocationDetails +instanceKlass org/gradle/internal/build/PublicBuildPath +instanceKlass org/gradle/configuration/ProjectsPreparer +instanceKlass org/gradle/configuration/InitScriptProcessor +instanceKlass org/gradle/groovy/scripts/ScriptCompilerFactory +instanceKlass org/gradle/groovy/scripts/internal/ScriptRunnerFactory +instanceKlass org/gradle/groovy/scripts/internal/ScriptClassCompiler +instanceKlass org/gradle/api/internal/provider/ValueSourceProviderFactory +instanceKlass org/gradle/initialization/ClassLoaderScopeRegistry +instanceKlass org/gradle/api/internal/plugins/PluginRegistry +instanceKlass org/gradle/initialization/ProjectAccessListener +instanceKlass org/gradle/api/internal/project/IsolatedAntBuilder +instanceKlass org/gradle/execution/ProjectConfigurer +instanceKlass org/gradle/api/internal/project/IProjectFactory +instanceKlass org/gradle/internal/resource/TextFileResourceLoader +instanceKlass org/gradle/configuration/project/ProjectEvaluator +instanceKlass org/gradle/initialization/SettingsProcessor +instanceKlass org/gradle/api/provider/ProviderFactory +instanceKlass org/gradle/initialization/SettingsLoaderFactory +instanceKlass org/gradle/api/internal/initialization/ScriptHandlerFactory +instanceKlass org/gradle/configuration/ScriptPluginFactory +instanceKlass org/gradle/api/internal/initialization/ScriptClassPathResolver +instanceKlass org/gradle/initialization/SettingsPreparer +instanceKlass org/gradle/initialization/IGradlePropertiesLoader +instanceKlass org/gradle/initialization/ProjectDescriptorRegistry +instanceKlass org/gradle/api/internal/project/ProjectRegistry +instanceKlass org/gradle/initialization/DefaultGradleLauncherFactory$1 +instanceKlass org/gradle/api/artifacts/component/ProjectComponentIdentifier +instanceKlass org/gradle/api/artifacts/component/ComponentIdentifier +instanceKlass org/gradle/internal/build/AbstractBuildState +instanceKlass org/gradle/internal/Actions$1 +instanceKlass org/gradle/internal/Actions$NullAction +instanceKlass org/gradle/internal/Actions +instanceKlass org/gradle/plugin/management/internal/PluginRequests$EmptyPluginRequests +instanceKlass org/gradle/plugin/management/internal/PluginRequests +instanceKlass org/gradle/api/internal/BuildDefinition +instanceKlass org/gradle/internal/operations/notify/BuildOperationProgressNotification +instanceKlass org/gradle/internal/operations/notify/BuildOperationFinishedNotification +instanceKlass org/gradle/internal/operations/notify/BuildOperationStartedNotification +instanceKlass org/gradle/internal/operations/notify/BuildOperationNotificationBridge$Adapter +instanceKlass org/gradle/internal/operations/notify/BuildOperationNotificationBridge$RecordingListener +instanceKlass org/gradle/internal/operations/notify/BuildOperationNotificationBridge$ReplayAndAttachListener +instanceKlass org/gradle/internal/operations/notify/BuildOperationNotificationListener +instanceKlass org/gradle/internal/operations/notify/BuildOperationNotificationBridge$State +instanceKlass org/gradle/tooling/internal/provider/serialization/DefaultPayloadClassLoaderRegistry$DetailsToClassLoaderTransformer +instanceKlass org/gradle/tooling/internal/provider/serialization/DefaultPayloadClassLoaderRegistry$ClassLoaderToDetailsTransformer +instanceKlass org/gradle/tooling/internal/provider/serialization/DefaultPayloadClassLoaderRegistry +instanceKlass org/gradle/tooling/internal/provider/serialization/ClassLoaderDetails +instanceKlass org/gradle/tooling/internal/provider/serialization/DeserializeMap +instanceKlass org/gradle/tooling/internal/provider/serialization/SerializeMap +instanceKlass org/gradle/tooling/internal/provider/serialization/WellKnownClassLoaderRegistry +instanceKlass org/gradle/tooling/internal/provider/serialization/ModelClassLoaderFactory +instanceKlass org/gradle/tooling/internal/provider/serialization/DaemonSidePayloadClassLoaderFactory +instanceKlass org/gradle/internal/classpath/DefaultCachedClasspathTransformer$CachedJarFileTransformer +instanceKlass org/gradle/internal/classpath/DefaultCachedClasspathTransformer$FileAccessTrackingJarFileTransformer +instanceKlass org/gradle/internal/resource/local/SingleDepthFileAccessTracker +instanceKlass org/gradle/cache/internal/SingleDepthFilesFinder +instanceKlass org/gradle/cache/internal/UnusedVersionsCacheCleanup$1 +instanceKlass org/gradle/cache/internal/AbstractCacheCleanup +instanceKlass org/gradle/cache/internal/CompositeCleanupAction$Builder +instanceKlass org/gradle/cache/internal/CompositeCleanupAction +instanceKlass org/gradle/internal/file/JarCache +instanceKlass org/gradle/internal/classpath/DefaultCachedClasspathTransformer +instanceKlass org/gradle/internal/hash/DefaultFileHasher +instanceKlass org/gradle/api/internal/changedetection/state/CachingFileHasher +instanceKlass org/gradle/internal/hash/HashCode +instanceKlass com/google/common/base/Charsets +instanceKlass org/gradle/internal/hash/Hashing$MessageDigestHasher +instanceKlass org/gradle/internal/hash/Hashing$DefaultHasher +instanceKlass org/gradle/internal/hash/Hasher +instanceKlass org/gradle/internal/hash/PrimitiveHasher +instanceKlass org/gradle/internal/hash/Hashing$MessageDigestHashFunction +instanceKlass org/gradle/internal/hash/HashFunction +instanceKlass org/gradle/internal/hash/Hashing +instanceKlass org/gradle/internal/hash/DefaultStreamHasher +instanceKlass com/google/common/collect/MapMakerInternalMap$WeakKeyDummyValueEntry$Helper +instanceKlass com/google/common/collect/MapMakerInternalMap$InternalEntry +instanceKlass com/google/common/collect/MapMakerInternalMap$1 +instanceKlass com/google/common/collect/MapMakerInternalMap$InternalEntryHelper +instanceKlass com/google/common/collect/MapMakerInternalMap$WeakValueReference +instanceKlass com/google/common/collect/Interners$InternerImpl +instanceKlass com/google/common/collect/MapMaker +instanceKlass com/google/common/collect/Interners$InternerBuilder +instanceKlass com/google/common/collect/Interners +instanceKlass org/gradle/api/internal/changedetection/state/DefaultFileAccessTimeJournal$1 +instanceKlass org/gradle/cache/internal/DefaultCacheAccess$IndexedCacheEntry +instanceKlass org/gradle/cache/internal/locklistener/FileLockPacketPayload +instanceKlass java/net/DatagramPacket$1 +instanceKlass org/gradle/cache/internal/locklistener/DefaultFileLockContentionHandler$ContendedAction +instanceKlass org/gradle/cache/internal/locklistener/DefaultFileLockContentionHandler$1 +instanceKlass org/gradle/internal/Factories$1 +instanceKlass org/gradle/internal/Factories +instanceKlass org/gradle/cache/internal/CrossProcessSynchronizingCache +instanceKlass org/gradle/cache/internal/InMemoryDecoratedCache +instanceKlass org/gradle/cache/internal/InMemoryCacheDecoratorFactory$CacheDetails +instanceKlass com/google/common/cache/LocalCache$AbstractReferenceEntry +instanceKlass com/google/common/cache/LongAddables$1 +instanceKlass com/google/common/cache/Striped64$Cell +instanceKlass com/google/common/cache/Striped64$1 +instanceKlass sun/misc/Unsafe +instanceKlass com/google/common/cache/LongAddable +instanceKlass com/google/common/cache/LongAddables +instanceKlass com/google/common/cache/AbstractCache$SimpleStatsCounter +instanceKlass org/gradle/cache/internal/LoggingEvictionListener +instanceKlass org/gradle/cache/internal/InMemoryCacheDecoratorFactory$1 +instanceKlass org/gradle/cache/internal/AsyncCacheAccessDecoratedCache +instanceKlass org/gradle/cache/internal/CacheAccessWorker +instanceKlass org/gradle/cache/internal/DefaultMultiProcessSafePersistentIndexedCache +instanceKlass org/gradle/cache/internal/DefaultCacheAccess$$Lambda$94 +instanceKlass org/gradle/cache/internal/btree/BTreePersistentIndexedCache +instanceKlass org/gradle/cache/internal/InMemoryCacheDecoratorFactory$InMemoryCacheDecorator +instanceKlass org/gradle/cache/PersistentIndexedCacheParameters +instanceKlass org/gradle/api/internal/changedetection/state/DefaultFileAccessTimeJournal +instanceKlass org/gradle/cache/internal/HeapProportionalCacheSizer +instanceKlass org/gradle/cache/CacheDecorator +instanceKlass org/gradle/cache/internal/MultiProcessSafeAsyncPersistentIndexedCache +instanceKlass kotlin/collections/ArraysUtilJVM +instanceKlass kotlin/collections/ArraysKt__ArraysJVMKt +instanceKlass kotlin/collections/CollectionsKt__CollectionsJVMKt +instanceKlass org/gradle/internal/file/FilePathUtil +instanceKlass org/gradle/internal/file/DefaultFileHierarchySet$Node +instanceKlass org/gradle/internal/file/DefaultFileHierarchySet$PrefixFileSet +instanceKlass org/gradle/internal/file/DefaultFileHierarchySet$EmptyFileHierarchySet +instanceKlass org/gradle/internal/file/FileHierarchySet +instanceKlass org/gradle/internal/file/DefaultFileHierarchySet +instanceKlass org/gradle/internal/vfs/DefaultAdditiveCacheLocations +instanceKlass org/apache/commons/lang/StringUtils +instanceKlass org/gradle/api/internal/artifacts/ivyservice/DefaultArtifactCaches$$Lambda$93 +instanceKlass org/gradle/api/internal/artifacts/ivyservice/WritableArtifactCacheLockingManager +instanceKlass org/gradle/api/internal/artifacts/ivyservice/DefaultArtifactCaches$LateInitWritableArtifactCacheLockingManager +instanceKlass org/gradle/api/internal/artifacts/ivyservice/DefaultArtifactCacheMetadata +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementGradleUserHomeScopeServices$$Lambda$92 +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ArtifactCacheLockingManager +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ArtifactCacheMetadata +instanceKlass org/gradle/api/internal/artifacts/ivyservice/DefaultArtifactCaches +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass org/gradle/cache/internal/DefaultCacheFactory$ReferenceTrackingCache +instanceKlass org/gradle/cache/internal/DefaultCacheFactory$DirCacheReference +instanceKlass org/gradle/cache/internal/cacheops/CacheOperationStack +instanceKlass org/gradle/cache/internal/LockOnDemandCrossProcessCacheAccess$ContendedAction +instanceKlass org/gradle/cache/internal/LockOnDemandCrossProcessCacheAccess$UnlockAction +instanceKlass org/gradle/cache/internal/DefaultCacheAccess$1 +instanceKlass org/gradle/cache/internal/DefaultCacheAccess$$Lambda$91 +instanceKlass org/gradle/cache/internal/DefaultCacheAccess$$Lambda$90 +instanceKlass org/gradle/cache/internal/cacheops/CacheAccessOperationsStack +instanceKlass org/gradle/cache/internal/DefaultPersistentDirectoryStore$Cleanup +instanceKlass org/gradle/cache/internal/DefaultPersistentDirectoryStore$1 +instanceKlass org/gradle/cache/internal/DefaultPersistentDirectoryStore$2 +instanceKlass org/gradle/cache/internal/DefaultCacheAccess$$Lambda$89 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/cache/MultiProcessSafePersistentIndexedCache +instanceKlass org/gradle/cache/UnitOfWorkParticipant +instanceKlass org/gradle/cache/PersistentIndexedCache +instanceKlass org/gradle/cache/AsyncCacheAccess +instanceKlass org/gradle/cache/internal/AbstractCrossProcessCacheAccess +instanceKlass org/gradle/cache/CrossProcessCacheAccess +instanceKlass org/gradle/cache/internal/DefaultCacheAccess +instanceKlass org/gradle/cache/internal/CacheInitializationAction +instanceKlass org/gradle/cache/internal/CacheCleanupAction +instanceKlass org/gradle/cache/internal/CacheCoordinator +instanceKlass org/gradle/cache/internal/DefaultPersistentDirectoryStore +instanceKlass org/gradle/cache/internal/DefaultCacheRepository$PersistentCacheBuilder +instanceKlass org/gradle/cache/CacheBuilder +instanceKlass org/gradle/cache/internal/DefaultCacheRepository +instanceKlass org/gradle/cache/internal/ReferencablePersistentCache +instanceKlass org/gradle/cache/PersistentCache +instanceKlass org/gradle/cache/CleanableStore +instanceKlass org/gradle/cache/CacheAccess +instanceKlass org/gradle/cache/internal/DefaultCacheFactory +instanceKlass org/gradle/cache/internal/DefaultCacheScopeMapping$1 +instanceKlass com/google/common/primitives/Ints +instanceKlass org/apache/commons/lang/ArrayUtils +instanceKlass org/gradle/cache/internal/CacheVersion +instanceKlass org/gradle/util/GradleVersion$Stage +instanceKlass org/gradle/cache/internal/CacheVersionMapping$Builder +instanceKlass org/gradle/cache/internal/CacheVersionMapping$1 +instanceKlass org/gradle/cache/internal/CacheVersionMapping +instanceKlass org/gradle/internal/resource/local/FileAccessTracker +instanceKlass org/gradle/cache/CleanupAction +instanceKlass org/gradle/cache/internal/FilesFinder +instanceKlass org/gradle/internal/classpath/DefaultClasspathTransformerCacheFactory +instanceKlass org/gradle/api/artifacts/component/BuildIdentifier +instanceKlass org/gradle/internal/build/NestedRootBuild +instanceKlass org/gradle/internal/build/RootBuildState +instanceKlass org/gradle/internal/build/StandAloneNestedBuild +instanceKlass org/gradle/internal/build/NestedBuildState +instanceKlass org/gradle/composite/internal/DefaultIncludedBuildRegistry +instanceKlass org/gradle/api/internal/artifacts/ivyservice/dependencysubstitution/DependencySubstitutionsInternal +instanceKlass org/gradle/api/artifacts/DependencySubstitutions +instanceKlass org/gradle/composite/internal/IncludedBuildDependencySubstitutionsBuilder +instanceKlass org/gradle/composite/internal/DefaultIncludedBuildFactory +instanceKlass org/gradle/initialization/GradleLauncher +instanceKlass org/gradle/internal/build/BuildState +instanceKlass org/gradle/initialization/DefaultGradleLauncherFactory +instanceKlass org/gradle/api/internal/artifacts/DefaultImmutableModuleIdentifierFactory +instanceKlass com/google/common/collect/Table +instanceKlass com/google/common/collect/Synchronized$SynchronizedObject +instanceKlass com/google/common/collect/Synchronized +instanceKlass com/google/common/collect/SortedSetMultimap +instanceKlass com/google/common/collect/Multimaps +instanceKlass java/util/concurrent/atomic/AtomicReferenceArray +instanceKlass com/google/common/cache/RemovalListener +instanceKlass com/google/common/cache/Weigher +instanceKlass com/google/common/base/Equivalence +instanceKlass com/google/common/base/MoreObjects +instanceKlass com/google/common/cache/LocalCache$1 +instanceKlass com/google/common/cache/ReferenceEntry +instanceKlass com/google/common/cache/LocalCache$LocalManualCache +instanceKlass com/google/common/cache/LocalCache$StrongValueReference +instanceKlass com/google/common/cache/LocalCache$ValueReference +instanceKlass com/google/common/cache/CacheBuilder$2 +instanceKlass com/google/common/cache/CacheStats +instanceKlass com/google/common/base/Suppliers$SupplierOfInstance +instanceKlass com/google/common/base/Suppliers +instanceKlass com/google/common/cache/CacheBuilder$1 +instanceKlass com/google/common/cache/AbstractCache$StatsCounter +instanceKlass com/google/common/cache/LoadingCache +instanceKlass com/google/common/cache/Cache +instanceKlass com/google/common/base/Ticker +instanceKlass com/google/common/base/Supplier +instanceKlass com/google/common/cache/CacheBuilder +instanceKlass org/gradle/internal/resources/AbstractResourceLockRegistry$ResourceLockProducer +instanceKlass org/gradle/internal/resources/AbstractResourceLockRegistry +instanceKlass org/gradle/internal/resources/ResourceLockRegistry +instanceKlass org/gradle/internal/work/DefaultWorkerLeaseService$ProjectLockStatisticsImpl +instanceKlass org/gradle/internal/resources/ProjectLockStatistics +instanceKlass org/gradle/internal/work/DefaultWorkerLeaseService$Root +instanceKlass org/gradle/internal/work/DefaultWorkerLeaseService$LeaseHolder +instanceKlass org/gradle/internal/work/WorkerLeaseRegistry$WorkerLease +instanceKlass org/gradle/internal/resources/ResourceLock +instanceKlass org/gradle/internal/work/DefaultWorkerLeaseService +instanceKlass org/gradle/internal/resources/DefaultResourceLockCoordinationService +instanceKlass org/gradle/internal/work/StopShieldingWorkerLeaseService +instanceKlass org/gradle/internal/instantiation/generator/DefaultInstantiationScheme$DefaultDeserializationInstantiator +instanceKlass org/gradle/internal/instantiation/InstanceFactory +instanceKlass org/gradle/internal/instantiation/generator/DependencyInjectingInstantiator +instanceKlass javax/inject/Inject +instanceKlass org/gradle/internal/instantiation/DeserializationInstantiator +instanceKlass org/gradle/internal/instantiation/generator/DefaultInstantiationScheme +instanceKlass org/gradle/internal/instantiation/generator/ParamsMatchingConstructorSelector +instanceKlass org/gradle/internal/instantiation/generator/Jsr330ConstructorSelector +instanceKlass com/google/common/collect/ImmutableMultimap$Builder +instanceKlass com/google/common/collect/Multiset +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator$$Lambda$88 +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator$GeneratedClassImpl +instanceKlass org/gradle/internal/instantiation/generator/ClassGenerator$GeneratedClass +instanceKlass org/gradle/cache/internal/DefaultCrossBuildInMemoryCacheFactory$AbstractCrossBuildInMemoryCache +instanceKlass org/gradle/model/internal/asm/ClassGeneratorSuffixRegistry +instanceKlass org/gradle/api/DomainObjectSet +instanceKlass org/gradle/api/NamedDomainObjectContainer +instanceKlass org/gradle/util/Configurable +instanceKlass org/gradle/api/NamedDomainObjectSet +instanceKlass org/gradle/api/NamedDomainObjectCollection +instanceKlass org/gradle/api/DomainObjectCollection +instanceKlass org/gradle/api/file/DirectoryProperty +instanceKlass org/gradle/api/file/RegularFileProperty +instanceKlass org/gradle/api/file/FileSystemLocationProperty +instanceKlass org/gradle/api/provider/Property +instanceKlass org/gradle/api/provider/MapProperty +instanceKlass org/gradle/api/provider/SetProperty +instanceKlass org/gradle/api/provider/ListProperty +instanceKlass org/gradle/api/provider/HasMultipleValues +instanceKlass org/gradle/api/provider/Provider +instanceKlass org/gradle/api/file/ConfigurableFileTree +instanceKlass org/gradle/api/file/DirectoryTree +instanceKlass org/gradle/api/file/FileTree +instanceKlass org/gradle/api/file/ConfigurableFileCollection +instanceKlass org/gradle/api/provider/HasConfigurableValue +instanceKlass org/gradle/api/file/FileCollection +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator$InstantiationStrategy +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator$ClassInspectionVisitor +instanceKlass com/google/common/reflect/TypeCapture +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator$UnclaimedPropertyHandler +instanceKlass com/google/common/collect/AbstractMultimap +instanceKlass org/gradle/internal/instantiation/generator/AbstractClassGenerator +instanceKlass org/gradle/internal/instantiation/generator/ClassGenerator +instanceKlass org/gradle/internal/instantiation/generator/DefaultInstantiatorFactory$ClassGeneratorBackedManagedFactory +instanceKlass org/gradle/internal/instantiation/InstantiationScheme +instanceKlass org/gradle/internal/instantiation/generator/ConstructorSelector +instanceKlass org/gradle/internal/instantiation/generator/DefaultInstantiatorFactory +instanceKlass org/gradle/cache/internal/CrossBuildInMemoryCache +instanceKlass org/gradle/cache/internal/DefaultCrossBuildInMemoryCacheFactory +instanceKlass org/gradle/composite/internal/DefaultBuildableCompositeBuildContext +instanceKlass org/gradle/internal/reflect/AnnotationCategory +instanceKlass com/google/common/collect/ListMultimap +instanceKlass org/gradle/plugins/ide/internal/IdeArtifactStore +instanceKlass com/google/common/cache/CacheLoader +instanceKlass org/gradle/jvm/toolchain/internal/JavaInstallationProbe +instanceKlass org/gradle/vcs/internal/VcsResolver +instanceKlass org/gradle/vcs/internal/resolver/VcsVersionSelectionCache +instanceKlass org/gradle/vcs/internal/VersionControlSpecFactory +instanceKlass org/gradle/vcs/internal/VcsMappingsStore +instanceKlass org/gradle/vcs/internal/VcsMappingFactory +instanceKlass org/gradle/vcs/internal/services/VersionControlServices$VersionControlBuildTreeServices +instanceKlass org/gradle/api/internal/artifacts/ivyservice/resolveengine/store/ResolutionResultsStoreFactory +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementBuildTreeScopeServices +instanceKlass org/gradle/internal/build/BuildStateRegistry +instanceKlass org/gradle/composite/internal/IncludedBuildFactory +instanceKlass org/gradle/composite/internal/IncludedBuildControllers +instanceKlass org/gradle/api/internal/composite/CompositeBuildContext +instanceKlass org/gradle/api/internal/artifacts/ivyservice/dependencysubstitution/DependencySubstitutionRules +instanceKlass org/gradle/composite/internal/IncludedBuildTaskGraph +instanceKlass org/gradle/api/internal/artifacts/ivyservice/projectmodule/LocalComponentProvider +instanceKlass org/gradle/composite/internal/CompositeBuildServices$CompositeBuildTreeScopeServices +instanceKlass org/gradle/caching/internal/controller/RootBuildCacheControllerRef +instanceKlass org/gradle/caching/internal/BuildCacheServices$1 +instanceKlass org/gradle/internal/service/scopes/BuildTreeScopeServices$$Lambda$87 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/api/internal/project/DefaultProjectStateRegistry +instanceKlass org/gradle/api/internal/project/ProjectStateRegistry +instanceKlass org/gradle/configuration/project/ConfigureProjectBuildOperationType$Details +instanceKlass org/gradle/tooling/internal/protocol/events/InternalProjectConfigurationDescriptor +instanceKlass org/gradle/internal/build/event/types/DefaultOperationDescriptor +instanceKlass org/gradle/tooling/internal/protocol/events/InternalOperationDescriptor +instanceKlass org/gradle/tooling/internal/protocol/events/InternalProjectConfigurationResult +instanceKlass org/gradle/api/internal/tasks/execution/ExecuteTaskBuildOperationDetails +instanceKlass org/gradle/internal/operations/trace/CustomOperationTraceSerialization +instanceKlass org/gradle/api/internal/tasks/execution/ExecuteTaskBuildOperationType$Details +instanceKlass org/gradle/tooling/internal/protocol/events/InternalTaskFailureResult +instanceKlass org/gradle/tooling/internal/protocol/events/InternalTaskSkippedResult +instanceKlass org/gradle/execution/plan/Node +instanceKlass org/gradle/tooling/internal/provider/runner/SubtreeFilteringBuildOperationListener +instanceKlass org/gradle/tooling/internal/provider/runner/TaskOriginTracker +instanceKlass org/gradle/tooling/internal/protocol/events/InternalScriptPluginIdentifier +instanceKlass org/gradle/tooling/internal/protocol/events/InternalBinaryPluginIdentifier +instanceKlass org/gradle/tooling/internal/protocol/events/InternalPluginIdentifier +instanceKlass org/gradle/tooling/internal/provider/runner/PluginApplicationTracker +instanceKlass org/gradle/tooling/internal/provider/runner/OperationDependenciesResolver +instanceKlass com/google/common/collect/Maps$EntryTransformer +instanceKlass com/google/common/collect/BiMap +instanceKlass com/google/common/base/Converter +instanceKlass com/google/common/collect/SortedMapDifference +instanceKlass com/google/common/collect/MapDifference +instanceKlass com/google/common/collect/Maps +instanceKlass org/gradle/tooling/internal/protocol/events/InternalTestFailureResult +instanceKlass org/gradle/tooling/internal/protocol/events/InternalFailureResult +instanceKlass org/gradle/tooling/internal/protocol/events/InternalTestSkippedResult +instanceKlass org/gradle/tooling/internal/protocol/events/InternalTestSuccessResult +instanceKlass org/gradle/tooling/internal/protocol/events/InternalTestResult +instanceKlass org/gradle/tooling/internal/protocol/events/InternalOperationFinishedProgressEvent +instanceKlass org/gradle/tooling/internal/protocol/events/InternalOperationStartedProgressEvent +instanceKlass org/gradle/tooling/internal/protocol/events/InternalProgressEvent +instanceKlass org/gradle/api/Task +instanceKlass org/gradle/api/plugins/ExtensionAware +instanceKlass org/gradle/tooling/internal/provider/runner/ClientForwardingTestOperationListener +instanceKlass org/gradle/tooling/internal/provider/runner/ProgressEventConsumer +instanceKlass org/gradle/tooling/internal/provider/runner/BuildOperationParentTracker +instanceKlass org/gradle/internal/operations/DefaultBuildOperationListenerManager$ProgressShieldingBuildOperationListener +instanceKlass org/gradle/initialization/SessionLifecycleListener +instanceKlass org/gradle/internal/scopeids/PersistentScopeIdStoreFactory +instanceKlass org/gradle/internal/scopeids/ScopeIdsServices +instanceKlass org/gradle/plugin/use/internal/InjectedPluginClasspath +instanceKlass org/gradle/nativeplatform/toolchain/internal/gcc/metadata/SystemLibraryDiscovery +instanceKlass org/gradle/nativeplatform/toolchain/internal/xcode/AbstractLocator +instanceKlass org/gradle/nativeplatform/toolchain/internal/msvcpp/WindowsKitInstall +instanceKlass org/gradle/platform/base/internal/toolchain/SearchResult +instanceKlass org/gradle/platform/base/internal/toolchain/ToolSearchResult +instanceKlass com/google/common/collect/SetMultimap +instanceKlass com/google/common/collect/Multimap +instanceKlass org/gradle/nativeplatform/toolchain/internal/msvcpp/AbstractWindowsKitComponentLocator +instanceKlass org/gradle/nativeplatform/toolchain/internal/msvcpp/UcrtLocator +instanceKlass org/gradle/nativeplatform/toolchain/internal/msvcpp/version/SystemPathVersionLocator +instanceKlass org/gradle/nativeplatform/toolchain/internal/msvcpp/version/AbstractVisualStudioVersionLocator +instanceKlass org/gradle/nativeplatform/toolchain/internal/msvcpp/version/VisualStudioMetaDataProvider +instanceKlass org/gradle/nativeplatform/toolchain/internal/msvcpp/VisualStudioLocator +instanceKlass org/gradle/nativeplatform/toolchain/internal/msvcpp/version/VisualStudioVersionLocator +instanceKlass org/gradle/nativeplatform/toolchain/internal/msvcpp/version/VswhereVersionLocator +instanceKlass org/gradle/nativeplatform/toolchain/internal/msvcpp/version/VisualCppMetadataProvider +instanceKlass org/gradle/nativeplatform/toolchain/internal/msvcpp/WindowsSdkLocator +instanceKlass org/gradle/nativeplatform/toolchain/internal/msvcpp/WindowsComponentLocator +instanceKlass org/gradle/nativeplatform/internal/services/NativeBinaryServices$BuildSessionScopeServices +instanceKlass org/gradle/api/tasks/testing/TestDescriptor +instanceKlass org/gradle/api/internal/tasks/testing/operations/TestListenerBuildOperationAdapter +instanceKlass org/gradle/api/internal/tasks/testing/results/TestListenerInternal +instanceKlass org/gradle/api/internal/tasks/testing/operations/TestExecutionBuildOperationBuildSessionScopeServices +instanceKlass javax/tools/JavaCompiler +instanceKlass javax/tools/OptionChecker +instanceKlass javax/tools/Tool +instanceKlass org/gradle/language/java/internal/JavaToolChainServiceRegistry$BuildSessionScopeCompileServices +instanceKlass org/gradle/api/artifacts/ModuleIdentifier +instanceKlass org/gradle/internal/typeconversion/NotationParser +instanceKlass org/gradle/vcs/internal/resolver/PersistentVcsMetadataCache +instanceKlass org/gradle/vcs/internal/VcsDirectoryLayout +instanceKlass org/gradle/internal/typeconversion/NotationConverter +instanceKlass org/gradle/vcs/internal/VersionControlRepositoryConnectionFactory +instanceKlass org/gradle/vcs/internal/services/VersionControlServices$VersionControlBuildSessionServices +instanceKlass org/gradle/workers/internal/WorkerExecutionQueueFactory +instanceKlass org/gradle/internal/work/ConditionalExecutionQueueFactory +instanceKlass org/gradle/process/internal/worker/child/WorkerDirectoryProvider +instanceKlass org/gradle/workers/internal/WorkersServices$BuildSessionScopeServices +instanceKlass org/gradle/internal/fingerprint/impl/AbstractFileCollectionFingerprinter +instanceKlass org/gradle/internal/fingerprint/FileCollectionFingerprinterRegistry +instanceKlass org/gradle/internal/fingerprint/classpath/CompileClasspathFingerprinter +instanceKlass org/gradle/internal/service/scopes/VirtualFileSystemServices$BuildSessionServices +instanceKlass org/gradle/internal/service/scopes/BuildSessionScopeServices$$Lambda$86 +instanceKlass org/gradle/initialization/SettingsLocation +instanceKlass org/gradle/cache/internal/CleanupActionFactory +instanceKlass org/gradle/internal/buildevents/BuildStartedTime +instanceKlass org/gradle/internal/service/scopes/BuildSessionScopeServices$CrossBuildFileHashCacheWrapper +instanceKlass org/gradle/api/internal/attributes/DefaultImmutableAttributesFactory +instanceKlass org/gradle/api/internal/attributes/ImmutableAttributesFactory +instanceKlass org/gradle/deployment/internal/DefaultDeploymentRegistry +instanceKlass org/gradle/deployment/internal/DeploymentRegistryInternal +instanceKlass org/gradle/deployment/internal/DeploymentRegistry +instanceKlass org/gradle/internal/filewatch/PendingChangesManager +instanceKlass org/gradle/internal/scopeids/id/ScopeId +instanceKlass org/gradle/internal/scopeids/PersistentScopeIdLoader +instanceKlass org/gradle/initialization/layout/ProjectCacheDir +instanceKlass org/gradle/api/internal/FeaturePreviews +instanceKlass org/gradle/internal/featurelifecycle/DeprecatedUsageBuildOperationProgressBroadcaster +instanceKlass org/gradle/api/internal/project/CrossProjectConfigurator +instanceKlass org/gradle/internal/hash/ChecksumService +instanceKlass org/gradle/internal/work/AsyncWorkTracker +instanceKlass org/gradle/internal/operations/logging/LoggingBuildOperationProgressBroadcaster +instanceKlass org/gradle/internal/operations/notify/BuildOperationNotificationBridge$3 +instanceKlass org/gradle/BuildAdapter +instanceKlass org/gradle/internal/InternalBuildListener +instanceKlass org/gradle/internal/InternalListener +instanceKlass org/gradle/internal/operations/notify/BuildOperationNotificationBridge$1 +instanceKlass org/gradle/internal/operations/notify/BuildOperationNotificationListenerRegistrar +instanceKlass org/gradle/internal/operations/notify/BuildOperationNotificationValve +instanceKlass org/gradle/internal/operations/notify/BuildOperationNotificationBridge +instanceKlass org/gradle/internal/operations/trace/SerializedOperation +instanceKlass org/gradle/internal/operations/trace/BuildOperationTrace$1 +instanceKlass org/gradle/internal/operations/trace/BuildOperationTrace +instanceKlass org/gradle/internal/operations/BuildOperationQueueFactory +instanceKlass org/gradle/configuration/internal/UserCodeApplicationContext +instanceKlass org/gradle/initialization/GradleLauncherFactory +instanceKlass org/gradle/configuration/internal/ListenerBuildOperationDecorator +instanceKlass org/gradle/api/internal/CollectionCallbackActionDecorator +instanceKlass org/gradle/internal/work/WorkerLeaseService +instanceKlass org/gradle/internal/resources/ProjectLeaseRegistry +instanceKlass org/gradle/internal/work/WorkerLeaseRegistry +instanceKlass org/gradle/internal/operations/BuildOperationExecutor +instanceKlass org/gradle/internal/service/scopes/CrossBuildSessionScopeServices +instanceKlass org/gradle/internal/service/scopes/DefaultGradleUserHomeScopeServiceRegistry$Services +instanceKlass org/gradle/api/internal/tasks/compile/incremental/cache/DefaultUserHomeScopedCompileCaches +instanceKlass org/gradle/api/internal/tasks/compile/incremental/cache/UserHomeScopedCompileCaches +instanceKlass org/gradle/api/internal/tasks/CompileServices$UserHomeScopeServices +instanceKlass org/gradle/kotlin/dsl/provider/plugins/DefaultProjectSchemaProvider +instanceKlass org/gradle/kotlin/dsl/accessors/ProjectSchemaProvider +instanceKlass org/gradle/kotlin/dsl/provider/plugins/precompiled/DefaultPrecompiledScriptPluginsSupport +instanceKlass org/gradle/kotlin/dsl/provider/PrecompiledScriptPluginsSupport +instanceKlass org/gradle/kotlin/dsl/provider/plugins/DefaultKotlinScriptBasePluginsApplicator +instanceKlass org/gradle/kotlin/dsl/provider/KotlinScriptBasePluginsApplicator +instanceKlass org/gradle/kotlin/dsl/provider/plugins/GradleUserHomeServices +instanceKlass org/gradle/api/internal/artifacts/transform/AbstractCachingTransformationWorkspaceProvider +instanceKlass org/gradle/api/internal/artifacts/transform/CachingTransformationWorkspaceProvider +instanceKlass org/gradle/api/internal/artifacts/transform/ImmutableTransformationWorkspaceProvider +instanceKlass org/gradle/internal/execution/history/ExecutionHistoryStore +instanceKlass org/gradle/internal/execution/history/ExecutionHistoryCacheAccess +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ArtifactCachesProvider +instanceKlass org/gradle/api/internal/artifacts/ivyservice/DefaultArtifactCaches$WritableArtifactCacheLockingParameters +instanceKlass org/gradle/api/internal/artifacts/transform/TransformationWorkspaceProvider +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementGradleUserHomeScopeServices +instanceKlass org/gradle/workers/internal/WorkerDaemonClientsManager +instanceKlass org/gradle/workers/internal/ClassLoaderStructureProvider +instanceKlass org/gradle/workers/internal/ActionExecutionSpecFactory +instanceKlass org/gradle/workers/internal/WorkersServices$GradleUserHomeServices +instanceKlass org/gradle/kotlin/dsl/provider/ScriptCacheRepository +instanceKlass org/gradle/kotlin/dsl/provider/KotlinScriptClassloadingCache +instanceKlass org/gradle/kotlin/dsl/provider/GradleUserHomeServices +instanceKlass org/gradle/kotlin/dsl/support/EmbeddedKotlinProvider +instanceKlass org/gradle/kotlin/dsl/support/GradleUserHomeServices +instanceKlass org/gradle/api/internal/changedetection/state/CrossBuildFileHashCache +instanceKlass org/gradle/internal/fingerprint/GenericFileTreeSnapshotter +instanceKlass org/gradle/internal/fingerprint/classpath/ClasspathFingerprinter +instanceKlass org/gradle/internal/fingerprint/FileCollectionFingerprinter +instanceKlass org/gradle/internal/fingerprint/FileCollectionSnapshotter +instanceKlass org/gradle/internal/vfs/WatchingVirtualFileSystem +instanceKlass org/gradle/internal/vfs/impl/AbstractVirtualFileSystem +instanceKlass org/gradle/internal/vfs/watch/FileWatcherRegistryFactory +instanceKlass org/gradle/api/internal/changedetection/state/ResourceSnapshotterCacheService +instanceKlass org/gradle/internal/service/scopes/VirtualFileSystemServices$GradleUserHomeServices +instanceKlass org/gradle/tooling/internal/provider/serialization/PayloadSerializer +instanceKlass org/gradle/tooling/internal/provider/serialization/PayloadClassLoaderFactory +instanceKlass org/gradle/tooling/internal/provider/serialization/PayloadClassLoaderRegistry +instanceKlass org/gradle/tooling/internal/provider/LauncherServices$ToolingBuildSessionScopeServices +instanceKlass org/gradle/internal/service/DefaultServiceRegistry$InstanceUnpackingVisitor +instanceKlass org/gradle/cache/internal/DirectoryCleanupAction +instanceKlass org/gradle/cache/CleanupProgressMonitor +instanceKlass org/gradle/cache/internal/GradleUserHomeCleanupService +instanceKlass org/gradle/cache/internal/VersionSpecificCacheDirectoryScanner +instanceKlass org/gradle/cache/internal/UsedGradleVersionsFromGradleUserHomeCaches +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/internal/logging/services/ProgressLoggingBridge +instanceKlass org/gradle/internal/logging/progress/ProgressLogger +instanceKlass org/gradle/internal/logging/progress/DefaultProgressLoggerFactory +instanceKlass org/gradle/internal/service/scopes/WorkerSharedGlobalScopeServices$$Lambda$85 +instanceKlass org/gradle/internal/service/scopes/WorkerSharedGlobalScopeServices$$Lambda$84 +instanceKlass java/util/function/LongSupplier +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/internal/file/impl/DefaultDeleter +instanceKlass org/gradle/cache/internal/DefaultCacheScopeMapping +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/cache/internal/GradleUserHomeCleanupServices +instanceKlass org/gradle/cache/internal/CacheKeyBuilder +instanceKlass org/gradle/cache/internal/CacheRepositoryServices +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/internal/service/scopes/DefaultGradleUserHomeScopeServiceRegistry$1$$Lambda$83 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/internal/snapshot/impl/DefaultValueSnapshotter +instanceKlass org/gradle/internal/isolation/IsolatableFactory +instanceKlass org/gradle/internal/snapshot/ValueSnapshotter +instanceKlass org/gradle/internal/vfs/VirtualFileSystem +instanceKlass org/gradle/cache/internal/DefaultGeneratedGradleJarCache +instanceKlass org/gradle/cache/internal/GeneratedGradleJarCache +instanceKlass org/gradle/internal/hash/FileHasher +instanceKlass org/gradle/groovy/scripts/internal/CrossBuildInMemoryCachingScriptClassCache +instanceKlass org/gradle/api/internal/changedetection/state/FileTimeStampInspector +instanceKlass org/gradle/initialization/RootBuildLifecycleListener +instanceKlass org/gradle/cache/internal/UsedGradleVersions +instanceKlass org/gradle/cache/internal/CacheScopeMapping +instanceKlass org/gradle/cache/CacheRepository +instanceKlass org/gradle/internal/classloader/ClasspathHasher +instanceKlass org/gradle/process/internal/worker/child/WorkerProcessClassPathProvider +instanceKlass org/gradle/initialization/GradleUserHomeDirProvider +instanceKlass org/gradle/internal/service/scopes/DefaultGradleUserHomeScopeServiceRegistry$1 +instanceKlass org/gradle/internal/service/ServiceRegistryBuilder +instanceKlass org/gradle/internal/logging/sink/OutputEventRenderer$3 +instanceKlass org/gradle/internal/logging/sink/ProgressLogEventGenerator +instanceKlass org/gradle/internal/logging/console/BuildLogLevelFilterRenderer +instanceKlass org/gradle/launcher/daemon/server/exec/ExecuteBuild$1 +instanceKlass org/gradle/initialization/DefaultBuildRequestMetaData +instanceKlass org/gradle/initialization/DefaultBuildRequestContext +instanceKlass org/gradle/launcher/daemon/server/exec/DaemonConnectionBackedEventConsumer +instanceKlass org/gradle/launcher/daemon/server/exec/WatchForDisconnection$1 +instanceKlass org/gradle/internal/featurelifecycle/LoggingIncubatingFeatureHandler +instanceKlass org/gradle/util/IncubationLogger +instanceKlass org/gradle/internal/featurelifecycle/FeatureUsage +instanceKlass org/gradle/internal/featurelifecycle/UsageLocationReporter +instanceKlass org/gradle/internal/featurelifecycle/LoggingDeprecatedFeatureHandler +instanceKlass org/gradle/internal/featurelifecycle/FeatureHandler +instanceKlass org/gradle/internal/deprecation/DeprecationMessageBuilder +instanceKlass org/gradle/internal/deprecation/DeprecationLogger +instanceKlass org/gradle/launcher/daemon/server/exec/ForwardClientInput$2 +instanceKlass org/gradle/util/StdinSwapper$2 +instanceKlass org/gradle/util/StdinSwapper$1 +instanceKlass org/gradle/util/Swapper +instanceKlass org/gradle/launcher/daemon/server/exec/ForwardClientInput$1 +instanceKlass jdk/internal/math/FormattedFloatingDecimal$2 +instanceKlass jdk/internal/math/FDBigInteger +instanceKlass jdk/internal/math/FormattedFloatingDecimal +instanceKlass java/lang/Character$CharacterCache +instanceKlass org/gradle/internal/util/NumberUtil +instanceKlass org/gradle/launcher/daemon/server/exec/LogToClient$AsynchronousLogDispatcher$1 +instanceKlass java/util/concurrent/CountDownLatch +instanceKlass java/lang/reflect/AccessibleObject$$Lambda$82 +instanceKlass com/google/common/collect/AbstractIterator$1 +instanceKlass com/google/common/collect/Collections2 +instanceKlass java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry +instanceKlass java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1 +instanceKlass org/gradle/launcher/daemon/server/DaemonStateCoordinator$1 +instanceKlass org/gradle/launcher/daemon/registry/PersistentDaemonRegistry$5 +instanceKlass org/gradle/launcher/daemon/server/exec/StartBuildOrRespondWithBusy$1 +instanceKlass org/gradle/launcher/daemon/server/DefaultDaemonConnection$CommandQueue$1 +instanceKlass org/gradle/launcher/daemon/server/exec/HandleCancel$1 +instanceKlass com/google/common/collect/Platform +instanceKlass org/gradle/launcher/daemon/server/api/DaemonCommandExecution +instanceKlass java/util/AbstractMap$SimpleImmutableEntry +instanceKlass org/gradle/launcher/exec/DefaultBuildActionParameters +instanceKlass com/google/common/collect/ImmutableMap$Builder +instanceKlass com/google/common/collect/ImmutableMap +instanceKlass org/gradle/configuration/GradleLauncherMetaData +instanceKlass org/gradle/internal/DefaultTaskExecutionRequest +instanceKlass org/gradle/TaskExecutionRequest +instanceKlass java/util/function/UnaryOperator +instanceKlass java/io/ObjectInputStream$GetField +instanceKlass java/io/SerialCallbackContext +instanceKlass java/io/FilenameFilter +instanceKlass org/gradle/internal/deprecation/LoggingDeprecatable +instanceKlass org/gradle/initialization/BuildLayoutParameters +instanceKlass org/gradle/internal/logging/DefaultLoggingConfiguration +instanceKlass java/io/ObjectStreamClass$ExceptionInfo +instanceKlass jdk/internal/reflect/UnsafeFieldAccessorFactory +instanceKlass java/util/EnumSet$SerializationProxy +instanceKlass java/io/ObjectInputStream$FieldValues +instanceKlass java/io/ObjectStreamClass$ClassDataSlot +instanceKlass java/io/ObjectStreamClass$5 +instanceKlass java/io/ObjectStreamClass$4 +instanceKlass java/util/TimSort +instanceKlass java/io/ObjectStreamClass$3 +instanceKlass java/io/ObjectStreamClass$MemberSignature +instanceKlass java/io/ObjectStreamClass$1 +instanceKlass java/lang/Long$LongCache +instanceKlass java/io/ObjectStreamClass$FieldReflector +instanceKlass java/util/StringJoiner +instanceKlass java/io/ObjectOutput +instanceKlass java/io/ObjectStreamClass$2 +instanceKlass java/io/Externalizable +instanceKlass java/io/ObjectStreamClass$EntryFuture +instanceKlass java/io/ObjectStreamClass$Caches +instanceKlass org/gradle/tooling/internal/provider/SubscribableBuildAction +instanceKlass java/io/ObjectStreamClass +instanceKlass java/io/Bits +instanceKlass java/io/ObjectInputFilter$Config$$Lambda$81 +instanceKlass jdk/internal/misc/JavaObjectInputFilterAccess +instanceKlass java/io/ObjectInputFilter$Config$$Lambda$80 +instanceKlass java/io/ObjectInputFilter +instanceKlass java/io/ObjectInputFilter$Config +instanceKlass java/io/ObjectInputStream$ValidationList +instanceKlass java/io/ObjectInputStream$HandleTable$HandleList +instanceKlass java/io/ObjectInputStream$HandleTable +instanceKlass java/io/ObjectInputStream$$Lambda$79 +instanceKlass jdk/internal/misc/JavaObjectInputStreamReadString +instanceKlass java/io/ObjectInputStream$$Lambda$78 +instanceKlass jdk/internal/misc/JavaObjectInputStreamAccess +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/io/ObjectStreamConstants +instanceKlass java/io/ObjectInput +instanceKlass java/nio/channels/spi/AbstractSelector$1 +instanceKlass sun/nio/ch/WindowsSelectorImpl$MapEntry +instanceKlass org/gradle/launcher/daemon/server/DefaultDaemonConnection$1 +instanceKlass org/gradle/launcher/daemon/server/DefaultDaemonConnection$ReceiveQueue +instanceKlass org/gradle/launcher/daemon/server/DefaultDaemonConnection$DisconnectQueue +instanceKlass org/gradle/launcher/daemon/server/DefaultDaemonConnection$CommandQueue +instanceKlass org/gradle/launcher/daemon/server/DefaultDaemonConnection +instanceKlass org/gradle/launcher/daemon/server/api/DaemonConnection +instanceKlass org/gradle/launcher/daemon/server/DefaultIncomingConnectionHandler$ConnectionWorker +instanceKlass org/gradle/launcher/daemon/server/SynchronizedDispatchConnection +instanceKlass org/gradle/internal/serialize/Serializers$StatefulSerializerAdapter$2 +instanceKlass org/gradle/internal/serialize/Serializers$StatefulSerializerAdapter$1 +instanceKlass org/gradle/internal/remote/internal/inet/SocketInetAddress$Serializer +instanceKlass org/gradle/internal/io/BufferCaster +instanceKlass java/lang/invoke/ConstantBootstraps +instanceKlass java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 +instanceKlass java/util/concurrent/atomic/AtomicReferenceFieldUpdater +instanceKlass sun/nio/ch/OptionKey +instanceKlass sun/nio/ch/SocketOptionRegistry$LazyInitialization +instanceKlass sun/nio/ch/SocketOptionRegistry$RegistryKey +instanceKlass sun/nio/ch/SocketOptionRegistry +instanceKlass java/util/stream/Collectors$$Lambda$77 +instanceKlass java/util/stream/Collectors$$Lambda$76 +instanceKlass java/util/stream/Collectors$$Lambda$75 +instanceKlass java/util/stream/Collectors$$Lambda$74 +instanceKlass sun/net/ext/ExtendedSocketOptions$$Lambda$73 +instanceKlass sun/nio/ch/ExtendedSocketOption$1 +instanceKlass sun/nio/ch/ExtendedSocketOption +instanceKlass sun/nio/ch/SocketChannelImpl$DefaultOptionsHolder +instanceKlass jdk/internal/util/ArraysSupport +instanceKlass java/nio/BufferMismatch +instanceKlass sun/nio/ch/IOStatus +instanceKlass sun/nio/ch/Util$BufferCache +instanceKlass sun/nio/ch/PipeImpl$Initializer$LoopbackConnector +instanceKlass sun/nio/ch/PipeImpl$Initializer +instanceKlass java/nio/channels/Pipe +instanceKlass sun/nio/ch/NativeObject +instanceKlass sun/nio/ch/PollArrayWrapper +instanceKlass sun/nio/ch/WindowsSelectorImpl$FinishLock +instanceKlass sun/nio/ch/WindowsSelectorImpl$StartLock +instanceKlass sun/nio/ch/WindowsSelectorImpl$SubSelector +instanceKlass java/nio/channels/SelectionKey +instanceKlass sun/nio/ch/Util$2 +instanceKlass sun/nio/ch/Util +instanceKlass java/nio/channels/Selector +instanceKlass java/nio/DirectByteBuffer$Deallocator +instanceKlass org/gradle/internal/remote/internal/KryoBackedMessageSerializer +instanceKlass org/gradle/internal/remote/internal/inet/SocketConnection +instanceKlass org/gradle/internal/serialize/ObjectReader +instanceKlass org/gradle/internal/serialize/ObjectWriter +instanceKlass org/gradle/internal/serialize/Serializers$StatefulSerializerAdapter +instanceKlass org/gradle/internal/serialize/StatefulSerializer +instanceKlass org/gradle/internal/serialize/Serializers +instanceKlass org/gradle/internal/remote/internal/MessageSerializer +instanceKlass org/gradle/internal/remote/internal/inet/SocketConnectCompletion +instanceKlass org/gradle/internal/remote/internal/ConnectCompletion +instanceKlass org/gradle/launcher/daemon/server/DaemonStateCoordinator$2 +instanceKlass java/net/Socket +instanceKlass org/gradle/launcher/daemon/server/Daemon$DefaultDaemonExpirationListener +instanceKlass org/gradle/launcher/daemon/server/Daemon$DaemonExpirationPeriodicCheck +instanceKlass org/gradle/launcher/daemon/server/DaemonRegistryUnavailableExpirationStrategy +instanceKlass org/gradle/internal/event/DefaultListenerManager$ListenerDetails +instanceKlass org/gradle/launcher/daemon/server/health/LowMemoryDaemonExpirationStrategy +instanceKlass org/gradle/process/internal/health/memory/OsMemoryStatusListener +instanceKlass org/gradle/launcher/daemon/server/NotMostRecentlyUsedDaemonExpirationStrategy +instanceKlass com/google/common/base/Functions$ConstantFunction +instanceKlass com/google/common/base/Functions +instanceKlass org/gradle/launcher/daemon/server/DaemonIdleTimeoutExpirationStrategy +instanceKlass org/gradle/launcher/daemon/context/DaemonCompatibilitySpec +instanceKlass org/gradle/api/internal/specs/ExplainingSpec +instanceKlass org/gradle/launcher/daemon/server/CompatibleDaemonExpirationStrategy +instanceKlass org/gradle/launcher/daemon/server/expiry/AllDaemonExpirationStrategy +instanceKlass org/gradle/internal/stream/EncodedStream +instanceKlass org/gradle/launcher/daemon/bootstrap/DaemonStartupCommunication +instanceKlass org/gradle/cache/internal/DefaultFileLockManager$DefaultFileLock$3 +instanceKlass org/gradle/cache/internal/DefaultFileLockManager$DefaultFileLock$2 +instanceKlass org/gradle/cache/internal/DefaultFileLockManager$DefaultFileLock$1 +instanceKlass java/io/FileOutputStream$1 +instanceKlass org/gradle/internal/remote/internal/inet/SocketInetAddress +instanceKlass org/gradle/internal/serialize/AbstractEncoder +instanceKlass org/gradle/internal/serialize/FlushableEncoder +instanceKlass org/gradle/launcher/daemon/registry/DaemonInfo$Serializer +instanceKlass org/gradle/cache/internal/filelock/DefaultLockStateSerializer$SequenceNumberLockState +instanceKlass org/gradle/cache/internal/DefaultFileLockManager$DefaultFileLock$5 +instanceKlass org/gradle/cache/internal/filelock/LockInfo +instanceKlass org/gradle/cache/internal/DefaultFileLockManager$DefaultFileLock$4 +instanceKlass org/gradle/internal/io/ExponentialBackoff +instanceKlass org/gradle/cache/internal/DefaultFileLockManager$AwaitableFileLockReleasedSignal +instanceKlass org/gradle/cache/FileLockReleasedSignal +instanceKlass org/gradle/cache/internal/filelock/LockInfoSerializer +instanceKlass org/gradle/cache/internal/filelock/LockInfoAccess +instanceKlass org/gradle/cache/internal/filelock/LockStateAccess +instanceKlass org/gradle/cache/internal/filelock/LockFileAccess +instanceKlass org/gradle/cache/internal/filelock/LockState +instanceKlass org/gradle/cache/internal/filelock/DefaultLockStateSerializer +instanceKlass org/gradle/internal/io/IOQuery +instanceKlass org/gradle/cache/FileLock$State +instanceKlass org/gradle/cache/internal/filelock/LockStateSerializer +instanceKlass sun/net/ResourceManager +instanceKlass java/net/DatagramPacket +instanceKlass java/net/DatagramSocket$1 +instanceKlass java/net/AbstractPlainDatagramSocketImpl$1 +instanceKlass java/net/DatagramSocketImpl +instanceKlass java/net/DefaultDatagramSocketImplFactory +instanceKlass java/net/DatagramSocket +instanceKlass org/gradle/cache/internal/locklistener/FileLockCommunicator +instanceKlass org/gradle/cache/internal/filelock/LockOptionsBuilder +instanceKlass org/gradle/cache/internal/SimpleStateCache$1Updater +instanceKlass org/gradle/cache/internal/FileIntegrityViolationSuppressingPersistentStateCacheDecorator$1 +instanceKlass org/gradle/launcher/daemon/registry/PersistentDaemonRegistry$8 +instanceKlass org/gradle/launcher/daemon/registry/DaemonInfo +instanceKlass org/gradle/launcher/daemon/context/DaemonConnectDetails +instanceKlass sun/util/cldr/CLDRBaseLocaleDataMetaInfo$TZCanonicalIDMapHolder +instanceKlass sun/util/resources/provider/NonBaseLocaleDataMetaInfo +instanceKlass sun/util/locale/provider/JRELocaleProviderAdapter$$Lambda$72 +instanceKlass sun/util/locale/provider/BaseLocaleDataMetaInfo +instanceKlass sun/util/locale/provider/JRELocaleProviderAdapter$$Lambda$71 +instanceKlass sun/util/cldr/CLDRLocaleProviderAdapter$$Lambda$70 +instanceKlass sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter +instanceKlass sun/util/locale/provider/TimeZoneNameUtility +instanceKlass org/gradle/internal/remote/internal/inet/TcpIncomingConnector$1 +instanceKlass org/gradle/internal/remote/internal/inet/TcpIncomingConnector$Receiver +instanceKlass org/gradle/internal/remote/internal/inet/MultiChoiceAddress +instanceKlass org/gradle/internal/remote/internal/inet/InetEndpoint +instanceKlass java/util/UUID$Holder +instanceKlass java/util/UUID +instanceKlass sun/net/NetHooks +instanceKlass java/net/InetSocketAddress$InetSocketAddressHolder +instanceKlass java/net/Inet4AddressImpl +instanceKlass jdk/internal/reflect/ClassDefiner$1 +instanceKlass jdk/internal/reflect/ClassDefiner +instanceKlass jdk/internal/reflect/MethodAccessorGenerator$1 +instanceKlass jdk/internal/reflect/Label$PatchInfo +instanceKlass jdk/internal/reflect/Label +instanceKlass jdk/internal/reflect/UTF8 +instanceKlass jdk/internal/reflect/ClassFileAssembler +instanceKlass jdk/internal/reflect/ByteVectorImpl +instanceKlass jdk/internal/reflect/ByteVector +instanceKlass jdk/internal/reflect/ByteVectorFactory +instanceKlass jdk/internal/reflect/AccessorGenerator +instanceKlass jdk/internal/reflect/ClassFileConstants +instanceKlass org/gradle/internal/remote/internal/inet/InetAddresses +instanceKlass java/net/AbstractPlainSocketImpl$1 +instanceKlass java/net/StandardSocketOptions$StdSocketOption +instanceKlass java/net/StandardSocketOptions +instanceKlass java/net/SocketImpl +instanceKlass java/net/SocketOptions +instanceKlass java/net/SocksConsts +instanceKlass java/net/ServerSocket$2 +instanceKlass jdk/internal/misc/JavaNetSocketAccess +instanceKlass java/net/ServerSocket +instanceKlass jdk/net/ExtendedSocketOptions$PlatformSocketOptions$1 +instanceKlass jdk/net/ExtendedSocketOptions$PlatformSocketOptions +instanceKlass jdk/net/SocketFlow +instanceKlass jdk/net/ExtendedSocketOptions$ExtSocketOption +instanceKlass java/net/SocketOption +instanceKlass jdk/net/ExtendedSocketOptions +instanceKlass sun/net/ext/ExtendedSocketOptions +instanceKlass sun/nio/ch/Net$1 +instanceKlass java/net/ProtocolFamily +instanceKlass sun/nio/ch/Net +instanceKlass sun/nio/ch/SelChImpl +instanceKlass sun/nio/ch/DefaultSelectorProvider +instanceKlass java/nio/channels/spi/SelectorProvider$1 +instanceKlass java/nio/channels/spi/SelectorProvider +instanceKlass java/nio/channels/NetworkChannel +instanceKlass org/gradle/internal/remote/internal/RemoteConnection +instanceKlass org/gradle/launcher/daemon/server/DaemonTcpServerConnector$1 +instanceKlass org/gradle/launcher/daemon/server/Daemon$5 +instanceKlass org/gradle/internal/remote/internal/Connection +instanceKlass org/gradle/internal/dispatch/Receive +instanceKlass org/gradle/launcher/daemon/server/DefaultIncomingConnectionHandler +instanceKlass org/gradle/initialization/DefaultBuildCancellationToken +instanceKlass org/gradle/initialization/BuildCancellationToken +instanceKlass org/gradle/launcher/daemon/server/DaemonStateCoordinator +instanceKlass org/gradle/launcher/daemon/server/Daemon$4 +instanceKlass org/gradle/launcher/daemon/server/Daemon$3 +instanceKlass org/gradle/launcher/daemon/server/Daemon$2 +instanceKlass org/gradle/launcher/daemon/server/Daemon$1 +instanceKlass org/gradle/launcher/daemon/server/DaemonRegistryUpdater +instanceKlass sun/security/provider/AbstractDrbg$NonceProvider +instanceKlass sun/security/provider/AbstractDrbg$SeederHolder$$Lambda$69 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass sun/nio/fs/BasicFileAttributesHolder +instanceKlass sun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator +instanceKlass sun/nio/fs/WindowsDirectoryStream +instanceKlass java/nio/file/DirectoryStream +instanceKlass java/nio/file/Files$AcceptAllFilter +instanceKlass java/nio/file/DirectoryStream$Filter +instanceKlass java/net/NetworkInterface$2 +instanceKlass java/util/concurrent/LinkedBlockingDeque$Node +instanceKlass java/lang/management/MemoryUsage +instanceKlass org/gradle/launcher/daemon/server/health/gc/GarbageCollectionEvent +instanceKlass java/net/DefaultInterface +instanceKlass java/net/Inet6Address$Inet6AddressHolder +instanceKlass java/net/InetAddress$PlatformNameService +instanceKlass java/net/InetAddress$NameService +instanceKlass java/net/Inet6AddressImpl +instanceKlass java/net/InetAddressImpl +instanceKlass java/net/InetAddressImplFactory +instanceKlass java/util/concurrent/ConcurrentSkipListMap$Node +instanceKlass java/util/concurrent/ConcurrentSkipListMap$Index +instanceKlass java/util/concurrent/ConcurrentNavigableMap +instanceKlass java/net/InetAddress$InetAddressHolder +instanceKlass java/net/InetAddress$2 +instanceKlass jdk/internal/misc/JavaNetInetAddressAccess +instanceKlass java/net/InetAddress$1 +instanceKlass java/net/InetAddress +instanceKlass java/net/InterfaceAddress +instanceKlass java/net/NetworkInterface$1 +instanceKlass java/net/NetworkInterface +instanceKlass sun/security/provider/ByteArrayAccess +instanceKlass sun/security/provider/SeedGenerator$1 +instanceKlass sun/security/util/MessageDigestSpi2 +instanceKlass sun/security/jca/GetInstance$Instance +instanceKlass sun/security/jca/GetInstance +instanceKlass java/security/MessageDigestSpi +instanceKlass sun/security/provider/SeedGenerator +instanceKlass sun/security/provider/AbstractDrbg$SeederHolder +instanceKlass java/security/DrbgParameters$NextBytes +instanceKlass sun/security/provider/AbstractDrbg$$Lambda$68 +instanceKlass sun/security/provider/EntropySource +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass sun/security/provider/AbstractDrbg +instanceKlass java/security/DrbgParameters$Instantiation +instanceKlass java/security/DrbgParameters +instanceKlass sun/security/provider/MoreDrbgParameters +instanceKlass sun/security/provider/DRBG$$Lambda$67 +instanceKlass java/security/SecureRandomSpi +instanceKlass java/security/SecureRandomParameters +instanceKlass java/security/Provider$UString +instanceKlass java/security/Provider$Service +instanceKlass sun/security/provider/NativePRNG$NonBlocking +instanceKlass sun/security/provider/NativePRNG$Blocking +instanceKlass sun/security/provider/NativePRNG +instanceKlass sun/security/provider/SunEntries$1 +instanceKlass sun/security/provider/SunEntries +instanceKlass sun/security/jca/ProviderList$2 +instanceKlass jdk/internal/math/FloatingDecimal$ASCIIToBinaryBuffer +instanceKlass jdk/internal/math/FloatingDecimal$PreparedASCIIToBinaryBuffer +instanceKlass jdk/internal/math/FloatingDecimal$ASCIIToBinaryConverter +instanceKlass jdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer +instanceKlass jdk/internal/math/FloatingDecimal$ExceptionalBinaryToASCIIBuffer +instanceKlass jdk/internal/math/FloatingDecimal$BinaryToASCIIConverter +instanceKlass jdk/internal/math/FloatingDecimal +instanceKlass java/security/Provider$EngineDescription +instanceKlass java/security/Provider$ServiceKey +instanceKlass sun/security/jca/ProviderConfig +instanceKlass sun/security/jca/ProviderList +instanceKlass sun/security/jca/Providers +instanceKlass com/google/common/base/Joiner +instanceKlass org/gradle/launcher/daemon/server/exec/DaemonCommandExecuter +instanceKlass org/gradle/internal/remote/internal/inet/MultiChoiceAddressSerializer +instanceKlass org/gradle/launcher/daemon/registry/DaemonRegistryContent$Serializer +instanceKlass org/gradle/launcher/daemon/registry/DaemonRegistryContent +instanceKlass org/gradle/cache/LockOptions +instanceKlass org/gradle/cache/internal/AbstractFileAccess +instanceKlass org/gradle/internal/serialize/Encoder +instanceKlass org/gradle/cache/internal/SimpleStateCache +instanceKlass org/gradle/cache/internal/FileIntegrityViolationSuppressingPersistentStateCacheDecorator +instanceKlass org/gradle/cache/PersistentStateCache$UpdateAction +instanceKlass org/gradle/cache/PersistentStateCache +instanceKlass org/gradle/launcher/daemon/registry/PersistentDaemonRegistry +instanceKlass org/gradle/cache/internal/CacheAccessSerializer$1 +instanceKlass org/gradle/launcher/daemon/registry/DaemonRegistryServices$1 +instanceKlass java/util/Random +instanceKlass org/gradle/internal/id/RandomLongIdGenerator +instanceKlass org/gradle/cache/internal/DefaultProcessMetaDataProvider +instanceKlass org/gradle/internal/io/ExponentialBackoff$Signal +instanceKlass org/gradle/cache/FileLock +instanceKlass org/gradle/cache/FileAccess +instanceKlass org/gradle/cache/internal/DefaultFileLockManager +instanceKlass org/gradle/internal/remote/ConnectionAcceptor +instanceKlass org/gradle/internal/remote/Address +instanceKlass java/net/SocketAddress +instanceKlass org/gradle/internal/remote/internal/inet/TcpIncomingConnector +instanceKlass org/gradle/launcher/daemon/protocol/DaemonMessageSerializer$OutputMessageSerializer +instanceKlass org/gradle/internal/logging/serializer/LogLevelChangeEventSerializer +instanceKlass org/gradle/internal/logging/serializer/ProgressEventSerializer +instanceKlass org/gradle/internal/logging/serializer/ProgressCompleteEventSerializer +instanceKlass org/gradle/internal/logging/serializer/ProgressStartEventSerializer +instanceKlass org/gradle/internal/logging/serializer/SpanSerializer +instanceKlass org/gradle/internal/logging/serializer/StyledTextOutputEventSerializer +instanceKlass org/gradle/internal/logging/serializer/UserInputResumeEventSerializer +instanceKlass org/gradle/internal/logging/serializer/PromptOutputEventSerializer +instanceKlass org/gradle/internal/logging/serializer/UserInputRequestEventSerializer +instanceKlass org/gradle/internal/logging/serializer/LogEventSerializer +instanceKlass org/gradle/launcher/daemon/protocol/DaemonMessageSerializer$CloseInputSerializer +instanceKlass org/gradle/launcher/daemon/protocol/DaemonMessageSerializer$ForwardInputSerializer +instanceKlass org/gradle/launcher/daemon/protocol/DaemonMessageSerializer$BuildEventSerializer +instanceKlass org/gradle/launcher/daemon/protocol/DaemonMessageSerializer$FinishedSerializer +instanceKlass org/gradle/tooling/internal/provider/serialization/SerializedPayloadSerializer +instanceKlass org/gradle/launcher/daemon/protocol/DaemonMessageSerializer$SuccessSerializer +instanceKlass org/gradle/launcher/daemon/protocol/DaemonMessageSerializer$FailureSerializer +instanceKlass org/gradle/launcher/daemon/protocol/DaemonMessageSerializer$BuildStartedSerializer +instanceKlass org/gradle/launcher/daemon/protocol/DaemonMessageSerializer$DaemonUnavailableSerializer +instanceKlass org/gradle/launcher/daemon/protocol/DaemonMessageSerializer$CancelSerializer +instanceKlass org/gradle/launcher/exec/BuildActionParameters +instanceKlass org/gradle/launcher/daemon/protocol/DaemonMessageSerializer$BuildActionParametersSerializer +instanceKlass org/gradle/launcher/daemon/protocol/DaemonMessageSerializer$BuildSerializer +instanceKlass org/gradle/launcher/daemon/protocol/DaemonMessageSerializer +instanceKlass org/gradle/launcher/daemon/server/DaemonTcpServerConnector +instanceKlass org/gradle/launcher/daemon/server/IncomingConnectionHandler +instanceKlass org/gradle/launcher/daemon/server/api/DaemonStateControl +instanceKlass org/gradle/internal/serialize/DefaultSerializerRegistry$TypeInfo +instanceKlass java/util/TreeMap$PrivateEntryIterator +instanceKlass org/gradle/internal/serialize/AbstractSerializer +instanceKlass org/gradle/internal/serialize/BaseSerializerFactory +instanceKlass org/gradle/internal/serialize/AbstractCollectionSerializer +instanceKlass org/gradle/launcher/cli/action/BuildActionSerializer$NullableFileSerializer +instanceKlass org/gradle/launcher/cli/action/BuildActionSerializer$ExecuteBuildActionSerializer +instanceKlass org/gradle/launcher/cli/action/ExecuteBuildAction +instanceKlass org/gradle/internal/serialize/DefaultSerializerRegistry$HierarchySerializerMatcher +instanceKlass org/gradle/internal/serialize/DefaultSerializerRegistry$StrictSerializerMatcher +instanceKlass org/gradle/internal/serialize/DefaultSerializerRegistry$SerializerClassMatcherStrategy +instanceKlass org/gradle/internal/serialize/DefaultSerializerRegistry$1 +instanceKlass org/gradle/internal/serialize/DefaultSerializerRegistry +instanceKlass org/gradle/internal/serialize/SerializerRegistry +instanceKlass org/gradle/launcher/cli/action/BuildActionSerializer +instanceKlass org/gradle/initialization/BuildRequestContext +instanceKlass org/gradle/launcher/daemon/server/exec/WatchForDisconnection +instanceKlass org/gradle/launcher/daemon/server/exec/ResetDeprecationLogger +instanceKlass org/gradle/launcher/daemon/server/exec/RequestStopIfSingleUsedDaemon +instanceKlass org/gradle/launcher/daemon/server/api/StdinHandler +instanceKlass org/gradle/launcher/daemon/server/exec/ForwardClientInput +instanceKlass org/gradle/launcher/daemon/server/health/HealthLogger +instanceKlass org/gradle/launcher/daemon/server/exec/LogAndCheckHealth +instanceKlass org/gradle/launcher/daemon/server/exec/BuildCommandOnly +instanceKlass org/gradle/launcher/daemon/server/exec/ReturnResult +instanceKlass org/gradle/launcher/daemon/server/api/HandleReportStatus +instanceKlass org/gradle/launcher/daemon/server/exec/HandleCancel +instanceKlass org/gradle/launcher/daemon/server/api/HandleInvalidateVirtualFileSystem +instanceKlass org/gradle/launcher/daemon/protocol/Message +instanceKlass org/gradle/launcher/daemon/server/api/HandleStop +instanceKlass org/gradle/launcher/daemon/diagnostics/DaemonDiagnostics +instanceKlass org/gradle/launcher/exec/BuildOutcomeReportingBuildActionRunner +instanceKlass org/gradle/tooling/internal/provider/ValidatingBuildActionRunner +instanceKlass org/gradle/launcher/exec/BuildCompletionNotifyingBuildActionRunner +instanceKlass org/gradle/launcher/exec/RunAsBuildOperationBuildActionRunner$2 +instanceKlass org/gradle/launcher/exec/RunAsBuildOperationBuildActionRunner$1 +instanceKlass org/gradle/internal/operations/CallableBuildOperation +instanceKlass org/gradle/internal/operations/BuildOperation +instanceKlass org/gradle/launcher/exec/RunBuildBuildOperationType$Result +instanceKlass org/gradle/launcher/exec/RunBuildBuildOperationType$Details +instanceKlass org/gradle/launcher/exec/RunAsBuildOperationBuildActionRunner +instanceKlass org/gradle/launcher/exec/InProcessBuildActionExecuter +instanceKlass org/gradle/launcher/exec/BuildTreeScopeBuildActionExecuter +instanceKlass org/gradle/internal/filewatch/PendingChangesListener +instanceKlass org/gradle/execution/CancellableOperationManager +instanceKlass org/gradle/initialization/ContinuousExecutionGate +instanceKlass org/gradle/tooling/internal/provider/ContinuousBuildActionExecuter +instanceKlass org/gradle/tooling/internal/provider/SubscribableBuildActionExecuter +instanceKlass org/gradle/tooling/internal/provider/SessionScopeBuildActionExecuter +instanceKlass org/gradle/tooling/internal/provider/GradleThreadBuildActionExecuter +instanceKlass org/gradle/tooling/internal/provider/ParallelismConfigurationBuildActionExecuter +instanceKlass org/gradle/tooling/internal/provider/StartParamsValidatingActionExecuter +instanceKlass org/gradle/initialization/BuildRequestMetaData +instanceKlass org/gradle/initialization/exception/ExceptionAnalyser +instanceKlass org/gradle/initialization/exception/ExceptionCollector +instanceKlass org/gradle/tooling/internal/provider/SessionFailureReportingActionExecuter +instanceKlass org/gradle/tooling/internal/provider/SetupLoggingActionExecuter +instanceKlass org/gradle/internal/concurrent/ParallelismConfigurationListener +instanceKlass org/gradle/internal/concurrent/DefaultParallelismConfiguration +instanceKlass org/gradle/initialization/DefaultParallelismConfigurationManager +instanceKlass org/gradle/internal/filewatch/FileSystemChangeWaiter +instanceKlass org/gradle/internal/filewatch/DefaultFileSystemChangeWaiterFactory +instanceKlass java/util/concurrent/SynchronousQueue$TransferStack$SNode +instanceKlass java/util/concurrent/SynchronousQueue$Transferer +instanceKlass org/gradle/internal/filewatch/DefaultFileWatcherFactory +instanceKlass org/gradle/internal/nativeintegration/filesystem/services/FallbackStat +instanceKlass org/gradle/internal/nativeintegration/filesystem/services/EmptyChmod +instanceKlass org/gradle/internal/nativeintegration/filesystem/services/GenericFileSystem +instanceKlass org/gradle/internal/nativeintegration/filesystem/jdk7/Jdk7Symlink +instanceKlass org/gradle/internal/nativeintegration/filesystem/services/WindowsSymlink +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/MethodHandleImpl$ArrayAccessor +instanceKlass java/lang/invoke/MethodHandleImpl$2 +instanceKlass java/lang/invoke/MethodHandleImpl$LoopClauses +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass org/gradle/internal/file/FileMetadataSnapshot +instanceKlass org/gradle/internal/nativeintegration/filesystem/jdk7/Jdk7FileMetadataAccessor +instanceKlass org/gradle/internal/nativeintegration/filesystem/services/JdkFallbackHelper +instanceKlass org/gradle/internal/nativeintegration/filesystem/services/FallbackFileMetadataAccessor +instanceKlass net/rubygrapefruit/platform/file/PosixFileInfo +instanceKlass net/rubygrapefruit/platform/file/FileInfo +instanceKlass org/gradle/internal/nativeintegration/services/NativeServices$BrokenService +instanceKlass org/gradle/internal/nativeintegration/filesystem/services/UnavailablePosixFiles +instanceKlass net/rubygrapefruit/platform/internal/jni/AbstractFileEventFunctions +instanceKlass net/rubygrapefruit/platform/file/FileSystems +instanceKlass net/rubygrapefruit/platform/terminal/Terminals +instanceKlass org/gradle/cache/internal/FileContentCacheFactory +instanceKlass org/gradle/internal/execution/timeout/TimeoutHandler +instanceKlass org/gradle/internal/file/FileAccessTimeJournal +instanceKlass org/gradle/internal/classpath/CachedClasspathTransformer +instanceKlass org/gradle/process/internal/worker/WorkerProcessFactory +instanceKlass org/gradle/internal/vfs/AdditiveCacheLocations +instanceKlass org/gradle/internal/classloader/HashingClassLoaderFactory +instanceKlass org/gradle/internal/hash/ClassLoaderHierarchyHasher +instanceKlass org/gradle/groovy/scripts/internal/ScriptSourceHasher +instanceKlass org/gradle/internal/classpath/ClasspathTransformerCacheFactory +instanceKlass org/gradle/api/internal/initialization/loadercache/ClassLoaderCache +instanceKlass org/gradle/internal/service/scopes/WorkerSharedUserHomeScopeServices +instanceKlass org/gradle/internal/service/scopes/DefaultGradleUserHomeScopeServiceRegistry +instanceKlass org/gradle/internal/logging/text/AbstractStyledTextOutputFactory +instanceKlass org/gradle/api/internal/file/FileCollectionStructureVisitor +instanceKlass org/gradle/api/execution/internal/DefaultTaskInputsListener +instanceKlass org/gradle/launcher/daemon/server/expiry/DaemonExpirationResult +instanceKlass java/time/Duration +instanceKlass java/time/temporal/TemporalAmount +instanceKlass org/gradle/internal/event/DefaultListenerManager$EventBroadcast +instanceKlass java/time/temporal/TemporalUnit +instanceKlass org/gradle/launcher/daemon/server/expiry/DaemonExpirationListener +instanceKlass org/gradle/launcher/daemon/server/health/LowNonHeapDaemonExpirationStrategy +instanceKlass java/util/concurrent/TimeUnit$1 +instanceKlass org/gradle/launcher/daemon/server/health/LowHeapSpaceDaemonExpirationStrategy +instanceKlass org/gradle/launcher/daemon/server/health/GcThrashingDaemonExpirationStrategy +instanceKlass org/gradle/launcher/daemon/server/expiry/AnyDaemonExpirationStrategy +instanceKlass org/gradle/internal/concurrent/GradleThread +instanceKlass org/gradle/internal/event/DefaultListenerManager +instanceKlass org/gradle/internal/concurrent/ThreadFactoryImpl$ManagedThreadRunnable +instanceKlass java/util/concurrent/Executors$RunnableAdapter +instanceKlass java/util/concurrent/Executors +instanceKlass java/util/concurrent/FutureTask$WaitNode +instanceKlass java/util/concurrent/FutureTask +instanceKlass org/gradle/internal/concurrent/ManagedExecutorImpl$1 +instanceKlass org/gradle/launcher/daemon/server/health/gc/GarbageCollectionCheck +instanceKlass org/gradle/launcher/daemon/server/health/gc/DefaultGarbageCollectionMonitor$1 +instanceKlass java/util/concurrent/BlockingDeque +instanceKlass org/gradle/launcher/daemon/server/health/gc/DefaultSlidingWindow +instanceKlass org/gradle/launcher/daemon/server/health/gc/SlidingWindow +instanceKlass org/gradle/launcher/daemon/server/health/gc/DefaultGarbageCollectionMonitor +instanceKlass org/gradle/launcher/daemon/server/health/gc/GarbageCollectionInfo +instanceKlass org/gradle/internal/concurrent/ExecutorPolicy$CatchAndRecordFailures +instanceKlass java/util/concurrent/RunnableScheduledFuture +instanceKlass java/util/concurrent/ScheduledFuture +instanceKlass java/util/concurrent/Delayed +instanceKlass java/util/concurrent/RunnableFuture +instanceKlass java/util/concurrent/Future +instanceKlass org/gradle/internal/concurrent/ThreadFactoryImpl +instanceKlass java/util/concurrent/ThreadPoolExecutor$AbortPolicy +instanceKlass java/util/concurrent/RejectedExecutionHandler +instanceKlass java/util/concurrent/AbstractExecutorService +instanceKlass org/gradle/internal/concurrent/ManagedScheduledExecutor +instanceKlass java/util/concurrent/ScheduledExecutorService +instanceKlass org/gradle/internal/concurrent/ManagedExecutor +instanceKlass java/util/concurrent/ExecutorService +instanceKlass java/util/concurrent/Executor +instanceKlass org/gradle/internal/concurrent/AsyncStoppable +instanceKlass org/gradle/internal/concurrent/ExecutorPolicy +instanceKlass org/gradle/internal/concurrent/DefaultExecutorFactory +instanceKlass org/gradle/launcher/daemon/server/health/gc/GarbageCollectorMonitoringStrategy$3 +instanceKlass sun/management/Sensor +instanceKlass sun/management/MemoryPoolImpl +instanceKlass java/lang/management/MemoryPoolMXBean +instanceKlass org/gradle/launcher/daemon/server/health/gc/GarbageCollectorMonitoringStrategy$2 +instanceKlass org/gradle/internal/Cast +instanceKlass org/gradle/util/CollectionUtils +instanceKlass org/gradle/launcher/daemon/server/health/gc/GarbageCollectorMonitoringStrategy$1 +instanceKlass sun/management/spi/PlatformMBeanProvider$PlatformComponent$$Lambda$66 +instanceKlass sun/management/spi/PlatformMBeanProvider$PlatformComponent$$Lambda$65 +instanceKlass com/sun/jmx/mbeanserver/Util +instanceKlass javax/management/ObjectName$Property +instanceKlass com/sun/jmx/mbeanserver/GetPropertyAction +instanceKlass javax/management/ObjectName +instanceKlass javax/management/QueryExp +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass sun/management/Util +instanceKlass com/sun/management/GarbageCollectorMXBean +instanceKlass java/lang/management/MemoryMXBean +instanceKlass java/util/stream/Collectors$$Lambda$64 +instanceKlass java/util/stream/Collectors$$Lambda$63 +instanceKlass java/util/stream/Collectors$$Lambda$62 +instanceKlass java/lang/management/ManagementFactory$$Lambda$61 +instanceKlass java/lang/management/ManagementFactory$PlatformMBeanFinder$$Lambda$60 +instanceKlass java/util/Collections$2 +instanceKlass jdk/management/jfr/internal/FlightRecorderMXBeanProvider$SingleMBeanComponent +instanceKlass jdk/management/jfr/FlightRecorderMXBean +instanceKlass java/util/HashMap$HashMapSpliterator +instanceKlass java/lang/management/ManagementFactory$PlatformMBeanFinder$$Lambda$59 +instanceKlass java/lang/management/ManagementFactory$PlatformMBeanFinder$$Lambda$58 +instanceKlass java/util/stream/Collectors$$Lambda$57 +instanceKlass java/util/stream/Collectors$$Lambda$56 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/util/stream/Collectors$$Lambda$55 +instanceKlass java/lang/management/ManagementFactory$PlatformMBeanFinder$$Lambda$54 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/util/function/Function$$Lambda$53 +instanceKlass java/lang/management/ManagementFactory$PlatformMBeanFinder$$Lambda$52 +instanceKlass java/lang/management/ManagementFactory$PlatformMBeanFinder$$Lambda$51 +instanceKlass java/lang/management/DefaultPlatformMBeanProvider$11 +instanceKlass java/lang/management/DefaultPlatformMBeanProvider$10 +instanceKlass java/lang/management/DefaultPlatformMBeanProvider$9 +instanceKlass sun/management/ManagementFactoryHelper$LoggingMXBeanAccess$1 +instanceKlass sun/management/ManagementFactoryHelper$LoggingMXBeanAccess +instanceKlass java/lang/management/DefaultPlatformMBeanProvider$8 +instanceKlass java/lang/management/DefaultPlatformMBeanProvider$7 +instanceKlass java/lang/management/DefaultPlatformMBeanProvider$6 +instanceKlass java/lang/management/DefaultPlatformMBeanProvider$5 +instanceKlass java/lang/management/DefaultPlatformMBeanProvider$4 +instanceKlass java/lang/management/DefaultPlatformMBeanProvider$3 +instanceKlass java/lang/management/DefaultPlatformMBeanProvider$2 +instanceKlass java/lang/management/DefaultPlatformMBeanProvider$1 +instanceKlass java/util/concurrent/Callable +instanceKlass com/sun/management/internal/PlatformMBeanProviderImpl$5 +instanceKlass sun/management/VMManagementImpl +instanceKlass sun/management/VMManagement +instanceKlass sun/management/ManagementFactoryHelper +instanceKlass sun/management/NotificationEmitterSupport +instanceKlass javax/management/NotificationEmitter +instanceKlass javax/management/NotificationBroadcaster +instanceKlass com/sun/management/DiagnosticCommandMBean +instanceKlass javax/management/DynamicMBean +instanceKlass com/sun/management/internal/PlatformMBeanProviderImpl$4 +instanceKlass com/sun/management/internal/PlatformMBeanProviderImpl$3 +instanceKlass com/sun/management/internal/PlatformMBeanProviderImpl$2 +instanceKlass java/util/stream/ReduceOps$Box +instanceKlass java/util/stream/ReduceOps$AccumulatingSink +instanceKlass java/util/stream/ReduceOps$ReduceOp +instanceKlass java/util/stream/ReduceOps +instanceKlass java/util/stream/Collectors$$Lambda$50 +instanceKlass java/util/stream/Collectors$$Lambda$49 +instanceKlass java/util/function/BinaryOperator +instanceKlass java/util/stream/Collectors$$Lambda$48 +instanceKlass java/util/function/BiConsumer +instanceKlass java/util/stream/Collectors$$Lambda$47 +instanceKlass java/util/stream/Collectors$CollectorImpl +instanceKlass java/util/stream/Collector +instanceKlass java/util/stream/Collectors +instanceKlass com/sun/management/internal/PlatformMBeanProviderImpl$1 +instanceKlass sun/management/spi/PlatformMBeanProvider$PlatformComponent +instanceKlass com/sun/management/internal/PlatformMBeanProviderImpl$$Lambda$46 +instanceKlass java/lang/management/ManagementFactory$PlatformMBeanFinder$$Lambda$45 +instanceKlass sun/management/spi/PlatformMBeanProvider +instanceKlass java/lang/management/ManagementFactory$PlatformMBeanFinder$$Lambda$44 +instanceKlass java/lang/management/ManagementFactory$PlatformMBeanFinder +instanceKlass java/lang/management/GarbageCollectorMXBean +instanceKlass java/lang/management/MemoryManagerMXBean +instanceKlass java/lang/management/PlatformManagedObject +instanceKlass java/lang/management/ManagementFactory$$Lambda$43 +instanceKlass java/lang/management/ManagementFactory +instanceKlass org/gradle/launcher/daemon/server/health/gc/GarbageCollectionMonitor +instanceKlass org/gradle/internal/time/DefaultTimer +instanceKlass org/gradle/tooling/internal/provider/runner/CompositeOperationResultPostProcessor +instanceKlass org/gradle/tooling/internal/provider/runner/ToolingApiBuildEventListenerFactory$1 +instanceKlass org/gradle/tooling/internal/provider/runner/OperationDependencyLookup +instanceKlass org/gradle/internal/operations/DefaultBuildOperationIdFactory +instanceKlass org/gradle/language/java/internal/JavaLanguagePluginServiceRegistry$JavaGlobalScopeServices$$Lambda$42 +instanceKlass sun/invoke/util/VerifyAccess$1 +instanceKlass org/gradle/tooling/internal/protocol/events/InternalJavaCompileTaskOperationResult$InternalAnnotationProcessorResult +instanceKlass org/gradle/tooling/internal/protocol/events/InternalTaskCachedResult +instanceKlass org/gradle/tooling/internal/protocol/events/InternalTaskSuccessResult +instanceKlass org/gradle/tooling/internal/protocol/events/InternalSuccessResult +instanceKlass org/gradle/tooling/internal/protocol/events/InternalJavaCompileTaskOperationResult +instanceKlass org/gradle/internal/build/event/types/AbstractResult +instanceKlass org/gradle/tooling/internal/protocol/events/InternalIncrementalTaskResult +instanceKlass org/gradle/tooling/internal/protocol/events/InternalTaskResult +instanceKlass org/gradle/tooling/internal/protocol/events/InternalOperationResult +instanceKlass org/gradle/tooling/internal/protocol/InternalProtocolInterface +instanceKlass org/gradle/internal/service/DefaultServiceRegistry$CollectionService +instanceKlass org/gradle/tooling/internal/provider/runner/ClientProvidedPhasedActionRunner +instanceKlass org/gradle/tooling/internal/provider/runner/ClientProvidedBuildActionRunner +instanceKlass org/gradle/tooling/internal/provider/runner/TestExecutionRequestActionRunner +instanceKlass org/gradle/BuildListener +instanceKlass org/gradle/tooling/internal/provider/runner/BuildModelActionRunner +instanceKlass org/gradle/launcher/exec/ChainingBuildActionRunner +instanceKlass org/gradle/internal/operations/DefaultBuildOperationListenerManager$1 +instanceKlass org/gradle/internal/operations/DefaultBuildOperationListenerManager +instanceKlass org/gradle/internal/service/DefaultServiceRegistry$CollectingVisitor +instanceKlass org/gradle/internal/logging/text/AbstractLineChoppingStyledTextOutput$StateContext +instanceKlass java/text/DontCareFieldPosition$1 +instanceKlass java/text/Format$FieldDelegate +instanceKlass java/util/Date +instanceKlass java/text/DigitList +instanceKlass java/text/FieldPosition +instanceKlass sun/util/locale/provider/JRELocaleProviderAdapter$$Lambda$41 +instanceKlass java/text/DecimalFormatSymbols +instanceKlass sun/util/locale/provider/JRELocaleProviderAdapter$$Lambda$40 +instanceKlass sun/util/locale/provider/JRELocaleProviderAdapter$$Lambda$39 +instanceKlass java/text/DateFormatSymbols +instanceKlass sun/util/calendar/CalendarUtils +instanceKlass sun/util/calendar/CalendarDate +instanceKlass sun/util/resources/Bundles$CacheKeyReference +instanceKlass java/util/ResourceBundle$ResourceBundleProviderHelper$$Lambda$38 +instanceKlass java/util/ResourceBundle$ResourceBundleProviderHelper +instanceKlass sun/util/resources/Bundles$CacheKey +instanceKlass java/util/ResourceBundle$1 +instanceKlass jdk/internal/misc/JavaUtilResourceBundleAccess +instanceKlass sun/util/resources/Bundles +instanceKlass sun/util/resources/LocaleData$LocaleDataStrategy +instanceKlass sun/util/resources/Bundles$Strategy +instanceKlass sun/util/resources/LocaleData$1 +instanceKlass sun/util/cldr/CLDRLocaleProviderAdapter$$Lambda$37 +instanceKlass sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter +instanceKlass sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter +instanceKlass sun/util/locale/provider/LocaleServiceProviderPool +instanceKlass sun/util/locale/provider/CalendarDataUtility +instanceKlass sun/util/calendar/CalendarSystem +instanceKlass java/util/Calendar$Builder +instanceKlass sun/util/locale/provider/AvailableLanguageTags +instanceKlass sun/util/locale/provider/JRELocaleProviderAdapter$$Lambda$36 +instanceKlass sun/util/resources/cldr/provider/CLDRLocaleDataMetaInfo +instanceKlass jdk/internal/module/ModulePatcher$PatchedModuleReader +instanceKlass sun/util/cldr/CLDRLocaleProviderAdapter$1 +instanceKlass sun/util/locale/StringTokenIterator +instanceKlass sun/util/locale/ParseStatus +instanceKlass sun/util/cldr/CLDRBaseLocaleDataMetaInfo +instanceKlass sun/util/locale/provider/LocaleDataMetaInfo +instanceKlass sun/util/locale/provider/LocaleProviderAdapter$1 +instanceKlass java/util/ResourceBundle +instanceKlass java/util/ResourceBundle$Control +instanceKlass sun/util/resources/LocaleData +instanceKlass sun/util/locale/provider/LocaleResources +instanceKlass sun/util/locale/LanguageTag +instanceKlass sun/util/locale/provider/ResourceBundleBasedAdapter +instanceKlass sun/util/locale/provider/LocaleProviderAdapter +instanceKlass java/util/spi/LocaleServiceProvider +instanceKlass java/util/zip/Checksum$1 +instanceKlass java/util/zip/CRC32 +instanceKlass java/util/zip/Checksum +instanceKlass sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule +instanceKlass sun/util/calendar/ZoneInfoFile$1 +instanceKlass sun/util/calendar/ZoneInfoFile +instanceKlass java/util/TimeZone +instanceKlass java/util/Calendar +instanceKlass java/text/AttributedCharacterIterator$Attribute +instanceKlass java/text/Format +instanceKlass org/gradle/internal/logging/sink/LogEventDispatcher +instanceKlass org/gradle/internal/SystemProperties +instanceKlass org/gradle/internal/logging/text/AbstractLineChoppingStyledTextOutput$4 +instanceKlass org/gradle/internal/logging/text/AbstractLineChoppingStyledTextOutput$3 +instanceKlass org/gradle/internal/logging/text/AbstractLineChoppingStyledTextOutput$2 +instanceKlass org/gradle/internal/logging/text/AbstractLineChoppingStyledTextOutput$1 +instanceKlass org/gradle/internal/logging/text/AbstractLineChoppingStyledTextOutput$State +instanceKlass org/gradle/internal/logging/text/StreamBackedStandardOutputListener +instanceKlass org/gradle/internal/logging/text/AbstractStyledTextOutput +instanceKlass org/gradle/internal/logging/console/StyledTextOutputBackedRenderer +instanceKlass org/slf4j/helpers/FormattingTuple +instanceKlass org/slf4j/helpers/MessageFormatter +instanceKlass net/rubygrapefruit/platform/internal/FunctionResult +instanceKlass org/gradle/internal/logging/source/PrintStreamLoggingSystem$PrintStreamDestination +instanceKlass java/util/logging/ErrorManager +instanceKlass org/gradle/internal/logging/source/JavaUtilLoggingSystem$SnapshotImpl +instanceKlass org/gradle/internal/logging/config/LoggingSystemAdapter$SnapshotImpl +instanceKlass org/gradle/internal/dispatch/MethodInvocation +instanceKlass org/gradle/internal/logging/sink/OutputEventRenderer$SnapshotImpl +instanceKlass org/gradle/process/internal/shutdown/ShutdownHooks +instanceKlass org/gradle/launcher/daemon/bootstrap/DaemonMain$1 +instanceKlass com/google/common/io/Files$3 +instanceKlass com/google/common/collect/FluentIterable +instanceKlass com/google/common/io/LineProcessor +instanceKlass com/google/common/io/ByteSource +instanceKlass com/google/common/io/ByteSink +instanceKlass com/google/common/base/Predicate +instanceKlass com/google/common/graph/SuccessorsFunction +instanceKlass com/google/common/collect/TreeTraverser +instanceKlass com/google/common/io/Files +instanceKlass org/gradle/util/GFileUtils +instanceKlass org/gradle/internal/IoActions +instanceKlass java/util/regex/CharPredicates$$Lambda$35 +instanceKlass org/gradle/util/GradleVersion +instanceKlass org/gradle/launcher/daemon/context/DefaultDaemonContext$Serializer +instanceKlass org/gradle/launcher/daemon/context/DefaultDaemonContext +instanceKlass net/rubygrapefruit/platform/internal/jni/PosixProcessFunctions +instanceKlass org/gradle/internal/FileUtils$1 +instanceKlass org/gradle/internal/FileUtils +instanceKlass org/gradle/internal/jvm/Jre +instanceKlass com/google/common/collect/Lists +instanceKlass org/gradle/internal/nativeintegration/ReflectiveEnvironment +instanceKlass org/gradle/internal/nativeintegration/processenvironment/AbstractProcessEnvironment +instanceKlass net/rubygrapefruit/platform/internal/DefaultProcess +instanceKlass net/rubygrapefruit/platform/internal/WrapperProcess +instanceKlass net/rubygrapefruit/platform/file/WindowsFiles +instanceKlass org/gradle/launcher/daemon/context/DaemonContextBuilder +instanceKlass org/gradle/internal/id/UUIDGenerator +instanceKlass org/gradle/internal/remote/internal/IncomingConnector +instanceKlass org/gradle/internal/remote/MessagingClient +instanceKlass org/gradle/internal/remote/internal/OutgoingConnector +instanceKlass org/gradle/internal/remote/MessagingServer +instanceKlass org/gradle/internal/id/IdGenerator +instanceKlass org/gradle/internal/remote/services/MessagingServices +instanceKlass org/gradle/tooling/internal/provider/runner/ToolingApiBuildEventListenerFactory +instanceKlass org/gradle/tooling/internal/provider/runner/ToolingBuilderServices$1 +instanceKlass org/gradle/instantexecution/serialization/beans/BeanConstructors +instanceKlass org/gradle/nativeplatform/NativeBinarySpec +instanceKlass org/gradle/internal/resource/transport/sftp/SftpClientFactory +instanceKlass org/gradle/internal/resource/transport/sftp/SftpResourcesPluginServiceRegistry$GlobalScopeServices +instanceKlass org/gradle/internal/resource/transport/aws/s3/S3ResourcesPluginServiceRegistry$GlobalScopeServices +instanceKlass org/gradle/internal/resource/transport/gcp/gcs/GcsResourcesPluginServiceRegistry$GlobalScopeServices +instanceKlass org/gradle/nativeplatform/TargetMachineBuilder +instanceKlass org/gradle/nativeplatform/TargetMachine +instanceKlass org/gradle/nativeplatform/internal/DefaultTargetMachineFactory +instanceKlass org/gradle/nativeplatform/TargetMachineFactory +instanceKlass org/gradle/nativeplatform/internal/NativePlatformResolver +instanceKlass org/gradle/platform/base/internal/PlatformResolver +instanceKlass org/gradle/nativeplatform/platform/internal/NativePlatformInternal +instanceKlass org/gradle/nativeplatform/platform/NativePlatform +instanceKlass org/gradle/api/Describable +instanceKlass org/gradle/nativeplatform/platform/internal/OperatingSystemInternal +instanceKlass org/gradle/nativeplatform/platform/OperatingSystem +instanceKlass org/gradle/nativeplatform/platform/internal/NativePlatforms +instanceKlass org/gradle/jvm/test/JvmTestSuiteBinarySpec +instanceKlass org/gradle/jvm/internal/WithDependencies +instanceKlass org/gradle/testing/base/TestSuiteBinarySpec +instanceKlass org/gradle/internal/build/event/BuildEventSubscriptions +instanceKlass org/gradle/api/internal/tasks/compile/tooling/JavaCompileTaskSuccessResultPostProcessor +instanceKlass org/gradle/internal/build/event/OperationResultPostProcessor +instanceKlass org/gradle/language/java/internal/JavaLanguagePluginServiceRegistry$JavaGlobalScopeServices +instanceKlass org/gradle/api/reporting/components/internal/DiagnosticsServices$1 +instanceKlass org/gradle/jvm/internal/resolve/DefaultVariantAxisCompatibilityFactory +instanceKlass org/gradle/jvm/internal/resolve/DefaultJavaPlatformVariantAxisCompatibility +instanceKlass org/gradle/jvm/platform/JavaPlatform +instanceKlass org/gradle/platform/base/Platform +instanceKlass org/gradle/jvm/internal/resolve/VariantAxisCompatibilityFactory +instanceKlass org/gradle/jvm/JvmBinarySpec +instanceKlass org/gradle/platform/base/BinarySpec +instanceKlass org/gradle/platform/base/Binary +instanceKlass org/gradle/api/CheckableComponentSpec +instanceKlass org/gradle/api/BuildableComponentSpec +instanceKlass org/gradle/platform/base/ComponentSpec +instanceKlass org/gradle/model/ModelElement +instanceKlass org/gradle/api/Named +instanceKlass org/gradle/api/Buildable +instanceKlass org/gradle/platform/base/internal/registry/ComponentModelBaseServiceRegistry$GlobalScopeServices +instanceKlass org/gradle/api/component/SoftwareComponentFactory +instanceKlass org/gradle/api/plugins/internal/PluginAuthorServices$GlobalScopeServices +instanceKlass org/gradle/internal/logging/text/DiagnosticsVisitor +instanceKlass org/gradle/reporting/ReportRenderer +instanceKlass org/gradle/internal/resource/transport/http/SslContextFactory +instanceKlass org/gradle/internal/resource/transport/http/HttpResourcesPluginServiceRegistry$GlobalScopeServices +instanceKlass org/gradle/internal/resource/ExternalResourceName +instanceKlass org/gradle/api/internal/attributes/EmptySchema +instanceKlass org/gradle/api/internal/attributes/AttributesSchemaInternal +instanceKlass org/gradle/api/attributes/AttributesSchema +instanceKlass org/gradle/cache/internal/ProducerGuard +instanceKlass org/gradle/api/internal/artifacts/dsl/dependencies/PlatformSupport +instanceKlass org/gradle/api/internal/artifacts/transform/ArtifactTransformActionScheme +instanceKlass org/gradle/api/internal/artifacts/transform/ArtifactTransformParameterScheme +instanceKlass org/gradle/api/internal/tasks/properties/annotations/AbstractInputFilePropertyAnnotationHandler +instanceKlass org/gradle/api/internal/artifacts/ivyservice/moduleconverter/dependencies/AbstractIvyDependencyDescriptorFactory +instanceKlass org/gradle/api/internal/artifacts/ivyservice/moduleconverter/dependencies/IvyDependencyDescriptorFactory +instanceKlass org/gradle/api/internal/artifacts/ivyservice/ivyresolve/strategy/VersionComparator +instanceKlass org/gradle/api/internal/artifacts/ivyservice/moduleconverter/dependencies/ExcludeRuleConverter +instanceKlass org/gradle/api/internal/artifacts/ivyservice/IvyContextManager +instanceKlass org/gradle/api/internal/artifacts/ivyservice/moduleconverter/dependencies/DependencyDescriptorFactory +instanceKlass org/gradle/internal/resource/connector/ResourceConnectorFactory +instanceKlass org/gradle/internal/resource/local/FileResourceRepository +instanceKlass org/gradle/internal/resource/ExternalResourceRepository +instanceKlass org/gradle/api/internal/artifacts/ImmutableModuleIdentifierFactory +instanceKlass org/gradle/api/internal/artifacts/ivyservice/moduleconverter/dependencies/LocalConfigurationMetadataBuilder +instanceKlass org/gradle/api/internal/artifacts/ivyservice/moduleconverter/LocalComponentMetadataBuilder +instanceKlass org/gradle/api/internal/artifacts/DependencyManagementGlobalScopeServices +instanceKlass org/gradle/internal/operations/BuildOperationListener +instanceKlass org/gradle/initialization/BuildEventConsumer +instanceKlass org/gradle/internal/build/event/DefaultBuildEventsListenerRegistry +instanceKlass org/gradle/internal/build/event/BuildEventListenerRegistryInternal +instanceKlass org/gradle/build/event/BuildEventsListenerRegistry +instanceKlass org/gradle/kotlin/dsl/support/ImplicitImports +instanceKlass org/gradle/kotlin/dsl/support/GlobalServices +instanceKlass org/gradle/api/internal/tasks/properties/PropertyWalker +instanceKlass org/gradle/api/internal/tasks/properties/TaskScheme +instanceKlass org/gradle/api/internal/tasks/properties/TypeScheme +instanceKlass org/gradle/api/internal/tasks/properties/InspectionSchemeFactory +instanceKlass org/gradle/api/model/ReplacedBy +instanceKlass org/gradle/api/tasks/Internal +instanceKlass org/gradle/api/tasks/OutputFiles +instanceKlass org/gradle/api/tasks/OutputFile +instanceKlass org/gradle/api/tasks/OutputDirectory +instanceKlass org/gradle/api/tasks/OutputDirectories +instanceKlass org/gradle/api/tasks/options/OptionValues +instanceKlass org/gradle/api/tasks/Nested +instanceKlass org/gradle/api/tasks/LocalState +instanceKlass org/gradle/api/tasks/InputFiles +instanceKlass org/gradle/api/tasks/InputFile +instanceKlass org/gradle/api/tasks/InputDirectory +instanceKlass org/gradle/api/artifacts/transform/InputArtifactDependencies +instanceKlass org/gradle/api/artifacts/transform/InputArtifact +instanceKlass org/gradle/api/tasks/Input +instanceKlass org/gradle/api/tasks/Destroys +instanceKlass org/gradle/api/tasks/Console +instanceKlass org/gradle/internal/reflect/annotations/TypeAnnotationMetadataStore +instanceKlass org/gradle/api/internal/project/taskfactory/TaskClassInfoStore +instanceKlass org/gradle/api/internal/tasks/properties/annotations/TypeAnnotationHandler +instanceKlass org/gradle/api/internal/tasks/properties/annotations/PropertyAnnotationHandler +instanceKlass org/gradle/internal/service/scopes/ExecutionGlobalServices +instanceKlass org/gradle/internal/build/event/BuildEventListenerFactory +instanceKlass org/gradle/tooling/internal/provider/serialization/ClassLoaderCache +instanceKlass org/gradle/tooling/internal/provider/ExecuteBuildActionRunner +instanceKlass org/gradle/internal/invocation/BuildActionRunner +instanceKlass org/gradle/internal/filewatch/FileSystemChangeWaiterFactory +instanceKlass org/gradle/tooling/internal/provider/LauncherServices$ToolingGlobalScopeServices +instanceKlass org/gradle/jvm/internal/resolve/VariantAxisCompatibility +instanceKlass org/gradle/internal/service/DefaultServiceLocator$ServiceFactory +instanceKlass org/gradle/internal/service/scopes/AbstractPluginServiceRegistry +instanceKlass org/gradle/internal/service/scopes/PluginServiceRegistry +instanceKlass org/gradle/initialization/ClassLoaderScopeListeners +instanceKlass org/gradle/api/internal/classpath/DefaultModuleRegistry$DefaultModule +instanceKlass org/gradle/api/Transformer +instanceKlass org/gradle/util/GUtil +instanceKlass org/gradle/api/internal/classpath/DefaultModuleRegistry$$Lambda$34 +instanceKlass java/util/NavigableSet +instanceKlass java/util/SortedSet +instanceKlass com/google/common/collect/Sets +instanceKlass groovy/lang/MetaClass +instanceKlass groovy/lang/MetaObjectProtocol +instanceKlass groovy/lang/GroovySystem +instanceKlass groovy/lang/MetaClassRegistry +instanceKlass groovy/lang/GroovyObject +instanceKlass org/objectweb/asm/ClassVisitor +instanceKlass java/util/ComparableTimSort +instanceKlass java/util/Arrays$LegacyMergeSort +instanceKlass org/gradle/internal/util/Trie$Builder +instanceKlass org/gradle/internal/util/Trie +instanceKlass org/gradle/internal/classloader/FilteringClassLoader$TrieSet +instanceKlass java/lang/ClassLoader$$Lambda$33 +instanceKlass jdk/internal/loader/BootLoader$PackageHelper$$Lambda$32 +instanceKlass jdk/internal/loader/BootLoader$PackageHelper +instanceKlass java/util/stream/StreamSpliterators$WrappingSpliterator$$Lambda$31 +instanceKlass java/util/stream/AbstractSpinedBuffer +instanceKlass java/util/stream/Node$Builder +instanceKlass java/util/stream/Node$OfDouble +instanceKlass java/util/stream/Node$OfLong +instanceKlass java/util/stream/Node$OfInt +instanceKlass java/util/stream/Node$OfPrimitive +instanceKlass java/util/stream/Nodes$EmptyNode +instanceKlass java/util/stream/Node +instanceKlass java/util/stream/Nodes +instanceKlass java/lang/ClassLoader$$Lambda$30 +instanceKlass java/util/function/IntFunction +instanceKlass jdk/internal/loader/BootLoader$$Lambda$29 +instanceKlass java/util/stream/Streams$2 +instanceKlass java/util/stream/StreamSpliterators$AbstractWrappingSpliterator +instanceKlass java/util/stream/AbstractPipeline$$Lambda$28 +instanceKlass java/util/stream/Streams$ConcatSpliterator +instanceKlass java/lang/ClassLoader$$Lambda$27 +instanceKlass org/gradle/internal/classloader/ClassLoaderUtils$AbstractClassLoaderLookuper +instanceKlass org/gradle/internal/classloader/ClassLoaderUtils$ClassLoaderPackagesFetcher +instanceKlass org/gradle/internal/classloader/ClassLoaderUtils$ClassDefiner +instanceKlass org/gradle/internal/classloader/ClassLoaderUtils +instanceKlass com/google/common/collect/PeekingIterator +instanceKlass com/google/common/collect/Iterators +instanceKlass com/google/common/collect/UnmodifiableIterator +instanceKlass org/gradle/initialization/GradleApiSpecAggregator$DefaultSpec +instanceKlass kotlin/jvm/internal/Intrinsics +instanceKlass kotlin/collections/SetsKt__SetsJVMKt +instanceKlass com/google/common/base/Preconditions +instanceKlass com/google/common/collect/Hashing +instanceKlass com/google/common/collect/ObjectArrays +instanceKlass org/apache/groovy/json/DefaultFastStringServiceFactory +instanceKlass org/apache/groovy/json/FastStringServiceFactory +instanceKlass org/gradle/internal/reflect/ReflectionCache$CacheEntry +instanceKlass com/google/common/collect/CollectPreconditions +instanceKlass com/google/common/collect/ImmutableCollection$Builder +instanceKlass org/gradle/kotlin/dsl/provider/KotlinGradleApiSpecProvider +instanceKlass org/gradle/initialization/GradleApiSpecProvider$SpecAdapter +instanceKlass org/gradle/initialization/GradleApiSpecProvider +instanceKlass org/gradle/internal/service/DefaultServiceLocator +instanceKlass org/gradle/initialization/GradleApiSpecProvider$Spec +instanceKlass org/gradle/initialization/GradleApiSpecAggregator +instanceKlass com/google/common/base/Function +instanceKlass org/gradle/internal/reflect/CachedInvokable +instanceKlass org/gradle/internal/reflect/ReflectionCache +instanceKlass org/gradle/internal/reflect/DirectInstantiator +instanceKlass org/gradle/initialization/DefaultClassLoaderRegistry +instanceKlass org/gradle/internal/installation/GradleRuntimeShadedJarDetector +instanceKlass sun/net/www/protocol/jar/URLJarFileCallBack +instanceKlass sun/net/www/protocol/jar/JarFileFactory +instanceKlass sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController +instanceKlass java/net/URLClassLoader$2 +instanceKlass org/objectweb/asm/Type +instanceKlass org/gradle/initialization/DefaultLegacyTypesSupport +instanceKlass org/gradle/api/internal/DynamicModulesClassPathProvider +instanceKlass org/gradle/api/internal/DefaultClassPathProvider +instanceKlass org/gradle/api/internal/ClassPathProvider +instanceKlass org/gradle/api/internal/DefaultClassPathRegistry +instanceKlass org/gradle/api/internal/classpath/DefaultPluginModuleRegistry +instanceKlass org/gradle/api/internal/classpath/ManifestUtil +instanceKlass org/gradle/internal/classloader/ClassLoaderSpec +instanceKlass org/gradle/internal/classloader/ClassLoaderHierarchy +instanceKlass org/gradle/internal/classloader/ClassLoaderVisitor +instanceKlass org/gradle/api/internal/classpath/DefaultModuleRegistry$$Lambda$26 +instanceKlass org/gradle/api/internal/classpath/Module +instanceKlass org/gradle/internal/installation/GradleInstallation$1 +instanceKlass org/gradle/internal/installation/GradleInstallation +instanceKlass org/gradle/internal/classloader/ClasspathUtil +instanceKlass org/gradle/internal/installation/CurrentGradleInstallationLocator +instanceKlass org/gradle/internal/service/DefaultServiceRegistry$1 +instanceKlass org/gradle/api/tasks/util/PatternSet +instanceKlass org/gradle/api/tasks/util/PatternFilterable +instanceKlass org/gradle/api/tasks/AntBuilderAware +instanceKlass org/gradle/StartParameter +instanceKlass org/gradle/concurrent/ParallelismConfiguration +instanceKlass org/gradle/internal/deprecation/Deprecatable +instanceKlass org/gradle/model/internal/inspect/MethodModelRuleExtractor +instanceKlass org/gradle/model/internal/manage/schema/extract/ModelSchemaAspectExtractionStrategy +instanceKlass org/gradle/internal/instantiation/InjectAnnotationHandler +instanceKlass org/gradle/model/internal/manage/schema/extract/ModelSchemaExtractionStrategy +instanceKlass org/gradle/api/internal/DocumentationRegistry +instanceKlass org/gradle/cache/internal/locklistener/DefaultFileLockContentionHandler +instanceKlass org/gradle/internal/remote/internal/inet/InetAddressFactory +instanceKlass org/gradle/cache/internal/locklistener/FileLockContentionHandler +instanceKlass org/gradle/internal/state/ManagedFactoryRegistry +instanceKlass org/gradle/api/internal/tasks/TaskDependencyFactory +instanceKlass org/gradle/api/internal/file/DefaultFilePropertyFactory +instanceKlass org/gradle/api/internal/file/FileFactory +instanceKlass org/gradle/internal/instantiation/InstanceGenerator +instanceKlass org/gradle/internal/execution/steps/ValidateStep$ValidationWarningReporter +instanceKlass org/gradle/model/internal/inspect/ModelRuleSourceDetector +instanceKlass org/gradle/model/internal/inspect/ModelRuleExtractor +instanceKlass org/gradle/internal/service/CachingServiceLocator +instanceKlass org/gradle/model/internal/manage/instance/ManagedProxyFactory +instanceKlass org/gradle/cache/internal/InMemoryCacheDecoratorFactory +instanceKlass org/gradle/initialization/layout/BuildLayoutFactory +instanceKlass org/gradle/api/internal/classpath/DefaultModuleRegistry +instanceKlass org/gradle/internal/vfs/AdditiveCache +instanceKlass org/gradle/api/internal/classpath/ModuleRegistry +instanceKlass org/gradle/internal/installation/CurrentGradleInstallation +instanceKlass org/gradle/api/internal/model/NamedObjectInstantiator +instanceKlass org/gradle/internal/state/ManagedFactory +instanceKlass org/gradle/api/internal/file/FilePropertyFactory +instanceKlass org/gradle/api/internal/file/FileResolver +instanceKlass org/gradle/internal/file/PathToFileResolver +instanceKlass org/gradle/internal/file/RelativeFilePathResolver +instanceKlass org/gradle/internal/operations/CurrentBuildOperationRef +instanceKlass org/gradle/model/internal/manage/schema/extract/ModelSchemaAspectExtractor +instanceKlass org/gradle/api/internal/cache/StringInterner +instanceKlass com/google/common/collect/Interner +instanceKlass org/gradle/internal/service/scopes/GlobalScopeServices$$Lambda$25 +instanceKlass org/gradle/internal/environment/GradleBuildEnvironment +instanceKlass org/gradle/internal/service/scopes/GradleUserHomeScopeServiceRegistry +instanceKlass org/gradle/api/internal/collections/DomainObjectCollectionFactory +instanceKlass org/gradle/internal/resources/ResourceLockCoordinationService +instanceKlass org/gradle/process/internal/health/memory/OsMemoryInfo +instanceKlass org/gradle/internal/execution/history/changes/ExecutionStateChangeDetector +instanceKlass org/gradle/configuration/ImportsReader +instanceKlass org/gradle/internal/service/ServiceLocator +instanceKlass org/gradle/model/internal/manage/binding/StructBindingsStore +instanceKlass org/gradle/internal/fingerprint/overlap/OverlappingOutputDetector +instanceKlass org/gradle/initialization/ClassLoaderRegistry +instanceKlass org/gradle/api/internal/ClassPathRegistry +instanceKlass org/gradle/api/execution/internal/TaskInputsListener +instanceKlass org/gradle/process/internal/health/memory/JvmMemoryInfo +instanceKlass org/gradle/model/internal/manage/schema/ModelSchemaStore +instanceKlass org/gradle/internal/filewatch/FileWatcherFactory +instanceKlass org/gradle/api/internal/classpath/PluginModuleRegistry +instanceKlass org/gradle/internal/concurrent/ParallelismConfigurationManager +instanceKlass org/gradle/internal/instantiation/InstantiatorFactory +instanceKlass org/gradle/internal/operations/BuildOperationListenerManager +instanceKlass org/gradle/api/model/ObjectFactory +instanceKlass org/gradle/internal/reflect/Instantiator +instanceKlass org/gradle/api/tasks/util/internal/PatternSpecFactory +instanceKlass org/gradle/initialization/JdkToolsInitializer +instanceKlass org/gradle/internal/classloader/ClassLoaderFactory +instanceKlass org/gradle/model/internal/manage/schema/extract/ModelSchemaExtractor +instanceKlass org/gradle/process/internal/health/memory/MemoryManager +instanceKlass org/gradle/cache/internal/CrossBuildInMemoryCacheFactory +instanceKlass org/gradle/internal/file/Deleter +instanceKlass org/gradle/internal/hash/StreamHasher +instanceKlass org/gradle/cache/internal/CacheFactory +instanceKlass org/gradle/internal/logging/progress/ProgressLoggerFactory +instanceKlass org/gradle/internal/logging/progress/ProgressListener +instanceKlass org/gradle/initialization/LegacyTypesSupport +instanceKlass org/gradle/api/internal/file/TemporaryFileProvider +instanceKlass org/gradle/internal/operations/BuildOperationIdFactory +instanceKlass org/gradle/process/internal/ExecFactory +instanceKlass org/gradle/api/internal/ProcessOperations +instanceKlass org/gradle/process/internal/DslExecActionFactory +instanceKlass org/gradle/process/internal/JavaForkOptionsFactory +instanceKlass org/gradle/process/internal/JavaExecHandleFactory +instanceKlass org/gradle/process/internal/ExecHandleFactory +instanceKlass org/gradle/process/internal/ExecActionFactory +instanceKlass org/gradle/api/internal/file/FileLookup +instanceKlass org/gradle/api/internal/file/collections/DirectoryFileTreeFactory +instanceKlass org/gradle/internal/jvm/inspection/JvmVersionDetector +instanceKlass org/gradle/api/internal/file/FileCollectionFactory +instanceKlass org/gradle/cache/internal/ProcessMetaDataProvider +instanceKlass org/gradle/internal/service/scopes/BasicGlobalScopeServices +instanceKlass org/gradle/launcher/daemon/registry/DaemonRegistry +instanceKlass org/gradle/cache/FileLockManager +instanceKlass org/gradle/launcher/daemon/registry/DaemonDir +instanceKlass org/gradle/internal/concurrent/Synchronizer +instanceKlass org/gradle/cache/internal/CacheSupport +instanceKlass org/gradle/cache/internal/CacheAccessSerializer +instanceKlass org/gradle/cache/internal/Cache +instanceKlass org/gradle/launcher/daemon/registry/DaemonRegistryServices +instanceKlass org/gradle/internal/invocation/BuildAction +instanceKlass sun/reflect/generics/tree/TypeVariableSignature +instanceKlass org/gradle/launcher/daemon/server/api/DaemonCommandAction +instanceKlass org/gradle/internal/serialize/Serializer +instanceKlass org/gradle/internal/concurrent/ExecutorFactory +instanceKlass org/gradle/launcher/daemon/server/MasterExpirationStrategy +instanceKlass org/gradle/launcher/daemon/server/Daemon +instanceKlass org/gradle/launcher/exec/BuildExecuter +instanceKlass org/gradle/launcher/daemon/context/DaemonContext +instanceKlass org/gradle/launcher/daemon/server/stats/DaemonRunningStats +instanceKlass org/gradle/launcher/daemon/server/health/DaemonMemoryStatus +instanceKlass org/gradle/launcher/daemon/server/health/DaemonHealthStats +instanceKlass org/gradle/launcher/daemon/server/health/DaemonHealthCheck +instanceKlass org/gradle/launcher/daemon/server/health/HealthExpirationStrategy +instanceKlass org/gradle/internal/event/ListenerManager +instanceKlass org/gradle/internal/service/DefaultServiceRegistry$CompositeServiceProvider +instanceKlass org/gradle/internal/service/DefaultServiceRegistry$ParentServices +instanceKlass org/gradle/api/specs/Spec +instanceKlass org/gradle/internal/classpath/DefaultClassPath +instanceKlass org/gradle/internal/classpath/ClassPath +instanceKlass org/gradle/launcher/daemon/server/DaemonServerConnector +instanceKlass org/gradle/launcher/daemon/server/scaninfo/DaemonScanInfo +instanceKlass org/gradle/launcher/exec/BuildActionExecuter +instanceKlass org/gradle/launcher/daemon/server/expiry/DaemonExpirationStrategy +instanceKlass org/gradle/internal/logging/services/DefaultLoggingManager$StartableLoggingSystem +instanceKlass org/gradle/internal/logging/services/DefaultLoggingManager$StartableLoggingRouter +instanceKlass org/gradle/internal/logging/services/DefaultLoggingManager +instanceKlass jdk/internal/logger/DefaultLoggerFinder$1 +instanceKlass java/util/logging/Logger$SystemLoggerHelper$1 +instanceKlass java/util/logging/Logger$SystemLoggerHelper +instanceKlass java/util/logging/LogManager$4 +instanceKlass jdk/internal/logger/BootstrapLogger$BootstrapExecutors +instanceKlass jdk/internal/logger/BootstrapLogger$RedirectedLoggers +instanceKlass java/util/ServiceLoader$ProviderImpl +instanceKlass java/util/ServiceLoader$Provider +instanceKlass java/util/ServiceLoader$1 +instanceKlass java/util/concurrent/CopyOnWriteArrayList$COWIterator +instanceKlass java/util/ServiceLoader$3 +instanceKlass java/util/ServiceLoader$2 +instanceKlass java/util/ServiceLoader$LazyClassPathLookupIterator +instanceKlass java/lang/ModuleLayer$$Lambda$24 +instanceKlass java/util/Spliterators$1Adapter +instanceKlass java/util/Spliterators$ArraySpliterator +instanceKlass java/util/Spliterator$OfDouble +instanceKlass java/util/Spliterator$OfLong +instanceKlass java/util/Spliterator$OfInt +instanceKlass java/util/Spliterator$OfPrimitive +instanceKlass java/util/Spliterators$EmptySpliterator +instanceKlass java/util/Spliterators +instanceKlass java/util/ServiceLoader$ModuleServicesLookupIterator +instanceKlass java/util/ServiceLoader +instanceKlass jdk/internal/logger/BootstrapLogger$DetectBackend$1 +instanceKlass jdk/internal/logger/BootstrapLogger$DetectBackend +instanceKlass jdk/internal/logger/BootstrapLogger +instanceKlass sun/util/logging/PlatformLogger$ConfigurableBridge +instanceKlass sun/util/logging/PlatformLogger$Bridge +instanceKlass java/lang/System$Logger +instanceKlass java/util/stream/Streams +instanceKlass java/util/stream/Streams$AbstractStreamBuilderImpl +instanceKlass java/util/stream/Stream$Builder +instanceKlass java/util/stream/Sink$ChainedReference +instanceKlass java/util/stream/FindOps$FindSink$OfRef$$Lambda$23 +instanceKlass java/util/stream/FindOps$FindSink$OfRef$$Lambda$22 +instanceKlass java/util/stream/FindOps$FindSink$OfRef$$Lambda$21 +instanceKlass java/util/stream/FindOps$FindSink$OfRef$$Lambda$20 +instanceKlass java/util/stream/FindOps$FindOp +instanceKlass java/util/stream/TerminalOp +instanceKlass java/util/stream/FindOps$FindSink +instanceKlass java/util/stream/TerminalSink +instanceKlass java/util/stream/Sink +instanceKlass java/util/function/Consumer +instanceKlass java/util/stream/FindOps +instanceKlass java/util/logging/Level$KnownLevel$$Lambda$19 +instanceKlass sun/reflect/annotation/AnnotationParser +instanceKlass java/lang/Class$3 +instanceKlass java/util/EnumMap$1 +instanceKlass java/util/stream/StreamOpFlag$MaskBuilder +instanceKlass java/util/stream/PipelineHelper +instanceKlass java/util/stream/Stream +instanceKlass java/util/stream/BaseStream +instanceKlass java/util/stream/StreamSupport +instanceKlass java/util/ArrayList$ArrayListSpliterator +instanceKlass java/util/Spliterator +instanceKlass java/util/logging/Level$$Lambda$18 +instanceKlass java/util/Hashtable$Enumerator +instanceKlass java/util/Collections$3 +instanceKlass java/util/logging/LogManager$LoggerContext$1 +instanceKlass java/util/logging/LogManager$VisitedLoggers +instanceKlass java/util/function/Predicate +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass sun/invoke/util/ValueConversions$WrapperCache +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/MethodHandles$1 +instanceKlass java/lang/Byte$ByteCache +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/ClassValue$Version +instanceKlass java/lang/ClassValue$Identity +instanceKlass java/lang/ClassValue +instanceKlass java/lang/invoke/StringConcatFactory$Stringifiers +instanceKlass java/lang/StringConcatHelper +instanceKlass java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy$3 +instanceKlass java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy$2 +instanceKlass java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy$1 +instanceKlass java/lang/invoke/StringConcatFactory$MethodHandleInlineCopyStrategy +instanceKlass java/lang/invoke/StringConcatFactory$RecipeElement +instanceKlass java/lang/invoke/StringConcatFactory$Recipe +instanceKlass java/lang/invoke/StringConcatFactory$1 +instanceKlass java/lang/invoke/StringConcatFactory +instanceKlass java/util/logging/LogManager$2 +instanceKlass java/lang/System$LoggerFinder +instanceKlass sun/security/util/SecurityConstants +instanceKlass java/security/AccessController$1 +instanceKlass java/util/logging/LogManager$LoggingProviderAccess +instanceKlass sun/util/logging/internal/LoggingProviderImpl$LogManagerAccess +instanceKlass java/lang/Shutdown$Lock +instanceKlass java/lang/Shutdown +instanceKlass java/lang/ApplicationShutdownHooks$1 +instanceKlass java/lang/ApplicationShutdownHooks +instanceKlass java/util/Collections$SynchronizedMap +instanceKlass java/util/logging/LogManager$LogNode +instanceKlass java/util/logging/LogManager$LoggerContext +instanceKlass java/util/logging/LogManager$1 +instanceKlass java/util/logging/LogManager +instanceKlass java/util/logging/Logger$ConfigurationData +instanceKlass java/util/logging/Logger$LoggerBundle +instanceKlass java/util/logging/Handler +instanceKlass java/util/logging/Logger +instanceKlass java/util/logging/Level +instanceKlass org/gradle/internal/logging/source/JavaUtilLoggingSystem +instanceKlass org/gradle/internal/logging/slf4j/Slf4jLoggingConfigurer +instanceKlass org/gradle/internal/logging/config/LoggingSystemAdapter +instanceKlass org/gradle/internal/logging/LoggingManagerInternal +instanceKlass org/gradle/internal/logging/StandardOutputCapture +instanceKlass org/gradle/api/logging/LoggingManager +instanceKlass org/gradle/internal/logging/source/StdErrLoggingSystem +instanceKlass org/gradle/internal/logging/source/PrintStreamLoggingSystem$SnapshotImpl +instanceKlass org/gradle/internal/logging/source/PrintStreamLoggingSystem$OutputEventDestination +instanceKlass org/gradle/internal/logging/source/PrintStreamLoggingSystem$1 +instanceKlass org/gradle/internal/logging/events/operations/StyledTextBuildOperationProgressDetails +instanceKlass org/gradle/internal/io/TextStream +instanceKlass org/gradle/internal/logging/source/PrintStreamLoggingSystem +instanceKlass org/gradle/internal/logging/source/StdOutLoggingSystem +instanceKlass org/gradle/internal/logging/sink/OutputEventListenerManager$1 +instanceKlass java/lang/reflect/WildcardType +instanceKlass sun/reflect/generics/reflectiveObjects/LazyReflectiveObjectGenerator +instanceKlass java/lang/reflect/TypeVariable +instanceKlass sun/reflect/generics/tree/ClassSignature +instanceKlass sun/reflect/generics/reflectiveObjects/ParameterizedTypeImpl +instanceKlass java/lang/reflect/ParameterizedType +instanceKlass sun/reflect/generics/visitor/Reifier +instanceKlass sun/reflect/generics/visitor/TypeTreeVisitor +instanceKlass sun/reflect/generics/tree/MethodTypeSignature +instanceKlass sun/reflect/generics/tree/Signature +instanceKlass sun/reflect/generics/tree/ClassTypeSignature +instanceKlass sun/reflect/generics/tree/SimpleClassTypeSignature +instanceKlass sun/reflect/generics/tree/FieldTypeSignature +instanceKlass sun/reflect/generics/tree/TypeArgument +instanceKlass sun/reflect/generics/tree/BaseType +instanceKlass sun/reflect/generics/tree/TypeSignature +instanceKlass sun/reflect/generics/tree/ReturnType +instanceKlass sun/reflect/generics/tree/FormalTypeParameter +instanceKlass sun/reflect/generics/tree/TypeTree +instanceKlass sun/reflect/generics/tree/Tree +instanceKlass sun/reflect/generics/parser/SignatureParser +instanceKlass sun/reflect/generics/repository/AbstractRepository +instanceKlass sun/reflect/generics/factory/CoreReflectionFactory +instanceKlass sun/reflect/generics/factory/GenericsFactory +instanceKlass sun/reflect/generics/scope/AbstractScope +instanceKlass sun/reflect/generics/scope/Scope +instanceKlass org/gradle/internal/logging/services/TextStreamOutputEventListener +instanceKlass org/gradle/internal/logging/sink/OutputEventListenerManager +instanceKlass org/gradle/internal/logging/services/DefaultLoggingManagerFactory +instanceKlass org/gradle/internal/logging/services/LoggingServiceRegistry$1 +instanceKlass org/gradle/cli/CommandLineConverter +instanceKlass org/gradle/internal/logging/config/LoggingConfigurer +instanceKlass org/gradle/internal/logging/config/LoggingSourceSystem +instanceKlass org/gradle/launcher/daemon/configuration/DefaultDaemonServerConfiguration +instanceKlass org/gradle/internal/nativeintegration/jansi/JansiStorage +instanceKlass org/fusesource/jansi/Ansi +instanceKlass org/gradle/internal/nativeintegration/jansi/JansiLibrary +instanceKlass org/gradle/internal/nativeintegration/jansi/JansiLibraryFactory$1 +instanceKlass net/rubygrapefruit/platform/internal/jni/NativeLibraryFunctions +instanceKlass java/lang/ClassLoader$NativeLibrary$Unloader +instanceKlass java/nio/channels/spi/AbstractInterruptibleChannel$1 +instanceKlass sun/nio/ch/Interruptible +instanceKlass sun/nio/ch/FileKey +instanceKlass sun/nio/ch/FileLockTable +instanceKlass sun/nio/ch/NativeThread +instanceKlass java/nio/channels/FileLock +instanceKlass sun/nio/ch/NativeDispatcher +instanceKlass sun/nio/ch/NativeThreadSet +instanceKlass sun/nio/ch/IOUtil$1 +instanceKlass sun/nio/ch/IOUtil +instanceKlass java/nio/file/attribute/FileAttribute +instanceKlass java/nio/channels/spi/AbstractInterruptibleChannel +instanceKlass java/nio/channels/InterruptibleChannel +instanceKlass java/nio/channels/ScatteringByteChannel +instanceKlass java/nio/channels/GatheringByteChannel +instanceKlass java/nio/channels/SeekableByteChannel +instanceKlass java/nio/channels/ByteChannel +instanceKlass java/nio/channels/WritableByteChannel +instanceKlass java/nio/channels/ReadableByteChannel +instanceKlass java/nio/channels/Channel +instanceKlass java/util/Formattable +instanceKlass java/util/Formatter$Conversion +instanceKlass java/util/Formatter$Flags +instanceKlass java/util/Formatter$FormatSpecifier +instanceKlass java/util/Formatter$FixedString +instanceKlass java/util/Formatter$FormatString +instanceKlass java/util/Locale$1 +instanceKlass java/util/regex/Pattern$$Lambda$17 +instanceKlass java/util/Formatter +instanceKlass net/rubygrapefruit/platform/internal/LibraryDef +instanceKlass net/rubygrapefruit/platform/internal/NativeLibraryLocator +instanceKlass net/rubygrapefruit/platform/internal/NativeLibraryLoader +instanceKlass net/rubygrapefruit/platform/Process +instanceKlass net/rubygrapefruit/platform/internal/Platform +instanceKlass net/rubygrapefruit/platform/Native +instanceKlass java/util/TreeMap$Entry +instanceKlass java/lang/ProcessEnvironment$CheckedEntry +instanceKlass java/lang/ProcessEnvironment$CheckedEntrySet$1 +instanceKlass java/util/NavigableMap +instanceKlass java/util/SortedMap +instanceKlass java/lang/ProcessEnvironment$EntryComparator +instanceKlass java/lang/ProcessEnvironment$NameComparator +instanceKlass org/gradle/internal/nativeintegration/jansi/DefaultJansiRuntimeResolver +instanceKlass org/gradle/internal/nativeintegration/jansi/JansiRuntimeResolver +instanceKlass org/gradle/internal/nativeintegration/jansi/JansiLibraryFactory +instanceKlass org/gradle/internal/nativeintegration/jansi/JansiStorageLocator +instanceKlass org/gradle/internal/nativeintegration/jansi/JansiBootPathConfigurer +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass org/gradle/internal/nativeintegration/filesystem/FileCanonicalizer +instanceKlass org/gradle/internal/nativeintegration/filesystem/Symlink +instanceKlass org/gradle/internal/nativeintegration/filesystem/FileSystem +instanceKlass org/gradle/internal/file/Stat +instanceKlass org/gradle/internal/file/Chmod +instanceKlass org/gradle/internal/nativeintegration/filesystem/FileModeMutator +instanceKlass org/gradle/internal/nativeintegration/filesystem/FileModeAccessor +instanceKlass org/gradle/internal/nativeintegration/filesystem/services/FileSystemServices +instanceKlass java/util/concurrent/ConcurrentLinkedQueue$Node +instanceKlass org/gradle/internal/service/DefaultServiceRegistry$ManagedObjectServiceProvider +instanceKlass org/gradle/internal/reflect/JavaMethod +instanceKlass org/gradle/internal/service/AbstractServiceMethod +instanceKlass java/util/LinkedList$ListItr +instanceKlass net/rubygrapefruit/platform/WindowsRegistry +instanceKlass org/gradle/internal/os/OperatingSystem +instanceKlass net/rubygrapefruit/platform/SystemInfo +instanceKlass org/gradle/internal/jvm/Jvm +instanceKlass org/gradle/internal/jvm/JavaInfo +instanceKlass net/rubygrapefruit/platform/memory/Memory +instanceKlass net/rubygrapefruit/platform/file/PosixFiles +instanceKlass net/rubygrapefruit/platform/file/Files +instanceKlass org/gradle/internal/service/RelevantMethodsBuilder +instanceKlass org/gradle/internal/service/ServiceMethod +instanceKlass org/gradle/internal/service/MethodHandleBasedServiceMethodFactory +instanceKlass org/gradle/internal/service/DefaultServiceMethodFactory +instanceKlass org/gradle/internal/service/ServiceMethodFactory +instanceKlass org/gradle/internal/service/RelevantMethods +instanceKlass org/gradle/internal/service/DefaultServiceRegistry$ThisAsService +instanceKlass org/gradle/internal/service/DefaultServiceRegistry$OwnServices$ProviderAnalyser +instanceKlass org/gradle/internal/concurrent/CompositeStoppable$1 +instanceKlass org/gradle/internal/concurrent/CompositeStoppable +instanceKlass org/gradle/internal/service/DefaultServiceRegistry$OwnServices +instanceKlass net/rubygrapefruit/platform/ProcessLauncher +instanceKlass net/rubygrapefruit/platform/NativeIntegration +instanceKlass org/gradle/internal/nativeintegration/filesystem/FileMetadataAccessor +instanceKlass org/gradle/internal/nativeintegration/network/HostnameLookup +instanceKlass org/gradle/internal/nativeintegration/ProcessEnvironment +instanceKlass org/gradle/internal/nativeintegration/console/ConsoleDetector +instanceKlass org/gradle/internal/service/Service +instanceKlass org/gradle/internal/service/ServiceRegistration +instanceKlass org/gradle/internal/service/ServiceProvider$Visitor +instanceKlass org/gradle/internal/service/ServiceProvider +instanceKlass org/gradle/internal/concurrent/Stoppable +instanceKlass org/gradle/internal/service/DefaultServiceRegistry +instanceKlass org/gradle/internal/service/ContainsServices +instanceKlass org/gradle/internal/serialize/AbstractDecoder +instanceKlass org/gradle/internal/serialize/Decoder +instanceKlass org/gradle/launcher/bootstrap/EntryPoint$RecordingExecutionListener +instanceKlass org/gradle/internal/logging/events/operations/LogEventBuildOperationProgressDetails +instanceKlass org/gradle/internal/logging/slf4j/BuildOperationAwareLogger +instanceKlass org/gradle/internal/logging/sink/OutputEventRenderer$2 +instanceKlass org/gradle/internal/dispatch/ReflectionDispatch +instanceKlass org/gradle/internal/logging/sink/OutputEventRenderer$1 +instanceKlass org/gradle/internal/logging/sink/OutputEventRenderer$LazyListener +instanceKlass org/gradle/internal/logging/events/OutputEventListener$1 +instanceKlass java/lang/reflect/Proxy$ProxyBuilder$1 +instanceKlass java/lang/reflect/ProxyGenerator$ExceptionTableEntry +instanceKlass java/lang/reflect/ProxyGenerator$PrimitiveTypeInfo +instanceKlass java/lang/reflect/ProxyGenerator$FieldInfo +instanceKlass java/lang/reflect/ProxyGenerator$ConstantPool$Entry +instanceKlass java/lang/reflect/ProxyGenerator$MethodInfo +instanceKlass java/lang/reflect/ProxyGenerator$ProxyMethod +instanceKlass java/lang/reflect/ProxyGenerator$ConstantPool +instanceKlass java/lang/reflect/ProxyGenerator +instanceKlass java/lang/reflect/Proxy$$Lambda$16 +instanceKlass java/lang/PublicMethods +instanceKlass java/lang/reflect/Proxy$ProxyBuilder +instanceKlass jdk/internal/loader/AbstractClassLoaderValue$Memoizer +instanceKlass java/lang/reflect/Proxy$$Lambda$15 +instanceKlass java/lang/reflect/Proxy +instanceKlass org/gradle/internal/dispatch/ProxyDispatchAdapter$DispatchingInvocationHandler +instanceKlass java/lang/reflect/InvocationHandler +instanceKlass org/gradle/internal/dispatch/ProxyDispatchAdapter +instanceKlass org/gradle/internal/logging/events/operations/ProgressStartBuildOperationProgressDetails +instanceKlass org/gradle/internal/logging/sink/OutputEventTransformer +instanceKlass org/gradle/internal/exceptions/MultiCauseException +instanceKlass org/gradle/internal/event/AbstractBroadcastDispatch +instanceKlass org/gradle/internal/event/ListenerBroadcast +instanceKlass org/gradle/internal/dispatch/Dispatch +instanceKlass org/gradle/internal/logging/console/ColorMap +instanceKlass org/gradle/internal/nativeintegration/console/ConsoleMetaData +instanceKlass org/gradle/internal/logging/text/StyledTextOutput +instanceKlass org/gradle/internal/logging/format/LogHeaderFormatter +instanceKlass org/gradle/internal/Factory +instanceKlass org/gradle/api/logging/StandardOutputListener +instanceKlass org/gradle/internal/logging/config/LoggingSystem$Snapshot +instanceKlass org/gradle/internal/logging/events/OutputEvent +instanceKlass org/gradle/internal/logging/sink/OutputEventRenderer +instanceKlass org/gradle/internal/logging/config/LoggingRouter +instanceKlass org/gradle/internal/logging/LoggingOutputInternal +instanceKlass org/gradle/api/logging/LoggingOutput +instanceKlass org/gradle/internal/logging/config/LoggingSystem +instanceKlass org/gradle/internal/logging/slf4j/OutputEventListenerBackedLoggerContext$NoOpLogger +instanceKlass org/gradle/api/logging/Logger +instanceKlass java/util/concurrent/atomic/AtomicReference +instanceKlass org/gradle/internal/time/TimeSource$1 +instanceKlass org/gradle/internal/time/TimeSource +instanceKlass org/gradle/internal/time/MonotonicClock +instanceKlass org/gradle/internal/time/CountdownTimer +instanceKlass org/gradle/internal/time/Timer +instanceKlass org/gradle/internal/time/Clock +instanceKlass org/gradle/internal/time/Time +instanceKlass org/gradle/internal/logging/events/OutputEventListener +instanceKlass org/gradle/internal/logging/slf4j/OutputEventListenerBackedLoggerContext +instanceKlass org/slf4j/impl/StaticLoggerBinder +instanceKlass org/slf4j/spi/LoggerFactoryBinder +instanceKlass java/net/URLClassLoader$3$1 +instanceKlass java/net/URLClassLoader$3 +instanceKlass jdk/internal/loader/URLClassPath$1 +instanceKlass java/lang/CompoundEnumeration +instanceKlass jdk/internal/loader/BuiltinClassLoader$1 +instanceKlass java/util/Collections$EmptyEnumeration +instanceKlass org/slf4j/helpers/Util +instanceKlass org/slf4j/helpers/NOPLoggerFactory +instanceKlass java/util/concurrent/LinkedBlockingQueue$Node +instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject +instanceKlass java/util/concurrent/locks/Condition +instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$Node +instanceKlass java/util/concurrent/BlockingQueue +instanceKlass org/slf4j/Logger +instanceKlass org/slf4j/helpers/SubstituteLoggerFactory +instanceKlass org/slf4j/event/LoggingEvent +instanceKlass org/slf4j/ILoggerFactory +instanceKlass org/slf4j/LoggerFactory +instanceKlass org/slf4j/helpers/BasicMarker +instanceKlass org/slf4j/Marker +instanceKlass org/slf4j/helpers/BasicMarkerFactory +instanceKlass org/slf4j/IMarkerFactory +instanceKlass org/slf4j/MarkerFactory +instanceKlass org/gradle/api/logging/Logging +instanceKlass org/gradle/launcher/daemon/configuration/DaemonServerConfiguration +instanceKlass org/gradle/internal/service/ServiceRegistry +instanceKlass org/gradle/internal/service/ServiceLookup +instanceKlass org/gradle/launcher/bootstrap/ExecutionCompleter +instanceKlass org/gradle/api/Action +instanceKlass org/gradle/internal/logging/text/StyledTextOutputFactory +instanceKlass org/gradle/api/logging/configuration/LoggingConfiguration +instanceKlass org/gradle/initialization/BuildClientMetaData +instanceKlass org/gradle/launcher/bootstrap/ExecutionListener +instanceKlass org/gradle/launcher/bootstrap/EntryPoint +instanceKlass java/io/FilePermissionCollection$1 +instanceKlass java/io/FileInputStream$1 +instanceKlass java/security/Security$1 +instanceKlass java/security/Security +instanceKlass sun/security/util/SecurityProperties +instanceKlass sun/security/util/FilePermCompat +instanceKlass java/io/FilePermission$1 +instanceKlass jdk/internal/misc/JavaIOFilePermissionAccess +instanceKlass sun/net/www/MessageHeader +instanceKlass java/net/URLConnection +instanceKlass java/util/LinkedList$Node +instanceKlass java/net/URLClassLoader$1 +instanceKlass java/net/URLClassLoader$7 +instanceKlass jdk/internal/misc/JavaNetURLClassLoaderAccess +instanceKlass jdk/internal/jimage/ImageLocation +instanceKlass jdk/internal/jimage/decompressor/Decompressor +instanceKlass jdk/internal/jimage/ImageStringsReader +instanceKlass jdk/internal/jimage/ImageStrings +instanceKlass jdk/internal/jimage/ImageHeader +instanceKlass jdk/internal/jimage/NativeImageBuffer$1 +instanceKlass jdk/internal/jimage/NativeImageBuffer +instanceKlass jdk/internal/jimage/BasicImageReader$1 +instanceKlass jdk/internal/jimage/BasicImageReader +instanceKlass jdk/internal/jimage/ImageReader +instanceKlass jdk/internal/jimage/ImageReaderFactory$1 +instanceKlass java/nio/file/Paths +instanceKlass jdk/internal/jimage/ImageReaderFactory +instanceKlass jdk/internal/module/SystemModuleFinders$SystemImage +instanceKlass jdk/internal/module/SystemModuleFinders$SystemModuleReader +instanceKlass java/lang/module/ModuleReader +instanceKlass jdk/internal/loader/BuiltinClassLoader$5 +instanceKlass jdk/internal/loader/BuiltinClassLoader$2 +instanceKlass jdk/internal/module/Resources +instanceKlass java/io/RandomAccessFile$1 +instanceKlass java/lang/invoke/VarHandle$AccessDescriptor +instanceKlass java/util/Properties$LineReader +instanceKlass java/util/regex/Pattern$BmpCharPredicate$$Lambda$14 +instanceKlass java/util/regex/Pattern$$Lambda$13 +instanceKlass java/util/regex/Pattern$$Lambda$12 +instanceKlass java/util/regex/Pattern$BitClass$$Lambda$11 +instanceKlass java/util/regex/Pattern$TreeInfo +instanceKlass java/util/regex/Pattern$CharPredicate$$Lambda$10 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/util/regex/CharPredicates$$Lambda$9 +instanceKlass org/gradle/api/Transformer +instanceKlass org/gradle/util/GUtil +instanceKlass java/util/zip/ZipFile$$Lambda$8 +instanceKlass org/gradle/api/internal/classpath/DefaultModuleRegistry$$Lambda$7 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/util/LinkedHashMap$LinkedHashIterator +instanceKlass java/util/Collections$1 +instanceKlass org/gradle/api/internal/classpath/DefaultModuleRegistry$DefaultModule +instanceKlass java/util/regex/IntHashSet +instanceKlass java/util/regex/Matcher +instanceKlass java/util/regex/MatchResult +instanceKlass java/util/regex/Pattern$$Lambda$6 +instanceKlass java/util/regex/CharPredicates$$Lambda$5 +instanceKlass java/util/regex/Pattern$BmpCharPredicate +instanceKlass java/util/regex/Pattern$CharPredicate +instanceKlass java/util/regex/CharPredicates +instanceKlass java/util/regex/ASCII +instanceKlass java/util/regex/Pattern$Node +instanceKlass java/util/regex/Pattern +instanceKlass org/gradle/internal/service/CachingServiceLocator +instanceKlass java/io/Reader +instanceKlass org/gradle/internal/service/DefaultServiceLocator +instanceKlass org/gradle/internal/service/ServiceLocator +instanceKlass org/gradle/internal/classloader/DefaultClassLoaderFactory +instanceKlass org/gradle/api/internal/classpath/ManifestUtil +instanceKlass java/util/AbstractList$Itr +instanceKlass org/gradle/internal/classloader/ClassLoaderSpec +instanceKlass org/gradle/internal/classloader/ClassLoaderVisitor +instanceKlass java/util/Collections$EmptyIterator +instanceKlass org/gradle/internal/classpath/DefaultClassPath +instanceKlass org/gradle/internal/classpath/ClassPath +instanceKlass org/gradle/internal/installation/GradleInstallation$1 +instanceKlass java/io/FileFilter +instanceKlass org/gradle/internal/installation/GradleInstallation +instanceKlass org/gradle/internal/classloader/ClasspathUtil +instanceKlass org/gradle/internal/installation/CurrentGradleInstallationLocator +instanceKlass org/gradle/internal/installation/CurrentGradleInstallation +instanceKlass org/gradle/api/internal/classpath/DefaultModuleRegistry$$Lambda$4 +instanceKlass org/gradle/api/specs/Spec +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass sun/reflect/misc/ReflectUtil +instanceKlass org/gradle/api/internal/classpath/Module +instanceKlass org/gradle/api/internal/classpath/DefaultModuleRegistry +instanceKlass org/gradle/internal/vfs/AdditiveCache +instanceKlass org/gradle/api/internal/DefaultClassPathProvider +instanceKlass org/gradle/api/internal/ClassPathProvider +instanceKlass org/gradle/api/internal/DefaultClassPathRegistry +instanceKlass org/gradle/internal/classloader/ClassLoaderHierarchy +instanceKlass org/gradle/internal/classloader/ClassLoaderFactory +instanceKlass org/gradle/api/internal/ClassPathRegistry +instanceKlass org/gradle/api/internal/classpath/ModuleRegistry +instanceKlass org/gradle/launcher/bootstrap/ProcessBootstrap +instanceKlass java/lang/PublicMethods$Key +instanceKlass java/lang/PublicMethods$MethodList +instanceKlass org/gradle/launcher/daemon/bootstrap/GradleDaemon +instanceKlass java/security/SecureClassLoader$DebugHolder +instanceKlass java/security/Permissions$1 +instanceKlass java/security/PermissionCollection +instanceKlass java/security/SecureClassLoader$1 +instanceKlass java/security/SecureClassLoader$CodeSourceKey +instanceKlass sun/nio/ByteBuffered +instanceKlass java/lang/Package$VersionInfo +instanceKlass java/lang/NamedPackage +instanceKlass sun/security/util/ManifestEntryVerifier +instanceKlass jdk/internal/loader/Resource +instanceKlass java/util/StringTokenizer +instanceKlass java/util/jar/Attributes$Name +instanceKlass java/util/jar/Attributes +instanceKlass java/security/CodeSigner +instanceKlass sun/security/util/Debug +instanceKlass java/util/jar/JarVerifier +instanceKlass java/util/zip/ZipFile$InflaterCleanupAction +instanceKlass java/util/zip/Inflater$InflaterZStreamRef +instanceKlass java/util/zip/Inflater +instanceKlass java/util/zip/ZipEntry +instanceKlass java/util/jar/JarFile$1 +instanceKlass jdk/internal/util/jar/JarIndex +instanceKlass java/nio/Bits$1 +instanceKlass jdk/internal/misc/JavaNioAccess$BufferPool +instanceKlass java/nio/Bits +instanceKlass sun/nio/ch/DirectBuffer +instanceKlass jdk/internal/perf/PerfCounter$CoreCounters +instanceKlass jdk/internal/perf/Perf +instanceKlass jdk/internal/perf/Perf$GetPerfAction +instanceKlass jdk/internal/perf/PerfCounter +instanceKlass java/util/zip/ZipUtils +instanceKlass java/util/zip/ZipFile$Source$End +instanceKlass java/lang/invoke/VarForm +instanceKlass java/lang/invoke/VarHandleGuards +instanceKlass jdk/internal/util/Preconditions$1 +instanceKlass java/lang/invoke/VarHandle$1 +instanceKlass java/lang/invoke/VarHandles +instanceKlass java/util/concurrent/atomic/AtomicBoolean +instanceKlass java/io/RandomAccessFile$2 +instanceKlass jdk/internal/misc/JavaIORandomAccessFileAccess +instanceKlass java/io/RandomAccessFile +instanceKlass java/io/DataInput +instanceKlass java/io/DataOutput +instanceKlass java/nio/file/attribute/FileTime +instanceKlass sun/nio/fs/WindowsNativeDispatcher$CompletionStatus +instanceKlass sun/nio/fs/WindowsNativeDispatcher$AclInformation +instanceKlass sun/nio/fs/WindowsNativeDispatcher$Account +instanceKlass sun/nio/fs/WindowsNativeDispatcher$DiskFreeSpace +instanceKlass sun/nio/fs/WindowsNativeDispatcher$VolumeInformation +instanceKlass sun/nio/fs/WindowsNativeDispatcher$FirstStream +instanceKlass sun/nio/fs/WindowsNativeDispatcher$FirstFile +instanceKlass java/util/Enumeration +instanceKlass java/util/ArrayDeque$DeqIterator +instanceKlass java/lang/ClassLoader$NativeLibrary +instanceKlass java/lang/ClassLoader$2 +instanceKlass java/lang/StringCoding$StringEncoder +instanceKlass sun/nio/fs/WindowsNativeDispatcher$1 +instanceKlass sun/nio/fs/WindowsNativeDispatcher +instanceKlass sun/nio/fs/NativeBuffer$Deallocator +instanceKlass sun/nio/fs/NativeBuffer +instanceKlass sun/nio/fs/NativeBuffers +instanceKlass sun/nio/fs/WindowsFileAttributes +instanceKlass java/nio/file/attribute/DosFileAttributes +instanceKlass sun/nio/fs/AbstractBasicFileAttributeView +instanceKlass sun/nio/fs/DynamicFileAttributeView +instanceKlass sun/nio/fs/WindowsFileAttributeViews +instanceKlass sun/nio/fs/Util +instanceKlass java/nio/file/attribute/BasicFileAttributeView +instanceKlass java/nio/file/attribute/FileAttributeView +instanceKlass java/nio/file/attribute/AttributeView +instanceKlass java/nio/file/Files +instanceKlass java/nio/file/CopyOption +instanceKlass java/nio/file/attribute/BasicFileAttributes +instanceKlass sun/nio/fs/WindowsPath +instanceKlass java/nio/file/Path +instanceKlass java/nio/file/Watchable +instanceKlass java/net/URI$Parser +instanceKlass sun/nio/fs/WindowsPathParser$Result +instanceKlass sun/nio/fs/WindowsPathParser +instanceKlass java/util/Arrays$ArrayItr +instanceKlass java/nio/file/FileSystem +instanceKlass java/nio/file/OpenOption +instanceKlass java/nio/file/spi/FileSystemProvider +instanceKlass sun/nio/fs/DefaultFileSystemProvider +instanceKlass java/nio/file/FileSystems$DefaultFileSystemHolder$1 +instanceKlass java/nio/file/FileSystems$DefaultFileSystemHolder +instanceKlass java/nio/file/FileSystems +instanceKlass java/util/zip/ZipFile$Source$Key +instanceKlass java/util/zip/ZipFile$Source +instanceKlass java/util/zip/ZipFile$CleanableResource +instanceKlass java/util/zip/ZipCoder +instanceKlass java/lang/Runtime$Version +instanceKlass java/util/jar/JavaUtilJarAccessImpl +instanceKlass jdk/internal/misc/JavaUtilJarAccess +instanceKlass jdk/internal/loader/FileURLMapper +instanceKlass jdk/internal/loader/URLClassPath$JarLoader$1 +instanceKlass java/util/zip/ZipFile$1 +instanceKlass jdk/internal/misc/JavaUtilZipFileAccess +instanceKlass java/util/zip/ZipFile +instanceKlass java/util/zip/ZipConstants +instanceKlass jdk/internal/loader/URLClassPath$Loader +instanceKlass jdk/internal/loader/URLClassPath$3 +instanceKlass java/security/PrivilegedExceptionAction +instanceKlass sun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar +instanceKlass sun/util/locale/InternalLocaleBuilder +instanceKlass sun/util/locale/LocaleUtils +instanceKlass sun/util/locale/BaseLocale$Key +instanceKlass sun/util/locale/BaseLocale +instanceKlass sun/util/locale/LocaleObjectCache +instanceKlass java/util/Locale +instanceKlass sun/net/util/URLUtil +instanceKlass sun/launcher/LauncherHelper +instanceKlass jdk/internal/module/IllegalAccessLogger +instanceKlass jdk/internal/module/ModuleBootstrap$2 +instanceKlass jdk/internal/module/IllegalAccessLogger$Builder +instanceKlass java/lang/WeakPairMap$$Lambda$3 +instanceKlass jdk/internal/org/objectweb/asm/FieldVisitor +instanceKlass java/lang/Module$$Lambda$2 +instanceKlass java/util/function/BiFunction +instanceKlass java/lang/WeakPairMap$Pair$Lookup +instanceKlass java/lang/WeakPairMap$Pair +instanceKlass java/lang/WeakPairMap +instanceKlass java/lang/Module$ReflectionData +instanceKlass jdk/internal/misc/InnocuousThread$2 +instanceKlass jdk/internal/misc/InnocuousThread$3 +instanceKlass jdk/internal/ref/CleanerFactory$1$1 +instanceKlass java/lang/ref/Cleaner$Cleanable +instanceKlass jdk/internal/ref/CleanerImpl +instanceKlass java/lang/ref/Cleaner$1 +instanceKlass java/lang/ref/Cleaner +instanceKlass jdk/internal/ref/CleanerFactory$1 +instanceKlass java/util/concurrent/ThreadFactory +instanceKlass jdk/internal/ref/CleanerFactory +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/InvokerBytecodeGenerator$CpPatch +instanceKlass java/lang/invoke/LambdaFormBuffer +instanceKlass java/lang/invoke/LambdaFormEditor +instanceKlass java/lang/invoke/DelegatingMethodHandle$Holder +instanceKlass sun/invoke/util/Wrapper$1 +instanceKlass java/lang/invoke/DirectMethodHandle$1 +instanceKlass sun/invoke/empty/Empty +instanceKlass sun/invoke/util/VerifyType +instanceKlass java/lang/invoke/ClassSpecializer$Factory +instanceKlass java/lang/invoke/ClassSpecializer$SpeciesData +instanceKlass java/lang/invoke/ClassSpecializer$1 +instanceKlass java/lang/invoke/ClassSpecializer +instanceKlass java/lang/invoke/InnerClassLambdaMetafactory$1 +instanceKlass jdk/internal/module/ModuleBootstrap$$Lambda$1 +instanceKlass jdk/internal/org/objectweb/asm/AnnotationVisitor +instanceKlass jdk/internal/org/objectweb/asm/Frame +instanceKlass jdk/internal/org/objectweb/asm/Label +instanceKlass jdk/internal/org/objectweb/asm/MethodVisitor +instanceKlass jdk/internal/org/objectweb/asm/Item +instanceKlass jdk/internal/org/objectweb/asm/ByteVector +instanceKlass jdk/internal/org/objectweb/asm/ClassVisitor +instanceKlass sun/invoke/util/BytecodeDescriptor +instanceKlass java/lang/invoke/InfoFromMemberName +instanceKlass java/lang/invoke/MethodHandleInfo +instanceKlass sun/security/action/GetBooleanAction +instanceKlass jdk/internal/org/objectweb/asm/Type +instanceKlass java/lang/invoke/AbstractValidatingLambdaMetafactory +instanceKlass java/lang/invoke/MethodHandleImpl$1 +instanceKlass jdk/internal/misc/JavaLangInvokeAccess +instanceKlass java/lang/invoke/Invokers$Holder +instanceKlass java/lang/invoke/BootstrapMethodInvoker +instanceKlass java/lang/invoke/InvokerBytecodeGenerator$2 +instanceKlass java/lang/invoke/InvokerBytecodeGenerator +instanceKlass java/lang/invoke/LambdaForm$Holder +instanceKlass java/lang/invoke/LambdaForm$Name +instanceKlass java/lang/invoke/Invokers +instanceKlass java/lang/invoke/MethodHandleImpl +instanceKlass sun/invoke/util/ValueConversions +instanceKlass java/lang/invoke/DirectMethodHandle$Holder +instanceKlass java/lang/invoke/LambdaForm$NamedFunction +instanceKlass sun/invoke/util/Wrapper$Format +instanceKlass sun/invoke/util/VerifyAccess +instanceKlass java/security/Permission +instanceKlass java/security/Guard +instanceKlass java/lang/invoke/MemberName$Factory +instanceKlass java/lang/invoke/MethodHandles +instanceKlass java/lang/invoke/MethodTypeForm +instanceKlass java/lang/Void +instanceKlass java/lang/invoke/MethodType$ConcurrentWeakInternSet +instanceKlass java/lang/invoke/MethodHandles$Lookup +instanceKlass java/lang/invoke/LambdaMetafactory +instanceKlass java/lang/ModuleLayer$Controller +instanceKlass java/util/HashMap$HashIterator +instanceKlass jdk/internal/module/ServicesCatalog$ServiceProvider +instanceKlass java/util/concurrent/CopyOnWriteArrayList +instanceKlass java/util/Collections$UnmodifiableCollection$1 +instanceKlass java/util/Collections$UnmodifiableCollection +instanceKlass java/util/ArrayList$Itr +instanceKlass java/util/ImmutableCollections$ListItr +instanceKlass java/util/ListIterator +instanceKlass java/lang/ModuleLayer +instanceKlass jdk/internal/module/ModuleLoaderMap$Mapper +instanceKlass java/util/function/Function +instanceKlass jdk/internal/module/ModuleLoaderMap +instanceKlass java/util/ImmutableCollections$Set12$1 +instanceKlass java/util/ImmutableCollections$MapN$MapNIterator +instanceKlass java/util/AbstractMap$1$1 +instanceKlass java/lang/module/ResolvedModule +instanceKlass java/lang/module/Configuration +instanceKlass java/util/ImmutableCollections$SetN$SetNIterator +instanceKlass jdk/internal/loader/BuiltinClassLoader$LoadedModule +instanceKlass jdk/internal/util/Preconditions +instanceKlass java/util/Deque +instanceKlass java/util/Queue +instanceKlass sun/net/util/IPAddressUtil +instanceKlass java/net/URLStreamHandler +instanceKlass sun/net/www/ParseUtil +instanceKlass java/io/ExpiringCache$Entry +instanceKlass java/net/URL$3 +instanceKlass jdk/internal/misc/JavaNetURLAccess +instanceKlass java/net/URL$DefaultFactory +instanceKlass java/net/URLStreamHandlerFactory +instanceKlass jdk/internal/loader/URLClassPath +instanceKlass java/security/Principal +instanceKlass java/security/ProtectionDomain$Key +instanceKlass java/security/ProtectionDomain$JavaSecurityAccessImpl +instanceKlass jdk/internal/misc/JavaSecurityAccess +instanceKlass java/lang/ClassLoader$ParallelLoaders +instanceKlass jdk/internal/loader/AbstractClassLoaderValue +instanceKlass jdk/internal/module/ServicesCatalog +instanceKlass jdk/internal/loader/BootLoader +instanceKlass java/util/Optional +instanceKlass jdk/internal/module/ModuleBootstrap$Counters +instanceKlass jdk/internal/module/SystemModuleFinders$SystemModuleFinder +instanceKlass java/lang/module/ModuleFinder +instanceKlass jdk/internal/module/SystemModuleFinders$3 +instanceKlass jdk/internal/module/ModuleHashes$HashSupplier +instanceKlass java/util/KeyValueHolder +instanceKlass jdk/internal/module/SystemModuleFinders$2 +instanceKlass java/util/function/Supplier +instanceKlass java/lang/module/ModuleReference +instanceKlass jdk/internal/module/ModuleResolution +instanceKlass java/util/Collections$UnmodifiableMap +instanceKlass jdk/internal/module/ModuleHashes$Builder +instanceKlass jdk/internal/module/ModuleHashes +instanceKlass jdk/internal/module/ModuleTarget +instanceKlass java/lang/Enum +instanceKlass java/lang/module/ModuleDescriptor$Version +instanceKlass java/lang/module/ModuleDescriptor$Provides +instanceKlass java/lang/module/ModuleDescriptor$Opens +instanceKlass java/lang/module/ModuleDescriptor$Exports +instanceKlass java/lang/module/ModuleDescriptor$Requires +instanceKlass jdk/internal/module/Builder +instanceKlass jdk/internal/module/SystemModules$default +instanceKlass jdk/internal/module/SystemModules +instanceKlass jdk/internal/module/SystemModulesMap +instanceKlass java/net/URI$1 +instanceKlass jdk/internal/misc/JavaNetUriAccess +instanceKlass java/net/URI +instanceKlass jdk/internal/module/SystemModuleFinders +instanceKlass jdk/internal/module/ArchivedModuleGraph +instanceKlass jdk/internal/module/ModulePatcher +instanceKlass java/util/ImmutableCollections +instanceKlass java/lang/module/ModuleDescriptor$1 +instanceKlass jdk/internal/misc/JavaLangModuleAccess +instanceKlass java/lang/module/ModuleDescriptor +instanceKlass jdk/internal/module/ModuleBootstrap +instanceKlass java/lang/CharacterData +instanceKlass java/lang/invoke/MethodHandleStatics +instanceKlass java/io/ExpiringCache +instanceKlass java/io/FileSystem +instanceKlass java/io/DefaultFileSystem +instanceKlass java/io/File +instanceKlass java/lang/System$2 +instanceKlass jdk/internal/misc/JavaLangAccess +instanceKlass sun/io/Win32ErrorMode +instanceKlass jdk/internal/misc/OSEnvironment +instanceKlass java/lang/Integer$IntegerCache +instanceKlass jdk/internal/misc/Signal$NativeHandler +instanceKlass java/util/Hashtable$Entry +instanceKlass jdk/internal/misc/Signal +instanceKlass java/lang/Terminator$1 +instanceKlass jdk/internal/misc/Signal$Handler +instanceKlass java/lang/Terminator +instanceKlass java/nio/charset/CoderResult +instanceKlass java/lang/Readable +instanceKlass java/nio/ByteOrder +instanceKlass java/nio/Buffer$1 +instanceKlass jdk/internal/misc/JavaNioAccess +instanceKlass java/nio/charset/CharsetEncoder +instanceKlass sun/nio/cs/ArrayEncoder +instanceKlass sun/security/action/GetPropertyAction +instanceKlass java/io/Writer +instanceKlass java/io/OutputStream +instanceKlass java/io/Flushable +instanceKlass java/io/FileDescriptor$1 +instanceKlass jdk/internal/misc/JavaIOFileDescriptorAccess +instanceKlass java/io/FileDescriptor +instanceKlass java/lang/VersionProps +instanceKlass jdk/internal/util/StaticProperty +instanceKlass java/util/concurrent/ConcurrentHashMap$MapEntry +instanceKlass java/util/concurrent/ConcurrentHashMap$Traverser +instanceKlass java/util/Iterator +instanceKlass java/lang/reflect/Array +instanceKlass java/util/Collections$SynchronizedCollection +instanceKlass java/util/List +instanceKlass java/util/RandomAccess +instanceKlass java/util/Collections +instanceKlass java/util/concurrent/ConcurrentHashMap$CollectionView +instanceKlass java/util/Properties$EntrySet +instanceKlass java/lang/StringCoding$Result +instanceKlass java/nio/charset/CodingErrorAction +instanceKlass java/nio/charset/CharsetDecoder +instanceKlass sun/nio/cs/ArrayDecoder +instanceKlass sun/nio/cs/DelegatableDecoder +instanceKlass java/lang/StringUTF16 +instanceKlass sun/nio/cs/DoubleByte +instanceKlass java/lang/StringCoding$StringDecoder +instanceKlass java/lang/ThreadLocal$ThreadLocalMap +instanceKlass java/lang/StringCoding +instanceKlass java/util/HashMap$Node +instanceKlass jdk/internal/reflect/Reflection +instanceKlass java/lang/Class$1 +instanceKlass java/lang/reflect/ReflectAccess +instanceKlass jdk/internal/reflect/LangReflectAccess +instanceKlass java/lang/reflect/Modifier +instanceKlass java/lang/Class$Atomic +instanceKlass java/lang/Class$ReflectionData +instanceKlass java/nio/charset/StandardCharsets +instanceKlass sun/nio/cs/HistoricallyNamedCharset +instanceKlass java/lang/Math +instanceKlass java/util/Arrays +instanceKlass java/lang/ThreadLocal +instanceKlass java/nio/charset/spi/CharsetProvider +instanceKlass java/nio/charset/Charset +instanceKlass java/lang/StringLatin1 +instanceKlass jdk/internal/misc/VM +instanceKlass jdk/internal/misc/SharedSecrets +instanceKlass java/lang/ref/Reference$1 +instanceKlass jdk/internal/misc/JavaLangRefAccess +instanceKlass java/lang/ref/ReferenceQueue$Lock +instanceKlass java/lang/ref/ReferenceQueue +instanceKlass jdk/internal/reflect/ReflectionFactory +instanceKlass java/util/concurrent/locks/LockSupport +instanceKlass java/util/concurrent/ConcurrentHashMap$Node +instanceKlass java/util/Map$Entry +instanceKlass java/util/concurrent/ConcurrentHashMap$CounterCell +instanceKlass java/util/concurrent/locks/ReentrantLock +instanceKlass java/util/concurrent/locks/Lock +instanceKlass java/lang/Runtime +instanceKlass java/util/concurrent/ConcurrentMap +instanceKlass java/util/AbstractMap +instanceKlass java/security/cert/Certificate +instanceKlass jdk/internal/reflect/ReflectionFactory$GetReflectionFactoryAction +instanceKlass java/security/PrivilegedAction +instanceKlass java/util/Objects +instanceKlass java/util/AbstractCollection +instanceKlass java/util/Set +instanceKlass java/util/Collection +instanceKlass java/lang/Iterable +instanceKlass java/security/AccessController +instanceKlass java/lang/String$CaseInsensitiveComparator +instanceKlass java/util/Comparator +instanceKlass java/io/ObjectStreamField +instanceKlass java/lang/Number +instanceKlass java/lang/Character +instanceKlass java/lang/Boolean +instanceKlass java/util/concurrent/locks/AbstractOwnableSynchronizer +instanceKlass java/lang/LiveStackFrame +instanceKlass java/lang/StackFrameInfo +instanceKlass java/lang/StackWalker$StackFrame +instanceKlass java/lang/StackStreamFactory$AbstractStackWalker +instanceKlass java/lang/StackWalker +instanceKlass java/nio/Buffer +instanceKlass java/lang/StackTraceElement +instanceKlass java/security/CodeSource +instanceKlass jdk/internal/loader/ClassLoaders +instanceKlass java/util/jar/Manifest +instanceKlass java/net/URL +instanceKlass java/io/InputStream +instanceKlass java/io/Closeable +instanceKlass java/lang/AutoCloseable +instanceKlass jdk/internal/module/Modules +instanceKlass jdk/internal/misc/Unsafe +instanceKlass java/lang/AbstractStringBuilder +instanceKlass java/lang/Appendable +instanceKlass java/lang/AssertionStatusDirectives +instanceKlass java/lang/invoke/MethodHandleNatives$CallSiteContext +instanceKlass java/lang/invoke/CallSite +instanceKlass java/lang/invoke/MethodType +instanceKlass java/lang/invoke/LambdaForm +instanceKlass java/lang/invoke/MethodHandleNatives +instanceKlass java/lang/invoke/ResolvedMethodName +instanceKlass java/lang/invoke/MemberName +instanceKlass java/lang/invoke/VarHandle +instanceKlass java/lang/invoke/MethodHandle +instanceKlass jdk/internal/reflect/CallerSensitive +instanceKlass java/lang/annotation/Annotation +instanceKlass jdk/internal/reflect/FieldAccessor +instanceKlass jdk/internal/reflect/ConstantPool +instanceKlass jdk/internal/reflect/ConstructorAccessor +instanceKlass jdk/internal/reflect/MethodAccessor +instanceKlass jdk/internal/reflect/MagicAccessorImpl +instanceKlass java/lang/reflect/Parameter +instanceKlass java/lang/reflect/Member +instanceKlass java/lang/reflect/AccessibleObject +instanceKlass java/lang/Module +instanceKlass java/util/Dictionary +instanceKlass java/util/Map +instanceKlass java/lang/ThreadGroup +instanceKlass java/lang/Thread$UncaughtExceptionHandler +instanceKlass java/lang/Thread +instanceKlass java/lang/Runnable +instanceKlass java/lang/ref/Reference +instanceKlass java/security/AccessControlContext +instanceKlass java/security/ProtectionDomain +instanceKlass java/lang/SecurityManager +instanceKlass java/lang/Throwable +instanceKlass java/lang/System +instanceKlass java/lang/ClassLoader +instanceKlass java/lang/Cloneable +instanceKlass java/lang/Class +instanceKlass java/lang/reflect/Type +instanceKlass java/lang/reflect/GenericDeclaration +instanceKlass java/lang/reflect/AnnotatedElement +instanceKlass java/lang/String +instanceKlass java/lang/CharSequence +instanceKlass java/lang/Comparable +instanceKlass java/io/Serializable +ciInstanceKlass java/lang/Object 1 1 92 7 10 10 10 10 8 10 10 10 10 100 8 10 3 8 10 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 7 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 12 12 7 12 12 1 12 7 12 12 12 1 1 12 1 12 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/io/Serializable 1 0 7 100 100 1 1 1 1 +ciInstanceKlass java/lang/CharSequence 1 1 128 18 100 10 18 10 10 100 11 11 10 11 100 10 10 100 10 10 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 15 16 15 16 12 1 100 12 15 100 12 12 1 12 12 100 12 12 1 12 100 12 1 12 1 1 1 10 1 11 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 12 12 12 100 1 1 1 100 1 1 1 100 1 1 +ciInstanceKlass java/lang/String 1 1 878 10 8 9 9 9 10 10 10 9 10 7 10 10 10 10 10 100 8 10 10 9 9 8 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 100 10 10 100 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 100 100 10 10 11 11 10 10 10 10 10 10 9 11 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 10 10 10 10 10 10 100 10 7 10 10 10 10 10 8 10 10 100 3 3 7 10 10 10 10 10 11 7 10 10 100 10 10 10 11 11 11 7 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 100 100 10 100 10 10 100 10 10 10 7 10 10 10 10 8 10 10 10 8 8 10 10 10 10 10 10 10 100 10 8 10 10 10 7 3 8 8 8 10 10 10 10 10 10 8 8 10 8 8 8 8 8 10 10 10 8 7 10 10 10 7 9 7 10 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 7 1 1 1 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 100 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 12 12 12 12 12 12 12 7 12 1 7 7 12 12 12 12 1 12 7 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 12 1 12 12 12 12 100 12 12 12 12 12 12 12 12 12 12 1 1 12 12 12 12 12 12 12 12 12 7 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 7 12 12 12 12 7 12 12 12 12 7 12 12 7 12 1 1 12 12 12 1 12 1 1 12 12 12 12 7 12 12 12 1 12 12 100 12 12 12 1 12 7 12 12 12 12 12 12 12 12 12 12 12 1 1 1 12 1 100 12 1 1 12 1 12 12 1 12 12 1 1 12 12 12 100 12 100 12 100 12 1 1 12 12 1 1 1 1 12 12 12 12 1 1 1 1 1 1 1 12 12 12 1 1 12 12 12 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/String COMPACT_STRINGS Z 1 +staticfield java/lang/String serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField; +staticfield java/lang/String CASE_INSENSITIVE_ORDER Ljava/util/Comparator; java/lang/String$CaseInsensitiveComparator +ciInstanceKlass java/lang/Class 1 1 1435 10 9 9 7 10 10 8 10 8 8 10 10 10 10 10 10 10 10 10 10 10 8 10 8 8 10 7 8 8 8 10 11 10 10 8 10 10 10 10 9 10 10 10 18 10 7 10 10 10 100 10 9 7 100 8 10 10 10 10 7 10 7 100 10 10 9 10 10 7 10 100 10 10 10 9 10 10 10 9 10 10 100 10 10 10 10 9 8 10 10 10 10 10 10 9 10 7 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 100 8 10 10 7 10 7 11 10 10 10 10 10 10 8 10 10 8 9 10 10 10 10 100 9 10 9 10 10 10 8 10 10 10 10 100 10 10 10 10 10 10 10 7 10 10 10 10 10 10 10 10 10 7 10 10 11 10 10 10 10 10 10 100 10 10 10 100 100 10 10 10 10 10 10 10 10 11 10 10 9 10 9 7 10 9 10 7 10 9 10 10 10 10 10 10 10 8 10 10 9 9 10 7 9 10 10 7 10 10 10 10 9 10 9 10 10 9 9 10 10 9 100 10 10 7 10 100 11 9 9 7 10 9 9 10 10 9 7 10 10 10 10 10 10 10 9 10 10 10 10 8 7 10 7 8 8 8 8 10 9 9 10 7 9 7 10 7 10 10 9 8 10 7 10 7 10 9 100 8 10 7 4 10 10 11 10 100 10 10 8 8 10 9 11 7 11 9 10 10 10 9 9 10 10 10 10 10 11 11 11 11 100 11 10 10 100 11 10 10 10 11 11 7 10 10 9 9 10 10 10 10 100 10 10 7 9 100 100 100 100 1 1 1 7 1 1 1 1 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 1 12 1 12 1 1 12 12 12 12 12 12 7 12 12 12 12 1 12 1 1 12 1 1 1 1 12 12 12 1 7 12 12 12 7 12 7 12 12 7 12 12 1 15 16 15 16 12 7 12 1 12 12 7 1 12 12 1 1 1 12 12 12 12 1 12 1 1 12 12 12 12 1 100 12 12 12 12 12 12 12 12 12 1 12 12 12 12 1 12 12 12 12 12 12 12 7 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 1 12 1 12 1 12 100 12 12 12 12 12 1 12 12 1 12 12 12 12 12 1 12 12 12 12 12 1 12 12 12 12 1 12 12 12 12 12 12 12 1 12 12 12 12 12 12 12 1 7 12 12 12 12 100 12 12 12 1 12 12 1 1 12 12 12 12 12 12 100 12 7 12 12 12 12 12 12 1 12 12 1 12 12 100 12 12 12 100 12 12 12 12 1 12 12 12 12 12 1 12 12 12 1 12 12 7 12 7 12 12 12 12 12 12 12 12 12 12 12 1 12 1 12 100 12 12 1 12 12 12 12 12 12 1 12 12 12 12 12 12 12 12 12 1 7 1 1 1 1 12 12 12 12 1 12 1 1 1 12 7 12 12 1 12 1 12 12 1 1 1 12 12 12 1 12 1 1 12 12 12 1 12 12 100 12 7 12 12 12 12 12 12 12 12 12 12 12 12 1 12 100 12 12 1 12 100 12 12 12 12 1 12 12 12 100 12 12 100 12 12 12 1 12 12 1 12 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 12 1 1 100 1 1 100 1 1 +staticfield java/lang/Class EMPTY_CLASS_ARRAY [Ljava/lang/Class; 0 [Ljava/lang/Class; +staticfield java/lang/Class serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField; +ciInstanceKlass java/lang/Cloneable 1 0 7 100 100 1 1 1 1 +instanceKlass org/gradle/internal/classloader/CachingClassLoader +instanceKlass org/gradle/internal/classloader/MultiParentClassLoader +instanceKlass org/gradle/internal/classloader/FilteringClassLoader$RetrieveSystemPackagesClassLoader +instanceKlass org/gradle/internal/classloader/FilteringClassLoader +instanceKlass org/gradle/internal/classloader/FilteringClassLoader +instanceKlass jdk/internal/reflect/DelegatingClassLoader +instanceKlass java/security/SecureClassLoader +ciInstanceKlass java/lang/ClassLoader 1 1 1194 9 10 9 10 7 10 10 9 10 100 10 10 10 100 8 10 10 10 10 7 10 7 7 7 10 10 9 7 10 9 9 9 9 9 7 10 9 10 10 9 9 7 9 7 10 10 9 10 7 10 8 10 10 10 7 10 10 8 10 10 10 10 10 10 10 10 7 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 100 10 100 10 10 10 10 10 100 8 10 8 10 10 100 8 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 8 11 9 11 10 8 8 10 100 10 10 10 10 10 10 10 10 10 7 10 10 10 7 10 100 18 10 10 10 7 10 10 10 7 10 10 10 10 8 100 10 10 9 10 10 100 8 10 10 8 8 10 10 7 10 10 100 100 10 100 100 10 10 8 10 9 8 9 10 10 10 10 9 10 10 10 10 10 8 10 7 18 10 10 10 10 8 10 10 18 11 7 10 10 10 11 10 18 10 11 18 11 10 10 9 7 10 10 8 10 8 10 7 10 10 100 8 10 10 10 8 8 10 10 10 8 8 10 10 10 7 10 10 10 10 10 11 11 11 11 11 7 10 9 9 9 10 10 100 10 100 10 10 10 9 9 9 9 9 9 8 10 10 10 10 10 11 10 100 10 10 10 7 7 10 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 12 12 12 12 1 12 12 12 12 1 12 12 12 1 1 12 7 12 12 1 1 1 12 12 12 1 12 12 12 12 12 1 12 12 12 12 12 12 1 12 1 12 12 12 1 1 12 12 1 12 7 12 1 12 12 12 12 12 12 12 12 1 12 7 12 12 12 12 12 12 12 12 12 100 12 12 12 12 1 12 1 12 7 12 12 12 1 1 1 12 12 1 1 12 12 12 12 12 12 12 12 12 12 12 12 7 12 12 12 12 12 12 12 12 12 12 1 12 12 12 1 1 12 1 12 12 12 12 12 7 12 12 7 1 12 12 1 12 1 1 15 16 15 16 12 100 12 100 12 7 12 1 12 12 12 1 12 12 7 12 12 1 1 12 12 7 12 12 1 1 12 1 1 12 12 1 12 100 12 1 1 12 1 1 12 12 1 12 12 1 12 12 12 12 12 100 12 12 12 12 12 12 1 12 1 16 15 16 12 12 12 12 12 1 12 12 16 15 16 12 12 1 12 12 12 15 12 7 12 16 15 16 12 12 12 12 12 1 12 12 1 12 1 12 1 12 1 1 12 12 1 1 12 12 100 12 1 1 100 12 12 1 12 12 12 12 12 12 12 12 1 12 12 12 12 12 12 1 1 12 12 12 12 12 12 12 12 12 12 7 12 12 12 12 12 100 12 1 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 10 1 1 1 1 1 10 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 12 12 12 12 12 12 1 1 100 1 1 100 1 1 +staticfield java/lang/ClassLoader nocerts [Ljava/security/cert/Certificate; 0 [Ljava/security/cert/Certificate; +staticfield java/lang/ClassLoader loadedLibraryNames Ljava/util/Set; java/util/HashSet +staticfield java/lang/ClassLoader $assertionsDisabled Z 1 +ciInstanceKlass java/lang/System 1 1 631 10 10 10 10 10 9 7 10 11 10 10 10 100 8 10 10 9 100 8 10 10 8 10 100 10 8 10 10 100 10 10 10 9 9 7 10 10 10 10 10 10 10 100 100 8 10 10 7 10 100 8 10 8 10 100 8 10 100 10 8 10 10 10 8 10 10 10 100 8 10 10 10 100 18 100 9 10 100 10 10 10 10 10 10 10 10 7 7 10 10 100 10 10 100 8 10 9 9 10 10 10 10 8 10 10 8 10 10 8 10 7 9 10 7 9 10 9 7 10 8 10 8 10 10 10 10 10 10 10 10 10 9 100 8 10 8 10 10 8 100 10 10 10 10 100 10 10 10 10 10 8 10 10 10 10 8 10 10 10 7 10 10 10 9 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 100 12 12 12 12 12 12 1 7 12 100 12 100 12 12 12 1 1 12 12 12 1 1 12 100 12 1 12 1 12 12 12 1 12 100 12 12 12 12 1 12 7 12 12 12 12 12 1 1 1 12 12 1 12 1 1 1 12 1 1 1 1 12 12 7 12 1 12 100 12 7 12 1 1 12 100 12 1 1 15 16 15 16 12 1 12 12 1 12 12 7 12 12 12 12 12 12 1 1 12 12 1 12 7 12 1 1 12 12 12 12 12 12 1 12 12 1 12 12 1 7 12 1 7 12 12 1 12 12 1 12 1 12 1 7 12 12 7 12 12 7 12 12 7 12 12 7 12 12 1 1 12 1 12 1 1 12 12 12 1 12 12 12 100 12 1 12 12 1 12 12 12 1 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 12 12 1 1 100 1 1 100 1 1 +staticfield java/lang/System in Ljava/io/InputStream; java/io/PipedInputStream +staticfield java/lang/System out Ljava/io/PrintStream; org/gradle/internal/io/LinePerThreadBufferingOutputStream +staticfield java/lang/System err Ljava/io/PrintStream; org/gradle/internal/io/LinePerThreadBufferingOutputStream +instanceKlass java/lang/Exception +instanceKlass java/lang/Error +ciInstanceKlass java/lang/Throwable 1 1 395 10 9 9 9 9 9 10 9 10 10 100 100 10 8 10 8 10 10 10 100 8 10 10 10 10 8 9 10 100 10 10 100 10 10 11 10 10 10 8 10 10 7 8 8 10 10 8 8 9 10 100 10 11 8 8 10 8 10 8 100 10 9 10 10 100 9 10 10 100 8 10 10 10 10 100 10 10 11 11 11 8 8 10 10 10 9 8 7 10 10 100 8 10 11 8 9 10 11 9 11 100 10 7 10 100 1 1 1 100 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 1 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 1 1 1 12 1 100 12 12 1 1 12 7 12 12 1 100 12 12 1 12 12 1 7 12 12 12 12 12 1 12 12 1 1 1 12 12 1 1 12 100 12 1 12 1 1 12 1 12 1 1 12 12 12 100 12 12 12 100 1 1 12 12 100 12 1 100 12 12 12 12 12 1 1 100 12 1 1 12 1 1 12 1 12 100 12 12 12 12 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/Throwable UNASSIGNED_STACK [Ljava/lang/StackTraceElement; 0 [Ljava/lang/StackTraceElement; +staticfield java/lang/Throwable SUPPRESSED_SENTINEL Ljava/util/List; java/util/Collections$EmptyList +staticfield java/lang/Throwable EMPTY_THROWABLE_ARRAY [Ljava/lang/Throwable; 0 [Ljava/lang/Throwable; +staticfield java/lang/Throwable $assertionsDisabled Z 1 +instanceKlass java/util/ServiceConfigurationError +instanceKlass kotlin/jvm/KotlinReflectionNotSupportedError +instanceKlass com/google/common/util/concurrent/ExecutionError +instanceKlass java/lang/AssertionError +instanceKlass java/lang/VirtualMachineError +instanceKlass java/lang/LinkageError +instanceKlass java/lang/ThreadDeath +ciInstanceKlass java/lang/Error 1 1 40 10 10 10 10 10 100 7 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 1 1 +ciInstanceKlass java/lang/ThreadDeath 0 0 21 10 100 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 12 1 1 +instanceKlass javax/script/ScriptException +instanceKlass org/apache/maven/settings/building/SettingsBuildingException +instanceKlass org/gradle/api/internal/attributes/AttributeMergingException +instanceKlass java/util/concurrent/TimeoutException +instanceKlass com/jcraft/jsch/JSchException +instanceKlass java/security/GeneralSecurityException +instanceKlass java/util/concurrent/ExecutionException +instanceKlass java/lang/CloneNotSupportedException +instanceKlass java/text/ParseException +instanceKlass java/security/PrivilegedActionException +instanceKlass java/lang/InterruptedException +instanceKlass java/net/URISyntaxException +instanceKlass java/io/IOException +instanceKlass java/lang/ReflectiveOperationException +instanceKlass java/lang/RuntimeException +ciInstanceKlass java/lang/Exception 1 1 40 10 10 10 10 10 100 7 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 1 1 +instanceKlass groovy/lang/StringWriterIOException +instanceKlass java/lang/reflect/MalformedParameterizedTypeException +instanceKlass org/gradle/internal/locking/InvalidLockFileException +instanceKlass org/gradle/internal/locking/MissingLockStateException +instanceKlass org/gradle/api/internal/attributes/AttributeMatchException +instanceKlass org/gradle/model/internal/manage/schema/extract/InvalidManagedModelElementTypeException +instanceKlass kotlin/NoWhenBranchMatchedException +instanceKlass org/gradle/cli/CommandLineArgumentException +instanceKlass org/gradle/internal/snapshot/impl/IsolationException +instanceKlass org/gradle/internal/snapshot/ValueSnapshottingException +instanceKlass java/util/ConcurrentModificationException +instanceKlass java/lang/TypeNotPresentException +instanceKlass org/gradle/internal/reflect/NoSuchPropertyException +instanceKlass groovy/lang/GroovyRuntimeException +instanceKlass org/gradle/internal/typeconversion/TypeConversionException +instanceKlass org/apache/tools/ant/BuildException +instanceKlass java/io/UncheckedIOException +instanceKlass com/google/common/util/concurrent/UncheckedExecutionException +instanceKlass com/google/common/cache/CacheLoader$InvalidCacheLoadException +instanceKlass org/gradle/internal/work/NoAvailableWorkerLeaseException +instanceKlass org/gradle/launcher/daemon/server/BadlyFormedRequestException +instanceKlass org/gradle/internal/remote/internal/MessageIOException +instanceKlass org/gradle/cache/InsufficientLockModeException +instanceKlass org/gradle/cache/LockTimeoutException +instanceKlass org/gradle/cache/internal/locklistener/GracefullyStoppedException +instanceKlass org/gradle/launcher/daemon/registry/DaemonRegistry$EmptyRegistryException +instanceKlass org/gradle/cache/FileIntegrityViolationException +instanceKlass org/gradle/launcher/daemon/server/api/DaemonStoppedException +instanceKlass org/gradle/launcher/daemon/server/api/DaemonUnavailableException +instanceKlass org/gradle/internal/file/FileException +instanceKlass org/gradle/tooling/internal/protocol/InternalBuildActionFailureException +instanceKlass org/gradle/tooling/internal/protocol/test/InternalTestExecutionException +instanceKlass java/util/MissingResourceException +instanceKlass org/gradle/util/GFileUtils$TailReadingException +instanceKlass org/gradle/internal/jvm/JavaHomeException +instanceKlass java/util/NoSuchElementException +instanceKlass kotlin/UninitializedPropertyAccessException +instanceKlass org/gradle/api/reflect/ObjectInstantiationException +instanceKlass org/gradle/api/internal/classpath/UnknownModuleException +instanceKlass org/gradle/internal/nativeintegration/NativeIntegrationException +instanceKlass org/gradle/internal/reflect/NoSuchMethodException +instanceKlass net/rubygrapefruit/platform/NativeException +instanceKlass org/gradle/internal/service/ServiceLookupException +instanceKlass com/esotericsoftware/kryo/KryoException +instanceKlass java/lang/reflect/UndeclaredThrowableException +instanceKlass org/gradle/internal/UncheckedException +instanceKlass org/gradle/api/GradleException +instanceKlass java/lang/UnsupportedOperationException +instanceKlass java/lang/SecurityException +instanceKlass org/gradle/api/UncheckedIOException +instanceKlass org/gradle/internal/service/ServiceLookupException +instanceKlass java/lang/IndexOutOfBoundsException +instanceKlass org/gradle/api/GradleException +instanceKlass java/lang/IllegalStateException +instanceKlass org/gradle/api/UncheckedIOException +instanceKlass org/gradle/api/internal/classpath/UnknownModuleException +instanceKlass java/lang/IllegalArgumentException +instanceKlass java/lang/ArithmeticException +instanceKlass java/lang/NullPointerException +instanceKlass java/lang/IllegalMonitorStateException +instanceKlass java/lang/ArrayStoreException +instanceKlass java/lang/ClassCastException +ciInstanceKlass java/lang/RuntimeException 1 1 40 10 10 10 10 10 100 7 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 1 1 +ciInstanceKlass java/lang/SecurityManager 0 0 572 10 9 100 10 100 8 10 10 10 10 100 10 100 10 9 10 10 10 100 8 10 9 9 8 9 100 10 8 10 10 10 100 10 10 100 100 8 10 8 8 8 8 8 8 10 8 8 8 8 8 10 10 8 100 8 10 8 8 8 8 8 10 8 100 8 8 10 8 8 10 100 8 10 10 100 10 10 10 10 10 10 11 18 11 18 11 18 18 11 18 11 9 9 9 9 100 10 10 10 18 18 10 18 10 18 18 8 10 9 11 8 100 10 10 10 9 10 10 8 100 10 9 8 8 100 10 10 10 9 11 10 11 10 100 100 10 10 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 12 12 1 100 12 1 1 12 12 100 12 1 1 12 100 12 12 12 1 1 12 12 1 12 1 1 12 12 12 1 12 1 1 1 12 1 1 1 1 1 1 12 1 1 1 1 1 12 12 1 1 1 1 1 1 1 1 100 12 1 1 1 1 1 1 12 1 1 12 1 12 12 12 100 12 12 100 12 100 12 1 15 16 15 16 12 100 12 16 15 16 12 12 15 16 15 16 12 16 15 16 12 12 12 12 12 12 1 100 12 12 12 15 16 12 15 16 100 12 15 12 12 15 16 15 16 1 12 12 100 12 1 1 12 12 12 12 12 12 1 1 12 1 1 1 12 100 12 12 12 12 12 1 1 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 10 1 1 1 1 1 1 10 1 1 1 1 1 10 11 1 1 1 10 1 1 1 1 1 1 10 1 10 1 1 1 11 1 1 10 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 12 100 12 12 12 100 12 12 12 12 12 1 1 100 1 1 1 1 1 1 1 1 100 1 1 +ciInstanceKlass java/security/ProtectionDomain 1 1 331 10 9 7 10 9 9 9 10 7 9 9 7 9 9 10 100 10 10 10 10 9 9 10 7 10 100 10 9 8 100 8 10 10 10 10 8 11 8 10 8 8 10 10 10 10 8 10 8 8 10 9 10 9 10 100 100 10 10 7 10 100 10 10 11 11 100 11 10 10 11 11 10 10 10 11 10 8 8 10 7 10 10 7 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 7 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 1 1 1 1 1 100 12 12 1 12 12 12 12 12 1 12 12 1 12 12 100 12 100 12 12 12 12 100 12 12 1 1 12 100 12 1 1 1 12 12 12 1 1 12 1 1 12 12 12 12 1 12 1 1 100 12 12 12 12 12 1 1 100 12 1 1 12 12 12 12 1 12 12 12 12 12 12 100 12 12 12 1 1 7 12 1 7 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/security/ProtectionDomain filePermCompatInPD Z 0 +ciInstanceKlass java/security/AccessControlContext 1 1 367 9 9 10 8 10 10 9 9 9 10 7 100 10 11 11 11 11 7 11 10 10 9 10 11 10 7 100 8 10 10 7 10 9 9 9 9 9 9 9 10 9 10 10 8 10 10 10 100 10 10 10 10 8 10 8 10 8 8 10 8 10 8 10 10 10 8 8 100 10 10 100 10 8 10 10 10 8 10 10 10 7 10 10 10 10 10 10 10 10 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 100 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 100 12 1 100 12 12 12 12 12 7 12 1 12 12 12 12 12 1 12 12 7 12 100 12 12 12 1 1 1 12 12 1 7 12 12 12 12 12 12 12 12 7 12 12 12 12 1 12 12 100 12 1 12 100 12 1 12 1 100 12 1 1 12 1 12 1 12 12 12 1 1 1 12 12 1 12 1 12 12 1 12 12 12 1 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/net/URLClassLoader +instanceKlass jdk/internal/loader/BuiltinClassLoader +ciInstanceKlass java/security/SecureClassLoader 1 1 127 10 7 10 9 10 10 9 10 10 10 10 10 10 7 10 7 10 7 10 11 7 100 8 10 10 7 7 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 12 12 7 12 12 12 12 12 12 12 12 12 1 1 12 1 12 7 12 1 1 1 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/lang/InstantiationException +instanceKlass java/lang/IllegalAccessException +instanceKlass java/lang/reflect/InvocationTargetException +instanceKlass java/lang/NoSuchFieldException +instanceKlass java/lang/NoSuchMethodException +instanceKlass java/lang/ClassNotFoundException +ciInstanceKlass java/lang/ReflectiveOperationException 1 1 34 10 10 10 10 100 7 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 1 1 +ciInstanceKlass java/lang/ClassNotFoundException 1 1 37 100 10 10 9 100 7 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 1 1 1 +instanceKlass java/lang/ClassFormatError +instanceKlass java/lang/UnsatisfiedLinkError +instanceKlass java/lang/IncompatibleClassChangeError +instanceKlass java/lang/BootstrapMethodError +instanceKlass java/lang/NoClassDefFoundError +ciInstanceKlass java/lang/LinkageError 1 1 31 10 10 10 100 7 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 1 1 +ciInstanceKlass java/lang/NoClassDefFoundError 1 1 26 10 10 100 7 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 12 12 1 1 +instanceKlass org/codehaus/groovy/runtime/typehandling/GroovyCastException +instanceKlass kotlin/TypeCastException +ciInstanceKlass java/lang/ClassCastException 1 1 26 10 10 100 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 12 12 1 1 +ciInstanceKlass java/lang/ArrayStoreException 1 1 26 10 10 100 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 12 12 1 1 +instanceKlass java/lang/InternalError +instanceKlass java/lang/StackOverflowError +instanceKlass java/lang/OutOfMemoryError +ciInstanceKlass java/lang/VirtualMachineError 1 1 34 10 10 10 10 100 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 1 1 +ciInstanceKlass java/lang/OutOfMemoryError 1 1 26 10 10 100 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 12 12 1 1 +ciInstanceKlass java/lang/StackOverflowError 1 1 26 10 10 100 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 12 12 1 1 +ciInstanceKlass java/lang/IllegalMonitorStateException 1 1 26 10 10 100 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 12 12 1 1 +instanceKlass java/lang/ref/PhantomReference +instanceKlass java/lang/ref/FinalReference +instanceKlass java/lang/ref/WeakReference +instanceKlass java/lang/ref/SoftReference +ciInstanceKlass java/lang/ref/Reference 1 1 159 10 9 10 9 9 7 10 10 9 9 10 10 10 9 9 100 10 10 10 7 10 10 10 7 8 10 7 10 10 10 7 10 10 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 7 1 1 1 1 12 12 12 12 12 1 12 12 12 12 12 12 12 12 12 1 12 12 1 12 12 12 1 1 12 1 12 12 12 1 7 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/ref/Reference processPendingLock Ljava/lang/Object; java/lang/Object +instanceKlass org/codehaus/groovy/util/ReferenceType$SoftRef +instanceKlass com/google/common/cache/LocalCache$SoftValueReference +instanceKlass sun/util/locale/provider/LocaleResources$ResourceReference +instanceKlass sun/util/resources/Bundles$BundleReference +instanceKlass sun/util/locale/LocaleObjectCache$CacheEntry +instanceKlass jdk/internal/ref/SoftCleanable +instanceKlass java/lang/invoke/LambdaFormEditor$Transform +ciInstanceKlass java/lang/ref/SoftReference 1 1 47 10 9 9 10 10 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 12 12 12 12 12 1 1 1 +instanceKlass org/codehaus/groovy/util/ReferenceType$WeakRef +instanceKlass com/google/common/collect/MapMakerInternalMap$WeakValueReferenceImpl +instanceKlass com/google/common/collect/MapMakerInternalMap$AbstractWeakKeyEntry +instanceKlass com/google/common/cache/LocalCache$WeakValueReference +instanceKlass java/io/ObjectStreamClass$FieldReflectorKey +instanceKlass java/io/ObjectStreamClass$WeakClassKey +instanceKlass java/lang/ClassValue$Entry +instanceKlass java/util/logging/LogManager$LoggerWeakRef +instanceKlass java/util/logging/Level$KnownLevel +instanceKlass sun/nio/ch/FileLockTable$FileLockReference +instanceKlass java/lang/WeakPairMap$WeakRefPeer +instanceKlass jdk/internal/ref/WeakCleanable +instanceKlass java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +instanceKlass java/util/WeakHashMap$Entry +instanceKlass java/lang/ThreadLocal$ThreadLocalMap$Entry +ciInstanceKlass java/lang/ref/WeakReference 1 1 31 10 10 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 1 1 +instanceKlass java/lang/ref/Finalizer +ciInstanceKlass java/lang/ref/FinalReference 1 1 36 10 100 8 10 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 12 1 1 1 +instanceKlass jdk/internal/ref/PhantomCleanable +instanceKlass jdk/internal/ref/Cleaner +ciInstanceKlass java/lang/ref/PhantomReference 1 1 30 10 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 +ciInstanceKlass java/lang/ref/Finalizer 1 1 139 9 10 9 9 9 9 7 10 10 7 11 100 10 100 10 10 10 100 10 10 7 10 7 10 10 10 10 7 10 7 10 10 10 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 12 12 12 12 12 12 1 12 12 1 7 12 1 12 1 12 100 12 100 12 1 12 12 1 1 12 12 12 1 12 1 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/ref/Finalizer lock Ljava/lang/Object; java/lang/Object +instanceKlass org/gradle/launcher/daemon/server/exec/DaemonConnectionBackedEventConsumer$ForwardEvents +instanceKlass org/gradle/launcher/daemon/server/exec/LogToClient$AsynchronousLogDispatcher +instanceKlass java/util/logging/LogManager$Cleaner +instanceKlass jdk/internal/misc/InnocuousThread +instanceKlass java/lang/ref/Finalizer$FinalizerThread +instanceKlass java/lang/ref/Reference$ReferenceHandler +ciInstanceKlass java/lang/Thread 1 1 592 9 9 10 9 9 100 8 10 3 8 3 10 10 9 9 9 9 7 100 8 10 9 10 10 10 10 10 10 9 10 10 9 10 10 9 10 9 10 9 9 10 10 9 10 9 100 10 7 10 8 10 10 10 10 10 10 9 100 10 10 10 10 100 11 9 10 10 10 9 10 9 10 100 10 10 10 11 10 10 10 7 10 10 10 10 10 10 10 10 10 10 100 8 10 10 10 8 10 8 10 8 8 10 10 100 8 10 9 9 10 10 10 9 10 100 10 11 9 9 10 100 10 11 100 10 10 11 10 100 10 10 10 8 9 10 11 10 11 10 7 7 1 1 100 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 1 1 12 1 12 12 12 12 12 12 1 1 1 12 7 12 12 12 12 12 100 12 12 12 12 12 12 12 12 12 7 12 12 12 12 100 12 12 12 12 1 1 1 12 12 12 12 12 12 12 1 12 12 12 1 12 100 12 12 12 12 12 12 12 1 12 12 12 12 12 12 1 12 12 12 12 12 12 12 12 12 1 1 12 12 1 12 1 1 1 100 12 100 12 1 12 12 12 12 12 12 1 12 12 12 12 12 1 12 100 12 1 12 12 12 12 1 12 12 7 12 12 12 12 100 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/Thread EMPTY_STACK_TRACE [Ljava/lang/StackTraceElement; 0 [Ljava/lang/StackTraceElement; +ciInstanceKlass java/lang/ThreadGroup 1 1 289 10 9 8 9 7 9 9 10 10 10 10 10 9 10 10 9 10 9 9 10 100 10 10 10 9 10 10 9 10 10 10 10 10 10 10 10 10 10 10 100 10 10 10 7 10 7 10 9 10 8 10 10 10 10 11 100 9 100 10 8 10 10 8 10 10 10 10 8 10 8 10 8 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 1 12 1 12 12 12 12 12 12 12 12 12 12 12 100 12 12 12 7 12 12 7 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 12 1 12 12 12 12 1 12 12 12 12 1 12 1 1 12 12 1 12 12 12 100 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/util/Hashtable +ciInstanceKlass java/util/Dictionary 1 1 36 10 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 +instanceKlass java/util/Properties +ciInstanceKlass java/util/Hashtable 1 1 488 100 10 9 100 100 10 8 10 10 10 10 10 8 10 9 7 9 7 4 10 9 4 10 11 10 10 9 10 100 10 9 10 9 10 10 3 9 9 3 10 10 10 11 11 11 11 100 11 11 10 10 10 9 9 9 10 100 100 10 10 8 10 10 8 10 8 10 7 10 10 100 10 10 100 10 100 10 10 100 11 11 100 10 10 10 11 100 10 11 11 10 10 10 10 10 10 10 100 10 10 8 10 10 100 11 10 10 10 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 100 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 12 12 1 1 1 12 12 12 12 7 12 1 12 12 1 12 1 7 12 12 12 12 12 12 12 12 1 12 12 12 12 12 12 12 12 12 12 12 100 12 12 12 1 12 12 12 12 12 12 12 12 1 1 12 1 12 1 1 100 12 1 12 12 1 12 12 1 1 12 1 12 12 1 100 12 12 1 12 12 12 12 12 12 12 12 100 12 1 12 1 12 100 12 1 100 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/security/Provider +ciInstanceKlass java/util/Properties 1 1 639 10 100 10 7 10 9 9 9 10 10 8 10 7 10 10 8 10 7 10 10 9 10 7 10 10 10 100 8 10 10 10 10 100 3 10 10 10 8 10 10 10 10 10 100 100 10 10 100 8 10 10 10 100 10 10 10 11 11 11 7 11 11 10 8 10 10 100 10 10 10 8 10 10 10 100 100 100 10 8 8 10 10 10 7 10 10 10 7 10 10 11 10 8 10 11 8 10 11 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 7 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 7 10 100 10 11 4 11 10 10 11 10 10 10 100 8 10 10 10 100 6 0 10 11 10 10 1 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 100 7 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 100 1 1 1 1 1 12 1 12 1 12 12 12 12 7 12 12 1 7 12 1 12 12 1 12 1 12 12 12 12 1 12 12 12 1 1 12 12 12 12 1 12 12 1 12 12 12 12 12 1 1 12 12 1 1 12 12 12 1 12 7 12 12 12 1 12 12 12 1 12 12 1 12 100 12 1 12 100 12 12 1 1 1 1 1 12 12 12 1 12 12 1 12 12 7 12 1 12 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 1 12 12 12 12 12 100 12 12 1 1 12 100 12 1 12 100 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/util/Properties UNSAFE Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +staticfield java/util/Properties hexDigit [C 16 +ciInstanceKlass java/lang/Module 1 1 907 10 9 10 9 9 9 10 10 10 10 7 10 10 7 11 7 10 10 9 10 10 8 10 10 10 9 11 9 10 9 10 10 100 100 10 10 8 10 10 10 10 10 10 9 10 10 9 10 10 9 11 7 10 9 9 10 7 7 10 100 8 10 10 10 8 10 10 10 10 8 8 10 10 10 18 10 11 9 11 10 100 8 10 7 10 10 11 11 9 11 10 10 9 10 10 10 10 18 11 10 11 10 11 4 10 7 10 11 7 10 11 7 10 7 8 10 10 7 10 10 7 7 10 9 100 10 11 10 10 10 11 7 10 11 10 11 10 10 10 10 10 10 10 10 18 11 11 18 10 10 10 7 10 10 10 9 7 10 10 10 10 10 10 10 10 10 9 18 10 7 100 8 10 10 10 100 10 100 8 100 10 100 100 3 10 100 10 10 10 100 10 10 100 100 10 8 10 10 10 10 10 10 10 100 10 10 10 100 8 10 10 8 10 8 10 10 10 8 10 7 10 10 10 11 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 100 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 1 7 12 12 1 12 12 7 12 100 12 12 12 1 12 12 12 12 12 12 7 12 12 100 12 12 1 1 12 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 12 12 12 1 1 12 1 1 12 12 1 12 12 12 12 1 1 12 12 12 1 15 16 15 16 12 12 12 12 12 7 12 1 1 1 12 12 12 12 12 12 12 12 12 12 7 12 16 15 16 12 12 100 12 12 12 12 12 1 12 1 12 1 7 12 100 1 1 1 12 12 1 12 12 1 1 12 12 1 12 12 12 12 1 12 12 12 12 12 12 12 12 12 12 12 16 15 16 12 12 12 15 16 12 12 12 12 1 12 12 12 12 1 12 12 12 12 12 12 12 16 15 16 12 100 12 1 1 1 12 12 12 1 12 1 1 1 1 1 12 1 12 12 12 1 12 12 1 1 12 1 12 12 100 12 12 12 12 12 1 12 12 1 1 12 100 12 1 12 1 12 12 12 1 1 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 10 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 12 12 100 12 12 12 1 1 100 1 1 1 100 1 1 +staticfield java/lang/Module ALL_UNNAMED_MODULE Ljava/lang/Module; java/lang/Module +staticfield java/lang/Module ALL_UNNAMED_MODULE_SET Ljava/util/Set; java/util/ImmutableCollections$Set12 +staticfield java/lang/Module EVERYONE_MODULE Ljava/lang/Module; java/lang/Module +staticfield java/lang/Module EVERYONE_SET Ljava/util/Set; java/util/ImmutableCollections$Set12 +staticfield java/lang/Module $assertionsDisabled Z 1 +instanceKlass com/google/common/reflect/Element +instanceKlass java/lang/reflect/Executable +instanceKlass java/lang/reflect/Field +ciInstanceKlass java/lang/reflect/AccessibleObject 1 1 405 10 9 10 10 10 10 7 10 10 9 100 10 11 7 100 10 7 100 10 10 7 10 10 7 10 100 10 10 10 10 10 10 10 10 10 10 8 100 10 10 8 10 10 8 8 8 8 8 8 100 10 10 9 10 10 10 18 10 10 10 11 100 100 8 10 10 10 8 10 8 10 10 100 8 10 11 10 10 10 10 10 9 100 10 10 9 10 8 10 8 10 9 100 10 7 10 10 7 9 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 12 100 12 12 12 7 12 7 12 12 12 12 1 12 12 1 1 12 1 1 12 12 1 12 12 1 12 1 7 12 12 12 12 12 12 12 12 1 1 12 1 12 12 1 1 1 1 1 1 1 12 12 12 12 12 7 12 1 15 16 15 16 12 12 12 1 1 1 12 12 1 12 1 12 1 1 12 12 12 12 12 12 12 12 12 12 100 12 1 100 12 1 12 12 1 1 1 1 7 12 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 12 12 1 1 100 1 1 100 1 1 +staticfield java/lang/reflect/AccessibleObject reflectionFactory Ljdk/internal/reflect/ReflectionFactory; jdk/internal/reflect/ReflectionFactory +ciInstanceKlass java/lang/reflect/Field 1 1 433 9 10 10 10 9 10 10 10 10 9 9 9 9 9 9 9 100 8 10 7 10 9 9 10 10 10 10 10 10 100 10 10 10 10 10 10 10 100 10 8 10 10 8 10 10 8 8 10 11 9 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 10 10 10 10 10 9 10 10 10 10 11 10 100 10 10 9 10 11 10 10 9 10 10 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 1 1 1 12 12 100 12 100 12 12 12 12 100 12 12 12 12 12 12 12 12 12 1 1 12 1 12 12 12 12 7 12 12 12 12 12 1 12 12 12 12 12 12 1 1 12 12 1 12 12 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 7 12 12 100 12 12 12 1 100 12 100 12 12 100 12 100 12 12 12 100 12 100 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/reflect/Parameter 0 0 226 10 9 9 9 9 100 10 10 10 100 10 10 11 10 10 10 10 10 8 8 10 10 10 8 10 8 10 9 10 9 10 10 10 10 10 10 10 10 11 10 100 10 10 10 10 10 9 100 10 11 11 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 12 12 12 12 12 1 12 12 100 12 1 12 12 12 100 12 12 12 12 1 1 12 12 12 1 1 12 12 12 12 12 12 12 12 12 100 12 12 100 12 12 1 100 12 12 12 12 12 12 1 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/lang/reflect/Constructor +instanceKlass java/lang/reflect/Method +ciInstanceKlass java/lang/reflect/Executable 1 1 458 10 10 10 11 10 10 10 10 10 7 8 100 10 10 10 100 8 10 10 10 10 8 8 10 10 100 8 10 8 10 8 11 10 10 11 10 8 8 10 10 100 10 10 10 10 10 10 100 10 10 10 10 10 100 10 100 8 10 10 3 100 8 10 10 10 10 10 8 8 8 9 10 100 8 9 10 10 10 10 10 10 100 10 10 100 10 7 10 10 11 10 10 10 9 10 7 10 10 9 10 10 9 10 9 10 9 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 12 7 12 12 7 12 7 12 12 12 12 12 1 1 1 12 12 1 1 12 7 12 12 12 1 1 12 1 1 12 1 12 1 100 12 12 12 1 1 12 12 1 12 12 7 12 12 12 1 12 12 12 12 100 12 12 1 1 12 12 1 1 12 12 12 12 1 1 1 12 12 1 1 12 12 12 12 12 12 12 12 12 1 100 12 1 7 12 12 12 12 100 12 12 12 12 1 12 12 100 12 100 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/reflect/Method 1 1 441 9 10 10 9 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 100 8 10 7 10 9 8 10 10 10 10 10 10 10 100 10 10 10 7 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 100 8 10 100 8 10 10 10 10 10 10 10 11 9 10 10 10 10 11 10 7 10 10 10 10 9 10 10 10 10 10 11 10 7 100 100 10 10 10 100 10 8 10 10 10 10 10 8 10 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 7 1 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 7 12 7 12 12 12 12 7 12 12 12 12 12 12 12 12 12 12 12 12 12 1 1 12 1 12 12 1 7 12 7 12 12 12 12 12 12 1 12 12 7 12 12 7 12 12 12 12 12 7 12 12 12 12 12 12 12 1 1 1 1 12 12 12 12 12 12 12 100 12 12 12 12 12 12 12 1 12 12 12 12 12 7 12 12 7 12 7 12 7 12 7 12 7 12 1 1 1 12 12 12 1 1 12 12 12 12 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/reflect/Constructor 1 1 415 10 10 9 10 10 10 9 10 9 9 9 9 9 9 9 9 100 8 10 7 10 9 10 10 10 10 10 7 100 8 10 10 10 10 10 7 10 7 10 10 10 10 10 10 10 10 10 100 8 10 10 100 8 10 10 10 10 10 10 10 9 10 10 100 8 10 11 10 10 10 9 10 10 10 10 10 10 10 10 10 100 8 10 10 10 10 10 10 10 11 9 10 10 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 12 7 12 12 12 12 7 12 12 12 12 12 12 12 12 12 12 12 1 1 12 1 12 12 7 12 7 12 12 12 12 1 1 1 12 12 12 12 1 7 12 12 7 12 12 100 12 12 12 12 12 1 1 12 1 1 12 12 12 12 12 12 12 12 12 12 1 1 12 12 12 12 12 12 7 12 12 12 12 12 12 12 12 12 1 1 12 12 12 12 100 12 100 12 100 12 100 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 +instanceKlass jdk/internal/reflect/FieldAccessorImpl +instanceKlass jdk/internal/reflect/ConstructorAccessorImpl +instanceKlass jdk/internal/reflect/MethodAccessorImpl +ciInstanceKlass jdk/internal/reflect/MagicAccessorImpl 1 1 16 10 100 7 1 1 1 1 1 1 1 1 1 12 1 1 +instanceKlass jdk/internal/reflect/GeneratedMethodAccessor1 +instanceKlass jdk/internal/reflect/DelegatingMethodAccessorImpl +instanceKlass jdk/internal/reflect/NativeMethodAccessorImpl +ciInstanceKlass jdk/internal/reflect/MethodAccessorImpl 1 1 25 10 100 7 100 1 1 1 1 1 1 1 1 1 1 100 100 1 1 12 1 1 1 1 1 +instanceKlass jdk/internal/reflect/GeneratedConstructorAccessor1 +instanceKlass jdk/internal/reflect/BootstrapConstructorAccessorImpl +instanceKlass jdk/internal/reflect/SerializationConstructorAccessorImpl +instanceKlass jdk/internal/reflect/DelegatingConstructorAccessorImpl +instanceKlass jdk/internal/reflect/NativeConstructorAccessorImpl +ciInstanceKlass jdk/internal/reflect/ConstructorAccessorImpl 1 1 27 10 100 7 100 1 1 1 1 1 1 1 1 1 1 100 100 100 1 1 12 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/reflect/DelegatingClassLoader 1 1 18 10 100 7 1 1 1 1 1 1 1 1 1 1 1 12 1 1 +ciInstanceKlass jdk/internal/reflect/ConstantPool 1 1 138 10 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 7 7 8 10 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 1 7 12 1 1 1 1 1 1 1 +instanceKlass jdk/internal/reflect/UnsafeFieldAccessorImpl +ciInstanceKlass jdk/internal/reflect/FieldAccessorImpl 1 1 59 10 100 7 100 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 1 1 1 +instanceKlass jdk/internal/reflect/UnsafeQualifiedFieldAccessorImpl +instanceKlass jdk/internal/reflect/UnsafeStaticFieldAccessorImpl +ciInstanceKlass jdk/internal/reflect/UnsafeFieldAccessorImpl 1 1 254 10 9 10 10 9 10 9 10 10 9 10 10 10 10 100 10 10 10 8 10 10 100 8 10 8 10 8 10 100 10 10 8 10 8 10 8 10 8 10 8 10 8 10 8 10 8 10 8 10 10 8 8 8 8 8 8 10 8 8 8 10 10 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 7 12 12 7 12 12 12 12 12 12 12 7 12 12 1 12 12 1 12 1 1 12 1 12 1 12 1 12 1 12 1 100 12 1 100 12 1 100 12 1 100 12 1 100 12 1 100 12 1 100 12 1 100 12 12 1 1 1 1 1 1 12 1 1 1 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield jdk/internal/reflect/UnsafeFieldAccessorImpl unsafe Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +instanceKlass jdk/internal/reflect/UnsafeQualifiedStaticFieldAccessorImpl +ciInstanceKlass jdk/internal/reflect/UnsafeStaticFieldAccessorImpl 1 1 43 10 9 10 9 7 7 8 10 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 7 12 12 1 1 7 12 1 1 1 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/reflect/CallerSensitive 0 0 17 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/lang/invoke/DelegatingMethodHandle +instanceKlass java/lang/invoke/BoundMethodHandle +instanceKlass java/lang/invoke/DirectMethodHandle +ciInstanceKlass java/lang/invoke/MethodHandle 1 1 489 9 10 10 7 7 10 9 10 10 10 10 10 10 11 10 10 10 9 10 100 100 10 8 10 10 8 10 10 10 10 10 10 10 10 10 10 7 10 10 10 8 10 8 10 10 10 10 8 10 8 10 8 10 9 100 10 9 9 8 10 10 10 10 10 10 10 10 10 10 10 8 10 8 10 10 10 10 10 9 8 10 10 8 10 10 10 10 10 100 8 10 10 9 10 7 10 10 9 10 10 8 9 9 9 10 10 10 10 7 10 8 10 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 7 12 1 1 12 12 12 12 12 7 12 12 12 100 12 12 12 12 12 12 1 1 1 12 12 1 12 12 7 12 12 12 12 12 12 12 7 12 1 12 12 12 1 7 12 1 12 12 12 12 1 12 1 12 1 100 12 12 1 100 12 100 1 12 12 12 12 12 12 12 12 12 12 12 1 12 1 12 12 12 12 12 12 1 12 12 1 12 12 7 12 12 1 1 12 12 12 1 100 12 12 12 12 12 1 12 12 12 7 12 12 12 12 1 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/invoke/MethodHandle FORM_OFFSET J 20 +staticfield java/lang/invoke/MethodHandle $assertionsDisabled Z 1 +instanceKlass java/lang/invoke/DirectMethodHandle$Interface +instanceKlass java/lang/invoke/DirectMethodHandle$Constructor +instanceKlass java/lang/invoke/DirectMethodHandle$Special +instanceKlass java/lang/invoke/DirectMethodHandle$Accessor +ciInstanceKlass java/lang/invoke/DirectMethodHandle 1 1 922 7 7 100 7 7 10 10 100 10 10 10 10 10 10 7 7 10 10 10 10 10 10 9 100 10 9 10 10 10 10 10 10 7 10 10 10 8 10 7 10 7 10 10 10 10 10 10 100 10 10 7 10 10 10 10 8 10 10 10 10 10 9 7 10 10 10 100 10 8 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 8 9 8 9 9 8 9 9 8 9 9 8 10 10 7 9 7 10 100 10 10 10 10 7 10 10 10 7 10 10 10 10 10 9 10 9 9 10 10 7 7 7 9 10 10 10 10 9 10 100 10 100 10 10 8 9 9 10 9 10 9 9 10 10 10 10 10 10 10 9 10 10 10 10 10 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 10 100 10 9 10 7 9 10 10 10 10 10 8 8 8 8 10 9 10 7 10 8 9 10 8 8 8 9 8 8 8 8 8 8 7 8 10 10 8 8 10 10 10 10 7 7 1 1 1 1 1 1 1 100 1 1 1 1 7 1 1 1 1 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 1 3 1 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 3 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 12 12 1 12 12 12 12 12 12 1 1 12 12 12 12 12 12 12 1 12 12 12 12 12 12 12 1 12 12 12 1 12 1 12 1 12 12 12 12 12 1 12 12 1 12 12 12 12 12 12 12 12 12 7 12 1 12 7 12 12 1 1 12 12 12 12 12 12 12 12 12 12 12 12 7 12 12 12 12 12 1 12 1 12 12 1 12 12 1 12 12 1 12 12 1 12 1 12 1 12 12 12 12 1 12 12 12 12 7 12 12 12 12 12 12 12 7 12 12 1 1 1 12 12 12 12 12 12 12 1 12 1 12 12 1 12 12 12 12 100 12 12 12 12 12 12 12 12 12 7 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 12 12 1 12 7 12 1 12 12 12 12 12 1 1 1 1 12 12 12 1 100 12 12 12 12 1 1 12 12 1 12 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/invoke/DirectMethodHandle IMPL_NAMES Ljava/lang/invoke/MemberName$Factory; java/lang/invoke/MemberName$Factory +staticfield java/lang/invoke/DirectMethodHandle FT_UNCHECKED_REF I 8 +staticfield java/lang/invoke/DirectMethodHandle ACCESSOR_FORMS [Ljava/lang/invoke/LambdaForm; 132 [Ljava/lang/invoke/LambdaForm; +staticfield java/lang/invoke/DirectMethodHandle ALL_WRAPPERS [Lsun/invoke/util/Wrapper; 10 [Lsun/invoke/util/Wrapper; +staticfield java/lang/invoke/DirectMethodHandle NFS [Ljava/lang/invoke/LambdaForm$NamedFunction; 12 [Ljava/lang/invoke/LambdaForm$NamedFunction; +staticfield java/lang/invoke/DirectMethodHandle OBJ_OBJ_TYPE Ljava/lang/invoke/MethodType; java/lang/invoke/MethodType +staticfield java/lang/invoke/DirectMethodHandle LONG_OBJ_TYPE Ljava/lang/invoke/MethodType; java/lang/invoke/MethodType +staticfield java/lang/invoke/DirectMethodHandle $assertionsDisabled Z 1 +instanceKlass java/lang/invoke/VarHandleObjects$Array +instanceKlass java/lang/invoke/VarHandleObjects$FieldInstanceReadOnly +instanceKlass java/lang/invoke/VarHandleInts$FieldInstanceReadOnly +ciInstanceKlass java/lang/invoke/VarHandle 1 1 298 10 9 100 10 9 10 10 10 9 10 10 9 9 10 10 10 10 10 10 10 9 100 10 9 10 10 7 7 10 10 10 9 10 9 10 10 10 100 10 9 9 10 10 10 10 10 10 10 7 10 10 9 8 10 7 10 7 100 1 1 100 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 12 12 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 100 12 12 1 12 12 12 1 1 12 100 12 12 12 12 12 12 12 12 1 7 12 12 7 12 12 12 12 12 12 12 1 7 12 12 12 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/invoke/VarHandle AIOOBE_SUPPLIER Ljava/util/function/BiFunction; jdk/internal/util/Preconditions$1 +staticfield java/lang/invoke/VarHandle VFORM_OFFSET J 12 +staticfield java/lang/invoke/VarHandle $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/MemberName 1 1 747 7 7 100 9 10 9 10 10 10 10 10 10 10 9 10 100 100 10 8 10 10 10 10 9 8 10 7 7 10 10 7 7 7 10 9 100 8 10 10 10 10 10 10 10 10 10 10 8 8 8 10 10 9 3 10 10 10 10 10 10 10 10 10 7 8 10 10 8 9 8 9 10 8 10 10 10 10 10 100 10 10 8 10 10 8 10 10 7 10 10 8 8 100 10 10 100 10 10 10 10 10 10 10 10 10 3 10 3 10 3 3 3 3 3 3 100 10 10 10 3 9 10 3 10 10 10 10 10 10 10 10 10 10 10 10 10 10 100 10 10 10 100 10 10 10 10 10 10 8 10 10 10 10 10 10 10 10 10 10 10 10 10 100 10 100 8 10 7 10 10 10 10 10 8 8 8 8 10 10 10 8 8 10 8 10 10 10 8 8 10 10 8 10 8 10 10 10 8 8 8 100 10 8 8 8 8 10 100 100 100 10 100 10 100 10 9 10 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 3 1 3 1 3 1 3 1 3 1 1 1 1 1 1 1 1 3 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 100 1 1 1 1 1 1 1 1 1 7 1 1 12 12 12 12 12 12 12 12 12 12 100 12 12 1 1 12 1 12 12 12 12 12 1 100 12 1 1 12 1 12 12 1 1 12 12 12 12 12 12 12 12 12 12 1 1 1 100 12 12 12 12 12 12 12 12 12 12 12 1 12 12 100 100 12 1 12 12 12 12 12 1 12 12 1 12 12 1 12 12 1 12 12 1 1 1 12 100 12 1 12 12 12 12 12 12 12 12 12 12 100 1 12 7 12 12 12 12 12 7 12 12 12 12 12 12 12 12 12 1 12 1 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 1 1 1 12 12 12 12 12 1 1 1 1 12 12 12 1 1 12 1 12 12 1 1 12 1 12 1 12 12 12 1 1 1 1 1 1 1 1 12 1 1 1 1 1 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/invoke/MemberName $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/ResolvedMethodName 1 1 16 10 100 100 1 1 1 1 1 1 1 1 1 12 1 1 +ciInstanceKlass java/lang/invoke/MethodHandleNatives 1 1 660 100 10 9 10 100 10 10 10 10 8 8 8 8 8 8 8 8 8 8 7 10 7 10 10 7 10 10 8 10 8 10 8 10 9 8 10 100 10 100 100 8 7 7 10 10 7 9 10 10 10 7 10 10 10 10 10 9 8 10 8 10 8 8 8 100 10 8 10 10 10 100 8 10 7 8 10 8 8 8 8 8 10 10 10 10 10 7 10 100 100 10 10 8 8 10 10 10 8 10 8 8 10 10 100 10 7 9 10 10 10 9 10 9 9 10 10 10 7 7 10 10 10 10 10 8 10 10 10 10 10 10 100 8 10 9 10 10 100 10 10 100 100 10 10 100 100 10 100 10 10 10 10 10 10 10 10 10 10 10 10 8 100 10 10 10 10 10 10 7 10 10 10 10 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 1 12 12 12 1 1 1 1 1 1 1 1 1 1 1 12 1 12 12 1 12 1 12 1 12 1 12 100 12 1 100 12 1 12 1 1 1 1 1 12 1 7 12 12 12 12 1 12 7 12 12 12 12 12 1 12 1 12 1 1 1 1 12 1 12 12 100 12 1 100 12 1 1 12 1 1 1 1 1 12 12 12 12 12 1 12 1 1 12 12 1 1 12 12 1 100 12 1 1 12 12 1 12 1 12 7 12 12 12 12 12 12 12 12 12 1 1 12 12 12 7 12 12 1 12 12 12 12 7 12 12 1 1 12 12 12 1 12 12 1 1 1 1 1 12 12 12 12 12 12 12 12 12 1 1 12 12 12 12 12 12 1 12 12 12 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/invoke/MethodHandleNatives $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/LambdaForm 1 1 1075 100 9 10 10 9 9 10 100 10 9 10 9 10 7 9 9 9 9 10 7 10 7 10 10 10 10 10 10 9 100 10 9 10 10 10 10 10 7 10 10 8 10 10 10 7 10 10 7 10 10 9 9 9 10 9 10 10 100 10 9 10 10 100 10 10 10 10 10 10 10 8 10 10 8 8 9 9 9 10 10 10 9 10 10 10 10 10 10 9 10 8 8 8 8 8 8 8 8 10 9 7 10 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 100 8 10 10 10 10 8 10 8 8 10 9 10 10 100 10 10 10 10 9 8 10 10 10 10 10 9 8 10 100 10 10 9 9 8 10 10 100 100 10 10 8 8 100 8 10 10 10 8 8 9 10 10 8 8 8 100 8 100 8 100 8 10 8 9 10 10 9 10 10 10 10 10 10 10 10 10 10 8 100 10 10 9 10 8 8 100 8 8 8 8 8 8 8 8 10 10 10 10 8 8 8 10 8 10 8 8 8 8 8 10 10 10 10 10 10 10 10 10 10 10 9 8 10 9 10 9 9 9 9 7 10 9 10 10 7 8 10 9 7 10 8 100 10 9 9 10 7 10 10 10 9 10 10 10 9 10 10 10 9 10 9 7 9 10 9 10 100 10 7 9 100 1 1 100 1 100 1 1 1 7 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 3 1 1 1 1 1 3 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 1 1 12 12 12 12 12 12 1 12 12 12 7 12 12 12 12 12 12 1 12 1 12 12 100 12 100 12 12 12 12 1 12 12 12 12 12 12 12 1 12 1 12 12 12 1 12 12 1 12 12 12 12 12 12 12 12 12 1 12 12 12 12 1 12 12 12 12 12 12 12 1 12 12 1 1 12 12 12 12 7 12 12 12 7 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 12 12 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 1 12 12 12 1 12 1 1 12 12 12 12 1 12 12 7 12 12 12 1 100 12 12 12 12 12 12 1 12 12 7 12 12 1 12 12 1 1 12 1 1 1 1 12 12 12 1 1 12 12 12 1 1 1 1 1 1 1 1 1 12 1 12 12 12 12 12 12 12 12 12 12 12 12 1 12 12 12 12 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 1 1 1 12 1 12 1 1 1 1 1 12 12 12 7 12 12 12 12 12 12 12 12 12 1 12 12 12 12 12 12 12 1 7 12 12 12 12 1 1 12 12 1 12 1 1 12 12 12 12 1 12 7 12 12 7 12 12 12 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/invoke/LambdaForm COMPILE_THRESHOLD I 0 +staticfield java/lang/invoke/LambdaForm INTERNED_ARGUMENTS [[Ljava/lang/invoke/LambdaForm$Name; 5 [[Ljava/lang/invoke/LambdaForm$Name; +staticfield java/lang/invoke/LambdaForm IMPL_NAMES Ljava/lang/invoke/MemberName$Factory; java/lang/invoke/MemberName$Factory +staticfield java/lang/invoke/LambdaForm LF_identity [Ljava/lang/invoke/LambdaForm; 6 [Ljava/lang/invoke/LambdaForm; +staticfield java/lang/invoke/LambdaForm LF_zero [Ljava/lang/invoke/LambdaForm; 6 [Ljava/lang/invoke/LambdaForm; +staticfield java/lang/invoke/LambdaForm NF_identity [Ljava/lang/invoke/LambdaForm$NamedFunction; 6 [Ljava/lang/invoke/LambdaForm$NamedFunction; +staticfield java/lang/invoke/LambdaForm NF_zero [Ljava/lang/invoke/LambdaForm$NamedFunction; 6 [Ljava/lang/invoke/LambdaForm$NamedFunction; +staticfield java/lang/invoke/LambdaForm createFormsLock Ljava/lang/Object; java/lang/Object +staticfield java/lang/invoke/LambdaForm DEBUG_NAME_COUNTERS Ljava/util/HashMap; null +staticfield java/lang/invoke/LambdaForm DEBUG_NAMES Ljava/util/HashMap; null +staticfield java/lang/invoke/LambdaForm TRACE_INTERPRETER Z 0 +staticfield java/lang/invoke/LambdaForm $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/MethodType 1 1 674 7 10 9 9 9 10 9 8 10 10 9 9 10 100 10 8 10 10 10 100 8 10 100 10 10 10 10 11 9 11 7 7 10 10 9 10 10 10 10 10 10 9 7 10 100 10 10 10 10 10 10 10 10 10 8 8 10 9 100 10 10 10 10 10 10 10 10 10 8 10 10 10 10 10 10 10 10 10 9 10 10 10 10 9 7 10 10 10 10 10 10 10 10 100 8 8 8 10 10 10 10 11 11 10 9 10 10 10 10 10 10 10 10 10 10 10 10 9 7 10 10 10 10 10 10 10 8 10 11 9 10 10 10 10 10 9 9 10 9 10 10 100 10 7 10 7 7 9 100 1 1 100 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 100 100 1 100 100 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 1 1 1 1 1 1 1 100 1 12 12 12 12 7 12 7 12 1 100 12 12 7 7 12 1 1 12 12 12 1 1 12 1 12 12 12 12 12 12 1 7 12 12 12 12 12 12 7 12 12 12 12 1 12 1 12 12 7 12 12 12 12 12 12 12 1 1 12 12 1 12 12 12 12 100 12 12 12 1 12 100 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 100 12 12 7 12 12 12 1 1 1 1 12 12 12 12 12 100 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 12 12 12 12 12 12 1 7 12 12 12 12 12 100 12 12 12 12 12 100 12 12 100 12 12 12 1 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/invoke/MethodType internTable Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet; java/lang/invoke/MethodType$ConcurrentWeakInternSet +staticfield java/lang/invoke/MethodType NO_PTYPES [Ljava/lang/Class; 0 [Ljava/lang/Class; +staticfield java/lang/invoke/MethodType objectOnlyTypes [Ljava/lang/invoke/MethodType; 20 [Ljava/lang/invoke/MethodType; +staticfield java/lang/invoke/MethodType METHOD_HANDLE_ARRAY [Ljava/lang/Class; 1 [Ljava/lang/Class; +staticfield java/lang/invoke/MethodType serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField; +staticfield java/lang/invoke/MethodType $assertionsDisabled Z 1 +ciInstanceKlass java/lang/BootstrapMethodError 0 0 45 10 10 10 10 10 100 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 12 12 12 12 12 1 1 1 1 1 1 1 1 +instanceKlass java/lang/invoke/VolatileCallSite +instanceKlass java/lang/invoke/MutableCallSite +instanceKlass java/lang/invoke/ConstantCallSite +ciInstanceKlass java/lang/invoke/CallSite 1 1 299 10 10 9 10 9 10 10 100 7 10 7 10 10 10 100 100 10 10 10 8 10 10 10 10 10 10 10 10 9 9 7 8 10 10 100 10 9 8 100 10 10 100 8 10 10 10 100 10 10 10 10 10 9 9 8 10 9 100 10 10 10 10 10 10 100 8 10 10 100 100 100 8 10 10 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 1 1 1 1 1 1 12 12 12 12 12 12 12 1 1 12 1 12 12 12 1 1 12 12 1 12 12 12 12 12 100 12 12 12 100 12 1 12 12 1 100 12 12 12 12 1 1 12 12 1 12 12 12 12 12 12 12 100 12 12 1 100 12 12 12 12 7 12 1 1 12 1 1 1 1 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/invoke/CallSite $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/MethodHandleNatives$CallSiteContext 1 1 49 10 7 10 10 10 10 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 12 1 7 12 7 12 12 1 1 1 1 1 1 1 1 100 1 1 1 1 1 +ciInstanceKlass java/lang/invoke/ConstantCallSite 1 1 49 10 9 10 100 10 9 100 10 10 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 12 12 12 1 12 12 1 12 1 1 1 1 +ciInstanceKlass java/lang/invoke/MutableCallSite 0 0 67 10 10 9 10 10 10 9 10 10 100 10 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 12 12 12 12 12 12 12 12 100 12 1 12 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/invoke/VolatileCallSite 0 0 41 10 10 10 10 10 10 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/AssertionStatusDirectives 0 0 24 10 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 +instanceKlass java/lang/StringBuilder +instanceKlass java/lang/StringBuffer +ciInstanceKlass java/lang/AbstractStringBuilder 1 1 522 7 7 10 9 9 9 9 10 9 10 10 10 10 10 10 10 10 7 3 10 3 100 10 10 100 10 10 10 10 10 10 10 100 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 10 10 8 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 18 100 10 18 10 10 10 11 10 10 10 100 10 8 10 10 8 8 10 10 10 10 100 10 100 10 100 10 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 7 1 1 1 100 1 1 1 1 1 1 1 1 1 12 12 12 12 12 7 12 12 12 7 12 12 12 12 12 7 12 1 12 1 12 1 12 12 12 12 12 12 1 12 100 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 12 12 12 12 12 7 12 12 12 100 12 12 12 12 12 12 12 12 12 7 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 15 16 15 16 12 1 100 12 15 12 12 12 12 12 12 1 1 12 12 1 1 12 12 12 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 10 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 100 12 12 12 1 1 100 1 1 100 1 1 +staticfield java/lang/AbstractStringBuilder EMPTYVALUE [B 0 +ciInstanceKlass java/lang/StringBuffer 1 1 466 10 10 10 11 10 10 10 9 10 10 10 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 9 10 10 100 10 10 10 10 10 8 10 8 10 8 10 10 10 10 7 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 7 10 7 10 9 9 9 7 100 100 100 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 100 1 1 1 100 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 7 12 100 1 12 100 12 12 1 12 1 12 1 12 12 100 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 1 12 7 12 7 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/StringBuffer serialPersistentFields [Ljava/io/ObjectStreamField; 3 [Ljava/io/ObjectStreamField; +ciInstanceKlass java/lang/StringBuilder 1 1 403 10 10 10 11 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 9 9 10 10 10 10 10 10 10 10 10 10 10 100 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 7 10 7 100 100 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 7 12 100 100 12 12 12 12 12 100 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/misc/Unsafe 1 1 1165 10 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 100 10 10 10 5 0 10 10 10 10 10 10 10 10 10 100 10 10 10 10 10 10 10 10 10 10 10 10 10 10 5 0 5 0 5 0 10 10 10 100 10 10 10 10 10 10 10 10 10 100 10 10 10 10 8 10 8 8 10 9 9 9 9 9 9 9 9 10 10 10 10 5 0 5 0 9 10 10 10 10 10 8 3 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 100 10 100 10 9 5 0 10 5 0 10 5 0 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 5 0 5 0 5 0 10 10 10 10 10 7 10 7 10 9 7 9 7 9 7 9 7 9 7 9 7 9 7 9 7 9 10 9 9 9 9 9 9 9 9 9 10 10 10 7 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 7 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 12 12 12 12 12 12 12 12 12 12 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 12 12 12 12 12 12 12 1 12 12 12 1 12 1 1 12 7 12 100 7 100 100 100 100 12 12 12 12 12 12 12 12 12 12 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 1 12 12 12 1 12 1 12 1 12 1 12 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield jdk/internal/misc/Unsafe theUnsafe Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +staticfield jdk/internal/misc/Unsafe ARRAY_BOOLEAN_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_BYTE_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_SHORT_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_CHAR_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_INT_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_LONG_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_FLOAT_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_DOUBLE_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_OBJECT_BASE_OFFSET I 16 +staticfield jdk/internal/misc/Unsafe ARRAY_BOOLEAN_INDEX_SCALE I 1 +staticfield jdk/internal/misc/Unsafe ARRAY_BYTE_INDEX_SCALE I 1 +staticfield jdk/internal/misc/Unsafe ARRAY_SHORT_INDEX_SCALE I 2 +staticfield jdk/internal/misc/Unsafe ARRAY_CHAR_INDEX_SCALE I 2 +staticfield jdk/internal/misc/Unsafe ARRAY_INT_INDEX_SCALE I 4 +staticfield jdk/internal/misc/Unsafe ARRAY_LONG_INDEX_SCALE I 8 +staticfield jdk/internal/misc/Unsafe ARRAY_FLOAT_INDEX_SCALE I 4 +staticfield jdk/internal/misc/Unsafe ARRAY_DOUBLE_INDEX_SCALE I 8 +staticfield jdk/internal/misc/Unsafe ARRAY_OBJECT_INDEX_SCALE I 4 +staticfield jdk/internal/misc/Unsafe ADDRESS_SIZE I 8 +staticfield jdk/internal/misc/Unsafe BE Z 0 +staticfield jdk/internal/misc/Unsafe unalignedAccess Z 1 +ciInstanceKlass jdk/internal/module/Modules 1 1 483 10 9 11 11 11 11 11 11 11 11 10 10 18 10 100 10 10 10 10 11 10 10 10 10 9 10 10 10 100 100 11 10 11 10 10 10 10 10 11 18 11 10 11 100 11 11 11 10 10 18 11 18 11 10 18 18 10 9 11 100 10 11 11 7 11 10 100 10 10 10 11 10 100 10 18 10 100 8 10 10 18 11 11 10 10 10 18 10 10 7 10 10 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 100 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 12 12 7 12 12 12 12 12 12 12 12 12 100 12 1 15 16 15 16 12 100 12 1 100 12 100 12 12 12 12 12 12 12 12 12 100 12 1 1 12 100 12 12 12 12 100 12 12 12 12 16 15 16 12 12 100 12 100 12 1 12 12 12 12 100 12 16 15 16 12 12 16 15 16 12 12 12 15 16 15 16 12 12 12 1 12 12 1 12 1 12 12 12 12 12 1 15 16 12 12 1 1 12 12 15 16 12 12 12 15 12 1 12 7 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 10 1 1 1 1 1 1 10 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 10 1 1 10 1 1 1 1 1 100 12 12 12 12 12 12 12 12 12 1 1 100 1 1 1 1 1 100 1 1 +staticfield jdk/internal/module/Modules JLA Ljdk/internal/misc/JavaLangAccess; java/lang/System$2 +staticfield jdk/internal/module/Modules $assertionsDisabled Z 1 +instanceKlass com/google/common/io/BaseEncoding$StandardBaseEncoding$2 +instanceKlass org/apache/tools/ant/util/FileUtils$1 +instanceKlass java/io/PipedInputStream +instanceKlass java/io/ObjectInputStream$PeekInputStream +instanceKlass java/io/ObjectInputStream$BlockDataInputStream +instanceKlass java/io/ObjectInputStream +instanceKlass org/gradle/internal/remote/internal/inet/SocketConnection$SocketInputStream +instanceKlass org/gradle/internal/io/RandomAccessFileInputStream +instanceKlass org/gradle/util/BulkReadInputStream +instanceKlass com/esotericsoftware/kryo/io/Input +instanceKlass org/gradle/internal/serialize/AbstractDecoder$DecoderStream +instanceKlass org/gradle/internal/stream/EncodedStream$EncodedInput +instanceKlass java/util/zip/ZipFile$ZipFileInputStream +instanceKlass java/io/FilterInputStream +instanceKlass java/io/FileInputStream +instanceKlass java/io/ByteArrayInputStream +ciInstanceKlass java/io/InputStream 1 1 170 100 10 100 10 10 10 10 7 3 10 100 8 10 7 10 3 100 8 10 7 10 11 10 11 11 11 7 10 5 0 10 8 10 8 10 10 7 100 1 1 1 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 12 7 12 12 1 12 1 1 12 1 7 12 1 1 1 12 100 12 12 12 12 7 12 12 1 12 100 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/io/ByteArrayInputStream 1 1 96 10 9 9 9 9 10 10 10 10 10 10 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 7 12 7 12 7 12 100 12 12 100 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/net/URL 1 1 735 10 10 10 9 9 10 10 10 9 10 8 10 100 10 10 8 10 9 100 8 10 10 8 9 10 9 10 10 9 9 8 9 10 8 9 10 10 8 10 7 10 10 10 10 10 8 10 10 8 9 8 10 10 100 10 10 10 100 8 10 10 8 10 10 10 10 10 10 8 10 7 10 10 10 9 10 9 10 10 10 10 10 10 7 10 10 10 100 10 10 8 9 10 10 9 10 100 10 10 10 10 10 10 10 10 10 10 10 9 9 100 8 10 10 9 10 8 10 8 10 10 8 8 10 100 10 10 10 7 100 10 9 10 8 10 100 10 10 8 9 10 10 10 10 10 11 10 10 9 10 10 10 8 10 7 100 10 8 8 10 8 8 8 10 100 10 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 100 8 10 10 10 10 10 8 7 10 7 10 7 10 7 7 10 9 9 7 10 10 100 1 1 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 100 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 100 12 12 12 12 12 1 12 1 12 1 12 12 1 1 12 12 1 12 12 12 12 12 12 12 1 12 12 1 12 12 7 12 1 12 1 12 12 12 12 12 1 12 12 1 12 1 12 12 1 12 12 12 1 1 12 1 12 12 12 12 12 12 1 12 1 7 12 12 100 12 12 12 12 12 12 12 12 12 1 12 1 12 12 1 12 100 12 12 100 12 12 1 12 12 12 12 100 12 12 12 7 12 12 12 12 12 1 1 12 12 12 1 7 12 1 12 12 1 1 12 1 100 12 12 12 1 1 12 12 1 12 1 100 12 100 12 12 12 12 12 7 12 12 12 12 12 12 100 12 12 12 1 1 12 12 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 1 12 12 12 1 1 1 1 1 1 12 7 12 12 1 7 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/net/URL defaultFactory Ljava/net/URLStreamHandlerFactory; java/net/URL$DefaultFactory +staticfield java/net/URL streamHandlerLock Ljava/lang/Object; java/lang/Object +staticfield java/net/URL serialPersistentFields [Ljava/io/ObjectStreamField; 7 [Ljava/io/ObjectStreamField; +ciInstanceKlass java/util/jar/Manifest 1 1 299 10 7 10 9 7 10 9 9 10 10 10 10 10 11 11 10 10 100 100 10 8 10 10 10 10 11 100 10 10 11 11 11 11 100 100 8 10 11 7 8 10 10 10 10 8 10 10 11 10 10 10 8 10 7 10 10 10 100 8 10 10 8 10 10 10 10 11 10 10 10 100 7 10 11 10 11 10 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 12 1 12 12 12 12 12 12 12 7 12 12 100 12 1 1 1 12 12 12 12 1 12 12 12 100 12 12 12 1 1 1 12 1 1 12 12 12 12 1 12 12 12 12 12 1 12 1 12 12 12 1 1 12 1 12 100 12 12 12 12 12 7 12 12 1 1 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/loader/ClassLoaders 1 1 143 10 9 9 9 7 11 100 11 11 10 10 100 100 10 9 8 10 7 10 7 10 10 7 10 8 10 8 8 7 10 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 1 100 12 1 12 12 100 12 100 12 1 1 7 12 12 1 7 12 1 12 1 12 12 1 12 1 7 12 1 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield jdk/internal/loader/ClassLoaders JLA Ljdk/internal/misc/JavaLangAccess; java/lang/System$2 +staticfield jdk/internal/loader/ClassLoaders BOOT_LOADER Ljdk/internal/loader/ClassLoaders$BootClassLoader; jdk/internal/loader/ClassLoaders$BootClassLoader +staticfield jdk/internal/loader/ClassLoaders PLATFORM_LOADER Ljdk/internal/loader/ClassLoaders$PlatformClassLoader; jdk/internal/loader/ClassLoaders$PlatformClassLoader +staticfield jdk/internal/loader/ClassLoaders APP_LOADER Ljdk/internal/loader/ClassLoaders$AppClassLoader; jdk/internal/loader/ClassLoaders$AppClassLoader +instanceKlass jdk/internal/loader/ClassLoaders$BootClassLoader +instanceKlass jdk/internal/loader/ClassLoaders$PlatformClassLoader +instanceKlass jdk/internal/loader/ClassLoaders$AppClassLoader +ciInstanceKlass jdk/internal/loader/BuiltinClassLoader 1 1 717 10 10 9 9 7 10 9 9 10 10 11 100 100 10 10 8 10 10 7 10 10 11 11 11 7 9 8 8 10 10 9 11 7 10 10 10 10 10 10 10 11 10 100 10 10 10 100 8 10 10 8 10 10 11 11 100 7 10 11 11 10 7 10 10 7 7 10 7 7 10 10 100 10 11 100 100 10 10 100 100 10 10 18 10 10 18 100 10 7 10 10 10 10 10 9 100 10 10 10 10 10 10 10 10 10 10 18 7 10 10 10 10 100 10 7 10 10 10 11 7 10 7 100 10 10 11 10 10 10 10 10 10 10 10 8 10 10 10 100 8 8 10 10 8 8 10 11 9 10 9 9 9 9 9 9 10 8 10 7 10 10 7 7 10 11 10 10 10 100 10 10 10 7 10 10 8 10 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 7 12 12 12 12 1 12 12 12 12 12 12 1 1 12 1 12 12 1 12 12 7 12 12 12 1 12 1 1 12 7 12 12 12 1 12 12 12 7 12 12 12 12 12 7 12 1 7 12 12 1 1 12 1 12 12 12 12 1 1 12 12 1 12 12 1 1 12 1 1 12 7 12 1 12 12 1 1 12 12 1 1 12 12 1 15 16 15 16 12 12 12 15 16 1 7 12 1 12 12 12 12 12 1 12 12 12 12 12 12 12 12 12 15 16 12 1 12 12 12 12 1 12 100 1 1 12 12 12 12 1 12 1 12 12 12 12 12 12 12 12 12 12 12 1 12 12 12 1 1 1 12 1 1 7 12 7 12 7 12 12 12 12 12 12 12 12 12 1 12 1 12 12 1 1 12 12 12 12 1 12 12 1 12 12 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 10 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 12 12 12 12 1 1 100 1 1 100 1 1 +staticfield jdk/internal/loader/BuiltinClassLoader packageToModule Ljava/util/Map; java/util/concurrent/ConcurrentHashMap +staticfield jdk/internal/loader/BuiltinClassLoader $assertionsDisabled Z 1 +ciInstanceKlass jdk/internal/loader/ClassLoaders$AppClassLoader 1 1 134 8 10 9 10 10 10 10 10 10 7 8 10 10 10 9 11 10 10 100 10 7 7 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 12 12 7 12 100 12 12 12 12 12 1 1 12 7 12 100 12 12 100 12 12 7 12 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass jdk/internal/loader/ClassLoaders$PlatformClassLoader 1 1 57 8 10 9 11 10 100 10 100 7 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 12 12 100 12 7 12 1 12 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/security/CodeSource 1 1 402 10 9 9 9 9 10 9 10 100 10 100 10 7 10 10 10 100 10 10 10 10 10 100 10 10 10 10 10 10 10 10 10 10 10 10 10 8 10 10 10 10 8 10 10 100 10 10 8 10 10 10 8 8 9 100 8 10 10 8 10 8 8 8 10 10 10 10 10 10 100 100 10 10 10 10 10 100 10 10 8 10 10 10 100 10 100 100 8 8 10 10 10 100 10 10 11 10 10 11 10 10 8 100 10 10 100 10 11 11 7 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1 1 1 1 1 12 12 12 12 12 7 12 12 100 12 100 12 1 12 12 100 1 12 100 12 12 12 1 12 100 100 12 100 12 12 12 12 12 12 1 12 12 12 12 1 12 1 12 1 12 12 12 1 1 12 1 1 12 12 1 12 1 1 1 12 12 12 12 12 12 1 1 12 12 12 12 12 1 12 1 12 12 12 1 12 1 1 1 1 12 100 12 1 12 12 12 12 12 100 1 1 12 12 1 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/StackTraceElement 0 0 224 10 10 9 9 9 9 8 10 100 9 8 9 9 9 8 10 10 100 10 10 8 10 10 8 8 8 10 8 8 10 8 8 100 10 10 10 10 9 10 10 100 10 10 10 10 10 10 10 10 10 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 3 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 1 100 12 1 12 1 12 12 12 1 12 12 1 12 1 12 12 1 1 1 12 1 1 12 1 1 1 12 12 12 12 12 12 12 1 12 100 12 100 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/nio/IntBuffer +instanceKlass java/nio/LongBuffer +instanceKlass java/nio/CharBuffer +instanceKlass java/nio/ByteBuffer +ciInstanceKlass java/nio/Buffer 1 1 194 100 10 9 9 10 9 10 10 100 100 10 8 10 10 8 8 10 10 8 9 100 8 10 8 8 9 10 8 8 8 10 8 8 8 100 10 100 10 100 10 100 10 7 10 10 9 7 10 10 7 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 1 1 1 12 12 1 1 12 12 1 12 1 1 12 1 1 12 12 1 1 1 12 1 1 1 1 1 1 1 1 7 12 7 12 12 1 7 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/nio/Buffer UNSAFE Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +staticfield java/nio/Buffer $assertionsDisabled Z 1 +ciInstanceKlass java/lang/StackWalker 0 0 235 9 10 100 10 10 11 10 10 100 10 100 8 10 10 10 10 9 9 9 9 10 9 10 11 100 8 10 10 9 10 10 10 18 100 8 10 10 10 9 11 10 100 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 100 12 1 100 12 12 100 12 12 12 1 12 1 1 12 12 12 12 12 12 12 12 12 12 100 12 12 1 1 12 12 12 100 12 100 12 1 15 16 15 16 12 1 1 12 100 12 12 100 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 10 1 1 1 1 1 1 1 1 1 1 1 1 100 12 12 1 1 100 1 1 100 1 1 +ciInstanceKlass java/lang/StackStreamFactory$AbstractStackWalker 1 0 306 100 100 3 10 10 10 9 10 9 9 9 9 9 10 10 9 10 10 9 9 100 10 8 10 10 8 10 10 100 8 10 8 10 9 10 9 8 5 0 8 8 9 10 10 10 9 10 10 10 10 10 10 8 10 10 10 10 8 100 10 10 10 10 10 10 9 8 10 10 10 10 10 10 10 10 10 10 8 100 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 100 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 100 12 12 12 12 12 12 12 100 12 100 12 12 12 12 12 12 100 12 1 1 12 12 1 12 100 12 1 1 12 1 12 100 12 12 12 1 1 1 12 12 12 12 12 12 12 12 12 12 12 1 12 12 12 12 1 1 12 12 12 12 12 100 12 12 1 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +instanceKlass java/lang/LiveStackFrameInfo +ciInstanceKlass java/lang/StackFrameInfo 0 0 132 10 9 9 9 11 9 11 10 10 10 11 11 11 10 9 10 10 10 11 10 9 10 100 8 10 10 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 12 100 12 12 100 12 12 12 12 100 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 1 12 100 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/LiveStackFrameInfo 0 0 97 10 9 9 9 9 9 100 10 10 8 10 100 8 8 8 10 100 10 100 10 100 100 100 1 1 1 1 1 1 1 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 1 12 12 1 12 1 1 1 1 1 12 1 12 1 1 1 1 1 1 1 1 1 +instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer +ciInstanceKlass java/util/concurrent/locks/AbstractOwnableSynchronizer 1 1 32 10 9 7 7 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 1 1 1 +ciInstanceKlass java/lang/Boolean 1 1 128 10 9 10 10 8 10 9 9 8 10 7 10 10 100 100 10 10 8 10 9 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 1 12 12 12 1 12 1 12 7 12 1 1 12 12 1 7 12 12 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/Boolean TRUE Ljava/lang/Boolean; java/lang/Boolean +staticfield java/lang/Boolean FALSE Ljava/lang/Boolean; java/lang/Boolean +staticfield java/lang/Boolean TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Character 1 1 554 7 100 10 9 9 10 10 10 10 10 10 3 3 3 3 3 10 10 3 11 11 10 10 100 10 10 3 10 10 10 100 8 7 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 5 0 10 10 10 10 10 10 10 10 10 10 9 100 10 10 10 3 10 10 10 100 10 10 10 10 8 10 9 10 10 10 10 10 10 10 10 10 100 8 10 10 8 10 9 100 100 7 1 1 100 1 100 1 100 1 1 1 1 3 1 3 1 1 3 1 3 1 1 1 1 1 1 1 3 1 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 3 1 1 3 1 1 1 1 1 3 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 7 12 12 12 12 1 12 12 12 12 1 1 1 100 12 12 12 12 12 12 12 12 7 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 12 100 12 12 12 1 12 12 12 1 12 100 12 12 12 12 12 12 12 1 1 12 7 12 1 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/Character TYPE Ljava/lang/Class; java/lang/Class +staticfield java/lang/Character $assertionsDisabled Z 1 +instanceKlass java/math/BigDecimal +instanceKlass com/google/common/cache/Striped64 +instanceKlass java/util/concurrent/atomic/Striped64 +instanceKlass java/math/BigInteger +instanceKlass java/util/concurrent/atomic/AtomicLong +instanceKlass java/util/concurrent/atomic/AtomicInteger +instanceKlass java/lang/Long +instanceKlass java/lang/Integer +instanceKlass java/lang/Short +instanceKlass java/lang/Byte +instanceKlass java/lang/Double +instanceKlass java/lang/Float +ciInstanceKlass java/lang/Number 1 1 37 10 10 100 7 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 1 1 1 +ciInstanceKlass java/lang/Float 1 1 192 7 100 10 10 4 100 10 10 8 8 10 10 10 10 4 4 4 10 9 10 10 10 10 10 10 3 10 10 10 10 8 10 9 7 100 1 1 1 1 1 4 1 1 1 4 1 1 3 1 3 1 3 1 3 1 1 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 12 100 12 1 12 12 1 1 100 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 7 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/Float TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Double 1 1 254 7 100 10 10 10 100 10 10 6 0 8 10 8 10 8 6 0 10 100 5 0 5 0 8 8 10 10 8 10 8 8 8 10 10 10 10 10 10 10 10 6 0 6 0 6 0 10 9 10 10 10 10 5 0 10 10 10 10 8 10 9 7 100 1 1 1 1 1 6 0 1 1 1 6 0 1 1 3 1 3 1 3 1 3 1 1 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 12 12 12 1 12 100 12 1 12 1 12 1 12 1 1 1 100 12 12 1 12 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 7 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/Double TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Byte 1 1 178 7 10 9 10 100 100 10 8 10 8 10 10 10 10 10 10 10 10 8 8 10 9 10 10 10 10 10 5 0 10 8 10 9 7 100 7 1 1 1 1 1 3 1 3 1 1 1 1 1 1 1 3 1 3 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 12 12 12 1 1 12 1 12 1 12 12 12 12 12 12 12 12 1 1 12 12 12 12 12 12 12 1 7 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/Byte TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Short 1 1 186 7 100 10 10 100 100 10 8 10 8 10 10 10 10 10 10 9 10 10 10 8 8 10 9 10 10 10 10 10 3 3 5 0 10 8 10 9 100 100 100 1 1 1 1 1 3 1 3 1 1 1 1 1 1 1 3 1 3 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 12 12 1 1 12 1 12 1 12 12 12 12 12 12 12 12 12 12 1 1 12 12 12 12 12 12 12 1 7 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/Short TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Integer 1 1 417 7 100 7 7 10 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 9 9 100 8 10 100 10 8 10 10 8 10 8 10 3 10 3 10 10 10 7 11 100 10 11 10 8 10 8 100 10 10 5 0 8 10 10 10 10 7 9 9 10 10 9 10 10 10 10 100 100 10 10 8 8 10 8 8 8 8 8 8 10 10 10 5 0 3 3 3 3 10 3 10 10 8 10 9 3 3 3 3 3 3 9 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 3 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 100 12 12 100 12 12 100 12 12 12 7 12 12 12 12 12 12 12 12 12 1 1 12 1 12 1 12 12 1 12 1 12 12 12 12 7 12 1 1 12 1 12 1 1 12 12 1 12 12 12 12 1 12 12 12 12 12 12 12 7 12 1 1 12 12 1 1 12 1 1 1 1 1 1 12 12 12 12 12 12 1 7 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/Integer TYPE Ljava/lang/Class; java/lang/Class +staticfield java/lang/Integer digits [C 36 +staticfield java/lang/Integer DigitTens [B 100 +staticfield java/lang/Integer DigitOnes [B 100 +staticfield java/lang/Integer sizeTable [I 10 +ciInstanceKlass java/lang/Long 1 1 482 7 100 7 7 10 9 9 10 10 10 10 10 10 10 10 5 0 5 0 100 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 7 5 0 5 0 9 9 5 0 100 8 10 8 10 8 8 10 5 0 10 5 0 10 10 10 100 11 100 10 11 10 8 10 8 100 10 10 8 8 11 10 10 10 5 0 5 0 9 10 10 8 8 10 8 8 8 8 8 8 10 10 10 10 9 10 10 10 100 100 10 10 10 10 10 10 10 5 0 5 0 5 0 10 5 0 5 0 10 10 10 8 10 9 7 100 7 1 1 1 1 1 1 5 0 1 1 1 1 1 1 1 3 1 3 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 7 12 12 100 12 12 12 12 12 1 12 12 12 12 12 12 100 12 12 12 12 12 12 100 12 12 12 12 12 12 12 1 12 12 1 1 12 1 12 1 1 12 12 12 12 100 12 1 1 12 1 12 1 1 12 12 1 1 12 12 12 12 12 12 12 1 1 12 1 1 1 1 1 1 12 12 12 12 12 12 7 12 1 1 12 12 12 12 12 12 12 12 12 12 1 7 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/Long TYPE Ljava/lang/Class; java/lang/Class +instanceKlass kotlin/KotlinNullPointerException +ciInstanceKlass java/lang/NullPointerException 1 1 26 10 10 100 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 12 12 1 1 +ciInstanceKlass java/lang/ArithmeticException 1 1 26 10 10 100 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 12 12 1 1 +ciInstanceKlass jdk/internal/misc/VM 1 1 282 10 9 9 7 100 100 10 8 10 10 10 10 10 10 10 10 9 9 10 9 100 8 10 11 7 8 10 7 11 7 11 8 10 8 10 10 10 10 5 0 8 8 8 8 8 10 9 9 9 9 9 9 9 9 10 10 10 10 10 7 5 0 10 1 1 1 3 1 3 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 7 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 1 1 12 1 1 7 12 1 1 7 12 1 12 1 12 1 12 7 12 12 100 12 1 1 1 1 1 7 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield jdk/internal/misc/VM lock Ljava/lang/Object; java/lang/Object +ciInstanceKlass java/lang/StringLatin1 1 1 314 7 10 100 10 10 10 10 10 10 10 10 10 10 10 10 10 9 10 10 10 10 10 10 10 100 10 10 10 8 8 8 10 10 10 7 10 10 10 10 10 10 10 10 10 10 10 8 10 100 10 10 10 10 10 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 12 12 7 12 12 7 12 12 7 12 12 12 12 12 7 12 12 12 12 12 12 12 12 1 12 12 1 1 1 12 100 12 12 1 12 12 12 12 12 12 12 12 12 12 1 12 1 12 100 12 7 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/util/Arrays 1 1 1057 10 100 100 10 8 10 10 8 8 10 10 100 10 10 10 10 10 10 10 10 10 7 10 100 10 10 100 10 10 100 10 10 100 10 10 100 10 10 100 10 10 100 10 10 9 10 100 10 10 10 100 10 10 7 9 10 10 10 10 10 10 7 11 10 10 10 10 10 10 10 10 11 10 100 10 10 100 10 10 100 10 10 100 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 7 10 10 8 7 10 10 10 10 9 100 10 9 100 10 9 100 10 9 100 10 9 100 10 9 100 10 9 100 10 100 10 10 9 100 10 10 10 10 10 10 10 10 10 10 10 8 8 10 10 8 10 10 10 10 100 3 10 100 10 10 11 10 10 10 10 10 10 10 10 10 11 8 10 11 11 11 11 18 11 11 18 11 18 11 18 100 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 100 1 1 1 7 1 100 1 1 1 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 1 12 12 1 1 12 12 1 12 7 12 12 12 12 12 12 12 12 1 100 12 100 1 1 1 12 12 100 1 1 12 100 1 1 12 100 1 1 12 100 1 1 12 100 1 1 12 100 1 1 12 12 7 12 100 1 1 12 12 7 12 12 12 12 7 12 100 12 12 12 12 1 12 12 7 12 12 12 100 12 12 12 12 7 12 100 1 1 12 1 1 12 1 1 12 1 1 12 12 12 12 12 12 12 100 12 12 100 12 12 12 7 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 7 12 12 1 1 12 12 12 12 100 12 12 12 100 12 100 12 100 12 100 12 12 12 12 12 1 12 12 12 12 12 12 12 12 12 12 1 1 12 12 1 12 12 12 100 12 1 1 12 100 12 12 12 12 12 12 12 12 12 12 12 1 12 100 12 100 12 12 1 15 16 15 12 12 100 12 15 12 100 12 15 12 100 12 15 12 1 7 12 12 12 12 12 12 12 12 12 12 7 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 10 1 1 1 1 1 1 1 10 1 1 1 1 10 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 12 12 12 12 12 1 1 100 1 1 100 1 1 +staticfield java/util/Arrays $assertionsDisabled Z 1 +ciInstanceKlass java/lang/Math 1 1 381 10 10 10 10 10 10 10 7 6 0 6 0 10 10 10 10 10 10 10 10 10 10 10 10 100 3 3 3 10 100 5 0 5 0 5 0 5 0 5 0 9 10 100 8 10 8 10 10 100 5 0 5 0 100 3 5 0 3 5 0 10 10 10 9 9 10 7 6 0 10 9 100 10 10 100 10 10 10 10 10 10 6 0 10 10 10 10 7 4 10 10 10 10 10 10 10 10 10 10 10 5 0 6 0 4 6 0 4 6 0 4 10 9 10 9 10 4 6 0 100 100 1 1 1 1 1 6 0 1 6 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 100 12 12 12 12 12 12 1 12 12 12 12 12 12 12 12 12 12 12 12 1 12 1 12 100 12 1 1 12 1 12 12 1 1 12 12 12 12 12 12 1 12 12 1 12 1 12 12 12 12 12 12 12 12 12 12 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 7 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/Math negativeZeroFloatBits J -2147483648 +staticfield java/lang/Math negativeZeroDoubleBits J -9223372036854775808 +staticfield java/lang/Math $assertionsDisabled Z 1 +ciInstanceKlass java/lang/StringUTF16 1 1 532 100 7 10 100 10 7 3 100 100 10 8 10 10 8 10 10 9 10 100 8 10 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 100 10 10 10 10 10 10 10 10 10 10 10 10 100 3 10 10 10 10 10 10 10 9 10 10 10 10 100 10 10 10 10 10 8 8 8 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 8 10 100 10 10 10 10 11 10 10 10 9 9 5 0 5 0 10 10 10 10 10 100 100 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 1 1 1 12 12 1 12 12 12 12 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 1 12 12 12 12 12 100 12 100 12 12 12 12 12 1 12 12 12 12 12 12 12 12 12 12 12 12 1 12 12 100 12 12 1 1 1 12 12 12 12 100 12 12 12 12 12 12 12 12 100 12 12 12 12 1 12 1 12 100 12 12 12 100 12 12 12 12 12 12 12 12 12 7 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/lang/StringUTF16 HI_BYTE_SHIFT I 0 +staticfield java/lang/StringUTF16 LO_BYTE_SHIFT I 8 +staticfield java/lang/StringUTF16 $assertionsDisabled Z 1 +ciInstanceKlass java/io/File 1 1 634 9 9 10 9 9 9 10 9 100 10 8 10 9 10 100 10 10 10 10 10 100 8 10 10 8 10 8 10 8 10 8 10 8 10 8 10 8 10 9 10 10 10 10 10 10 7 10 10 10 10 10 7 8 10 10 10 8 10 7 10 10 10 10 7 10 100 10 10 10 10 10 8 7 10 100 100 10 10 10 7 10 10 10 10 10 10 10 10 10 10 10 7 10 11 11 11 7 11 100 10 10 10 10 7 11 10 10 10 10 10 10 10 8 10 10 10 10 10 10 10 10 100 8 10 10 10 8 8 8 10 10 100 8 10 10 10 10 10 10 10 10 8 10 10 9 9 10 9 10 9 10 10 10 10 10 10 9 10 9 9 10 10 8 7 100 100 7 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 100 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 7 1 1 1 100 100 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 1 1 12 12 12 1 12 12 12 12 1 1 12 12 1 12 1 12 1 12 1 12 1 12 1 12 1 12 12 12 12 12 12 12 12 1 12 12 12 12 12 1 1 12 12 1 12 1 12 12 12 1 1 12 12 12 12 1 1 12 1 1 12 7 12 12 1 12 12 12 12 12 12 12 12 100 12 12 12 1 12 12 12 1 12 12 12 12 12 12 12 12 12 12 1 12 12 12 12 12 12 12 12 1 1 12 12 1 1 1 12 12 1 1 12 12 12 12 100 12 12 7 12 12 12 12 12 7 12 12 12 12 7 12 7 12 7 12 7 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/io/File fs Ljava/io/FileSystem; java/io/WinNTFileSystem +staticfield java/io/File separatorChar C 92 +staticfield java/io/File separator Ljava/lang/String; "\"staticfield java/io/File pathSeparatorChar C 59 +staticfield java/io/File pathSeparator Ljava/lang/String; ";"staticfield java/io/File UNSAFE Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +staticfield java/io/File PATH_OFFSET J 16 +staticfield java/io/File PREFIX_LENGTH_OFFSET J 12 +staticfield java/io/File $assertionsDisabled Z 1 +instanceKlass java/lang/NumberFormatException +instanceKlass org/gradle/internal/service/UnknownServiceException +instanceKlass org/gradle/internal/service/UnknownServiceException +ciInstanceKlass java/lang/IllegalArgumentException 1 1 35 10 10 10 10 100 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 1 1 +instanceKlass java/lang/CharacterDataLatin1 +ciInstanceKlass java/lang/CharacterData 1 1 79 10 10 9 9 9 9 9 9 9 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 7 12 100 12 100 12 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/lang/CharacterDataLatin1 1 1 130 9 9 10 100 10 3 3 3 10 9 3 3 9 10 7 10 9 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 12 12 12 1 12 12 12 12 12 1 12 1 +staticfield java/lang/CharacterDataLatin1 DIGITS [B 256 +staticfield java/lang/CharacterDataLatin1 instance Ljava/lang/CharacterDataLatin1; java/lang/CharacterDataLatin1 +staticfield java/lang/CharacterDataLatin1 A [I 256 +staticfield java/lang/CharacterDataLatin1 B [C 256 +ciInstanceKlass java/net/URLStreamHandlerFactory 1 0 9 100 100 1 1 1 1 1 1 +ciInstanceKlass sun/net/www/ParseUtil 1 1 526 7 10 10 9 10 10 10 10 5 0 5 0 10 10 10 10 100 3 7 10 10 10 10 7 10 10 10 8 10 9 10 10 9 100 10 10 10 10 10 100 100 10 10 10 10 10 10 8 10 10 10 10 10 10 8 10 10 8 10 10 10 10 8 8 10 8 10 10 8 10 10 7 8 8 10 10 10 10 10 10 8 10 100 10 10 100 10 100 10 10 10 10 10 10 8 5 0 5 0 10 10 5 0 5 0 8 5 0 5 0 8 8 10 10 10 10 10 10 10 5 0 5 0 10 10 10 100 10 10 9 10 8 10 10 100 1 1 1 1 1 1 5 0 1 1 1 1 5 0 1 1 5 0 1 1 5 0 1 1 1 5 0 1 5 0 1 5 0 1 1 5 0 1 5 0 1 5 0 1 1 1 1 5 0 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 7 12 12 12 12 12 12 12 100 12 12 1 1 12 100 12 12 12 1 12 12 12 1 100 12 100 12 12 12 12 1 12 12 12 12 1 1 12 12 12 12 12 1 12 12 12 12 12 1 12 12 1 12 12 12 1 1 12 1 12 12 1 12 12 1 1 12 12 12 12 12 12 1 12 1 12 12 1 1 12 12 12 12 1 12 12 1 1 1 12 12 12 12 12 12 12 12 12 100 12 1 12 12 12 12 1 12 7 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield sun/net/www/ParseUtil hexDigits [C 16 +staticfield sun/net/www/ParseUtil $assertionsDisabled Z 1 +instanceKlass sun/net/www/protocol/jar/Handler +instanceKlass sun/net/www/protocol/jrt/Handler +instanceKlass sun/net/www/protocol/file/Handler +ciInstanceKlass java/net/URLStreamHandler 1 1 278 10 100 8 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 100 7 10 8 10 10 10 10 8 8 8 10 10 8 8 10 8 10 10 8 10 8 10 8 10 10 10 10 10 10 10 10 10 10 9 10 9 10 100 100 10 10 8 8 10 10 10 10 8 7 7 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 7 12 1 1 1 12 12 100 12 1 1 1 12 12 1 1 12 1 12 12 1 12 1 12 1 12 12 12 12 12 12 12 12 12 12 12 12 12 1 1 12 1 1 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass sun/net/www/protocol/file/Handler 1 1 161 10 10 8 9 10 10 10 10 10 10 8 10 8 7 10 10 100 10 8 10 10 10 100 10 7 8 10 8 10 10 10 100 8 10 10 7 10 10 10 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 1 1 1 1 1 12 12 1 12 12 12 12 12 7 12 12 1 12 1 1 12 12 1 1 12 12 12 1 12 1 1 12 1 12 12 12 1 1 12 1 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass sun/net/util/IPAddressUtil 1 1 293 10 7 10 10 5 0 10 5 0 10 10 3 10 10 10 10 10 10 10 10 10 8 8 100 10 8 10 10 8 10 8 8 10 5 0 5 0 10 8 10 8 10 8 10 10 10 5 0 5 0 8 8 5 0 8 5 0 8 10 10 10 10 10 10 5 0 5 0 10 9 10 3 3 3 3 3 3 3 3 3 100 1 1 1 3 1 3 1 3 1 1 5 0 1 5 0 1 5 0 1 5 0 1 5 0 1 1 1 1 5 0 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 12 12 100 12 12 12 12 12 12 12 12 12 100 12 12 100 12 1 1 1 1 12 12 1 12 1 1 12 12 1 12 1 12 1 12 12 12 1 1 1 1 7 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield sun/net/util/IPAddressUtil OTHERS [C 17 +ciInstanceKlass java/util/Locale 1 1 1162 10 9 9 100 10 10 8 10 10 10 10 10 10 9 10 7 100 10 9 9 10 9 10 9 9 100 8 10 10 10 8 8 10 8 10 10 10 10 8 8 8 8 10 10 100 9 10 9 10 9 10 9 10 9 10 7 10 10 10 100 10 9 10 9 8 10 8 10 100 8 10 10 10 9 100 8 10 7 10 10 10 9 8 10 10 10 10 10 10 10 100 7 10 8 10 10 10 10 10 10 10 10 10 10 8 10 10 10 10 10 8 9 10 10 10 10 7 8 10 10 10 10 11 11 11 10 10 10 10 8 10 10 10 10 100 8 8 10 8 10 8 8 10 10 10 10 10 10 100 10 8 9 7 10 10 10 10 10 10 8 10 10 10 8 100 10 10 10 10 11 18 11 18 11 18 10 10 10 11 100 100 10 10 8 10 100 100 10 9 10 10 10 10 100 8 10 10 10 10 10 8 8 8 9 10 10 8 10 10 10 18 10 8 10 10 8 10 11 18 11 10 10 8 10 8 8 8 8 8 10 10 10 10 100 10 10 10 10 8 8 8 8 8 8 8 10 8 8 9 8 8 9 10 9 10 10 10 10 10 100 10 10 10 7 10 10 9 8 9 8 9 8 9 9 8 9 8 9 8 9 8 9 8 9 8 9 8 9 9 8 9 9 9 9 8 9 8 9 8 9 9 10 7 10 9 9 100 100 7 1 100 1 100 1 100 1 7 1 100 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 3 1 1 5 0 1 1 3 1 3 1 3 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 100 100 1 1 1 1 1 100 1 1 1 100 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 12 12 12 1 12 1 12 12 12 12 12 12 12 12 1 1 12 12 12 12 12 12 12 12 1 1 12 12 7 12 1 1 12 1 12 12 12 12 1 1 1 1 12 7 12 1 12 12 12 12 12 12 12 12 12 12 1 12 1 12 12 12 12 1 12 1 100 12 1 1 12 12 12 12 1 1 12 1 12 100 12 12 12 1 12 12 12 12 1 1 1 12 12 12 100 12 12 100 12 12 12 12 1 12 12 12 12 1 12 12 12 1 1 12 12 12 12 12 12 12 12 12 1 12 12 12 12 1 1 1 1 1 1 12 12 12 12 12 12 1 12 1 12 1 7 12 12 12 100 12 12 12 1 12 12 12 1 1 12 12 100 12 12 100 12 1 15 16 15 16 12 100 12 16 15 16 12 12 15 12 12 12 12 12 1 12 1 12 1 1 12 12 12 12 1 1 12 12 1 1 1 12 12 12 1 12 12 100 12 15 12 12 1 12 12 1 100 12 12 16 15 16 12 12 7 12 12 12 1 12 12 12 12 1 12 12 12 1 1 1 1 1 12 1 1 12 1 1 12 100 12 12 12 12 12 1 12 12 7 12 1 12 12 1 12 1 12 1 12 12 1 12 1 12 1 12 1 12 1 12 1 12 1 12 12 1 12 12 12 12 1 12 12 1 12 12 12 1 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 10 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 12 12 12 12 12 1 1 100 1 1 100 1 1 +staticfield java/util/Locale LOCALECACHE Ljava/util/Locale$Cache; java/util/Locale$Cache +staticfield java/util/Locale ENGLISH Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale FRENCH Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale GERMAN Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale ITALIAN Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale JAPANESE Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale KOREAN Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale CHINESE Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale SIMPLIFIED_CHINESE Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale TRADITIONAL_CHINESE Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale FRANCE Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale GERMANY Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale ITALY Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale JAPAN Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale KOREA Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale CHINA Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale PRC Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale TAIWAN Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale UK Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale US Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale CANADA Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale CANADA_FRENCH Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale ROOT Ljava/util/Locale; java/util/Locale +staticfield java/util/Locale serialPersistentFields [Ljava/io/ObjectStreamField; 6 [Ljava/io/ObjectStreamField; +staticfield java/util/Locale $assertionsDisabled Z 1 +ciInstanceKlass sun/net/www/protocol/jar/Handler 1 1 201 10 7 10 10 10 10 10 8 10 10 7 8 10 10 10 7 10 10 100 10 10 8 10 8 10 10 100 10 10 10 10 10 7 10 10 10 8 10 8 8 8 10 8 8 10 8 8 10 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 1 12 12 12 12 12 1 12 12 1 1 12 12 12 1 12 12 1 12 1 12 1 12 12 1 12 12 12 7 12 1 12 12 1 12 1 1 1 12 1 1 12 1 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +ciInstanceKlass java/net/MalformedURLException 0 0 26 10 10 100 100 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 12 12 1 1 +instanceKlass java/security/AccessControlException +ciInstanceKlass java/lang/SecurityException 1 1 35 10 10 10 10 100 7 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 1 1 +instanceKlass java/net/Inet6Address +instanceKlass java/net/Inet4Address +ciInstanceKlass java/net/InetAddress 1 1 670 9 10 9 7 10 7 10 10 10 10 10 100 8 10 8 9 11 10 10 9 9 10 11 10 10 10 10 10 100 100 7 10 8 10 10 8 10 8 10 100 10 7 10 10 10 10 10 10 100 10 10 8 10 10 10 7 11 8 10 10 10 10 10 10 8 10 8 8 10 10 10 10 9 11 11 11 100 9 11 9 9 11 11 100 11 100 10 11 11 10 100 11 8 10 10 9 9 9 9 11 10 8 10 10 100 10 11 8 10 8 10 10 100 9 8 8 10 100 8 100 8 100 100 8 10 7 10 10 8 10 10 8 10 7 8 10 8 100 8 10 10 10 9 9 10 10 10 10 10 10 7 8 10 10 9 8 8 8 7 10 7 10 10 10 7 10 7 10 10 10 10 8 10 7 10 9 9 7 100 1 1 1 1 100 1 1 1 1 1 1 1 1 3 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 100 1 1 1 1 100 1 1 1 1 1 1 1 12 12 12 1 1 12 12 12 12 12 1 1 12 1 12 12 12 12 12 12 12 12 100 12 12 12 12 12 1 1 1 1 7 12 12 1 12 1 12 1 1 12 12 12 12 12 1 100 12 1 12 12 1 12 1 100 12 12 12 12 12 12 1 12 1 1 12 12 12 12 12 100 12 12 12 1 12 12 12 12 100 12 12 1 12 1 12 12 12 100 12 12 1 12 12 12 12 12 1 12 12 1 12 1 12 1 7 12 12 1 12 1 1 100 12 1 1 1 1 1 1 1 1 12 12 1 12 12 1 12 1 1 12 12 12 12 7 12 100 12 12 12 12 12 1 1 7 12 12 1 1 1 1 1 7 12 12 1 1 7 12 12 12 12 1 12 7 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +staticfield java/net/InetAddress preferIPv6Address I 0 +staticfield java/net/InetAddress cache Ljava/util/concurrent/ConcurrentMap; java/util/concurrent/ConcurrentHashMap +staticfield java/net/InetAddress expirySet Ljava/util/NavigableSet; java/util/concurrent/ConcurrentSkipListSet +staticfield java/net/InetAddress impl Ljava/net/InetAddressImpl; java/net/Inet6AddressImpl +staticfield java/net/InetAddress UNSAFE Ljdk/internal/misc/Unsafe; jdk/internal/misc/Unsafe +staticfield java/net/InetAddress FIELDS_OFFSET J 12 +staticfield java/net/InetAddress serialPersistentFields [Ljava/io/ObjectStreamField; 3 [Ljava/io/ObjectStreamField; +ciMethod java/lang/Object ()V 4097 1 265878 0 96 +ciMethod java/lang/Object getClass ()Ljava/lang/Class; 2049 1 256 0 -1 +ciMethod java/lang/String length ()I 4097 1 234340 0 64 +ciMethod java/lang/String isEmpty ()Z 2057 1 19965 0 64 +ciMethod java/lang/String charAt (I)C 3249 1 616950 0 160 +ciMethod java/lang/String equals (Ljava/lang/Object;)Z 2561 1 6420 0 448 +ciMethod java/lang/String equalsIgnoreCase (Ljava/lang/String;)Z 1553 1 4419 0 -1 +ciMethod java/lang/String regionMatches (ILjava/lang/String;II)Z 1 1 49 0 -1 +ciMethod java/lang/String regionMatches (ZILjava/lang/String;II)Z 2105 1 5435 0 1760 +ciMethod java/lang/String startsWith (Ljava/lang/String;I)Z 2089 16273 3536 0 512 +ciMethod java/lang/String startsWith (Ljava/lang/String;)Z 2073 1 20042 0 480 +ciMethod java/lang/String endsWith (Ljava/lang/String;)Z 2201 1 3532 0 -1 +ciMethod java/lang/String indexOf (I)I 2065 1 141030 0 -1 +ciMethod java/lang/String indexOf (II)I 2761 1 108921 0 448 +ciMethod java/lang/String lastIndexOf (I)I 2065 1 32565 0 0 +ciMethod java/lang/String lastIndexOf (II)I 2249 1 34887 0 512 +ciMethod java/lang/String indexOf (Ljava/lang/String;)I 2049 1 4193 0 0 +ciMethod java/lang/String indexOf (Ljava/lang/String;I)I 273 1 222 0 -1 +ciMethod java/lang/String substring (I)Ljava/lang/String; 2281 1 7380 0 0 +ciMethod java/lang/String substring (II)Ljava/lang/String; 2121 1 6456 0 1184 +ciMethod java/lang/String replace (CC)Ljava/lang/String; 2089 1 5408 0 1568 +ciMethod java/lang/String toLowerCase (Ljava/util/Locale;)Ljava/lang/String; 2049 1 14478 0 1952 +ciMethod java/lang/String ([BB)V 2129 1 44404 0 0 +ciMethod java/lang/String coder ()B 3593 1 313515 0 32 +ciMethod java/lang/String isLatin1 ()Z 4097 1 830270 0 64 +ciMethod java/lang/String checkBoundsBeginEnd (III)V 2065 1 5397 0 128 +ciMethod java/lang/Class getName ()Ljava/lang/String; 2049 1 12719 0 64 +ciMethod java/lang/Class initClassName ()Ljava/lang/String; 2057 1 257 0 -1 +ciMethod java/lang/Class getClassLoader ()Ljava/lang/ClassLoader; 2249 1 3937 0 -1 +ciMethod java/lang/System getSecurityManager ()Ljava/lang/SecurityManager; 2073 1 11694 0 -1 +ciMethod java/lang/System arraycopy (Ljava/lang/Object;ILjava/lang/Object;II)V 2049 1 256 0 -1 +ciMethod java/util/Hashtable get (Ljava/lang/Object;)Ljava/lang/Object; 2065 1 930 0 -1 +ciMethod java/util/Hashtable put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 145 25 17 0 -1 +ciMethod java/lang/AbstractStringBuilder (I)V 929 1 5297 0 -1 +ciMethod java/lang/AbstractStringBuilder append (Ljava/lang/String;)Ljava/lang/AbstractStringBuilder; 1649 1 6908 0 -1 +ciMethod java/lang/AbstractStringBuilder isLatin1 ()Z 2129 1 42273 0 -1 +ciMethod java/lang/StringBuilder ()V 921 1 23898 0 384 +ciMethod java/lang/StringBuilder append (Ljava/lang/String;)Ljava/lang/StringBuilder; 1649 1 60799 0 1376 +ciMethod java/lang/StringBuilder append (I)Ljava/lang/StringBuilder; 121 1 2565 0 -1 +ciMethod java/lang/StringBuilder toString ()Ljava/lang/String; 929 1 23119 0 992 +ciMethod java/net/URL (Ljava/net/URL;Ljava/lang/String;Ljava/net/URLStreamHandler;)V 1865 8073 4367 0 -1 +ciMethod java/net/URL isValidProtocol (Ljava/lang/String;)Z 785 2353 585 0 0 +ciMethod java/net/URL checkSpecifyHandler (Ljava/lang/SecurityManager;)V 0 0 1 0 -1 +ciMethod java/net/URL set (Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V 3073 1 4369 0 0 +ciMethod java/net/URL getQuery ()Ljava/lang/String; 1049 1 131 0 -1 +ciMethod java/net/URL getPath ()Ljava/lang/String; 1041 1 130 0 -1 +ciMethod java/net/URL getUserInfo ()Ljava/lang/String; 1113 1 139 0 -1 +ciMethod java/net/URL getAuthority ()Ljava/lang/String; 1033 1 129 0 -1 +ciMethod java/net/URL getPort ()I 1033 1 129 0 -1 +ciMethod java/net/URL getProtocol ()Ljava/lang/String; 1033 1 129 0 0 +ciMethod java/net/URL getHost ()Ljava/lang/String; 1025 1 128 0 -1 +ciMethod java/net/URL getFile ()Ljava/lang/String; 1041 1 130 0 0 +ciMethod java/net/URL getRef ()Ljava/lang/String; 1057 1 132 0 -1 +ciMethod java/net/URL lookupViaProperty (Ljava/lang/String;)Ljava/net/URLStreamHandler; 9 1 1 0 -1 +ciMethod java/net/URL lookupViaProviders (Ljava/lang/String;)Ljava/net/URLStreamHandler; 0 0 1 0 -1 +ciMethod java/net/URL toLowerCase (Ljava/lang/String;)Ljava/lang/String; 2049 1 925 0 0 +ciMethod java/net/URL isOverrideable (Ljava/lang/String;)Z 25 1 3 0 -1 +ciMethod java/net/URL getURLStreamHandler (Ljava/lang/String;)Ljava/net/URLStreamHandler; 2049 1 925 0 0 +ciMethod java/net/URL isBuiltinStreamHandler (Ljava/net/URLStreamHandler;)Z 2049 1 4710 0 0 +ciMethod java/net/URL isBuiltinStreamHandler (Ljava/lang/String;)Z 2049 1 4710 0 0 +ciMethod java/lang/Character isLetter (C)Z 1833 1 585 0 0 +ciMethod java/lang/Character isLetter (I)Z 1833 1 585 0 0 +ciMethod java/lang/Character isLetterOrDigit (C)Z 2089 1 1755 0 0 +ciMethod java/lang/Character isLetterOrDigit (I)Z 2089 1 1755 0 0 +ciMethod java/lang/Character toLowerCase (C)C 3113 1 15441 0 0 +ciMethod java/lang/Character toLowerCase (I)I 3881 1 135273 0 160 +ciMethod java/lang/Character toUpperCase (C)C 2081 1 11693 0 192 +ciMethod java/lang/Character toUpperCase (I)I 2081 1 11693 0 0 +ciMethod java/lang/Character getType (I)I 2817 1 2340 0 0 +ciMethod java/lang/Integer parseInt (Ljava/lang/CharSequence;III)I 25 33 8 0 -1 +ciMethod jdk/internal/misc/VM isBooted ()Z 33 1 11 0 -1 +ciMethod jdk/internal/misc/VM isSystemDomainLoader (Ljava/lang/ClassLoader;)Z 1 1 367 0 -1 +ciMethod java/lang/StringLatin1 charAt ([BI)C 3249 1 605590 0 128 +ciMethod java/lang/StringLatin1 canEncode (I)Z 1585 1 234259 0 0 +ciMethod java/lang/StringLatin1 equals ([B[B)Z 2025 2569 5369 0 -1 +ciMethod java/lang/StringLatin1 indexOf ([BII)I 1377 42289 1267 0 384 +ciMethod java/lang/StringLatin1 indexOf ([B[B)I 2049 1 4195 0 -1 +ciMethod java/lang/StringLatin1 lastIndexOf ([BII)I 1057 30121 1060 0 416 +ciMethod java/lang/StringLatin1 replace ([BCC)Ljava/lang/String; 841 33417 782 0 -1 +ciMethod java/lang/StringLatin1 regionMatchesCI ([BI[BII)Z 2057 745 5378 0 1312 +ciMethod java/lang/StringLatin1 regionMatchesCI_UTF16 ([BI[BII)Z 0 0 1 0 -1 +ciMethod java/lang/StringLatin1 toLowerCase (Ljava/lang/String;[BLjava/util/Locale;)Ljava/lang/String; 1025 34385 1733 0 -1 +ciMethod java/lang/StringLatin1 newString ([BII)Ljava/lang/String; 1633 1 36705 0 0 +ciMethod java/util/Arrays binarySearch ([CC)I 0 0 1 0 -1 +ciMethod java/util/Arrays copyOfRange ([BII)[B 2057 1 6480 0 576 +ciMethod java/lang/Math min (II)I 3113 1 54918 0 -1 +ciMethod java/lang/StringUTF16 getChar ([BI)C 4097 1 48701 0 -1 +ciMethod java/lang/StringUTF16 equals ([B[B)Z 0 0 1 0 -1 +ciMethod java/lang/StringUTF16 indexOf ([BII)I 0 0 1 0 -1 +ciMethod java/lang/StringUTF16 indexOf ([B[B)I 0 0 1 0 -1 +ciMethod java/lang/StringUTF16 indexOfLatin1 ([B[B)I 0 0 1 0 -1 +ciMethod java/lang/StringUTF16 lastIndexOf ([BII)I 0 0 1 0 -1 +ciMethod java/lang/StringUTF16 replace ([BCC)Ljava/lang/String; 0 0 1 0 -1 +ciMethod java/lang/StringUTF16 regionMatchesCI ([BI[BII)Z 0 0 1 0 -1 +ciMethod java/lang/StringUTF16 regionMatchesCI_Latin1 ([BI[BII)Z 0 0 1 0 -1 +ciMethod java/lang/StringUTF16 toLowerCase (Ljava/lang/String;[BLjava/util/Locale;)Ljava/lang/String; 0 0 1 0 -1 +ciMethod java/lang/StringUTF16 newString ([BII)Ljava/lang/String; 0 0 1 0 -1 +ciMethod java/lang/StringUTF16 charAt ([BI)C 0 0 1 0 0 +ciMethod java/lang/StringUTF16 checkIndex (I[B)V 0 0 57 0 -1 +ciMethodData java/lang/String isLatin1 ()Z 2 830270 orig 320 48 149 89 165 254 127 0 0 0 163 77 196 136 2 0 0 200 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 241 73 101 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 7 0 2 0 0 0 0 0 0 0 88 0 0 0 254 255 255 255 7 0 3 0 0 0 0 0 data 18 0x30007 0x0 0x58 0xca93f 0xa0007 0x48 0x38 0xca8f7 0xe0003 0xca8f7 0x18 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/lang/Object ()V 2 265878 orig 320 48 149 89 165 254 127 0 0 16 6 77 196 136 2 0 0 88 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 177 100 32 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 0 0 0 0 254 255 255 255 0 0 0 0 0 0 0 0 data 4 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethod java/lang/CharacterData getType (I)I 0 0 1 0 -1 +ciMethod java/lang/CharacterData toLowerCase (I)I 0 0 1 0 -1 +ciMethod java/lang/CharacterData toUpperCase (I)I 0 0 1 0 -1 +ciMethod java/lang/CharacterData of (I)Ljava/lang/CharacterData; 3177 1 5581 0 96 +ciMethod java/lang/CharacterDataLatin1 getProperties (I)I 2057 1 27403 0 96 +ciMethod java/lang/CharacterDataLatin1 getType (I)I 3105 1 2340 0 0 +ciMethod java/lang/CharacterDataLatin1 toLowerCase (I)I 4097 1 9149 0 160 +ciMethod java/lang/CharacterDataLatin1 toUpperCase (I)I 3089 1 5755 0 160 +ciMethodData java/lang/String coder ()B 2 313515 orig 320 48 149 89 165 254 127 0 0 160 161 77 196 136 2 0 0 168 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 1 0 0 81 55 38 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 5 0 2 0 0 0 0 0 0 0 56 0 0 0 254 255 255 255 7 0 3 0 0 0 0 0 data 14 0x30007 0x0 0x38 0x4c6ea 0xa0003 0x4c6ea 0x18 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/lang/String equals (Ljava/lang/Object;)Z 2 6420 orig 320 48 149 89 165 254 127 0 0 16 94 77 196 136 2 0 0 88 3 0 0 168 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 1 0 0 161 190 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 24 0 2 0 0 0 0 0 0 0 208 1 0 0 254 255 255 255 7 0 2 0 0 0 0 0 data 68 0x20007 0x1402 0x20 0x3d2 0x80104 0x0 0x0 0x288c4e49b00 0x13ff 0x0 0x0 0xb0007 0x3 0x178 0x13ff 0xf0004 0x0 0x0 0x288c4e49b00 0x13ff 0x0 0x0 0x140005 0x13ff 0x0 0x0 0x0 0x0 0x0 0x180005 0x13ff 0x0 0x0 0x0 0x0 0x0 0x1b0007 0x0 0xb0 0x13ff 0x1f0005 0x13ff 0x0 0x0 0x0 0x0 0x0 0x220007 0x0 0x48 0x13ff 0x2d0002 0x13ff 0x300003 0x13ff 0x28 0x3b0002 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 2 7 java/lang/String 18 java/lang/String methods 0 +ciMethodData java/lang/String charAt (I)C 2 616950 orig 320 48 149 89 165 254 127 0 0 184 84 77 196 136 2 0 0 0 2 0 0 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 1 0 0 1 67 75 0 1 0 0 0 201 126 6 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 16 0 2 0 0 0 0 0 0 0 120 0 0 0 254 255 255 255 5 0 1 0 0 0 0 0 data 25 0x10005 0x96860 0x0 0x0 0x0 0x0 0x0 0x8000000600040007 0x1 0x30 0x96860 0xc0002 0x96860 0x150002 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/StringLatin1 charAt ([BI)C 2 605590 orig 320 48 149 89 165 254 127 0 0 248 130 98 196 136 2 0 0 200 1 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 1 0 0 1 224 73 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 8 0 2 0 0 0 0 0 0 0 80 0 0 0 254 255 255 255 7 0 1 0 0 0 0 0 data 18 0x10007 0x0 0x40 0x93c00 0x70007 0x93c00 0x30 0x0 0xf0002 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/StringUTF16 charAt ([BI)C 1 1 orig 320 48 149 89 165 254 127 0 0 248 14 104 196 136 2 0 0 168 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 0 0 0 254 255 255 255 2 0 2 0 0 0 0 0 data 14 0x20002 0x1 0x70002 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +ciMethod java/net/URLStreamHandlerFactory createURLStreamHandler (Ljava/lang/String;)Ljava/net/URLStreamHandler; 0 0 1 0 -1 +ciMethod sun/net/www/ParseUtil canonizeString (Ljava/lang/String;)Ljava/lang/String; 3089 1 3760 0 0 +ciMethod sun/net/www/ParseUtil doCanonize (Ljava/lang/String;)Ljava/lang/String; 0 0 1 0 -1 +ciMethod sun/net/www/protocol/file/Handler parseURL (Ljava/net/URL;Ljava/lang/String;II)V 2089 1 607 0 0 +ciMethod java/net/URLStreamHandler parseURL (Ljava/net/URL;Ljava/lang/String;II)V 2105 1 607 0 0 +ciMethod java/net/URLStreamHandler setURL (Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V 3073 1 4367 0 0 +ciMethod java/net/URLStreamHandler setURL (Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V 3089 1 3760 0 0 +ciMethod sun/net/util/IPAddressUtil isIPv6LiteralAddress (Ljava/lang/String;)Z 0 0 1 0 -1 +ciMethod sun/net/util/IPAddressUtil match (CJJ)Z 0 0 1 0 -1 +ciMethod sun/net/util/IPAddressUtil scan (Ljava/lang/String;JJ[C)I 3081 1 4709 0 0 +ciMethod sun/net/util/IPAddressUtil checkHostString (Ljava/lang/String;)Ljava/lang/String; 3081 1 4709 0 0 +ciMethodData java/lang/StringLatin1 indexOf ([BII)I 2 22306 orig 320 48 149 89 165 254 127 0 0 56 149 98 196 136 2 0 0 112 2 0 0 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 20 0 0 57 34 0 0 225 19 2 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 1 0 19 0 2 0 0 0 0 0 0 0 224 0 0 0 254 255 255 255 2 0 1 0 0 0 0 0 data 39 0x10002 0x447 0x40007 0x447 0x20 0x0 0xd0007 0x447 0x38 0x0 0x120003 0x0 0x38 0x170007 0x3ff 0x20 0x48 0x260007 0x3e1 0x58 0x429a 0x2f0007 0x427c 0x20 0x1e 0x380003 0x427c 0xffffffffffffffc0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/StringLatin1 canEncode (I)Z 2 234259 orig 320 48 149 89 165 254 127 0 0 168 131 98 196 136 2 0 0 144 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 198 0 0 0 105 146 28 0 1 0 0 0 115 101 2 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 6 0 2 0 0 0 0 0 0 0 56 0 0 0 254 255 255 255 7 0 4 0 6 0 0 128 data 11 0x8000000600040007 0x2 0x38 0x3924d 0x80003 0x3924d 0x18 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/lang/String length ()I 2 234340 orig 320 48 149 89 165 254 127 0 0 48 83 77 196 136 2 0 0 184 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 33 139 28 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 6 0 2 0 0 0 0 0 0 0 56 0 0 0 254 255 255 255 5 0 6 0 0 0 0 0 data 16 0x60005 0x39164 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/lang/String ([BB)V 2 44404 orig 320 48 149 89 165 254 127 0 0 232 160 77 196 136 2 0 0 144 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 1 0 0 81 99 5 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 3 0 2 0 0 0 0 0 0 0 16 0 0 0 254 255 255 255 2 0 1 0 0 0 0 0 data 11 0x10002 0xac6a 0x0 0x0 0x0 0x0 0x9 0x3 0xe 0x0 0x0 oops 0 methods 0 +ciMethodData java/util/Arrays copyOfRange ([BII)[B 2 6480 orig 320 48 149 89 165 254 127 0 0 176 114 100 196 136 2 0 0 208 2 0 0 16 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 121 194 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 18 0 2 0 0 0 0 0 0 0 64 1 0 0 254 255 255 255 7 0 5 0 0 0 0 0 data 51 0x50007 0x184f 0x120 0x0 0x100002 0x0 0x140005 0x0 0x0 0x0 0x0 0x0 0x0 0x190005 0x0 0x0 0x0 0x0 0x0 0x0 0x1d0005 0x0 0x0 0x0 0x0 0x0 0x0 0x200005 0x0 0x0 0x0 0x0 0x0 0x0 0x230002 0x0 0x360002 0x184f 0x390002 0x184f 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0xffffffffffffffff 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/StringLatin1 newString ([BII)Ljava/lang/String; 2 36705 orig 320 48 149 89 165 254 127 0 0 184 178 98 196 136 2 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 0 0 0 169 116 4 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 3 0 2 0 0 0 0 0 0 0 32 0 0 0 254 255 255 255 2 0 9 0 0 0 0 0 data 15 0x90002 0x8e95 0xd0002 0x8e95 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0x0 0x0 0x0 oops 0 methods 0 +ciMethod sun/net/www/protocol/jar/Handler indexOfBangSlash (Ljava/lang/String;)I 3089 1 3760 0 0 +ciMethod sun/net/www/protocol/jar/Handler checkNestedProtocol (Ljava/lang/String;)Ljava/lang/String; 2049 1 4038 0 0 +ciMethod sun/net/www/protocol/jar/Handler parseURL (Ljava/net/URL;Ljava/lang/String;II)V 3081 1 3760 0 0 +ciMethod sun/net/www/protocol/jar/Handler parseAbsoluteSpec (Ljava/lang/String;)Ljava/lang/String; 0 0 1 0 -1 +ciMethod sun/net/www/protocol/jar/Handler parseContextSpec (Ljava/net/URL;Ljava/lang/String;)Ljava/lang/String; 3089 1 3760 0 0 +ciMethodData java/lang/CharacterDataLatin1 getProperties (I)I 2 27403 orig 320 48 149 89 165 254 127 0 0 88 255 111 196 136 2 0 0 112 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 81 80 3 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 0 0 0 0 254 255 255 255 0 0 0 0 0 0 0 0 data 7 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/String indexOf (II)I 2 108921 orig 320 48 149 89 165 254 127 0 0 104 109 77 196 136 2 0 0 32 2 0 0 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 89 1 0 0 1 65 13 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 11 0 2 0 0 0 0 0 0 0 144 0 0 0 254 255 255 255 5 0 1 0 0 0 0 0 data 29 0x10005 0x1a820 0x0 0x0 0x0 0x0 0x0 0x40007 0x0 0x48 0x1a820 0xd0002 0x1a820 0x100003 0x1a820 0x28 0x190002 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/CharacterData of (I)Ljava/lang/CharacterData; 2 5581 orig 320 48 149 89 165 254 127 0 0 192 246 111 196 136 2 0 0 192 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 1 0 0 1 162 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 13 0 2 0 0 0 0 0 0 0 80 1 0 0 254 255 255 255 7 0 4 0 0 0 0 0 data 49 0x40007 0x0 0x20 0x1440 0xf0008 0x24 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x130 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/lang/Character toLowerCase (I)I 2 135273 orig 320 48 149 89 165 254 127 0 0 8 202 91 196 136 2 0 0 200 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 1 0 0 33 116 16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 3 0 2 0 0 0 0 0 0 0 72 0 0 0 254 255 255 255 2 0 1 0 0 0 0 0 data 18 0x10002 0x20e84 0x50005 0x0 0x0 0x288c82034c0 0x20e84 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 1 5 java/lang/CharacterDataLatin1 methods 0 +ciMethodData java/lang/CharacterDataLatin1 toLowerCase (I)I 2 9149 orig 320 48 149 89 165 254 127 0 0 32 12 112 196 136 2 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 233 13 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 8 0 2 0 0 0 0 0 0 0 120 0 0 0 254 255 255 255 5 0 4 0 0 0 0 0 data 25 0x40005 0x0 0x0 0x288c82034c0 0x21bd 0x0 0x0 0xc0007 0x1eba 0x40 0x303 0x150007 0x0 0x20 0x303 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 1 3 java/lang/CharacterDataLatin1 methods 0 +ciMethodData java/lang/StringLatin1 lastIndexOf ([BII)I 2 29881 orig 320 48 149 89 165 254 127 0 0 160 154 98 196 136 2 0 0 40 2 0 0 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 14 0 0 1 29 0 0 33 48 3 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 1 0 18 0 2 0 0 0 0 0 0 0 152 0 0 0 254 255 255 255 2 0 1 0 0 0 0 0 data 30 0x10002 0x3a0 0x40007 0x3a0 0x20 0x0 0xe0002 0x3a0 0x130007 0x23 0x58 0x6981 0x1b0007 0x6604 0x20 0x37d 0x230003 0x6604 0xffffffffffffffc0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/String isEmpty ()Z 2 19967 orig 320 48 149 89 165 254 127 0 0 232 83 77 196 136 2 0 0 168 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 241 103 2 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 6 0 2 0 0 0 0 0 0 0 56 0 0 0 254 255 255 255 7 0 5 0 0 0 0 0 data 14 0x50007 0x3e93 0x38 0xe6b 0x90003 0xe6b 0x18 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/lang/String checkBoundsBeginEnd (III)V 2 5397 orig 320 48 149 89 165 254 127 0 0 208 166 77 196 136 2 0 0 152 3 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 153 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 19 0 2 0 0 0 0 0 0 0 8 2 0 0 254 255 255 255 7 0 1 0 0 0 0 0 data 76 0x10007 0x0 0x60 0x1413 0x60007 0x0 0x40 0x1413 0xb0007 0x1413 0x1c8 0x0 0x160002 0x0 0x1b0005 0x0 0x0 0x0 0x0 0x0 0x0 0x1f0005 0x0 0x0 0x0 0x0 0x0 0x0 0x240005 0x0 0x0 0x0 0x0 0x0 0x0 0x280005 0x0 0x0 0x0 0x0 0x0 0x0 0x2d0005 0x0 0x0 0x0 0x0 0x0 0x0 0x310005 0x0 0x0 0x0 0x0 0x0 0x0 0x340005 0x0 0x0 0x0 0x0 0x0 0x0 0x370002 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/String substring (II)Ljava/lang/String; 2 6456 orig 320 48 149 89 165 254 127 0 0 136 119 77 196 136 2 0 0 168 2 0 0 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 1 0 0 121 193 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 20 0 2 0 0 0 0 0 0 0 24 1 0 0 254 255 255 255 5 0 1 0 0 0 0 0 data 46 0x10005 0x182f 0x0 0x0 0x0 0x0 0x0 0x80002 0x182f 0x110007 0x5a1 0x40 0x128e 0x160007 0x10f7 0x20 0x197 0x1c0005 0x1698 0x0 0x0 0x0 0x0 0x0 0x1f0007 0x0 0x48 0x1698 0x290002 0x1698 0x2c0003 0x1698 0x28 0x360002 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/Character toUpperCase (C)C 2 11693 orig 320 48 149 89 165 254 127 0 0 184 202 91 196 136 2 0 0 144 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 0 0 73 101 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 3 0 2 0 0 0 0 0 0 0 16 0 0 0 254 255 255 255 2 0 1 0 0 0 0 0 data 11 0x10002 0x2ca9 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/lang/Character toUpperCase (I)I 2 11693 orig 320 48 149 89 165 254 127 0 0 104 203 91 196 136 2 0 0 200 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 0 0 73 101 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 3 0 2 0 0 0 0 0 0 0 72 0 0 0 254 255 255 255 2 0 1 0 0 0 0 0 data 18 0x10002 0x2ca9 0x50005 0x0 0x0 0x288c82034c0 0x2ca9 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 1 5 java/lang/CharacterDataLatin1 methods 0 +ciMethodData java/lang/String lastIndexOf (I)I 2 32572 orig 320 48 149 89 165 254 127 0 0 40 110 77 196 136 2 0 0 248 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 209 241 3 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 16 0 2 0 0 0 0 0 0 0 112 0 0 0 254 255 255 255 5 0 3 0 0 0 0 0 data 24 0x30005 0x7e3a 0x0 0x0 0x0 0x0 0x0 0x80005 0x7e3a 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/String lastIndexOf (II)I 2 34897 orig 320 48 149 89 165 254 127 0 0 8 111 77 196 136 2 0 0 32 2 0 0 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 1 0 0 193 57 4 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 11 0 2 0 0 0 0 0 0 0 144 0 0 0 254 255 255 255 5 0 1 0 0 0 0 0 data 29 0x10005 0x8738 0x0 0x0 0x0 0x0 0x0 0x40007 0x0 0x48 0x8738 0xd0002 0x8738 0x100003 0x8738 0x28 0x190002 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/String startsWith (Ljava/lang/String;I)Z 2 15968 orig 320 48 149 89 165 254 127 0 0 112 105 77 196 136 2 0 0 64 4 0 0 64 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 7 0 0 89 102 0 0 113 179 1 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 2 0 50 0 2 0 0 0 0 0 0 0 176 2 0 0 254 255 255 255 7 0 1 0 0 0 0 0 data 97 0x10007 0xa 0xb0 0xcc1 0x60005 0xcc1 0x0 0x0 0x0 0x0 0x0 0xa0005 0xcc1 0x0 0x0 0x0 0x0 0x0 0xe0007 0xcbd 0x20 0x4 0x270005 0xcbd 0x0 0x0 0x0 0x0 0x0 0x2b0005 0xcbd 0x0 0x0 0x0 0x0 0x0 0x2e0007 0x0 0xe8 0xcbd 0x320005 0xcbd 0x0 0x0 0x0 0x0 0x0 0x350007 0x0 0x38 0xcbd 0x390003 0xcbd 0x18 0x450007 0x34f 0x40 0x3fdc 0x570007 0x366e 0xffffffffffffffe0 0x96e 0x5c0003 0x34f 0xc0 0x600005 0x0 0x0 0x0 0x0 0x0 0x0 0x630007 0x0 0x20 0x0 0x6c0007 0x0 0x50 0x0 0x740002 0x0 0x830007 0x0 0xffffffffffffffd0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/Class getName ()Ljava/lang/String; 2 12719 orig 320 48 149 89 165 254 127 0 0 88 11 78 196 136 2 0 0 240 1 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 121 133 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 6 0 2 0 0 0 0 0 0 0 112 0 0 0 254 255 255 255 7 0 6 0 0 0 0 0 data 23 0x60007 0xf08 0x38 0x21a7 0xa0003 0x21a7 0x50 0xe0005 0xf08 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/lang/Character toLowerCase (C)C 2 15441 orig 320 48 149 89 165 254 127 0 0 88 201 91 196 136 2 0 0 144 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 1 0 0 97 214 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 3 0 2 0 0 0 0 0 0 0 16 0 0 0 254 255 255 255 2 0 1 0 0 0 0 0 data 11 0x10002 0x3acc 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/lang/String startsWith (Ljava/lang/String;)Z 2 20042 orig 320 48 149 89 165 254 127 0 0 40 106 77 196 136 2 0 0 192 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 0 0 57 106 2 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 3 0 2 0 0 0 0 0 0 0 56 0 0 0 254 255 255 255 5 0 3 0 0 0 0 0 data 17 0x30005 0x4d47 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/CharacterDataLatin1 toUpperCase (I)I 2 5755 orig 320 48 149 89 165 254 127 0 0 48 13 112 196 136 2 0 0 56 2 0 0 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 130 1 0 0 201 167 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 10 0 2 0 0 0 0 0 0 0 176 0 0 0 254 255 255 255 5 0 4 0 0 0 0 0 data 32 0x40005 0x0 0x0 0x288c82034c0 0x14f9 0x0 0x0 0xc0007 0x1df 0x78 0x131a 0x150007 0x0 0x38 0x131a 0x250003 0x131a 0x38 0x2c0007 0x0 0x20 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 1 3 java/lang/CharacterDataLatin1 methods 0 +ciMethodData java/lang/String toLowerCase (Ljava/util/Locale;)Ljava/lang/String; 2 14530 orig 320 48 149 89 165 254 127 0 0 216 133 77 196 136 2 0 0 24 2 0 0 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 17 190 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 11 0 2 0 0 0 0 0 0 0 144 0 0 0 254 255 255 255 5 0 1 0 0 0 0 0 data 28 0x10005 0x37c2 0x0 0x0 0x0 0x0 0x0 0x40007 0x0 0x48 0x37c2 0xd0002 0x37c2 0x100003 0x37c2 0x28 0x190002 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0xffffffffffffffff 0xffffffffffffffff oops 0 methods 0 +ciMethodData java/lang/StringUTF16 toLowerCase (Ljava/lang/String;[BLjava/util/Locale;)Ljava/lang/String; 1 0 orig 320 48 149 89 165 254 127 0 0 248 240 103 196 136 2 0 0 24 5 0 0 104 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 3 0 0 254 255 255 255 7 0 1 0 0 0 0 0 data 124 0x10007 0x0 0x30 0x0 0x80002 0x0 0x1a0007 0x0 0xd8 0x0 0x1f0002 0x0 0x270002 0x0 0x2a0007 0x0 0x38 0x0 0x300003 0x0 0x78 0x370002 0x0 0x3a0007 0x0 0x38 0x0 0x3d0003 0x0 0x30 0x430003 0x0 0xffffffffffffff40 0x490007 0x0 0x20 0x0 0x5c0002 0x0 0x600005 0x0 0x0 0x0 0x0 0x0 0x0 0x690007 0x0 0x60 0x0 0x700007 0x0 0x40 0x0 0x770007 0x0 0x30 0x0 0x810002 0x0 0x870007 0x0 0x30 0x0 0x910002 0x0 0x9f0007 0x0 0x138 0x0 0xa50002 0x0 0xaf0007 0x0 0x50 0x0 0xb50002 0x0 0xb80007 0x0 0x30 0x0 0xc30002 0x0 0xcc0007 0x0 0x30 0x0 0xd70002 0x0 0xdd0002 0x0 0xe40002 0x0 0xe70007 0x0 0x30 0x0 0xf20002 0x0 0x1030002 0x0 0x1090003 0x0 0xfffffffffffffee0 0x1110007 0x0 0x30 0x0 0x11b0002 0x0 0x1240002 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/String substring (I)Ljava/lang/String; 2 7382 orig 320 48 149 89 165 254 127 0 0 112 118 77 196 136 2 0 0 208 2 0 0 152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 29 1 0 0 201 221 0 0 1 0 0 0 181 20 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 21 0 2 0 0 0 0 0 0 0 72 1 0 0 254 255 255 255 7 0 1 0 0 0 0 0 data 51 0x10007 0x1bb9 0x30 0x0 0x90002 0x0 0xe0005 0x1bb9 0x0 0x0 0x0 0x0 0x0 0x150007 0x1bb9 0x30 0x0 0x1d0002 0x0 0x8000000600220007 0x1bb8 0x20 0x2 0x280005 0x1bb8 0x0 0x0 0x0 0x0 0x0 0x2b0007 0x0 0x48 0x1bb8 0x340002 0x1bb8 0x370003 0x1bb8 0x28 0x400002 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/String replace (CC)Ljava/lang/String; 2 5408 orig 320 48 149 89 165 254 127 0 0 208 122 77 196 136 2 0 0 96 2 0 0 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 5 1 0 0 217 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 16 0 2 0 0 0 0 0 0 0 208 0 0 0 254 255 255 255 7 0 2 0 0 0 0 0 data 37 0x20007 0x0 0xd0 0x141b 0x60005 0x141b 0x0 0x0 0x0 0x0 0x0 0x90007 0x0 0x48 0x141b 0x120002 0x141b 0x150003 0x141b 0x28 0x1e0002 0x0 0x230007 0x301 0x20 0x111a 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/StringLatin1 regionMatchesCI ([BI[BII)Z 2 5378 orig 320 48 149 89 165 254 127 0 0 8 158 98 196 136 2 0 0 168 2 0 0 152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 9 160 0 0 33 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 1 0 12 0 2 0 0 0 0 0 0 0 8 1 0 0 254 255 255 255 7 0 9 0 0 0 0 0 data 46 0x90007 0x129 0x108 0x177c 0x2a0007 0x12d8 0x38 0x4a4 0x2d0003 0x4a4 0xffffffffffffffc0 0x320002 0x12d8 0x390002 0x12d8 0x420007 0x12d8 0x38 0x0 0x450003 0x0 0xffffffffffffff68 0x4a0002 0x12d8 0x4f0002 0x12d8 0x520007 0x12d8 0x38 0x0 0x550003 0x0 0xffffffffffffff10 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x5 0x0 0x0 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/String regionMatches (ZILjava/lang/String;II)Z 2 5435 orig 320 48 149 89 165 254 127 0 0 216 103 77 196 136 2 0 0 160 4 0 0 208 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 1 0 0 161 161 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 46 0 2 0 0 0 0 0 0 0 248 2 0 0 254 255 255 255 7 0 1 0 0 0 0 0 data 109 0x10007 0x1434 0x58 0x0 0xb0005 0x0 0x0 0x0 0x0 0x0 0x0 0x110007 0x0 0xf0 0x1434 0x150007 0x0 0xd0 0x1434 0x1b0005 0x1434 0x0 0x0 0x0 0x0 0x0 0x240007 0x0 0x78 0x1434 0x2b0005 0x1434 0x0 0x0 0x0 0x0 0x0 0x340007 0x1434 0x20 0x0 0x460005 0x1434 0x0 0x0 0x0 0x0 0x0 0x4a0005 0x1434 0x0 0x0 0x0 0x0 0x0 0x4d0007 0x0 0xb0 0x1434 0x510005 0x1434 0x0 0x0 0x0 0x0 0x0 0x540007 0x0 0x48 0x1434 0x600002 0x1434 0x630003 0x1434 0x28 0x6f0002 0x0 0x740005 0x0 0x0 0x0 0x0 0x0 0x0 0x770007 0x0 0x48 0x0 0x830002 0x0 0x860003 0x0 0x28 0x920002 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x6 0xffffffffffffffff 0x0 0x0 0xffffffffffffffff 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/Character isLetterOrDigit (C)Z 2 1755 orig 320 48 149 89 165 254 127 0 0 240 189 91 196 136 2 0 0 144 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 1 0 0 177 46 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 7 0 2 0 0 0 0 0 0 0 16 0 0 0 254 255 255 255 2 0 1 0 0 0 0 0 data 11 0x10002 0x5d6 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/lang/Character isLetterOrDigit (I)Z 2 1755 orig 320 48 149 89 165 254 127 0 0 176 190 91 196 136 2 0 0 200 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 1 0 0 177 46 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 6 0 2 0 0 0 0 0 0 0 72 0 0 0 254 255 255 255 2 0 4 0 0 0 0 0 data 18 0x40002 0x5d6 0xa0007 0x0 0x38 0x5d6 0xe0003 0x5d6 0x18 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/lang/Character getType (I)I 2 2340 orig 320 48 149 89 165 254 127 0 0 32 214 91 196 136 2 0 0 200 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 1 0 0 33 62 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 0 0 0 254 255 255 255 2 0 1 0 0 0 0 0 data 18 0x10002 0x7c4 0x50005 0x0 0x0 0x288c82034c0 0x7c4 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 1 5 java/lang/CharacterDataLatin1 methods 0 +ciMethodData java/lang/CharacterDataLatin1 getType (I)I 2 2340 orig 320 48 149 89 165 254 127 0 0 248 6 112 196 136 2 0 0 192 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 132 1 0 0 1 61 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 3 0 2 0 0 0 0 0 0 0 56 0 0 0 254 255 255 255 5 0 2 0 0 0 0 0 data 17 0x20005 0x0 0x0 0x288c82034c0 0x7a0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 1 3 java/lang/CharacterDataLatin1 methods 0 +ciMethodData java/net/URL isBuiltinStreamHandler (Ljava/net/URLStreamHandler;)Z 2 4710 orig 320 48 149 89 165 254 127 0 0 104 6 90 196 136 2 0 0 208 2 0 0 16 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 49 139 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 1 0 52 0 2 0 0 0 0 0 0 0 72 1 0 0 254 255 255 255 5 0 1 0 0 0 0 0 data 51 0x10005 0x1166 0x0 0x0 0x0 0x0 0x0 0x70005 0x1166 0x0 0x0 0x0 0x0 0x0 0xa0005 0x1166 0x0 0x0 0x0 0x0 0x0 0xd0007 0x1166 0x88 0x0 0x110005 0x0 0x0 0x0 0x0 0x0 0x0 0x140002 0x0 0x170007 0x0 0x38 0x0 0x1b0003 0x1166 0x18 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +ciMethodData java/net/URL isBuiltinStreamHandler (Ljava/lang/String;)Z 2 4710 orig 320 48 149 89 165 254 127 0 0 32 7 90 196 136 2 0 0 192 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 49 139 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 3 0 2 0 0 0 0 0 0 0 56 0 0 0 254 255 255 255 5 0 3 0 0 0 0 0 data 17 0x30005 0x1166 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +ciMethodData java/net/URL toLowerCase (Ljava/lang/String;)Ljava/lang/String; 1 925 orig 320 48 149 89 165 254 127 0 0 200 250 89 196 136 2 0 0 192 2 0 0 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 233 20 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 19 0 2 0 0 0 0 0 0 0 64 1 0 0 254 255 255 255 5 0 3 0 0 0 0 0 data 49 0x30005 0x29d 0x0 0x0 0x0 0x0 0x0 0x60007 0x0 0xd0 0x29d 0xc0005 0x29d 0x0 0x0 0x0 0x0 0x0 0xf0007 0x1e8 0x78 0xb5 0x150005 0xb5 0x0 0x0 0x0 0x0 0x0 0x180007 0x0 0x20 0xb5 0x210005 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/net/URL getURLStreamHandler (Ljava/lang/String;)Ljava/net/URLStreamHandler; 1 925 orig 320 48 149 89 165 254 127 0 0 200 253 89 196 136 2 0 0 152 5 0 0 192 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 233 20 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 48 0 2 0 0 0 0 0 0 0 16 4 0 0 254 255 255 255 5 0 4 0 0 0 0 0 data 140 0x40005 0x0 0x0 0x288c4e4ae40 0x29d 0x0 0x0 0x70004 0x0 0x0 0x288c86f0900 0xb5 0x288c86f09b0 0x1e8 0xc0007 0x0 0x20 0x29d 0x140002 0x0 0x1b0007 0x0 0x160 0x0 0x1e0002 0x0 0x210007 0x0 0x130 0x0 0x290007 0x0 0x58 0x0 0x2e0005 0x0 0x0 0x0 0x0 0x0 0x0 0x370007 0x0 0x88 0x0 0x3d0005 0x0 0x0 0x0 0x0 0x0 0x0 0x400007 0x0 0x30 0x0 0x440002 0x0 0x490007 0x0 0x30 0x0 0x4d0002 0x0 0x520007 0x0 0x58 0x0 0x590005 0x0 0x0 0x0 0x0 0x0 0x0 0x6d0005 0x0 0x0 0x0 0x0 0x0 0x0 0x700004 0x0 0x0 0x0 0x0 0x0 0x0 0x770007 0x0 0x20 0x0 0x820007 0x0 0x98 0x0 0x860007 0x0 0x78 0x0 0x8e0007 0x0 0x58 0x0 0x930005 0x0 0x0 0x0 0x0 0x0 0x0 0x9c0007 0x0 0x20 0x0 0xa30007 0x0 0x58 0x0 0xab0005 0x0 0x0 0x0 0x0 0x0 0x0 0xb20003 0x0 0x18 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 3 3 java/util/Hashtable 10 sun/net/www/protocol/jar/Handler 12 sun/net/www/protocol/file/Handler methods 0 +ciMethodData sun/net/util/IPAddressUtil checkHostString (Ljava/lang/String;)Ljava/lang/String; 2 4709 orig 320 48 149 89 165 254 127 0 0 48 98 120 196 136 2 0 0 208 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 1 0 0 33 135 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 30 0 2 0 0 0 0 0 0 0 80 1 0 0 254 255 255 255 7 0 1 0 0 0 0 0 data 51 0x10007 0x10e4 0x20 0x0 0x100002 0x10e4 0x150007 0x10e4 0x120 0x0 0x1c0002 0x0 0x210005 0x0 0x0 0x0 0x0 0x0 0x0 0x260005 0x0 0x0 0x0 0x0 0x0 0x0 0x290002 0x0 0x2c0005 0x0 0x0 0x0 0x0 0x0 0x0 0x2f0005 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData sun/net/util/IPAddressUtil scan (Ljava/lang/String;JJ[C)I 2 4709 orig 320 48 149 89 165 254 127 0 0 232 90 120 196 136 2 0 0 48 3 0 0 80 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 1 0 0 33 135 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 1 0 38 0 2 0 0 0 0 0 0 0 136 1 0 0 254 255 255 255 7 0 4 0 0 0 0 0 data 63 0x40007 0x0 0x78 0x10e4 0x80005 0x10e4 0x0 0x0 0x0 0x0 0x0 0xe0007 0x0 0x20 0x10e4 0x230007 0x0 0xf0 0x0 0x290005 0x0 0x0 0x0 0x0 0x0 0x0 0x310002 0x0 0x370007 0x0 0x88 0x0 0x3e0007 0x0 0xffffffffffffff78 0x0 0x450002 0x0 0x490007 0x0 0xffffffffffffff48 0x0 0x4f0003 0x0 0x18 0x540007 0x0 0x20 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x6 0x0 0x0 0x0 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/net/URL (Ljava/net/URL;Ljava/lang/String;Ljava/net/URLStreamHandler;)V 2 14833 orig 320 48 149 89 165 254 127 0 0 88 223 89 196 136 2 0 0 152 11 0 0 160 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 3 0 0 49 129 0 0 1 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 3 0 169 0 2 0 0 0 0 0 0 0 144 9 0 0 254 255 255 255 2 0 1 0 0 0 0 0 data 332 0x10002 0x1026 0x1e0007 0x1026 0x88 0x0 0x210002 0x0 0x280007 0x0 0x58 0x0 0x2e0005 0x0 0x0 0x0 0x0 0x0 0x0 0x320005 0x1026 0x0 0x0 0x0 0x0 0x0 0x390007 0x0 0x90 0x1026 0x410005 0x1026 0x0 0x0 0x0 0x0 0x0 0x460007 0x1026 0x38 0x0 0x4c0003 0x0 0xffffffffffffff88 0x530007 0x0 0x90 0x1026 0x590005 0x1026 0x0 0x0 0x0 0x0 0x0 0x5e0007 0x1026 0x38 0x0 0x640003 0x0 0xffffffffffffff88 0x6f0005 0x1026 0x0 0x0 0x0 0x0 0x0 0x720007 0x1026 0x20 0x0 0x7b0005 0x1026 0x0 0x0 0x0 0x0 0x0 0x7e0007 0x0 0x78 0x1026 0x840005 0x1026 0x0 0x0 0x0 0x0 0x0 0x890007 0x1026 0x20 0x0 0x950007 0x0 0x188 0x4626 0x9c0007 0xf 0x168 0x4617 0xa20005 0x4617 0x0 0x0 0x0 0x0 0x0 0xaa0007 0xe30 0x110 0x37e7 0xb10007 0x3600 0xd8 0x1e7 0xb90005 0x1e7 0x0 0x0 0x0 0x0 0x0 0xbc0002 0x1e7 0xc40005 0x1e7 0x0 0x0 0x0 0x0 0x0 0xc70007 0x0 0x50 0x1e7 0xd40003 0x1e7 0x30 0xda0003 0x3600 0xfffffffffffffe90 0xe40007 0x1e7 0x150 0xe3f 0xe90007 0xe3f 0x78 0x0 0xf20005 0x0 0x0 0x0 0x0 0x0 0x0 0xf50007 0x0 0xd8 0x0 0xf90007 0x0 0x20 0xe3f 0x1050007 0x0 0x78 0xe3f 0x10e0005 0xe3f 0x0 0x0 0x0 0x0 0x0 0x1110007 0xe36 0x20 0x9 0x1190007 0x0 0x20 0xe3f 0x15b0007 0x1026 0xe8 0x0 0x1660002 0x0 0x16b0005 0x0 0x0 0x0 0x0 0x0 0x0 0x1700005 0x0 0x0 0x0 0x0 0x0 0x0 0x1730005 0x0 0x0 0x0 0x0 0x0 0x0 0x1760002 0x0 0x17b0007 0xe3f 0x118 0x1e7 0x1820002 0x1e7 0x1870007 0x1e7 0xe8 0x0 0x1920002 0x0 0x1970005 0x0 0x0 0x0 0x0 0x0 0x0 0x19e0005 0x0 0x0 0x0 0x0 0x0 0x0 0x1a10005 0x0 0x0 0x0 0x0 0x0 0x0 0x1a40002 0x0 0x1b20005 0x1026 0x0 0x0 0x0 0x0 0x0 0x1b90007 0x1026 0x58 0x0 0x1c40005 0x0 0x0 0x0 0x0 0x0 0x0 0x1d00007 0x1e7 0x60 0xe3f 0x1d70007 0xe3f 0x40 0x0 0x1e60007 0x0 0x20 0x0 0x1f80005 0x0 0x0 0x288c86f0900 0xe36 0x288c86f09b0 0x1f0 0x1fb0003 0x1026 0x98 0x20b0005 0x0 0x0 0x0 0x0 0x0 0x0 0x20e0002 0x0 0x2170005 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x4 0x0 0x0 0x0 0x0 oops 2 283 sun/net/www/protocol/jar/Handler 285 sun/net/www/protocol/file/Handler methods 0 +ciMethodData sun/net/www/protocol/jar/Handler checkNestedProtocol (Ljava/lang/String;)Ljava/lang/String; 2 4040 orig 320 48 149 89 165 254 127 0 0 128 154 143 196 136 2 0 0 224 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 65 118 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 5 0 2 0 0 0 0 0 0 0 88 0 0 0 254 255 255 255 5 0 7 0 0 0 0 0 data 21 0x70005 0xec8 0x0 0x0 0x0 0x0 0x0 0xa0007 0xec8 0x20 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +ciMethodData java/lang/String indexOf (Ljava/lang/String;)I 2 4195 orig 320 48 149 89 165 254 127 0 0 0 112 77 196 136 2 0 0 16 3 0 0 88 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 25 123 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 38 0 2 0 0 0 0 0 0 0 136 1 0 0 254 255 255 255 5 0 1 0 0 0 0 0 data 59 0x10005 0xf63 0x0 0x0 0x0 0x0 0x0 0x50005 0xf63 0x0 0x0 0x0 0x0 0x0 0x80007 0x0 0xb0 0xf63 0xc0005 0xf63 0x0 0x0 0x0 0x0 0x0 0xf0007 0x0 0x48 0xf63 0x1a0002 0xf63 0x1d0003 0xf63 0x28 0x280002 0x0 0x2d0005 0x0 0x0 0x0 0x0 0x0 0x0 0x300007 0x0 0x20 0x0 0x3d0002 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +ciMethodData java/net/URL isValidProtocol (Ljava/lang/String;)Z 1 1755 orig 320 48 149 89 165 254 127 0 0 24 226 89 196 136 2 0 0 72 3 0 0 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 38 1 0 0 57 15 0 0 169 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 1 0 59 0 2 0 0 0 0 0 0 0 192 1 0 0 254 255 255 255 5 0 1 0 0 0 0 0 data 66 0x10005 0x1e7 0x0 0x0 0x0 0x0 0x0 0x70007 0x1e7 0x20 0x0 0xe0005 0x1e7 0x0 0x0 0x0 0x0 0x0 0x130002 0x1e7 0x160007 0x1e7 0x20 0x0 0x210007 0x1e7 0x100 0x5b5 0x270005 0x5b5 0x0 0x0 0x0 0x0 0x0 0x2c0002 0x5b5 0x2f0007 0x5b5 0x80 0x0 0x350007 0x0 0x60 0x0 0x3b0007 0x0 0x40 0x0 0x410007 0x0 0x20 0x0 0x490003 0x5b5 0xffffffffffffff18 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x2 0x0 0x0 oops 0 methods 0 +ciMethodData java/net/URLStreamHandler setURL (Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V 2 4369 orig 320 48 149 89 165 254 127 0 0 168 51 120 196 136 2 0 0 32 3 0 0 216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 1 0 0 137 124 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 40 0 2 0 0 0 0 0 0 0 88 1 0 0 254 255 255 255 7 0 5 0 0 0 0 0 data 61 0x50007 0xf91 0x30 0x0 0xe0002 0x0 0x130007 0x0 0xb8 0xf91 0x180005 0xf91 0x0 0x0 0x0 0x0 0x0 0x1b0007 0x0 0x60 0xf91 0x1f0002 0xf91 0x260007 0xf91 0x30 0x0 0x2f0002 0x0 0x350005 0xf91 0x0 0x0 0x0 0x0 0x0 0x450005 0xf91 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0xa 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/net/URL set (Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V 2 4369 orig 320 48 149 89 165 254 127 0 0 8 230 89 196 136 2 0 0 24 3 0 0 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 1 0 0 137 124 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 19 0 2 0 0 0 0 0 0 0 64 1 0 0 254 255 255 255 7 0 23 0 0 0 0 0 data 60 0x170007 0x0 0x38 0xf91 0x1c0003 0xf91 0x108 0x230002 0x0 0x280005 0x0 0x0 0x0 0x0 0x0 0x0 0x2d0005 0x0 0x0 0x0 0x0 0x0 0x0 0x320005 0x0 0x0 0x0 0x0 0x0 0x0 0x350005 0x0 0x0 0x0 0x0 0x0 0x0 0x660003 0xf91 0x18 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x9 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData sun/net/www/protocol/jar/Handler parseURL (Ljava/net/URL;Ljava/lang/String;II)V 2 3760 orig 320 48 149 89 165 254 127 0 0 176 156 143 196 136 2 0 0 136 6 0 0 120 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 1 0 0 121 105 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 50 0 2 0 0 0 0 0 0 0 232 4 0 0 254 255 255 255 5 0 11 0 0 0 0 0 data 170 0xb0005 0xd2f 0x0 0x0 0x0 0x0 0x0 0x130007 0xd2f 0x38 0x0 0x170003 0x0 0x18 0x200007 0xd2f 0xe8 0x0 0x290005 0x0 0x0 0x0 0x0 0x0 0x0 0x2c0005 0x0 0x0 0x0 0x0 0x0 0x0 0x330007 0x0 0x58 0x0 0x370005 0x0 0x0 0x0 0x0 0x0 0x0 0x3d0005 0xd2f 0x0 0x0 0x0 0x0 0x0 0x410007 0x0 0x70 0xd2f 0x4b0005 0xd2f 0x0 0x0 0x0 0x0 0x0 0x4e0003 0xd2f 0x18 0x580005 0xd2f 0x0 0x0 0x0 0x0 0x0 0x5e0005 0x0 0x0 0x288c86f0900 0xd2f 0x0 0x0 0x650007 0xd2f 0x30 0x0 0x6e0002 0x0 0x740007 0xd2f 0x70 0x0 0x790005 0x0 0x0 0x0 0x0 0x0 0x0 0x7e0003 0x0 0x1b8 0x830007 0x0 0x1a0 0xd2f 0x890005 0xd2a 0x0 0x288c86f0900 0x5 0x0 0x0 0x900002 0xd2f 0x9a0005 0xd2f 0x0 0x0 0x0 0x0 0x0 0xa30005 0xd2f 0x0 0x0 0x0 0x0 0x0 0xaa0002 0xd2f 0xb30002 0xd2f 0xb80005 0xd2e 0x0 0x0 0x0 0x0 0x0 0xbd0005 0xd2e 0x0 0x0 0x0 0x0 0x0 0xc00005 0xd2e 0x0 0x0 0x0 0x0 0x0 0xd00005 0x0 0x0 0x288c86f0900 0xd2f 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x5 0x0 0x0 0x0 0x0 0x0 oops 3 74 sun/net/www/protocol/jar/Handler 105 sun/net/www/protocol/jar/Handler 153 sun/net/www/protocol/jar/Handler methods 0 +ciMethodData sun/net/www/protocol/jar/Handler parseContextSpec (Ljava/net/URL;Ljava/lang/String;)Ljava/lang/String; 2 3762 orig 320 48 149 89 165 254 127 0 0 120 159 143 196 136 2 0 0 8 6 0 0 136 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 130 1 0 0 129 105 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 67 0 2 0 0 0 0 0 0 0 120 4 0 0 254 255 255 255 5 0 1 0 0 0 0 0 data 154 0x10005 0xd30 0x0 0x0 0x0 0x0 0x0 0x80005 0xd30 0x0 0x0 0x0 0x0 0x0 0xb0007 0xd30 0x1a0 0x0 0xf0002 0x0 0x170007 0x0 0x120 0x0 0x220002 0x0 0x270005 0x0 0x0 0x0 0x0 0x0 0x0 0x2b0005 0x0 0x0 0x0 0x0 0x0 0x0 0x300005 0x0 0x0 0x0 0x0 0x0 0x0 0x330005 0x0 0x0 0x0 0x0 0x0 0x0 0x360002 0x0 0x3e0005 0x0 0x0 0x0 0x0 0x0 0x0 0x420003 0x0 0x1c8 0x480005 0xd30 0x0 0x0 0x0 0x0 0x0 0x500007 0xd30 0xe8 0x0 0x5b0002 0x0 0x600005 0x0 0x0 0x0 0x0 0x0 0x0 0x640005 0x0 0x0 0x0 0x0 0x0 0x0 0x670005 0x0 0x0 0x0 0x0 0x0 0x0 0x6a0002 0x0 0x710005 0xd30 0x0 0x0 0x0 0x0 0x0 0x760007 0xd30 0x58 0x0 0x7f0005 0x0 0x0 0x0 0x0 0x0 0x0 0x870002 0xd30 0x8b0005 0xd30 0x0 0x0 0x0 0x0 0x0 0x8f0005 0xd30 0x0 0x0 0x0 0x0 0x0 0x920005 0xd30 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x3 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData sun/net/www/protocol/jar/Handler indexOfBangSlash (Ljava/lang/String;)I 2 3762 orig 320 48 149 89 165 254 127 0 0 32 150 143 196 136 2 0 0 216 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 130 1 0 0 129 105 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 1 0 42 0 2 0 0 0 0 0 0 0 88 1 0 0 254 255 255 255 5 0 1 0 0 0 0 0 data 52 0x10005 0xd30 0x0 0x0 0x0 0x0 0x0 0x90005 0xd30 0x0 0x0 0x0 0x0 0x0 0xf0007 0x0 0xe8 0xd30 0x140005 0xd30 0x0 0x0 0x0 0x0 0x0 0x190007 0x0 0x78 0xd30 0x200005 0xd30 0x0 0x0 0x0 0x0 0x0 0x250007 0x0 0x20 0xd30 0x2f0003 0x0 0xfffffffffffffef8 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData sun/net/www/ParseUtil canonizeString (Ljava/lang/String;)Ljava/lang/String; 2 3762 orig 320 48 149 89 165 254 127 0 0 136 223 119 196 136 2 0 0 152 2 0 0 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 130 1 0 0 129 105 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 29 0 2 0 0 0 0 0 0 0 24 1 0 0 254 255 255 255 5 0 1 0 0 0 0 0 data 44 0x10005 0xd30 0x0 0x0 0x0 0x0 0x0 0x60007 0x0 0xd0 0xd30 0xc0005 0xd30 0x0 0x0 0x0 0x0 0x0 0x100007 0x0 0x78 0xd30 0x170005 0xd30 0x0 0x0 0x0 0x0 0x0 0x1c0007 0x0 0x20 0xd30 0x220002 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/net/URLStreamHandler setURL (Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V 2 3762 orig 320 48 149 89 165 254 127 0 0 152 53 120 196 136 2 0 0 80 5 0 0 80 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 130 1 0 0 129 105 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 58 0 2 0 0 0 0 0 0 0 160 3 0 0 254 255 255 255 7 0 7 0 0 0 0 0 data 131 0x70007 0x0 0x268 0xd30 0xb0005 0xd30 0x0 0x0 0x0 0x0 0x0 0xe0007 0xd30 0x210 0x0 0x140007 0x0 0x38 0x0 0x180003 0x0 0x108 0x1f0002 0x0 0x230005 0x0 0x0 0x0 0x0 0x0 0x0 0x280005 0x0 0x0 0x0 0x0 0x0 0x0 0x2d0005 0x0 0x0 0x0 0x0 0x0 0x0 0x300005 0x0 0x0 0x0 0x0 0x0 0x0 0x380005 0x0 0x0 0x0 0x0 0x0 0x0 0x400007 0x0 0x90 0x0 0x470005 0x0 0x0 0x0 0x0 0x0 0x0 0x510005 0x0 0x0 0x0 0x0 0x0 0x0 0x5d0007 0x0 0x100 0xd30 0x640005 0xd30 0x0 0x0 0x0 0x0 0x0 0x6c0007 0xd30 0xa8 0x0 0x750005 0x0 0x0 0x0 0x0 0x0 0x0 0x7f0005 0x0 0x0 0x0 0x0 0x0 0x0 0x840003 0x0 0x18 0x9b0005 0x0 0x0 0x288c86f0900 0xd30 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x7 0x0 0x0 0x0 0x0 0x0 0x0 0x0 oops 1 112 sun/net/www/protocol/jar/Handler methods 0 +ciMethodData java/lang/Character isLetter (C)Z 1 585 orig 320 48 149 89 165 254 127 0 0 128 188 91 196 136 2 0 0 144 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 0 0 0 33 11 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 254 255 255 255 2 0 1 0 0 0 0 0 data 11 0x10002 0x164 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData java/lang/Character isLetter (I)Z 1 585 orig 320 48 149 89 165 254 127 0 0 64 189 91 196 136 2 0 0 200 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 0 0 0 33 11 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 0 0 0 254 255 255 255 2 0 3 0 0 0 0 0 data 18 0x30002 0x164 0x90007 0x0 0x38 0x164 0xd0003 0x164 0x18 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x1 0x0 oops 0 methods 0 +ciMethodData sun/net/www/protocol/file/Handler parseURL (Ljava/net/URL;Ljava/lang/String;II)V 1 607 orig 320 48 149 89 165 254 127 0 0 200 16 120 196 136 2 0 0 232 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 1 0 0 209 10 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 0 0 3 0 2 0 0 0 0 0 0 0 72 0 0 0 254 255 255 255 5 0 8 0 0 0 0 0 data 22 0x80005 0x15a 0x0 0x0 0x0 0x0 0x0 0xe0002 0x15a 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x5 0x0 0x0 0x0 0x0 0x0 oops 0 methods 0 +ciMethodData java/net/URLStreamHandler parseURL (Ljava/net/URL;Ljava/lang/String;II)V 1 607 orig 320 48 149 89 165 254 127 0 0 216 41 120 196 136 2 0 0 192 31 0 0 136 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 1 0 0 193 10 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 3 0 0 248 31 0 0 2 0 0 0 3 0 32 2 2 0 0 0 0 0 0 0 248 29 0 0 254 255 255 255 5 0 1 0 0 0 0 0 data 977 0x10005 0x158 0x0 0x0 0x0 0x0 0x0 0x70005 0x158 0x0 0x0 0x0 0x0 0x0 0xd0005 0x158 0x0 0x0 0x0 0x0 0x0 0x130005 0x158 0x0 0x0 0x0 0x0 0x0 0x190005 0x158 0x0 0x0 0x0 0x0 0x0 0x1f0005 0x158 0x0 0x0 0x0 0x0 0x0 0x250005 0x158 0x0 0x0 0x0 0x0 0x0 0x2b0005 0x158 0x0 0x0 0x0 0x0 0x0 0x390007 0x0 0x160 0x158 0x3f0005 0x158 0x0 0x0 0x0 0x0 0x0 0x470007 0x158 0x38 0x0 0x4b0003 0x0 0x18 0x540007 0x158 0xd0 0x0 0x5b0007 0x0 0xb0 0x0 0x650005 0x0 0x0 0x0 0x0 0x0 0x0 0x6e0007 0x0 0x20 0x0 0x790005 0x0 0x0 0x0 0x0 0x0 0x0 0x850007 0x0 0x198 0x158 0x8a0005 0x158 0x0 0x0 0x0 0x0 0x0 0x8f0007 0x9 0x140 0x14f 0x960005 0x14f 0x0 0x0 0x0 0x0 0x0 0x9b0007 0x14f 0xe8 0x0 0xa20005 0x0 0x0 0x0 0x0 0x0 0x0 0xa70007 0x0 0x90 0x0 0xae0005 0x0 0x0 0x0 0x0 0x0 0x0 0xb30007 0x0 0x38 0x0 0xb70003 0x0 0x18 0xbf0007 0x0 0xbb0 0x158 0xc70007 0x0 0xb90 0x158 0xcc0005 0x158 0x0 0x0 0x0 0x0 0x0 0xd10007 0x9 0xb38 0x14f 0xd80005 0x14f 0x0 0x0 0x0 0x0 0x0 0xdd0007 0x14f 0xae0 0x0 0xe70005 0x0 0x0 0x0 0x0 0x0 0x0 0xee0007 0x0 0x40 0x0 0xf50007 0x0 0x98 0x0 0xfc0005 0x0 0x0 0x0 0x0 0x0 0x0 0x1030007 0x0 0x40 0x0 0x10a0007 0x0 0x20 0x0 0x1150005 0x0 0x0 0x0 0x0 0x0 0x0 0x1210005 0x0 0x0 0x0 0x0 0x0 0x0 0x1290007 0x0 0x118 0x0 0x1320005 0x0 0x0 0x0 0x0 0x0 0x0 0x1350007 0x0 0x38 0x0 0x13e0003 0x0 0xa0 0x1460005 0x0 0x0 0x0 0x0 0x0 0x0 0x1510005 0x0 0x0 0x0 0x0 0x0 0x0 0x1560003 0x0 0x18 0x15e0007 0x0 0x6e8 0x0 0x1630005 0x0 0x0 0x0 0x0 0x0 0x0 0x1660007 0x0 0x548 0x0 0x16c0005 0x0 0x0 0x0 0x0 0x0 0x0 0x1710007 0x0 0x4f0 0x0 0x1780005 0x0 0x0 0x0 0x0 0x0 0x0 0x17f0007 0x0 0x3d0 0x0 0x18d0005 0x0 0x0 0x0 0x0 0x0 0x0 0x1970005 0x0 0x0 0x0 0x0 0x0 0x0 0x19a0002 0x0 0x19d0007 0x0 0xe8 0x0 0x1a80002 0x0 0x1ad0005 0x0 0x0 0x0 0x0 0x0 0x0 0x1b20005 0x0 0x0 0x0 0x0 0x0 0x0 0x1b50005 0x0 0x0 0x0 0x0 0x0 0x0 0x1b80002 0x0 0x1c10005 0x0 0x0 0x0 0x0 0x0 0x0 0x1c80007 0x0 0x1f8 0x0 0x1d10005 0x0 0x0 0x0 0x0 0x0 0x0 0x1d60007 0x0 0xd8 0x0 0x1de0005 0x0 0x0 0x0 0x0 0x0 0x0 0x1e50007 0x0 0x148 0x0 0x1f00005 0x0 0x0 0x0 0x0 0x0 0x0 0x1f50002 0x0 0x1fa0003 0x0 0xe0 0x2050002 0x0 0x20a0005 0x0 0x0 0x0 0x0 0x0 0x0 0x20f0005 0x0 0x0 0x0 0x0 0x0 0x0 0x2120005 0x0 0x0 0x0 0x0 0x0 0x0 0x2150002 0x0 0x2190003 0x0 0x228 0x2240002 0x0 0x2290005 0x0 0x0 0x0 0x0 0x0 0x0 0x22e0005 0x0 0x0 0x0 0x0 0x0 0x0 0x2310005 0x0 0x0 0x0 0x0 0x0 0x0 0x2340002 0x0 0x23c0005 0x0 0x0 0x0 0x0 0x0 0x0 0x2460007 0x0 0x110 0x0 0x24b0005 0x0 0x0 0x0 0x0 0x0 0x0 0x2520007 0x0 0x68 0x0 0x25d0005 0x0 0x0 0x0 0x0 0x0 0x0 0x2620002 0x0 0x26c0005 0x0 0x0 0x0 0x0 0x0 0x0 0x2710003 0x0 0x18 0x27b0007 0x0 0xe8 0x0 0x2860002 0x0 0x28b0005 0x0 0x0 0x0 0x0 0x0 0x0 0x2900005 0x0 0x0 0x0 0x0 0x0 0x0 0x2930005 0x0 0x0 0x0 0x0 0x0 0x0 0x2960002 0x0 0x29f0007 0x0 0x78 0x0 0x2a40005 0x0 0x0 0x0 0x0 0x0 0x0 0x2a70007 0x0 0x20 0x0 0x2b00007 0x9 0x20 0x14f 0x2ba0007 0x0 0x470 0x158 0x2bf0005 0x158 0x0 0x0 0x0 0x0 0x0 0x2c40007 0x9 0x70 0x14f 0x2cb0005 0x14f 0x0 0x0 0x0 0x0 0x0 0x2d00003 0x14f 0x548 0x2d50007 0x0 0x268 0x9 0x2da0005 0x9 0x0 0x0 0x0 0x0 0x0 0x2dd0007 0x0 0x210 0x9 0x2e70005 0x9 0x0 0x0 0x0 0x0 0x0 0x2f30007 0x9 0x40 0x0 0x2f80007 0x0 0x20 0x0 0x3030002 0x9 0x30d0005 0x9 0x0 0x0 0x0 0x0 0x0 0x3100005 0x9 0x0 0x0 0x0 0x0 0x0 0x3150005 0x9 0x0 0x0 0x0 0x0 0x0 0x31c0005 0x9 0x0 0x0 0x0 0x0 0x0 0x31f0005 0x9 0x0 0x0 0x0 0x0 0x0 0x3220005 0x9 0x0 0x0 0x0 0x0 0x0 0x3270003 0x9 0x2e0 0x32c0007 0x0 0x38 0x0 0x3310003 0x0 0x18 0x33c0002 0x0 0x3410005 0x0 0x0 0x0 0x0 0x0 0x0 0x3480005 0x0 0x0 0x0 0x0 0x0 0x0 0x34b0005 0x0 0x0 0x0 0x0 0x0 0x0 0x34e0005 0x0 0x0 0x0 0x0 0x0 0x0 0x3530003 0x0 0x1a0 0x3580007 0x0 0x188 0x0 0x35d0007 0x0 0x168 0x0 0x3640005 0x0 0x0 0x0 0x0 0x0 0x0 0x36b0007 0x0 0x20 0x0 0x3750002 0x0 0x37d0005 0x0 0x0 0x0 0x0 0x0 0x0 0x3800005 0x0 0x0 0x0 0x0 0x0 0x0 0x3850005 0x0 0x0 0x0 0x0 0x0 0x0 0x3880005 0x0 0x0 0x0 0x0 0x0 0x0 0x38f0007 0x158 0x20 0x0 0x3980007 0x14f 0x720 0x9 0x39f0005 0x9 0x0 0x0 0x0 0x0 0x0 0x3a50007 0x9 0x160 0x0 0x3ac0002 0x0 0x3b40005 0x0 0x0 0x0 0x0 0x0 0x0 0x3b70005 0x0 0x0 0x0 0x0 0x0 0x0 0x3c00005 0x0 0x0 0x0 0x0 0x0 0x0 0x3c30005 0x0 0x0 0x0 0x0 0x0 0x0 0x3c60005 0x0 0x0 0x0 0x0 0x0 0x0 0x3cb0003 0x0 0xfffffffffffffe80 0x3d70005 0x9 0x0 0x0 0x0 0x0 0x0 0x3dd0007 0x9 0x248 0x0 0x3e20007 0x0 0x210 0x0 0x3ed0005 0x0 0x0 0x0 0x0 0x0 0x0 0x3f30007 0x0 0x1b8 0x0 0x3fc0005 0x0 0x0 0x0 0x0 0x0 0x0 0x3ff0007 0x0 0x160 0x0 0x4060002 0x0 0x40e0005 0x0 0x0 0x0 0x0 0x0 0x0 0x4110005 0x0 0x0 0x0 0x0 0x0 0x0 0x41a0005 0x0 0x0 0x0 0x0 0x0 0x0 0x41d0005 0x0 0x0 0x0 0x0 0x0 0x0 0x4200005 0x0 0x0 0x0 0x0 0x0 0x0 0x4280003 0x0 0xfffffffffffffdb0 0x4310003 0x0 0xfffffffffffffd98 0x4380005 0x9 0x0 0x0 0x0 0x0 0x0 0x43b0007 0x9 0x100 0x0 0x4420005 0x0 0x0 0x0 0x0 0x0 0x0 0x44f0005 0x0 0x0 0x0 0x0 0x0 0x0 0x4550007 0x0 0x70 0x0 0x45f0005 0x0 0x0 0x0 0x0 0x0 0x0 0x4640003 0x0 0xfffffffffffffee0 0x46b0005 0x9 0x0 0x0 0x0 0x0 0x0 0x46e0007 0x9 0xb0 0x0 0x4730005 0x0 0x0 0x0 0x0 0x0 0x0 0x4770007 0x0 0x58 0x0 0x47d0005 0x0 0x0 0x0 0x0 0x0 0x0 0x4860005 0x9 0x0 0x0 0x0 0x0 0x0 0x4890007 0x9 0x90 0x0 0x4910005 0x0 0x0 0x0 0x0 0x0 0x0 0x4960005 0x0 0x0 0x0 0x0 0x0 0x0 0x4ad0005 0x0 0x0 0x288c86f09b0 0x158 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0x5 0x0 0x0 0x0 0x0 0x0 oops 1 955 sun/net/www/protocol/file/Handler methods 0 +compile java/net/URL (Ljava/net/URL;Ljava/lang/String;Ljava/net/URLStreamHandler;)V -1 4 inline 263 0 -1 java/net/URL (Ljava/net/URL;Ljava/lang/String;Ljava/net/URLStreamHandler;)V 1 1 java/lang/Object ()V 1 50 java/lang/String length ()I 2 6 java/lang/String coder ()B 1 65 java/lang/String charAt (I)C 2 1 java/lang/String isLatin1 ()Z 2 12 java/lang/StringLatin1 charAt ([BI)C 1 89 java/lang/String charAt (I)C 2 1 java/lang/String isLatin1 ()Z 2 12 java/lang/StringLatin1 charAt ([BI)C 1 111 java/lang/String regionMatches (ZILjava/lang/String;II)Z 2 27 java/lang/String length ()I 3 6 java/lang/String coder ()B 2 43 java/lang/String length ()I 3 6 java/lang/String coder ()B 2 70 java/lang/String coder ()B 2 74 java/lang/String coder ()B 2 81 java/lang/String isLatin1 ()Z 2 96 java/lang/StringLatin1 regionMatchesCI ([BI[BII)Z 3 50 java/lang/Character toUpperCase (C)C 4 1 java/lang/Character toUpperCase (I)I 5 1 java/lang/CharacterData of (I)Ljava/lang/CharacterData; 5 5 java/lang/CharacterDataLatin1 toUpperCase (I)I 6 4 java/lang/CharacterDataLatin1 getProperties (I)I 3 57 java/lang/Character toUpperCase (C)C 4 1 java/lang/Character toUpperCase (I)I 5 1 java/lang/CharacterData of (I)Ljava/lang/CharacterData; 5 5 java/lang/CharacterDataLatin1 toUpperCase (I)I 6 4 java/lang/CharacterDataLatin1 getProperties (I)I 3 74 java/lang/Character toLowerCase (C)C 4 1 java/lang/Character toLowerCase (I)I 5 1 java/lang/CharacterData of (I)Ljava/lang/CharacterData; 5 5 java/lang/CharacterDataLatin1 toLowerCase (I)I 6 4 java/lang/CharacterDataLatin1 getProperties (I)I 3 79 java/lang/Character toLowerCase (C)C 4 1 java/lang/Character toLowerCase (I)I 5 1 java/lang/CharacterData of (I)Ljava/lang/CharacterData; 5 5 java/lang/CharacterDataLatin1 toLowerCase (I)I 6 4 java/lang/CharacterDataLatin1 getProperties (I)I 1 123 java/lang/String length ()I 2 6 java/lang/String coder ()B 1 132 java/lang/String charAt (I)C 2 1 java/lang/String isLatin1 ()Z 2 12 java/lang/StringLatin1 charAt ([BI)C 1 162 java/lang/String charAt (I)C 2 1 java/lang/String isLatin1 ()Z 2 12 java/lang/StringLatin1 charAt ([BI)C 1 185 java/lang/String substring (II)Ljava/lang/String; 2 1 java/lang/String length ()I 3 6 java/lang/String coder ()B 2 8 java/lang/String checkBoundsBeginEnd (III)V 2 28 java/lang/String isLatin1 ()Z 2 41 java/lang/StringLatin1 newString ([BII)Ljava/lang/String; 3 9 java/util/Arrays copyOfRange ([BII)[B 3 13 java/lang/String ([BB)V 4 1 java/lang/Object ()V 1 188 java/net/URL toLowerCase (Ljava/lang/String;)Ljava/lang/String; 1 196 java/net/URL isValidProtocol (Ljava/lang/String;)Z 2 1 java/lang/String length ()I 3 6 java/lang/String coder ()B 2 14 java/lang/String charAt (I)C 3 1 java/lang/String isLatin1 ()Z 3 12 java/lang/StringLatin1 charAt ([BI)C 2 19 java/lang/Character isLetter (C)Z 3 1 java/lang/Character isLetter (I)Z 4 3 java/lang/Character getType (I)I 5 1 java/lang/CharacterData of (I)Ljava/lang/CharacterData; 5 5 java/lang/CharacterDataLatin1 getType (I)I 6 2 java/lang/CharacterDataLatin1 getProperties (I)I 2 39 java/lang/String charAt (I)C 3 1 java/lang/String isLatin1 ()Z 3 12 java/lang/StringLatin1 charAt ([BI)C 2 44 java/lang/Character isLetterOrDigit (C)Z 3 1 java/lang/Character isLetterOrDigit (I)Z 4 4 java/lang/Character getType (I)I 5 1 java/lang/CharacterData of (I)Ljava/lang/CharacterData; 5 5 java/lang/CharacterDataLatin1 getType (I)I 6 2 java/lang/CharacterDataLatin1 getProperties (I)I 1 270 java/lang/String startsWith (Ljava/lang/String;)Z 2 3 java/lang/String startsWith (Ljava/lang/String;I)Z 3 6 java/lang/String length ()I 4 6 java/lang/String coder ()B 3 10 java/lang/String length ()I 4 6 java/lang/String coder ()B 3 39 java/lang/String coder ()B 3 43 java/lang/String coder ()B 3 50 java/lang/String isLatin1 ()Z 1 386 java/net/URL getURLStreamHandler (Ljava/lang/String;)Ljava/net/URLStreamHandler; 1 434 java/lang/String indexOf (II)I 2 1 java/lang/String isLatin1 ()Z 2 13 java/lang/StringLatin1 indexOf ([BII)I 3 1 java/lang/StringLatin1 canEncode (I)Z 1 504 sun/net/www/protocol/jar/Handler parseURL (Ljava/net/URL;Ljava/lang/String;II)V 2 11 java/lang/String indexOf (II)I 3 1 java/lang/String isLatin1 ()Z 3 13 java/lang/StringLatin1 indexOf ([BII)I 4 1 java/lang/StringLatin1 canEncode (I)Z 2 61 java/lang/String length ()I 3 6 java/lang/String coder ()B 2 75 java/lang/String regionMatches (ZILjava/lang/String;II)Z 3 27 java/lang/String length ()I 4 6 java/lang/String coder ()B 3 43 java/lang/String length ()I 4 6 java/lang/String coder ()B 3 70 java/lang/String coder ()B 3 74 java/lang/String coder ()B 3 81 java/lang/String isLatin1 ()Z 3 96 java/lang/StringLatin1 regionMatchesCI ([BI[BII)Z 4 50 java/lang/Character toUpperCase (C)C 5 1 java/lang/Character toUpperCase (I)I 6 1 java/lang/CharacterData of (I)Ljava/lang/CharacterData; 6 5 java/lang/CharacterDataLatin1 toUpperCase (I)I 7 4 java/lang/CharacterDataLatin1 getProperties (I)I 4 57 java/lang/Character toUpperCase (C)C 5 1 java/lang/Character toUpperCase (I)I 6 1 java/lang/CharacterData of (I)Ljava/lang/CharacterData; 6 5 java/lang/CharacterDataLatin1 toUpperCase (I)I 7 4 java/lang/CharacterDataLatin1 getProperties (I)I 4 74 java/lang/Character toLowerCase (C)C 5 1 java/lang/Character toLowerCase (I)I 6 1 java/lang/CharacterData of (I)Ljava/lang/CharacterData; 6 5 java/lang/CharacterDataLatin1 toLowerCase (I)I 7 4 java/lang/CharacterDataLatin1 getProperties (I)I 4 79 java/lang/Character toLowerCase (C)C 5 1 java/lang/Character toLowerCase (I)I 6 1 java/lang/CharacterData of (I)Ljava/lang/CharacterData; 6 5 java/lang/CharacterDataLatin1 toLowerCase (I)I 7 4 java/lang/CharacterDataLatin1 getProperties (I)I 2 88 java/lang/String substring (II)Ljava/lang/String; 3 1 java/lang/String length ()I 4 6 java/lang/String coder ()B 3 8 java/lang/String checkBoundsBeginEnd (III)V 3 28 java/lang/String isLatin1 ()Z 3 41 java/lang/StringLatin1 newString ([BII)Ljava/lang/String; 4 9 java/util/Arrays copyOfRange ([BII)[B 4 13 java/lang/String ([BB)V 5 1 java/lang/Object ()V 2 94 sun/net/www/protocol/jar/Handler checkNestedProtocol (Ljava/lang/String;)Ljava/lang/String; 3 7 java/lang/String regionMatches (ZILjava/lang/String;II)Z 4 27 java/lang/String length ()I 5 6 java/lang/String coder ()B 4 43 java/lang/String length ()I 5 6 java/lang/String coder ()B 4 70 java/lang/String coder ()B 4 74 java/lang/String coder ()B 4 81 java/lang/String isLatin1 ()Z 4 96 java/lang/StringLatin1 regionMatchesCI ([BI[BII)Z 5 50 java/lang/Character toUpperCase (C)C 6 1 java/lang/Character toUpperCase (I)I 7 1 java/lang/CharacterData of (I)Ljava/lang/CharacterData; 7 5 java/lang/CharacterDataLatin1 toUpperCase (I)I 8 4 java/lang/CharacterDataLatin1 getProperties (I)I 5 57 java/lang/Character toUpperCase (C)C 6 1 java/lang/Character toUpperCase (I)I 7 1 java/lang/CharacterData of (I)Ljava/lang/CharacterData; 7 5 java/lang/CharacterDataLatin1 toUpperCase (I)I 8 4 java/lang/CharacterDataLatin1 getProperties (I)I 5 74 java/lang/Character toLowerCase (C)C 6 1 java/lang/Character toLowerCase (I)I 7 1 java/lang/CharacterData of (I)Ljava/lang/CharacterData; 7 5 java/lang/CharacterDataLatin1 toLowerCase (I)I 8 4 java/lang/CharacterDataLatin1 getProperties (I)I 5 79 java/lang/Character toLowerCase (C)C 6 1 java/lang/Character toLowerCase (I)I 7 1 java/lang/CharacterData of (I)Ljava/lang/CharacterData; 7 5 java/lang/CharacterDataLatin1 toLowerCase (I)I 8 4 java/lang/CharacterDataLatin1 getProperties (I)I 2 137 sun/net/www/protocol/jar/Handler parseContextSpec (Ljava/net/URL;Ljava/lang/String;)Ljava/lang/String; 3 1 java/net/URL getFile ()Ljava/lang/String; 3 8 java/lang/String startsWith (Ljava/lang/String;)Z 4 3 java/lang/String startsWith (Ljava/lang/String;I)Z 5 6 java/lang/String length ()I 6 6 java/lang/String coder ()B 5 10 java/lang/String length ()I 6 6 java/lang/String coder ()B 5 39 java/lang/String coder ()B 5 43 java/lang/String coder ()B 5 50 java/lang/String isLatin1 ()Z 3 72 java/lang/String lastIndexOf (I)I 4 3 java/lang/String length ()I 5 6 java/lang/String coder ()B 4 8 java/lang/String lastIndexOf (II)I 5 1 java/lang/String isLatin1 ()Z 5 13 java/lang/StringLatin1 lastIndexOf ([BII)I 6 1 java/lang/StringLatin1 canEncode (I)Z 3 113 java/lang/String length ()I 4 6 java/lang/String coder ()B 3 135 java/lang/StringBuilder ()V 3 139 java/lang/StringBuilder append (Ljava/lang/String;)Ljava/lang/StringBuilder; 3 143 java/lang/StringBuilder append (Ljava/lang/String;)Ljava/lang/StringBuilder; 3 146 java/lang/StringBuilder toString ()Ljava/lang/String; 2 144 sun/net/www/protocol/jar/Handler indexOfBangSlash (Ljava/lang/String;)I 3 1 java/lang/String length ()I 4 6 java/lang/String coder ()B 3 9 java/lang/String lastIndexOf (II)I 4 1 java/lang/String isLatin1 ()Z 4 13 java/lang/StringLatin1 lastIndexOf ([BII)I 5 1 java/lang/StringLatin1 canEncode (I)Z 3 20 java/lang/String length ()I 4 6 java/lang/String coder ()B 3 32 java/lang/String charAt (I)C 4 1 java/lang/String isLatin1 ()Z 4 12 java/lang/StringLatin1 charAt ([BI)C 2 154 java/lang/String substring (II)Ljava/lang/String; 3 1 java/lang/String length ()I 4 6 java/lang/String coder ()B 3 8 java/lang/String checkBoundsBeginEnd (III)V 3 28 java/lang/String isLatin1 ()Z 3 41 java/lang/StringLatin1 newString ([BII)Ljava/lang/String; 4 9 java/util/Arrays copyOfRange ([BII)[B 4 13 java/lang/String ([BB)V 5 1 java/lang/Object ()V 2 163 java/lang/String substring (I)Ljava/lang/String; 3 14 java/lang/String length ()I 4 6 java/lang/String coder ()B 3 40 java/lang/String isLatin1 ()Z 3 52 java/lang/StringLatin1 newString ([BII)Ljava/lang/String; 4 9 java/util/Arrays copyOfRange ([BII)[B 4 13 java/lang/String ([BB)V 5 1 java/lang/Object ()V 2 170 sun/net/www/ParseUtil canonizeString (Ljava/lang/String;)Ljava/lang/String; 3 1 java/lang/String length ()I 4 6 java/lang/String coder ()B 3 12 java/lang/String indexOf (Ljava/lang/String;)I 4 1 java/lang/String coder ()B 4 5 java/lang/String coder ()B 4 12 java/lang/String isLatin1 ()Z 3 23 java/lang/String charAt (I)C 4 1 java/lang/String isLatin1 ()Z 4 12 java/lang/StringLatin1 charAt ([BI)C 2 179 java/lang/StringBuilder ()V 2 184 java/lang/StringBuilder append (Ljava/lang/String;)Ljava/lang/StringBuilder; 2 189 java/lang/StringBuilder append (Ljava/lang/String;)Ljava/lang/StringBuilder; 2 192 java/lang/StringBuilder toString ()Ljava/lang/String; 2 208 java/net/URLStreamHandler setURL (Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V 3 11 java/lang/String isEmpty ()Z 3 100 java/lang/String lastIndexOf (I)I 4 3 java/lang/String length ()I 5 6 java/lang/String coder ()B 4 8 java/lang/String lastIndexOf (II)I 5 1 java/lang/String isLatin1 ()Z 5 13 java/lang/StringLatin1 lastIndexOf ([BII)I 6 1 java/lang/StringLatin1 canEncode (I)Z 3 155 java/net/URLStreamHandler setURL (Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V 4 24 java/net/URL isBuiltinStreamHandler (Ljava/net/URLStreamHandler;)Z 5 7 java/lang/Class getName ()Ljava/lang/String; 5 10 java/net/URL isBuiltinStreamHandler (Ljava/lang/String;)Z 6 3 java/lang/String startsWith (Ljava/lang/String;)Z 7 3 java/lang/String startsWith (Ljava/lang/String;I)Z 8 6 java/lang/String length ()I 9 6 java/lang/String coder ()B 8 10 java/lang/String length ()I 9 6 java/lang/String coder ()B 8 39 java/lang/String coder ()B 8 43 java/lang/String coder ()B 8 50 java/lang/String isLatin1 ()Z 4 31 sun/net/util/IPAddressUtil checkHostString (Ljava/lang/String;)Ljava/lang/String; 5 16 sun/net/util/IPAddressUtil scan (Ljava/lang/String;JJ[C)I 6 8 java/lang/String length ()I 7 6 java/lang/String coder ()B 4 53 java/net/URL getProtocol ()Ljava/lang/String; 4 69 java/net/URL set (Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V 1 504 sun/net/www/protocol/file/Handler parseURL (Ljava/net/URL;Ljava/lang/String;II)V diff --git a/src/main/java/META-INF/MANIFEST.MF b/src/main/java/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..19e86fe56e --- /dev/null +++ b/src/main/java/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: seedu.duke.Duke + diff --git a/src/main/java/seedu/duke/Command.java b/src/main/java/seedu/duke/Command.java new file mode 100644 index 0000000000..01390bd5e4 --- /dev/null +++ b/src/main/java/seedu/duke/Command.java @@ -0,0 +1,36 @@ +package seedu.duke; + +import seedu.duke.backend.UserInput; + +public abstract class Command { + + public static final int NO_MATCH = -1; + public static final int ARGUMENT_ERR = 0; + public static final int ACCEPT = 1; + private UserInput savedInput; // Variable for saving the given user input + + /** + * Checks if the supplied userInput is valid for the command. + * UserInput can contain any information so it's the command's job to ensure it is correct before acceptance + * Once accepted, the command should store a copy of the UserInput for execution + * @param input The UserInput to Validate + * @return NO_MATCH if the command and category is incorrect, ARGUMENT_ERR if the argument supplied is incorrect. + * ACCEPT if the userInput is intended and correct for invoking this command. + */ + public int validate(UserInput input) { + return NO_MATCH; + } + + /** + * Runs the actual command processing. + * Throws generic exception is used in case the other subclasses choose to throw any exceptions during execution. + * @return String message to be printed to the user. + */ + public abstract String execute() throws Exception; + + /** + * Provides information about command usage. + * @return The string to be printed to the user. + */ + public abstract String help(); +} \ No newline at end of file diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 5c74e68d59..abcab62d1f 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -1,21 +1,52 @@ package seedu.duke; -import java.util.Scanner; +import seedu.duke.backend.FileManager; +import seedu.duke.backend.Ui; + +import java.io.IOException; public class Duke { + /** * Main entry-point for the java.duke.Duke application. */ + public static void main(String[] args) { String logo = " ____ _ \n" + "| _ \\ _ _| | _____ \n" + "| | | | | | | |/ / _ \\\n" + "| |_| | |_| | < __/\n" + "|____/ \\__,_|_|\\_\\___|\n"; - System.out.println("Hello from\n" + logo); - System.out.println("What is your name?"); - Scanner in = new Scanner(System.in); - System.out.println("Hello " + in.nextLine()); + System.out.println("Hello from\n" + logo); + Ui ui = new Ui(); + FileManager fm = new FileManager("data/"); + try { + int rv = fm.readAll(); + if (rv != 0) { + ui.printError("Oops I was unable to find your saved data!"); + } else { + ui.printError("I've loaded your saved data successfully!"); + } + } catch (DukeFileFormatException e) { + ui.printError("Oops it appears your saved data was corrupted!"); + e.printStackTrace(); + } catch (DukeFileHeaderException | ArrayIndexOutOfBoundsException e) { + e.printStackTrace(); + ui.printError("Oops it appears your saved data was corrupted!"); + } catch (IOException e) { + e.printStackTrace(); + ui.printError("Oops I was unable to find your saved data!"); + } + ui.printError("Welcome to CCA Manager Integrated! Enter any command to begin!"); + while (!Ui.shouldShutdown()) { + ui.run(); + try { + fm.saveAll(); + } catch (IOException e) { + ui.printError("Oops! Unable to save data!"); + } + } } } + diff --git a/src/main/java/seedu/duke/DukeArgumentException.java b/src/main/java/seedu/duke/DukeArgumentException.java new file mode 100644 index 0000000000..461043fada --- /dev/null +++ b/src/main/java/seedu/duke/DukeArgumentException.java @@ -0,0 +1,4 @@ +package seedu.duke; + +public class DukeArgumentException extends DukeException{ +} diff --git a/src/main/java/seedu/duke/DukeException.java b/src/main/java/seedu/duke/DukeException.java new file mode 100644 index 0000000000..e324a92b11 --- /dev/null +++ b/src/main/java/seedu/duke/DukeException.java @@ -0,0 +1,4 @@ +package seedu.duke; + +public class DukeException extends Exception { +} diff --git a/src/main/java/seedu/duke/DukeFileFormatException.java b/src/main/java/seedu/duke/DukeFileFormatException.java new file mode 100644 index 0000000000..27dc52b207 --- /dev/null +++ b/src/main/java/seedu/duke/DukeFileFormatException.java @@ -0,0 +1,4 @@ +package seedu.duke; + +public class DukeFileFormatException extends DukeException{ +} diff --git a/src/main/java/seedu/duke/DukeFileHeaderException.java b/src/main/java/seedu/duke/DukeFileHeaderException.java new file mode 100644 index 0000000000..051d4567bd --- /dev/null +++ b/src/main/java/seedu/duke/DukeFileHeaderException.java @@ -0,0 +1,4 @@ +package seedu.duke; + +public class DukeFileHeaderException extends DukeException{ +} diff --git a/src/main/java/seedu/duke/DukeFinanceAddDescriptionLostException.java b/src/main/java/seedu/duke/DukeFinanceAddDescriptionLostException.java new file mode 100644 index 0000000000..c804c08452 --- /dev/null +++ b/src/main/java/seedu/duke/DukeFinanceAddDescriptionLostException.java @@ -0,0 +1,4 @@ +package seedu.duke; + +public class DukeFinanceAddDescriptionLostException extends DukeException { +} diff --git a/src/main/java/seedu/duke/DukeMemberListEmptyException.java b/src/main/java/seedu/duke/DukeMemberListEmptyException.java new file mode 100644 index 0000000000..cb2fc0464a --- /dev/null +++ b/src/main/java/seedu/duke/DukeMemberListEmptyException.java @@ -0,0 +1,14 @@ +package seedu.duke; + +import seedu.duke.DukeException; + +public class DukeMemberListEmptyException extends DukeException { + + public DukeMemberListEmptyException() { + printMessage(); + } + + public void printMessage() { + System.out.println("OOPS!!! The member list is empty!\n"); + } +} diff --git a/src/main/java/seedu/duke/DukeMemberNotFoundException.java b/src/main/java/seedu/duke/DukeMemberNotFoundException.java new file mode 100644 index 0000000000..5e210f8cf0 --- /dev/null +++ b/src/main/java/seedu/duke/DukeMemberNotFoundException.java @@ -0,0 +1,12 @@ +package seedu.duke; + +public class DukeMemberNotFoundException extends DukeException { + + public DukeMemberNotFoundException() { + printMessage(); + } + + public void printMessage() { + System.out.println("OOPS!!! The member does not exist.\n"); + } +} diff --git a/src/main/java/seedu/duke/DukeNoMatchException.java b/src/main/java/seedu/duke/DukeNoMatchException.java new file mode 100644 index 0000000000..cafa3907d2 --- /dev/null +++ b/src/main/java/seedu/duke/DukeNoMatchException.java @@ -0,0 +1,4 @@ +package seedu.duke; + +public class DukeNoMatchException extends DukeException{ +} diff --git a/src/main/java/seedu/duke/DukeNotNumberException.java b/src/main/java/seedu/duke/DukeNotNumberException.java new file mode 100644 index 0000000000..aa0a704e40 --- /dev/null +++ b/src/main/java/seedu/duke/DukeNotNumberException.java @@ -0,0 +1,4 @@ +package seedu.duke; + +public class DukeNotNumberException extends DukeException{ +} diff --git a/src/main/java/seedu/duke/backend/FileManager.java b/src/main/java/seedu/duke/backend/FileManager.java new file mode 100644 index 0000000000..f0d82b4acc --- /dev/null +++ b/src/main/java/seedu/duke/backend/FileManager.java @@ -0,0 +1,267 @@ +package seedu.duke.backend; + +import seedu.duke.DukeArgumentException; +import seedu.duke.DukeFileFormatException; +import seedu.duke.DukeFileHeaderException; +import seedu.duke.event.Event; +import seedu.duke.event.EventList; +import seedu.duke.finance.FinanceList; +import seedu.duke.finance.FinanceLog; +import seedu.duke.hr.Member; +import seedu.duke.hr.MemberList; + + +import java.io.BufferedReader; +import java.io.FileNotFoundException; +import java.io.FileWriter; +import java.io.FileReader; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class FileManager { + // Todo support RFC 4180 CSV standard and handle rogue characters + private static final String HEADERS_MEMBERS = "Name,Phone,Email,Role"; + private static final String HEADERS_FINANCE = "Name,Value"; + private static final String HEADERS_EVENT = "Name,Date,Time,Done,Participant"; + private static Logger logger = Logger.getLogger("FileLog"); + private String path; // if not the working directory, path should end with a slash + + public FileManager(String path) { + logger.setLevel(Level.OFF); + this.path = path; + try { + Files.createDirectories(Paths.get(path)); + } catch (IOException e) { + //e.printStackTrace(); + logger.log(Level.INFO, "Error initializing. No write permissions?"); + } + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + /** + * Saves data from all the different lists to disk. + * @throws IOException Any one of the files encounters a write error + */ + public void saveAll() throws IOException { + logger.log(Level.INFO, "Begin Saving All"); + saveEvent(path + "events.csv"); + saveFinance(path + "finance.csv"); + saveMembers(path + "members.csv"); + logger.log(Level.INFO, "Finished Saving All"); + } + + public int readAll() throws DukeFileFormatException, DukeFileHeaderException, IOException { + logger.log(Level.INFO, "Begin Loading All"); + int ret = 0; + try { + readFinance(path + "finance.csv"); + } catch (FileNotFoundException fe) { + ret++; + logger.log(Level.INFO, "Failed to load finance"); + } + try { + readMembers(path + "members.csv"); + } catch (FileNotFoundException fe) { + ret++; + logger.log(Level.INFO, "Failed to load members"); + } + try { + readEvents(path + "events.csv"); + } catch (FileNotFoundException fe) { + ret++; + logger.log(Level.INFO, "Failed to load events"); + } + logger.log(Level.INFO, "Finished loading all"); + return ret; + } + + /** + * Saves all the events currently in memory to a csv file. + * @param fileName The name of the file, including the path if necessary + * @throws IOException The file cannot be written to + */ + public void saveEvent(String fileName) throws IOException { + String writeOutput = HEADERS_EVENT + "\n"; + for (Event e : EventList.events) { + writeOutput += e.getEventName() + ","; + writeOutput += e.getEventDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ","; + writeOutput += e.getEventTime() + ","; + writeOutput += e.getDone() ? "1," : "0,"; + writeOutput += e.getStringParticipants() + "\n"; + } + saveFile(fileName, writeOutput); + } + + /** + * Saves all the finance logs currently in memory to a csv file. + * @param fileName The name of the file, including the path if necessary + * @throws IOException The file cannot be written to + */ + public void saveFinance(String fileName) throws IOException { + String writeOutput = HEADERS_FINANCE + "\n"; + for (FinanceLog f : FinanceList.financeLogs) { + writeOutput += f.getLog() + ","; + writeOutput += f.getLogVal() + "\n"; + } + saveFile(fileName, writeOutput); + } + + /** + * Saves all the members currently in memory to a csv file. + * @param fileName The name of the file, including the path if necessary + * @throws IOException The file cannot be written to + */ + public void saveMembers(String fileName) throws IOException { + + String writeOutput = HEADERS_MEMBERS + "\n"; + for (Member m : MemberList.members) { + writeOutput += m.getMemberName() + ","; + writeOutput += m.getMemberPhone() + ","; + writeOutput += m.getMemberEmail() + ","; + writeOutput += m.getMemberRole() + "\n"; + } + saveFile(fileName, writeOutput); + } + + /** + * Generic method for saving string to a specified file. + * @param fileName The name of the file, including the path if necessary + * @param data String to write to the file + * @throws IOException The file cannot be written to + */ + public static void saveFile(String fileName, String data) throws IOException { + + FileWriter fw = new FileWriter(fileName); + fw.write(data); + fw.flush(); + fw.close(); + } + + /** + * Opens a file and interprets the content as if it's a csv file. + * @param filename The name of the file, including the path if necessary + * @param headers if not null, verifies a matching header to the parameter, otherwise aborts + * @return A HashMap containing the header and all column entries under the header as an ArrayList + * @throws IOException If the file cannot be found or a read error is encountered + */ + public static HashMap> readFile(String filename, String headers) + throws IOException, DukeFileHeaderException, DukeFileFormatException { + BufferedReader csvReader = new BufferedReader(new FileReader(filename)); + HashMap> map = new HashMap<>(); + String row; + boolean header = true; + //int rowCount = 0; + String[] headerOrder = null; + while ((row = csvReader.readLine()) != null) { + String[] data = row.split(","); + if (header) { + // Process file header + if (headers != null && !row.equalsIgnoreCase(headers)) { + throw new DukeFileHeaderException(); + } + for (String s : data) { + map.put(s, new ArrayList()); + } + headerOrder = data; + header = false; + continue; + } + int i = 0; + for (String s : data) { + map.get(headerOrder[i]).add(s); + i++; + } + if (i != headerOrder.length) { + // Column mismatch! + throw new DukeFileFormatException(); + } + } + csvReader.close(); + return map; + } + + public static HashMap> readFile(String filename) + throws IOException, DukeFileHeaderException, DukeFileFormatException { + return readFile(filename, null); + } + + public static void readFinance(String filename) + throws IOException, DukeFileHeaderException, DukeFileFormatException { + HashMap> data = readFile(filename); + // Validate size of any column + int rows = data.get("Name").size(); + for (int i = 0; i < rows; i++) { + try { + FinanceLog tmp = new FinanceLog(data.get("Name").get(i), Double.parseDouble(data.get("Value").get(i))); + FinanceList.financeLogs.add(tmp); + } catch (Exception e) { + logger.log(Level.INFO, "Save data corrupted. Parse error"); + } + } + } + + public static void readEvents(String filename) + throws IOException, DukeFileHeaderException, DukeFileFormatException { + HashMap> data = readFile(filename); + // Validate size of any column + int rows = data.get("Name").size(); + + for (int i = 0; i < rows; i++) { + Event tmp = null; + try { + tmp = new Event(data.get("Name").get(i), data.get("Date").get(i), data.get("Time").get(i)); + } catch (RuntimeException e) { + logger.log(Level.INFO, "Date parse failed when reading events"); + continue; + } + try { + tmp.setDone(data.get("Done").get(i).equals("1")); + } catch (Exception e) { + logger.log(Level.INFO, "Failed to load done status"); + } + EventList.events.add(tmp); + + try { + String participantList = data.get("Participant").get(i); + String trimmedParticipants = participantList.substring(1, (participantList.length() - 1)); + String[] participants = trimmedParticipants.split(" & "); + for (int j = 0; j < participants.length; j++) { + tmp.setEventParticipants(MemberList.findMemberByName(participants[j])); + } + } catch (Exception e) { + logger.log(Level.INFO, "Failed to load participant data"); + } + } + } + + public static void readMembers(String filename) + throws IOException, DukeFileHeaderException, DukeFileFormatException { + HashMap> data = readFile(filename); + // Validate size of any column + int rows = data.get("Name").size(); + for (int i = 0; i < rows; i++) { + try { + Member tmp = new Member(data.get("Name").get(i), + Long.parseLong(data.get("Phone").get(i)), + data.get("Email").get(i), + data.get("Role").get(i)); + MemberList.members.add(tmp); + } catch (Exception e) { + logger.log(Level.INFO, "Parse failed when reading members"); + } + } + } +} diff --git a/src/main/java/seedu/duke/backend/Parser.java b/src/main/java/seedu/duke/backend/Parser.java new file mode 100644 index 0000000000..916787b377 --- /dev/null +++ b/src/main/java/seedu/duke/backend/Parser.java @@ -0,0 +1,106 @@ +package seedu.duke.backend; + +import java.util.HashMap; +import java.util.Map; + +public class Parser { + + public Parser() { + + } + + /** + * Given a string input, returns a sanitized and pre-processed UserInput object. + * @param input The string to be processed + * @return UserInput object containing the command, category and all arguments + */ + public UserInput parse(String input) { + + String userInput; + + userInput = sanitize(input); + // Regex looks silly, you have to escape the / so you type double \ to escape the \ used to escape the / + String[] output = userInput.split(" \\/"); + UserInput ui; + Map map = new HashMap<>(); + String category = checkCategory(output); + if (!category.equals("")) { + // Trim is still required as indexOf ' ' may hit a blank space before the category + // This removes the category from the command if it exists + String tmp = output[0].trim(); + output[0] = tmp.substring(tmp.indexOf(' ') + 1); + } + if (output.length == 1) { + // There are no arguments supplied + // Check if the input has any other arguments + String tmp = output[0].trim(); + String cmd; + if (tmp.indexOf(' ') != -1) { + String arg = tmp.substring(tmp.indexOf(' ') + 1).trim(); + cmd = tmp.substring(0, tmp.indexOf(' ')).trim(); + map.put("", arg); + } else { + cmd = tmp; + } + ui = new UserInput(cmd, map); + } else { + String base = output[0].trim(); + if (base.indexOf(' ') != -1) { + String arg = base.substring(base.indexOf(' ') + 1).trim(); + base = base.substring(0, base.indexOf(' ')).trim(); + map.put("", arg); + } + // Convert the / arguments into a map + for (int i = 1; i < output.length; i++) { + String tmp = output[i].trim(); + String key; + String val; + if (tmp.indexOf(' ') != -1) { + val = tmp.substring(tmp.indexOf(' ') + 1); + key = tmp.substring(0, tmp.indexOf(' ')); + } else { + val = ""; + key = tmp; + } + map.put(key.trim().toLowerCase(), val.trim()); + } + ui = new UserInput(base, map); + } + ui.setCategory(category); + return ui; + + } + + /** + * Given any split output, finds if the output contains a string that indicates the category. + * Shorthand categories are supported. + * @param output The split string output + * @return The category of the command + */ + public String checkCategory(String[] output) { + String tmp = output[0].trim().toLowerCase(); + if (tmp.startsWith("hr ") || tmp.startsWith("h ")) { + return "hr"; + } else if (tmp.startsWith("finance ") || tmp.startsWith("f ")) { + return "finance"; + } else if (tmp.startsWith("event ") || tmp.startsWith("e ")) { + return "event"; + } + return ""; + } + + /** + * Cleans up the string to ensure that anything else is safe for the rest of the program to handle. + * @param s String to be sanitized + * @return Sanitized string S + */ + public String sanitize(String s) { + // Check for illegal characters + // This whitelist can be relaxed with more testing, but for now only basic alphanumeric is permitted + s = s.replaceAll("[^a-zA-Z0-9 .\\-@&/]", ""); + return s; + } + +} + + diff --git a/src/main/java/seedu/duke/backend/Ui.java b/src/main/java/seedu/duke/backend/Ui.java new file mode 100644 index 0000000000..c89a89b9d2 --- /dev/null +++ b/src/main/java/seedu/duke/backend/Ui.java @@ -0,0 +1,176 @@ +package seedu.duke.backend; + + +import seedu.duke.Command; +import seedu.duke.DukeArgumentException; +import seedu.duke.DukeFinanceAddDescriptionLostException; +import seedu.duke.DukeNoMatchException; +import seedu.duke.DukeNotNumberException; +import seedu.duke.event.CommandAddEventAttendance; +import seedu.duke.event.CommandDelEventAttendance; +import seedu.duke.event.CommandEventAdd; +import seedu.duke.event.CommandEventCountdown; +import seedu.duke.event.CommandEventDel; +import seedu.duke.event.CommandEventList; +import seedu.duke.event.CommandEventStatus; +import seedu.duke.event.CommandSearchEvent; +import seedu.duke.event.CommandViewEventAttendance; +import seedu.duke.finance.CommandFinanceAdd; +import seedu.duke.finance.CommandFinanceChange; +import seedu.duke.finance.CommandFinanceDel; +import seedu.duke.finance.CommandFinanceSummary; +import seedu.duke.hr.CommandAddMember; +import seedu.duke.hr.CommandChangeMemberInfo; +import seedu.duke.hr.CommandDelMember; +import seedu.duke.hr.CommandListConnection; +import seedu.duke.hr.CommandListProfAdmin; +import seedu.duke.hr.CommandSearchMember; +import seedu.duke.hr.CommandViewMember; +import seedu.duke.others.CommandBye; +import seedu.duke.others.CommandHelp; +import seedu.duke.others.CommandImportCsv; + +import java.util.ArrayList; +import java.util.Scanner; + +public class Ui { + private Scanner sc; + private Parser parser; + private static ArrayList commandList = new ArrayList<>(); + private static boolean shutdown = false; + private static final String UNDERSCORES = "_".repeat(100); + + public Ui() { + sc = new Scanner(System.in); + parser = new Parser(); + initializeCommands(); + } + + public void run() { + String inStr = sc.nextLine(); + UserInput userInput = parser.parse(inStr); + /* + System.out.println("Category: "+userInput.getCategory()); + System.out.println("Command: "+userInput.getCommand()); + System.out.println("Num Args: "+userInput.getNumArgs()); + System.out.println("Args: "+userInput.getArgs()); + */ + + try { + Command cmd = findCommand(userInput); + printOutput(cmd.execute()); + } catch (DukeArgumentException ae) { + // Placeholder if additional routine is required when user enters incorrect parameters + } catch (DukeNoMatchException ne) { + printOutput("No such command. Try 'help' for a list of commands."); + } catch (DukeFinanceAddDescriptionLostException e) { + printOutput("Please enter the complete command. Format is:" + + "finance addLog ITEM_NAME ITEM_VALUE"); + } catch (DukeNotNumberException e) { + printOutput("The format requires a number in the end."); + } catch (Exception e) { + printOutput("Command execution failed with an unhandled error!", true); + } + } + + public Command findCommand(UserInput ui) throws DukeArgumentException, DukeNoMatchException { + for (Command c : commandList) { + int result = c.validate(ui); + if (result == Command.ARGUMENT_ERR) { + printError(c.help()); + throw new DukeArgumentException(); + } else if (result == Command.ACCEPT) { + return c; + } + } + throw new DukeNoMatchException(); + } + + /** + * Returns if the loop should exit. + * @return true if the program should terminate + */ + public static boolean shouldShutdown() { + return shutdown; + } + + public static void setShutdown(boolean shut) { + shutdown = shut; + } + + /** + * Utility function for printing errors triggered by other classes. + * @param text The string to be printed + */ + public void printError(String text) { + printOutput(text, true); + } + + private static void printOutput(String text) { + printOutput(text, false); + } + + /** + * Prints the output with the divider lines and the supplied text. + * Option to make the text non instant for extra effect + * @param text string to be printed + * @param isInstant whether the string is printed instantly + */ + private static void printOutput(String text, boolean isInstant) { + if (text == null) { + return; + } + System.out.println(UNDERSCORES); + // Split text according to the lines to format. + String[] lines = text.split("\\r?\\n"); + for (String s : lines) { + if (isInstant) { + System.out.println(" " + s); + } else { + System.out.print(" "); + // charAt is constant time lookup so we do that instead of splitting strings. + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + System.out.print(c); + try { + Thread.sleep(1); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + System.out.print(System.lineSeparator()); + } + } + System.out.println(UNDERSCORES); + } + + /** + * Creates a list of commands for the program to check through. + */ + private static void initializeCommands() { + commandList.add(new CommandHelp()); + commandList.add(new CommandBye()); + commandList.add(new CommandFinanceSummary()); + commandList.add(new CommandFinanceAdd()); + commandList.add(new CommandFinanceDel()); + commandList.add(new CommandEventAdd()); + commandList.add(new CommandEventDel()); + commandList.add(new CommandEventList()); + commandList.add(new CommandAddMember()); + commandList.add(new CommandViewMember()); + commandList.add(new CommandDelMember()); + commandList.add(new CommandSearchMember()); + commandList.add(new CommandListProfAdmin()); + commandList.add(new CommandListConnection()); + commandList.add(new CommandChangeMemberInfo()); + commandList.add(new CommandEventStatus()); + commandList.add(new CommandEventCountdown()); + commandList.add(new CommandSearchEvent()); + commandList.add(new CommandImportCsv()); + commandList.add(new CommandFinanceChange()); + commandList.add(new CommandAddEventAttendance()); + commandList.add(new CommandViewEventAttendance()); + commandList.add(new CommandDelEventAttendance()); + } +} + diff --git a/src/main/java/seedu/duke/backend/UserInput.java b/src/main/java/seedu/duke/backend/UserInput.java new file mode 100644 index 0000000000..57ce59def6 --- /dev/null +++ b/src/main/java/seedu/duke/backend/UserInput.java @@ -0,0 +1,46 @@ +package seedu.duke.backend; + +import java.util.Map; + +public class UserInput { + private String command; + private Map args; + private String category; + + public UserInput(String c, Map a) { + command = c; + args = a; + } + + public String getCommand() { + return command; + } + + public void setCommand(String command) { + this.command = command; + } + + public Map getArgs() { + return args; + } + + public void setArgs(Map args) { + this.args = args; + } + + public String getArg(String s) { + return args.get(s); + } + + public int getNumArgs() { + return args.size(); + } + + public String getCategory() { + return category; + } + + public void setCategory(String s) { + category = s; + } +} diff --git a/src/main/java/seedu/duke/event/CommandAddEventAttendance.java b/src/main/java/seedu/duke/event/CommandAddEventAttendance.java new file mode 100644 index 0000000000..4d56f82df6 --- /dev/null +++ b/src/main/java/seedu/duke/event/CommandAddEventAttendance.java @@ -0,0 +1,43 @@ +package seedu.duke.event; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + +/** + * Represents add attendance command. + */ +public class CommandAddEventAttendance extends Command { + private UserInput savedInput; + + @Override + public String execute() { + String output; + output = EventList.addAttendance(savedInput.getArg("n"), savedInput.getArg("m")); + return output; + } + + @Override + public int validate(UserInput input) { + savedInput = input; + if (input.getCategory().equals("event") && (input.getCommand().equalsIgnoreCase("addAttendance") + || input.getCommand().equalsIgnoreCase("addAttend") + || input.getCommand().equalsIgnoreCase("aa"))) { + if (input.getNumArgs() >= 2) { + if (input.getArg("n") == null || input.getArg("m") == null + || input.getArg("n").equals("") || input.getArg("m").equals("")) { + return ARGUMENT_ERR; + } + return ACCEPT; + } + return ARGUMENT_ERR; + } else { + return NO_MATCH; + } + } + + + @Override + public String help() { + return "Syntax: event addAttendance /n /m "; + } +} diff --git a/src/main/java/seedu/duke/event/CommandDelEventAttendance.java b/src/main/java/seedu/duke/event/CommandDelEventAttendance.java new file mode 100644 index 0000000000..aada80727d --- /dev/null +++ b/src/main/java/seedu/duke/event/CommandDelEventAttendance.java @@ -0,0 +1,43 @@ +package seedu.duke.event; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + +/** + * Represents delete attendance command. + */ +public class CommandDelEventAttendance extends Command { + private UserInput savedInput; + + @Override + public String execute() { + String output; + output = EventList.deleteAttendance(savedInput.getArg("n"), savedInput.getArg("m")); + return output; + } + + @Override + public int validate(UserInput input) { + savedInput = input; + if (input.getCategory().equals("event") && (input.getCommand().equalsIgnoreCase("delAttendance") + || input.getCommand().equalsIgnoreCase("delAttend") + || input.getCommand().equalsIgnoreCase("da"))) { + if (input.getNumArgs() >= 2) { + if (input.getArg("n") == null || input.getArg("m") == null + || input.getArg("n").equals("") || input.getArg("m").equals("")) { + return ARGUMENT_ERR; + } + return ACCEPT; + } + return ARGUMENT_ERR; + } else { + return NO_MATCH; + } + } + + + @Override + public String help() { + return "Syntax: event delAttendance /n /m "; + } +} diff --git a/src/main/java/seedu/duke/event/CommandEventAdd.java b/src/main/java/seedu/duke/event/CommandEventAdd.java new file mode 100644 index 0000000000..c4895922b2 --- /dev/null +++ b/src/main/java/seedu/duke/event/CommandEventAdd.java @@ -0,0 +1,72 @@ +package seedu.duke.event; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class CommandEventAdd extends Command { + private UserInput userInput; + private Event cachedEvent; + private static final String PATTERN = + "([01]?[0-9]|2[0-3])-([0-5][0-9])"; + public static final String WRONG_TIME_FORMAT = + "Please enter time in HH-mm format. Note that it is 24 hour clock format."; + public static final String DUPLICATE_EVENT = "This event already exists!"; + + @Override + public String execute() { + + String output; + if (cachedEvent == null) { + return "Unable to create event! Please check your inputs again!"; + } + String eventName = userInput.getArg("n"); + String eventDate = userInput.getArg("d"); + String eventTime = userInput.getArg("t"); + + Pattern pattern = Pattern.compile(PATTERN); + Matcher matcher = pattern.matcher(eventTime); + boolean matchFound = matcher.matches(); + + if (!(matchFound)) { + output = WRONG_TIME_FORMAT; + } else if ((EventList.checkEventNameMatch(eventName)) && (EventList.checkEventDateMatch(eventDate))) { + output = DUPLICATE_EVENT; + } else { + output = EventList.addEvent(cachedEvent); + } + return output; + } + + @Override + public int validate(UserInput ui) { + userInput = ui; + if (userInput.getCategory().equals("event") && (userInput.getCommand().equalsIgnoreCase("addEvent") + || userInput.getCommand().equalsIgnoreCase("add") + || userInput.getCommand().equalsIgnoreCase("a"))) { + if (ui.getNumArgs() >= 3) { + if ((ui.getArg("n") == null) || (ui.getArg("d") == null) || (ui.getArg("t") == null)) { + return ARGUMENT_ERR; + } + if ((ui.getArg("n").equals("")) || (ui.getArg("d").equals("")) || (ui.getArg("t").equals(""))) { + return ARGUMENT_ERR; + } + cachedEvent = new Event(userInput.getArg("n"), userInput.getArg("d"), userInput.getArg("t")); + if (cachedEvent.date != null) { + return ACCEPT; + } + } + return ARGUMENT_ERR; + } else { + return NO_MATCH; + } + } + + + @Override + public String help() { + return "Syntax: event addEvent /n EVENT_NAME /d EVENT_DATE /t EVENT_TIME "; + } +} diff --git a/src/main/java/seedu/duke/event/CommandEventCountdown.java b/src/main/java/seedu/duke/event/CommandEventCountdown.java new file mode 100644 index 0000000000..1eabae9030 --- /dev/null +++ b/src/main/java/seedu/duke/event/CommandEventCountdown.java @@ -0,0 +1,32 @@ +package seedu.duke.event; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + + +public class CommandEventCountdown extends Command { + private UserInput userInput; + + @Override + public String execute() { + String userOutput = EventList.countdownView(); + return userOutput; + } + + @Override + public int validate(UserInput ui) { + this.userInput = ui; + if (ui.getCategory().equals("event") && (ui.getCommand().equalsIgnoreCase("countdown") + || ui.getCommand().equalsIgnoreCase("c"))) { + return ACCEPT; + } else { + return NO_MATCH; + } + } + + + @Override + public String help() { + return "Syntax: event countdown"; + } +} diff --git a/src/main/java/seedu/duke/event/CommandEventDel.java b/src/main/java/seedu/duke/event/CommandEventDel.java new file mode 100644 index 0000000000..fc11a71df7 --- /dev/null +++ b/src/main/java/seedu/duke/event/CommandEventDel.java @@ -0,0 +1,57 @@ +package seedu.duke.event; + +import seedu.duke.Command; +import seedu.duke.DukeNoMatchException; +import seedu.duke.backend.UserInput; + + +public class CommandEventDel extends Command { + private UserInput userInput; + int index; + + @Override + public String execute() throws DukeNoMatchException { + boolean isInteger = true; + String output = ""; + try { + index = Integer.parseInt(userInput.getArg("")); + } catch (NumberFormatException e) { + isInteger = false; + } + + if (isInteger) { + output = output.concat(EventList.deleteEvent(index - 1)); + } else { + if (userInput.getArg("").toLowerCase().equals("all")) { + output = output.concat(EventList.clearEvents()); + } else { + throw new DukeNoMatchException(); + } + } + return output; + } + + @Override + public String help() { + return "Syntax: event delEvent EVENT_INDEX"; + } + + @Override + public int validate(UserInput ui) { + userInput = ui; + if (ui.getCategory().equals("event") && (ui.getCommand().equalsIgnoreCase("delEvent") + || ui.getCommand().equalsIgnoreCase("delete") + || ui.getCommand().equalsIgnoreCase("del") + || ui.getCommand().equalsIgnoreCase("d"))) { + if (ui.getNumArgs() == 1) { + if ((ui.getArg("") != null)) { + return ACCEPT; + } + } + return ARGUMENT_ERR; + } else { + return NO_MATCH; + } + } +} + diff --git a/src/main/java/seedu/duke/event/CommandEventList.java b/src/main/java/seedu/duke/event/CommandEventList.java new file mode 100644 index 0000000000..e0404e1c6e --- /dev/null +++ b/src/main/java/seedu/duke/event/CommandEventList.java @@ -0,0 +1,33 @@ +package seedu.duke.event; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + + +public class CommandEventList extends Command { + private UserInput userInput; + + @Override + public String execute() { + String output = EventList.printEventList(); + return output; + } + + @Override + public int validate(UserInput input) { + this.userInput = input; + if (input.getCategory().equals("event") && input.getArg("") == null + && (input.getCommand().equalsIgnoreCase("listEvent") + || input.getCommand().equalsIgnoreCase("list") + || input.getCommand().equalsIgnoreCase("l"))) { + return ACCEPT; + } else { + return NO_MATCH; + } + } + + @Override + public String help() { + return "Syntax: event listEvent"; + } +} diff --git a/src/main/java/seedu/duke/event/CommandEventStatus.java b/src/main/java/seedu/duke/event/CommandEventStatus.java new file mode 100644 index 0000000000..a0a3a17fa5 --- /dev/null +++ b/src/main/java/seedu/duke/event/CommandEventStatus.java @@ -0,0 +1,39 @@ +package seedu.duke.event; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + + +public class CommandEventStatus extends Command { + private UserInput userInput; + int index; + + @Override + public String execute() { + index = Integer.parseInt(userInput.getArg("")); + String output = EventList.isCompleted(index - 1); + return output; + } + + @Override + public int validate(UserInput ui) { + userInput = ui; + if (ui.getCategory().equals("event") && ui.getCommand().equalsIgnoreCase("done")) { + if (ui.getNumArgs() == 1) { + if ((ui.getArg("") != null)) { + return ACCEPT; + } + } + return ARGUMENT_ERR; + } else { + return NO_MATCH; + } + } + + @Override + public String help() { + return "Syntax: event done EVENT_INDEX"; + } + + +} diff --git a/src/main/java/seedu/duke/event/CommandSearchEvent.java b/src/main/java/seedu/duke/event/CommandSearchEvent.java new file mode 100644 index 0000000000..2910e4b1aa --- /dev/null +++ b/src/main/java/seedu/duke/event/CommandSearchEvent.java @@ -0,0 +1,32 @@ +package seedu.duke.event; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + + +public class CommandSearchEvent extends Command { + private UserInput userInput; + + @Override + public String execute() { + String input = userInput.getArg("s"); + String output = EventList.searchEvents(input); + return output; + } + + @Override + public String help() { + return "Syntax: event search /s KEYWORD"; + } + + @Override + public int validate(UserInput ui) { + userInput = ui; + if (ui.getCategory().equals("event") && (ui.getCommand().equalsIgnoreCase("search") + || ui.getCommand().equalsIgnoreCase("s"))) { + return ACCEPT; + } else { + return NO_MATCH; + } + } +} diff --git a/src/main/java/seedu/duke/event/CommandViewEventAttendance.java b/src/main/java/seedu/duke/event/CommandViewEventAttendance.java new file mode 100644 index 0000000000..60f84d7dc6 --- /dev/null +++ b/src/main/java/seedu/duke/event/CommandViewEventAttendance.java @@ -0,0 +1,41 @@ +package seedu.duke.event; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + +/** + * Represents view attendance command. + */ +public class CommandViewEventAttendance extends Command { + private UserInput savedInput; + + @Override + public int validate(UserInput input) { + this.savedInput = input; + if (input.getCategory().equals("event") && input.getArg("") == null + && (input.getCommand().equalsIgnoreCase("listAttendance") + || input.getCommand().equalsIgnoreCase("listAttend") + || input.getCommand().equalsIgnoreCase("la"))) { + if (input.getNumArgs() >= 1) { + if (input.getArg("n") == null || input.getArg("n").equals("")) { + return ARGUMENT_ERR; + } + return ACCEPT; + } + return ARGUMENT_ERR; + } else { + return NO_MATCH; + } + } + + @Override + public String execute() { + String output = EventList.listAttendance(savedInput.getArg("n")); + return output; + } + + @Override + public String help() { + return "Syntax: event listAttendance /n "; + } +} diff --git a/src/main/java/seedu/duke/event/Event.java b/src/main/java/seedu/duke/event/Event.java new file mode 100644 index 0000000000..0cc5dc6b9f --- /dev/null +++ b/src/main/java/seedu/duke/event/Event.java @@ -0,0 +1,206 @@ +package seedu.duke.event; + +import seedu.duke.DukeArgumentException; +import seedu.duke.hr.Member; + +import java.time.DayOfWeek; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; +import java.time.temporal.ChronoUnit; +import java.util.ArrayList; +import static java.time.temporal.TemporalAdjusters.next; + + + +public class Event { + protected String eventName; + protected String eventTime; + protected LocalDate date; + protected String symbol; + protected boolean isDone; + public ArrayList eventParticipants = new ArrayList<>(); + + + public Event(String name, String date, String time) { + this.eventName = name; + this.eventTime = time; + this.symbol = "[E]"; + setDateTime(date, time); + this.isDone = false; + } + + public void setEventDate(LocalDate date) { + this.date = date; + } + + public String getEventName() { + return eventName; + } + + public void setEventName(String eventName) { + this.eventName = eventName; + } + + public String getEventTime() { + return eventTime; + } + + + public void setEventTime(String eventTime) { + this.eventTime = eventTime; + } + + public LocalDate getEventDate() { + return date; + } + + /** + * Returns a tick or cross depending on whether a event is marked done. + * + * @return done or upcoming command + */ + public String getStatusIcon() { + return isDone ? "[Done]" : "[Up-coming]"; + + } + + public boolean getDone() { + return isDone; + } + + public void setDone(boolean d) { + isDone = d; + } + + /** + * Returns the string format of the event. + * + * @return String format of event. + */ + public String printEvent() { + return symbol + this.getStatusIcon() + "\nEvent Name: " + this.eventName + "\nDate: " + + date.format(DateTimeFormatter.ofPattern("MMM d yyyy")) + "\nTime: " + this.eventTime; + } + + + public long numberOfDaysLeft() { + return ChronoUnit.DAYS.between(LocalDate.now(), this.getEventDate()); + } + + /** + * Attempts to read the date time. If it fails, uses relative timing to try again. + * + * @param dateStr The Date to be processed + * @param timeStr The time to be processed + */ + public void setDateTime(String dateStr, String timeStr) { + eventTime = timeStr; + try { + date = LocalDate.parse(dateStr); + + } catch (DateTimeParseException e) { + // Ignore + } + if (date != null) { + return; + } + LocalDateTime start = null; + if (dateStr.toLowerCase().contains("next")) { + if (dateStr.toLowerCase().matches("next\\s*mon.*")) { + start = LocalDateTime.now().with(next(DayOfWeek.MONDAY)); + } else if (dateStr.toLowerCase().matches("next\\s*tue.*")) { + start = LocalDateTime.now().with(next(DayOfWeek.TUESDAY)); + } else if (dateStr.toLowerCase().matches("next\\s*wed.*")) { + start = LocalDateTime.now().with(next(DayOfWeek.WEDNESDAY)); + } else if (dateStr.toLowerCase().matches("next\\s*thu.*")) { + start = LocalDateTime.now().with(next(DayOfWeek.THURSDAY)); + } else if (dateStr.toLowerCase().matches("next\\s*fri.*")) { + start = LocalDateTime.now().with(next(DayOfWeek.FRIDAY)); + } else if (dateStr.toLowerCase().matches("next\\s*sat.*")) { + start = LocalDateTime.now().with(next(DayOfWeek.SATURDAY)); + } else if (dateStr.toLowerCase().matches("next\\s*sun.*")) { + start = LocalDateTime.now().with(next(DayOfWeek.SUNDAY)); + } + } + if (dateStr.toLowerCase().contains("end")) { + if (dateStr.toLowerCase().matches("end\\s*mon.*")) { + start = LocalDateTime.now().with(next(DayOfWeek.MONDAY)); + } else if (dateStr.toLowerCase().matches("end\\s*tue.*")) { + start = LocalDateTime.now().with(next(DayOfWeek.TUESDAY)); + } else if (dateStr.toLowerCase().matches("end\\s*wed.*")) { + start = LocalDateTime.now().with(next(DayOfWeek.WEDNESDAY)); + } else if (dateStr.toLowerCase().matches("end\\s*thu.*")) { + start = LocalDateTime.now().with(next(DayOfWeek.THURSDAY)); + } else if (dateStr.toLowerCase().matches("end\\s*fri.*")) { + start = LocalDateTime.now().with(next(DayOfWeek.FRIDAY)); + } else if (dateStr.toLowerCase().matches("end\\s*sat.*")) { + start = LocalDateTime.now().with(next(DayOfWeek.SATURDAY)); + } else if (dateStr.toLowerCase().matches("end\\s*sun.*")) { + start = LocalDateTime.now().with(next(DayOfWeek.SUNDAY)); + } + if (start != null) { + start = start.withHour(23).withMinute(59).withSecond(59).withNano(0); + eventTime = "23-59"; + } + } + if (start != null) { + date = start.toLocalDate(); + } + if (date == null) { + throw new RuntimeException(); + } + } + + public void setEventParticipants(Member m) { + if (m != null) { + this.eventParticipants.add(m); + } + } + + public ArrayList getEventParticipants() { + return eventParticipants; + } + + public String getStringParticipants() { + String output = "["; + if (eventParticipants.size() != 0) { + for (int i = 0; i < eventParticipants.size(); i++) { + output = output.concat(eventParticipants.get(i).getMemberName()); + if (i < (eventParticipants.size() - 1)) { + output = output.concat(" & "); + } + } + } + output = output.concat("]"); + return output; + } + + /** + * Used to identify if the string contains the keyword specified in its description. + * + * @param keyword The keyword to be matched with the description. + * @return true if list contains the keyword + */ + public boolean containsNameKeyword(String keyword) { + boolean containsKeyword = eventName.toLowerCase().contains(keyword.toLowerCase()); + return containsKeyword; + } + + public boolean containsDateKeyword(LocalDate localDate) { + boolean containsKeyword = date.equals(localDate); + return containsKeyword; + } + + public String printEventParticipant() { + String output = "The following " + ((this.getEventParticipants().size() > 1) ? "members have" : "member has") + + " participated in this event:\n"; + for (int i = 0; i < this.getEventParticipants().size(); i++) { + int index = i + 1; + output = output.concat(index + ". " + this.getEventParticipants().get(i).getMemberName() + "\n"); + } + return output; + } +} + diff --git a/src/main/java/seedu/duke/event/EventList.java b/src/main/java/seedu/duke/event/EventList.java new file mode 100644 index 0000000000..42e979b1f2 --- /dev/null +++ b/src/main/java/seedu/duke/event/EventList.java @@ -0,0 +1,410 @@ + +package seedu.duke.event; + +import seedu.duke.hr.Member; +import seedu.duke.hr.MemberList; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.Scanner; +import java.util.logging.Level; +import java.util.logging.Logger; + + +public class EventList { + public static ArrayList events = new ArrayList<>(); + public static Logger logger = Logger.getGlobal(); + public static Scanner scanner = new Scanner(System.in); + + public static final String COMMAND_EVENT_NOT_EXIST = + "OOPS!!! The event does not exist.\n"; + public static final String ARE_YOU_SURE_THAT_YOU_WANT_TO_CLEAR_THE_LIST = + "Are you sure you want to clear the list? Y/N\n"; + public static final String COMMAND_EVENT_LIST_CLEAR_SUCCESSFUL = "The list has been cleared!"; + public static final String COMMAND_EVENT_LIST_CLEAR_UNSUCCESSFUL = "The list will not be cleared!"; + public static final String COMMAND_EVENT_LIST_EMPTY = "Oops! The event list is empty!"; + public static final String COMMAND_ADD_EVENT_SUCCESSFUL = "Got it. I've added this Event:\n"; + public static final String COMMAND_DELETE_EVENT_SUCCESSFUL = "Got it! I'll remove this Event:\n"; + public static final String COMMAND_MARK_EVENT_AS_COMPLETE_SUCCESSFUL = "Nice! I've marked this task as done:\n"; + public static final String COMMAND_KEYWORD_NOT_FOUND = "No matching events found!"; + public static final String COMMAND_NOT_VALID_DATE = + "Oops! Seems like you have entered a past date. Please enter a valid date."; + + public static Event getEvent(int index) { + return events.get(index); + } + + + /** + * Adds member to the arraylist. + * + * @param event event to be added in the list. + */ + public static String addEvent(Event event) { + logger.setLevel(Level.OFF); + logger.info("Adding event to list\n"); + String userOutput; + //User does not accidentally add an event with a past date. + LocalDate date = event.getEventDate(); + + if (date.isBefore(LocalDate.now())) { + return COMMAND_NOT_VALID_DATE; + } else { + events.add(event); + userOutput = COMMAND_ADD_EVENT_SUCCESSFUL + event.printEvent() + + "\nNow you have " + events.size() + " event in the list.\n"; + logger.info("Added event to list\n"); + } + + return userOutput; + } + + + /** + * To delete an event based on the given index. + * + * @param index index to be deleted from list + */ + public static String deleteEvent(int index) { + logger.setLevel(Level.OFF); + logger.info("Deleting event\n"); + String userOutput; + try { + if (events.size() == 0) { + logger.warning("Empty event list.\n"); + userOutput = COMMAND_EVENT_LIST_EMPTY; + } else { + userOutput = COMMAND_DELETE_EVENT_SUCCESSFUL; + userOutput = userOutput.concat(events.get(index).printEvent() + "\n"); + events.remove(index); + userOutput = userOutput.concat("Now you have " + events.size() + " event in the list."); + logger.info("Deleted test from list\n"); + } + } catch (IndexOutOfBoundsException e) { + userOutput = COMMAND_EVENT_NOT_EXIST; + } + return userOutput; + } + + + /** + * Deletes all the events in the list. + * @return output String informing if list is emptied + */ + public static String clearEvents() { + logger.setLevel(Level.OFF); + logger.info("Clearing event\n"); + String output = ""; + if (events.size() == 0) { + logger.warning("Empty event list.\n"); + output = COMMAND_EVENT_LIST_EMPTY; + } else { + System.out.println(ARE_YOU_SURE_THAT_YOU_WANT_TO_CLEAR_THE_LIST); + String userInput = scanner.nextLine(); + if (userInput.toLowerCase().equals("y")) { + events.clear(); + output = output.concat(COMMAND_EVENT_LIST_CLEAR_SUCCESSFUL); + } else { + output = output.concat(COMMAND_EVENT_LIST_CLEAR_UNSUCCESSFUL); + } + } + return output; + } + + + /** + * Marks a event as done. + * + * @param index item to be marked as completed + * @return userOutput to be printed out + */ + public static String isCompleted(int index) { + String userOutput = ""; + try { + int numToBeMarked = index + 1; + Event event = events.get(index); + event.isDone = true; + + userOutput = userOutput.concat(COMMAND_MARK_EVENT_AS_COMPLETE_SUCCESSFUL + + numToBeMarked + "." + events.get(index).printEvent()); + } catch (IndexOutOfBoundsException e) { + userOutput = COMMAND_EVENT_NOT_EXIST; + } + return userOutput; + } + + + /** + * Prints a list of events. + * + * @return list of events + */ + public static String printEventList() { + logger.setLevel(Level.OFF); + logger.info("Initialising event list\n"); + String userOutput; + if (events.size() == 0) { + logger.warning("Empty event list.\n"); + userOutput = (COMMAND_EVENT_LIST_EMPTY); + } else { + userOutput = "Here are the current events in your list:\n"; + + for (Event event : events) { + userOutput = userOutput.concat(events.indexOf(event) + 1 + "."); + userOutput = userOutput.concat(event.printEvent()) + "\n" + "*".repeat(50) + "\n"; + } + logger.info("Event List ready"); + } + + return userOutput; + } + + + /** + * Shows number of left to events. + * + * @return number of days left to event. + */ + public static String countdownView() { + String userOutput = ""; + int eventNumber = 1; + ArrayList eventsSortedByDate = events; + eventsSortedByDate.sort(Comparator.comparing(Event::getEventDate)); + if (events.size() != 0) { + for (Event event : eventsSortedByDate) { + if (!event.getEventDate().isBefore(LocalDate.now())) { + userOutput = userOutput + eventNumber + "." + event.printEvent(); + userOutput = userOutput.concat("\nNumber of day(s) left: " + event.numberOfDaysLeft()) + + "\n" + "*".repeat(50) + "\n"; + eventNumber++; + } + } + } else { + userOutput = COMMAND_EVENT_LIST_EMPTY; + } + return userOutput; + } + + + /** + * Displays the list of tasks containing the keyword. + * + * @param keyword The keyword to be searched for. + */ + + public static String searchEvents(String keyword) { + String output = ""; + try { + if (checkEventNameMatch(keyword)) { + output = output.concat(printFilteredEventsByName(keyword)); + } else if (checkEventDateMatch(keyword)) { + output = output.concat(printFilteredEventsByDate(keyword)); + } else { + output = output.concat(COMMAND_KEYWORD_NOT_FOUND); + } + } catch (Exception e) { + output = output.concat(COMMAND_KEYWORD_NOT_FOUND); + } + return output; + } + + + /** + * Used to check if there is at least one task containing the keyword in it's description. + * + * @param keyword The word used for search. + * @return returns true if at least one event contains the event name. + */ + public static boolean checkEventNameMatch(String keyword) { + boolean hasMatchedTask = false; + for (Event event : events) { + if (event.containsNameKeyword(keyword)) { + hasMatchedTask = true; + break; + } + } + return hasMatchedTask; + } + + + /** + * Used to check if there is at least one task containing the keyword in it's description. + * + * @param keyword The word used for search. + * @return returns true if at least one event contains the event date + */ + public static boolean checkEventDateMatch(String keyword) { + assert keyword != null; + LocalDate date = LocalDate.parse(keyword); + boolean hasMatchedTask = false; + for (Event event : events) { + if (event.containsDateKeyword(date)) { + hasMatchedTask = true; + break; + } + } + return hasMatchedTask; + } + + + /** + * Displays the list of tasks containing the keyword. + * + * @param keyword The word used for search. + */ + private static String printFilteredEventsByName(String keyword) { + assert keyword != null; + int taskNumber = 1; + String output = ""; + for (Event event : events) { + if ((event.containsNameKeyword(keyword))) { + output = output + taskNumber + "." + event.printEvent() + "\n" + "*".repeat(50) + "\n"; + taskNumber++; + } + } + return output; + } + + + /** + * Displays the list of tasks containing the keyword. + * + * @param keyword The word used for search. + */ + private static String printFilteredEventsByDate(String keyword) { + assert keyword != null; + int taskNumber = 1; + String output = ""; + for (Event event : events) { + if ((event.containsDateKeyword(LocalDate.parse(keyword)))) { + output = output + taskNumber + "." + event.printEvent() + "\n" + "*".repeat(50) + "\n"; + taskNumber++; + } + } + return output; + } + + + /** + * Used to find Event with the given event name. + * + * @param eventName The event name used for search. + * @return returns Event if it exists in the event list, else return null. + */ + public static Event findEventByName(String eventName) { + for (Event event : events) { + if (event.getEventName().equalsIgnoreCase(eventName)) { + return event; + } + } + return null; + } + + + /** + * Check if Event with the given member name exists. + * + * @param eventName The event name used for search. + * @return returns true if it exists in the event list, else return false. + */ + public static boolean checkEventExistence(String eventName) { + boolean hasExist = false; + for (int i = 0; i < events.size(); i++) { + if (events.get(i).getEventName().equalsIgnoreCase(eventName)) { + hasExist = true; + } + } + return hasExist; + } + + + /** + * Adds Member with the given member name into participant list of event with the given event name. + * + * @param eventName The event name. + * @param memberName The member name. + * @return returns user output. + */ + public static String addAttendance(String eventName, String memberName) { + String output = ""; + if (!checkEventExistence(eventName)) { + output = output.concat(COMMAND_EVENT_NOT_EXIST); + return output; + } + if (!MemberList.checkMemberExistence(MemberList.members, memberName)) { + output = output.concat("Member does not exist!\n"); + return output; + } + Event e = findEventByName(eventName); + if (MemberList.checkMemberExistence(e.getEventParticipants(), memberName)) { + output = output.concat("Member attendance had already been taken!\n"); + return output; + } + Member m = MemberList.findMemberByName(memberName); + e.setEventParticipants(m); + output = "Noted. I have added this participant to this event:\n"; + output = output.concat(m.getMemberName() + "\n"); + output = output.concat("Now you have " + e.eventParticipants.size() + " member" + + ((e.eventParticipants.size() == 1) ? "" : "s") + " participated in " + + e.eventName + ".\n"); + return output; + } + + + /** + * Displays participant list of event with the given event name. + * + * @param eventName The event name. + * @return returns user output. + */ + public static String listAttendance(String eventName) { + String output = ""; + boolean isEventExists = checkEventExistence(eventName); + if (isEventExists) { + Event e = findEventByName(eventName); + output = output.concat(e.printEventParticipant()); + output = output.concat("Now you have " + e.eventParticipants.size() + " member" + + ((e.eventParticipants.size() == 1) ? "" : "s") + " attended " + + e.eventName + ".\n"); + } else { + output = COMMAND_EVENT_NOT_EXIST; + } + return output; + } + + + /** + * Deletes Member with the given member name from participant list of event with the given event name. + * + * @param eventName The event name. + * @param memberName The member name. + * @return returns user output. + */ + public static String deleteAttendance(String eventName, String memberName) { + String output = ""; + if (!checkEventExistence(eventName)) { + output = COMMAND_EVENT_NOT_EXIST; + return output; + } + Event event = findEventByName(eventName); + if (!MemberList.checkMemberExistence(event.getEventParticipants(), memberName)) { + output = "Member attendance for this event has not been taken!\n"; + return output; + } + int index = MemberList.findMemberIndex(event.getEventParticipants(), memberName); + try { + output = "Got it! I'll remove this member from the event attendance:\n"; + output = output.concat(event.getEventParticipants().get(index).getMemberName() + "\n"); + event.getEventParticipants().remove(index); + output = output.concat("Now you have " + event.eventParticipants.size() + " member" + + ((event.eventParticipants.size() == 1) ? "" : "s") + " attended " + + event.eventName + ".\n"); + } catch (IndexOutOfBoundsException e) { + output = COMMAND_EVENT_NOT_EXIST; + } + return output; + } +} + + diff --git a/src/main/java/seedu/duke/finance/CommandFinanceAdd.java b/src/main/java/seedu/duke/finance/CommandFinanceAdd.java new file mode 100644 index 0000000000..7a6b0843ee --- /dev/null +++ b/src/main/java/seedu/duke/finance/CommandFinanceAdd.java @@ -0,0 +1,76 @@ +package seedu.duke.finance; + +import seedu.duke.Command; +import seedu.duke.DukeFinanceAddDescriptionLostException; +import seedu.duke.DukeNotNumberException; +import seedu.duke.backend.UserInput; + +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Represents add finance log entry command. + */ +public class CommandFinanceAdd extends Command { + private UserInput userinput; + private Logger logger = Logger.getGlobal(); + + @Override + public String execute() throws DukeFinanceAddDescriptionLostException, DukeNotNumberException { + logger.setLevel(Level.OFF); + logger.info("Start adding finance log...\n"); + String input = userinput.getArg(""); + if (input == null) { + logger.warning("The input format is wrong.\n"); + throw new DukeFinanceAddDescriptionLostException(); + } + String[] contents = input.trim().split(" "); + int length = contents.length; + if (length <= 1) { + return "Syntax: finance addLog ITEM ITEM_VALUE"; + } + String item = ""; + for (int i = 0; i < length - 1; i++) { + if (i == length - 2) { + item = item + contents[i]; + } else { + item = item + contents[i] + " "; + } + } + try { + for (int i = 0; i < contents[length - 1].length(); i++) { + if (!Character.isDigit(contents[length - 1].charAt(i)) && contents[length - 1].charAt(i) != '.' + && contents[length - 1].charAt(i) != '-') { + logger.warning("The number in the end is missing...\n"); + throw new DukeNotNumberException(); + } + } + double budget = Double.parseDouble(contents[length - 1]); + if (budget <= 0) { + return "Please input a valid number for budget amount.\n"; + } + FinanceLog fl = new FinanceLog(item,budget); + String output = FinanceList.addLog(fl); + logger.info("End adding...\n"); + return output; + } catch (NumberFormatException nfe) { + logger.warning("The input format is wrong.\n"); + throw new DukeFinanceAddDescriptionLostException(); + } + } + + @Override + public String help() { + return "Syntax: finance addLog ITEM_NAME ITEM_VALUE"; + } + + public int validate(UserInput ui) { + if (ui.getCategory().equals("finance") && (ui.getCommand().equalsIgnoreCase("addlog") + || ui.getCommand().equalsIgnoreCase("add") + || ui.getCommand().equalsIgnoreCase("a"))) { + userinput = ui; + return ACCEPT; + } + return NO_MATCH; + } +} diff --git a/src/main/java/seedu/duke/finance/CommandFinanceChange.java b/src/main/java/seedu/duke/finance/CommandFinanceChange.java new file mode 100644 index 0000000000..b6311ee4e7 --- /dev/null +++ b/src/main/java/seedu/duke/finance/CommandFinanceChange.java @@ -0,0 +1,63 @@ +package seedu.duke.finance; + +import seedu.duke.Command; +import seedu.duke.DukeNotNumberException; +import seedu.duke.backend.UserInput; + +/** + * Represents change information of a finance log entry. + */ +public class CommandFinanceChange extends Command { + UserInput userinput; + + @Override + public String execute() throws DukeNotNumberException { + try { + String input = userinput.getArg("n"); + String[] contents = input.trim().split(" "); + int length = contents.length; + String item = ""; + if (length <= 1) { + return "Syntax: finance changeLog /i INDEX /n ITEM_NAME ITEM_VALUE"; + } + for (int i = 0; i < length - 1; i++) { + if (i == length - 2) { + item = item + contents[i]; + } else { + item = item + contents[i] + " "; + } + } + for (int i = 0; i < contents[length - 1].length(); i++) { + if (!Character.isDigit(contents[length - 1].charAt(i)) && contents[length - 1].charAt(i) != '.') { + throw new DukeNotNumberException(); + } + } + double budget = Double.parseDouble(contents[length - 1]); + if (budget <= 0) { + return "Please input a valid number for budget amount.\n"; + } + int index = Integer.parseInt(userinput.getArg("i")); + String output = FinanceList.changeFinanceLog(index, item, budget); + return output; + } catch (NumberFormatException e) { + throw new DukeNotNumberException(); + } + } + + @Override + public String help() { + return "Syntax: finance changeLog /i INDEX /n ITEM_NAME ITEM_VALUE"; + } + + public int validate(UserInput ui) { + if (ui.getCategory().equals("finance") && (ui.getCommand().equalsIgnoreCase("changelog") + || ui.getCommand().equalsIgnoreCase("c"))) { + if (ui.getArg("i") != null && ui.getArg("n") != null) { + userinput = ui; + return ACCEPT; + } + return ARGUMENT_ERR; + } + return NO_MATCH; + } +} diff --git a/src/main/java/seedu/duke/finance/CommandFinanceDel.java b/src/main/java/seedu/duke/finance/CommandFinanceDel.java new file mode 100644 index 0000000000..72a9438615 --- /dev/null +++ b/src/main/java/seedu/duke/finance/CommandFinanceDel.java @@ -0,0 +1,45 @@ +package seedu.duke.finance; + +import seedu.duke.Command; +import seedu.duke.DukeNotNumberException; +import seedu.duke.backend.UserInput; + +/** + * Represents delete a finance log entry from FinanceList. + */ +public class CommandFinanceDel extends Command { + private UserInput userinput; + + @Override + public String execute() throws DukeNotNumberException { + String input = userinput.getArg(""); + for (int i = 0; i < input.length(); i++) { + if (!Character.isDigit(input.charAt(i))) { + throw new DukeNotNumberException(); + } + } + int index = Integer.parseInt(input.trim()); + String output = FinanceList.dellog(index); + return output; + } + + @Override + public String help() { + return "Syntax: finance delLog INDEX"; + } + + public int validate(UserInput ui) { + if (ui.getCategory().equals("finance") && (ui.getCommand().equalsIgnoreCase("dellog") + || ui.getCommand().equalsIgnoreCase("del") + || ui.getCommand().equalsIgnoreCase("d"))) { + try { + Integer.parseInt(ui.getArg("")); + } catch (NumberFormatException e) { + return ARGUMENT_ERR; + } + userinput = ui; + return ACCEPT; + } + return NO_MATCH; + } +} diff --git a/src/main/java/seedu/duke/finance/CommandFinanceSummary.java b/src/main/java/seedu/duke/finance/CommandFinanceSummary.java new file mode 100644 index 0000000000..8d02db420b --- /dev/null +++ b/src/main/java/seedu/duke/finance/CommandFinanceSummary.java @@ -0,0 +1,33 @@ +package seedu.duke.finance; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + +/** + * Represents list the finance summary. + */ +public class CommandFinanceSummary extends Command { + private UserInput userinput; + + @Override + public String execute() { + String output = FinanceList.summary(); + return output; + } + + @Override + public String help() { + return "Syntax: finance summary"; + } + + public int validate(UserInput ui) { + if (ui.getCategory().equals("finance") && (ui.getCommand().equalsIgnoreCase("summary") + || ui.getCommand().equalsIgnoreCase("list") + || ui.getCommand().equalsIgnoreCase("s") + || ui.getCommand().equalsIgnoreCase("l"))) { + userinput = ui; + return ACCEPT; + } + return NO_MATCH; + } +} diff --git a/src/main/java/seedu/duke/finance/FinanceList.java b/src/main/java/seedu/duke/finance/FinanceList.java new file mode 100644 index 0000000000..4797791bd3 --- /dev/null +++ b/src/main/java/seedu/duke/finance/FinanceList.java @@ -0,0 +1,100 @@ +package seedu.duke.finance; + +import java.util.ArrayList; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class FinanceList { + public static ArrayList financeLogs = new ArrayList(); + public static Logger logger = Logger.getGlobal(); + + /** + * Add one log into the finance list. + * @param fl the new finance log user wants to add + * @return the output when it successfully add one log + */ + public static String addLog(FinanceLog fl) { + financeLogs.add(fl); + String output = "Got it! I've added this to the list.\n"; + String output1 = fl.toString(); + String output2; + if (fl.getSize() > 1) { + output2 = "There are " + fl.getSize() + " log entries in the list now.\n"; + } else { + output2 = "There is " + fl.getSize() + " log entry in the list now.\n"; + } + output = output + output1 + output2; + return output; + } + + /** + * Delete one particular log from the list. + * @param index the index of the log which user wants to delete + * @return the output when successfully delete a log + */ + public static String dellog(int index) { + try { + logger.setLevel(Level.OFF); + logger.info("Start deleting...\n"); + FinanceLog.sum -= financeLogs.get(index - 1).getLogVal(); + financeLogs.remove(index - 1); + FinanceLog.finSize--; + String output2; + if (FinanceLog.finSize > 1) { + output2 = "There are " + FinanceLog.finSize + " log entries in the list now.\n"; + } else { + output2 = "There is " + FinanceLog.finSize + " log entry in the list now.\n"; + } + String output1 = "Got it! I've removed this from list.\n"; + String output = output1 + output2; + logger.info("End deleting...\n"); + return output; + } catch (IndexOutOfBoundsException e) { + logger.warning("The index is out of bound.\n"); + return "Your index input does not exist in the list"; + } + } + + /** + * Show the all the logs in the list and shows the total budget amount. + * @return the finance list + */ + public static String summary() { + logger.setLevel(Level.OFF); + logger.info("Start listing summary...\n"); + if (FinanceLog.getSize() == 0) { + logger.warning("The list is empty.\n"); + return "Sorry, your finance list is empty.\n"; + } + String output = "Here is the list:\n"; + for (int i = 0;i < FinanceLog.getSize();i++) { + output = output.concat("\t" + (i + 1) + "." + financeLogs.get(i).getLog() + " $" + + financeLogs.get(i).getLogVal() + "\n"); + } + output = output.concat("Total budget: $" + String.format("%.2f",FinanceLog.getSum()) + "\n"); + logger.info("End processing..."); + return output; + } + + /** + * Change the financeLog's finLog and finLogVal of index provided by the user. + * @param index the index of financeLog + * @param newLog new finLog for the financeLog + * @param newVal new finLogVal for the financeLog + * @return the information of change financeLog + */ + public static String changeFinanceLog(int index, String newLog, double newVal) { + try { + String output = "Got it! I will change:\n" + index + "." + financeLogs.get(index - 1).getLog() + + " $" + financeLogs.get(index - 1).getLogVal() + "\n\n"; + FinanceLog fl = financeLogs.get(index - 1); + fl.setFinLog(newLog); + fl.setFinLogVal(newVal); + output = output + "Now the new finance log entry is:\n" + index + "." + financeLogs.get(index - 1).getLog() + + " $" + financeLogs.get(index - 1).getLogVal() + "\n"; + return output; + } catch (IndexOutOfBoundsException e) { + return "Your input index does not exist in the list."; + } + } +} diff --git a/src/main/java/seedu/duke/finance/FinanceLog.java b/src/main/java/seedu/duke/finance/FinanceLog.java new file mode 100644 index 0000000000..d0899134f9 --- /dev/null +++ b/src/main/java/seedu/duke/finance/FinanceLog.java @@ -0,0 +1,77 @@ +package seedu.duke.finance; + +public class FinanceLog { + private String finLog; + private double finLogVal; + public static int finSize = 0; + public static double sum = 0; + + /** + * Create a new finance log. + * @param log the content of a finance log + * @param val the value of its budget + */ + public FinanceLog(String log, double val) { + finLog = log; + finLogVal = val; + finSize++; + sum = sum + val; + } + + /** + * Gets the log's content. + * @return log's content + */ + public String getLog() { + return finLog; + } + + /** + * Get the log's budget amount. + * @return log's budget amount + */ + public double getLogVal() { + return finLogVal; + } + + /** + * Gets the size of finance log list. + * @return the size of finance log list + */ + public static int getSize() { + return finSize; + } + + /** + * Gets the sum of total budget. + * @return the sum of total budget + */ + public static double getSum() { + return sum; + } + + /** + * Change the finLog of this FinanceLog. + * @param input the new finLog for this FinanceLog + */ + public void setFinLog(String input) { + finLog = input; + } + + /** + * Change the finLogVal of this FinanceLog. + * @param input the new finLogVal for this FinanceLog + */ + public void setFinLogVal(double input) { + sum = sum - finLogVal + input; + finLogVal = input; + } + + /** + * Form a formatted string for a finance log. + * @return the string of a formatted finance log + */ + public String toString() { + return "\t" + finSize + "." + finLog + " $" + finLogVal + "\n"; + } +} diff --git a/src/main/java/seedu/duke/hr/CommandAddMember.java b/src/main/java/seedu/duke/hr/CommandAddMember.java new file mode 100644 index 0000000000..831e0432b6 --- /dev/null +++ b/src/main/java/seedu/duke/hr/CommandAddMember.java @@ -0,0 +1,74 @@ +package seedu.duke.hr; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + +import static seedu.duke.hr.MemberList.isNumber; +import static seedu.duke.hr.MemberList.findMemberByName; +import static seedu.duke.hr.MemberList.standardizeMemberName; + +/** + * Represents add member command. + */ + +public class CommandAddMember extends Command { + + private UserInput savedInput; + + @Override + public int validate(UserInput input) { + this.savedInput = input; + if (input.getCategory().equals("hr") && (input.getCommand().equalsIgnoreCase("addMember") + || (input.getCommand().equalsIgnoreCase("add") + || input.getCommand().equalsIgnoreCase("a")))) { + if (input.getNumArgs() >= 4) { + if ((input.getArg("n") == null) || (input.getArg("p") == null) || (input.getArg("e") == null) + || (input.getArg("r") == null)) { + return ARGUMENT_ERR; + } + if ((input.getArg("n").equals("")) || (input.getArg("p").equals("")) + || (input.getArg("e").equals("")) || (input.getArg("r").equals(""))) { + return ARGUMENT_ERR; + } + return ACCEPT; + } + return ARGUMENT_ERR; + } else { + return NO_MATCH; + } + } + + @Override + public String execute() { + String output; + if (!isNumber(savedInput.getArg("p"))) { + output = "OOPS!!! The format of the phone number given is incorrect.\n"; + output = output.concat("The phone number should be a whole number not more than 18 digits."); + return output; + } + long phone = Long.parseLong(savedInput.getArg("p")); + if (phone < 0) { + output = "OOPS!!! The phone number should be a positive number."; + return output; + } + String standardName = standardizeMemberName(savedInput.getArg("n")); + Member test = findMemberByName(standardName); + String [] email = savedInput.getArg("e").split(" "); + if (email.length > 1) { + return "Your email address must be a whole string.\n"; + } + if (test == null) { + Member m = new Member(standardName, phone, savedInput.getArg("e"), savedInput.getArg("r")); + output = MemberList.addToList(m); + } else { + output = "OOPS!!! This member already exists. You may want to modify the member's information instead."; + } + return output; + } + + @Override + public String help() { + + return "Syntax: hr add /n NAME /p PHONE_NUMBER (INTEGER) /e EMAIL /r ROLE\n"; + } +} diff --git a/src/main/java/seedu/duke/hr/CommandChangeMemberInfo.java b/src/main/java/seedu/duke/hr/CommandChangeMemberInfo.java new file mode 100644 index 0000000000..06a870b7c4 --- /dev/null +++ b/src/main/java/seedu/duke/hr/CommandChangeMemberInfo.java @@ -0,0 +1,62 @@ +package seedu.duke.hr; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + +import static seedu.duke.hr.MemberList.changeMemberInfo; + +/** + * Represents change member information command. + */ + +public class CommandChangeMemberInfo extends Command { + + private UserInput savedInput; + + @Override + public int validate(UserInput input) { + this.savedInput = input; + if (input.getCategory().equals("hr") && (input.getCommand().equalsIgnoreCase("changeInfo") + || input.getCommand().equalsIgnoreCase("c"))) { + if (input.getNumArgs() >= 2) { + if ((input.getArg("n") == null) || (input.getArg("n").equals("")) + || ((input.getArg("p") == null) && (input.getArg("e") == null) + && (input.getArg("r") == null))) { + return ARGUMENT_ERR; + } + if ((input.getArg("p") != null) && (input.getArg("p").equals(""))) { + return ARGUMENT_ERR; + } + if ((input.getArg("e") != null) && (input.getArg("e").equals(""))) { + return ARGUMENT_ERR; + } + if ((input.getArg("r") != null) && (input.getArg("r").equals(""))) { + return ARGUMENT_ERR; + } + return ACCEPT; + } + return ARGUMENT_ERR; + } else { + return NO_MATCH; + } + } + + @Override + public String execute() { + String output; + Member m = MemberList.findMemberByName(savedInput.getArg("n")); + if (m == null) { + return "OOPS!!! The member does not exist. You can add this member into the list instead. \n"; + } + output = changeMemberInfo(m, savedInput.getArg("p"), savedInput.getArg("e"), savedInput.getArg("r")); + + return output; + } + + @Override + public String help() { + + return "Syntax: hr changeInfo /n NAME (/p ITEM) (/e ITEM) (/r ITEM)\n" + + "One or more information in the brackets need to be present.\n"; + } +} diff --git a/src/main/java/seedu/duke/hr/CommandDelMember.java b/src/main/java/seedu/duke/hr/CommandDelMember.java new file mode 100644 index 0000000000..62f69a4cba --- /dev/null +++ b/src/main/java/seedu/duke/hr/CommandDelMember.java @@ -0,0 +1,46 @@ +package seedu.duke.hr; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + +import static seedu.duke.hr.MemberList.isNumber; + +/** + * Represents delete member command. + */ +public class CommandDelMember extends Command { + + private UserInput savedInput; + private int index; + + @Override + public int validate(UserInput input) { + this.savedInput = input; + if (input.getCategory().equals("hr") && (input.getCommand().equalsIgnoreCase("delMember") + || input.getCommand().equalsIgnoreCase("delete") + || input.getCommand().equalsIgnoreCase("d"))) { + if (input.getNumArgs() == 1) { + if ((input.getArg("") != null) && isNumber(input.getArg(""))) { + + return ACCEPT; + } + } + return ARGUMENT_ERR; + } else { + return NO_MATCH; + } + } + + @Override + public String execute() { + index = Integer.parseInt(savedInput.getArg("")); + String output = MemberList.deleteFromList(index - 1); + return output; + } + + @Override + public String help() { + return "Syntax: hr delete MEMBER_INDEX (INTEGER)\n"; + } + +} \ No newline at end of file diff --git a/src/main/java/seedu/duke/hr/CommandListConnection.java b/src/main/java/seedu/duke/hr/CommandListConnection.java new file mode 100644 index 0000000000..6a349f0f1e --- /dev/null +++ b/src/main/java/seedu/duke/hr/CommandListConnection.java @@ -0,0 +1,31 @@ +package seedu.duke.hr; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + +public class CommandListConnection extends Command { + private UserInput userInput; + + @Override + public String execute() { + String output = MemberList.searchConnection(); + return output; + } + + @Override + public String help() { + return "Syntax: hr list connections\n"; + } + + public int validate(UserInput input) { + if (input.getCategory().equals("hr") && (input.getCommand().equalsIgnoreCase("list") + || input.getCommand().equalsIgnoreCase("l")) + && (input.getArg("").equalsIgnoreCase("connections") + || input.getArg("").equalsIgnoreCase("c"))) { + userInput = input; + return ACCEPT; + } else { + return NO_MATCH; + } + } +} diff --git a/src/main/java/seedu/duke/hr/CommandListProfAdmin.java b/src/main/java/seedu/duke/hr/CommandListProfAdmin.java new file mode 100644 index 0000000000..da43c9493e --- /dev/null +++ b/src/main/java/seedu/duke/hr/CommandListProfAdmin.java @@ -0,0 +1,30 @@ +package seedu.duke.hr; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + +public class CommandListProfAdmin extends Command { + private UserInput userInput; + + @Override + public String execute() { + String output = MemberList.searchProfAdmin(); + return output; + } + + @Override + public String help() { + return "Syntax: hr list prof&admin\n"; + } + + public int validate(UserInput input) { + if (input.getCategory().equals("hr") && (input.getCommand().equalsIgnoreCase("list") + || input.getCommand().equalsIgnoreCase("l")) + && (input.getArg("").equals("prof&admin") || input.getArg("").equalsIgnoreCase("pa"))) { + userInput = input; + return ACCEPT; + } else { + return NO_MATCH; + } + } +} diff --git a/src/main/java/seedu/duke/hr/CommandSearchMember.java b/src/main/java/seedu/duke/hr/CommandSearchMember.java new file mode 100644 index 0000000000..e8a77ee379 --- /dev/null +++ b/src/main/java/seedu/duke/hr/CommandSearchMember.java @@ -0,0 +1,73 @@ +package seedu.duke.hr; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + +public class CommandSearchMember extends Command { + private UserInput userInput; + + /** + * Determine which part of member information to search for the target content. + * @return the search result + */ + @Override + public String execute() { + boolean name = false; + boolean email = false; + boolean phone = false; + boolean role = false; + boolean any = false; + String anyS = ""; + String nameS = ""; + String emailS = ""; + String phoneS = ""; + String roleS = ""; + if (userInput.getArg("") != null && !userInput.getArg("").equals("")) { + any = true; + anyS = userInput.getArg(""); + } + if (userInput.getArg("n") != null && !userInput.getArg("n").equals("")) { + name = true; + nameS = userInput.getArg("n"); + } + if (userInput.getArg("e") != null && !userInput.getArg("e").equals("")) { + email = true; + emailS = userInput.getArg("e"); + } + if (userInput.getArg("p") != null && !userInput.getArg("p").equals("")) { + phone = true; + phoneS = userInput.getArg("p"); + } + if (userInput.getArg("r") != null && !userInput.getArg("r").equals("")) { + role = true; + roleS = userInput.getArg("r"); + } + String output = MemberList.search(any, name, phone, email, role, anyS, + nameS, phoneS, emailS, roleS); + return output; + } + + /** + * Provide the help information when user has trouble typing the correct command. + * @return the syntax for search command + */ + @Override + public String help() { + return "Syntax: hr search ITEM /n ITEM /p ITEM /e ITEM /r ITEM\n"; + } + + /** + * Determine whether the user is calling this command. + * @param input The UserInput to Validate + * @return it is the command the user is calling or not + */ + public int validate(UserInput input) { + if (input.getCategory().equals("hr") && (input.getCommand().equalsIgnoreCase("search") + || input.getCommand().equalsIgnoreCase("s"))) { + userInput = input; + return ACCEPT; + } else { + return NO_MATCH; + } + } +} diff --git a/src/main/java/seedu/duke/hr/CommandViewMember.java b/src/main/java/seedu/duke/hr/CommandViewMember.java new file mode 100644 index 0000000000..f636e1479c --- /dev/null +++ b/src/main/java/seedu/duke/hr/CommandViewMember.java @@ -0,0 +1,37 @@ +package seedu.duke.hr; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + +/** + * Represents view member command. + */ +public class CommandViewMember extends Command { + + private UserInput savedInput; + + @Override + public int validate(UserInput input) { + this.savedInput = input; + if (input.getCategory().equals("hr") && input.getArg("") == null + && (input.getCommand().equalsIgnoreCase("listMember") + || input.getCommand().equalsIgnoreCase("list") + || input.getCommand().equalsIgnoreCase("l"))) { + return ACCEPT; + } else { + return NO_MATCH; + } + } + + @Override + public String execute() { + String output = MemberList.listMembers(); + return output; + } + + @Override + public String help() { + + return "Syntax: hr list\n"; + } +} diff --git a/src/main/java/seedu/duke/hr/Member.java b/src/main/java/seedu/duke/hr/Member.java new file mode 100644 index 0000000000..3196b98abe --- /dev/null +++ b/src/main/java/seedu/duke/hr/Member.java @@ -0,0 +1,70 @@ +package seedu.duke.hr; + +public class Member { + public static int numOfMembers = 0; + protected String memberName; + protected long memberPhone; + protected String memberEmail; + protected String memberRole; + protected String attendanceRate; + + public Member(String name, long phone, String email, String role) { + this.memberName = name; + this.memberPhone = phone; + this.memberEmail = email; + this.memberRole = role; + numOfMembers += 1; + } + + public long getMemberPhone() { + + return this.memberPhone; + } + + public String getMemberEmail() { + + return this.memberEmail; + } + + public String getMemberRole() { + + return this.memberRole; + } + + public String getMemberName() { + + return this.memberName; + } + + public void setMemberRole(String newRole) { + + this.memberRole = newRole; + } + + public void setMemberPhone(long newPhone) { + + this.memberPhone = newPhone; + } + + public void setMemberEmail(String newEmail) { + + this.memberEmail = newEmail; + } + + public void setAttendanceRate(String attendanceRate) { + this.attendanceRate = attendanceRate; + } + + public String getAttendanceRate() { + return this.attendanceRate; + } + + /** + * Prints task data in the desired form to be printed for user interaction. + * */ + public String toString() { + MemberList.updateAttendanceRate(memberName); + return "name: " + this.memberName + " |phone: " + this.getMemberPhone() + " |email: " + this.getMemberEmail() + + " |role: " + this.getMemberRole() + " |attendance rate: " + this.getAttendanceRate() + "%"; + } +} diff --git a/src/main/java/seedu/duke/hr/MemberList.java b/src/main/java/seedu/duke/hr/MemberList.java new file mode 100644 index 0000000000..f67e197f37 --- /dev/null +++ b/src/main/java/seedu/duke/hr/MemberList.java @@ -0,0 +1,403 @@ +package seedu.duke.hr; + +import seedu.duke.event.EventList; + +import java.text.DecimalFormat; +import java.util.ArrayList; + +public class MemberList { + public static ArrayList members = new ArrayList<>(); + + /** + * Adds member to the arraylist. + * @param m member to be added. + */ + public static String addToList(Member m) { + members.add(m); + String output = "Got it. I've added this member:\n" + m.toString() + "\n" + + "Now you have " + Member.numOfMembers + " member" + ((Member.numOfMembers == 1) ? "" : "s") + + " in the list.\n"; + return output; + } + + /** + * Returns the list of members. + * @return output error message or member list + */ + public static String listMembers() { + String output; + if (Member.numOfMembers == 0) { + output = "OOPS!!! The member list is empty!\n"; + } else { + output = "Here is the list of members in your CCA:\n"; + for (int i = 0; i < Member.numOfMembers; i++) { + int index = i + 1; + output = output.concat(index + "."); + output = output.concat(members.get(i).toString() + "\n"); + } + } + return output; + } + + /** + * Deletes the member from the arraylist. + * @param index index of member to be deleted. + * @return output error message or info of deleted member. + */ + public static String deleteFromList(int index) { + String output; + try { + output = "Noted. I'll remove this member:\n"; + output = output.concat(members.get(index).toString() + "\n"); + deleteFromEvents(members.get(index).getMemberName()); + members.remove(index); + Member.numOfMembers--; + output = output.concat("Now you have " + Member.numOfMembers + " member"); + output = output.concat(((Member.numOfMembers > 1) ? "s" : "") + " in the list.\n"); + } catch (IndexOutOfBoundsException e) { + output = "OOPS!!! The member does not exist.\n"; + } + return output; + } + + /** + * Deletes member from all events. + * @param memberName memberName to be deleted. + */ + public static void deleteFromEvents(String memberName) { + for (int i = 0; i < EventList.events.size(); i++) { + String eventName = EventList.events.get(i).getEventName(); + EventList.deleteAttendance(eventName, memberName); + } + } + + /** + * Checks whether input can be parsed into an integer. + * @param s input to be checked + * @return true if input can be parsed as an integer, false if input cannot be parsed as an integer. + */ + public static boolean isNumber(String s) { + try { + long index = Long.parseLong(s); + return true; + } catch (NumberFormatException e) { + return false; + } + } + + /** + * Standardizes the member name by capitalizing the first character of each word. + * @param memberName name of the member. + * @return name standardized member name. + */ + public static String standardizeMemberName(String memberName) { + char[] charArray = memberName.toCharArray(); + boolean isSpace = true; + for (int i = 0; i < charArray.length; i++) { + if (Character.isLetter(charArray[i])) { + if (isSpace) { + charArray[i] = Character.toUpperCase(charArray[i]); + isSpace = false; + } else { + charArray[i] = Character.toLowerCase(charArray[i]); + } + } else { + isSpace = true; + } + } + String name = String.valueOf(charArray); + return name; + } + + /** + * find the member in the arraylist. + * @param memberName name of the member to be found. + * @return if member exists, returns the member, else returns null. + */ + public static Member findMemberByName(String memberName) { + for (int i = 0; i < Member.numOfMembers; i++) { + if (members.get(i).getMemberName().equalsIgnoreCase(memberName)) { + return members.get(i); + } + } + return null; + } + + /** + * Finds the index of member with given member name in the arraylist. + * @param list array list of members. + * @param memberName name of the member to be found. + * @return if member exists, returns its index, else returns -1. + */ + public static int findMemberIndex(ArrayList list, String memberName) { + for (int i = 0; i < list.size(); i++) { + if (list.get(i).getMemberName().equalsIgnoreCase(memberName)) { + return i; + } + } + return -1; + } + + /** + * Checks if member with given member name exists in the arraylist. + * @param list array list of members. + * @param memberName name of the member to be found. + * @return if member exists, returns true, else returns false. + */ + public static boolean checkMemberExistence(ArrayList list, String memberName) { + boolean hasExist = false; + for (int i = 0; i < list.size(); i++) { + if (list.get(i).getMemberName().equalsIgnoreCase(memberName)) { + hasExist = true; + } + } + return hasExist; + } + + /** + * Changes the contact information and role of the member in the arraylist. + * @param m member whose information is to be modified. + * @param newPhone new phone number to replace the original phone number. + * @param newEmail new email to replace the original email. + * @param newRole new role to replace the original role. + * @return output message for the user. + */ + public static String changeMemberInfo(Member m, String newPhone, String newEmail, String newRole) { + String output = ""; + try { + if (newPhone != null) { + Long phone = Long.parseLong(newPhone); + if (phone < 0) { + output = "OOPS!!! The phone number should be a positive number."; + return output; + } + m.setMemberPhone(phone); + } + } catch (Exception e) { + output = "OOPS!!! The format of the phone number given is incorrect.\n" + + "The phone number should be a whole number not more than 18 digits.\n"; + return output; + } + + if (newEmail != null) { + m.setMemberEmail(newEmail); + } + + if (newRole != null) { + m.setMemberRole(newRole); + } + output = "I have changed the information of this member:\n"; + output = output.concat(m.toString()); + return output; + } + + /** + * Search for the members that include the any information the user want. + * @param any whether there is any content the user want to search in any part of member information + * @param name whether there is any content the user want to search in name part of member information + * @param phone whether there is any content the user want to search in phone part of member information + * @param email whether there is any content the user want to search in email part of member information + * @param role whether there is any content the user want to search in role part of member information + * @param anyS the string the user want to search for in any part of member information + * @param nameS the string the user want to search for in name part of member information + * @param phoneS the string the user want to search for in phone part of member information + * @param emailS the string the user want to search for in email part of member information + * @param roleS the string the user want to search for in role part of member information + * @return all the members' information that match the content the user wants to search for + */ + public static String search(boolean any, boolean name, boolean phone, boolean email, + boolean role, String anyS, String nameS, String phoneS, + String emailS, String roleS) { + if (!any && !name && !phone && !email && !role) { + return "Please enter the content you want to search for.\n"; + } + if (phone && Long.parseLong(phoneS) < 0) { + return "Please enter a valid phone number.\n"; + } + String output = ""; + int count = 0; + for (int i = 0; i < Member.numOfMembers; i++) { + if (any == true && searchAny(i, anyS)) { + output = output + (i + 1) + "." + members.get(i).toString() + "\n"; + count++; + continue; + } + if (name && searchName(i, nameS)) { + output = output + (i + 1) + "." + members.get(i).toString() + "\n"; + count++; + continue; + } + if (phone && searchPhone(i, phoneS)) { + output = output + (i + 1) + "." + members.get(i).toString() + "\n"; + count++; + continue; + } + if (email && searchEmail(i, emailS)) { + output = output + (i + 1) + "." + members.get(i).toString() + "\n"; + count++; + continue; + } + if (role && searchRole(i, roleS)) { + output = output + (i + 1) + "." + members.get(i).toString() + "\n"; + count++; + continue; + } + } + if (count == 0) { + output = "Sorry, there is no suitable result in the member list.\n"; + } else { + output = "I have found " + count + " result for you:\n" + output; + } + return output; + } + + /** + * Determine if any part of the member information with the particular index includes the target content. + * @param index the index of member + * @param target the information the user wants to search for + * @return whether the member's information matches the target content + */ + public static boolean searchAny(int index, String target) { + if (searchName(index, target) || searchEmail(index, target) + || searchPhone(index, target) || searchRole(index, target)) { + return true; + } + return false; + } + + /** + * Determine if any part of the member's name with the particular index includes the target content. + * @param index the index of member + * @param target the information the user wants to search for + * @return whether the member's name matches the target content + */ + public static boolean searchName(int index, String target) { + if (members.get(index).getMemberName().toLowerCase().contains(target.toLowerCase())) { + return true; + } + return false; + } + + /** + * Determine if any part of the member's email with the particular index includes the target content. + * @param index the index of member + * @param target the information the user wants to search for + * @return whether the member's email matches the target content + */ + public static boolean searchEmail(int index, String target) { + if (members.get(index).getMemberEmail().toLowerCase().contains(target.toLowerCase())) { + return true; + } + return false; + } + + /** + * Determine if any part of the member's phone with the particular index includes the target content. + * @param index the index of member + * @param target the information the user wants to search for + * @return whether the member's phone matches the target content + */ + public static boolean searchPhone(int index, String target) { + String phone = Long.toString(members.get(index).getMemberPhone()); + if (phone.contains(target)) { + return true; + } + return false; + } + + /** + * Determine if any part of the member's role with the particular index includes the target content. + * @param index the index of member + * @param target the information the user wants to search for + * @return whether the member's role matches the target content + */ + public static boolean searchRole(int index, String target) { + if (members.get(index).getMemberRole().toLowerCase().contains(target.toLowerCase())) { + return true; + } + return false; + } + + /** + * Output all the members with role of professor or admin. + * @return the result of searching + */ + public static String searchProfAdmin() { + String output = ""; + int count = 0; + for (int i = 0; i < Member.numOfMembers; i++) { + if (searchRole(i, "prof") || searchRole(i, "professor")) { + output = output + (i + 1) + "." + members.get(i).toString() + "\n"; + count++; + continue; + } + if (searchRole(i, "admin") || searchRole(i,"administrators")) { + output = output + (i + 1) + "." + members.get(i).toString() + "\n"; + count++; + continue; + } + } + if (count == 0) { + output = "Sorry, there is no suitable result in the member list.\n"; + } else { + output = "I have found " + count + " result for you:\n" + output; + } + return output; + } + + /** + * Output all the members with role of alumni or speakers. + * @return the result of searching + */ + public static String searchConnection() { + String output = ""; + int count = 0; + for (int i = 0; i < Member.numOfMembers; i++) { + if (searchRole(i, "alumni") || searchRole(i, "speaker")) { + output = output + (i + 1) + "." + members.get(i).toString() + "\n"; + count++; + } + } + if (count == 0) { + output = "Sorry, there is no suitable result in the member list.\n"; + } else { + output = "I have found " + count + " result for you:\n" + output; + } + return output; + } + + /** + * Update attendance rate of member. + * @param memberName member name. + */ + public static void updateAttendanceRate(String memberName) { + int attended = 0; + for (int i = 0; i < EventList.events.size(); i++) { + if (checkMemberExistence(EventList.events.get(i).getEventParticipants(), memberName)) { + attended++; + } + } + String attendanceRate = calculateAttendanceRate(attended, EventList.events.size()); + Member m = findMemberByName(memberName); + m.setAttendanceRate(attendanceRate); + + } + + /** + * Calculate attendance rate of member. + * @param attended number of events attended. + * @param shouldAttend total number of events that exists. + * @return attendance rate which is formatted into 2 decimal places. + */ + public static String calculateAttendanceRate(double attended, double shouldAttend) { + if (shouldAttend == 0) { + return "0"; + } + double attendanceRate = (attended / shouldAttend) * 100; + DecimalFormat df = new DecimalFormat("###.##"); + String formattedAttendanceRate = df.format(attendanceRate); + return formattedAttendanceRate; + } + + +} diff --git a/src/main/java/seedu/duke/others/CommandBye.java b/src/main/java/seedu/duke/others/CommandBye.java new file mode 100644 index 0000000000..0f868d01c5 --- /dev/null +++ b/src/main/java/seedu/duke/others/CommandBye.java @@ -0,0 +1,27 @@ +package seedu.duke.others; + +import seedu.duke.Command; +import seedu.duke.backend.Ui; +import seedu.duke.backend.UserInput; + +public class CommandBye extends Command { + @Override + public String execute() { + Ui.setShutdown(true); + return "See you next time!"; + } + + @Override + public int validate(UserInput userInput) { + if (userInput.getCategory().equals("") && userInput.getCommand().equalsIgnoreCase("bye")) { + return ACCEPT; + } else { + return NO_MATCH; + } + } + + @Override + public String help() { + return ""; + } +} diff --git a/src/main/java/seedu/duke/others/CommandHelp.java b/src/main/java/seedu/duke/others/CommandHelp.java new file mode 100644 index 0000000000..6bf4228d01 --- /dev/null +++ b/src/main/java/seedu/duke/others/CommandHelp.java @@ -0,0 +1,49 @@ +package seedu.duke.others; + +import seedu.duke.Command; +import seedu.duke.backend.UserInput; + +public class CommandHelp extends Command { + @Override + public String execute() { + return "Hello! Here is a list of commands you can try:\n" + + "\t1. Add members: hr add /n NAME /p PHONE_NUMBER /e EMAIL /r ROLE\n" + + "\t2. Delete member: hr delMember MEMBER_INDEX\n" + + "\t3. View hr list: hr listMember\n" + + "\t4. Change member info: hr changeInfo /n NAME (/p ITEM) (/e ITEM) (/r ITEM)\n" + + "\t5. Search for members: hr search ITEM /n ITEM /p ITEM /e ITEM /r ITEM\n" + + "\t6. view contacts of prof/admin: hr list prof&admin\n" + + "\t7. view contacts of connections: hr list connections\n" + + "\t8. Add events: event addEvent /n EVENT_NAME /d EVENT_DATE /t EVENT_TIME \n" + + "\t9. Delete event: event delEvent EVENT_INDEX\n" + + "\t10. View event list: event listEvent\n" + + "\t11. View countdown to events: event countdown\n" + + "\t12. Search for an event by NAME or DATE: event search /s KEYWORD\n" + + "\t13. Mark an event as done: event done EVENT_INDEX\n" + + "\t14. Add a participant to an event: event addAttendance /n EVENT_NAME /m MEMBER_NAME\n" + + "\t15. Delete a participant from an event: event delAttendance /n EVENT_NAME /m MEMBER_NAME\n" + + "\t16. List participants in an event: event listAttendance /n EVENT_NAME\n" + + "\t17. Add financial log: finance addLog ITEM_NAME ITEM_VALUE\n" + + "\t18. Delete financial log: finance delLog ITEM_INDEX\n" + + "\t19. Change finance log entry information: finance changeLog /i INDEX /n ITEM_NAME ITEM_VALUE\n" + + "\t20. View financial summary: finance summary\n" + + "\t21. Import data: import FILENAME /c finance /name HEADER_NAME /value HEADER_NAME\n" + + "\t22. Exit the program: bye\n" + + " To access our User Guide: https://ay2021s1-cs2113t-f14-1.github.io/tp/UserGuide.html"; + } + + @Override + public int validate(UserInput input) { + if (input.getCategory().equals("") && input.getCommand().equalsIgnoreCase("help")) { + return ACCEPT; + } else { + return NO_MATCH; + } + } + + @Override + public String help() { + + return ""; + } +} \ No newline at end of file diff --git a/src/main/java/seedu/duke/others/CommandImportCsv.java b/src/main/java/seedu/duke/others/CommandImportCsv.java new file mode 100644 index 0000000000..bcb013eaed --- /dev/null +++ b/src/main/java/seedu/duke/others/CommandImportCsv.java @@ -0,0 +1,187 @@ +package seedu.duke.others; + +import seedu.duke.Command; +import seedu.duke.DukeFileFormatException; +import seedu.duke.DukeFileHeaderException; +import seedu.duke.backend.FileManager; +import seedu.duke.backend.UserInput; +import seedu.duke.event.Event; +import seedu.duke.event.EventList; +import seedu.duke.finance.FinanceList; +import seedu.duke.finance.FinanceLog; +import seedu.duke.hr.Member; +import seedu.duke.hr.MemberList; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; + +public class CommandImportCsv extends Command { + private UserInput userInput; + + @Override + public String execute() { + String filename = userInput.getArg(""); + String category = userInput.getArg("c"); + int rowsBefore = 0; + int rowsAfter = 0; + String failed = ""; + try { + HashMap> map = FileManager.readFile(filename); + + if (category.equalsIgnoreCase("finance")) { + int rows = map.get(userInput.getArg("name")).size(); + rowsBefore = FinanceList.financeLogs.size(); + for (int i = 0; i < rows; i++) { + try { + FinanceLog tmp = new FinanceLog(map.get(userInput.getArg("name")).get(i), + Double.parseDouble(map.get(userInput.getArg("value")).get(i))); + FinanceList.financeLogs.add(tmp); + } catch (Exception e) { + failed += (failed.equals("")) ? "" + i : "," + i; + } + } + rowsAfter = FinanceList.financeLogs.size(); + } else if (category.equalsIgnoreCase("hr")) { + int rows = map.get(userInput.getArg("name")).size(); + rowsBefore = MemberList.members.size(); + for (int i = 0; i < rows; i++) { + try { + Member tmp = new Member(map.get(userInput.getArg("name")).get(i), + Long.parseLong(map.get(userInput.getArg("phone")).get(i)), + map.get(userInput.getArg("email")).get(i), + map.get(userInput.getArg("role")).get(i)); + MemberList.members.add(tmp); + } catch (Exception e) { + failed += (failed.equals("")) ? "" + i : "," + i; + } + } + rowsAfter = MemberList.members.size(); + } else if (category.equalsIgnoreCase("event")) { + int rows = map.get(userInput.getArg("name")).size(); + rowsBefore = EventList.events.size(); + for (int i = 0; i < rows; i++) { + try { + Event tmp = new Event(map.get(userInput.getArg("name")).get(i), + map.get(userInput.getArg("date")).get(i), + map.get(userInput.getArg("time")).get(i)); + EventList.events.add(tmp); + } catch (Exception e) { + failed += (failed.equals("")) ? "" + i : "," + i; + } + } + rowsAfter = EventList.events.size(); + } else { + return "Please specify a valid category."; + } + assert (rowsAfter < rowsBefore) : "Less rows than before after importing!"; + } catch (IOException e) { + return "Unable to read file! Please check your path/filename!"; + } catch (DukeFileHeaderException e) { + // This shouldn't happen because we do not enforce header check when invoking the function + assert false : "Header checking shouldn't be enabled!"; + return "Header mismatch!"; + } catch (DukeFileFormatException e) { + return "Unable to read CSV file! Please check that the specified file is properly formatted!"; + } catch (NullPointerException e) { + return "Unable to find column header name in your file! Please check the spelling and capitalization."; + } + final String s = "Successfully imported " + (rowsAfter - rowsBefore) + " entries." + + ((failed.equals("")) ? "" : "\nFailed to import index: " + failed); + return s; + } + + @Override + public String help() { + return "Syntax: import FILENAME /c finance /name HEADER_NAME /value HEADER_NAME \n" + + "OR: import FILENAME /c hr /name HEADER_NAME /phone HEADER_NAME /email HEADER_NAME /role HEADER_NAME\n" + + "OR: import FILENAME /c event /name HEADER_NAME /date HEADER_NAME /time HEADER_NAME\n\n" + + "Opens the given CSV file and imports the data in the columns specified by the HEADER_NAME. " + + "The mapping specifies that the HEADER_NAME will be assigned to a particular argument. " + + "HEADER_NAME is case sensitive"; + } + + public int validate(UserInput ui) { + userInput = ui; + if (ui.getCategory().equals("") && (ui.getCommand().equalsIgnoreCase("import") + || ui.getCommand().equalsIgnoreCase("i"))) { + if (ui.getArg("") == null || ui.getArg("").equals("")) { + return ARGUMENT_ERR; + } + if (ui.getArg("c") == null || ui.getArg("c").equals("")) { + return ARGUMENT_ERR; + } + // Shorthand category support + if (ui.getArg("c").equalsIgnoreCase("h")) { + ui.getArgs().put("c", "hr"); + } else if (ui.getArg("c").equalsIgnoreCase("f")) { + ui.getArgs().put("c", "finance"); + } else if (ui.getArg("c").equalsIgnoreCase("e")) { + ui.getArgs().put("c", "event"); + } else { + if (!ui.getArg("c").equalsIgnoreCase("hr") + && ui.getArg("c").equalsIgnoreCase("finance") + && ui.getArg("c").equalsIgnoreCase("event")) { + return ARGUMENT_ERR; + } + } + // Shorthand argument support + if (ui.getArg("n") != null && !ui.getArg("n").equals("")) { + ui.getArgs().put("name", ui.getArg("n")); + } + if (ui.getArg("v") != null && !ui.getArg("v").equals("")) { + ui.getArgs().put("value", ui.getArg("v")); + } + if (ui.getArg("p") != null && !ui.getArg("p").equals("")) { + ui.getArgs().put("phone", ui.getArg("p")); + } + if (ui.getArg("e") != null && !ui.getArg("e").equals("")) { + ui.getArgs().put("email", ui.getArg("e")); + } + if (ui.getArg("r") != null && !ui.getArg("r").equals("")) { + ui.getArgs().put("role", ui.getArg("r")); + } + if (ui.getArg("d") != null && !ui.getArg("d").equals("")) { + ui.getArgs().put("date", ui.getArg("d")); + } + if (ui.getArg("t") != null && !ui.getArg("t").equals("")) { + ui.getArgs().put("time", ui.getArg("t")); + } + // check for the correct arguments depending on the category + if (ui.getArg("c").equalsIgnoreCase("hr")) { + if (ui.getArg("name") == null || ui.getArg("name").equals("")) { + return ARGUMENT_ERR; + } + if (ui.getArg("phone") == null || ui.getArg("phone").equals("")) { + return ARGUMENT_ERR; + } + if (ui.getArg("email") == null || ui.getArg("email").equals("")) { + return ARGUMENT_ERR; + } + if (ui.getArg("role") == null || ui.getArg("role").equals("")) { + return ARGUMENT_ERR; + } + } else if (ui.getArg("c").equalsIgnoreCase("finance")) { + if (ui.getArg("name") == null || ui.getArg("name").equals("")) { + return ARGUMENT_ERR; + } + if (ui.getArg("value") == null || ui.getArg("value").equals("")) { + return ARGUMENT_ERR; + } + } else if (ui.getArg("c").equalsIgnoreCase("event")) { + if (ui.getArg("name") == null || ui.getArg("name").equals("")) { + return ARGUMENT_ERR; + } + if (ui.getArg("date") == null || ui.getArg("date").equals("")) { + return ARGUMENT_ERR; + } + if (ui.getArg("time") == null || ui.getArg("time").equals("")) { + return ARGUMENT_ERR; + } + } + return ACCEPT; + } else { + return NO_MATCH; + } + } +} diff --git a/src/test/java/seedu/duke/DukeTest.java b/src/test/java/seedu/duke/DukeTest.java index 2dda5fd651..2f2763fcb0 100644 --- a/src/test/java/seedu/duke/DukeTest.java +++ b/src/test/java/seedu/duke/DukeTest.java @@ -1,12 +1,16 @@ package seedu.duke; + import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.Test; + + class DukeTest { @Test public void sampleTest() { assertTrue(true); } -} + +} \ No newline at end of file diff --git a/src/test/java/seedu/duke/FileManagerTest.java b/src/test/java/seedu/duke/FileManagerTest.java new file mode 100644 index 0000000000..f89c563652 --- /dev/null +++ b/src/test/java/seedu/duke/FileManagerTest.java @@ -0,0 +1,82 @@ +package seedu.duke; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; + +import org.junit.jupiter.api.Test; +import seedu.duke.backend.FileManager; + + +import java.io.IOException; + +import java.nio.file.FileVisitResult; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; + +public class FileManagerTest { + + @Test + public void fileManagerBasicTest() { + // Set up test folder + String path = (int) (Math.random() * 1000000) + "/"; + FileManager fm = new FileManager(path); + // Test 1, basic write + try { + FileManager.saveFile(path + "Test1.txt", "Sample 1"); + } catch (IOException e) { + e.printStackTrace(); + fail("Test 01: Saving to file failed!"); + } + + // Test 2, Read fail + try { + assertEquals(3, fm.readAll()); + } catch (Exception e) { + e.printStackTrace(); + fail("Test 02: Reading non-existent data failed!"); + } + + // Test 3, Empty write + try { + fm.saveAll(); + } catch (Exception e) { + e.printStackTrace(); + fail("Test 03: Empty write failed!"); + } + + // Test 4, Empty read + try { + assertEquals(0, fm.readAll()); + } catch (Exception e) { + e.printStackTrace(); + fail("Test 04: Reading file with no data failed!"); + } + + // Clean up. If this raises an exception, it means we forgot to close either the writer or reader + deleteDir(path); + } + + void deleteDir(String file) { + Path directory = Paths.get(file); + try { + Files.walkFileTree(directory, new SimpleFileVisitor() { + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { + Files.delete(file); + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { + Files.delete(dir); + return FileVisitResult.CONTINUE; + } + }); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/src/test/java/seedu/duke/ParserTest.java b/src/test/java/seedu/duke/ParserTest.java new file mode 100644 index 0000000000..480bfcdd78 --- /dev/null +++ b/src/test/java/seedu/duke/ParserTest.java @@ -0,0 +1,73 @@ +package seedu.duke; + +import org.junit.jupiter.api.Test; +import seedu.duke.backend.Parser; +import seedu.duke.backend.UserInput; + +import java.util.HashMap; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class ParserTest { + + @Test + public void testParser() { + // Base Case + Parser p = new Parser(); + + HashMap arg1 = new HashMap<>(); + arg1.put("", "2"); + UserInput expected1 = new UserInput("foo", arg1); + expected1.setCategory(""); + String test1 = "foo 2"; + assertEquals(p.parse(test1).getArgs(), expected1.getArgs()); + assertEquals(p.parse(test1).getCategory(), expected1.getCategory()); + assertEquals(p.parse(test1).getCommand(), expected1.getCommand()); + + // Space & Repetition test + + HashMap arg2 = new HashMap<>(); + arg2.put("", "2 2 2"); + UserInput expected2 = new UserInput("fOo", arg2); + expected2.setCategory(""); + String test2 = "fOo 2 2 2"; + assertEquals(p.parse(test2).getArgs(), expected2.getArgs()); + assertEquals(p.parse(test2).getCategory(), expected2.getCategory()); + assertEquals(p.parse(test2).getCommand(), expected2.getCommand()); + + // Category and extra argument test + HashMap arg3 = new HashMap<>(); + arg3.put("", "something"); + arg3.put("a1", "2 3"); + UserInput expected3 = new UserInput("do", arg3); + expected3.setCategory("hr"); + String test3 = "hr do something /a1 2 3"; + assertEquals(p.parse(test3).getArgs(), expected3.getArgs()); + assertEquals(p.parse(test3).getCategory(), expected3.getCategory()); + assertEquals(p.parse(test3).getCommand(), expected3.getCommand()); + + // Capitalization & trimming test + HashMap arg4 = new HashMap<>(); + arg4.put("", "mYeVenT 9000"); + arg4.put("arg", "some arg"); + arg4.put("a2", ""); + arg4.put("a3", "another"); + UserInput expected4 = new UserInput("AdD", arg4); + expected4.setCategory("event"); + String test4 = " eVeNt AdD mYeVenT 9000 / arg some arg /a2 /a3 another"; + assertEquals(p.parse(test4).getArgs(), expected4.getArgs()); + assertEquals(p.parse(test4).getCategory(), expected4.getCategory()); + assertEquals(p.parse(test4).getCommand(), expected4.getCommand()); + + // Shorthand category, Accented Character and Argument Precedence test + HashMap arg5 = new HashMap<>(); + arg5.put("arg", "precedence test"); + UserInput expected5 = new UserInput("testCase", arg5); + expected5.setCategory("finance"); + String test5 = " f testCase\350 \350 " + + "/ arg some arg / arg /arg precedence test"; + assertEquals(p.parse(test5).getArgs(), expected5.getArgs()); + assertEquals(p.parse(test5).getCategory(), expected5.getCategory()); + assertEquals(p.parse(test5).getCommand(), expected5.getCommand()); + } +} diff --git a/src/test/java/seedu/duke/event/EventListTest.java b/src/test/java/seedu/duke/event/EventListTest.java new file mode 100644 index 0000000000..1b3a7e93ce --- /dev/null +++ b/src/test/java/seedu/duke/event/EventListTest.java @@ -0,0 +1,155 @@ +package seedu.duke.event; + +import org.junit.jupiter.api.Test; +import seedu.duke.hr.Member; +import seedu.duke.hr.MemberList; + +import java.time.LocalDate; + +import static org.junit.jupiter.api.Assertions.assertEquals; + + +class EventListTest { + Event event = new Event("PR meeting", "2030-06-30", "08-00"); + Event event2 = new Event("Autodesk course","2030-10-20","08-00"); + Event event1 = new Event("PR meeting", "2010-06-30", "08-00"); + Member member1 = new Member("James Gosling", 11111111, + "111111@gmail.com", "member"); + + @Test + void testPrintEvent() { + assertEquals("[E][Up-coming]" + "\nEvent Name: " + "PR meeting" + "\nDate: " + + "Jun 30 2030" + "\nTime: " + "08-00", event.printEvent()); + } + + @Test + void test_EventList() { + + String expected = "Oops! Seems like you have entered a past date. Please enter a valid date."; + assertEquals(expected,EventList.addEvent(event1)); + + String expected1 = "Got it. I've added this Event:\n" + + "[E][Up-coming]\n" + + "Event Name: PR meeting" + + "\nDate: Jun 30 2030" + + "\nTime: 08-00" + + "\nNow you have 1 event in the list.\n"; + assertEquals(expected1, EventList.addEvent(event)); + + assertEquals("PR meeting", event.getEventName()); + + assertEquals(LocalDate.parse("2030-06-30"),event.getEventDate()); + + assertEquals("08-00", event.getEventTime()); + + assertEquals(event,EventList.getEvent(0)); + + String expected2 = "Here are the current events in your list:\n" + + "1.[E][Up-coming]\n" + + "Event Name: PR meeting" + + "\nDate: Jun 30 2030" + + "\nTime: 08-00" + "\n" + "*".repeat(50) + "\n"; + assertEquals(expected2, EventList.printEventList()); + + String expected3 = "Nice! I've marked this task as done:\n" + + "1.[E][Done]\n" + + "Event Name: PR meeting\n" + + "Date: Jun 30 2030\n" + + "Time: 08-00"; + assertEquals(expected3, EventList.isCompleted(0)); + + String expected4 = "Got it! I'll remove this Event:\n" + + "[E][Done]\n" + + "Event Name: PR meeting" + + "\nDate: Jun 30 2030" + + "\nTime: 08-00\n" + + "Now you have 0 event in the list."; + assertEquals(expected4, EventList.deleteEvent(0)); + + + String expected5 = "Oops! The event list is empty!"; + assertEquals(expected5,EventList.deleteEvent(3)); + + EventList.addEvent(event2); + + String expected6 = "1.[E][Up-coming]\n" + + "Event Name: Autodesk course\n" + + "Date: Oct 20 2030\n" + + "Time: 08-00" + "\n" + "*".repeat(50) + "\n"; + assertEquals(expected6,EventList.searchEvents("autodesk")); + assertEquals(expected6,EventList.searchEvents("2030-10-20")); + assertEquals("No matching events found!",EventList.searchEvents("arduino")); + + EventList.deleteEvent(0); + String expected7 = "Oops! The event list is empty!"; + assertEquals(expected7,EventList.clearEvents()); + + + String expected8 = "Oops! The event list is empty!"; + assertEquals(expected8,EventList.printEventList()); + + assertEquals("Oops! The event list is empty!",EventList.countdownView()); + + EventList.addEvent(event); + + String expected9 = "OOPS!!! The event does not exist.\n"; + assertEquals(expected9,EventList.isCompleted(3)); + } + + @Test + void test_EventAttendance_executesNormally() { + EventList.addEvent(event2); + MemberList.addToList(member1); + String expected1 = "Noted. I have added this participant to this event:\n" + + "James Gosling\n" + + "Now you have 1 member participated in Autodesk course.\n"; + assertEquals(expected1, EventList.addAttendance(event2.getEventName(), member1.getMemberName())); + + String expected2 = "The following member has participated in this event:\n" + + "1. James Gosling\n" + + "Now you have 1 member attended Autodesk course.\n"; + assertEquals(expected2, EventList.listAttendance(event2.getEventName())); + + String expected3 = "Got it! I'll remove this member from the event attendance:\n" + + "James Gosling\n" + + "Now you have 0 members attended Autodesk course.\n"; + assertEquals(expected3, EventList.deleteAttendance(event2.getEventName(), member1.getMemberName())); + EventList.deleteEvent(0); + MemberList.deleteFromList(0); + } + + @Test + void test_EventAttendance_executeUnsuccessfully() { + EventList.addEvent(event2); + MemberList.addToList(member1); + + //member does not exist + String expected1 = "Member does not exist!\n"; + assertEquals(expected1, EventList.addAttendance(event2.getEventName(),"Draco Malfoy")); + + //event does not exist + String expected2 = "OOPS!!! The event does not exist.\n"; + assertEquals(expected2, EventList.addAttendance("Arduino course", member1.getMemberName())); + + EventList.addAttendance(event2.getEventName(), member1.getMemberName()); + //member attendance already taken + String expected3 = "Member attendance had already been taken!\n"; + assertEquals(expected3, EventList.addAttendance(event2.getEventName(),member1.getMemberName())); + + //event does not exist + String expected4 = "OOPS!!! The event does not exist.\n"; + assertEquals(expected4, EventList.listAttendance("Arduino course")); + + //event does not exist + String expected5 = "OOPS!!! The event does not exist.\n"; + assertEquals(expected5, EventList.deleteAttendance("Arduino course", member1.getMemberName())); + + EventList.deleteAttendance(event2.getEventName(), member1.getMemberName()); + //member attendance does not exist + String expected6 = "Member attendance for this event has not been taken!\n"; + assertEquals(expected6, EventList.deleteAttendance(event2.getEventName(), "Draco Malfoy")); + EventList.deleteEvent(0); + MemberList.deleteFromList(0); + } + +} \ No newline at end of file diff --git a/src/test/java/seedu/duke/finance/FinanceTest.java b/src/test/java/seedu/duke/finance/FinanceTest.java new file mode 100644 index 0000000000..5cd1cdcf06 --- /dev/null +++ b/src/test/java/seedu/duke/finance/FinanceTest.java @@ -0,0 +1,52 @@ +package seedu.duke.finance; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class FinanceTest { + @Test + void testver1Finance() { + String expected1 = "Got it! I've added this to the list.\n" + + "\t1.write $12.5\n" + + "There is 1 log entry in the list now.\n"; + String actual1 = FinanceList.addLog(new FinanceLog("write", 12.5)); + assertEquals(expected1, actual1); + String expected2 = "Here is the list:\n" + + "\t1.write $12.5\n" + + "Total budget: $12.50\n"; + String actual2 = FinanceList.summary(); + assertEquals(expected2, actual2); + String expected3 = "Got it! I've removed this from list.\n" + + "There is 0 log entry in the list now.\n"; + String actual3 = FinanceList.dellog(1); + assertEquals(expected3, actual3); + String expected4 = "Your index input does not exist in the list"; + String actual4 = FinanceList.dellog(5); + String non = FinanceList.dellog(1); + assertEquals(expected4,actual4); + String expected5 = "Sorry, your finance list is empty.\n"; + String actual5 = FinanceList.summary(); + assertEquals(expected5,actual5); + } + + @Test + void testChange() { + String expected1 = "Got it! I've added this to the list.\n" + + "\t1.write $12.5\n" + + "There is 1 log entry in the list now.\n"; + String actual1 = FinanceList.addLog(new FinanceLog("write", 12.5)); + assertEquals(expected1, actual1); + String expected2 = "Got it! I will change:\n" + + "1.write $12.5\n" + + "\n" + + "Now the new finance log entry is:\n" + + "1.buy iphone12 $1299.0\n"; + String actual2 = FinanceList.changeFinanceLog(1,"buy iphone12",1299.0); + assertEquals(expected2,actual2); + String expected3 = "Your input index does not exist in the list."; + String actual3 = FinanceList.changeFinanceLog(2,"have McD",10); + String non = FinanceList.dellog(1); + assertEquals(expected3,actual3); + } +} \ No newline at end of file diff --git a/src/test/java/seedu/duke/hr/HrTest.java b/src/test/java/seedu/duke/hr/HrTest.java new file mode 100644 index 0000000000..bb240b59a0 --- /dev/null +++ b/src/test/java/seedu/duke/hr/HrTest.java @@ -0,0 +1,228 @@ +package seedu.duke.hr; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class HrTest { + + //Member member1 = new Member("James Gosling", 11111111, + // "111111@gmail.com", "member"); + //Member member2 = new Member("Harry Potter", 1234567890, "harry_potter@gmail.com", "president"); + @Test + public void addListDelChangeMember_executesNormally() { + Member.numOfMembers = 0; + MemberList.members.clear(); + //test addToList: entry in title case + String expected1 = "Got it. I've added this member:\n" + + "name: James Gosling |phone: 11111111 |email: 111111@gmail.com |role: member |attendance rate: 0%\n" + + "Now you have 1 member in the list.\n"; + + String actual1 = MemberList.addToList(new Member("James Gosling", 11111111, + "111111@gmail.com", "member")); + assertEquals(expected1, actual1); + + //test listMember + String expected2 = "Here is the list of members in your CCA:\n" + + "1.name: James Gosling |phone: 11111111 |email: 111111@gmail.com |role: member " + + "|attendance rate: 0%\n"; + String actual2 = MemberList.listMembers(); + assertEquals(expected2, actual2); + + //test deleteFromList + String expected3 = "Noted. I'll remove this member:\n" + + "name: James Gosling |phone: 11111111 |email: 111111@gmail.com |role: member |attendance rate: 0%\n" + + "Now you have 0 member in the list.\n"; + String actual3 = MemberList.deleteFromList(0); + assertEquals(expected3, actual3); + + //add more members to test further: entry in lower case + String expected4 = "Got it. I've added this member:\n" + + "name: Harry Potter |phone: 1234567890 |email: harry_potter@gmail.com |role: president " + + "|attendance rate: 0%\n" + + "Now you have 1 member in the list.\n"; + + String actual4 = MemberList.addToList(new Member("Harry Potter", 1234567890, + "harry_potter@gmail.com", "president")); + assertEquals(expected4, actual4); + + //test changeMemberInfo, only change phone number + String expected5 = "I have changed the information of this member:\n" + + "name: Harry Potter |phone: 88888888 |email: harry_potter@gmail.com |role: president " + + "|attendance rate: 0%"; + Member m = MemberList.findMemberByName("harry potter"); + String actual5 = MemberList.changeMemberInfo(m, "88888888", null, null); + assertEquals(expected5, actual5); + + //test changeMemberInfo, only change email + String expected6 = "I have changed the information of this member:\n" + + "name: Harry Potter |phone: 88888888 |email: magic@gmail.com |role: president " + + "|attendance rate: 0%"; + String actual6 = MemberList.changeMemberInfo(m, null, "magic@gmail.com", null); + assertEquals(expected6, actual6); + + //test changeMemberInfo, only change role + String expected7 = "I have changed the information of this member:\n" + + "name: Harry Potter |phone: 88888888 |email: magic@gmail.com |role: member " + + "|attendance rate: 0%"; + String actual7 = MemberList.changeMemberInfo(m, null, null, "member"); + assertEquals(expected7, actual7); + + //test changeMemberInfo, change phone number and role simultaneously + String expected8 = "I have changed the information of this member:\n" + + "name: Harry Potter |phone: 1234567890 |email: magic@gmail.com |role: president " + + "|attendance rate: 0%"; + String actual8 = MemberList.changeMemberInfo(m, "1234567890", null, "president"); + assertEquals(expected8, actual8); + + //test changeMemberInfo, change phone number and email simultaneously + String expected9 = "I have changed the information of this member:\n" + + "name: Harry Potter |phone: 88888888 |email: harry_potter@gmail.com |role: president " + + "|attendance rate: 0%"; + String actual9 = MemberList.changeMemberInfo(m, "88888888", "harry_potter@gmail.com", null); + assertEquals(expected9, actual9); + + //test changeMemberInfo, change email and role simultaneously + String expected10 = "I have changed the information of this member:\n" + + "name: Harry Potter |phone: 88888888 |email: snape@gmail.com |role: professor " + + "|attendance rate: 0%"; + String actual10 = MemberList.changeMemberInfo(m, null, "snape@gmail.com", "professor"); + assertEquals(expected10, actual10); + + //test changeMemberInfo, change phone number, email and role simultaneously + String expected11 = "I have changed the information of this member:\n" + + "name: Harry Potter |phone: 1234567890 |email: harry_potter@gmail.com |role: president " + + "|attendance rate: 0%"; + String actual11 = MemberList.changeMemberInfo(m, "1234567890", "harry_potter@gmail.com", "president"); + assertEquals(expected11, actual11); + MemberList.deleteFromList(0); + String non = MemberList.addToList(new Member("Suzuhara ruru",24342434,"2434@gmail.com","member")); + non = MemberList.addToList(new Member("Niji Sanji",114514,"hololiveshutdown@gmail.com","president")); + non = MemberList.addToList(new Member("Lize",1141919810,"lize@yagoo.com","speaker")); + non = MemberList.addToList(new Member("Tony Parker",22711019,"tp9@outlook.com","Admin")); + non = MemberList.addToList(new Member("Tim Duncan",10152113,"TD21@gmail.com","Alumni")); + String expected12 = "I have found 2 result for you:\n" + + "2.name: Niji Sanji |phone: 114514 |email: hololiveshutdown@gmail.com " + + "|role: president |attendance rate: 0%\n" + + "3.name: Lize |phone: 1141919810 |email: lize@yagoo.com |role: speaker |attendance rate: 0%\n"; + String actual12 = MemberList.search(true,false,false,false,false,"114", + null,null,null,null); + String expected13 = "I have found 1 result for you:\n" + + "4.name: Tony Parker |phone: 22711019 |email: tp9@outlook.com |role: Admin |attendance rate: 0%\n"; + String actual13 = MemberList.searchProfAdmin(); + String expected14 = "I have found 2 result for you:\n" + + "3.name: Lize |phone: 1141919810 |email: lize@yagoo.com |role: speaker |attendance rate: 0%\n" + + "5.name: Tim Duncan |phone: 10152113 |email: TD21@gmail.com |role: Alumni |attendance rate: 0%\n"; + String actual14 = MemberList.searchConnection(); + assertEquals(expected12,actual12); + assertEquals(expected13,actual13); + assertEquals(expected14,actual14); + MemberList.deleteFromList(0); + MemberList.deleteFromList(0); + MemberList.deleteFromList(0); + MemberList.deleteFromList(0); + MemberList.deleteFromList(0); + } + + @Test + public void changeMemberInfo_PhoneNumberWrongFormat() { + MemberList.addToList(new Member("Harry Potter", 1234567890, "harry_potter@gmail.com", "president")); + String expected1 = "OOPS!!! The format of the phone number given is incorrect.\n" + + "The phone number should be a whole number not more than 18 digits.\n"; + Member m = MemberList.findMemberByName("harry potter"); + String actual1 = MemberList.changeMemberInfo(m, "9999999999999999999", null, null); + assertEquals(expected1, actual1); + + String expected2 = "OOPS!!! The format of the phone number given is incorrect.\n" + + "The phone number should be a whole number not more than 18 digits.\n"; + String actual2 = MemberList.changeMemberInfo(m, "string", null, null); + assertEquals(expected2, actual2); + + String expected3 = "OOPS!!! The phone number should be a positive number."; + String actual3 = MemberList.changeMemberInfo(m, "-111111", null, null); + assertEquals(expected3, actual3); + MemberList.deleteFromList(0); + } + + @Test + public void removeMember_MemberNotExists() { + String expected = "OOPS!!! The member does not exist.\n"; + String actual = MemberList.deleteFromList(0); + assertEquals(expected, actual); + } + + @Test + public void listMember_MemberListEmpty() { + Member.numOfMembers = 0; + String expected = "OOPS!!! The member list is empty!\n"; + String actual = MemberList.listMembers(); + assertEquals(expected, actual); + } + + @Test + public void checkMemberExistence_executesNormally() { + MemberList.addToList(new Member("Harry Potter", 1234567890, "harry_potter@gmail.com", "president")); + boolean hasExist1 = MemberList.checkMemberExistence(MemberList.members, "Harry Potter"); + String actual1 = String.valueOf(hasExist1); + String expected1 = "true"; + assertEquals(expected1, actual1); + + boolean hasExist2 = MemberList.checkMemberExistence(MemberList.members, "Draco Malfoy"); + String actual2 = String.valueOf(hasExist2); + String expected2 = "false"; + assertEquals(expected2, actual2); + MemberList.deleteFromList(0); + } + + @Test + public void standardizeMemberName_executesNormally() { + String actual1 = MemberList.standardizeMemberName("HArrY POTTER"); + String expected1 = "Harry Potter"; + assertEquals(expected1, actual1); + + String actual2 = MemberList.standardizeMemberName("draco malfoy"); + String expected2 = "Draco Malfoy"; + assertEquals(expected2, actual2); + + String actual3 = MemberList.standardizeMemberName("Hermione Granger"); + String expected3 = "Hermione Granger"; + assertEquals(expected3, actual3); + } + + @Test + public void isNumber_executesNormally() { + //positive number + boolean actual1 = MemberList.isNumber("9999999999"); + boolean expected1 = true; + assertEquals(expected1, actual1); + + //not a number + boolean actual2 = MemberList.isNumber("HArrY POTTER"); + boolean expected2 = false; + assertEquals(expected2, actual2); + + //negative number + boolean actual3 = MemberList.isNumber("-10000000000000000"); + boolean expected3 = true; + assertEquals(expected3, actual3); + + //exceed length of long + boolean actual4 = MemberList.isNumber("9999999999999999999"); + boolean expected4 = false; + assertEquals(expected4, actual4); + } + + @Test + public void findMemberIndex_executesNormally() { + MemberList.deleteFromList(0); + MemberList.addToList(new Member("Harry Potter", 1234567890, "harry_potter@gmail.com", "president")); + int actual1 = MemberList.findMemberIndex(MemberList.members, "Harry Potter"); + int expected1 = 0; + assertEquals(expected1, actual1); + + int actual2 = MemberList.findMemberIndex(MemberList.members, "Draco Malfoy"); + int expected2 = -1; + assertEquals(expected2, actual2); + MemberList.deleteFromList(0); + } +} diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 892cb6cae7..7715ebe760 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -5,5 +5,29 @@ Hello from | |_| | |_| | < __/ |____/ \__,_|_|\_\___| -What is your name? -Hello James Gosling +____________________________________________________________________________________________________ + Oops I was unable to find your saved data! +____________________________________________________________________________________________________ +____________________________________________________________________________________________________ + Welcome to CCA Manager Integrated! Enter any command to begin! +____________________________________________________________________________________________________ +____________________________________________________________________________________________________ + No such command. Try 'help' for a list of commands. +____________________________________________________________________________________________________ +____________________________________________________________________________________________________ + Got it. I've added this member: + name: James Gosling |phone: 11111111 |email: 111111@gmail.com |role: member |attendance rate: 0% + Now you have 1 member in the list. +____________________________________________________________________________________________________ +____________________________________________________________________________________________________ + Here is the list of members in your CCA: + 1.name: James Gosling |phone: 11111111 |email: 111111@gmail.com |role: member |attendance rate: 0% +____________________________________________________________________________________________________ +____________________________________________________________________________________________________ + Noted. I'll remove this member: + name: James Gosling |phone: 11111111 |email: 111111@gmail.com |role: member |attendance rate: 0% + Now you have 0 member in the list. +____________________________________________________________________________________________________ +____________________________________________________________________________________________________ + See you next time! +____________________________________________________________________________________________________ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index f6ec2e9f95..3993f96f42 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -1 +1,5 @@ -James Gosling \ No newline at end of file +James Gosling +hr add /n James Gosling /p 11111111 /e 111111@gmail.com /r member +hr list +hr delete 1 +bye \ No newline at end of file diff --git a/text-ui-test/runtest.bat b/text-ui-test/runtest.bat index 25ac7a2989..53335711a1 100644 --- a/text-ui-test/runtest.bat +++ b/text-ui-test/runtest.bat @@ -16,4 +16,4 @@ java -jar %jarloc% < ..\..\text-ui-test\input.txt > ..\..\text-ui-test\ACTUAL.TX cd ..\..\text-ui-test -FC ACTUAL.TXT EXPECTED.TXT >NUL && ECHO Test passed! || Echo Test failed! +FC ACTUAL.TXT EXPECTED.TXT >NUL && ECHO Test passed! || Echo Test failed! \ No newline at end of file diff --git a/text-ui-test/runtest.sh b/text-ui-test/runtest.sh index 1dcbd12021..4f33ccf7fa 100755 --- a/text-ui-test/runtest.sh +++ b/text-ui-test/runtest.sh @@ -20,4 +20,4 @@ then else echo "Test failed!" exit 1 -fi +fi \ No newline at end of file