From 5fd9c69a379d315a399d301813ac9376a4383dd8 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 31 Jul 2019 11:53:40 -0700 Subject: [PATCH 01/21] Added RFC Error View --- 1-Draft/RFC00XX-Update-Error-View.md | 157 +++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 1-Draft/RFC00XX-Update-Error-View.md diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md new file mode 100644 index 00000000..f6b92240 --- /dev/null +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -0,0 +1,157 @@ +--- +RFC: Update $ErrorView with Single String Error Messages +Author: Jason Helmick +Status: Draft +Version: 0.0.0 +Area: PowerShell +Comments Due: +--- + +# Update $ErrorView with Single Line Error Messages + +When an error occurs in PowerShell, the customers on-screen error message experience currently +provides a level of detail that obscures the inner exception message from being read by +new or occasional PowerShell users. +To improve both comprehension and the troubleshooting experience, a single string of text +containing the error will be displayed. A cmdlet will provide the full error details when desired. + +## Motivation + +The on-screen experience, when receiving an error message, +is controlled through the views NormalView (the default) and CategoryView. These are user selectable though the preference variable $ErrorView. +The addition of a “ConciseView” as default that contains only specific error +information producing a single line on screen and in logs will improve customer success. + +Comprehensive error information is available to the customer through +accessing the error object. For new and occasional customers, +a cmdlet “Resolve-ErrorRecord” will simplify the process of getting detailed error information, improving customers success. + +## Specification + +The proposal is to add a new single-line default error message view called ConciseView +and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information. + +__Key Design Considerations__ + +1. To reduce confusion and improve debugging success, +error messages by default should produce a single line of text, including the word “ERROR:” to make consistent with Verbose and Warning messages. This is added to $errorView as view named "ConciseView". + +- $ErrorView should contain these views + + + NormalView + + CategoryView + + ConciseView + +- Error Message syntax for ConciseView + +```powershell +ERROR: : +ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 +``` + +2. A new cmdlet “Resolve-ErrorRecord” will produce detailed error information similar to Format-List * -Force. + +- Resolve-ErrorRecord will provide the following: + + + Display Last Error ($Error[0]) – default behavior + + Accept Pipeline input – support $error[1] | + + Option for the first X errors in the session + + Option for the Last X errors in the session + +- Resolve-ErrorRecord syntax + +```powershell +Resolve-ErrorRecord [-InputObject ] [-Newest ] [-First ] [-All] [] +``` + +First parameter set + +- Newest + + + Datatype: int32 + + specifies one or more of last errors to display + + Not required + +- First + + + Datatype: Int32 + + Specifies one or more of the first errors that occurred + + Not required + +- All + + + Datatype: Switch + + Specifies display all errors in session + + Not required + +Examples + +```powershell +# Displays details of the last error displayed +Resolve-ErrorRecord + +# Displays error details from pipeline error object +$error[1] | Resolve-ErrorRecord + +# Display detailed error information for the last 5 errors +Resolve-ErrorRecord -Last 5 + +# Display detailed error information for the first 3 errors +Resolve-ErrorRecord -First 3 + +# Display detailed information for all errors that occured in the session +Resolve-ErrorRecord -All +``` +__Example 1__ + +```powershell +PS C:\test> Get-item c:\blah +Get-item : Cannot find path 'C:\blah' because it does not exist. At line:1 char:1 + +PS C:\test> Resolve-ErrorRecord + +PSMessageDetails : +Exception : System.Management.Automation.ItemNotFoundException: Cannot find path 'C:\blah' because it does + not exist. + at System.Management.Automation.LocationGlobber.ExpandMshGlobPath(String path, Boolean + allowNonexistingPaths, PSDriveInfo drive, ContainerCmdletProvider + +``` + +__Example 2__ + +```powershell +PS C:\test> slkjdfh +ERROR: The term 'slkjdfh' is not recognized as the name of a cmdlet, function, script file, or operable program. At line:1 char:1 +PS C:\test> $error[0] | Resolve-ErrorRecord + +PSMessageDetails : +Exception : System.Management.Automation.CommandNotFoundException: The term 'slkjdfh' is not recognized as +``` + +## Alternate Proposals and Considerations + +__Alternative single-line display__ + +```powershell +: +get-item: Cannot find path ‘C:\blah’ because it does not exist: + +:: +get-item: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 + +::: +get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 + +ERROR: +ERROR: Cannot find path ‘C:\blah’ because it does not exist + +ERROR:: +ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 + +ERROR:::: +ERROR: get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 +``` +__Alternative color for all errors__ + +1. We could change the default error message color from the current RED foreground and BLACK background to... \ No newline at end of file From 3dd0560dad5f26ab11e8fb52c2fb06f5e747c6f9 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 31 Jul 2019 11:58:23 -0700 Subject: [PATCH 02/21] update RFC error view --- 1-Draft/RFC00XX-Update-Error-View.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index f6b92240..3bc13e54 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -154,4 +154,6 @@ ERROR: get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: A ``` __Alternative color for all errors__ -1. We could change the default error message color from the current RED foreground and BLACK background to... \ No newline at end of file +1. We could change the default error message color from the current RED foreground and BLACK background to... +2. Differentiating errors based on termination condition: terminating versus non-terminating is currently not intuitive. We are examining differentiating these conditions on the console. Example, adding a new property $host.PrivateData.NonTerminatingErrorForegroundColor ='Red'. +For occasional customers, all error messages remain as color Red. For advanced customers, they can change non-terminating errors to another color to separate the error termination type in the console. From a7d6a758493940da2c392c5e2bd59e9002401b38 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 31 Jul 2019 13:34:44 -0700 Subject: [PATCH 03/21] Added shorter reference code --- 1-Draft/RFC00XX-Update-Error-View.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 3bc13e54..c020d37d 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -152,8 +152,29 @@ ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char: ERROR:::: ERROR: get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 ``` + __Alternative color for all errors__ 1. We could change the default error message color from the current RED foreground and BLACK background to... 2. Differentiating errors based on termination condition: terminating versus non-terminating is currently not intuitive. We are examining differentiating these conditions on the console. Example, adding a new property $host.PrivateData.NonTerminatingErrorForegroundColor ='Red'. For occasional customers, all error messages remain as color Red. For advanced customers, they can change non-terminating errors to another color to separate the error termination type in the console. + +__Alternative For Error, Warning, Verbose__ + +1. We could be more terse in our messages and increase consistency with verbose and warning messages by using a single letter to identify the message. + +Legend: V = Verbose, W = Warning, E = Error(non-terminating future), F = Fatal + +```powershell +V: You are running your code - what could possibly go wrong. + +W: You are about to try something that probably won't work. + +E: Your code broke, but I'm still running. At line:1 char:1 + +E: Your code broke, but I'm still running. At line:1 char:1 + +E: Your code broke, but I'm still running. At line:1 char:1 + +F: Now you really broke me. At line:1 char:1 +``` From 6faa7dc7c51a949d8eaf594bb2f36201ef98b335 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 31 Jul 2019 14:15:06 -0700 Subject: [PATCH 04/21] update alternate view --- 1-Draft/RFC00XX-Update-Error-View.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index c020d37d..5064bbc0 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -7,7 +7,7 @@ Area: PowerShell Comments Due: --- -# Update $ErrorView with Single Line Error Messages +# Update $ErrorView with Single String Error Messages When an error occurs in PowerShell, the customers on-screen error message experience currently provides a level of detail that obscures the inner exception message from being read by @@ -168,13 +168,14 @@ Legend: V = Verbose, W = Warning, E = Error(non-terminating future), F = Fatal ```powershell V: You are running your code - what could possibly go wrong. -W: You are about to try something that probably won't work. +W: You are about to try something that probably will not work. -E: Your code broke, but I'm still running. At line:1 char:1 +E: Your something broke, but Im still running. At line:1 char:1 -E: Your code broke, but I'm still running. At line:1 char:1 +E: Your something broke, but Im still running. At line:1 char:1 -E: Your code broke, but I'm still running. At line:1 char:1 +E: Your something broke, but Im still running. At line:1 char:1 F: Now you really broke me. At line:1 char:1 + ``` From c45436671f135ba13dfafe53d881a1395ddd8d93 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 7 Aug 2019 11:19:39 -0700 Subject: [PATCH 05/21] updated comment due date on Error-View --- 1-Draft/RFC00XX-Update-Error-View.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 5064bbc0..12786951 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -4,7 +4,8 @@ Author: Jason Helmick Status: Draft Version: 0.0.0 Area: PowerShell -Comments Due: +Comments Due: 08/31/2019 +Plan to implement: Yes --- # Update $ErrorView with Single String Error Messages From fb60588b64b9e95e6d8adeda37150f75ef51a95a Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Mon, 26 Aug 2019 12:00:45 -0700 Subject: [PATCH 06/21] Update 1-Draft/RFC00XX-Update-Error-View.md Co-Authored-By: Steve Lee --- 1-Draft/RFC00XX-Update-Error-View.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 12786951..53c28b87 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -19,7 +19,7 @@ containing the error will be displayed. A cmdlet will provide the full error de ## Motivation The on-screen experience, when receiving an error message, -is controlled through the views NormalView (the default) and CategoryView. These are user selectable though the preference variable $ErrorView. +is controlled through the views NormalView (the default) and CategoryView. These are user selectable through the existing preference variable `$ErrorView`. The addition of a “ConciseView” as default that contains only specific error information producing a single line on screen and in logs will improve customer success. From f4edfcdcf82e933d3aa77606308bd3ad1d976ed0 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Mon, 26 Aug 2019 12:55:09 -0700 Subject: [PATCH 07/21] review update for view name -simpleview --- 1-Draft/RFC00XX-Update-Error-View.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 12786951..4770592e 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -20,7 +20,7 @@ containing the error will be displayed. A cmdlet will provide the full error de The on-screen experience, when receiving an error message, is controlled through the views NormalView (the default) and CategoryView. These are user selectable though the preference variable $ErrorView. -The addition of a “ConciseView” as default that contains only specific error +The addition of a “SimpleView” as default that contains only specific error information producing a single line on screen and in logs will improve customer success. Comprehensive error information is available to the customer through @@ -29,21 +29,28 @@ a cmdlet “Resolve-ErrorRecord” will simplify the process of getting detailed ## Specification -The proposal is to add a new single-line default error message view called ConciseView +The proposal is to add a new single-line default error message view called SimpleView and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information. __Key Design Considerations__ 1. To reduce confusion and improve debugging success, -error messages by default should produce a single line of text, including the word “ERROR:” to make consistent with Verbose and Warning messages. This is added to $errorView as view named "ConciseView". +error messages, by default using WriteErrorLine, should produce a single line of text, including the word “ERROR:” to make consistent with Verbose and Warning messages. This is added to $errorView as view named "SimpleView". Conditionally, positional information will be added if from a script. - $ErrorView should contain these views + NormalView + CategoryView - + ConciseView + + SimpleView -- Error Message syntax for ConciseView +- From Interactive: Error Message syntax for SimpleView + +```powershell +ERROR: +ERROR: Cannot find path ‘C:\blah’ because it does not exist: +``` + +- From Script: Error Message syntax for SimpleView ```powershell ERROR: : From 0641bb2e82d35cb916ff827b5c35a92b49f5ef8d Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 3 Sep 2019 13:15:31 -0700 Subject: [PATCH 08/21] fix unresolved merge conflict --- 1-Draft/RFC00XX-Update-Error-View.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 605e5f25..d508ca5c 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -19,13 +19,8 @@ containing the error will be displayed. A cmdlet will provide the full error de ## Motivation The on-screen experience, when receiving an error message, -<<<<<<< HEAD -is controlled through the views NormalView (the default) and CategoryView. These are user selectable though the preference variable $ErrorView. +is controlled through the views NormalView (the default) and CategoryView. These are user selectable though the existing preference variable `$ErrorView`. The addition of a “SimpleView” as default that contains only specific error -======= -is controlled through the views NormalView (the default) and CategoryView. These are user selectable through the existing preference variable `$ErrorView`. -The addition of a “ConciseView” as default that contains only specific error ->>>>>>> fb60588b64b9e95e6d8adeda37150f75ef51a95a information producing a single line on screen and in logs will improve customer success. Comprehensive error information is available to the customer through From 8dabf42f0a063f7968f124b5d426a506d513a831 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 3 Sep 2019 13:31:46 -0700 Subject: [PATCH 09/21] Removed incorrect parameter -Oldest --- 1-Draft/RFC00XX-Update-Error-View.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index d508ca5c..389869d4 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -63,13 +63,12 @@ ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char: + Display Last Error ($Error[0]) – default behavior + Accept Pipeline input – support $error[1] | - + Option for the first X errors in the session - + Option for the Last X errors in the session + + Option for the Newest X errors in the session - Resolve-ErrorRecord syntax ```powershell -Resolve-ErrorRecord [-InputObject ] [-Newest ] [-First ] [-All] [] +Resolve-ErrorRecord [-InputObject ] [-Newest ] [-All] [] ``` First parameter set @@ -80,12 +79,6 @@ First parameter set + specifies one or more of last errors to display + Not required -- First - - + Datatype: Int32 - + Specifies one or more of the first errors that occurred - + Not required - - All + Datatype: Switch From 5cf273df899181e7e280892730df328cb1027c16 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Mon, 23 Sep 2019 12:10:02 -0700 Subject: [PATCH 10/21] Errorview update to remove unneeded parameters --- 1-Draft/RFC00XX-Update-Error-View.md | 50 ++++++++++------------------ 1 file changed, 17 insertions(+), 33 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 389869d4..7f8873b1 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -4,8 +4,7 @@ Author: Jason Helmick Status: Draft Version: 0.0.0 Area: PowerShell -Comments Due: 08/31/2019 -Plan to implement: Yes +Comments Due: --- # Update $ErrorView with Single String Error Messages @@ -19,42 +18,39 @@ containing the error will be displayed. A cmdlet will provide the full error de ## Motivation The on-screen experience, when receiving an error message, -is controlled through the views NormalView (the default) and CategoryView. These are user selectable though the existing preference variable `$ErrorView`. -The addition of a “SimpleView” as default that contains only specific error +is controlled through the views NormalView (the default) and CategoryView. These are user selectable +through the preference variable $ErrorView. +The addition of a “ConciseView” as default that contains only specific error information producing a single line on screen and in logs will improve customer success. Comprehensive error information is available to the customer through accessing the error object. For new and occasional customers, -a cmdlet “Resolve-ErrorRecord” will simplify the process of getting detailed error information, improving customers success. +a cmdlet “Resolve-ErrorRecord” will simplify the process of getting detailed error information, +improving customers success. ## Specification -The proposal is to add a new single-line default error message view called SimpleView +The proposal is to add a new single-line default error message view called ConciseView and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information. __Key Design Considerations__ 1. To reduce confusion and improve debugging success, -error messages, by default using WriteErrorLine, should produce a single line of text, including the word “ERROR:” to make consistent with Verbose and Warning messages. This is added to $errorView as view named "SimpleView". Conditionally, positional information will be added if from a script. +error messages by default should produce a single line of text, including the word “ERROR:” +to make consistent with Verbose and Warning messages. This is added to $errorView as view named "ConciseView". - $ErrorView should contain these views + NormalView + CategoryView - + SimpleView + + ConciseView + + DetailedView -- From Interactive: Error Message syntax for SimpleView +- Error Message syntax for ConciseView ```powershell ERROR: -ERROR: Cannot find path ‘C:\blah’ because it does not exist: -``` - -- From Script: Error Message syntax for SimpleView - -```powershell -ERROR: : -ERROR: Cannot find path ‘C:\blah’ because it does not exist: At line:1 char:1 +ERROR: Cannot find path ‘C:\blah’ because it does not exist ``` 2. A new cmdlet “Resolve-ErrorRecord” will produce detailed error information similar to Format-List * -Force. @@ -79,12 +75,6 @@ First parameter set + specifies one or more of last errors to display + Not required -- All - - + Datatype: Switch - + Specifies display all errors in session - + Not required - Examples ```powershell @@ -94,15 +84,9 @@ Resolve-ErrorRecord # Displays error details from pipeline error object $error[1] | Resolve-ErrorRecord -# Display detailed error information for the last 5 errors -Resolve-ErrorRecord -Last 5 +# Display detailed error information for the most recent 3 errors +Resolve-ErrorRecord -Newest 3 -# Display detailed error information for the first 3 errors -Resolve-ErrorRecord -First 3 - -# Display detailed information for all errors that occured in the session -Resolve-ErrorRecord -All -``` __Example 1__ ```powershell @@ -115,7 +99,7 @@ PSMessageDetails : Exception : System.Management.Automation.ItemNotFoundException: Cannot find path 'C:\blah' because it does not exist. at System.Management.Automation.LocationGlobber.ExpandMshGlobPath(String path, Boolean - allowNonexistingPaths, PSDriveInfo drive, ContainerCmdletProvider + allowNonexistingPaths, PSDriveInfo drive, ContainerCmdletProvider ``` @@ -156,7 +140,7 @@ ERROR: get-item: gi: Cannot find path ‘C:\blah’ because it does not exist: A __Alternative color for all errors__ -1. We could change the default error message color from the current RED foreground and BLACK background to... +1. We could change the default error message color from the current RED foreground and BLACK background to ?. 2. Differentiating errors based on termination condition: terminating versus non-terminating is currently not intuitive. We are examining differentiating these conditions on the console. Example, adding a new property $host.PrivateData.NonTerminatingErrorForegroundColor ='Red'. For occasional customers, all error messages remain as color Red. For advanced customers, they can change non-terminating errors to another color to separate the error termination type in the console. From 07af6d2033a71a92b055b20d0de769f95b519fc5 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 24 Sep 2019 08:12:58 -0700 Subject: [PATCH 11/21] Changed view name from Concise to SimpleView --- 1-Draft/RFC00XX-Update-Error-View.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 7f8873b1..7197bda3 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -20,7 +20,7 @@ containing the error will be displayed. A cmdlet will provide the full error de The on-screen experience, when receiving an error message, is controlled through the views NormalView (the default) and CategoryView. These are user selectable through the preference variable $ErrorView. -The addition of a “ConciseView” as default that contains only specific error +The addition of a “SimpleView” as default that contains only specific error information producing a single line on screen and in logs will improve customer success. Comprehensive error information is available to the customer through @@ -30,23 +30,23 @@ improving customers success. ## Specification -The proposal is to add a new single-line default error message view called ConciseView +The proposal is to add a new single-line default error message view called SimpleView and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information. __Key Design Considerations__ 1. To reduce confusion and improve debugging success, error messages by default should produce a single line of text, including the word “ERROR:” -to make consistent with Verbose and Warning messages. This is added to $errorView as view named "ConciseView". +to make consistent with Verbose and Warning messages. This is added to $errorView as view named "SimpleView". - $ErrorView should contain these views + NormalView + CategoryView - + ConciseView + + SimpleView + DetailedView -- Error Message syntax for ConciseView +- Error Message syntax for SimpleView ```powershell ERROR: From da03165715a555e22127c9f56eb562b1bd7670e2 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 24 Sep 2019 08:23:44 -0700 Subject: [PATCH 12/21] Added WriteErrorLine clarification --- 1-Draft/RFC00XX-Update-Error-View.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 7197bda3..90512c05 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -36,7 +36,7 @@ and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information __Key Design Considerations__ 1. To reduce confusion and improve debugging success, -error messages by default should produce a single line of text, including the word “ERROR:” +error messages should call WriteErrorLine to produce a single line of text, including the word “ERROR:” to make consistent with Verbose and Warning messages. This is added to $errorView as view named "SimpleView". - $ErrorView should contain these views From 8cdd56a02732109fd159adcf9336fefb444f36c0 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 24 Sep 2019 10:31:25 -0700 Subject: [PATCH 13/21] Added example showing Inner exception --- 1-Draft/RFC00XX-Update-Error-View.md | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 90512c05..b81d3460 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -75,7 +75,7 @@ First parameter set + specifies one or more of last errors to display + Not required -Examples +__Example__ ```powershell # Displays details of the last error displayed @@ -86,12 +86,14 @@ $error[1] | Resolve-ErrorRecord # Display detailed error information for the most recent 3 errors Resolve-ErrorRecord -Newest 3 +``` __Example 1__ +SimpleView of Error message. Resolve-ErrorRecord shows sample DetailedView ```powershell PS C:\test> Get-item c:\blah -Get-item : Cannot find path 'C:\blah' because it does not exist. At line:1 char:1 +ERROR: Cannot find path 'C:\blah' because it does not exist. PS C:\test> Resolve-ErrorRecord @@ -104,14 +106,29 @@ Exception : System.Management.Automation.ItemNotFoundException: Cann ``` __Example 2__ +SimpleView of Error message. Piped error to Resolve-ErrorRecord shows sample DetailedView ```powershell PS C:\test> slkjdfh -ERROR: The term 'slkjdfh' is not recognized as the name of a cmdlet, function, script file, or operable program. At line:1 char:1 +ERROR: The term 'slkjdfh' is not recognized as the name of a cmdlet, function, script file, or operable program. PS C:\test> $error[0] | Resolve-ErrorRecord PSMessageDetails : -Exception : System.Management.Automation.CommandNotFoundException: The term 'slkjdfh' is not recognized as +Exception : System.Management.Automation.CommandNotFoundException: + The term 'slkjdfh' is not recognized as +``` + +__Example 3__ +SimpleView of Inner exception if present. Sample of Resolve-ErrorRecord to provide DetailedView. + +```powershell +PS> [System.Net.DNS]::GetHostByName('NoOnline') +ERROR: No such host is known. + +PS>Resolve-ErrorRecord -Newest 1 +Exception calling "GetHostByName" with "1" argument(s): +"No such host is known." +At line:1 char:1 ``` ## Alternate Proposals and Considerations From 6de0c3edc89df3eba276cdcbfad1e388f3bdd103 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Tue, 24 Sep 2019 15:41:46 -0700 Subject: [PATCH 14/21] updated normal and detailed view --- 1-Draft/RFC00XX-Update-Error-View.md | 112 +++++++++++++-------------- 1 file changed, 54 insertions(+), 58 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index b81d3460..2d7f2d28 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -10,50 +10,61 @@ Comments Due: # Update $ErrorView with Single String Error Messages When an error occurs in PowerShell, the customers on-screen error message experience currently -provides a level of detail that obscures the inner exception message from being read by +provides a level of detail that obscures the exception message from being recognized and read by new or occasional PowerShell users. -To improve both comprehension and the troubleshooting experience, a single string of text -containing the error will be displayed. A cmdlet will provide the full error details when desired. +To improve both comprehension and the troubleshooting experience, +a simplified conditional error message will be provided determined by +Interactive or Script use. A cmdlet will provide the full error details when desired. ## Motivation The on-screen experience, when receiving an error message, is controlled through the views NormalView (the default) and CategoryView. These are user selectable through the preference variable $ErrorView. -The addition of a “SimpleView” as default that contains only specific error -information producing a single line on screen and in logs will improve customer success. - -Comprehensive error information is available to the customer through -accessing the error object. For new and occasional customers, -a cmdlet “Resolve-ErrorRecord” will simplify the process of getting detailed error information, -improving customers success. +This RFC describes changing the NormalView to a simplified conditional error message. The +CategoryView should remain unchanged. +A comprehensive detailed view of the fully qualified error, including inner exceptions, +will be provided by the `Resolve-ErrorRecord` cmdlet. ## Specification -The proposal is to add a new single-line default error message view called SimpleView -and add a new cmdlet (Resolve-ErrorRecord) to provide detailed error information. +The proposal is to modify NormalView to a simplified conditional error message +based on interactive versus script use. +For in-depth troubleshooting, a new cmdlet `Resolve-ErrorRecord` to provide detailed error information. __Key Design Considerations__ 1. To reduce confusion and improve debugging success, -error messages should call WriteErrorLine to produce a single line of text, including the word “ERROR:” -to make consistent with Verbose and Warning messages. This is added to $errorView as view named "SimpleView". +error messages should call WriteErrorLine to produce a simplified message, including the word “ERROR:” +to make consistent with Verbose and Warning messages. This is a change to the existing NormalView. -- $ErrorView should contain these views +- $ErrorView can refer to these views + NormalView + CategoryView - + SimpleView - + DetailedView -- Error Message syntax for SimpleView +- Simplified error message syntax from Interactive. ```powershell -ERROR: -ERROR: Cannot find path ‘C:\blah’ because it does not exist +PS C:\> Get-Childitem -Path c:\notreal +ERROR: Cannot find path ‘C:\notreal’ because it does not exist ``` -2. A new cmdlet “Resolve-ErrorRecord” will produce detailed error information similar to Format-List * -Force. +- Simplified error message from Script. (note-colorization is not displayed correctly) + +```powershell +PS C:\> .\MyScript.ps1 +ERROR: Cannot find path 'C:\notreal' because it does not exist. + ---> C:\GitHub\pri-errorview\RustTest\test.ps1 + | +15 | Get-ChildItem -Path c:\notreal + | ^^^ Cannot find path 'C:\notreal' because it does not exist. + | + * Help: this is for additonal help information +``` + +2. A new cmdlet `Resolve-ErrorRecord` will produce comprehensive detailed +view of the fully qualified error, including inner exceptions. - Resolve-ErrorRecord will provide the following: @@ -75,60 +86,45 @@ First parameter set + specifies one or more of last errors to display + Not required -__Example__ - -```powershell -# Displays details of the last error displayed -Resolve-ErrorRecord - -# Displays error details from pipeline error object -$error[1] | Resolve-ErrorRecord - -# Display detailed error information for the most recent 3 errors -Resolve-ErrorRecord -Newest 3 -``` - __Example 1__ -SimpleView of Error message. Resolve-ErrorRecord shows sample DetailedView +Error occurs in Interactive mode. Cmdlet displays details of the last error displayed ```powershell -PS C:\test> Get-item c:\blah -ERROR: Cannot find path 'C:\blah' because it does not exist. +PS C:\> Get-Childitem -Path c:\notreal +ERROR: Cannot find path ‘C:\notreal’ because it does not exist PS C:\test> Resolve-ErrorRecord -PSMessageDetails : -Exception : System.Management.Automation.ItemNotFoundException: Cannot find path 'C:\blah' because it does - not exist. - at System.Management.Automation.LocationGlobber.ExpandMshGlobPath(String path, Boolean - allowNonexistingPaths, PSDriveInfo drive, ContainerCmdletProvider - +**** Detailed message here **** ``` __Example 2__ -SimpleView of Error message. Piped error to Resolve-ErrorRecord shows sample DetailedView +Error occurs in Script. Cmdlet displays error details from pipeline error object ```powershell -PS C:\test> slkjdfh -ERROR: The term 'slkjdfh' is not recognized as the name of a cmdlet, function, script file, or operable program. -PS C:\test> $error[0] | Resolve-ErrorRecord - -PSMessageDetails : -Exception : System.Management.Automation.CommandNotFoundException: - The term 'slkjdfh' is not recognized as +PS C:\> .\MyScript.ps1 +ERROR: Cannot find path 'C:\notreal' because it does not exist. + ---> C:\GitHub\pri-errorview\RustTest\test.ps1 + | +15 | Get-ChildItem -Path c:\notreal + | ^^^ Cannot find path 'C:\notreal' because it does not exist. + | + * Help: this is for additonal help information + +PS C:\> $error[0] | Resolve-ErrorRecord + +**** Detailed message here **** ``` __Example 3__ -SimpleView of Inner exception if present. Sample of Resolve-ErrorRecord to provide DetailedView. +Display detailed error information for the most recent 3 errors. ```powershell -PS> [System.Net.DNS]::GetHostByName('NoOnline') -ERROR: No such host is known. +PS C:\> Resolve-ErrorRecord -Newest 3 -PS>Resolve-ErrorRecord -Newest 1 -Exception calling "GetHostByName" with "1" argument(s): -"No such host is known." -At line:1 char:1 +**** Detailed message here **** +**** Detailed message here **** +**** Detailed message here **** ``` ## Alternate Proposals and Considerations From 697327cbb4cab36bffd5a174949b0cdfc62b1cb0 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 25 Sep 2019 08:25:25 -0700 Subject: [PATCH 15/21] added image of new error view --- 1-Draft/RFC00XX-Update-Error-View.png | Bin 0 -> 38646 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 1-Draft/RFC00XX-Update-Error-View.png diff --git a/1-Draft/RFC00XX-Update-Error-View.png b/1-Draft/RFC00XX-Update-Error-View.png new file mode 100644 index 0000000000000000000000000000000000000000..a769d8d104a4fa2ff312b348eb4423620eccdc6d GIT binary patch literal 38646 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

^}tGV);`sP8r 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 Date: Wed, 25 Sep 2019 08:33:36 -0700 Subject: [PATCH 16/21] Added image of errorview and adjusted carets --- 1-Draft/RFC00XX-Update-Error-View.md | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 2d7f2d28..a40d9454 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -43,25 +43,9 @@ to make consistent with Verbose and Warning messages. This is a change to the ex + NormalView + CategoryView -- Simplified error message syntax from Interactive. +- Simplified error message syntax from Interactive and script. -```powershell -PS C:\> Get-Childitem -Path c:\notreal -ERROR: Cannot find path ‘C:\notreal’ because it does not exist -``` - -- Simplified error message from Script. (note-colorization is not displayed correctly) - -```powershell -PS C:\> .\MyScript.ps1 -ERROR: Cannot find path 'C:\notreal' because it does not exist. - ---> C:\GitHub\pri-errorview\RustTest\test.ps1 - | -15 | Get-ChildItem -Path c:\notreal - | ^^^ Cannot find path 'C:\notreal' because it does not exist. - | - * Help: this is for additonal help information -``` +![test](.\RFC00XX-Update-Error-View.png) 2. A new cmdlet `Resolve-ErrorRecord` will produce comprehensive detailed view of the fully qualified error, including inner exceptions. From 889cad43c13dd224baeb54364b393f2a57950084 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 25 Sep 2019 08:38:51 -0700 Subject: [PATCH 17/21] Spelling correction --- 1-Draft/RFC00XX-Update-Error-View.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index a40d9454..c6679072 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -91,9 +91,9 @@ ERROR: Cannot find path 'C:\notreal' because it does not exist. ---> C:\GitHub\pri-errorview\RustTest\test.ps1 | 15 | Get-ChildItem -Path c:\notreal - | ^^^ Cannot find path 'C:\notreal' because it does not exist. + | ^^^ Cannot find path 'C:\notreal' because it does not exist. | - * Help: this is for additonal help information + * Help: this is for additional help information PS C:\> $error[0] | Resolve-ErrorRecord From 9439d35c084a64ad32980c3aa706a431459a1833 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 25 Sep 2019 11:55:55 -0700 Subject: [PATCH 18/21] Updated graphic display of error messages --- 1-Draft/RFC00XX-Update-Error-View.md | 22 +++++++++++++++++++++- 1-Draft/RFC00XX-Update-Error-View.png | Bin 38646 -> 37079 bytes 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index c6679072..699e48ba 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -43,7 +43,27 @@ to make consistent with Verbose and Warning messages. This is a change to the ex + NormalView + CategoryView -- Simplified error message syntax from Interactive and script. +- Simplified error message syntax from Interactive and script. (See graphic below) + +```powershell +PS C:\> Get-Childitem -Path c:\notreal +ERROR: Cannot find path ‘C:\notreal’ because it does not exist +``` + +```powershell +PS C:\> .\MyScript.ps1 +ERROR: ItemNotFoundException + ---> C:\GitHub\pri-errorview\RustTest\test.ps1 + | +15 | Get-ChildItem -Path c:\notreal + | ^^^ Cannot find path 'C:\notreal' because it does not exist. + | + * Help: this is for additional help information + +PS C:\> $error[0] | Resolve-ErrorRecord + +**** Detailed message here **** +``` ![test](.\RFC00XX-Update-Error-View.png) diff --git a/1-Draft/RFC00XX-Update-Error-View.png b/1-Draft/RFC00XX-Update-Error-View.png index a769d8d104a4fa2ff312b348eb4423620eccdc6d..e837c89f19c868e919db4b0dfdb5d8d0cf28891e 100644 GIT binary patch literal 37079 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

^}tGV);`sP8r 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 Date: Wed, 25 Sep 2019 12:08:10 -0700 Subject: [PATCH 19/21] graphic update --- 1-Draft/RFC00XX-Update-Error-View.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 699e48ba..daaca38d 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -107,7 +107,7 @@ Error occurs in Script. Cmdlet displays error details from pipeline error object ```powershell PS C:\> .\MyScript.ps1 -ERROR: Cannot find path 'C:\notreal' because it does not exist. +ERROR: ItemNotFoundException ---> C:\GitHub\pri-errorview\RustTest\test.ps1 | 15 | Get-ChildItem -Path c:\notreal From 1f272cd53de418ff185e39b8e289e7aa264e0f3c Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Wed, 25 Sep 2019 14:38:45 -0700 Subject: [PATCH 20/21] edits to Overview --- 1-Draft/RFC00XX-Update-Error-View.md | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index daaca38d..92091c19 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -11,24 +11,33 @@ Comments Due: When an error occurs in PowerShell, the customers on-screen error message experience currently provides a level of detail that obscures the exception message from being recognized and read by -new or occasional PowerShell users. -To improve both comprehension and the troubleshooting experience, -a simplified conditional error message will be provided determined by -Interactive or Script use. A cmdlet will provide the full error details when desired. +new or occasional PowerShell users. The addition of simplified error views will improve both +comprehension and troubleshooting experience. + +Advanced PowerShell users and scripters will benefit from a newly designed 'AnalyticalView' that +focuses on the specific location, code reference and error information from the script. + +Both user types will benefit from a combined 'DynamicView' that switches between +'MessageView' and 'AnalyticalView' based on the source of execution; +Command-line versus script. + +In all the above scenarios, regardless of error view selected, A comprehensive +detailed view of the fully qualified error, including inner exceptions, +will be provided by the `Resolve-ErrorRecord` cmdlet. ## Motivation The on-screen experience, when receiving an error message, is controlled through the views NormalView (the default) and CategoryView. These are user selectable through the preference variable $ErrorView. -This RFC describes changing the NormalView to a simplified conditional error message. The -CategoryView should remain unchanged. +This RFC describes adding three additional views to improve readability. The +'MessageView', 'AnalyticalView', and 'DynamicView'. A comprehensive detailed view of the fully qualified error, including inner exceptions, will be provided by the `Resolve-ErrorRecord` cmdlet. ## Specification -The proposal is to modify NormalView to a simplified conditional error message +The proposal is to add three new views to a simplified conditional error message based on interactive versus script use. For in-depth troubleshooting, a new cmdlet `Resolve-ErrorRecord` to provide detailed error information. @@ -42,6 +51,9 @@ to make consistent with Verbose and Warning messages. This is a change to the ex + NormalView + CategoryView + + MessageView + + AnalyticalView + + DynamicView - Simplified error message syntax from Interactive and script. (See graphic below) From a58d4e8e09dc1fd49450373a46fa709c0b170464 Mon Sep 17 00:00:00 2001 From: Jason Helmick Date: Thu, 26 Sep 2019 10:43:43 -0700 Subject: [PATCH 21/21] update $errorview to enum --- 1-Draft/RFC00XX-Update-Error-View.md | 88 ++++++++++++++------------ 1-Draft/RFC00XX-Update-Error-View.png | Bin 37079 -> 40639 bytes 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/1-Draft/RFC00XX-Update-Error-View.md b/1-Draft/RFC00XX-Update-Error-View.md index 92091c19..52918b63 100644 --- a/1-Draft/RFC00XX-Update-Error-View.md +++ b/1-Draft/RFC00XX-Update-Error-View.md @@ -1,67 +1,67 @@ --- -RFC: Update $ErrorView with Single String Error Messages +RFC: Update $ErrorView with simplified views for Error Messages Author: Jason Helmick Status: Draft Version: 0.0.0 Area: PowerShell -Comments Due: +Comments Due: 10/31/2019 --- -# Update $ErrorView with Single String Error Messages +# Update $ErrorView with simplified views for Error Messages When an error occurs in PowerShell, the customers on-screen error message experience currently provides a level of detail that obscures the exception message from being recognized and read by -new or occasional PowerShell users. The addition of simplified error views will improve both -comprehension and troubleshooting experience. - -Advanced PowerShell users and scripters will benefit from a newly designed 'AnalyticalView' that -focuses on the specific location, code reference and error information from the script. - -Both user types will benefit from a combined 'DynamicView' that switches between -'MessageView' and 'AnalyticalView' based on the source of execution; -Command-line versus script. - -In all the above scenarios, regardless of error view selected, A comprehensive -detailed view of the fully qualified error, including inner exceptions, -will be provided by the `Resolve-ErrorRecord` cmdlet. +new or occasional PowerShell users. The addition of a simplified error view will improve both +comprehension and troubleshooting experience. A new cmdlet 'Resolve-ErrorRecord' will provide +complete detailed view of the fully qualified error when desired. ## Motivation The on-screen experience, when receiving an error message, is controlled through the views NormalView (the default) and CategoryView. These are user selectable through the preference variable $ErrorView. -This RFC describes adding three additional views to improve readability. The -'MessageView', 'AnalyticalView', and 'DynamicView'. +This RFC describes Changing '$ErrorView to an enumeration and adding three additional views +to improve readability,'Message', 'Analytic', and 'Dynamic'. + +- Message - provides a concise error message suitable for new or occasional PowerShell users. +- Analytic - provides a refactored form of NormalView +- Dynamic - provides conditional switching between Message and Analytic. + A comprehensive detailed view of the fully qualified error, including inner exceptions, will be provided by the `Resolve-ErrorRecord` cmdlet. -## Specification +'$ErrorView' shall contain the original views for backward compatibility and renamed +to remove 'view' from the name. The view list is as follows: -The proposal is to add three new views to a simplified conditional error message -based on interactive versus script use. -For in-depth troubleshooting, a new cmdlet `Resolve-ErrorRecord` to provide detailed error information. +- Normal +- Category +- Message +- Analytic +- Dynamic -__Key Design Considerations__ +## Specification -1. To reduce confusion and improve debugging success, -error messages should call WriteErrorLine to produce a simplified message, including the word “ERROR:” -to make consistent with Verbose and Warning messages. This is a change to the existing NormalView. +The proposal is to add three new views to help improve error message comprehension based on user +needs. For in-depth troubleshooting, a new cmdlet `Resolve-ErrorRecord` +to provide detailed error information. -- $ErrorView can refer to these views +__Key Design Considerations__ - + NormalView - + CategoryView - + MessageView - + AnalyticalView - + DynamicView +1. To reduce confusion and improve debugging success for new and occasional users, +error messages should call WriteErrorLine to produce a simplified message using view 'Message' +and include the preface word “ERROR:” -- Simplified error message syntax from Interactive and script. (See graphic below) +- Simplified error message syntax from 'Message'. (See graphic below) ```powershell PS C:\> Get-Childitem -Path c:\notreal ERROR: Cannot find path ‘C:\notreal’ because it does not exist ``` +2. To improve script debugging for advanced PowerShell users and scripters, +a refactored error view 'Analytic' will be added displaying the error category, +exception, code line and position, and include additional help for the user. + ```powershell PS C:\> .\MyScript.ps1 ERROR: ItemNotFoundException @@ -70,17 +70,20 @@ ERROR: ItemNotFoundException 15 | Get-ChildItem -Path c:\notreal | ^^^ Cannot find path 'C:\notreal' because it does not exist. | - * Help: this is for additional help information + * Help: Additional help information provided here +``` -PS C:\> $error[0] | Resolve-ErrorRecord +3. The 'Dynamic' view is a combination of the views 'message' and 'Analytic' for users working +in the console that also run scripts. When the user is working Interactively in the CLI, +they will receive errors in the view of 'Message'. When the user executes a script, +errors will use the view 'Analytic'. -**** Detailed message here **** -``` +- An example is in the image below: -![test](.\RFC00XX-Update-Error-View.png) +![Message and Analytic](.\RFC00XX-Update-Error-View.png) -2. A new cmdlet `Resolve-ErrorRecord` will produce comprehensive detailed -view of the fully qualified error, including inner exceptions. +4. A new cmdlet `Resolve-ErrorRecord` will produce comprehensive detailed +view of the fully qualified error, including nested inner exceptions. - Resolve-ErrorRecord will provide the following: @@ -99,7 +102,7 @@ First parameter set - Newest + Datatype: int32 - + specifies one or more of last errors to display + + specifies one or more of the newest errors to display + Not required __Example 1__ @@ -115,7 +118,8 @@ PS C:\test> Resolve-ErrorRecord ``` __Example 2__ -Error occurs in Script. Cmdlet displays error details from pipeline error object +Error occurs in script, shows error from view 'Analytic', and then is piped +from $error array to 'Resolve-ErrorRecord' to display more details. ```powershell PS C:\> .\MyScript.ps1 diff --git a/1-Draft/RFC00XX-Update-Error-View.png b/1-Draft/RFC00XX-Update-Error-View.png index e837c89f19c868e919db4b0dfdb5d8d0cf28891e..48ba682ac577e178bc6b479f1dc36d8d47795d6a 100644 GIT binary patch literal 40639 zcmeFZWl)^Yx9>ZIV8J1{TW|^PlVorY?iSpGOR!)8f?MzmFi3C@7Cg8O?h@RS;FkN4 zY%XKn5nVr4|!4x;B{SW7qqJe%`*KJ_qODN=^^Y&x`%tGCfLbr+ccW{6>C)uf+<^ zzaRn+47@53jRWot1A&Yg+dzMQ*`^eLfc*P+0hu5~jNexv5d>u7KUeM#Fu49)?LQk+JFpV#B%Ihv1OT%NZDB0}!N3)J?$4dnPV z42z<%WpFH4I?Nr!;T$_Ga@5?yL$X_!&>4oE?Q_`B7+YNa#hWRFTLiBXD}`AN?y-;0 zsDvR&u+8ASg;l<)us)w1D$^nIIB6`|=%Rz@gyD!11gb_sY%bMzYDc=FXzY?CGT`M! za_Y;1K^;UI)*@I#&G!%bc0*N}s_Ag|>{C+=y?40Mk+w2DvVN_iKkfVRRlLTKT9aK+ z0JV8nqnz{suZ1aR^Kl1saVbkG-UAyHFdKxhBnKE4w|ebDa`{EP2ARoadlb6bwSSQ5 zGAxv0VBR_U-~lPVoUNs(_F z>oa`)0^e5Ph(yn){ z9fZ$+{@L{d)6uhYw3j;6zA$v0T-4L)UGy~%()A&uz&paj-WFgO4HyU1$1}N*$|2;x zqVkXt7EF9=LWIG!4?eTMd5g}0lbvrAIY6PC(YM+eRvT#SZ%u`m;k?#`R#^@S=s&VM z`?8d1ALxw6d`tl z*cFJIN7Z2FX<}s>P!MX$uD%q*cY)H$eX2>2w`Bq*q^fNJ0xy)v#|J(?+Us<=kz!k_ zz2VV%y?9l-Lbh_n{^3eobGGE}r0o1)n9?)+K*c6DumhW-i(Pq6q&pjkQde|jPu9xR z1g^y7xRMuoS%8aw{K!vtcm$@HR&I&rM+N++;>>s5>DEWX(YT$%>sx-rL))mbkeJ80 zs(VSR&mok2Yrr{#Udtl6u!v-NSIg*?TKfiGdV=pvCpksDA)GX1R?X40&wZ_eL;I7>}=2}}|{xPzZAil8NG_K}CufyL3_VF*rEeU;~>yNBC7-XUuG}?u<>3FP>Y-@VN@PZuY!on2saf80b-cXPbjIa@P7$HFL~%Ez1b z8Qo7kMUZPv;RT$W#y|)~1GTtUYS7{m{tO)vZdW)zkKW4C&=0tvFAvM4P^Ru<%^(~> zd&8J1!C^A77bI`iF*Ofk7Fcvm&_u(t?*S>#z3u<3!N0eAp!B8gh-Sy}=NuxNgBKG! z6&}>@fxE$24En*6BpLfHHi3_iGwOY`|FNF{k^J(}Ei!oSnG8=7uVM|DvwVjq(goUG z6fbJGZ5x=`Ku^9_ZuVgHb%b$&{ZFz!IR>4$uZ^lA2mKafx_K~TOAe#RKoZ^TOLfJ3 zmehnAD#L6k)j_AeJeZ`}uaD6=Uc2Jik0R9w>>UV2BC07mwa~6W`tP!SYUjz#qb9hw z$JnTgcpE=tq$65y$*~}qeK)Hh=DS8=0pr(0*Aj|F5J~M_M1yqa{DN8)U0148+D9;u zW0>rgrs0toGglVJ-qohkexG(u&HBvN#P{-@XA`>2fy(PmQ6$?KzC4KJWi09`e#J=k zflmld>C5PL;7<_ioi|KKpa8e~yhw|ffp^nE+X?o&bk^as19KZp3-3ea0;($_Q_ z@e^HsZK|q)v9j;abZA>tIO5c0^;0v0Xj4=3Na0Y$YP(%(KWiof1!@Il3rakq^yH9^ zZRN4vhx=-8`z?Od4(i0yUsKC0ygjAoFUAVbKcP|x@x6F8zE&h38LLL$GJBBlijLu} zdo8%YG--(4M7omM&e}EH>D>qFgy}Qucl7PP;?Fh($O;bMQcV`2e2wPlJvo_?X}Al3 z7*3VYl0BVWhFYycI^Yi*+zYu@b-zDD-Z$%jKEfbCN8x^~u^h7}Ox%&D#~1m~->MNc zC9zjMY}zu*C0zTni0d34p)d0cj^g6)&`J097Pxh{{Kl*SL$p(Vt0GLF@PxYd43oWt zgN4XUuoTbiGc*z0j|8faPc?6L;Z-wAc7-9nf&{D%4rn3~nRPskicO`}cy{kpwRqf!a)k0; z4yg)rxu0zJ7`{EFxnq&TtsePV>K0cSs*3-$2+Cx_sAe4ymQ#6MSu<#*))5g5Z~x$0 zY$1zT(Xv3w?{nvNB!}#|ONdc!dF5`|glCuJTOW>PwiBz6`OMRbGg#o6Z8L!v(Ig8^ zv!xW+@c}5{^eqrFQkWIDb?h@o+wm@W%R16zGomwh?+p4ZUgi2GR}jsuKdYF9oUnC# z?bXH_hHt2$c}Y>+!-1j#t4enKN^Qt`y{-rf== z3%*2-nUf-IUl;kAm-{U%?>R6CBKKXGbd4d24kr@^#8EbcK1pI+rZS=M1w!o`jYL`t zfwAOy1u@Y@-GRWza*-OL5j@H-Hg2_b^V!QqiGhT{R)j#f&yO_y*j-0>I(~nM;nn8T1Bix#yj$`9ZsXOp@e-q6Q%aT@k}(Y^))b+*giyTPLe>@hR3~&jc0)!Z3m7a zLl)mcdt+PP)QsQ_hg8)-JM!Mk_0h?CKTT{5u2F!eK(~3}^I_sAP$t<=cKI?;Ho17A z)N0ex+#%Eh2%=62;oKIOhLJFzgFRBh(`t)!1?XFOJBM&M(_KVp1QKNIfwfTLX34jE zGe4>L8}Iiphvhr~`n9?$`z=;#BYVx1IXjAKMS?6DHi2bUa6izo3jS)p-`b_eCqD(6 zZ+d1hN;Jsm7(|m;fgx!b`mVldyG`4c)bEWkB+bENhYRT2GXwb?D8m_Ujkt2%xBlrl zUOQ@H?FrSE_=g(G_&6qxRA3MWc^ z*Wy)YBaR@P!3p6t&@m;t5kfsh`ARxARv}o7lcA$?oUAG5>rgJq>pZSCG(A!&ngnb%26hYecEVlR>$=Oe4Zu}H4yU-+*MWxbbYf88LS+w%qe&Clddqhw`T{H65Js2 zG$IjN61?SMC2=SeycJ31X7FVW3Uw>pd-lkk+qqB0I}J+ff%jxF#y#~eA4p`OIn4Do z;qeG{(OM;OC;3JLFG2~C5Svd32d@u?hjpl+C`K#>lD3b3+bYxNG-S%!sh6Sf%m$+E zdLDG?-CAqH*wpmL;{y zC}iyqjp%pe`IN-g{D}^m9swcSLe=lNo0)#?=5sw}??(8U-7Yw9z^6>BP7^1^EE4m);`=re* z;t1S6SG_Q92p(86=a&GMzi66rY99%%9RoUJ29eUknE827TWk6L+N63h!0=+|RqA7% zBPU;ngTR{9b*Ij~^{^}VD4NB}gX$v7u3dTj-)3MQdnBXEZJtX?*6BlXp1%3$;Ho zs5#zS#rBZVI_?bOHVZ2Mf;9UXmN(Ss+mxW!c2_toZafmLCyX(mNR7d6)XT9qeT6c4 zfKY*Qjc)1pi5vu)!n$9_E(;>{5do7Vv2F~^qr(cZuQY78Tfq66V$N?X*^ZBX0Z6z` z9Eon21e26~Pi*3Q=IK@AYJ1;Z)hZambD4fsG~_?wNE)&WWpv<@*o>2=to*`Y77Sli zsd<<8`SGG0O}e9^t}a@W@5^sv6#7R+vF2C=nIy(d)kFraadz2{DaGGt+X6E$PgoI( zR7K3}!7G8(udv8pc`SAjt&hOmXLA7p;h>MzUHzfjp`XS3JTArQn`t?vf(V0rNdAnOIjacee2lz5-wT!9WFM3!2QwH zud@Dd8t6C+2sA?utWUcvlo<9$R&Gy}i0!Gv-}-)JltHEzO1%xv!ogEC`JIR3$?ol! zwct>rU?J3L(r1$WkoVz7$epKn4R)r?NnR9ns*!f?8)zN0D%CjXNf{*h$v3IE#DUsM z~b=sDvhl7jtzV(s6W*nUc zaQ~_GlruGfZK_;w+3ryfALV=5dSH6`1iMvfY)gYMcw2GWlC#ABRB1(O`swa5`sR^v ztV50J?~ZRdTDQY?YXGxrrV)TZCAb*JnzU#=$BR|(Zc9fNzy$ z{vMk_uO1>0=pZg_gSDrvXTOVp}| z{=oW!O(HqBHlpiIp`J=BdhW|oFc(4*CL<#?1NYRZX<&6knhxe9I=yBb1A2)kHKH?X zh$7Lt?X8L2hwu_fy+_XJ6ASk%$$`aBxM%7En^>@d%2p$sMXa}r(I+0QUQP07V1bvz z;9qZ2+f+QB+?i;bJ{Xfe@0P?S=!=16=pcaFNZUb2kAB$eeL0e&1j9O#0S1UinQ) zoixJy>LfGU-k^AJl_^z{3|urZEBr*Wy5=!jehoH$_5RNy?bj~su$MOkvPoRcg7}#M zYYGq>X%7?LPe~|GUX;g=GifCWduTotE_Ny%|4PfAA`(m3prWMCtC1Rzh|P(iD(DR^ z+b}NiEJo(dbM8C7QgD@n&7n}eQL))rUUkE=R;fl(twneAAbo1i#KPsxi3EnM@TnMrfdKkQKx`af`1$z6 zKc1%fz}^vkgo^Ub@$+kvZ^xAyAgc%UySq3L5XcG%nfN178Sk$lsqmj8VDOtyIH0t) z(njGf91uu15CM4`_1fn(^Sv$7+X<(hMOM) z<;_3joSz4jt!Nrhn4*F}*VzA|y0~I^(MlwWaxZ>?^rGp{Aj#O7fe42WYQKz#U+?!N zFlPH*?NHsVQc>Pv0G|T9>=?m6=)l~0*Q1!kD`)Sn#oTriFO~|jym$K;v)|l&?+Fw6 zBW>1^P$HcpBY%E+wST_em(UYU;d3%3P364}rIU`vs7L?vX*|R$OKl(lDTi>&Y~Qns z@88z^y04ZzmVE&gj?{tZ_f0bvS%B`Ap0uqgVSjnKO?zziX-R~_i*K~D>{}rsd_f=yZmqY6Kr)) z*c#WhzWhjntNPS!_9!VZ%_8@xONgOD{R@8fYox55HBPr20^_0e7`^plExg+OGsoTr z`72*$d_ljP3sb`p9&78nXmwLY97T=M&+M;>WRmnx5y8iZH2Y%|FXzV7FeeQXh(o`Q zwW!QFbcZ(}-A5n~viU-ls^W0tRIUe zSSzfubE!>Oi=fnz86{goxGa=dh$e4Fz$<=Aslhxc)t)i;`|;dY;R+-1gu-MmmEE`D zqHYUTlfw*2BC50^`dx63=k5-qTl*2osEJ}_QyUgdESdI^Hi@q> z%@Vz?5|Sp&8MWT?<$Nk{+3{5+vUYi`d^I60^+1fm+aq$hiC~7gxcxW53>Z#xNy#PM zpzGJ;A+}*Afpt!jIUoDvw?xgf4(=TxClMo+lIuz&=rZ6vY{kuoEZFq?&Ko0|xqF+n?OW!_}5l#@QbrZ)LH6uG62z=T?>x zBdJN@g+_*Q>0L9jflw#~!95ls)y7Uq%{U zfFBU%i2V?lSpHbZDsMiRly(7FV~6{vYb_!%D%MNRjy^wPXibz%Fy7;Vb#BKjKT5lk za_42pEKtf{3e)DLsHd2_<2#}{Xn?OuzYk^5EmGpkeD6pmSIfP{RrBU{%l~f6=w^** z53^#WWG-9}g2*OguU(79A}^z5psTwPEhvLsw{;?=eZ_ISmA@F8WI-g@2!&xf*Xb3$ zZ&=9&3Y`I^kS~aThvb3x19EOHbKd95V-rSwSb5A%zxL(dIlr!rOVVr(&P+E}^U9o5 zsiYQ3PDANNdliA7Y$aWl{DgKt(x^BX3L9a1&zFKe{7L?G^*j+F@xcy@#Pi6C>iCUq z|8DhGD3C1Hs0a>Rb`7ZC4-Xw$GfTi4q8wDLn{q$d4YFdB0fn+Dn&n}xHUnUSQgB4} z)Ke+u-^Br0V0ZwP&S$^=HB}wMx9M_gMY$f%sD8em?uAkQ&(DVygu}vnY(k>v8Jk0n zem_-SH}1M*UoR9J-R?rIm}{~+kP1i#CyVDr$enLls+b=$e;R()lyL(#JyBUSql7%w$$2N&YYt?Bs(Q5F5^HrVxC zp#8s#sC;F_H#^5HQlh(RK0f~T-%lgY&cth-K0zyuip73y9@|tjxl{l8F&T$3Z*dUc z-n=DtG*&)eo zVEDbpj#ov@Y=n5_*33X88sRYbAX5m$hWRIB%;F+u9B7gScaS2MP~}9wKVjmNy&N#Q z`!Vm(qzL!!esUh4CSUafp7KTAUD`Gm`*Sq^=!9Bv@aSbXk&)=*%szES74A0JYeY3m zjtR!m+{_eHLwv$hc}}0%0W-^5cY{=4Sjc#9VwHBLVO>~M79rYB0r=Kh2o3t$mCJ5x zC-wE=gMlZ08Ho;s_{sa$^$E&BN6Ra9Em&sK({xax=q0OJWCl5((vrJ7oKsGT`fxCU zzd^3aYhbkEOpzs9ZR!#b^xMH;!=o`DR)Wn>0XHT8U6IvIgNli2lP8M^1k&%69Iv2O z1ul{X-zSW)rxF?DD%jx9Y=RQTTp7*yuecNQW?Pq^8HF~hxlpHv+H|N_sbbB!$jxc= zRbKFDjo_^1n`D>;j1PBi_zfa~*>cmXcykLR$8hDnT0=QRvZJz+jeok{z5Hfn4R6T& zwH^I%iuj;y+xoQyheTlf*%{s59ef@3D&W-o9W?kP^XN?h=H2#!jnj+9lk3jy+dV4& zd!xSVeCNPP#v0i6vtD>HBAhxZ9=lkTR>3Cb0-7=WvnCzXyuoGLdui`=@l88Ija38I z8m=+hP_=-+!h}mMIUn|hRW2p>M%Ibc%q5d))liHoUVU(+p}HY$g;UYyprnRh4nmPL zd}}WCl<4McHg$Sr2>PRD``vJv&{{gqJJPdv|f>PYfBcS0abh_|;mH=Q4GAP06QUMPCRTZE)adq5)6839%8D@zEnn(W|Y;eZ5+2tKK8&=GU@krf?O#wp}aBvmiMzSTS$wkFB+ zy22S@)J?0VTZPThuvfkxF2!Ta8)yON;YVs7P}PmOU7C<|hkFefP?xZ>y>M^MQ_*CU z=;8kDF_jf~Ih zB`wXuPHNWtm}n@%GhJ>^nv#4Wk%^9HrnlCmf85F4$SkksqH8mHS#S$HvYC&H>qnZ= z(5pX=6)Z4!-Q1~VE?!t6b!lN~9J9&M4Z??SEK#|d4g(QUm*ys9LSo+C^h}$9P1sVt z(Fkh3laW$q$ICV_L=LJW{j(UZZb25j{!p);e!zd#ZQS}(V^saCtRSxtR?+*q@{t(n zgoa+pUMK#ix?)sv)t&ED%Qgo^AH9wJ{h)PSF%2tW=B{eVQcb$@-lX<5Rb%7aHUXJ9 zQHL@gT{AS>h1mIc&PQ5XYp$yERu!9cZ&!q93=VH;7QYmBf$b8el0wZB3636^Bvnk5 z$Xj@JVhZTHO=^r)V!U5Mf>r!KeQJovHgQ8@SvsjKBHcQ5-CpHSm@}NT;fJFAj@vjg zpU#?JGn+~Tv*st$a{L+pwT>9oTrh%?W!cmBcxqvVF7vBae@7nB*J#`C?#f`1c>LbF zyjvVYqPzX7)pUWrTy0~a!aPJbm+v_g>*l9y9AVXob3FbINrLjn9?cTo$vM{o_S7@A z3c6ZTwZek)V!}_&8!Axw_8uL9hD{0^(5p;HG8+sxT49K7?!aFBenVL|2asLSH+>ZAVC9>xunI9qD3Ke}y2=w2%TOGw1~4pUo{|NhDLxqM{V|@LnH2b;lCTc z_xyi_ZX<K zp-_6REcqOXc^>!he%dx7`g5@IRS%`##p?A@>#t~$!_TKvdf>}GWxqB2>FCao@cX`F;w8Y?cA7tU*~1ta|&VC?XsprJjOp<2EYG$1fO4?H~0;W^NB=kIMO`iW4*0zIR0)?-FC zfj^IIM-<;DFaB$gXCy<|?a}!>Bk_u1>^#K&57cSLr@id(R|EV{Q;ff#>c5%>42J`B^vh|->q0fb%HbhUAEBmhe+J_K^r@;$lnIZUk z4MKG_3P6r0haRmye&Qxe#d>sr`bvJ7(;^l=snY0h<|Q)qg((^z1mXn{gi?J#yC!Os z@qP+Gk#Xd%z4n-p#blRpMFH7(-*zOT?VPR|Bkvtp{j%S+N{eP0plwq~#=Z=NH;n$= z?RwtFf$jK)$nc`BzD4n7Ql-WX6&?%6)9pU_O!>o5@ zr0`aT3&3???{xCYHZdTjbYN~Qn5wT&i2zArm#V!srq>MMs??@FH}aYKi%r6J!vy!Z z+j3Ei!S!@ah1>HgJBf446|rP4Ob4g;#&HAyAWhETD<-55(Y~X+WQc5c?%MDr!>fVg z_#*i^vF7b0EKH~DnP)r70*UtqT2;30rz0#W%SBcpv;swpFgTCUubZD?gazPVz|a~c zY#!I-o&-^ed7nfer9I9PeEs6fm*Wm}&cBKMs9SRiAmp#GIuLpRdJh4h$J@ z#!L*(VTpViujA3_2dS4TT5U>tctud&cBQ7ORQhpaLaNA)BejAj98O!soFD(2 zdJ2?HPnT3Ua%z7-Qg~vfTv;tQW-Fa*LN>!=JOG4j&T4V+@jAP$L1ORc{FzD?Os5UN zXoJV@k+o84*bPAx-{ZPDZ|6|;dSGl%=Zor{_*JIt=eC*QohtRjjlZp}&|vodFkQve zeRs?%=3Fb(dSrdJ-OpYW643(LP=qKP0W>7lM*KK;;sanv2L8q&*{r1{PAZid z8NAP%mJPxAcwSyJT~j4`gXHdAd4N7BlYBwHp~`wq+k0X+y3d1o&87qw zNo}sF7iw|kNU;?caI?mRE7;iAvEwG=Jul#G4B8VW;9hf1*P|VRnv2IF@3y%sNX_1s25{^yS4>`9idV!{!@3I=r1%4d$o?}Bz{VkVcxa` zrK+`ZrPw0fExH*!KRAs?Eb{7yzIVD-TXbP^=!o)znw&+gA=QEL$dH$7Jze$K1O<%x zE}*Jh)C8=b5s|9<-}anB39fzRXhjn_oHmVqWm#OuWNq{hKurTn0F3D;w1&JD`WOUq zM*~0x)7I~n;eHkN)tJxY5fvTi&*59vxtR0yzd?jvDgA zf#-4N*EbPnz&CgsA^`0^_iE<+Xn z{Ab>Cfj}v;U^X4%2#hnvTbd#Yz}f^mSz1B$57-^d{7?8>v2|+MOx_J!+eI*Q*0v0_ zJ(P_%bBnXaWl7h`)7<2g@v|5*A=X7L%2RA-;KPCH4$O3OtW1&3!apz{aSI}9o5(eflloAk(?`xXlFgeEb1HB4gO({g{Db1wr!jJ^>!E?u&WT6@QVp9dxvqXqWe|Z=wWO7c6D6(;Ib(u zwty50`>Os2MUTW1Y2nvvT`Ig%y@h#H=@KmQQIb@v#dc3*PP*f!4WMsda{{Lp&|bDtinfav8=2MtRP+o<$6d+uGXuGOwIQaJ zJA~e7RsRnmKr~m>7f_4IL#ugd=2xAMtgBSn6Up?!KPcq(Wk8^*x0%6LHx}%gJv|L7s>#rtVLF|JO=`3R#n5$@YkGPd%2zCWLuQ&v5k)g*N_d|q zq8{1}Y$PYs;!>t5@wVB53Dg8USWJswSg>s;N@?K|i;cjL??Q$!D^y(KQ}h;9Dvg=a zoO>y9P^PiY5GQ}nZ~GV~V$iH(`5~j6WB}`1qYBt(It}xR0+Ln1M_6T|pgevR1;=@o z1xoyR#xZ&ukXbt+#uSnrWt_G5gAxBeQQ=dVFtPKbeYwEQp&G=7g<_{JH$2K_C8MYb zc3H)vWEMS7Px~$t7B8$fKri91CViY9@vau&={PBc4MxR2Z3Us`! z3BxPgX?sgT;YinSSdwQJie^U0_866az4!_w}(RCe`%y`q%6};+9Z*&nzuLgfJp57Lu<8RMQe`e|ypG?6zkQ;}g!LU+1 zm8%WdHeFV$$@H+fVC z_)^zwtNNdVrM;6b=^*hSOxPs3nD@k!NE0{QSquK_B*z#f3tE`Vu3gIKkXsrK9)H`puR^!6 z757PXf_$@Rasg&;HLe6xK06#H8h;*woYa%Inp$ z_yK4KecDvc#7$swk^I1K`y2wMeORW<1I(=|weco10m&VJw0~*4d9}RNctS2I+plp6cCO zt-Z(8W5Fbbe+^yWsw}$iVDvkjvo96BXjHlxU+)u)4c5;&BG^p800P+;mK!Yy(8E5; z)sQfkGLHneYZFaX)nDU4+F`|Gs2s&_&S0l0dME>l*Xl|~D5T3MiNPwbwJOdgFHe0~!UtQE^V8}>?- zK-6npHqXC>etiuNlFWembEs?3D= zryeuYgq|`sSh($+00E)PeHvRZ(`gJ|BB$B%x2oZiv_UEu)~u+eXbC~`M{U1*EQR}v ze}d!&QH2!tgR9*4Ly<3#C>|=o?Lx9-Wv_Tltx4`ONM}mHw~OsWZ*|)Gx6=P zx>8M8o?*n(F_Y+151n%Ry>4BSdKXXJLpM37uXh!gWTrH}-EZ-tSA;??+=6hvL8Y|@ z4{sH^en0fOJ5CaK96A{~#_IUZL~H2Gn?g#IH%kB_p`NCge4T{v4eU4-tp( z?RNvT5`B@xtUe?n{o~#p>_|<1eEKIlh*YaT1~^kL_ofptDyY%cM!lbJ{9!}oNsLVl z3QP@#8b=RSe{{CiF+1sI%VO-;Jik;gscK-ZB5aU&L8Au8jE}vV-W6kD zCwPs^ACNo7#3$q8D-pxBjYh?{ z3eWT&B{4SC2!q++)tX3gOa zde}`I5BLE)XV@d)rWqnYcyFOTw33M+@?ScO??wp^*%r{v#3pfAVHj2ZC~ z4C~xTf4un)w_pEwS*<)wC9p){ei=Let71!|+?ycV|DNFS2Oc1kw&BM?{qo^WxbX~O z*F>MD#V@wA=<1-bjB8RrnqvQh_yITnznlO+@A%cSBJ^7joN=bFq^f$e4KQj%g{QuN zvI?lZmnY-O00H;w_}JqGUHl*KRCzr}#X z|D_xc9W(tV7RM}G0fAH0eSZc}g0BF9l|snb?6bk|HjUH&O3TjjqSyP?Juy^7=d4rb zU#<^DT(?L6AtQe-xQt+Wflm+sSPQuG=OE8L5PGp128hRZfO!0EO3#tvAK+3cQ@9(l zQg)Af0=)6RldA<6IDWTXG4vNTdD^B7zCHQ(GWh>!e!qI;4?9E5*A@f5yU=RAnru4y za=i)2+=q>Oq5p;n{r@eL`QLSv`=0-wuA`Vxz8N`xGa}G>IfU(h(b>6oAgx8eTyqb( zK<}$_#jt{;F0t+@%cBann8J;(O z>xtQOe&Dg_Hm%YUlZX5{y8$*~C-58Z)%*)aomdBOQW$o>llHZ7JSu1Z;y1RmR6wZ2 z$9ra5yR}Sii0M9!wQlrml>+RWJfgdie3F2_2VgG z<69gzv%I~&xh&wT5=>{_^HfsuiS`oYjC4f|i2#{^^QME-3h}$o95gzI=x#RqHuXK3 z_$?WU@qB|Z#kcJR-~i=#Lu_VvW2Fz{!-=JQR`OvyWm0 zVD5_C0)r$Aakr)rS2U%dv5!EKYE$}G;rl&geZ1_MS*b25QgT&`)@=~`L z686=*^kCs>+uNy7N$agCR;lWwJMi82n7!$@t<1Bj^9>r}2+_$U7cWnP?!opZ0BOIc zxMw54Z_UL%v19v_%fGgPeL4}SWD(Kg|Nc<>^(WetLiV83DsdIvPnhUSoEN-%*pRT< z=ees7EgghoYuy9WhI3QmiW7B(a@w0=wRJ8{&m_0E2u4GZevAd$>+q@J_HPgTfYy<1n@YW1U3m}*jt zUUw7dlJP~_8J=*dIpvp%VTA4Q&Y37~O*Nnub+b?An~dR!WJD>Tk-XTlL&1YnYs1Ho zc36U$(i(7**z5zOb9WzN0xi1Z{41WQ0+sZHYjqGy?5n5(&k8De<;hk|>M`2awbO|P zm6>Yp7$4^kWl`<$nl|Q>uJpz*^JQK;3>8h5AAGi!b$@{Coz%r+Lx@R%TNZ(ul9v*e zExtWKfLVdB0nYosTLxfdvpvnQIlKBXPUP#%@(>ti#Vg|yx<{LgkEK%N5lPmP^&BdP zGJ3-MS&(Or7CdZ~O8r_I5t3={Zbp9HL>k@XP{?Snp;a*4TXN5h7GBZZ*V_#Mdj1~9 zw<|{=w7Gj$AV zp8t!MB3tQ=zN)pcIzY+F#g@EIVV#q`vfh<@Gmn2Wb9}{Xvo1&Zb*|ai?}f>_zv}~T zxnmid%D0YeL+#mmQy}!*Oue82gT4VSz2yN}$JNS$H>KFl07p7CSDDiw$-v!s%Q`x? zfjc(1VSXjr@K{xTD(w2-#OlsCD6+5Sk+K6_42w)SuS)0s^rO0;g)lDfhKdtl7^&eF zIjZyI=J8t;YU7mE@^gO3R{3y6RjXX*!v50EOTyhjSfw$x&1ws(SLD0FYGh62813DF zqrt51m`!SIk25+@%W|Mks$H)$ht)lsXw`H}<;7IzPgWC9JF28E{d?Sq0GRguxB=*Y z#KC~xko&_LH2_}z_kaX&81Q~-6Gr%7`VH_7(Epxe6;8kIdCwN$%T1PUHU+TDQ`SnV zhvSEC7q-OD?@xO$&50g)PdABQ&yL(5M(NxOu4Nl4=<7(YhH4yj`q|S313~8f59@J` zub4=%OrmQDeE*Bz3L=%~uj^%SGl#K=a%Rl8cQwCk%UjNXB?)DOQm&RH1UNs@os>Yu z*Onx&hXg2UHCR&T^21-99unDEJ=oES`dV8ukRn_!JM`3@!zeS#UA+G<9BCf~MgDzY z{qM1p>(I~7)9E54y+(YNa*bkWFI&Db@ZQ#D%J(_mPB|)a&nRM4tZ-s_cP?}K@WWp< z2-4|Ce%b~CE&g+^q_%k_1i%FN|7y+AkB?Hfn5rY+?tTI7*p3Phu z9x~jP0+D=(#iqRWH`IAK=W_Nc2L_XEDA@zb{MH{@TW&Tu{VxHmbLW0(XF@PWCuq6K zH#0CE=5x2rIy}^%FQ0RE*2BtIJj^ll^kpM1w7JIUt-^?=B(h+mN`c9_`WB9&0vhz) zJBziFj%5`nulL3%tYSj{aK!$!BJtSqX*Y@3$MFx|kw9hh?jJU1{9;T%^e7N~G22r8 z#fPbgTJfa1P>%`r;VRPIIzs1H?9d$jK%wP33ywYqnQ~uwx>{~i;u_vbIQ(Ydl!bY0 zHA5qj@DPVxBANUk65MD+#x5}wgc<4LAjh1KQno?}GcGo!M_4}VG;8l`8MFxI~ThOrWxo7T^ckm7l zD;~^RKMF;`CZiXEWU~+gdn;ZNUuGBg{i(w70sdpHQch`UDhgeu5J@HjapC&fV33x~U|;Iszwq6UbxG|`D>1Qr_bl|g@xUag}2U+tZDRFhrW?%_p21S|+B zAfO^uiqZuEMT#WSdjJ8Yg{oAg1(mK8K|q2?4ZTSfkRn!EAfZVYmEL_Y&)H@Na|^A`%js!bRHM$dV+Z-_Dl6v z-mUXEeq1$AS3$Ngs7t1@#Pmf%Oc<#Ezl!Y$ZCrS>IzBo^$PcfOpNxTHakOa{?bJQ; zx7%-HTv1DGt{y$)qRci8VW3cvG*8qky|Dc;N1(yV?$&UZYq|;i6ePZ^zd9tGZ$+ul z4|zaC%S`r3r`W{OpvDxpT|G%(!9kXDB?aPF1>OqX|44=vvNan@j&~w{il~ZcolUgTl-8b`y@tf9Yeie9;f>0uF zeJlm9lyEES-FSdv8W=En=I_r*#Hu0toXjvenpOhWrONdoZZ6l{z|k@Y_O|w7y>}#P zrac65<+f%lXHq10?G89kze3jYSt*9wie6-_%pcDDZs8$nTgNku_O|UEyF}#arlvL- zWWd{Hz1T8$f$m`&CkLxxj*=w}F3=|nIyVlSd`4bt33rP2fn0WFhrmI%JpaWh8pb1C zGCa~&f6P9@v^5}UjLT>?ks+(JI5NK|gM%g(WquH+LnWHJb)5oR$c@?^LzQ`QF0hoW z#-_}r(x*pANbL8;f!|=a=Ig81Sie>+FAk4r`iW@Y(E9m>|2cOBdtb#dtgb7|an#RS zl+Mheb(=y)D8h)NHQUWFAy+siB&7*@?~t~@TfcnoH+Bz2kK)IpMq^(2VVVxwM+szD zcA~K^;;FG1(nD!WPtgHM(tcuS_;IR0_z?-hG6*0=xH3bT`p`WK@&2{Oci9bWMtR>+c2-JgTD(^d(tF?Ki*(^U|ogzFf1 z$>gi{w;L^vth`RvKX$}GwqG=g+2end7I@E$%Q&z{9pMH0(b>JGkrb^XG+bECCxm+@ zdO6L75=^-@@Qpp5-P?g=LIDZrf5>=*BHUe%F{Vnbeso(#BB@q4;*n#|A>ksEEgcTk(-wkJmc7NUGH$w$?l41Y&P`s+6sZ%X z57_TRfjaMD!|VKJrmT-a%k$N-I3S;p(hO#iMrL31;DmA- zHI8J*)-0odk~I*O08D4@4u}SuSu^^Vlngx7Y~IbC?&&_jkOAj6?`nX2l|NxdSMkoCe6^WmZ*Lt$R;Tuc!=O9>qD6?9q6)L0 z59YIm{5;WNndau*A!g2eW6TZRgT|pQm#Vf+XQSdIQIT1OkEYwuv*T@U!}v-Yw={W4 z-H_FZoBBbkststBA1{qH=(yh*-1pGUYijw_fB7p)VrNd;Yck6w>OuvC*;mKn(-%&e zic&9X9_o4Pdi>!RpQo@~+N`XgATI?sp?X?!i5UpA>$Wd0X(HQI=r4Lzcy@$9zk%yW z*z+4~p#p(+*1h4v<+;N*xqk5V_nbjg0WY%1Pdmy@68*g$F$1&dH9~nBG2+jE;_7vv zmx;2a1Eu2U%2Wf@4reJmDJEX$Hf*3)6heB7Z;jf8-}X|Ssy3=M8LZ5Un2|@u>!Z|n zT{f`e)LN|uNJFu=Sx?*;WNdr`C74p8H!tb!%$^K;wL3trFMC}2W3KKc42czgrYNoG zkMnl26G z=eRRZ|LSL)ennD%bG)r0QupX9`Ou9o(9fxdq0FXdg~*RbyV+8bKoJJ4DT@3442*=;VD+yiDA}Jy*C=g38q4@1+Lo{j(sJ`*)rbxVPXcx zw^6_4*t2JC9Yf-mYr4Y^q?dd$V*Ya0E%Dq7hl3*XVch(0=|qSMUvGqHFt;_2+ihAJ+|UbNAhvx5*-lOI4wE5e zNJ$Dsx4fd@lJA+=k(tuVj;2xozZg^Ty@eJhL+bFQi2Ri4)G2S7qhMh)+!GG&EQ9X_ z-dP2JDadk9g7HtSjXR|FKWnn^je7gY4!r$et=UzLM7ih8jQ3cH082=sQjRJyh0Lu_ zJ2NI8sK>wYZE$c$nt8wU{M2FS2j-~tR$3sVH#^x2uNW?)atLpd<(Cdrej-sDNMI4K zJ7U}KKz;Y9-CVQbul*Z{V%o%!50xkRj+||A$HB}>t_9;30-?nokn>diL}jS+A2WUy zspR)p+KVt(Mb(ln)onE}m3t=64TWO21@w_K2@imw!>$hoF$CIF#2Vo~6=dlzU(%@6 zJ!Kz(5@IJXKcQ%f?8&k7Dfof!{Fnr@4P3RQPblmPksJH|^Llcpw(yQPG@8RwAp2&L zt)$>bFA+X$g%@t|Big3361(X^NPmVQi%Su{Db+I$e|BG{NP;}s!h_dt44&tF@_^XF zk2II-xI%Nasst}OFN871a^kAnA0E8Ry;)~hcxFlqW5fe95znf%USjAGa36gyMMpnu ze-|r*lrw*L*Ey|dOEZtuYZv@2_=Sh|l7hPtog}CE802TqHnCDOv{lGjtY#<&t*4CdmboKg64(bXL>Z`3_o|O zcX?oyOdnhynU6_)0M9nSe$p7jq^~Ea9nQMWlZ|!@Kj&P0vbXPipM6P;=%*_Rl7a(= zM4b&U@!?}8ZhgVJgra~BRE#M`$Fe5=_knfwk>&X)P0e_o!y5H;BcFZj#n?jZ8YX$3 zrQL2~G_@MVK+hh2qSjFn5u=YqClsy=oA`66LW8G?>d*0!tYFO|jmVAXM{dEZiml)Z z+wDStR=7c5L%KXhAX~&OL zhpOhX4yo|pJJW8_8;OY$gTpoSZSLN#`ELA8t3n`dkWf+X?&-wGpDHdV#+OsuH^=n* z4lIJb(U)C>UAg#m#KVmZpngwK+K4f_eIlt-D@EnhHWeT6o^EJPRzgD8KVv&jPZ7pM}B9#dw&dPL@(sT#hLQ88@YaH{9IcLR_pP?(Qy& zj1_M9{WKg7|8O{x)*q%KBbUxC0VLAhhmlY<%)kvNYYs zeJvGy;%Tu6v8|FHqUmbODHv{h%N)On@&(gEj!)-c0A$1xEQmJ)hJ}*$YM9j&vrx(Hy1RM{`FNmN4RQp zvQRb(75aUD!eU6oFq=(OB?VwBmrtjkh$0^*sx*;c;C91r(oFnvP1@Njk3Z&qH(+2R zvj7f)4St`^NH$5xPPZv3;vWNT(2YNB_JP(61OmChXy`Ay@T+XZaN1O1{}CXF1F_4$ zXxJn?uT;46{r}_({zoz?#JVK;pE2T+c;AQcoCACAf;InQv?TN#q7}Y#SVYeM2C_h@x9H?0!mo297#s79(fH-{5cE9D-2KnMWUi<*{z$J=?x{&+s{U;@w+AaP z=H8zdzm^yX4qSmaYd0&l9lJfwOg^-gZgRTj7}xeE#QgS20VJWCfSY5xCHQ9j`;*uk zT_#(--Lr`ATlGMvN5-~ZR|-r;0Q7TIA>aYC>CD@bRn<1-d<@B!RLxO7ceLK6x`!jlxj`Faar# zlS9D`zXg9U^{z~@;*T=|6*O^ zG*Edd9S7}MIP+`uZT>`EC>Hh8klUiNXWD4dr$NSK6B`@Ql=_-(2BG%?Z`*d@s z>sw;Z;Jm(VUU$(GT1}JWp5iXmmO1g>itlfZAeMp3b0iVJoH0^=?7i}dh$hFX8L?{h z8?g+b0up8?`_kSy*VnU_OSp(k`N)uB?kzs7+h5x>SNz9($X$>~cfrxo%lzdfQ_ zcB)YC`|3_i?p}IOl4nh6>1}%%y7J7&#QKxxyZ4cP9qo5N%{2!MPHKVDoJKeMdsz$iW@w zYx&97MFP#XGO#eFW=j^9z&*1*USAw|R{GOJEbC=w=PzLn?~9iCIpq_! z#1(=Y(Z%=rK4_HaI7Rc{8V$j1TNf_+yb zYeh1eIomY4xYIatzHz<5=%dbyN;%u}jbt4}ei)T(tqjYh3EIy4aV|ZDit;_`cp1$$ z3@T;~fqzyydF#QcKcLMm?--?}PQXnbJfWPBj*fY%+4I1yEM6j{jJNq6JaM34g!*nv zvu!;%a?bgsy3dJf>C+_Rqr5GTyk&J_T;zCpLIHY|x-cn0FsABf!NlSCss4K`n7bO# z&k7x9q%zx&9LR}49y9#j4TD@e;YBvh_jdH61e8j`+4-(wcY&(})Fb|Rz^x`@-JS#dQ-;ruPXWQ(rx<_;TfJD`zR?m2GOx z22k0~eMp`#U}0R)XCi1EZ;m zq>^)$-5)Hd;6)*o=Lf6B3`IkbnRZ8v4}EULXH^z2badaYaH>3!upTI@ECns- zGo<~ujxch5_1=3{!>M5(O<=hGqMJ;{S!|Mi+Ho#yoi4MjMiHuzm3##`~Bs9@f=^N1&;mb32;uT0E0JM5D z98laU|1Y>p=tb)?R+{14$xqU;v&7z@@XUdTr2i{@Xid$F~ccQw6nPx(9z{ zfm6W80l0>W1D{l)j(&Z9Sc%Ph8JN6gs3z3!8aLkdO?)sK2mBnQx98sjGgkue;=DJN zSMIYImAL(ZOJ?ET&a=MKI#f=i6OCERfF~GuTlneAi(l`ACrI4eV~D=s=7~U!tj{(u znT_81xd$KvcUBJ7ogPF|<_~UiTAHnz!*7qtB0yol36CwHkfk0h{sgjo@t?Rh3IK=& zk#?zFYhpRax}F@!O3S>1l|W54Bl~w5>o(cQYATbBMm>Osy(>WArqr%1d?>HQ+53>b zxqh*3=2_MEjw~%Aj;y67z49|kO$NXIBV2m*tI5s}snb0hw+);IYFF|cLE+{4=fJB2 zcVL2(=yZ}!1<_HFMOQUtIMvFbhG7ZVEH&x9@uNTTPZe$HGt3| zQi|pamM8N+B7C%OQYWHFGvF0nS(rf(@YuCZnikZFqgK+B= z=jpGn1KE7m@xX56N0^jD^@=X_Mes=Q+&+PZNwt4Wj0ce_?tIj`&!2P_Fpa=31hh~) zvF)C*D;)uzBTc}jHrw^(!-u?34vXJhe-q)64@d9^YBuvjX~0&BkbaLDj6} zU*1oB7YGKJAMd{;X75+-Kg^QnKOZ1A)xT2@B1fw?GX^)-F^=BTF;yvxGtv3u9a&@e zcoRZ(=3!zt$W%P_?Z`V4@pQm)N6F$%WHwTYYm3XRR=9@N4(H)Q**074H-v{)9wlzQ zPNeGIEKR9h*(^ukremMm0Dne>#Lb~umU9k;4l~iR4|==_i4^$lDa1mrIKhV7$k-;u zJa-7+%|_)f6qlhUvvfjsjXC*4tZ;cP!GzFNuJ*EHzrcW3uF?Dh~{ zI&$LF5DG9%LV3Y&iOSt>sF>^2w1YHoR2raxG%+Xowa~C=NEWVFKKE{6CfH zLSHs@pZmOO*Gtm(s@uWW^ZqPMsIF^cEtSSzoLHR^^t;dP0j_2qO+)yt?;3d-{GHj! zxT8Z$MQq-2QSsN`0w=8Hkm_YME9Fd(?O(Yw;UQd zvry8mqZ&$zmA4G~mXd89SjB$a%vGW}>f}Ez{QCA1z96FpmqYk|wB+Hs^o+U^hN^b{ zBZYbY{KU`~l0NjosZ&a0Ac{>uEA+&DebC5@pKZk{j-TBmaqg&4hx@M7b4LojTs94C zV=Wn5Rw8#>F3BNYpjI9s@D6^FNrX7?X2LGku{p zlCP=vcDaB;aP5HpK$xp~mqQjQKK!WcX84e2>GJ%z$(0A66TKJMaGwag|A76L$3Qxt z9k!XTPbtw2JQBJB>#Mlqs{mtWKqVL!oNCeCl)b-Id$bgvZf@l;rn_-K0#?M&r_gzn ziCE)qklik3c>#YYW+k)i%J#in3@nQmr;^)<)``FW#}ycTg}gmuZtTiKtfsyGywAG~ z1H>uG<|9lrTu!6uWCpe;wE;*h!^uo+#l+>KU&-GoD_Tkz#T&=+ zA|I3xfns%uv!#%kDQj(960w6@XZY<-US-RacURp#5_%zI(=Ig(m&-D=qeU-vZ5=Gg z8L{z`ORnC&-rb*Ds!{x9RN<(w0=lF$aQI?^qEzlgzofW^%{^!-T)*VQ5i54BNa|$g zGO}R6f1^^Lq~#n-0nB*=mi)d*wrbnXgl)SwmGx~MA1^^^#f#SUa&8^BMleBb;bd2) zW6r)fZM*bngVMi?;8$M~7lxv37wsfb^0}$gUNP785{Byyi;pqqI;LC@d0(+5C7Inn z=UhF<#K>^Q(M=}>vT6Cwqdb4ASx=g~tCt+J#QN-)pS%NN1q_z_>!pib#}6)@IGoyq zdPu#Hkyte(=FG~K4L0;XV>O1(HY-z|G=)JXK!EFrfNj;^e??*D zXsd*6o=@-P&C)^J8iFVXfiFZ-uXK~e^fQma4$%H|JN!ApM9q6^*zrnwi%Z)V7Swxw zD_>j5@K;Z=hp1vDZVAj7RYux!F`8D(Gs*u5(HvuJ7y``xgk3@e47H1a?{sP8UYFMW zYYsf8BxE0M6=Z_H5V`7uC~q+rl_@7nW! zTD-`c8%Zml|Eg8fMNzRru5UY|kLgdLWgNiMkB=|j_=SPz$g&DP8ulmQ*%Oj4|^PH%-sp+j*A3$K+{ z%FHU_XYyCPecK;ha#9*BG`nL+>DM&bg7^T~Jq`>bCZ-`srl@g}C})hy^a;F=Q$z1M0z+gl06nKsUwCkcx~{rASkZY`xFn4&52EZ{Xr zzPA-(C6nG?3+(C4u7Q&0?U($%EGoF@yVUg@w#{IZn#uR#_(4&&&_?ziwAR=UiE}fA zI<}!ram1ot3U4(p)8@?F=0IaZIMcUARNgu2yV|88|9}lQW}flVE+F)*ZBNX&=U?go zHPXesAA1an2Q!ykPSJmUVURGaJ_TL${0z0;w3UjDJbKIZ{rSfOA4r~Tqml=I&c#YI zPrNoV-i5;#Jz1qc#mB#}PEC-)u2C?q>EWvg2Z@#IeRy~IF!jB#5>mU>B#0lVYQ?QE zr!GSBb^vh%PP`zbQ76)?09z3yJ@=S&H8#MbeO#kND*v-jXuQ7PrVY4G{5@gjRQjkyPx>*Vw}`MPDQ1mJ4X%f0q%L z#kbe;Hg&%$W;?;puhM8?EW5fk$T;dKh`_bhjHx+P;Z$S^t@XSqN_Wxqw&sFrY_l7w z1rp+8PW-{WeQX6Cxsp{PpXDbM{T8u4!R8)iyh3#te@U9E49P(2+u6rLf~+~wyxTPN z(TWA9E9qj8L=clTCK3>iBTre=h?F=OcfAy5zEU7NdWw4fe8O7H5W`Wgt~ta4z2o+0 zjp$SnOe*IKED;`a(9ZvhW?-vqd3JE!qYM%|wrw(->BS%s&j7 zR0`e)p|AF!Hexe0RE$Gy{z+WCSMJ&JnaAYQwDOoX3>>4ALG{`xEF!z3&Y;xBWf_yK zfGP~y$Hg1kid4`$>>!R*@+e! z#dIa!16FIJWz+c^Gj0jhCYIJ#+tz6|3-D|db7n;H?(JJRjK>JgMr)0p3D z0{eQQf!X?)32B|5oWM6<0k)wIL5N7tX@-DAentd+2l zNQ}a&F&K#IdV5oxuyEa`ZRItLGpx2O{UL;=P$YBP+tig$Bdp3#q$PAyBk=?(1Agm5 zqvW|~QPNh$OFGnr)m^+*A_S))4p=lpzJceN<5#bN#b=Vh-8+ z%(!gj#JAdNJm-d_R2=pVo_r%iA#Gstd66nMUpiaUg2;@2Ve@veepc4tpfs_Ftk^g~ zMYCODq2nAF7AAl-PKj|#>*3+AvA;p%(JY`;I%0e&*paBwG8cUa(j_oP z@nl1G@dzjol4^g#;euDlKH|t$J|;@PTC8s$B{RoT8V1gGO}9#K1Rk21q6z0VhPhOr zg^ltj?yI1sJ4v4W1sl({euF{z>nm?Vm-vXf1@ufUfeit|cs!|VcOt$y5x*_FIkU_c zT%>f#lePZzb~~-|<6|qblgkhqMR5^L$<6V$Y&(5=!~HYj7aG8BN}c3RFfT=~6)PSGQLw!#iOjxy7T-W7_B zmmS8ygVT8hQ_BtM>Q zbYHo0b-3tY*Om2DHKd^jEr>MW@h+D|bKGLms~D@F9=WP6**b1#9lU(3S0dwM*I~43 zk0s_Vx>y}?9TZjSI>qHay-F}oO`7o}Fc28DE~oZoU*+K=c7|W`RJp2ZNbO8W3}?^f z2A5VOAjlOA=>Q$>cMMtmYt>~&scmd?`5A(7RJ4Q_1qgXa83$kg?L%ipJol&Ri<7$M zV~6au|EYf^Myiud+*`xy=q=&y(U^#?LMCOjQwrq*iLL&WhvGEWn~ekhrrc0bC= zsNcyok6#=0uSqUzFO0D!|J6|1dwB*Cvi*18<=x9oARq2mfCT+sdZp#+ z{>u9D@Lq^yd1gOGP~F`b9+MOP6@2|aU96op`nN*DtaWz%ou~Zc3eS#X{DxQ%B($)& z`^<_uZf0mybY2)*zfkToss?NZhN>sV2nJibo38TLnBZY%<&<*M?R;hkFwc3$kCu za=?Bpw@a=8sjMWse4^H?GtlwM{O59fOX7BPX11oA%T$4`NZmEjPdq|(LM75TWyPR>pu&Rh?eT->}xM5fB|}tB~{pz0;a$mPBgLx{}%PMY7j^N=-!gm&IX2YxeO9XuAfh06V%JAX2W&mS_b$LeJh(Qy#f zC-3#X_GnU{k3+bTlZ4p;8xND!CPbkEx&G;oA(z*9%iguFU#f$0A4aM=X`V`O6&0`R zv4_PX9l3XU_2Ip-Fn~WY4-S?}Poy%|ibZu86}Ap_T*=V(NYijkcboc**wjPCt=c7o zCq#ey8W33!BD=e%eGxZ~8Kah6ha}Js)*UlKD|Za3{}0rpSwxs_9sgoR=^z zYa0}PJ~eT30y=ad7V%vR;WScP;}(kMS_#y=U4Cw31!59~Eu#YEFZ2N9a+;(1dOSGCj_km~^uI_$@#tDs|-8Sj?Pl9{IP zd5+k^$wGN8n!;WZ+2I)T0VZA*T%N6~-Q$8UkJ3ZD9`!!$$Pe!gup^u3M_=x%04KLy zlt|-J5v>euAy+83R7tUvWQp;c+I%Dn4-dKvWdczUY~AvBT;~GK}F3FzP}!5#v%- zPQEsV{7i1^MeGA4FXZHGZY8)m2?9WLuAa6MHY*2%_i?J94BixjtCRZblSD>$Cq}yc zL`pZwlVt?dV}anMr(KiMwRqgx_PmHztl04`__~0Gv|HV+ul*!_{#McryyW*^_Y1d` zf*YHpG@@k!u?Kq^lwzsehU10nFe6Z?)e8?aw!dgt#kiz+UW4q)2h6d&j_``zDfZyr zILZ^N+YBC8wgd*BGszB^Yx+MO$!srP7f(YkZ5X=Ji8R64KLrj0|{*o z?m+r^ATN)!>vD$102`Uno%xbh%#Y`)eQ}1B11T=yFa5WepSxM;oN(S&07%n9+*M^%H0+L;HEux=Tp@Mfi>ykJo;dAvW{04zNdMRQTkFatBT zL|i0#Z~eXk_wp>nnGvVa{Qurky>|>^@N0WbOnrc02DQJI|IG)q7NmBwAOCofB6fbM zoc*k~mzAU1%23T>MoP9-&D25JwL7vW564EVE*0Q6r&1Pi-J(MTBu?5OzDwXLg9u8c|05`_G>=L5gn&&OPV}uff}E zM1Luu4;8zchL-QtDZ{--jK$*D=5X&u7*N^4lUu|bj$UJ< zvIJaxq*3#JEfof$B$vSadsS;2_<>C1&_QTzmRRD38|D6n07Oa}giT_OKiq4rLak>nv57!vFShks^Av3%0xr-Zwi6^579V7K-@&Qwxq_y`Jq`pK%L>F$BkB zn>?1@0-XuJQe8U9lU!_v^U{$IBS{59b6~eeQyLFcrY~tWE4@FL(A13>b9IbP=*)IS zt*qcx*i$KlvS}x%+f@Mye*V?a_Jtw-&u2<*s`<}c$#b23l%%pP!84#P%h%KHz{PfO z$V9Ki0Avk(UmdP?v$^3Ny$UP&3)tRH4%ESg>rBLC3mLdgL# zT-xl_{d>UGX8$#Kz5!Nld*2MN`BkiB$cZg(7vC?E>$cXib z-T~ad)FPDBkhLPZHk2! zJ^*FDB}sEy!N4^1?-1_bq9e5`aM6*hv%RSmipGvEMihl69T zCD4P5j{M`L_$Pj*{*>v{fxn&z%Pax_xq_K;_jv1DkEHKsG2VZi(fhaOcac%Mi2g+-xzl~SAobw860BY&h=HCU_gxK zWGdFkXs)7MZZ5ktwbJ_r}S zJRm8t)7M3m5Apmy#mX5dFy1}iasz9}XKw1_Gu>@7rcuKY`}KhJ%5&=z@6)ow-oA zezCSe$Y-7+EBuE^9oVDdff{VF`P@*6F5MpM{;c>1kXT6arC?nB-AM@NJNgg7^=&Nk z^)?(Qq(G*6_e7kyq2#{Ma@kJi?1t_-`|ESc!E$+=Y-hDPU|dpbwhDiN-Om$mDtcnB zn{2oNV++MA#kjqp+eq#mq(ZnHcxMY)d8ip5l@e zEVshL6)S;A=yWcSQ{*@0bBi3hqnyXmJxG^=3D#*0wt-hES!D2x^ZGFM}K;`e>|Pi}MibMcex@a4TZ}`Q&@us{f8l8R1FW&=0KK{cA=rRbMlf6qD-cU&kD?;8<{axRK(;+d=-UW zaQ3af;cGM7d?4cf6}F#wog29h;as~w7yw6ogz#EHa5)8E#gPjw^KLyPjs?gAUfIjO zDnfNNiYidUmQIp_6o;cWV^);lA^X#aQltosR^_Zv2|yhBE&w#X6|6O)$ZFErr6gh= zB-8oV@Jef8G__Aph;{0*TjbY@++HN+7~YTcRKN*QLK@!V3Ae5CYrYfH85}L0u&L7N z6u%BJYoFXwE#dW0w|plrf7#6`#HuvHsc*)~END25^2-RqV=KWUIYNM+$@p%)fFBIe zn<^#4KyWED!Gz4V*;^SlY z`FKx4hOGW~WlXPB_Yo~Q$KEps3|a$1AKX1ync+jt-q4JgLx%q~BF{VXJkzqQr%CDk z_e8+Q=DduPVq&QrC8x7cYIS?{$xC}Bp|3z|dQc%MSnT8FOid2*b-;#XCDtrgYpw^Y z;Toa|o4wWnsfK0C28Tybaa+tF)0X*bdOUreGG_EvWZ=Zf$cLRj4UvYn`Ig}B=E@>L zQCsSX`|4s1Pa@HppR(HLg)zC?bYe`#N|eer>TaV*uZ++P8|MUQYu52b^7Fm#zW9fn zRvWos9Q4#eDg5?qH@U^*bQrn>-23ba!#d~l&LjytEA=GXx7j#c)o@$RTtbpq>a;%) zvvx9DbqRF{aaOmFHo8rf%1DkfEbBL*4Mo4@B<8yne;s3IonL@NIVtrt-z;j5Xs}@Z z!VT}zZw$AeeZ_B};B%NcR0ndsSh)L>rVP)kEF#LSXC7+s)6qNeqH<-#MI$D&zPf_a zMsk(Xm+&k~=m=bc|B|y3x~&I(W6SP9QEG;}5lk}`i7qaVrfPr8%QQeYmISbA3W8~d zVOa?&YXU&oL6S1`SA49eCngM~DNOS{4*$bA&Z`ft*9}1W8&W2G?hPjG^!E8nxdmT5 zd^1sVClon$NP4aa4{9PwAN`0E2AF3vMrnR@{bSIiP61s+lzx@7F{~!vvoL*0#5#o= zeJwTq`)O@M`q7B8wQ@UvbTt2UmE>HAkL%ffBjcLW5MIoYW1UJaabwB2Rz(?5{G9#Q zdJWB+&9B=x*=^q9aitrE(ZEj$crZqKh0fT>3SITU=kQ(Dxitk~+2F=K&vs-+15Lj_LHXCadjgq(s*K$X;GV77}md9KI&n zm(VDiiMhf8x{zdRK#HPhf|cW?ii@_sO5&h%6Lk#?U3PJ0aUL=9sYFs7Eaw{g)5rW| zqow6D(ykIG5l>JZBNk%xUADzKshTIETOu#Cw@o*r+RC15#KaGdO2(?bG!2lK4Q<7O zw2iy^*6TaLM7Dna{7{N9LyVibB*{hL8OUa8sYopl#W6bgX6RyI{##Oo9!x5FMvgNp zeQBDX^JI+T@?PoA+BoXLdW%NTn%sgdf3K~Sg{+FjpNU0L3my}aRXM;eH^>wGO}!*( zxlm!Nz^geLQmn?&xRM~!ky!D?O{!DauEaT-TBEWpjMX0XWr04mi0hhSH^Glnh~BK7 zqhm9-S?sQj(qo3_0}GfYT;Y1gN0a-w=HkV`BOKRjsqAjxFxTs%v)p^E$MDSx*vBUh zTWNv$9v^d%-#sQp3mc;?04q1*o$jNGzc4<-UD{~nR@pC=Fz&;JRw z=RY<1f2t-sNMsj2oB&w(W#AA_yd4r;+56HN?cOv%GzBFg>1%@CS|sfGTK(t7%KzM0 zxzj61rVspAR`_H)AFNZ|^;7$AY9e-DQb^`CCPhG?dE>31Vp4)1q>aegc3tgL=>bq=>h`Mdkr1w z5PByB6r_dF10*ClSM>IIpXYnenK@_X`{SE4uQSe-%Urqk+H0@9_FBL7TYh+~rOH5e zi4Ft;F+5be{{#f020oq`JbePV+~HBD0xneUPgL)LijbVEz|AS}UCp~7P-!^*@iWS! zXI#~c+(DpoZIr)Moi1OkL7)i7hxhM3^)}x?F%DXf`Jj&`?oo-_2`$buWs80=?1=mz z^vp)1B`mpBr#rhR{ZUz2K;@iqw}{ad^|Ljcv>Go%f5>!vd-A@Q*)^d{_^dA9GY!6* zfe*|x?j85C>5E$y77nEuoqk{ov9@Fj9JrE9>_&**y(f=W+nmLX-T~4Dt>( z8eyBY%X8c*=skG}4m4#(AWMeF{**a^9A2L|OSu}-Gg(ru&BmWWCn+DsPf)W_t|csj z&6KNuAMcTLq6pJ4s!*L+fl2Q!#VETf*gH&`BgLrt593rgV0hq*>9?_@8JP4qLKK;W8mI{IfWR> z^%qOZC_q*7&V@U=^o|mjM4NkSM4qC%zzsFKkv@=f*Bv}D^6`qWa=A_hK5M0&C@e>& zI#sHtFt7q~p(pC2tnbbiT1$I|lV zC;Q=7<4xTj*1eKIgRl6eSLF7JBSh=<8&6BbzjHlWieLY6?}6Kxp24cFke%0%3pC25 zJXRYbLWpeeoN#2@>M~hYMm# z=%u6Ys%NgGc0D9VOOmeSKNbbcRjQ#6+X3sd4zNKp)7RD*;RJDRlbwLpl87cW1d-2x zq&an=FY4(?1<03e7<7|G$E*VE##F3(X0R(Da5=xe)FAE2sRF3872k3B!gc8@fTLmg z3@ZL|omys%xo(nc_Rbdtfel97NL3WXs=*Bq!J@IUt*X~+ zmH7#^jg^9~Jf^ij!#z?gkgN8U7{(Tfx*Xuf$VCm>$o4#Qx4C6@+laiDxqhc3&K4O$&=%()QFqOe!kNbS> zFVu!uyWn=Zo%q5}qsGQ(nXSZ~d7v?mm+zy8Y~HnfJi}h^oTe4IR~>(~>liU>RQyIM zzkKc*Zsp#)oa)fqMevr(=(uDRNXH@`!st{r>uP_`d`96}w!(sLbx5pb2xR)4{in2eyT%0|EHA_%*3Z(*@ys4cL7F_*E7~#mZ<=NzO~3VXww@ zd&}fYb;YXYi`aZ#5+*YzpUJCM!+Zbc+vG-B=col+9ITuvHxINuyISyK9|cTf$O3w1 zCWBbMl60Nm(N$W=bqutWohy%JPp&brPNoCKNov+Vbd>KUoO%#-$|i4ugNZIjyXh}!zUgoR$%__08WuccGUD~b4JSGj7;dcJ}1X`7_gU@ zjSb-v0B2PI9j#y@9Dxr7^#C(5y3vM$I8)8NK|Bu&naSA{B(ZyHJFan0UonA%|IGVQ zVDQXUU*(9w3hrDF{Tc*kfn}B{QFGZB!Ujp2{r7%(maGgwonJv-;W!RccLK-R@o+~^ zA)^(rtVD7pA8_(DL2cg?ONUp$FJm#1_*`Ube^CR@xQT62v4nCK4QZB155dZhoDTCt zkF>=2C1;(at*Fco&91Mvd+u?yD`jFoXrh#pFia|AFT?WZ!|%qRuT{N2rxoJP(#jsY zF^9iL*zMc7hjP^U=O=)U5{l;Uan1w2yo*VY;MF#Kxp3PWthR@-Tk(V?UjoNk)5*i@f4^L*q#tVF|IZHn=JU;V9P%`jEd}ij1Z7A*x0#eG^pVo zA+ZksTtS4H|M*LO{rz+4Um_;g{)%ne(d~_T zGwlT1QLTI)vKd?};haZtYJm^qx;MGy?rPoFQccslv5az0>M3rWFNi~5dwrV&n|y~m z(#q4s(G8hl{S+`t>!OS___+sj5kP>bp+aTOS|;4EUWBktpM|Bd%{E8HR)_*&WMp`k zMqQBGi|L%D`p0o7nD)chF*(D-Hr+I3&_C8NmuMyRchV)JH}f|2c0Y|;rae>YK0qh1^q7k z&VV8TgVh0M0V)Tww!)gj?;(}ngS{GeQx@E-I=P{Jq>nH6+NvoJ(CPTU);Dz^iQIr8 z6%J;%Bugp(`r;lH&86pLcGtC?UJ1D9kxM=$I~2T6MKkTTHQ&PFQvVW2Y*^D=`)^H{ zLN_X(S^!^LUit3{;A}9tbXA4&N)as<97>ocG#w;;H-EDfNQJl+@W;CYO{D$eO~3UE zz$5-+dkttp1Imr3|1)SpVB_F$`^PXe4T`M=r@?TmIceCr>y%gNv-40_zdK=?;D>|m ztqds#o#T>mo!{={L07w296%`fYe|n_b74Bj;Ht|9U?eWZSBBHYPtidlJ0p!)SPv1V;0;+{d{PAp-wiHw_ZX@SiDqNL%vD*q>c#af3c>$R@)+h&EA68xMnlchhpBKeA88xDv~ck`nj13%)rMZA)^ zM8n=N5EtQV=Ioxk;yeh9@WVFLK@uL)SfyUn74_)Q?Am$*9jH0)Gl;U@Mh?`5EC;AA zsnE@*7tC7n6O6y*=A`1APcqIzHycm~8kU_>4(O2u1z>54{r2+_K`#~_^?o|R$;6Ul zM8DNlZl2mQ;~n8{&rH8nhNc!X9Xu2N3e@Zy<$0RAMu=&?2S_0yFN;-pZ}OTYP46G@ zkQR924CqlNhSTch_`^=6B8&J*AmQQE%zj%$*qB_51Z)I4?x$$szLjHh+0)?>6{KP? zzU+9W=B>LueJ!uM$sFQNh3j3RW|04f^xt#%L2bzT4ga2KoR-pk=vk;c;Nd8Fi&I0r zy{ohz#YvMBc;YtgvedXLjcks7HE6&$^u=&1br!JbSKpnOy+r3~6Uu6NIebMx%e~_L z=i|z{#!Ztq@+f5u45t#;8jsGZly7&&0D7+`H!4~zfkk0y7b&k@HL5VPV?}!vZy%s5 zoT2c(1P)#f1f!%~Tzp58&T+}@Nhh=ZeEe#>$6pRWx~|dV1r9bK33)#E-${>W>uVL=sq1+|$7* z1IFX&!Gi)Mn9V;-ASJjlo&etHOVSsrT}G2|)xF$}xXNPKPsy}x?Ppg>PNF9XBTB@P zYcEn3R%(#B%;pz@Skwrt3`0%SgD~W__*Q2&`rVHQZRbhU3=I0kb`_=WwJP1o`P6d& zrc!Z-#29&EmI+X*$Tr^~xRIA9a z0JNrScJmEp(j&DTe6#cZ)XZ4bET#yLbprndz##v!3_{Z>5fcy36fsOkn8)gEX(Jv2 z%7m3jl8O^+#v4QJtL~k0!|OcU`Yl0`8szr#uoKBxbsi%%D%`TBwy77J)}W%ylbd!s zh3-n$1JkmVl+p3F9*VHd6JWqKxjG0o$5xVE{JH8(#iz_CI$`wd zMk+ieMs*L;axGUhGQ=`&M3u3#E3l%jV<*G~yEYYna%l<&A$IXz#vGxg6{ zFR^n8)(1a6YUW7G_1g;Y(U(Y`;dd|kH_cC-qH}$=9-`k2^RU5emb>g1Xe_sG8@i3_ z#Fy;;ZNZ3jZ#*GNlhdAibDWdfu+z~iD*#YA3$k8Mv{~+_hkA7ZD4wal7EO(u9PSm% za9Ff>Og^E4D5G08jqPIuj=s0Qcdp1&f17@LczFKGx`t8R=_&xUgH{r%4#UB5VA;-(iszZWA;)WhAWvp!HF{5523>R|nhdDE)%D&~o~>X<^Q z5L8r*u_vJ;MpA5uxm!O`twx+wF3f3+W7o9m?hSMwhwZ+Qu#jn4NesK7Y5XlrT}zd$ z`)G-Ew23$H*hJ+(b{%o&Y*@efNTbji$ILwS8e(=xcS=^GehPq@Wq06Urul5(fO9AW z71I^k2QW~5x;6(K)D_{swZ}AHyQ=zt{;2u9p-w$;DBE&U*W3b}_Aex{`RVV2_v0_r z`VsU0#;-mG%IuHoF8%bGe_P$K;e@&vRKL?=aIEr+$@Sq;g4dW+KmW;V?7vTRV8Z17 z&`_|HRHLUG1fuPHJlh@4gPQbqKj_mq2Dh(raD*Qy$sg`)S0sOh=+ERNyYJ*rw~e07=phO$iyHCv#JZyG_4LA{(U(!wH7){H*ft= z`?n4KmuqgWoBG2->b^70KPbR)&gg{Fz2`R zVxQ%Dg*;l#Q6k#aUTp0c3Vr64Iwy%lG#htV2xPI2Cd6S-&a`P-jbxhYnf2G0q5Zf) z)^m+RWgL5}h;jSlG{zy4%AV9V?R?tAe1*(UKi2o{S{gUqV8XtSABdQ&ohGthL{@y{ zk@aW(9qE;gi8W8FIN5ln#!4lTlIHe;GE!1RoZ8DtyOw5U_vuA7q$0q|(L+mGhEprm z3y~iCn=YTx?>uvgUSn=NWqkzG>q&=dWg*raL`hwhl5c%R?2>aqIr5AW2g|01BR9Nt zeoA>)3o1NE*IDF<%co||iKYKsJub(=}8`4 zG|2(2S3f&vqmDjkJeca{;WRk|R$nIVKHDO$qa8^;3|b*Bi-dYDFPPzOvoxnFG<# zcdvWsJZZcVsvkV`M#z|l9vp!26~y;FJN8wJd+yFU-x!&b!>-x;*`q&E@vkrP2RSxd z8GTOUh%9ZiiqRS>1KNfAiec)u#6y-$v5hl!XP2GXIeqY#QzhhXEeF4KsXVvJH$Fc} zC#x%mPGekc&M3#ZRJH8xY^{*|0K zdcsf1p@w~=O#D5QFyVIyZJ+cWW<^qu|FmB&e#`u^TwgaJq}Dc)NiP%F*NsKYdt${Y zk?Ru>_ISnbArNuvs0}`3GCkawMxtj{9UJ$T9LYmTqrs#M`q=lgb4KWn$X|OXEh`zX z-ubSPiR_O07Ek29-VjHjwZ4YTFOlW0EmQ1+e|hOq@8`&0%Jt~e_ibp6gB|#w`8kr~ zjvkz|%=+!p9X;t?aaMDU;BrJL=~+n=pk1LKqB0&YIpc2B!H)3WuGd*BPs=8ov4vVN zX63i3p^f|5eQuuNg?(e)Fr8FA25h3@ta(iBY7tA>?NIRw<2BR`L;n<^OZB{W(Hl44 zxmU-0oNXc#bw!%uJ$y&ZLYuaeg;F*Lg7$V)!Vjfq9xcae{Si|gsqvr&M!<16*Icd> z3uy7Wi>~-cKFQPE^EOnTHzL|CucYn!eQi<-v0b)rgr5}6U@pn(jr6#s z->3+Y8cb1L7n_0CYTrbN=iZwKUDjh|7>hpr>yhkbvB7e=_#k(f85=QM^0(x^L=?g^{) zWrbr4rr4I(xkuS5G06sp7n^I@)#s?E?ASSL8+*unT+R0X$ga*h|1}H`xZ+BsEl%R& z3bI?4{6l!6Z$yzSChA_C>B7Oco+!cFSs{#wCm!SWJ?J|V51+YAx#La$9X6LgNWRlYBUnA<;~lK zT;fY)k!M>7H|@ef)Q0wVwEI)FyvNNiKurnRj{~ek7PNES+qocLcRcZ=eHSTmJrIkr znqg(%W3DS<<_xA!$A5Mejf|dqRmfkIJF8?>!>pCym$N@ zI0e_AOi?unZix@6Rie^=_U!WTQoN%0dMv$o%^ke9;j2T3Ti0t|i^s;GhKKnh*JiTA zF-nNOvQ7p}9Dh!BaTIMOOI&d`#xZ2&A|o6b&i}UCc zf?vV(n-+r3UC~>G#wF*v$0AD0oh&2)UhMIqWk@ylF06k{Hu;7No>Tx2c)2>ldU8f( z{*4WkjniE# z5gfYYrNBU{;RAs_N&SwUb^NdEFATHQE(;8TMcV^ z#lIIlfoVQdHJtml_tuaq4{WQ2)@ySPHse%{@?9^KraWxORXyw03t(B!O+*|8rQ4iq zpgqSa^XhPG`$wlxvnB%L zRKg3v&el3i6amrNZVN5XY_$toS6jhzvFpNbYwRX0OqN;&G4d$7&imJEbNd}GC_r%( z*k|}H1@9{e2F70|5jM%k%SugvpcMQEzy;-e_f`N3#AG31hz3aWpZM?Rd|u+>WE$G~o8NmaNIO>H3b@5+ZABoIM<4%`KB8@A$N&Jz&EOxM z;Xv5GI{+Z1KADjy2l670euNOBhMrjn)t>rZUFlRV`hJNN} zn%DCLI4tIvs7mi@q4}uRab}B5sB`fZ6MESl6Zs;0s|S}1Go#cjNG>Y&I+Ou0t7m!@jFdK!odubLYDDs#aHXN)1;IRyVnF<0WJtpRPCs}|e zf~lgxPw~tWyHpj273#iY9;N^+5ugCu;Fl=OwVx3p9!1;9Ix1?Hw=+Hil=yFMVbgu4 z2BK{iQJKKx*n$88O2&y<1-d?@->^)=2~lE|d{$`a9#5M_T1?n9Y($s>`!?SgOwk`M zpgsgF3tzeg2q%cv9Vi#%25H%tYP3(#*(?%WU-_drWk*gC{+?Ja2NErR6SpG9$J@q>t)JeY;reK*2~7+rzaVuUSA8cZM|7t5))-Lp->AHC5?`ZU9P;Q5_BGEs zMF$@M9eg?Cq47f#l}Y@f>6zs0*yVQH*d*TZv$avN(%roCaidPyfYAF=W|886*u?LLnzFGqjM$Ms^B_qWRWoMo9XTtHM*f zm#x``wd-I`QITE)`z39SL&w6I@3|lgFXa1*KlRidE~53W@_FI4&(qu<$yF(PiE zYz-Z%ah~vs3?72V_<@0$r(QP=Q0Oj&t+vuj#AK==5CGfAksSHF#HTr)LOQ_(K4Buz z&8V=NF~O|u;cA8txP_Mho|%w*JPrRv!53 z(#d{*#agY6KR9uNTPSO)>0Cs4N%Y^k!r;sIdNt`?ufQ(uGh6brYDm5BDM`+DmI#VF zQ>q-5BPG$Rp(I;81I*D<@%LtnDJVo}N~>tN8o?dfrkdbQeyLJ5uPef^wf(?a2Zkt~ zJj-PT6x1_Vd)6$-`L~}u%@Dt0#((^_u<&Bl%c)3J^4np*FjiyR1L7cDC}+mjR+9aw za>6|SNA;H*p2cX7zY6HA%$qb0Q7F1zcMqPX;cL8{fCMDi8qyZdYFkOl09-j_>xyBY|^VFr;zxNb| z6s#xV=Q$E*0K(25^O?(`MEzi@<=-P5 z;&HD~3Tq^He9P2|{H^7fKw`QVVSNNsV)Np^v_&BaR-`qZVkOZ$X|7w=5`WQxOp!TnmH@ax$6s~V zib`ndlr(O4=GshU@Jpf<>g<5RuniCs$N!DLX_%v8?|MM|xiqp-PP4h($Z*U$-E_5N zpl1S=N#VQtw^O#en0PbJHDAx)>7l#YZYh_txs6gfLk5qAIKa|adTL=qpEo*PVL%J% z1qduQA#r`L4py?o8b#s^{Ku3T6|R&IZ7h9@paIsTK8+x?WuZn{iAi<9s;vz+GN2Xc zSqCp>*yN;wy{U^I`;)`#$d-VASQ%-AqqNN|>mUQumw|x03cN_}x! zf;oTh+6@ei8_P$>VJuSDq~xAqb;})xqA1*>>FTYALMZ;j#MD2K$RUw z#iLM<&auknomH-WisN+JIHO{mw?mmCVG0P!l06S;^T)e%b*pTdrO1HAd+mixb0G7KSp?_?d|J87a(JL3&=Otn${*1~n0(P%SKz-hKJS=!a3lm*C& zUlb|!CuUsb{{dJB7Crx^L9jDPzhuRQVbNqps;z0fs%hX+m;-$tMqN1Hd>ydGnPx@t zMc0M%L%It*-t@JffvP;2nG(-+P-uu>LA`kjHgJxSS%-sWh~(ul4Y@g>;G2~b$S50F z_zc*}Kk8k>!mjXD^Tlwj(dG@?FVZLQ=Vqs;tSJ@5meZ$!dz_byV16f&E2FIc4Lz2ceV)lqy`e%-`?xj#Vb>3jLIyw%V8?68!LZ{XQ( zzhM#WKrLrPT?BDmqZKXDbzx9CNS=WhrAOy1fQep%ClH<~!wE*r_I^yGWE8ej^7 zs=rPNWSPP9hb0F@7fsl^oAR1IBjxkH$O1x!{ZFj;Ytsy$ha)E zJ;{nC3MZvz#shakl*QXXv>qg%L6$0mC+rnV{$9x%zT>P9!6di445{+KNUs2+zQWw) z2Z^zn=y5Mb@liN_=$A`+Rm<;NVc7uJ2^E|P)kDhp*gYv()6Z+%w+jh!mbfldpe!QXt+pGIOoIL!y~9jk?aIqU8V3+Y9XbwvSo0tSktMMatjTb&nZS-tRy{Pa?O9!T^ppcD>Tzq_scJT zB?5bx79~-qT1q!eDS`MK3pU>o!7ys5rtNoEqb?>X#mp!K>;0nY+tO0A*#=f*76~{x zCc|)3_<(P`c-F#IrDrO=zltdv6w-({rnD2eafC8{y|>`(P;i7n~;``ZLh;KxpDG_5h%c><=n4qC6+ekj1Av@+JY=m1z&AxE*kR z&H5QYDI56nf7eFf+)kd{;|0F-XBMC*ILC%}JoZoeJazzNen9dBBONVUkns~>osYQw)}W?q}WQ>~BTZ+=lSln4qyG6*m{fDCo(@JIOO zOm#67L6ODK=6CTUy80WyOF74*D7s;gx7o(1R8L_l{zL3&00M4Q9goxJU!)RNbMJ-0 zbY&o={l*u5+YLx*(Jwo>Q2!81(ZxR9m_YB&XF{NF=s9G)?|!JClRM1)J*gfm|R1B&ORWFs+4R2LQX&u}eFe$O8Zb zkN5m*0HWC&EB5m|805A65M@OKs>IKMc)=3DB6g-H8mkC??#3#(SaLzho*_mu{ydSv0+}`k|YodCL)_ln*6UVi85y z>61qi7N>J?q6pB8f0BYzb$7i>zJS&lbyQXAOsjB? zGgXBMHi2@kTdyKSGSWW8CVH(5rl%bxqzy5A*<3xhFNkjim>^2AKi;L0Lg`9SwI!i1 zT^$3cC#Pz=!oG#+BER1%_R*YF-aFYhgj9J(HO~4#QYa`|VN!X8+hbtWf_*YG2eHO+ zR1k0SC1>98nv5MFQQ@DG34IAf$HXWFoYkLA&Xy*o+k%(XO}1yrx4j#+{VO*nX>8Wx zSS)K_xxfiCHjEa8=?TT%gaK24;pp}+?yEg7qklT-GrF__zUDf`%+g4vAp`mBNJl$nc9<)j)0P9pBwM(MD# zAboOe7l%|nJV@0Fl+4mMwx9)%rQHOu5a-|Ct12T61SV@1?>auCfLSbng@PZ5XQ=)ZZw@G5dvpnK)XKjdwF!#nwN|x9YCnr5>MDV6 zkaX>*lou7YDDHxKSfNk)@mpFa@)^eLqy~>K7r%J)8~bM}W~)Q6)wh<7h|}ECuq*QZ z?;F*BN=}Q)d0eR%{>wb7@%HgXfS-IBNWOecTL>6Q`p-xwl8K+HH>WVpnQ%7D=Bvwq zG+M7qLj_~fwk-GDrtX|8b(j!GB<#M-xTNb(Od&Y+`{*}uTlg=XhXeGt?LdiFE!=8- z+hwHui^pi;RR7%yWcj;h6|o6GA`jmLM< z482sDzRgFXELqri!V?j$j`;$)XyEW2KmX5=bs$yGQMf*RA@TL{N>BzdUIg_JKQbD4 zJbe*wctAX3yoi_k_*;>gq|B2MnQz0sFpKPUG+sZn>SeLKUgK`EJpP^#uq5)->h1>AX`Ti8yxE88|qq`+1p)g6sjy!m`&4z4+F<`-S1+PQ4+PG zdbZ}_qSV^gd)$!>71sy@bckJBjq8VQ*AE1mr?YwOTt;tX4qqApm?!n)3~FFU!^TF?_Py)km4fa4S%sHUT89W7^G zpqCyaRX&JUlMT3guxKq~OOXo6{D5C70SKLxRWKH5Za#Hij0r$3S^m^NUI$XRmi`ZZ zy8wV$BFaf=eZ2YRA3lnuL9l&?{rPCnOc0lU1lAob$;k%j@7{DXi9GD|T z10>?M7l4BIEC))g#_r)swau}Wn(++Z++8W5+R&8v@aoYNM!Dr=cWnJGl3ME)$g=cb zquv;%*|?-5+%sliQE0&!wcjwp?{VbdB_4i^FDBz3Q6to;SV+0)w@CYC2M>Hr!lWnn zXrw&l=Xx{G77D`^lp~`?CKSN%M-`i+i!Wu10cHu`M|9(HvODrR;u@%2FoL1ue+)p{6W|XFeMSmwfcY*v?H$k2dP= zS`-yWsqVQVjrLM%_~b6gF0IrZsve|;YTfS*NMTuCni7dBG>3sVk`u?%ZBOj4;NHU~ zG$x_SjMlV2(PDTfHh<0o*e28ha&7hRfJTPoa{T~Rp4%0YVy!;4N>zc6G}2nUY`cd7 z=h`G2+Cd!>7T;fuSK(UMgQ zcxd~N7Iq#!TwyDmf>3)>?}(A6NoZmwNOd_YsH$@(9D6${}@#^#4;8O89~Dl!rW zomCNbt9(Imy^HnA8e!slbpv}WCqa(ve>}qS_Jr0<&FX+OX=R;bxgi(&Ef$w>q?YxN zKGn>3y3sy<)E;|+GxT=eL#?b2sm!ZtW;;tGhm^agjOM{>uDGpWGE@uv?S;If0oZEvy>^*b=5g)Q0fsAeSxB4leN zAczGv!izUol=-FDmEiZ7TRY+6n6!H!f54b2nU149wIMmdS#3|YkX!&X+}KgYG4zlW zN~Gd!L*;4Bem)=!rCt=%9`P*flHy$`NG;Fby-q#ZINp<*NOo)DH--rm<>UUw$cp0m zAlLZ0ZV?=DxnE_DyLAq;Vs%4LBqUjC^#p_Wm_r)=~ zVtEc=Q(Fu23x?ML|{lp_01iEzhH;rA9Ds>8@ zbfVB}zr46_T|a8wM{~wUHLA z{j84z^r$~&cL64mX6NXxt&x^6mkv{9bsL}RqymZk*QRnO{w1nYc4suJq$zmJX?Ori zo1ba;fU3%ZUg7>^WBu0qz0r*Lb(ywaPg(P_pQ)7~df5v2<>O5Gfd}C9j5eUo|4Af) z-1rigQt56lS0z$Z^IaOgD_v;@U(-#i12W1H=tFClb`0@+$2?l>LdsiPa)4&BOF#?# zrHA2)-nOwREDQCovP=7=#qfC*3BBnl)rP`QkIM#-@oF}ZW$&M(>2`n*SyJtuK^%li zn0_h0xY4*tf10+8hsS6rQEw%2M)8v~Uo!V(wcnV6D*ba4D~zJ&OHuT@jm&3V)ugGc z8F`6`w%CH&l#830@;r_wV1&K2vF*1kky?J;x!w7DIWZ$r8F=Kh(yat*pICjN2D`Ru z6w3pT*KZr7-_9v5ECGu@Fs;*FROY22XQpq#yf1E|WpT+-dDvbtAOz6SpWX*9RcBb~N%~!SfE*+DVk%=%2QpK>!e*OKP7*>yM z#*%8>r7eF?>4>9>kzWEV|T4&Dtaymd-OsJsOSx@Tct3@s!N+#}KptA}AZ>&p{>U{v3VgDtMtZ z@|lI;vYd{!df3HA=1#*{y9F^C(7OMhpy6i7m~6?@`gV{d*Pl0kd{HV#8y5_$Xu-)p zS^;vx|5xM-nIC3NrQ7KPPRaNU6s4o5+5S)JD--Yw33~X)od4(kKlMR@hyK3rzBq@gs`k`g zTWOs(f%sHQQ{+q zB9KFSEa~W?657OHqA8mIdH6!2xo)Mp*V$)r0#2Oh)j)Ple-0GmGz(t&74%8uIrr=M z$HMK$2v78H+Q~IY!pb%%V~C0a9Y3@@(QWl=O?i{UiuM}!!3JMJ z8kuahKe=@|j+vFHz0VDOS^XQF_+Ys{k98hnV;u9JKZcMQw$_*|3oizU_@N%f{cQCk zWiQFyFx9Ztlkgr2OVA=d?y^-`Ui7xC-4=rm8Y?z=5^JnfT5nJ#g~N2cK{& zL0Kt45Ae7Byl&2SVwpl4h}pa7WD^RMBKl_^OTG|ouA9fne=Nc%$48tvU%0tUniZXP zR~PPoVYDKA*Fu43 zAtC+tbBTnHnlvmO1<{U-fJPUXU)sJtyDJ)SMrpgqBW>zj?p|va?fySaFOQKQg7A40 zH>ZbdXYE~)V<%hy==JJ9o=C*Vf9Yla4Zo9dpGrXv3|p+TWro#(>hYv!g%Zir^C7~v z!fR)YC5P)24LQm6%H zxFoS!jQ9Oor)B$EbX>67s7P7B1$U--4+DJHJ-QMlJKu4+Pp)rpEs+@yqg_(8bya-7 zBaK+iBNbOwGj}8D6S1A_CRMK40WY;?YwwVju#HMaa?8R0W@pUe&G*O-4<}})VFF@_0*`#C<3QErMPnL}Ut!v*Oc%mQDXXszf zJj(JR>fMj(`$5=QpJ&fd_T``h&1qm-RwdT<7wJ3IwP$75fp#6$a}5#N{wj4MU`M%z zp?1xKYuO+|^fj6Pn1|4-6ZKo@54WtSSe|ek^Ik^Faq0D$`KvrV%NywF5O$)#stPe2 zDf$IO4;}^xsa)=I`6jyl8g!{x_brHe(8foxhFRW*2gnZuRzXxO&=~u_C~4Y{m9$;_ zsR6WZJX?g!zpg?B*VW<~zxukkK( zyuCQ_qetkzz?_$PpuxAx&=P1>yvb^NFzLxvkxL(yq)<*W{f!s*By7>tZsOI#3GR1+ z+Gz9dgUiUB+7Rjz6RueMvcm$tI-T1IvPdNEAy7f zuZEPvGbQh@I=MRH{9LmI#hHSF<&9Ubl* z9Ox;SbdHLq#-dpFv37uafYEOM+CA}=HRItzHoIk_Je7%i_uqe{00hqTsdGN0^kR50 zCVzwLpLL!ee34;iU-_#Qq#ybu&syK02qZsJ7SZ^Hu$dHByUBvuKw=T?lqQo!=~r-l z!ef8JTsnRItjRISEN^Y|O)dFxq2f-g@;^PR6wUP$YC}UCI5-CO3fh1kmw6hPb)b{M zM%k;Qa8&$$sKsAS{W)RLqRmspkM$;t;#}kj23VfNXAQco0t0YAeTmiU_@ooFZ^pQM z#QtRQ;K%+$Qf9Bahm9`XtDDmbv7VMTLqL;EH=D~}}pX=W{~{$KEqq+qjclBoMW`Os5{h4|?!C71d;-&KVqEv;l2 z7u(QLw7FjchwXj_P_GJd!7$Z&c~ptJ-Oj?@B%|J6tt3T>R*O-s)E?bP!p~Q(#@5R_ z`?5&}`f0|aWsUVst9>gB3Bwn%-Y{fCOys(=Nf*p$)fPpvG|8}^+%)@#JN++TV?bFSYEK!1SkUAW>^!pbk_rx z`NL(X4VxH71k3Rz?YhQAF8a%)w!4R$=oa~YrCUII!I8_`meSA!7IMAEaBHgPm1kBW z&~BO>o4&3IfH3*H_lup$vO=9~ffnb($Th>IUadRMzt?}wzsLWqfw}Ng=6*EU5t2Og z261eP?|RZ_0Rd0glez*OEmgBPCT+g*O&`t6K5!RLj<;4dm$_zfgvy}xL<%Md7IWFA{k`|!)iknUzS(G>s`JYt#%9{Gef>_zRDKz-0RPCuchst#L#cd zTtUpNn6k($3r+c;Inu2i`EuHutbN56NB1}hVNng%0V6kFEdFsVOq5+6G05EgNaG3O z3Dd7;5yHTW31uBI_NFUQS(C4*C)s`W3g2h91Dyp{c%VJ+MX}??70F{bODkWq%0=|{T|>oJ)bK( z@}xCkH;a@Y>us*i9jP0Azd9@SmvAI)g6F?)Q#B_2OGcKf!2(wbER!n}x6=9{QC}|s z+tUUS7i*S(#5duxaYG#T?ZSp>*V&x#$usejDe@!V!(V-DMP$7VQ<@%ovKfczJqh5# z3xCOTlY_rv8g53xtIvkrhWUI`DsGv1xNK@+TddL@!?Kn%R!eprEZuK_|6lEWXH=8h z)-JF&qN1QEpduhbK!kvs-eaLx5d`TdND(Ol(nDY)BB&rm5NS$PsRks{Lb1>^7x+kEed$`Np{8-aGF3DJE~$n(tb3%{AxqJd=q~7H2e-lE{Wh6<==q)S$y5 z<2CC=jhl4qa83>!bGiSETYU5-=Rxhrm*rbmTJSmz{a71bV%v{vVmA(Yz6}@s{-@LJ zCoM%?q*#sk6YUzuLFH%Z9t^Bm4#b!pzKG)ujSzC>$IzuqA!%lS5c0}>2zD1iBZO2? zncDJ6KJ7JA5mH%{i-a$YJ6RwE)x;zx(6HLq`(dRmx= zx!;)vbdZkVp`EK;Dmd6YGub^IKMmg>ZeY>(V zGlyoB`Ugf*nH|kZu`y#fXedu-?Ttw-=&~D@5hc0cWNOmPZfJ2aq=Wg#153FJr{%>f zzWMw%WPzJG+$D*y9pBKeuNXuxStAL!C9{KRt-5)Mu7xZUQArP6XPpm*O|VmbpCjCf zlRd8hh4A;7t|PLGx9=B*A;8z2jRq`_fb-oJUz6VNHDe2Rygh%=B&xwIe-G8{`BZiZ z>Spa}Q7ib^0cP>K^XlwAA~sVRC&OI^ohE$lK86dVd3DJ`!}xja=G+Vwawui@y?GJ= z0Z~f9H`eWotRciy)t-Etw5t&PYC*u*&>b8U5%IBvv>C;l80EUbOm`^t3UgP_?eh=NICnvdQS zFKW~p@CFJCB?Hq13jC&U!U<}%@g}3g>-|b*uX0|VlH3`MuLUb<{U@koMZdiDyzd70 z-RB;jS*?1eiu0d@KVi|8+3lWRuVW$sr8M0>QmQ}slfg=x#+SQJp;hJD!QT$jJ^Gpd z2FK=Eu2XfP!S-W_Gt6|Fzs~#1E)XC91&&ST^yUkt1G*Nw=pLwUAG)+~;@{Vh@Yq%R zJ2UuZ{Mld5?*IJzpWEYqX6C>CmSgpltc)1AXb0%fG6xcitf_P5sG7pSOnOsm|M3Zx z)e6ZrrBb4bMk4|TUrj?$)`u?KFYQdbpD1KAxf{1hNX`%?P9ud}RrvEN$4sV68BP63 zsqXbBlAeD~*-v+1$3Kxw(bUYMRdDOB63^aKJI-6X6t2^Q*sK(hb7?%@=norQfYVTD zvzG4JBFsw~VFI+{?;ZMzg@H{^eCWH=R?`Ccy&o}))=}7T42we(c6&Was!_d7TyOd; zZq2zJ_5Vf}a(xG!vR14~Adi)blQ}~W-zH=!J%}1m(GiDR%o&yxQM)VXii=JkQW2@C zcQ{?AvezTbw7M_!a;*g&9skZ^KOWfQUfmf80hc&s2>>0ev~L)ojzuvP2-<`URI>wk zV+jBgY=z&^&_cQ?2jm(DTx4kahh;YzxuG=rK(e7V%T9QRsyk(TG<){UHI1UeQCc}i ztwhD8Dp6TDc4e=X@>FSQ5h1D4YrKqwiU)Nr42|mRfAz_`&Ta)g!VhcxAc!6?AT`v|hp7KXjCpmuO5oPZQXVAPs1Nw-9P7y;1GbF`)Pi-BGk zBy~#K54A7-ZEgJ%c_zAqzt~4~QR7*b>sa6PHB>R()Q^k2J+AErq^0@f8&8gre)n4( z5#m<1nsngpDP;*v{H=xnC!~yeWrq_ieV^a_=R_ z-t@Ftr9o&w?pHje^c?On8^(!zh`0LaE(1MzJFhj39{=4P5*-%0_P*(uSMIrK1I0$n z73|}}!gU}G(ZR@Rd4e@~+K!i4$E0E#W9?a^Jv%cU$r?Ra`wXOTw(7Y@8P|#*5FuA8 z<4SMRC+4J+O?ncpzUHw{3cOFq)3b&&M~$in7FZSbk0UoT zYOEL8N8)0WbeZXFm3F*xV{6esJA)|md(FyfjM%e|@V7(jejuZ8-WTm(=|z#WdR?8S zSjewnS(ejrQoD)0^D5Kx)7g;sD&Jr(%X&}em`l9AL1e?cZiGt8M0k0V%~>6D+~d&~ z#K){m-Y!m8_xS_$s;HHhXYM)?>!+ka=73*3nS-v*Z|8~>(_{KuLw`}w)g-I4c{+7 z8~HqvVSdK%Txn`n9{*&AFFw4wb+2za_l$&_8qxSj7`$XG;Gu9GrAa53@h7C{RNd(H z9#>>%sSCL7tcw7x%(EJ;s#Y<%t*YGW&4wpIdP2=d&+^))?Wgx?n0_h0myE}B2=C`N zh$(`q$$9*VS`wVfg+gf?E6wM%+@lMI7aJkIapBH~tk=E2P_StXsR`YYT zB~O_}i{W>!;RPQt#an`sQlZ|#0Qb>geQqd5Ik9Boq>VccO}@+JRuXnAeLpguBik{X zw7sF$?WRU~;h!vYRTWV}mx{m=m5r^I2~?#&HtGj9 zdY;nEc4oKE1uJ3oh6dxrNFZ^yp%R59Ck5?J%xN`Zm!@}&{Sjl?JA~;!m00NoiNFUw zR}SzN4)0Ld)u(tax`-P2^u_Hv_r;6~d2{>rr#dnTLGe}JFp;b>9MsO1#zg53?B(_6 z?-E`m4{JaaS2e`!h2TbCEf4+y)=W=p%PY{*Z;Y5*D z6%DLHgW&@5tAX+|jr6y5LOy~8Q1M^;8nHUv=S8Sl)jmX9rzNKWxip<7 z(6*RCB>`o_+KsMa9tCea9-AeOUb}{x)c|q%V=embj6V~7?|F|j@**s6%q5|ha>Rq@ z?=N6LHIMF#idoHlam0EnfN}K#a_KryhYMOv!Hx0K$=+kI%%~OtTu=ZPZi4|z8%@Cv zkW0y(Mh0XE_;SeOlOpSYjS)P`g_H9fyH|z-%G5x+3J8K7TJo~>k3X&)VEnYC`YQM= zT>*z#b87&F#=8YT@*4B7=ScVE*Q;s{CaNP(q@Ycz`V5odf50^V#3# z&ks=9yQykNo?Zp!qj7XSM(RdmU}$%o%HA_upUdX~u^+H#v&FY9+Hc~DNZ0Du2;SjR zM^?rsv`5`}bUCKrhfUD@2e+XZ8BnGI=xt{4Y7YPk6#^Q5u^K!TM4;jKc9i8W4>jxJ zg$1XwhSJ2YbV1Y%NR=@_$1jXk{ty(R?oDtkFgr5-fPqH!E-Rt!kg&d;>r;VJ?O=0`p%P&x58dOvRC+(Zy*kkE5A*!+j@p)m zm>;u2&%4$h;5p6hXRac^-U{QXPiR=HhPW=e3jq}N=Bkp}T2mIF z^y*KtAcyUgOi z)Pl6H3>fXOPAL2#V=RR@(gr zh63>i4wqPj0!t#kDC5&RY9&fE41Bv}7tF*_ng;cKwjS-Y7l~8>BBH=$(!^F~GRu() zZQ3b%R6X~N3s?+Bx<6`yGEu(>XDD!OlsRRADx;&Kgjh%&tGH8va&t*-!{j`hwRIbc z!M_A%v!%V1x%8Y-JT*ZD=m>C4xy)eF7(}s-@3bZ{uBH#vMTj_fPe!;S`FrGcb7rgtC*+vF0y`$5KYRJMhY4AWAH4e}^YASfCbF@|V+FUQ(8j@G z>o~z2X%x7T-okNYfPB8EtMSe5aHg5o;@U|cxJWyGw5!a3h7NUwoG z0p|}hfih_v@b^3zjIPbt0R@M^6Iu#;WG1l?Wd0d7Y*WWigf`8wb%S~g&5iv7j5cPF z@okm4`YHMH@8JuFc*@8^N&wH?*seMG^bMT`T-ONcRa+?E_M>Oz?IeF6y(*Br4N^~0 zi-=~kX5S;OWy3>RIakYV1~RqFc?q;Lz=eH#b-K}GfyTI z%kUKJYdwA(8G8I%>8kQISuYj+&IjObf+3fGSIW1E5wG*SS4>72ASS8sb{*iK>b{og1=s`bJ1;aT+GP6EQYV zr3}huto0jJCi6($(3t%CU8D}87^A}3h32&W=3U`EffVtd(Pg}1bCOH7@p1NN$tZ+j zW^7*8?c7emEwr{eSVNC)GjE*`CVz+5cJUUPG%(`)Sgia!MlHrAc53R(mQ5dQ#IT%= zW>bhWDfq%g{5TQ=1)~mAL@^rpLU4Dn8&>)&94adb#mixX3k(Hq{dQ`0_jzKo25=1A zHA>o2p6fDXr3!a#*KNG^=590D+HJogwl}t=bgudGxC$Q)s<590BnUmV_Td-T)pMkC zfpWB8;TC?pgOat}JZs5oxH5mL@AYJ8`=LEY2mN~sl>+AtYHPMu!R{_FG2Gc-H==Ly=>aADKa zYBFz4<|yNnN8u5hC+j1Qtz+ST$H6=^(TJN5W#aK0;igW@W;Hst_`CZPxHHzL$*a^J z6lJMc)c`79yJ10HpADR?8Y!eI1t{6`<$ccsnC`YXOaOCH&*{6)VAAb3ccwSoff{hL8ipPv29MQXjW%B4zYr=HP|QrQDld45-S($tJj5!DAQJ}q8_jI z@ZAwTvlExNn`Q6sm(Da!aP5K1DNSi~uj(g#8805HP+EA-Ro-S?l7HAX5^*E@&00_E zFxRB3yh@m!yGK~XD8YYD#(KC;06@DBkr&TJ6NeG&yr)16)$Xt}E3r>g!Fc83wHaa? zDQ6(Fky&yfLg4oEb)8zD3rla+IdFD9vjyp>XLQ6ob@SGdLZ{-l!z;|yZ^1A4U;cty z9C5AgjIQiVTUFb}ci#gpaAD`odiY}k+6eAJ3w@>}VqjJyQJk`nY-7%|H;*tB>RM^=^@Zk#k0`+e1!`4Y%J$(|Z znOZt0{vw-z5098lNsLP(+Ht|4@Oj*|V-t8jg$HK1YrqSYpV)Z`Z3(3~3Riom0l7xJ zdKOBR3TV-){L-dAa305IM15{m`CgRz=ySI~%6|jw9gkNXOURn~#yf@qWYy=aO@DmGy`Q zSXD=J0SrJ;Lha2rB-U7<@|CKDugSxkgBScc_@@NQyiIVQ#wudKmC1TB%T(Q9SP+Xq1E>6jb+H>3a_2w%PQW#tM5 zo90*=e}EfZ)Z$Gf&aC4*;zev$Nh(J zRo})DYrQD)yb*3WhN8D*EaRM!EPlzk{ZGfF^z!0<$Qy@Wu-~6mGMi~|>a?yn>D2;8 zxxj8ueA$tunGS!Mfm8O{Gm}ZvO4ED+u9|;`{T3MH>PtCY`3!5jWO20A2(>H4+UGZF z!ScY)kmJxvtkJG~9qmc@sO*@8<5t(Ghfjj7WW2SNWL`5AP<3SmHd4D0<@UclBLbbKS+e)Na=451P0Hz4jc-WR`o-)0Kvev^zPQ6mz9msN@ za*tbAOXIUj3g9N_Q!q2jEtnL+9r!oZX<`=k_I6%S8n-U)7MU3oEZK$%S%e1!W-2rc zoRM4!mKP%tOZ69Yyi=yf@qzx$y`<3a{iN5|jWz+`syJ<|9yr2(`e=g?$Ir)iAmGmS z&yN?2QBLuUUH|~nlM|gf00z7{{q|uh9#gtuyu`_Ytzb?&P*$Fi~y(v zj4NQ~JguUW3Mw3-b!@-Dz#~~?{cc<>vZoL~_R(kwlf9I#T5=6;y@tEL2u4nBqb#*i z)dR$}kf>`b!Mp9|2#Kc@_FySYDb~1MVVqLh0l6^JYnonbKMXc;IXdi0*ngr6YJ$Lf_iJl+O_-wLn= zGS92Wq4!)Lz9x2lcpb!59&?uux8a!NMyR%AHAQ~+(XSQtrug(VzbJ>B%yumeZ?A(mn}51-ES2)^zLFV3FflSp*G`6;HTtobQ|5roC@&A zDcw1o?q{c~ zMCVPFu`io{q<-*jO`a>16BLnxR)e={%HL>lp`%oTgvCR&a;WpyBqHbHhc1p=MQiy`1$f$#mk;~YJXZ6`F6&+e>1{jFGQH{T(ktG|`v zaHgI1;PLhhI~I}Kzn#a?{du(IZG~-j9_;~w*|hA-|I35gG}G>6`yHcfXMy5&=D(f9 z(gI|t&8cn~|GXd|8__afz|?a(C0p<4U)oyoH3KQXb~%H9ong0L^9Hx= z=S91MP8{=a*upUWWkYY)K(I8DE+XM@9uQM`ep|`JIHoaUO@i%VPE5G`B~-d+$Y13+gSIcp@pUh zw_a;&PxbCy(3@ZJmsC+!t6%3j&;Ovww2x+(FQXIm{tA8W-}AUuStCbWcbQpx^Ev?f zFw$=6-Ny96+dii@akzANkqD&Pa||C?dd0llPl?K4P}0cM>NtmydWiAAEMC{wTK2-Y z_Sxos5!ha;pDA1;?5FF@g?5>eDw9P&hm%QqtzNH6`1kur7Fxj8>}pS>Os2aozRqIP zcg0V!V|i4s(u>Ihh-%=XfhAeUcldU*BIS*WNLG6d^p$T8_hp_)73s%+1g#VW%0#Th zoskTi7`KT9_SCrWc;9e59Ae3nWJ<1s`PuwKAUYr1%WZ2LZqHGjUSHCMzMBz+yXt+N zxAM;65GOcnb;1Fg-l3V(C(3LE!RIrDz2U10<%sj}=GFxSdAT-)_}t4sSYaD4d8~;$HGE-%AXb-Q{@*Y+i~S4 zc`|E}r=6a@5OVsgIkjQy+T;c_uk0|hgD}A9c5DaKI*0y*4eg=h%{=`T3IR@m-zfe- zDHomHsGUWFq(>H6`JLfT!Fa7a$c&7W6G|V>FCTZ97_4|r{2sdLjh$RY9mM5s5156j%<$E?g>7$+e znj3v09s!+Xr&5OT^RZ@4F=q!(J{P&&CwML8E{^Su9n(s97jud7{7s>wMj^5Ws{#RH z%))?6-l9^aA$y&Px5l#fkc~Bcw6%(__Z{bnX)X(&fDVqC)HTpt;XC#orZdB9%i-?X zazK6BoVMghd~(YTEeB{_-`*SdRkhyDTVx&@s#t7jsO)l}>BNU0wiOD47^Pg1GuejP zqnn;{F6=207(fr2fs*e^&v$+z9VMUPmWeW=-up`nJL=`&kCj z$f$D(4VBUw^xc09SWRkjTnd3;vVpWYXro|)$^~r{l!hioW)fIHb~K;@GAZq;KUjNq zvgoGvcgw$8&E=JhR|W_TFv??^Gl068P8i01$*HyRB=JnCR)xBbNTkoXgfdUjJi#>> zT|)78ygC80F73YGHh+_???mcb9#efjg?aSi>FSgE_N+c_E1oV(*VGWg@p@865H~9a zJf6aZ@HSu2%wv{rdd;aio9CG3_PGXFG}SQ#E|%r2i~oH==BF@k1!9*zC52H4{Pk57fS^YxX`eybGdf-p(SFM zZloaeA@`F{cPTwj_KLp%B_cxgAfQddw=xjVOGrH>k+bkp&Mep8#fhbaCLAb zBkyj#ShLa$I@3>sAiwdrb!1|ZcIuh|IO0|%fp(&IpC)~xl^`U#e*Np_N%ODH`G31= zk$M;L+g3H@Up;m+d~ivrUHX<)=V~q73`}srn}X zy8YKEB%6${{Mu&Y-@RJ9o`yAI14;goUHWCoPEXBUYbgZEAi{syWkOL{ueqSelHMox zIv-qX6(sN z*;7{3zPSAxNNKXi>;oIN<~?G?x597EGxR4X=5UP6`?g*ZdbPpu6!cFp8yO$|wo15U zM7BEPYvMb0`PXR9Sqb^6i#pnqb7jdclTr%dvNw8rk{ZiP5^6(}q|EwUrZ=o(h+))4 zsvuLBIf{Gjz2_k6%dXn4o z`tnOP=u|5)1@mC|5qJUIS1aQ|vjK?=8>$OV40WzoqDBOyvK-TV&oxO<6ohM@QOfKI zK8kBj3*^Npu|%FGma~Mt@Rh4~J%K%TSlu8AwkbG1)t3u>%* z-i(hDD!92cFsEruM{<0}e|6|(>xrs;U5rLHk3BO3_2Xwxb3eBC7&GU}d~D-SukXtP zMW@Lp$#qD`EmRnJqMVkV!DXN8TPb9NxdmM8vu@0AJDQd@Js6Fci*n+S8{mWZ-k0=* zzelT-YCIB&D@U<>+rXbX5$7#lG(2 z>_=&Vq_2d1M5Lmb`>vE!15QXm~Je0jMOy}k+4G`0Uf_-)?(>WnmxS;c-T6L=${ zrd4Je)!hh2ynNAE2W%00VHq2GA9Wr$7mu*zg1Tax%C-2}!A&%`MB`9<(qB;Vf{Hp4 z>1eKEf~O-G=R5(xg*A-Egp|dpnRrzHy`|Vk^`VdRHaQ1;+$qZQ^@^@@ovF^kk&+WS zWJ#~N>IQz#8*%vZvSw>!z4K9O9(kvrvUMwI|0`sC|43<{J{xG5pp$vC2iZ&moKK-P z8zuOMa*X)kfZ#8!vrzR>t`P3Y;1sK1!4=gKiEqPdw%u=nFEF z?NuaR){|+k&Dwi+OLfYbrG^*!h%!hypYS(5CPK}^#1P0?>1{Q?vij zP*-MR9yUBtblD960WqTctqoHUJ&uaUc=Qg8)U}MFUdp>QElJJr z1Ac*S9*3TeR;oPjy4akNpS47_IQpC7O6t57*40^ZO}$CKbqzMtb9(2}OS|>O>6I}= zXNtsmOLLgmQZ{-KCcZp{s4<8Sy;QJP*#m~uXv@4m%%7}4`u)pL_42F(_CV@?y=l!? z=ic9<AR>{0^F1^yvUe*0DgLTKR51-PuddYA7Mpc=#@A2)%12>JJ8N-lLerUCXs zf$C;Qgy73pDmP9>T=An%Y4O59^z(28UES=`bP z>aQH&0immx`Chw-M{c9##Sz3yFV9|`|61Hda+Iz#ZsAc-HC3a?z+=gdrWq@5`L4Fc z#YSkwH@-Q_Q3QG*=(HOsk>pvM^>vz?G(JYd0_B&Ug=L(Z3{VjD(NR}f9b)4a;ZmG= zdS-&cJ`Z*wHa23&!LjRTMJ|DREF(#<+Qj+=RsLF_;dFY35zp}_@eO7(if`)wLIEP} zLmvdaaT2l#)k`Y6OoCi@P+cPc`w!R~ATyrl{qr`xnN4Wd%w(MH&m9xu0hjOWUp@VS zcFj|Dd>gT`)Ot~ny8$xZTM3uVjKi@#v`j?PlVA7EZfAkb>z&=s!T4{7Kifc(pMV9A zW5IhkXsMIk|4EbpEBu!+;s3x=|7A+$-_6O4NNtwpl7eUM;_Gw1SEH&|quYX30C#`B zEm*Su*)@Ba*}tS+yh*D#z(m{VsAW@@RsprH?D6Iv{BGiG^K>b{kZYe;`sXHQL(eP) z!0Cz;9n16{by-mVoZC{Px|?q&jc|D65ig>VsZ6bUss-0AZm(s9Z0TelCJZkb5}!@m zM~}aKaCIuF9Jlz6Q1SI0YG!Rz5lzq-=2C_v?_lw<=fq0rh^CgvPI=x>L4-eJ8RhK# z3H5)JzAAQ|Q+Fj?Un9Y z0ha4#F2l5ANm=J-W9GRhQh`}A!Quzc@BX>LqC~TP~{qv4V_bI(Nz}BKPr&V0;=9XvfZn!B&_- z5bEgKgA{_a_dlDmgZp%|lP>ud-3katEXh*ecOg6{tQH#1L`d#GYfb5^n#FQP0Wp>= zX2*Utzi!@@5q92GFGN^<;O)8h5I{-5Jv{xI-&d^r$*Qf5y8hGm;&m8G8rS8F$}w)L zxs6D1yK5%w!iHGiTA(N-0*D6)4)qoSf!oiPB=q zjcGG}Cl!`K=gvdQ&dPJ?n;s45zS`#bY?WGt%NUK%`~{akRdaPhsf?i}mvUSkI3kep zVz&6PZ=kdzEuu=TP3kzP!DSP)wY1e!;Oir0YoL2lq)Te7;!!2ATESy6I)Z0X;?f+2^sJxMRP7Rv^2+MZ8-uLW zJKf=%grpFx?%TtBVHY$Mu3?Rnf8j-Kgf9 zi#`D;zfPTIWr&z%&_G&D+rr)w)g2&z^MX(M40|8T0oTdZJM~*g{yo{;?`TN=4q4|o zAh?u~SYP!)e*S>tn11Sosh$8i5u#uV58RMYAD5OFFBth<-hM7qPWBc2^aH-3;aYoI zv(Yzr?YK!xA5v@8I}-|GZhuG?`~CJ2h(;t*n(<1U)j}eT zRIw681NNW!v1c5cmS=QKJ)Or&=bqaL%w<&fDdL0lWUEf@hYE{b21?muo_X``oldFx zNR1eu^t7lrAW})>i05=*o*PlSKU!nfD;Oys8ou&!~} z78=m}8=N013}=k4?!&IE=n}>Hf>tm2RlEN~v)!ke4ex+#U~XtJ;QTYTWHuq(7Ia-l zvs!pl!+E`Ouw8jk-5VH*PTq?5vp(IJlFl@ju>)}NGL0CqocELLVXuAvJZ?qhmoj|0 zo6{=S941oACD+EHZ?3r##fl!x;GnwA8&n64^{qv)#CQ{j?DINd0Z%-nr>bsxOi-F2 zNG8YAsrMz2bi^c4dvu_1zu+^Q6^fSwcc*hd;T%{ZA^@GdRm&J)z3+bh$KBNv;5D%W;miNvUjJi*|DW;C z(7HCI#ZPEJlbG%+1#Pc@?l%zjMzvM}WhuJ49|2wY6rnBBm=?VXP%ZyE3Go3yk_eCl z9}eld)e1$?I;_)r$AgAUE3-p^BXyzgfXp+%x^H#2z7%2u^!9=Bx$^w`LorGVO+c<3 z-pK76v=E;`dM~6he~X6X7r8cpNdt}QD*?NaH)yUNj1G__j6hSFEs9@qH7^jI_F0?z z`Wq8V6LD+{j^74^q($^-T3U6l-h$tst))`h5R^p#s3-q0tqlNpe9%RV)~;wrJ)Q9i zVz2oyUwbGof^_R;z0F2@5_;`}c#9&f6WCdz{jwOEG%gNX>9qqSi7~)*UHt4G9FL%* z)k)zCMS#<=21pWAK$1`! z+Cs&J7E9X?%K4QcIw?U=