Life - Part 1: Assignment Specification CAB201 Semester 2, 2020 Last Updated: 04/09/2020 Assigment Details Progress Due Date: 13/09/ XXXXXXXXXX:59pm Final Due Date: 20/09/ XXXXXXXXXX:59pm Weighting:...

1 answer below »
This assignment is a C# program of a 5x5 game of life all details are in the files


Life - Part 1: Assignment Specification CAB201 Semester 2, 2020 Last Updated: 04/09/2020 Assigment Details Progress Due Date: 13/09/2020 - 11:59pm Final Due Date: 20/09/2020 - 11:59pm Weighting: 35% Type: Individual Project Version: 1.3 - 04/09/2020 Change Log There is no intention to have this assignment specification change over time. However, if anything does change or additional detail is added to the specification, the table below will be updated to reflect the changes. Version Date Description 1.0 11/08/2020 Initial Specification 1.1 13/08/2020 Added warning about external libraries to the Academic Integrity section 1.2 17/08/2020 The minimum valid grid size has been increased to 4 1.3 04/09/2020 Added more test cases Overview In memoriam of the legendary mathematician John Conway, we will be be exploring one of his most famous creations as an exercise in programming principles - the Game of Life. Also referred to as Life, the game is a zero-player game, meaning that it’s behaviour is determined by it’s initial state with no additional input. Conway explains the rules for the Game of Life in a Numberphile interview (explanation starts at 1:00). The rules will be described in detail further into the document. Your task is to create an command line application that can simulate Life. The application must be designed to be invoked from the command line, where game states and program settings can be provided. Additionally, the application must display a running animation of Life in a graphical display window (this functionality has been partially completed for you in the form of a small and simple API that you must utilize). This assignment is designed to test your ability to: � Build command-line applications � Develop high-quality file I/O functionality � Design a solution to a non-trivial computational problem � Understand and utilize an external API 1 https://en.wikipedia.org/wiki/John_Horton_Conway https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life https://youtu.be/E8kUJL04ELA Game Behavior The game of life exists in universe comprised of a two-dimensional grid of square cells. The number of rows and columns in the universe may be specified by command line arguments (see Command Line Interface below). By default, the dimensions of the universe will be 16× 16 (16 rows and 16 columns). Each cell can be referred to by it’s row and column, starting in the bottom left with 0 for each dimension. An example of a 5× 5 Life universe is illustrated in Figure 1. 0 1 2 3 4 0 1 2 3 4 Figure 1: A 5× 5 Life universe. Row and column indices are labelled. All cells are dead (inactive) Each cell in the grid can exist in one of two states - dead or alive (also referred to as inactive and active respectively). Each cell is aware of it’s eight closest neighbours during any generation of the life universe. These neighbours are the cells positioned horizontally, vertically and diagonally adjacent of any given cell. 0 1 2 3 4 0 1 2 3 4 Figure 2: Visual representation of a neighbourhood in Life. The neighbours of the cell highlighted in blue are highlighted in light blue. Life progresses (or evolves) through a series of generations, with each generation depending on the one that proceeded it. The rules that determine the next generation are rather simple and can be summarized by the following: � Any live cell with exactly 2 or 3 live neighbours survive (stay alive) in the next generation. � Any dead cell with exactly 3 live neighbours resurrect (become alive) in the next generation. � All other cells are dead in the next generation. 0 1 2 3 4 0 1 2 3 4 Generation 0 0 1 2 3 4 0 1 2 3 4 Generation 1 0 1 2 3 4 0 1 2 3 4 Generation 2 0 1 2 3 4 0 1 2 3 4 Generation 3 0 1 2 3 4 0 1 2 3 4 Generation 4 Figure 3: Generational evolution of a glider. Note how the pattern repeats after 4 generations of evolution. An example of the effects of these rules is given in Figure 3, which contains five consecutive generations. To describe how one of the rules work with an example, from generations 0 to 1, cell (3, 1) is changed from 2 dead to alive because it has exactly 3 live neighbors in generation 0 (cells (2, 0), (2, 2), and (2, 3)). For this assignment, life will continue to evolve for a pre-determined amount of generations (50 by default). Seeds The first generation of the game is called the seed, which will be determined randomly, or through a formatted file. The long term behaviour of the game is determined entirely by the seed, meaning that the future state of any game is deterministic. This is one way you can determine whether your program is running correctly and will be the basis for grading your assignment. Randomisation The default method for generating a seed is through randomization. For each cell in the seed, the probability of the cell being alive is 50% and is otherwise assumed dead. The probability that any given cell is initially alive can be modified through command line arguments. File Alternatively, the seed can be defined by a file that is supplied through the command line arguments. If a file is supplied in the command line arguments then the randomization process described above will not occur. The seed files will have the extension of .seed and will be formatted according to the following rules: � The first line of the file will always be #version=1.0. � Each line of the file represents a cell that is initially alive (the rest are assumed dead). � Each line will contain two integers, separated by a space character. ◦ The first integer represents the row index of the live cell. ◦ The second integer represents the column index of the live cell. Below is an example of a seed file that would result in the glider pattern shown in Figure 3 (Generation 0): #version=1.0 3 2 2 0 2 2 1 1 1 2 Because the file and the universe size are specified independently, it is possible for a file to specify alive cells that exist outside the bounds of the universe. If this occurs, the user should be presented a warning and the recommend universe size that would suit the seed file (the maximum row and column indices). See detailed requirements in Command Line Interface below. Periodic Boundary Conditions Periodic boundary conditions can be applied to a Life universe for some more interesting behaviour. Under periodic boundary conditions, a cell that exists on the boundary of universe will have neighbours that "wrap around" to the other side of the universe. You will find it particularly useful to draw on your knowledge of integer arithmetic operators (such as modulus) when attempting to implement this feature. This is best described visually, see Figure 4. Consider the last pair of examples in the figure. In the non-periodic case, the the neighbouring cells that would exist if the universe was any larger ((5, 3), (5, 4), (5, 5), (3, 5) and (4, 5)) are non-existent. In the periodic case... 3 � The neighbouring cells that would normally be located at (5, 3) and (5, 4) are located at (0, 3) and (0, 4). � The neighbouring cells that would normally be located at (3, 5) and (4, 5) are located at (3, 0) and (4, 0). � The neighbouring cell that would normally be located at (5, 5) is located at (0, 0). 0 1 2 3 4 0 1 2 3 4 Non-Periodic 0 1 2 3 4 0 1 2 3 4 Periodic 0 1 2 3 4 0 1 2 3 4 Non-Periodic 0 1 2 3 4 0 1 2 3 4 Periodic 0 1 2 3 4 0 1 2 3 4 Non-Periodic 0 1 2 3 4 0 1 2 3 4 Periodic Figure 4: Examples of neighbouring cells in contrasting non-periodic and periodic boundary condition based universes. The neighbours of the cell highlighted in blue are highlighted in light blue. Update Rates Even in the most inefficient implementations of Life, the computation time for a single generational evolution can be quite fast (for small universes). As such, it is often necessary to limit the number of generational evolutions that can occur every second. This can be accomplished using a number of different different methods, two of which are briefly described below: � (Simple) Add a delay between each generational evolution by sleeping the main thread. Although simple, this method can be inaccurate, particularly if your algorithm for evolving your universe is slow. � (Accurate) Use a stopwatch or timer to delay the next evolution until the correct time has elapsed. Keep in mind that the time between updates can be found with the following formula (where T is the time between updates in seconds, and f is the update rate/frequency): T = 1 f Display You will not be required to write your own display component for this program. Instead it has been provided to you in the form of a library called Display. It is your task to integrate this library into your program. The project library is already contained within the assignment template provided on Blackboard. To interface with the display, you will need to use the Grid class. The classes in the library are well documented using XML style comments, you are encouraged to read these comments to help you understand the code. Ensure that you do not modify the code in this library so that the display works as intended. Command Line Interface Many modern software applications are controlled via graphical user interfaces (GUI), however command line interfaces (CLI) are still frequently used by software developers and system administrators. The creation of GUIs are outside the scope of this unit (event driven programming is covered more in CAB302), so your application must be created using a CLI instead. Depending on the application, CLIs have different usages. This section will describe the general structure and usage of a CLI, and the specific usage that your program’s CLI must follow. Failure to follow these CLI requirements precisely will mean that your program cannot be tested correctly and will likely result in severe academic penalty. 4 CLI Command Structure A lot of single purpose CLI programs follow the following structure: > executable [] The right angle bracket (>) indicates the beginning of the command line prompt, you do not type this yourself. The executable is the name of the program. In this assignment, the program will be called life. More specifically, because we are creating a .NET Core application, the .dll file that is built for our program can be executed on MacOS and Windows like so: > dotnet life.dll [] The [] are a series of optional arguments for your program. These arguments will allow the program to run with a variety of different settings that differ from the defaults. Each of the option type arguments
Answered Same DaySep 13, 2021CAB201

Answer To: Life - Part 1: Assignment Specification CAB201 Semester 2, 2020 Last Updated: 04/09/2020 Assigment...

Shweta answered on Sep 18 2021
141 Votes
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/CRA_SoC.xlsx
Sheet1
                Life (Part 1) - CRA & Statement of Completeness
                CAB201 - Programming Principles
                        Last Name:        
                        First Name:                                Score:        54.00
                        Student ID:                                Grade:        18.90%
                This document will need to accurately state the elements of your submission that have been completed. Enter numbers into each of the criteria that reflect how well you think you did. Include any limitations, bugs, logical/run-time error or general comments in the comment section at the end of each section. You should use this as a 'checklist' for completing your assignment.
                Submission Items                                                Score        Max
                Each of the items below are required for submission, failure to submit any of these items will result in a point deduction. The amount deducted will be proportional to the amount of incomplete work.
                Progress Submission                                                5        5
                CRA & Statement of Completeness                                                 1        1
                User Manual (README.md)                                                2        2
                Total                                                8        8
                Comments
                Command Line Arguments                                                Score        Max
                To gain points for this section, your program must be able to correctly interpret command line arguments. Generally, each command line argument will be tested for its flag name, default value and validation.
                General                Multiple flags can be used at once                                        3
                                Missing number of paramters (for any given option) are reported                                        3
                Default Values                Step Mode: OFF                                        1
                                Periodic Behaviour: OFF                                        1
                                Random Factor: 0.5 (50%)                                        1
                                Update Rate: 5 updates/second                                        1
                                Generations: 50                                        1
                                Input File: N/A                                        1
                                Dimensions: 16 x 16                                        1
                Usage and Effect                Step Mode: --step correctly enables step mode                                        2
                                Periodic Behaviour: --periodic correctly enables periodic behaviour                                        2
                                Random Factor: --random correctly changes the random factor                                        2
                                Update Rate: --max-update correctly changes the update rate                                        2
                                Generations: --generations correctly changes the number of generations                                        2
                                Input File: --seed correctly sets the seed file path                                        2
                                Dimensions: --dimensions correctly changes the rows and columns                                        2
                Validation                Random Factor: Floating point values between 0 and 1 (inclusive)                                        1
                                Update Rate: Floating point values between 1 and 30 (inclusive)                                        1
                                Generations: Integer values above 0                                        1
                                Input File: Valid paths with a .seed file extension                                         1
                                Dimensions: Integer values between 4 and 48 (inclusive)                                        1
                Total                                                0        32
                Comments
                Functionality and Flow                                                Score        Max
                To gain points for this section, your program must behave in correctly and in accordance to the specification.
                Seed File                Seed file can be read by program, and override the random seed functionality                                        2
                                Seed file cells are presented in the correct orientation                                        2
                Flow                Program starts by reporting the success or failure of interpretting the command line arguments                                3        3
                                Program displays the runtime settings before beginning the simulation                                3        3
                                The spacebar key is exclusively used to progress the program                                        3
                Simulation                The generation number is displayed to the bottom right of the grid.                                2        2
                                When the simulation is complete, the grid will display as complete and wait for the user before clearing the screen                                2        2
                                The simulation behaves acording to the rules of Life                                10        10
                                The simulation can be controlled by generation in step mode                                        2
                                The simulation can exhibit periodic behaviour                                        5
                Presentation                Warning/error messages are descriptive and insightful                                3        3
                                Console output is clearly presented and uncluttered                                3        3
                Total                                                26        40
                Comments
                Code Quality                                                Score        Max
                To gain points for this section, you must maintain good code quality throughout your whole project. You should follow the guidelines and conventions presented in the CAB201 C# Programming Style Guide to help you meet these criteria,
Important: Your target reader is a programmer, not an absolute beginner.
                Naming: Maintained, consistent and clear standard in variable, method and class naming.                                                3        3
                Magic Numbers: Magic numbers have been replaced with appropriately named constants.                                                 2        2
                Variable Declarations: Varaibles are declared with minimum scope and global declarations are avoided where appropriate.                                                2        2
                Format: Consistent and appropriate white spacing, line length, indentation, bracing, and separation into files within the project.                                                3        3
                Comments: All classes and methods are appropriately commented. Use of in-line comments to explain complex (non-obvious) code. In-line comments are not excessive.                                                4        4
                Methods: Methods are single purpose and clear, and code is reasonably efficient and succinct.                                                3        3
                Code reuse: No unnecessarily long or repeated code. No redundant methods.                                                 3        3
                Total                                                20        20
                Comments
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/.vs/Life/DesignTimeBuild/.dtbcache
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/.vs/Life/v16/.suo
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/.vs/Life/v16/Server/sqlite3/db.lock
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/.vs/Life/v16/Server/sqlite3/storage.ide
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/ConsoleApp1/ConsoleApp1.csproj


Exe
netcoreapp2.2


order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/ConsoleApp1/obj/ConsoleApp1.csproj.nuget.cache
{
"version": 1,
"dgSpecHash": "MJklXI3m22kQdRCAnmOyieTphvub1p4TmLFmnQYe5VFMS3N7B7WtVE7ER+Fk9ThbjruawLFA9chw1XHmkMp2Mw==",
"success": true
}
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/ConsoleApp1/obj/ConsoleApp1.csproj.nuget.dgspec.json
{
"format": 1,
"restore": {
"C:\\Users\\Acer\\Desktop\\hOPE\\Life\\ConsoleApp1\\ConsoleApp1.csproj": {}
},
"projects": {
"C:\\Users\\Acer\\Desktop\\hOPE\\Life\\ConsoleApp1\\ConsoleApp1.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\Acer\\Desktop\\hOPE\\Life\\ConsoleApp1\\ConsoleApp1.csproj",
"projectName": "ConsoleApp1",
"projectPath": "C:\\Users\\Acer\\Desktop\\hOPE\\Life\\ConsoleApp1\\ConsoleApp1.csproj",
"packagesPath": "C:\\Users\\Acer\\.nuget\\packages\\",
"outputPath": "C:\\Users\\Acer\\Desktop\\hOPE\\Life\\ConsoleApp1\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
],
"configFilePaths": [
"C:\\Users\\Acer\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netcoreapp2.2"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netcoreapp2.2": {
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"netcoreapp2.2": {
"dependencies": {
"Microsoft.NETCore.App": {
"suppressParent": "All",
"target": "Package",
"version": "[2.2.0, )",
"autoReferenced": true
}
},
"imports": [
"net461"
],
"assetTargetFallback": true,
"warn": true
}
}
}
}
}
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/ConsoleApp1/obj/ConsoleApp1.csproj.nuget.g.props


True
NuGet
$(MSBuildThisFileDirectory)project.assets.json
$(UserProfile)\.nuget\packages\
C:\Users\Acer\.nuget\packages\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder
PackageReference
5.2.0


$(MSBuildAllProjects);$(MSBuildThisFileFullPath)




order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/ConsoleApp1/obj/ConsoleApp1.csproj.nuget.g.targets


$(MSBuildAllProjects);$(MSBuildThisFileFullPath)





order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/ConsoleApp1/obj/Debug/netcoreapp2.2/ConsoleApp1.AssemblyInfo.cs
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//

//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("ConsoleA
pp1")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("ConsoleApp1")]
[assembly: System.Reflection.AssemblyTitleAttribute("ConsoleApp1")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/ConsoleApp1/obj/Debug/netcoreapp2.2/ConsoleApp1.AssemblyInfoInputs.cache
0cbac02cf6b33ab9449e1ec02e8dbba2474e8080
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/ConsoleApp1/obj/Debug/netcoreapp2.2/ConsoleApp1.assets.cache
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/ConsoleApp1/obj/Debug/netcoreapp2.2/ConsoleApp1.csproj.CoreCompileInputs.cache
dec4a00d98c446b157dd6e544a800dbd65f810b4
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/ConsoleApp1/obj/Debug/netcoreapp2.2/ConsoleApp1.csprojAssemblyReference.cache
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/ConsoleApp1/obj/project.assets.json
{
"version": 3,
"targets": {
".NETCoreApp,Version=v2.2": {
"Microsoft.NETCore.App/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.DotNetHostPolicy": "2.2.0",
"Microsoft.NETCore.Platforms": "2.2.0",
"Microsoft.NETCore.Targets": "2.0.0",
"NETStandard.Library": "2.0.3"
},
"compile": {
"ref/netcoreapp2.2/Microsoft.CSharp.dll": {},
"ref/netcoreapp2.2/Microsoft.VisualBasic.dll": {},
"ref/netcoreapp2.2/Microsoft.Win32.Primitives.dll": {},
"ref/netcoreapp2.2/System.AppContext.dll": {},
"ref/netcoreapp2.2/System.Buffers.dll": {},
"ref/netcoreapp2.2/System.Collections.Concurrent.dll": {},
"ref/netcoreapp2.2/System.Collections.Immutable.dll": {},
"ref/netcoreapp2.2/System.Collections.NonGeneric.dll": {},
"ref/netcoreapp2.2/System.Collections.Specialized.dll": {},
"ref/netcoreapp2.2/System.Collections.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.Annotations.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.DataAnnotations.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.EventBasedAsync.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.Primitives.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.TypeConverter.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.dll": {},
"ref/netcoreapp2.2/System.Configuration.dll": {},
"ref/netcoreapp2.2/System.Console.dll": {},
"ref/netcoreapp2.2/System.Core.dll": {},
"ref/netcoreapp2.2/System.Data.Common.dll": {},
"ref/netcoreapp2.2/System.Data.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Contracts.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Debug.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.DiagnosticSource.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.FileVersionInfo.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Process.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.StackTrace.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.TextWriterTraceListener.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Tools.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.TraceSource.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Tracing.dll": {},
"ref/netcoreapp2.2/System.Drawing.Primitives.dll": {},
"ref/netcoreapp2.2/System.Drawing.dll": {},
"ref/netcoreapp2.2/System.Dynamic.Runtime.dll": {},
"ref/netcoreapp2.2/System.Globalization.Calendars.dll": {},
"ref/netcoreapp2.2/System.Globalization.Extensions.dll": {},
"ref/netcoreapp2.2/System.Globalization.dll": {},
"ref/netcoreapp2.2/System.IO.Compression.Brotli.dll": {},
"ref/netcoreapp2.2/System.IO.Compression.FileSystem.dll": {},
"ref/netcoreapp2.2/System.IO.Compression.ZipFile.dll": {},
"ref/netcoreapp2.2/System.IO.Compression.dll": {},
"ref/netcoreapp2.2/System.IO.FileSystem.DriveInfo.dll": {},
"ref/netcoreapp2.2/System.IO.FileSystem.Primitives.dll": {},
"ref/netcoreapp2.2/System.IO.FileSystem.Watcher.dll": {},
"ref/netcoreapp2.2/System.IO.FileSystem.dll": {},
"ref/netcoreapp2.2/System.IO.IsolatedStorage.dll": {},
"ref/netcoreapp2.2/System.IO.MemoryMappedFiles.dll": {},
"ref/netcoreapp2.2/System.IO.Pipes.dll": {},
"ref/netcoreapp2.2/System.IO.UnmanagedMemoryStream.dll": {},
"ref/netcoreapp2.2/System.IO.dll": {},
"ref/netcoreapp2.2/System.Linq.Expressions.dll": {},
"ref/netcoreapp2.2/System.Linq.Parallel.dll": {},
"ref/netcoreapp2.2/System.Linq.Queryable.dll": {},
"ref/netcoreapp2.2/System.Linq.dll": {},
"ref/netcoreapp2.2/System.Memory.dll": {},
"ref/netcoreapp2.2/System.Net.Http.dll": {},
"ref/netcoreapp2.2/System.Net.HttpListener.dll": {},
"ref/netcoreapp2.2/System.Net.Mail.dll": {},
"ref/netcoreapp2.2/System.Net.NameResolution.dll": {},
"ref/netcoreapp2.2/System.Net.NetworkInformation.dll": {},
"ref/netcoreapp2.2/System.Net.Ping.dll": {},
"ref/netcoreapp2.2/System.Net.Primitives.dll": {},
"ref/netcoreapp2.2/System.Net.Requests.dll": {},
"ref/netcoreapp2.2/System.Net.Security.dll": {},
"ref/netcoreapp2.2/System.Net.ServicePoint.dll": {},
"ref/netcoreapp2.2/System.Net.Sockets.dll": {},
"ref/netcoreapp2.2/System.Net.WebClient.dll": {},
"ref/netcoreapp2.2/System.Net.WebHeaderCollection.dll": {},
"ref/netcoreapp2.2/System.Net.WebProxy.dll": {},
"ref/netcoreapp2.2/System.Net.WebSockets.Client.dll": {},
"ref/netcoreapp2.2/System.Net.WebSockets.dll": {},
"ref/netcoreapp2.2/System.Net.dll": {},
"ref/netcoreapp2.2/System.Numerics.Vectors.dll": {},
"ref/netcoreapp2.2/System.Numerics.dll": {},
"ref/netcoreapp2.2/System.ObjectModel.dll": {},
"ref/netcoreapp2.2/System.Reflection.DispatchProxy.dll": {},
"ref/netcoreapp2.2/System.Reflection.Emit.ILGeneration.dll": {},
"ref/netcoreapp2.2/System.Reflection.Emit.Lightweight.dll": {},
"ref/netcoreapp2.2/System.Reflection.Emit.dll": {},
"ref/netcoreapp2.2/System.Reflection.Extensions.dll": {},
"ref/netcoreapp2.2/System.Reflection.Metadata.dll": {},
"ref/netcoreapp2.2/System.Reflection.Primitives.dll": {},
"ref/netcoreapp2.2/System.Reflection.TypeExtensions.dll": {},
"ref/netcoreapp2.2/System.Reflection.dll": {},
"ref/netcoreapp2.2/System.Resources.Reader.dll": {},
"ref/netcoreapp2.2/System.Resources.ResourceManager.dll": {},
"ref/netcoreapp2.2/System.Resources.Writer.dll": {},
"ref/netcoreapp2.2/System.Runtime.CompilerServices.VisualC.dll": {},
"ref/netcoreapp2.2/System.Runtime.Extensions.dll": {},
"ref/netcoreapp2.2/System.Runtime.Handles.dll": {},
"ref/netcoreapp2.2/System.Runtime.InteropServices.RuntimeInformation.dll": {},
"ref/netcoreapp2.2/System.Runtime.InteropServices.WindowsRuntime.dll": {},
"ref/netcoreapp2.2/System.Runtime.InteropServices.dll": {},
"ref/netcoreapp2.2/System.Runtime.Loader.dll": {},
"ref/netcoreapp2.2/System.Runtime.Numerics.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.Formatters.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.Json.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.Primitives.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.Xml.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.dll": {},
"ref/netcoreapp2.2/System.Runtime.dll": {},
"ref/netcoreapp2.2/System.Security.Claims.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.Algorithms.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.Csp.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.Encoding.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.Primitives.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.X509Certificates.dll": {},
"ref/netcoreapp2.2/System.Security.Principal.dll": {},
"ref/netcoreapp2.2/System.Security.SecureString.dll": {},
"ref/netcoreapp2.2/System.Security.dll": {},
"ref/netcoreapp2.2/System.ServiceModel.Web.dll": {},
"ref/netcoreapp2.2/System.ServiceProcess.dll": {},
"ref/netcoreapp2.2/System.Text.Encoding.Extensions.dll": {},
"ref/netcoreapp2.2/System.Text.Encoding.dll": {},
"ref/netcoreapp2.2/System.Text.RegularExpressions.dll": {},
"ref/netcoreapp2.2/System.Threading.Overlapped.dll": {},
"ref/netcoreapp2.2/System.Threading.Tasks.Dataflow.dll": {},
"ref/netcoreapp2.2/System.Threading.Tasks.Extensions.dll": {},
"ref/netcoreapp2.2/System.Threading.Tasks.Parallel.dll": {},
"ref/netcoreapp2.2/System.Threading.Tasks.dll": {},
"ref/netcoreapp2.2/System.Threading.Thread.dll": {},
"ref/netcoreapp2.2/System.Threading.ThreadPool.dll": {},
"ref/netcoreapp2.2/System.Threading.Timer.dll": {},
"ref/netcoreapp2.2/System.Threading.dll": {},
"ref/netcoreapp2.2/System.Transactions.Local.dll": {},
"ref/netcoreapp2.2/System.Transactions.dll": {},
"ref/netcoreapp2.2/System.ValueTuple.dll": {},
"ref/netcoreapp2.2/System.Web.HttpUtility.dll": {},
"ref/netcoreapp2.2/System.Web.dll": {},
"ref/netcoreapp2.2/System.Windows.dll": {},
"ref/netcoreapp2.2/System.Xml.Linq.dll": {},
"ref/netcoreapp2.2/System.Xml.ReaderWriter.dll": {},
"ref/netcoreapp2.2/System.Xml.Serialization.dll": {},
"ref/netcoreapp2.2/System.Xml.XDocument.dll": {},
"ref/netcoreapp2.2/System.Xml.XPath.XDocument.dll": {},
"ref/netcoreapp2.2/System.Xml.XPath.dll": {},
"ref/netcoreapp2.2/System.Xml.XmlDocument.dll": {},
"ref/netcoreapp2.2/System.Xml.XmlSerializer.dll": {},
"ref/netcoreapp2.2/System.Xml.dll": {},
"ref/netcoreapp2.2/System.dll": {},
"ref/netcoreapp2.2/WindowsBase.dll": {},
"ref/netcoreapp2.2/mscorlib.dll": {},
"ref/netcoreapp2.2/netstandard.dll": {}
},
"build": {
"build/netcoreapp2.2/Microsoft.NETCore.App.props": {},
"build/netcoreapp2.2/Microsoft.NETCore.App.targets": {}
}
},
"Microsoft.NETCore.DotNetAppHost/2.2.0": {
"type": "package"
},
"Microsoft.NETCore.DotNetHostPolicy/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.DotNetHostResolver": "2.2.0"
}
},
"Microsoft.NETCore.DotNetHostResolver/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.DotNetAppHost": "2.2.0"
}
},
"Microsoft.NETCore.Platforms/2.2.0": {
"type": "package",
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
}
},
"Microsoft.NETCore.Targets/2.0.0": {
"type": "package",
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
}
},
"NETStandard.Library/2.0.3": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0"
},
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
},
"build": {
"build/netstandard2.0/NETStandard.Library.targets": {}
}
}
}
},
"libraries": {
"Microsoft.NETCore.App/2.2.0": {
"sha512": "7z5l8Jp324S8bU8+yyWeYHXUFYvKyiI5lqS1dXgTzOx1H69Qbf6df12kCKlNX45LpMfCMd4U3M6p7Rl5Zk7SLA==",
"type": "package",
"path": "microsoft.netcore.app/2.2.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"Microsoft.NETCore.App.versions.txt",
"THIRD-PARTY-NOTICES.TXT",
"build/netcoreapp2.2/Microsoft.NETCore.App.PlatformManifest.txt",
"build/netcoreapp2.2/Microsoft.NETCore.App.props",
"build/netcoreapp2.2/Microsoft.NETCore.App.targets",
"microsoft.netcore.app.2.2.0.nupkg.sha512",
"microsoft.netcore.app.nuspec",
"ref/netcoreapp2.2/Microsoft.CSharp.dll",
"ref/netcoreapp2.2/Microsoft.CSharp.xml",
"ref/netcoreapp2.2/Microsoft.VisualBasic.dll",
"ref/netcoreapp2.2/Microsoft.VisualBasic.xml",
"ref/netcoreapp2.2/Microsoft.Win32.Primitives.dll",
"ref/netcoreapp2.2/Microsoft.Win32.Primitives.xml",
"ref/netcoreapp2.2/System.AppContext.dll",
"ref/netcoreapp2.2/System.Buffers.dll",
"ref/netcoreapp2.2/System.Buffers.xml",
"ref/netcoreapp2.2/System.Collections.Concurrent.dll",
"ref/netcoreapp2.2/System.Collections.Concurrent.xml",
"ref/netcoreapp2.2/System.Collections.Immutable.dll",
"ref/netcoreapp2.2/System.Collections.Immutable.xml",
"ref/netcoreapp2.2/System.Collections.NonGeneric.dll",
"ref/netcoreapp2.2/System.Collections.NonGeneric.xml",
"ref/netcoreapp2.2/System.Collections.Specialized.dll",
"ref/netcoreapp2.2/System.Collections.Specialized.xml",
"ref/netcoreapp2.2/System.Collections.dll",
"ref/netcoreapp2.2/System.Collections.xml",
"ref/netcoreapp2.2/System.ComponentModel.Annotations.dll",
"ref/netcoreapp2.2/System.ComponentModel.Annotations.xml",
"ref/netcoreapp2.2/System.ComponentModel.DataAnnotations.dll",
"ref/netcoreapp2.2/System.ComponentModel.EventBasedAsync.dll",
"ref/netcoreapp2.2/System.ComponentModel.EventBasedAsync.xml",
"ref/netcoreapp2.2/System.ComponentModel.Primitives.dll",
"ref/netcoreapp2.2/System.ComponentModel.Primitives.xml",
"ref/netcoreapp2.2/System.ComponentModel.TypeConverter.dll",
"ref/netcoreapp2.2/System.ComponentModel.TypeConverter.xml",
"ref/netcoreapp2.2/System.ComponentModel.dll",
"ref/netcoreapp2.2/System.ComponentModel.xml",
"ref/netcoreapp2.2/System.Configuration.dll",
"ref/netcoreapp2.2/System.Console.dll",
"ref/netcoreapp2.2/System.Console.xml",
"ref/netcoreapp2.2/System.Core.dll",
"ref/netcoreapp2.2/System.Data.Common.dll",
"ref/netcoreapp2.2/System.Data.Common.xml",
"ref/netcoreapp2.2/System.Data.dll",
"ref/netcoreapp2.2/System.Diagnostics.Contracts.dll",
"ref/netcoreapp2.2/System.Diagnostics.Contracts.xml",
"ref/netcoreapp2.2/System.Diagnostics.Debug.dll",
"ref/netcoreapp2.2/System.Diagnostics.Debug.xml",
"ref/netcoreapp2.2/System.Diagnostics.DiagnosticSource.dll",
"ref/netcoreapp2.2/System.Diagnostics.DiagnosticSource.xml",
"ref/netcoreapp2.2/System.Diagnostics.FileVersionInfo.dll",
"ref/netcoreapp2.2/System.Diagnostics.FileVersionInfo.xml",
"ref/netcoreapp2.2/System.Diagnostics.Process.dll",
"ref/netcoreapp2.2/System.Diagnostics.Process.xml",
"ref/netcoreapp2.2/System.Diagnostics.StackTrace.dll",
"ref/netcoreapp2.2/System.Diagnostics.StackTrace.xml",
"ref/netcoreapp2.2/System.Diagnostics.TextWriterTraceListener.dll",
"ref/netcoreapp2.2/System.Diagnostics.TextWriterTraceListener.xml",
"ref/netcoreapp2.2/System.Diagnostics.Tools.dll",
"ref/netcoreapp2.2/System.Diagnostics.Tools.xml",
"ref/netcoreapp2.2/System.Diagnostics.TraceSource.dll",
"ref/netcoreapp2.2/System.Diagnostics.TraceSource.xml",
"ref/netcoreapp2.2/System.Diagnostics.Tracing.dll",
"ref/netcoreapp2.2/System.Diagnostics.Tracing.xml",
"ref/netcoreapp2.2/System.Drawing.Primitives.dll",
"ref/netcoreapp2.2/System.Drawing.Primitives.xml",
"ref/netcoreapp2.2/System.Drawing.dll",
"ref/netcoreapp2.2/System.Dynamic.Runtime.dll",
"ref/netcoreapp2.2/System.Globalization.Calendars.dll",
"ref/netcoreapp2.2/System.Globalization.Extensions.dll",
"ref/netcoreapp2.2/System.Globalization.dll",
"ref/netcoreapp2.2/System.IO.Compression.Brotli.dll",
"ref/netcoreapp2.2/System.IO.Compression.FileSystem.dll",
"ref/netcoreapp2.2/System.IO.Compression.ZipFile.dll",
"ref/netcoreapp2.2/System.IO.Compression.ZipFile.xml",
"ref/netcoreapp2.2/System.IO.Compression.dll",
"ref/netcoreapp2.2/System.IO.Compression.xml",
"ref/netcoreapp2.2/System.IO.FileSystem.DriveInfo.dll",
"ref/netcoreapp2.2/System.IO.FileSystem.DriveInfo.xml",
"ref/netcoreapp2.2/System.IO.FileSystem.Primitives.dll",
"ref/netcoreapp2.2/System.IO.FileSystem.Watcher.dll",
"ref/netcoreapp2.2/System.IO.FileSystem.Watcher.xml",
"ref/netcoreapp2.2/System.IO.FileSystem.dll",
"ref/netcoreapp2.2/System.IO.FileSystem.xml",
"ref/netcoreapp2.2/System.IO.IsolatedStorage.dll",
"ref/netcoreapp2.2/System.IO.IsolatedStorage.xml",
"ref/netcoreapp2.2/System.IO.MemoryMappedFiles.dll",
"ref/netcoreapp2.2/System.IO.MemoryMappedFiles.xml",
"ref/netcoreapp2.2/System.IO.Pipes.dll",
"ref/netcoreapp2.2/System.IO.Pipes.xml",
"ref/netcoreapp2.2/System.IO.UnmanagedMemoryStream.dll",
"ref/netcoreapp2.2/System.IO.dll",
"ref/netcoreapp2.2/System.Linq.Expressions.dll",
"ref/netcoreapp2.2/System.Linq.Expressions.xml",
"ref/netcoreapp2.2/System.Linq.Parallel.dll",
"ref/netcoreapp2.2/System.Linq.Parallel.xml",
"ref/netcoreapp2.2/System.Linq.Queryable.dll",
"ref/netcoreapp2.2/System.Linq.Queryable.xml",
"ref/netcoreapp2.2/System.Linq.dll",
"ref/netcoreapp2.2/System.Linq.xml",
"ref/netcoreapp2.2/System.Memory.dll",
"ref/netcoreapp2.2/System.Memory.xml",
"ref/netcoreapp2.2/System.Net.Http.dll",
"ref/netcoreapp2.2/System.Net.Http.xml",
"ref/netcoreapp2.2/System.Net.HttpListener.dll",
"ref/netcoreapp2.2/System.Net.HttpListener.xml",
"ref/netcoreapp2.2/System.Net.Mail.dll",
"ref/netcoreapp2.2/System.Net.Mail.xml",
"ref/netcoreapp2.2/System.Net.NameResolution.dll",
"ref/netcoreapp2.2/System.Net.NameResolution.xml",
"ref/netcoreapp2.2/System.Net.NetworkInformation.dll",
"ref/netcoreapp2.2/System.Net.NetworkInformation.xml",
"ref/netcoreapp2.2/System.Net.Ping.dll",
"ref/netcoreapp2.2/System.Net.Ping.xml",
"ref/netcoreapp2.2/System.Net.Primitives.dll",
"ref/netcoreapp2.2/System.Net.Primitives.xml",
"ref/netcoreapp2.2/System.Net.Requests.dll",
"ref/netcoreapp2.2/System.Net.Requests.xml",
"ref/netcoreapp2.2/System.Net.Security.dll",
"ref/netcoreapp2.2/System.Net.Security.xml",
"ref/netcoreapp2.2/System.Net.ServicePoint.dll",
"ref/netcoreapp2.2/System.Net.ServicePoint.xml",
"ref/netcoreapp2.2/System.Net.Sockets.dll",
"ref/netcoreapp2.2/System.Net.Sockets.xml",
"ref/netcoreapp2.2/System.Net.WebClient.dll",
"ref/netcoreapp2.2/System.Net.WebClient.xml",
"ref/netcoreapp2.2/System.Net.WebHeaderCollection.dll",
"ref/netcoreapp2.2/System.Net.WebHeaderCollection.xml",
"ref/netcoreapp2.2/System.Net.WebProxy.dll",
"ref/netcoreapp2.2/System.Net.WebProxy.xml",
"ref/netcoreapp2.2/System.Net.WebSockets.Client.dll",
"ref/netcoreapp2.2/System.Net.WebSockets.Client.xml",
"ref/netcoreapp2.2/System.Net.WebSockets.dll",
"ref/netcoreapp2.2/System.Net.WebSockets.xml",
"ref/netcoreapp2.2/System.Net.dll",
"ref/netcoreapp2.2/System.Numerics.Vectors.dll",
"ref/netcoreapp2.2/System.Numerics.Vectors.xml",
"ref/netcoreapp2.2/System.Numerics.dll",
"ref/netcoreapp2.2/System.ObjectModel.dll",
"ref/netcoreapp2.2/System.ObjectModel.xml",
"ref/netcoreapp2.2/System.Reflection.DispatchProxy.dll",
"ref/netcoreapp2.2/System.Reflection.DispatchProxy.xml",
"ref/netcoreapp2.2/System.Reflection.Emit.ILGeneration.dll",
"ref/netcoreapp2.2/System.Reflection.Emit.ILGeneration.xml",
"ref/netcoreapp2.2/System.Reflection.Emit.Lightweight.dll",
"ref/netcoreapp2.2/System.Reflection.Emit.Lightweight.xml",
"ref/netcoreapp2.2/System.Reflection.Emit.dll",
"ref/netcoreapp2.2/System.Reflection.Emit.xml",
"ref/netcoreapp2.2/System.Reflection.Extensions.dll",
"ref/netcoreapp2.2/System.Reflection.Metadata.dll",
"ref/netcoreapp2.2/System.Reflection.Metadata.xml",
"ref/netcoreapp2.2/System.Reflection.Primitives.dll",
"ref/netcoreapp2.2/System.Reflection.Primitives.xml",
"ref/netcoreapp2.2/System.Reflection.TypeExtensions.dll",
"ref/netcoreapp2.2/System.Reflection.TypeExtensions.xml",
"ref/netcoreapp2.2/System.Reflection.dll",
"ref/netcoreapp2.2/System.Resources.Reader.dll",
"ref/netcoreapp2.2/System.Resources.ResourceManager.dll",
"ref/netcoreapp2.2/System.Resources.ResourceManager.xml",
"ref/netcoreapp2.2/System.Resources.Writer.dll",
"ref/netcoreapp2.2/System.Resources.Writer.xml",
"ref/netcoreapp2.2/System.Runtime.CompilerServices.VisualC.dll",
"ref/netcoreapp2.2/System.Runtime.CompilerServices.VisualC.xml",
"ref/netcoreapp2.2/System.Runtime.Extensions.dll",
"ref/netcoreapp2.2/System.Runtime.Extensions.xml",
"ref/netcoreapp2.2/System.Runtime.Handles.dll",
"ref/netcoreapp2.2/System.Runtime.InteropServices.RuntimeInformation.dll",
"ref/netcoreapp2.2/System.Runtime.InteropServices.RuntimeInformation.xml",
"ref/netcoreapp2.2/System.Runtime.InteropServices.WindowsRuntime.dll",
"ref/netcoreapp2.2/System.Runtime.InteropServices.WindowsRuntime.xml",
"ref/netcoreapp2.2/System.Runtime.InteropServices.dll",
"ref/netcoreapp2.2/System.Runtime.InteropServices.xml",
"ref/netcoreapp2.2/System.Runtime.Loader.dll",
"ref/netcoreapp2.2/System.Runtime.Loader.xml",
"ref/netcoreapp2.2/System.Runtime.Numerics.dll",
"ref/netcoreapp2.2/System.Runtime.Numerics.xml",
"ref/netcoreapp2.2/System.Runtime.Serialization.Formatters.dll",
"ref/netcoreapp2.2/System.Runtime.Serialization.Formatters.xml",
"ref/netcoreapp2.2/System.Runtime.Serialization.Json.dll",
"ref/netcoreapp2.2/System.Runtime.Serialization.Json.xml",
"ref/netcoreapp2.2/System.Runtime.Serialization.Primitives.dll",
"ref/netcoreapp2.2/System.Runtime.Serialization.Primitives.xml",
"ref/netcoreapp2.2/System.Runtime.Serialization.Xml.dll",
"ref/netcoreapp2.2/System.Runtime.Serialization.Xml.xml",
"ref/netcoreapp2.2/System.Runtime.Serialization.dll",
"ref/netcoreapp2.2/System.Runtime.dll",
"ref/netcoreapp2.2/System.Runtime.xml",
"ref/netcoreapp2.2/System.Security.Claims.dll",
"ref/netcoreapp2.2/System.Security.Claims.xml",
"ref/netcoreapp2.2/System.Security.Cryptography.Algorithms.dll",
"ref/netcoreapp2.2/System.Security.Cryptography.Algorithms.xml",
"ref/netcoreapp2.2/System.Security.Cryptography.Csp.dll",
"ref/netcoreapp2.2/System.Security.Cryptography.Csp.xml",
"ref/netcoreapp2.2/System.Security.Cryptography.Encoding.dll",
"ref/netcoreapp2.2/System.Security.Cryptography.Encoding.xml",
"ref/netcoreapp2.2/System.Security.Cryptography.Primitives.dll",
"ref/netcoreapp2.2/System.Security.Cryptography.Primitives.xml",
"ref/netcoreapp2.2/System.Security.Cryptography.X509Certificates.dll",
"ref/netcoreapp2.2/System.Security.Cryptography.X509Certificates.xml",
"ref/netcoreapp2.2/System.Security.Principal.dll",
"ref/netcoreapp2.2/System.Security.Principal.xml",
"ref/netcoreapp2.2/System.Security.SecureString.dll",
"ref/netcoreapp2.2/System.Security.dll",
"ref/netcoreapp2.2/System.ServiceModel.Web.dll",
"ref/netcoreapp2.2/System.ServiceProcess.dll",
"ref/netcoreapp2.2/System.Text.Encoding.Extensions.dll",
"ref/netcoreapp2.2/System.Text.Encoding.Extensions.xml",
"ref/netcoreapp2.2/System.Text.Encoding.dll",
"ref/netcoreapp2.2/System.Text.RegularExpressions.dll",
"ref/netcoreapp2.2/System.Text.RegularExpressions.xml",
"ref/netcoreapp2.2/System.Threading.Overlapped.dll",
"ref/netcoreapp2.2/System.Threading.Overlapped.xml",
"ref/netcoreapp2.2/System.Threading.Tasks.Dataflow.dll",
"ref/netcoreapp2.2/System.Threading.Tasks.Dataflow.xml",
"ref/netcoreapp2.2/System.Threading.Tasks.Extensions.dll",
"ref/netcoreapp2.2/System.Threading.Tasks.Extensions.xml",
"ref/netcoreapp2.2/System.Threading.Tasks.Parallel.dll",
"ref/netcoreapp2.2/System.Threading.Tasks.Parallel.xml",
"ref/netcoreapp2.2/System.Threading.Tasks.dll",
"ref/netcoreapp2.2/System.Threading.Tasks.xml",
"ref/netcoreapp2.2/System.Threading.Thread.dll",
"ref/netcoreapp2.2/System.Threading.Thread.xml",
"ref/netcoreapp2.2/System.Threading.ThreadPool.dll",
"ref/netcoreapp2.2/System.Threading.ThreadPool.xml",
"ref/netcoreapp2.2/System.Threading.Timer.dll",
"ref/netcoreapp2.2/System.Threading.Timer.xml",
"ref/netcoreapp2.2/System.Threading.dll",
"ref/netcoreapp2.2/System.Threading.xml",
"ref/netcoreapp2.2/System.Transactions.Local.dll",
"ref/netcoreapp2.2/System.Transactions.Local.xml",
"ref/netcoreapp2.2/System.Transactions.dll",
"ref/netcoreapp2.2/System.ValueTuple.dll",
"ref/netcoreapp2.2/System.Web.HttpUtility.dll",
"ref/netcoreapp2.2/System.Web.HttpUtility.xml",
"ref/netcoreapp2.2/System.Web.dll",
"ref/netcoreapp2.2/System.Windows.dll",
"ref/netcoreapp2.2/System.Xml.Linq.dll",
"ref/netcoreapp2.2/System.Xml.ReaderWriter.dll",
"ref/netcoreapp2.2/System.Xml.ReaderWriter.xml",
"ref/netcoreapp2.2/System.Xml.Serialization.dll",
"ref/netcoreapp2.2/System.Xml.XDocument.dll",
"ref/netcoreapp2.2/System.Xml.XDocument.xml",
"ref/netcoreapp2.2/System.Xml.XPath.XDocument.dll",
"ref/netcoreapp2.2/System.Xml.XPath.XDocument.xml",
"ref/netcoreapp2.2/System.Xml.XPath.dll",
"ref/netcoreapp2.2/System.Xml.XPath.xml",
"ref/netcoreapp2.2/System.Xml.XmlDocument.dll",
"ref/netcoreapp2.2/System.Xml.XmlSerializer.dll",
"ref/netcoreapp2.2/System.Xml.XmlSerializer.xml",
"ref/netcoreapp2.2/System.Xml.dll",
"ref/netcoreapp2.2/System.dll",
"ref/netcoreapp2.2/WindowsBase.dll",
"ref/netcoreapp2.2/mscorlib.dll",
"ref/netcoreapp2.2/netstandard.dll",
"runtime.json"
]
},
"Microsoft.NETCore.DotNetAppHost/2.2.0": {
"sha512": "DrhaKInRKKvN6Ns2VNIlC7ZffLOp9THf8cO6X4fytPRJovJUbF49/zzx4WfgX9E44FMsw9hT8hrKiIqDSHvGvA==",
"type": "package",
"path": "microsoft.netcore.dotnetapphost/2.2.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"microsoft.netcore.dotnetapphost.2.2.0.nupkg.sha512",
"microsoft.netcore.dotnetapphost.nuspec",
"runtime.json"
]
},
"Microsoft.NETCore.DotNetHostPolicy/2.2.0": {
"sha512": "FJie7IoPZFaPgNDxhZGmDBQP/Bs5vPdfca/G2Wf9gd6LIvMYkZcibtmJwB4tcf4KXkaOYfIOo4Cl9sEPMsSzkw==",
"type": "package",
"path": "microsoft.netcore.dotnethostpolicy/2.2.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"microsoft.netcore.dotnethostpolicy.2.2.0.nupkg.sha512",
"microsoft.netcore.dotnethostpolicy.nuspec",
"runtime.json"
]
},
"Microsoft.NETCore.DotNetHostResolver/2.2.0": {
"sha512": "spDm3AJYmebthDNhzY17YLPtvbc+Y1lCLVeiIH1uLJ/hZaM+40pBiPefFR8J1u66Ndkqi8ipR2tEbqPnYnjRhw==",
"type": "package",
"path": "microsoft.netcore.dotnethostresolver/2.2.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"microsoft.netcore.dotnethostresolver.2.2.0.nupkg.sha512",
"microsoft.netcore.dotnethostresolver.nuspec",
"runtime.json"
]
},
"Microsoft.NETCore.Platforms/2.2.0": {
"sha512": "T/J+XZo+YheFTJh8/4uoeJDdz5qOmOMkjg6/VL8mHJ9AnP8+fmV/kcbxeXsob0irRNiChf+V0ig1MCRLp/+Kog==",
"type": "package",
"path": "microsoft.netcore.platforms/2.2.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/netstandard1.0/_._",
"microsoft.netcore.platforms.2.2.0.nupkg.sha512",
"microsoft.netcore.platforms.nuspec",
"runtime.json",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"Microsoft.NETCore.Targets/2.0.0": {
"sha512": "odP/tJj1z6GylFpNo7pMtbd/xQgTC3Ex2If63dRTL38bBNMwsBnJ+RceUIyHdRBC0oik/3NehYT+oECwBhIM3Q==",
"type": "package",
"path": "microsoft.netcore.targets/2.0.0",
"files": [
".nupkg.metadata",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/netstandard1.0/_._",
"microsoft.netcore.targets.2.0.0.nupkg.sha512",
"microsoft.netcore.targets.nuspec",
"runtime.json",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"NETStandard.Library/2.0.3": {
"sha512": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==",
"type": "package",
"path": "netstandard.library/2.0.3",
"files": [
".nupkg.metadata",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"build/netstandard2.0/NETStandard.Library.targets",
"build/netstandard2.0/ref/Microsoft.Win32.Primitives.dll",
"build/netstandard2.0/ref/System.AppContext.dll",
"build/netstandard2.0/ref/System.Collections.Concurrent.dll",
"build/netstandard2.0/ref/System.Collections.NonGeneric.dll",
"build/netstandard2.0/ref/System.Collections.Specialized.dll",
"build/netstandard2.0/ref/System.Collections.dll",
"build/netstandard2.0/ref/System.ComponentModel.Composition.dll",
"build/netstandard2.0/ref/System.ComponentModel.EventBasedAsync.dll",
"build/netstandard2.0/ref/System.ComponentModel.Primitives.dll",
"build/netstandard2.0/ref/System.ComponentModel.TypeConverter.dll",
"build/netstandard2.0/ref/System.ComponentModel.dll",
"build/netstandard2.0/ref/System.Console.dll",
"build/netstandard2.0/ref/System.Core.dll",
"build/netstandard2.0/ref/System.Data.Common.dll",
"build/netstandard2.0/ref/System.Data.dll",
"build/netstandard2.0/ref/System.Diagnostics.Contracts.dll",
"build/netstandard2.0/ref/System.Diagnostics.Debug.dll",
"build/netstandard2.0/ref/System.Diagnostics.FileVersionInfo.dll",
"build/netstandard2.0/ref/System.Diagnostics.Process.dll",
"build/netstandard2.0/ref/System.Diagnostics.StackTrace.dll",
"build/netstandard2.0/ref/System.Diagnostics.TextWriterTraceListener.dll",
"build/netstandard2.0/ref/System.Diagnostics.Tools.dll",
"build/netstandard2.0/ref/System.Diagnostics.TraceSource.dll",
"build/netstandard2.0/ref/System.Diagnostics.Tracing.dll",
"build/netstandard2.0/ref/System.Drawing.Primitives.dll",
"build/netstandard2.0/ref/System.Drawing.dll",
"build/netstandard2.0/ref/System.Dynamic.Runtime.dll",
"build/netstandard2.0/ref/System.Globalization.Calendars.dll",
"build/netstandard2.0/ref/System.Globalization.Extensions.dll",
"build/netstandard2.0/ref/System.Globalization.dll",
"build/netstandard2.0/ref/System.IO.Compression.FileSystem.dll",
"build/netstandard2.0/ref/System.IO.Compression.ZipFile.dll",
"build/netstandard2.0/ref/System.IO.Compression.dll",
"build/netstandard2.0/ref/System.IO.FileSystem.DriveInfo.dll",
"build/netstandard2.0/ref/System.IO.FileSystem.Primitives.dll",
"build/netstandard2.0/ref/System.IO.FileSystem.Watcher.dll",
"build/netstandard2.0/ref/System.IO.FileSystem.dll",
"build/netstandard2.0/ref/System.IO.IsolatedStorage.dll",
"build/netstandard2.0/ref/System.IO.MemoryMappedFiles.dll",
"build/netstandard2.0/ref/System.IO.Pipes.dll",
"build/netstandard2.0/ref/System.IO.UnmanagedMemoryStream.dll",
"build/netstandard2.0/ref/System.IO.dll",
"build/netstandard2.0/ref/System.Linq.Expressions.dll",
"build/netstandard2.0/ref/System.Linq.Parallel.dll",
"build/netstandard2.0/ref/System.Linq.Queryable.dll",
"build/netstandard2.0/ref/System.Linq.dll",
"build/netstandard2.0/ref/System.Net.Http.dll",
"build/netstandard2.0/ref/System.Net.NameResolution.dll",
"build/netstandard2.0/ref/System.Net.NetworkInformation.dll",
"build/netstandard2.0/ref/System.Net.Ping.dll",
"build/netstandard2.0/ref/System.Net.Primitives.dll",
"build/netstandard2.0/ref/System.Net.Requests.dll",
"build/netstandard2.0/ref/System.Net.Security.dll",
"build/netstandard2.0/ref/System.Net.Sockets.dll",
"build/netstandard2.0/ref/System.Net.WebHeaderCollection.dll",
"build/netstandard2.0/ref/System.Net.WebSockets.Client.dll",
"build/netstandard2.0/ref/System.Net.WebSockets.dll",
"build/netstandard2.0/ref/System.Net.dll",
"build/netstandard2.0/ref/System.Numerics.dll",
"build/netstandard2.0/ref/System.ObjectModel.dll",
"build/netstandard2.0/ref/System.Reflection.Extensions.dll",
"build/netstandard2.0/ref/System.Reflection.Primitives.dll",
"build/netstandard2.0/ref/System.Reflection.dll",
"build/netstandard2.0/ref/System.Resources.Reader.dll",
"build/netstandard2.0/ref/System.Resources.ResourceManager.dll",
"build/netstandard2.0/ref/System.Resources.Writer.dll",
"build/netstandard2.0/ref/System.Runtime.CompilerServices.VisualC.dll",
"build/netstandard2.0/ref/System.Runtime.Extensions.dll",
"build/netstandard2.0/ref/System.Runtime.Handles.dll",
"build/netstandard2.0/ref/System.Runtime.InteropServices.RuntimeInformation.dll",
"build/netstandard2.0/ref/System.Runtime.InteropServices.dll",
"build/netstandard2.0/ref/System.Runtime.Numerics.dll",
"build/netstandard2.0/ref/System.Runtime.Serialization.Formatters.dll",
"build/netstandard2.0/ref/System.Runtime.Serialization.Json.dll",
"build/netstandard2.0/ref/System.Runtime.Serialization.Primitives.dll",
"build/netstandard2.0/ref/System.Runtime.Serialization.Xml.dll",
"build/netstandard2.0/ref/System.Runtime.Serialization.dll",
"build/netstandard2.0/ref/System.Runtime.dll",
"build/netstandard2.0/ref/System.Security.Claims.dll",
"build/netstandard2.0/ref/System.Security.Cryptography.Algorithms.dll",
"build/netstandard2.0/ref/System.Security.Cryptography.Csp.dll",
"build/netstandard2.0/ref/System.Security.Cryptography.Encoding.dll",
"build/netstandard2.0/ref/System.Security.Cryptography.Primitives.dll",
"build/netstandard2.0/ref/System.Security.Cryptography.X509Certificates.dll",
"build/netstandard2.0/ref/System.Security.Principal.dll",
"build/netstandard2.0/ref/System.Security.SecureString.dll",
"build/netstandard2.0/ref/System.ServiceModel.Web.dll",
"build/netstandard2.0/ref/System.Text.Encoding.Extensions.dll",
"build/netstandard2.0/ref/System.Text.Encoding.dll",
"build/netstandard2.0/ref/System.Text.RegularExpressions.dll",
"build/netstandard2.0/ref/System.Threading.Overlapped.dll",
"build/netstandard2.0/ref/System.Threading.Tasks.Parallel.dll",
"build/netstandard2.0/ref/System.Threading.Tasks.dll",
"build/netstandard2.0/ref/System.Threading.Thread.dll",
"build/netstandard2.0/ref/System.Threading.ThreadPool.dll",
"build/netstandard2.0/ref/System.Threading.Timer.dll",
"build/netstandard2.0/ref/System.Threading.dll",
"build/netstandard2.0/ref/System.Transactions.dll",
"build/netstandard2.0/ref/System.ValueTuple.dll",
"build/netstandard2.0/ref/System.Web.dll",
"build/netstandard2.0/ref/System.Windows.dll",
"build/netstandard2.0/ref/System.Xml.Linq.dll",
"build/netstandard2.0/ref/System.Xml.ReaderWriter.dll",
"build/netstandard2.0/ref/System.Xml.Serialization.dll",
"build/netstandard2.0/ref/System.Xml.XDocument.dll",
"build/netstandard2.0/ref/System.Xml.XPath.XDocument.dll",
"build/netstandard2.0/ref/System.Xml.XPath.dll",
"build/netstandard2.0/ref/System.Xml.XmlDocument.dll",
"build/netstandard2.0/ref/System.Xml.XmlSerializer.dll",
"build/netstandard2.0/ref/System.Xml.dll",
"build/netstandard2.0/ref/System.dll",
"build/netstandard2.0/ref/mscorlib.dll",
"build/netstandard2.0/ref/netstandard.dll",
"build/netstandard2.0/ref/netstandard.xml",
"lib/netstandard1.0/_._",
"netstandard.library.2.0.3.nupkg.sha512",
"netstandard.library.nuspec"
]
}
},
"projectFileDependencyGroups": {
".NETCoreApp,Version=v2.2": [
"Microsoft.NETCore.App >= 2.2.0"
]
},
"packageFolders": {
"C:\\Users\\Acer\\.nuget\\packages\\": {},
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\Acer\\Desktop\\hOPE\\Life\\ConsoleApp1\\ConsoleApp1.csproj",
"projectName": "ConsoleApp1",
"projectPath": "C:\\Users\\Acer\\Desktop\\hOPE\\Life\\ConsoleApp1\\ConsoleApp1.csproj",
"packagesPath": "C:\\Users\\Acer\\.nuget\\packages\\",
"outputPath": "C:\\Users\\Acer\\Desktop\\hOPE\\Life\\ConsoleApp1\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
],
"configFilePaths": [
"C:\\Users\\Acer\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netcoreapp2.2"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netcoreapp2.2": {
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"netcoreapp2.2": {
"dependencies": {
"Microsoft.NETCore.App": {
"suppressParent": "All",
"target": "Package",
"version": "[2.2.0, )",
"autoReferenced": true
}
},
"imports": [
"net461"
],
"assetTargetFallback": true,
"warn": true
}
}
}
}
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/ConsoleApp1/Program.cs
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/bin/Debug/netcoreapp2.2/win-x64/display.deps.json
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v2.2/win-x64",
"signature": "da39a3ee5e6b4b0d3255bfef95601890afd80709"
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v2.2": {},
".NETCoreApp,Version=v2.2/win-x64": {
"display/1.0.0": {
"runtime": {
"display.dll": {}
}
}
}
},
"libraries": {
"display/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/bin/Debug/netcoreapp2.2/win-x64/display.dll
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/bin/Debug/netcoreapp2.2/win-x64/display.pdb
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/Cell.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace Display
{
///
/// States for the cells in the grid. Each cell state is associated with a
/// different character when rendering cells on the grid.
///

public enum CellState
{
Blank,
Full,
Dark,
Medium,
Light
}
///
/// Grid cell used to store data in the grid.
///

/// Benjamin Lewis
/// August 2020
public class Cell
{
private readonly char[] RENDER_CHARACTERS = new char[] {
'\u0020', // ' '
'\u2588', // '█'
'\u2593', // '▓'
'\u2592', // '▒'
'\u2591' // '░'
};
private CellState state;
///
/// Initializes the cell (as blank)
///

public Cell()
{
state = CellState.Blank;
}
///
/// Sets the state of the cell
///

/// The new state of the cell
public void SetState(CellState state)
{
this.state = state;
}
///
/// Writes the cell to the buffer at the specified buffer coordinates
/// and cell size using the cells state character.
///

/// The render buffer.
/// The top left buffer row index.
/// The top left buffer rolumn index.
/// The number of characters to draw horizontally.
/// The number of characters to draw vertically.
public void Draw(ref char[][] buffer, int row, int col, int width, int height)
{
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
buffer[row + i][col + j] = RENDER_CHARACTERS[(int)state];
}
}
}
}
}
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/Display.csproj


netcoreapp2.2
display


WINDOWS


true
true
true
win-x64


order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/Grid.cs
using System;
using System.Runtime.InteropServices;
namespace Display
{
///
/// Statically sized console window with a programmable grid. Updates to
/// the grid can be specified and rendered separately when requested.
///

public class Grid
{
private const int TopMargin = 1;
private const int BottomMargin = 0;
private const int LeftMargin = 2;
private const int RightMargin = 0;
private const int Border = 1;
private const int CellWidth = 2;
private const int CellHeight = 1;
private const int MinSize = 4;
private const int MaxSize = 48;
private const int MinState = 0;
private const int NumStates = 5;
private int storedWindowWidth;
private int storedWindowHeight;
private int storedBufferWidth;
private int storedBufferHeight;
private int rows;
private int cols;
private int bufferHeight;
private int bufferWidth;
private string footnote;
private Cell[][] cells;
private char[][] buffer;
public bool IsComplete { get; set; }
#if WINDOWS
[DllImport("kernel32.dll", ExactSpelling = true)]
private static extern IntPtr GetConsoleWindow();
#else
[DllImport("libc")]
private static extern int system(string exec);
#endif
/// ------------------------------------------------------------
/// Public Methods. These CAN be called from your program.
/// ------------------------------------------------------------
///
/// Constructs the grid with specified dimensions.
///

/// The number of rows in the grid.
/// The number of columns in the grid.
/// ///
/// Thrown when the number of rows/columns specified lies outside the acceptable range of values.
///

public Grid(int rows, int cols)
{
if (rows < MinSize || rows > MaxSize)
{
throw new ArgumentOutOfRangeException($"The number of grid rows is not within the acceptable range " +
$"of values ({MinSize} to {MaxSize}).");
}
if (cols < MinSize || cols > MaxSize)
{
throw new ArgumentOutOfRangeException($"The number of grid columns is not within the acceptable range " +
$"of values ({MinSize} to {MaxSize}).");
}
this.rows = rows;
this.cols = cols;
this.IsComplete = false;
CalculateBufferSize();
InitializeCells();
InitializeBuffer();
DrawBorder();
}
///
/// Resizes the window to the appropriate size and clears the console.
///

public void InitializeWindow()
{
Console.Clear();
storedWindowWidth = Console.WindowWidth;
storedWindowHeight = Console.WindowHeight;
storedBufferWidth = Console.BufferWidth;
storedBufferHeight = Console.BufferHeight;
Console.CursorVisible = false;
#if WINDOWS
Console.SetWindowSize(bufferWidth + 1, bufferHeight + 1);
Console.SetBufferSize(bufferWidth + 1, bufferHeight + 1);
#else
system($@"printf '\e[8;{bufferHeight + 1};{bufferWidth + 1}t'");
#endif
Console.Clear();
}
///
/// Reverts the window back to it's original state and clears the console.
///

public void RevertWindow()
{
Console.Clear();
Console.CursorVisible = true;
#if WINDOWS
Console.SetWindowSize(storedWindowWidth, storedWindowHeight);
Console.SetBufferSize(storedBufferWidth, storedBufferHeight);
#else
system($@"printf '\e[8;{storedBufferHeight};{storedBufferWidth}t'");
#endif
Console.Clear();
}
///
/// Updates the state of a cell at specified grid coordinates.
///

/// The grid row index.
/// The grid column index.
/// The new state of the cell.
///
/// Thrown when the row/column indices are outside of the boundaries of the grid or when an
/// invalid cell state is specified.
///

public void UpdateCell(int row, int col, CellState state)
{
if (0 > row || row >= rows)
{
throw new ArgumentOutOfRangeException("The row index exceeds the bounds of the grid.");
}
if (0 > col || col >= cols)
{
throw new ArgumentOutOfRangeException("The column index exceeds the bounds of the grid.");
}
if (MinState > (int)state || (int)state >= MinState + NumStates)
{
throw new ArgumentOutOfRangeException("The specified state is invalid (does not exist).");
}
cells[row][col].SetState(state);
cells[row][col].Draw(ref buffer, CellRowOffset(row), CellColOffset(col), CellWidth, CellHeight);
}
///
/// Renders the current state of the grid (all updates applied after the last render will be rendered).
///

public void Render()
{
Console.SetCursorPosition(0, TopMargin);
string render = "";
for (int row = TopMargin; row < bufferHeight; row++)
{
render += new string(buffer[row]) + "\n";
}
Console.Write(render);
Console.Write(footnote.PadLeft(LeftMargin + Border + cols * CellWidth));
if (IsComplete)
{
Console.SetCursorPosition(LeftMargin + Border + (cols * CellWidth) / 2 - 5,
TopMargin + Border + rows * CellHeight);
Console.Write(" COMPLETE ");
}
}
///
/// Sets the footnote that appears to the bottom left of the grid. If the footnote is too large,
/// it is truncated to fill the width of the grid (not including borders). Truncation starts at the
/// left of the string.
///

/// The footnote to be displayed
public void SetFootnote(string footnote)
{
if (footnote.Length > CellWidth * cols)
{
this.footnote = footnote.Substring(footnote.Length - CellWidth * cols, CellWidth * cols);
}
else
{
this.footnote = footnote;
}
}
/// ------------------------------------------------------------
/// Private Methods. These CANNOT be called from your program.
/// ------------------------------------------------------------
///
/// Initializes the cell array to be filled with blank cells.
///

private void InitializeCells()
{
cells = new Cell[rows][];
for (int i = 0; i < rows; i++)
{
cells[i] = new Cell[cols];
for (int j = 0; j < cols; j++)
{
cells[i][j] = new Cell();
}
}
}
///
/// Initializes the buffer array to be filled with whitespace.
///

private void InitializeBuffer()
{
buffer = new char[bufferHeight][];
for (int i = 0; i < bufferHeight; i++)
{
buffer[i] = new char[bufferWidth];
for (int j = 0; j < bufferWidth; j++)
{
buffer[i][j] = ' ';
}
}
}
///
/// Draws border characters at the appropriate buffer locations.
///

private void DrawBorder()
{
if (Border == 1)
{
buffer[TopMargin][LeftMargin] = '╔';
buffer[TopMargin][LeftMargin + Border + CellWidth * cols] = '╗';
buffer[TopMargin + Border + CellHeight * rows][LeftMargin] = '╚';
buffer[TopMargin + Border + CellHeight * rows][LeftMargin + Border + CellWidth * cols] = '╝';
for (int i = TopMargin + Border; i <= (TopMargin + Border * CellHeight * rows); i++)
{
buffer[i][LeftMargin] = '║';
buffer[i][LeftMargin + Border + CellWidth * cols] = '║';
}
for (int j = LeftMargin + Border; j <= (LeftMargin + Border * CellWidth * cols); j++)
{
buffer[TopMargin][j] = '═';
buffer[TopMargin + Border + CellHeight * rows][j] = '═';
}
}
}
///
/// Offsets a grid column index to a buffer column index with respect
/// to the left margin, border and cell width.
///

/// The grid column index
/// The offset buffer column index
private int CellColOffset(int col)
{
return CellWidth * col + LeftMargin + Border;
}
///
/// Offsets a grid row index to a buffer row index with respect
/// to the top margin, border and cell height.
///

/// The grid row index
/// The offset buffer row index
private int CellRowOffset(int row)
{
return (rows - 1) - CellHeight * row + TopMargin + Border;
}
///
/// Calculates the buffer size based on margins borders and cell counts/sizes.
///

private void CalculateBufferSize()
{
bufferHeight = TopMargin + BottomMargin + 2 * Border + CellHeight * rows;
bufferWidth = LeftMargin + RightMargin + 2 * Border + CellWidth * cols;
}
}
}
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Debug/netcoreapp2.2/Display.AssemblyInfo.cs
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//

//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Display")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Display")]
[assembly: System.Reflection.AssemblyTitleAttribute("Display")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Debug/netcoreapp2.2/Display.AssemblyInfoInputs.cache
ae4d763c111b26de545bc208a82daa2df9f83100
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Debug/netcoreapp2.2/Display.assets.cache
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Debug/netcoreapp2.2/Display.csproj.CoreCompileInputs.cache
062ae860a953c939e14f8d958f0a1cd9d15dfc57
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Debug/netcoreapp2.2/Display.csprojAssemblyReference.cache
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Debug/netcoreapp2.2/win-x64/Display.AssemblyInfo.cs
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//

//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("display")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("display")]
[assembly: System.Reflection.AssemblyTitleAttribute("display")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Debug/netcoreapp2.2/win-x64/Display.AssemblyInfoInputs.cache
2efde16df7ac0f44cc4fbc292f0629a0aec0a3e0
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Debug/netcoreapp2.2/win-x64/Display.assets.cache
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Debug/netcoreapp2.2/win-x64/Display.csproj.CoreCompileInputs.cache
65e5b16afce81a86cc16b7d50226ff0a05546b5f
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Debug/netcoreapp2.2/win-x64/Display.csproj.FileListAbsolute.txt
C:\Users\Acer\Desktop\hOPE\Life\Display\obj\Debug\netcoreapp2.2\win-x64\Display.csproj.CoreCompileInputs.cache
C:\Users\Acer\Desktop\hOPE\Life\Display\obj\Debug\netcoreapp2.2\win-x64\Display.AssemblyInfoInputs.cache
C:\Users\Acer\Desktop\hOPE\Life\Display\obj\Debug\netcoreapp2.2\win-x64\Display.AssemblyInfo.cs
C:\Users\Acer\Desktop\hOPE\Life\Display\bin\Debug\netcoreapp2.2\win-x64\Display.deps.json
C:\Users\Acer\Desktop\hOPE\Life\Display\bin\Debug\netcoreapp2.2\win-x64\Display.dll
C:\Users\Acer\Desktop\hOPE\Life\Display\bin\Debug\netcoreapp2.2\win-x64\Display.pdb
C:\Users\Acer\Desktop\hOPE\Life\Display\obj\Debug\netcoreapp2.2\win-x64\Display.dll
C:\Users\Acer\Desktop\hOPE\Life\Display\obj\Debug\netcoreapp2.2\win-x64\Display.pdb
C:\Users\Acer\Desktop\hOPE\Life\Display\obj\Debug\netcoreapp2.2\win-x64\Display.csprojAssemblyReference.cache
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Debug/netcoreapp2.2/win-x64/Display.csprojAssemblyReference.cache
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Debug/netcoreapp2.2/win-x64/display.dll
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Debug/netcoreapp2.2/win-x64/display.pdb
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Display.csproj.nuget.cache
{
"version": 1,
"dgSpecHash": "PAXbC9uhcynxjrd6PI0z64OkLq0IR7z5hMMqnA5LQTV3GyIUxvKOZLPLpE2UdSlmiqX9jBgeeGs5TZ7MV3RsGw==",
"success": true
}
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Display.csproj.nuget.dgspec.json
{
"format": 1,
"restore": {
"C:\\Users\\Acer\\Desktop\\hOPE\\Life\\Display\\Display.csproj": {}
},
"projects": {
"C:\\Users\\Acer\\Desktop\\hOPE\\Life\\Display\\Display.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\Acer\\Desktop\\hOPE\\Life\\Display\\Display.csproj",
"projectName": "display",
"projectPath": "C:\\Users\\Acer\\Desktop\\hOPE\\Life\\Display\\Display.csproj",
"packagesPath": "C:\\Users\\Acer\\.nuget\\packages\\",
"outputPath": "C:\\Users\\Acer\\Desktop\\hOPE\\Life\\Display\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
],
"configFilePaths": [
"C:\\Users\\Acer\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netcoreapp2.2"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netcoreapp2.2": {
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"netcoreapp2.2": {
"dependencies": {
"Microsoft.NETCore.App": {
"suppressParent": "All",
"target": "Package",
"version": "[2.2.0, )",
"autoReferenced": true
}
},
"imports": [
"net461"
],
"assetTargetFallback": true,
"warn": true
}
},
"runtimes": {
"win-x64": {
"#import": []
}
}
}
}
}
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Display.csproj.nuget.g.props


True
NuGet
$(MSBuildThisFileDirectory)project.assets.json
$(UserProfile)\.nuget\packages\
C:\Users\Acer\.nuget\packages\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder
PackageReference
5.2.0


$(MSBuildAllProjects);$(MSBuildThisFileFullPath)




order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/Display.csproj.nuget.g.targets


$(MSBuildAllProjects);$(MSBuildThisFileFullPath)





order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/netcoreapp2.2/win-x64/host/Display.exe
order65252/CAB201_2020S2_ProjectPartA_nXXXXXXXX/Life/Display/obj/project.assets.json
{
"version": 3,
"targets": {
".NETCoreApp,Version=v2.2": {
"Microsoft.NETCore.App/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.DotNetHostPolicy": "2.2.0",
"Microsoft.NETCore.Platforms": "2.2.0",
"Microsoft.NETCore.Targets": "2.0.0",
"NETStandard.Library": "2.0.3"
},
"compile": {
"ref/netcoreapp2.2/Microsoft.CSharp.dll": {},
"ref/netcoreapp2.2/Microsoft.VisualBasic.dll": {},
"ref/netcoreapp2.2/Microsoft.Win32.Primitives.dll": {},
"ref/netcoreapp2.2/System.AppContext.dll": {},
"ref/netcoreapp2.2/System.Buffers.dll": {},
"ref/netcoreapp2.2/System.Collections.Concurrent.dll": {},
"ref/netcoreapp2.2/System.Collections.Immutable.dll": {},
"ref/netcoreapp2.2/System.Collections.NonGeneric.dll": {},
"ref/netcoreapp2.2/System.Collections.Specialized.dll": {},
"ref/netcoreapp2.2/System.Collections.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.Annotations.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.DataAnnotations.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.EventBasedAsync.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.Primitives.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.TypeConverter.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.dll": {},
"ref/netcoreapp2.2/System.Configuration.dll": {},
"ref/netcoreapp2.2/System.Console.dll": {},
"ref/netcoreapp2.2/System.Core.dll": {},
"ref/netcoreapp2.2/System.Data.Common.dll": {},
"ref/netcoreapp2.2/System.Data.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Contracts.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Debug.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.DiagnosticSource.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.FileVersionInfo.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Process.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.StackTrace.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.TextWriterTraceListener.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Tools.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.TraceSource.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Tracing.dll": {},
"ref/netcoreapp2.2/System.Drawing.Primitives.dll": {},
"ref/netcoreapp2.2/System.Drawing.dll": {},
"ref/netcoreapp2.2/System.Dynamic.Runtime.dll": {},
"ref/netcoreapp2.2/System.Globalization.Calendars.dll": {},
"ref/netcoreapp2.2/System.Globalization.Extensions.dll": {},
"ref/netcoreapp2.2/System.Globalization.dll": {},
"ref/netcoreapp2.2/System.IO.Compression.Brotli.dll": {},
"ref/netcoreapp2.2/System.IO.Compression.FileSystem.dll": {},
"ref/netcoreapp2.2/System.IO.Compression.ZipFile.dll": {},
"ref/netcoreapp2.2/System.IO.Compression.dll": {},
"ref/netcoreapp2.2/System.IO.FileSystem.DriveInfo.dll": {},
"ref/netcoreapp2.2/System.IO.FileSystem.Primitives.dll": {},
"ref/netcoreapp2.2/System.IO.FileSystem.Watcher.dll": {},
"ref/netcoreapp2.2/System.IO.FileSystem.dll": {},
"ref/netcoreapp2.2/System.IO.IsolatedStorage.dll": {},
"ref/netcoreapp2.2/System.IO.MemoryMappedFiles.dll": {},
"ref/netcoreapp2.2/System.IO.Pipes.dll": {},
"ref/netcoreapp2.2/System.IO.UnmanagedMemoryStream.dll": {},
"ref/netcoreapp2.2/System.IO.dll": {},
"ref/netcoreapp2.2/System.Linq.Expressions.dll": {},
"ref/netcoreapp2.2/System.Linq.Parallel.dll": {},
"ref/netcoreapp2.2/System.Linq.Queryable.dll": {},
"ref/netcoreapp2.2/System.Linq.dll": {},
"ref/netcoreapp2.2/System.Memory.dll": {},
"ref/netcoreapp2.2/System.Net.Http.dll": {},
"ref/netcoreapp2.2/System.Net.HttpListener.dll": {},
"ref/netcoreapp2.2/System.Net.Mail.dll": {},
"ref/netcoreapp2.2/System.Net.NameResolution.dll": {},
"ref/netcoreapp2.2/System.Net.NetworkInformation.dll": {},
"ref/netcoreapp2.2/System.Net.Ping.dll": {},
"ref/netcoreapp2.2/System.Net.Primitives.dll": {},
"ref/netcoreapp2.2/System.Net.Requests.dll": {},
"ref/netcoreapp2.2/System.Net.Security.dll": {},
"ref/netcoreapp2.2/System.Net.ServicePoint.dll": {},
"ref/netcoreapp2.2/System.Net.Sockets.dll": {},
"ref/netcoreapp2.2/System.Net.WebClient.dll": {},
"ref/netcoreapp2.2/System.Net.WebHeaderCollection.dll": {},
"ref/netcoreapp2.2/System.Net.WebProxy.dll": {},
"ref/netcoreapp2.2/System.Net.WebSockets.Client.dll": {},
"ref/netcoreapp2.2/System.Net.WebSockets.dll": {},
"ref/netcoreapp2.2/System.Net.dll": {},
"ref/netcoreapp2.2/System.Numerics.Vectors.dll": {},
"ref/netcoreapp2.2/System.Numerics.dll": {},
"ref/netcoreapp2.2/System.ObjectModel.dll": {},
"ref/netcoreapp2.2/System.Reflection.DispatchProxy.dll": {},
"ref/netcoreapp2.2/System.Reflection.Emit.ILGeneration.dll": {},
"ref/netcoreapp2.2/System.Reflection.Emit.Lightweight.dll": {},
"ref/netcoreapp2.2/System.Reflection.Emit.dll": {},
"ref/netcoreapp2.2/System.Reflection.Extensions.dll": {},
"ref/netcoreapp2.2/System.Reflection.Metadata.dll": {},
"ref/netcoreapp2.2/System.Reflection.Primitives.dll": {},
"ref/netcoreapp2.2/System.Reflection.TypeExtensions.dll": {},
"ref/netcoreapp2.2/System.Reflection.dll": {},
"ref/netcoreapp2.2/System.Resources.Reader.dll": {},
"ref/netcoreapp2.2/System.Resources.ResourceManager.dll": {},
"ref/netcoreapp2.2/System.Resources.Writer.dll": {},
"ref/netcoreapp2.2/System.Runtime.CompilerServices.VisualC.dll": {},
"ref/netcoreapp2.2/System.Runtime.Extensions.dll": {},
"ref/netcoreapp2.2/System.Runtime.Handles.dll": {},
"ref/netcoreapp2.2/System.Runtime.InteropServices.RuntimeInformation.dll": {},
"ref/netcoreapp2.2/System.Runtime.InteropServices.WindowsRuntime.dll": {},
"ref/netcoreapp2.2/System.Runtime.InteropServices.dll": {},
"ref/netcoreapp2.2/System.Runtime.Loader.dll": {},
"ref/netcoreapp2.2/System.Runtime.Numerics.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.Formatters.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.Json.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.Primitives.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.Xml.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.dll": {},
"ref/netcoreapp2.2/System.Runtime.dll": {},
"ref/netcoreapp2.2/System.Security.Claims.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.Algorithms.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.Csp.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.Encoding.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.Primitives.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.X509Certificates.dll": {},
"ref/netcoreapp2.2/System.Security.Principal.dll": {},
"ref/netcoreapp2.2/System.Security.SecureString.dll": {},
"ref/netcoreapp2.2/System.Security.dll": {},
"ref/netcoreapp2.2/System.ServiceModel.Web.dll": {},
"ref/netcoreapp2.2/System.ServiceProcess.dll": {},
"ref/netcoreapp2.2/System.Text.Encoding.Extensions.dll": {},
"ref/netcoreapp2.2/System.Text.Encoding.dll": {},
"ref/netcoreapp2.2/System.Text.RegularExpressions.dll": {},
"ref/netcoreapp2.2/System.Threading.Overlapped.dll": {},
"ref/netcoreapp2.2/System.Threading.Tasks.Dataflow.dll": {},
"ref/netcoreapp2.2/System.Threading.Tasks.Extensions.dll": {},
"ref/netcoreapp2.2/System.Threading.Tasks.Parallel.dll": {},
"ref/netcoreapp2.2/System.Threading.Tasks.dll": {},
"ref/netcoreapp2.2/System.Threading.Thread.dll": {},
"ref/netcoreapp2.2/System.Threading.ThreadPool.dll": {},
"ref/netcoreapp2.2/System.Threading.Timer.dll": {},
"ref/netcoreapp2.2/System.Threading.dll": {},
"ref/netcoreapp2.2/System.Transactions.Local.dll": {},
"ref/netcoreapp2.2/System.Transactions.dll": {},
"ref/netcoreapp2.2/System.ValueTuple.dll": {},
"ref/netcoreapp2.2/System.Web.HttpUtility.dll": {},
"ref/netcoreapp2.2/System.Web.dll": {},
"ref/netcoreapp2.2/System.Windows.dll": {},
"ref/netcoreapp2.2/System.Xml.Linq.dll": {},
"ref/netcoreapp2.2/System.Xml.ReaderWriter.dll": {},
"ref/netcoreapp2.2/System.Xml.Serialization.dll": {},
"ref/netcoreapp2.2/System.Xml.XDocument.dll": {},
"ref/netcoreapp2.2/System.Xml.XPath.XDocument.dll": {},
"ref/netcoreapp2.2/System.Xml.XPath.dll": {},
"ref/netcoreapp2.2/System.Xml.XmlDocument.dll": {},
"ref/netcoreapp2.2/System.Xml.XmlSerializer.dll": {},
"ref/netcoreapp2.2/System.Xml.dll": {},
"ref/netcoreapp2.2/System.dll": {},
"ref/netcoreapp2.2/WindowsBase.dll": {},
"ref/netcoreapp2.2/mscorlib.dll": {},
"ref/netcoreapp2.2/netstandard.dll": {}
},
"build": {
"build/netcoreapp2.2/Microsoft.NETCore.App.props": {},
"build/netcoreapp2.2/Microsoft.NETCore.App.targets": {}
}
},
"Microsoft.NETCore.DotNetAppHost/2.2.0": {
"type": "package"
},
"Microsoft.NETCore.DotNetHostPolicy/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.DotNetHostResolver": "2.2.0"
}
},
"Microsoft.NETCore.DotNetHostResolver/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.DotNetAppHost": "2.2.0"
}
},
"Microsoft.NETCore.Platforms/2.2.0": {
"type": "package",
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
}
},
"Microsoft.NETCore.Targets/2.0.0": {
"type": "package",
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
}
},
"NETStandard.Library/2.0.3": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0"
},
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
},
"build": {
"build/netstandard2.0/NETStandard.Library.targets": {}
}
}
},
".NETCoreApp,Version=v2.2/win-x64": {
"Microsoft.NETCore.App/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.DotNetHostPolicy": "2.2.0",
"Microsoft.NETCore.Platforms": "2.2.0",
"Microsoft.NETCore.Targets": "2.0.0",
"NETStandard.Library": "2.0.3",
"runtime.win-x64.Microsoft.NETCore.App": "2.2.0"
},
"compile": {
"ref/netcoreapp2.2/Microsoft.CSharp.dll": {},
"ref/netcoreapp2.2/Microsoft.VisualBasic.dll": {},
"ref/netcoreapp2.2/Microsoft.Win32.Primitives.dll": {},
"ref/netcoreapp2.2/System.AppContext.dll": {},
"ref/netcoreapp2.2/System.Buffers.dll": {},
"ref/netcoreapp2.2/System.Collections.Concurrent.dll": {},
"ref/netcoreapp2.2/System.Collections.Immutable.dll": {},
"ref/netcoreapp2.2/System.Collections.NonGeneric.dll": {},
"ref/netcoreapp2.2/System.Collections.Specialized.dll": {},
"ref/netcoreapp2.2/System.Collections.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.Annotations.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.DataAnnotations.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.EventBasedAsync.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.Primitives.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.TypeConverter.dll": {},
"ref/netcoreapp2.2/System.ComponentModel.dll": {},
"ref/netcoreapp2.2/System.Configuration.dll": {},
"ref/netcoreapp2.2/System.Console.dll": {},
"ref/netcoreapp2.2/System.Core.dll": {},
"ref/netcoreapp2.2/System.Data.Common.dll": {},
"ref/netcoreapp2.2/System.Data.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Contracts.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Debug.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.DiagnosticSource.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.FileVersionInfo.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Process.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.StackTrace.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.TextWriterTraceListener.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Tools.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.TraceSource.dll": {},
"ref/netcoreapp2.2/System.Diagnostics.Tracing.dll": {},
"ref/netcoreapp2.2/System.Drawing.Primitives.dll": {},
"ref/netcoreapp2.2/System.Drawing.dll": {},
"ref/netcoreapp2.2/System.Dynamic.Runtime.dll": {},
"ref/netcoreapp2.2/System.Globalization.Calendars.dll": {},
"ref/netcoreapp2.2/System.Globalization.Extensions.dll": {},
"ref/netcoreapp2.2/System.Globalization.dll": {},
"ref/netcoreapp2.2/System.IO.Compression.Brotli.dll": {},
"ref/netcoreapp2.2/System.IO.Compression.FileSystem.dll": {},
"ref/netcoreapp2.2/System.IO.Compression.ZipFile.dll": {},
"ref/netcoreapp2.2/System.IO.Compression.dll": {},
"ref/netcoreapp2.2/System.IO.FileSystem.DriveInfo.dll": {},
"ref/netcoreapp2.2/System.IO.FileSystem.Primitives.dll": {},
"ref/netcoreapp2.2/System.IO.FileSystem.Watcher.dll": {},
"ref/netcoreapp2.2/System.IO.FileSystem.dll": {},
"ref/netcoreapp2.2/System.IO.IsolatedStorage.dll": {},
"ref/netcoreapp2.2/System.IO.MemoryMappedFiles.dll": {},
"ref/netcoreapp2.2/System.IO.Pipes.dll": {},
"ref/netcoreapp2.2/System.IO.UnmanagedMemoryStream.dll": {},
"ref/netcoreapp2.2/System.IO.dll": {},
"ref/netcoreapp2.2/System.Linq.Expressions.dll": {},
"ref/netcoreapp2.2/System.Linq.Parallel.dll": {},
"ref/netcoreapp2.2/System.Linq.Queryable.dll": {},
"ref/netcoreapp2.2/System.Linq.dll": {},
"ref/netcoreapp2.2/System.Memory.dll": {},
"ref/netcoreapp2.2/System.Net.Http.dll": {},
"ref/netcoreapp2.2/System.Net.HttpListener.dll": {},
"ref/netcoreapp2.2/System.Net.Mail.dll": {},
"ref/netcoreapp2.2/System.Net.NameResolution.dll": {},
"ref/netcoreapp2.2/System.Net.NetworkInformation.dll": {},
"ref/netcoreapp2.2/System.Net.Ping.dll": {},
"ref/netcoreapp2.2/System.Net.Primitives.dll": {},
"ref/netcoreapp2.2/System.Net.Requests.dll": {},
"ref/netcoreapp2.2/System.Net.Security.dll": {},
"ref/netcoreapp2.2/System.Net.ServicePoint.dll": {},
"ref/netcoreapp2.2/System.Net.Sockets.dll": {},
"ref/netcoreapp2.2/System.Net.WebClient.dll": {},
"ref/netcoreapp2.2/System.Net.WebHeaderCollection.dll": {},
"ref/netcoreapp2.2/System.Net.WebProxy.dll": {},
"ref/netcoreapp2.2/System.Net.WebSockets.Client.dll": {},
"ref/netcoreapp2.2/System.Net.WebSockets.dll": {},
"ref/netcoreapp2.2/System.Net.dll": {},
"ref/netcoreapp2.2/System.Numerics.Vectors.dll": {},
"ref/netcoreapp2.2/System.Numerics.dll": {},
"ref/netcoreapp2.2/System.ObjectModel.dll": {},
"ref/netcoreapp2.2/System.Reflection.DispatchProxy.dll": {},
"ref/netcoreapp2.2/System.Reflection.Emit.ILGeneration.dll": {},
"ref/netcoreapp2.2/System.Reflection.Emit.Lightweight.dll": {},
"ref/netcoreapp2.2/System.Reflection.Emit.dll": {},
"ref/netcoreapp2.2/System.Reflection.Extensions.dll": {},
"ref/netcoreapp2.2/System.Reflection.Metadata.dll": {},
"ref/netcoreapp2.2/System.Reflection.Primitives.dll": {},
"ref/netcoreapp2.2/System.Reflection.TypeExtensions.dll": {},
"ref/netcoreapp2.2/System.Reflection.dll": {},
"ref/netcoreapp2.2/System.Resources.Reader.dll": {},
"ref/netcoreapp2.2/System.Resources.ResourceManager.dll": {},
"ref/netcoreapp2.2/System.Resources.Writer.dll": {},
"ref/netcoreapp2.2/System.Runtime.CompilerServices.VisualC.dll": {},
"ref/netcoreapp2.2/System.Runtime.Extensions.dll": {},
"ref/netcoreapp2.2/System.Runtime.Handles.dll": {},
"ref/netcoreapp2.2/System.Runtime.InteropServices.RuntimeInformation.dll": {},
"ref/netcoreapp2.2/System.Runtime.InteropServices.WindowsRuntime.dll": {},
"ref/netcoreapp2.2/System.Runtime.InteropServices.dll": {},
"ref/netcoreapp2.2/System.Runtime.Loader.dll": {},
"ref/netcoreapp2.2/System.Runtime.Numerics.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.Formatters.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.Json.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.Primitives.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.Xml.dll": {},
"ref/netcoreapp2.2/System.Runtime.Serialization.dll": {},
"ref/netcoreapp2.2/System.Runtime.dll": {},
"ref/netcoreapp2.2/System.Security.Claims.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.Algorithms.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.Csp.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.Encoding.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.Primitives.dll": {},
"ref/netcoreapp2.2/System.Security.Cryptography.X509Certificates.dll": {},
"ref/netcoreapp2.2/System.Security.Principal.dll": {},
"ref/netcoreapp2.2/System.Security.SecureString.dll": {},
"ref/netcoreapp2.2/System.Security.dll": {},
"ref/netcoreapp2.2/System.ServiceModel.Web.dll": {},
"ref/netcoreapp2.2/System.ServiceProcess.dll": {},
"ref/netcoreapp2.2/System.Text.Encoding.Extensions.dll": {},
"ref/netcoreapp2.2/System.Text.Encoding.dll": {},
"ref/netcoreapp2.2/System.Text.RegularExpressions.dll": {},
"ref/netcoreapp2.2/System.Threading.Overlapped.dll": {},
"ref/netcoreapp2.2/System.Threading.Tasks.Dataflow.dll": {},
"ref/netcoreapp2.2/System.Threading.Tasks.Extensions.dll": {},
"ref/netcoreapp2.2/System.Threading.Tasks.Parallel.dll": {},
"ref/netcoreapp2.2/System.Threading.Tasks.dll": {},
"ref/netcoreapp2.2/System.Threading.Thread.dll": {},
"ref/netcoreapp2.2/System.Threading.ThreadPool.dll": {},
"ref/netcoreapp2.2/System.Threading.Timer.dll": {},
"ref/netcoreapp2.2/System.Threading.dll": {},
"ref/netcoreapp2.2/System.Transactions.Local.dll": {},
"ref/netcoreapp2.2/System.Transactions.dll": {},
"ref/netcoreapp2.2/System.ValueTuple.dll": {},
"ref/netcoreapp2.2/System.Web.HttpUtility.dll": {},
"ref/netcoreapp2.2/System.Web.dll": {},
"ref/netcoreapp2.2/System.Windows.dll": {},
"ref/netcoreapp2.2/System.Xml.Linq.dll": {},
"ref/netcoreapp2.2/System.Xml.ReaderWriter.dll": {},
"ref/netcoreapp2.2/System.Xml.Serialization.dll": {},
"ref/netcoreapp2.2/System.Xml.XDocument.dll": {},
"ref/netcoreapp2.2/System.Xml.XPath.XDocument.dll": {},
"ref/netcoreapp2.2/System.Xml.XPath.dll": {},
"ref/netcoreapp2.2/System.Xml.XmlDocument.dll": {},
"ref/netcoreapp2.2/System.Xml.XmlSerializer.dll": {},
"ref/netcoreapp2.2/System.Xml.dll": {},
"ref/netcoreapp2.2/System.dll": {},
"ref/netcoreapp2.2/WindowsBase.dll": {},
"ref/netcoreapp2.2/mscorlib.dll": {},
"ref/netcoreapp2.2/netstandard.dll": {}
},
"build": {
"build/netcoreapp2.2/Microsoft.NETCore.App.props": {},
"build/netcoreapp2.2/Microsoft.NETCore.App.targets": {}
}
},
"Microsoft.NETCore.DotNetAppHost/2.2.0": {
"type": "package",
"dependencies": {
"runtime.win-x64.Microsoft.NETCore.DotNetAppHost": "2.2.0"
}
},
"Microsoft.NETCore.DotNetHostPolicy/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.DotNetHostResolver": "2.2.0",
"runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy": "2.2.0"
}
},
"Microsoft.NETCore.DotNetHostResolver/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.DotNetAppHost": "2.2.0",
"runtime.win-x64.Microsoft.NETCore.DotNetHostResolver": "2.2.0"
}
},
"Microsoft.NETCore.Platforms/2.2.0": {
"type": "package",
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
}
},
"Microsoft.NETCore.Targets/2.0.0": {
"type": "package",
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
}
},
"NETStandard.Library/2.0.3": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0"
},
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
},
"build": {
"build/netstandard2.0/NETStandard.Library.targets": {}
}
},
...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here