From 7c714c1b872845a15d55cec2bcdce3836fa4fa08 Mon Sep 17 00:00:00 2001 From: "West, Steven A" Date: Wed, 6 Feb 2019 14:28:45 -0600 Subject: [PATCH] Bug fix #56 and enhancement #54 Added more debugging logs and added ability to use long upn names. --- ActiveDirectory.dnn | 4 +- AssemblyInfo.vb | 8 +- Components/AuthenticationController.vb | 59 +++++++++- Components/Config/Configuration.vb | 24 +++- ...Nuke.Authentication.ActiveDirectory.vbproj | 6 +- Login.ascx.vb | 111 +++++++++--------- Providers/ADSIProvider/ADSIProvider.vb | 36 +++++- Providers/ADSIProvider/Utilities.vb | 16 ++- Resources.zip | Bin 101412 -> 102697 bytes Settings.ascx | 4 + Settings.ascx.designer.vb | 27 +++++ Settings.ascx.vb | 11 +- version.txt | 2 +- 13 files changed, 231 insertions(+), 77 deletions(-) diff --git a/ActiveDirectory.dnn b/ActiveDirectory.dnn index da783ad..6c00f65 100644 --- a/ActiveDirectory.dnn +++ b/ActiveDirectory.dnn @@ -1,6 +1,6 @@  - + DNN_ActiveDirectoryAuthentication The DotNetNuke Active Directory Authentication Project is an Authentication provider for DotNetNuke that uses the Windows Active Directory authentication protocol to authenticate users. @@ -33,7 +33,7 @@ bin\Providers DotNetNuke.Authentication.ActiveDirectory.dll - 06.01.02 + 07.00.00 bin diff --git a/AssemblyInfo.vb b/AssemblyInfo.vb index 7bfa0fe..b594a34 100644 --- a/AssemblyInfo.vb +++ b/AssemblyInfo.vb @@ -12,7 +12,7 @@ Imports System.Runtime.InteropServices - + @@ -29,7 +29,7 @@ Imports System.Runtime.InteropServices ' ' You can specify all the values or you can default the Build and Revision Numbers ' by using the '*' as shown below: -' +' - - + + diff --git a/Components/AuthenticationController.vb b/Components/AuthenticationController.vb index ee4d21a..a764350 100644 --- a/Components/AuthenticationController.vb +++ b/Components/AuthenticationController.vb @@ -36,6 +36,7 @@ Namespace DotNetNuke.Authentication.ActiveDirectory Private ReadOnly _mProviderTypeName As String = "" Private ReadOnly _portalSettings As PortalSettings + Private _config As Configuration = Configuration.GetConfig() ''' ------------------------------------------------------------------- ''' @@ -47,9 +48,9 @@ Namespace DotNetNuke.Authentication.ActiveDirectory ''' ''' ------------------------------------------------------------------- Sub New() - Dim config As Configuration = Configuration.GetConfig() + _portalSettings = PortalController.Instance.GetCurrentPortalSettings - _mProviderTypeName = config.ProviderTypeName + _mProviderTypeName = _config.ProviderTypeName End Sub ''' ------------------------------------------------------------------- @@ -136,7 +137,14 @@ Namespace DotNetNuke.Authentication.ActiveDirectory End If End If End If + 'debug logging issue #54 steven west 2/6/2019 + If _config.EnableDebugMode Then + Utilities.objEventLog.AddLog("Description", "@AUTHENTICATIONLOGON:Dumping redirect url: URL:" & strUrl, _portalSettings, -1, Log.EventLog.EventLogController.EventLogType.ADMIN_ALERT) + End If HttpContext.Current.Response.Redirect(strUrl, True) + Else + 'added error issue #54 steven west 2/6/2019 + LogException(New Exception("There was an error trying to create user account: " & loggedOnUserName)) End If Else ' Not Windows Authentication @@ -180,6 +188,41 @@ Namespace DotNetNuke.Authentication.ActiveDirectory End Function + ''' ------------------------------------------------------------------- + ''' + ''' + ''' + ''' + ''' + ''' [sawest] 02/06/2019 Created for issue #56 long upn names + ''' + ''' + ''' ------------------------------------------------------------------- + Public Function UPNManualLogon(ByVal userName As String, ByVal strPassword As String, + ByRef loginStatus As UserLoginStatus, ByVal ipAddress As String) As UserInfo + Dim objAuthUser As ADUserInfo = ProcessFormAuthentication(userName, strPassword) + Dim _config As Configuration = Configuration.GetConfig() + Dim objUser As UserInfo = Nothing + Dim objReturnUser As UserInfo = Nothing + + If (userName.Length > 0) And (objAuthUser IsNot Nothing) Then + If _config.StripDomainName Then + userName = Utilities.TrimUserDomainName(userName) + End If + objAuthUser.Username = userName + objUser = DNNUserController.GetUserByName(_portalSettings.PortalId, userName) + + objReturnUser = AuthenticateUser(objUser, objAuthUser, loginStatus, ipAddress) + If Not (objReturnUser Is Nothing) Then + objAuthUser.LastIPAddress = ipAddress + UpdateDNNUser(objReturnUser, objAuthUser) + End If + End If + + Return objReturnUser + + End Function + ''' ------------------------------------------------------------------- ''' ''' Process the authentication of the user whether they've logged in @@ -383,6 +426,12 @@ Namespace DotNetNuke.Authentication.ActiveDirectory OnUserCreateCompleted(args) 'Item 7703 + + 'debug logging issue #54 steven west 2/6/2019 + If _config.EnableDebugMode Then + Utilities.AddEventLog(_portalSettings, "@CREATEUSER:Dumping create status: CreateStatus: " & createStatus.ToString) + End If + If createStatus = UserCreateStatus.Success Or createStatus = UserCreateStatus.UserAlreadyRegistered Then loginStatus = UserLoginStatus.LOGIN_SUCCESS Else @@ -525,9 +574,9 @@ Namespace DotNetNuke.Authentication.ActiveDirectory If config.WindowsAuthentication Then Dim userName As String = loggedOnUserName - If config.StripDomainName Then - userName = Utilities.TrimUserDomainName(userName) - End If + 'If config.StripDomainName Then + ' userName = Utilities.TrimUserDomainName(userName) + 'End If Dim objAuthUser As ADUserInfo = objAuthUserController.GetUser(userName, loggedOnPassword) Return objAuthUser diff --git a/Components/Config/Configuration.vb b/Components/Config/Configuration.vb index 2712049..c6316e7 100644 --- a/Components/Config/Configuration.vb +++ b/Components/Config/Configuration.vb @@ -51,6 +51,7 @@ Namespace DotNetNuke.Authentication.ActiveDirectory Public Const AD_SEARCHBOTS As String = "AD_SearchBots" Public Const AD_SYNCPHOTO As String = "AD_SyncPhoto" Public Const AD_ENABLEAUTOLOGIN As String = "AD_ENABLEAUTOLOGIN" + Public Const AD_ENABLEDEBUGMODE As String = "AD_ENABLEDEBUGMODE" Private mPortalId As Integer @@ -75,6 +76,7 @@ Namespace DotNetNuke.Authentication.ActiveDirectory Private mBots As String = "" Private mPhoto As Boolean = False Private mEnableAutoLogin As Boolean = False + Private mEnableDebugMode As Boolean = False ''' ------------------------------------------------------------------- ''' @@ -92,6 +94,7 @@ Namespace DotNetNuke.Authentication.ActiveDirectory ''' [sawest] 12/16/2016 Added if contain statements. If a key was missing, an error was thrown in the try block and the rest of the settings did not load. ''' [sawest] 12/16/2016 Switched to using constants for setting names ''' [sawest] 01/02/2017 Added photo setting and constant + ''' [sawest] 02/06/2019 Added debug mode setting and constant ''' ''' ------------------------------------------------------------------- Sub New() @@ -160,6 +163,9 @@ Namespace DotNetNuke.Authentication.ActiveDirectory If CambrianSettings.ContainsKey(AD_ENABLEAUTOLOGIN) Then mEnableAutoLogin = CType(Null.GetNull(CambrianSettings(AD_ENABLEAUTOLOGIN), mEnableAutoLogin), Boolean) End If + If CambrianSettings.ContainsKey(AD_ENABLEDEBUGMODE) Then + mEnableDebugMode = CType(Null.GetNull(CambrianSettings(AD_ENABLEDEBUGMODE), mEnableDebugMode), Boolean) + End If End If Catch ex As Exception 'Log the exception @@ -251,7 +257,8 @@ Namespace DotNetNuke.Authentication.ActiveDirectory ByVal AutoCreateUsers As Boolean, ByVal Bots As String, ByVal Photo As Boolean, - ByVal EnableAutoLogin As Boolean) + ByVal EnableAutoLogin As Boolean, + ByVal EnableDebugMode As Boolean) Dim objSecurity As New PortalSecurity 'Item 8512 @@ -274,6 +281,7 @@ Namespace DotNetNuke.Authentication.ActiveDirectory PortalController.UpdatePortalSetting(PortalID, AD_SEARCHBOTS, If(String.IsNullOrEmpty(Bots), "", Bots)) PortalController.UpdatePortalSetting(PortalID, AD_SYNCPHOTO, Photo.ToString) PortalController.UpdatePortalSetting(PortalID, AD_ENABLEAUTOLOGIN, EnableAutoLogin.ToString) + PortalController.UpdatePortalSetting(PortalID, AD_ENABLEDEBUGMODE, EnableDebugMode.ToString) 'Only update password if it has been changed If AuthenticationPassword.Length > 0 Then PortalController.UpdatePortalSetting(PortalID, AD_AUTHENTICATIONPASSWORD, Convert.ToString(objSecurity.Encrypt(AUTHENTICATION_KEY, AuthenticationPassword))) @@ -635,6 +643,20 @@ Namespace DotNetNuke.Authentication.ActiveDirectory Return mEnableAutoLogin End Get End Property + ''' ------------------------------------------------------------------- + ''' + ''' + ''' + ''' + ''' + ''' [sawest] 02/06/2019 Created + ''' + ''' ------------------------------------------------------------------- + Public ReadOnly Property EnableDebugMode() As String + Get + Return mEnableDebugMode + End Get + End Property diff --git a/DotNetNuke.Authentication.ActiveDirectory.vbproj b/DotNetNuke.Authentication.ActiveDirectory.vbproj index 6b964ed..c9761c3 100644 --- a/DotNetNuke.Authentication.ActiveDirectory.vbproj +++ b/DotNetNuke.Authentication.ActiveDirectory.vbproj @@ -32,7 +32,7 @@ On - v4.0 + v4.5 false @@ -58,9 +58,9 @@ false - + False - ..\..\..\..\Sites\dnndev7\bin\DotNetNuke.dll + ..\..\..\..\Sites\dnndev80\bin\DotNetNuke.dll diff --git a/Login.ascx.vb b/Login.ascx.vb index a7b3ed7..72b5099 100644 --- a/Login.ascx.vb +++ b/Login.ascx.vb @@ -110,61 +110,64 @@ Namespace DotNetNuke.Authentication.ActiveDirectory Dim theUser As String = String.Empty Dim strDomain As String = String.Empty - Dim userinfo As String() + 'Dim userinfo As String() If Not String.IsNullOrEmpty(txtUsername.Text) Then - 'If UPN username provided, strip domain, translate to netBiOS - If txtUsername.Text.Contains("@") Then - - '***Changed Steven A West 1-11-2018 Bug fix #12 & #24 - theUser = ADSI.Utilities.UPNToLogonName0(txtUsername.Text.ToLower) - - '***Commented Out Steven A West 1-11-2018 Bug fix #12 & #24************** - ' userinfo = Split(txtUsername.Text, "@") - ' theUser = userinfo(0) - 'theUser = Left(txtUsername.Text, txtUsername.Text.IndexOf("@")) ***Changed Steven A West 2-25-2017 Bug fix #12 - ' strDomain = UCase(userinfo(1)) - - '***Changed Steven A West 2-25-2017 Bug fix #12 - 'strDomain = Right(txtUsername.Text, Len(txtUsername.Text) - (Len(theUser) + 1)).ToUpper - '***Changed Steven A West 8-29-2017 Bug fix #12 - 'If strDomain.Contains(sDefaultDomain) Then - ' theUser = Trim(sDefaultDomain).Replace("\", "") & "\" & theUser - 'Else - ' theUser = strDomain & "\" & theUser - 'End If - 'If Not String.IsNullOrEmpty(sDefaultDomain) Then - ' If strDomain.Contains(sDefaultDomain) Then - ' theUser = Trim(sDefaultDomain).Replace("\", "") & "\" & theUser - ' Else - ' theUser = strDomain & "\" & theUser - ' End If - 'End If - - '**************************************************************************** + 'Changing code for long UPN ability issue #56 sawest 2-6-2019 + 'needs to be cleaned up and removed in later version + + ''If UPN username provided, strip domain, translate to netBiOS + 'If txtUsername.Text.Contains("@") Then + + ' '***Changed Steven A West 1-11-2018 Bug fix #12 & #24 + ' theUser = ADSI.Utilities.UPNToLogonName0(txtUsername.Text.ToLower) + + ' '***Commented Out Steven A West 1-11-2018 Bug fix #12 & #24************** + ' ' userinfo = Split(txtUsername.Text, "@") + ' ' theUser = userinfo(0) + ' 'theUser = Left(txtUsername.Text, txtUsername.Text.IndexOf("@")) ***Changed Steven A West 2-25-2017 Bug fix #12 + ' ' strDomain = UCase(userinfo(1)) + + ' '***Changed Steven A West 2-25-2017 Bug fix #12 + ' 'strDomain = Right(txtUsername.Text, Len(txtUsername.Text) - (Len(theUser) + 1)).ToUpper + ' '***Changed Steven A West 8-29-2017 Bug fix #12 + ' 'If strDomain.Contains(sDefaultDomain) Then + ' ' theUser = Trim(sDefaultDomain).Replace("\", "") & "\" & theUser + ' 'Else + ' ' theUser = strDomain & "\" & theUser + ' 'End If + ' 'If Not String.IsNullOrEmpty(sDefaultDomain) Then + ' ' If strDomain.Contains(sDefaultDomain) Then + ' ' theUser = Trim(sDefaultDomain).Replace("\", "") & "\" & theUser + ' ' Else + ' ' theUser = strDomain & "\" & theUser + ' ' End If + ' 'End If + + ' '**************************************************************************** + 'Else + + 'If username doesn't contain the DOMAIN\ already and config uses Default Domain + 'Then prepend default domain as prefix + If (Not txtUsername.Text.Contains("\")) And (sDefaultDomain <> "" And Not txtUsername.Text.Contains("@")) Then + theUser = Trim(sDefaultDomain).Replace("\", "") & "\" & txtUsername.Text Else - 'If username doesn't contain the DOMAIN\ already and config uses Default Domain - 'Then append default domain as prefix - If (Not txtUsername.Text.Contains("\")) And (sDefaultDomain <> "") Then - theUser = Trim(sDefaultDomain).Replace("\", "") & "\" & txtUsername.Text - Else - 'if username contains domain\ then check if domain provided is canonical and translate - If txtUsername.Text.Contains("\") Then - - '***Changed Steven A West 1-11-2018 Bug fix #12 & #24 - strDomain = UCase(Split(txtUsername.Text, "\")(0)) - theUser = UCase(Split(txtUsername.Text, "\")(1)) - If strDomain.Contains(".") Then 'canonical domain provided, translate - strDomain = ADSI.Utilities.CanonicalToNetBIOS(strDomain.ToLower) - End If - If Not String.IsNullOrEmpty(strDomain) Then - theUser = strDomain & "\" & theUser - End If - '******** - Else - 'no domain provided and no default domain set - theUser = txtUsername.Text + 'if username contains domain\ then check if domain provided is canonical and translate + If txtUsername.Text.Contains("\") And Not txtUsername.Text.Contains("@") Then + + '***Changed Steven A West 1-11-2018 Bug fix #12 & #24 + strDomain = UCase(Split(txtUsername.Text, "\")(0)) + theUser = UCase(Split(txtUsername.Text, "\")(1)) + If strDomain.Contains(".") Then 'canonical domain provided, translate + strDomain = ADSI.Utilities.CanonicalToNetBIOS(strDomain.ToLower) + End If + If Not String.IsNullOrEmpty(strDomain) Then + theUser = strDomain & "\" & theUser End If + '******** + Else + 'no domain provided and no default domain set or UPN given + theUser = txtUsername.Text End If End If End If @@ -277,9 +280,9 @@ Namespace DotNetNuke.Authentication.ActiveDirectory Dim loginStatus As UserLoginStatus = UserLoginStatus.LOGIN_FAILURE Dim objAuthentication As New AuthenticationController Dim objUser As DNNUserInfo = Nothing - If UserName.Contains("\") Then - objUser = objAuthentication.ManualLogon(UserName, txtPassword.Text, loginStatus, IPAddress) - End If + ' If UserName.Contains("\") Then + objUser = objAuthentication.ManualLogon(UserName, txtPassword.Text, loginStatus, IPAddress) + 'End If Dim authenticated As Boolean = Null.NullBoolean Dim message As String = Null.NullString authenticated = (loginStatus <> UserLoginStatus.LOGIN_FAILURE) diff --git a/Providers/ADSIProvider/ADSIProvider.vb b/Providers/ADSIProvider/ADSIProvider.vb index 7d1103d..7e373a9 100644 --- a/Providers/ADSIProvider/ADSIProvider.vb +++ b/Providers/ADSIProvider/ADSIProvider.vb @@ -223,7 +223,30 @@ Namespace DotNetNuke.Authentication.ActiveDirectory.ADSI End If Try + 'debug logging issue #54 steven west 2/6/2019 + If _config.EnableDebugMode Then + Utilities.objEventLog.AddLog("Description", "@GETUSER:Getting ready to getUserEntryByName. LoggedOnUserName: " & LoggedOnUserName, _portalSettings, -1, Log.EventLog.EventLogController.EventLogType.ADMIN_ALERT) + End If Dim entry As DirectoryEntry = Utilities.GetUserEntryByName(LoggedOnUserName) + + 'debug logging issue #54 steven west 2/6/2019 + If _config.EnableDebugMode Then + If Not entry Is Nothing Then + Dim key As String + Dim entryStr As New StringBuilder + For Each key In entry.Properties.PropertyNames + Dim sPropertyValues As String = "" + For Each value As Object In entry.Properties(key) + sPropertyValues += Convert.ToString(value) + ";" + Next + sPropertyValues = sPropertyValues.Substring(0, sPropertyValues.Length - 1) + entryStr.AppendLine(key + "=" + sPropertyValues) + Next + Utilities.objEventLog.AddLog("Description", "@GETUSER:Successfully retrieved user entry by name. Username: " & LoggedOnUserName & " Entry object: " & entryStr.ToString, _portalSettings, -1, Log.EventLog.EventLogController.EventLogType.ADMIN_ALERT) + Else + Utilities.objEventLog.AddLog("Description", "@GETUSER:Could not retrieve user entry by name. Username: " & LoggedOnUserName, _portalSettings, -1, Log.EventLog.EventLogController.EventLogType.ADMIN_ALERT) + End If + End If #If DEBUG Then Dim key As String For Each key In entry.Properties.PropertyNames @@ -235,8 +258,8 @@ Namespace DotNetNuke.Authentication.ActiveDirectory.ADSI Debug.Print(key + "=" + sPropertyValues) Next #End If - 'Check authenticated - Dim path As String + 'Check authenticated + Dim path As String If Not entry Is Nothing Then path = entry.Path Else @@ -264,9 +287,18 @@ Namespace DotNetNuke.Authentication.ActiveDirectory.ADSI FillUserInfo(entry, objAuthUser) + 'debug logging issue #54 steven west 2/6/2019 + If _config.EnableDebugMode Then + Utilities.objEventLog.AddLog("Description", "@GETUSER:Successfully filled objAuthUser object. objAuthUser object JSON: " & Json.Serialize(Of ADUserInfo)(objAuthUser).ToString(), _portalSettings, -1, Log.EventLog.EventLogController.EventLogType.ADMIN_ALERT) + End If + Return objAuthUser Catch exc As Exception + 'debug logging issue #54 steven west 2/6/2019 + If _config.EnableDebugMode Then + Utilities.objEventLog.AddLog("Description", "@GETUSER:ERROR:" & exc.Message, _portalSettings, -1, Log.EventLog.EventLogController.EventLogType.ADMIN_ALERT) + End If LogException(exc) Return Nothing End Try diff --git a/Providers/ADSIProvider/Utilities.vb b/Providers/ADSIProvider/Utilities.vb index cc363a2..7399254 100644 --- a/Providers/ADSIProvider/Utilities.vb +++ b/Providers/ADSIProvider/Utilities.vb @@ -255,7 +255,7 @@ Namespace DotNetNuke.Authentication.ActiveDirectory.ADSI Public Shared Function GetUserEntryByName(ByVal Name As String) As DirectoryEntry ' Create search object then assign required params to get user entry in Active Directory Dim objSearch As New Search(GetRootDomain) - Dim userEntries As ArrayList + Dim userEntries As New ArrayList Dim userEntry As DirectoryEntry Dim userDomain As Domain @@ -263,7 +263,19 @@ Namespace DotNetNuke.Authentication.ActiveDirectory.ADSI .AddFilter(Configuration.ADSI_CLASS, CompareOperator.Is, ObjectClass.person.ToString) .AddFilter(Configuration.ADSI_ACCOUNTNAME, CompareOperator.Is, TrimUserDomainName(Name)) - userEntries = .GetEntries + For Each _entry In .GetEntries + userEntries.Add(_entry) + Next + + 'add ability to search by UPN for long usernames + .SearchFilters.Clear() + .AddFilter(Configuration.ADSI_CLASS, CompareOperator.Is, ObjectClass.person.ToString) + .AddFilter(Configuration.ADSI_UPN, CompareOperator.Is, Name) + + For Each _entry In .GetEntries + userEntries.Add(_entry) + Next + Select Case userEntries.Count Case 0 'Found no entry, return nothing diff --git a/Resources.zip b/Resources.zip index e00c305562329de861dcb54783d274cc6fdf2e6a..57e0539393c7fc73ae7cfcbeb5370d4640ffc90c 100644 GIT binary patch delta 41930 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 delta 40502 zcmZs?Wl&z-mbHz$ySux)ySqbhhd_YfvT=70?(XjH?!i5{6CA?(oRdD?Uw3`KuBy96 z&9!#bzGuy`*I4BRP(|rbgevmj5EvjJATS_oniz`i;zRhxkRTv#L?9sOAQWjiKAP{*Y)Am?+A0{LYk*I8xY@Fz`W0p`aGe(F;n!jZ5H} zrs{(}-7ikR8_41X9CqJJ8$N%y!$AI6hP~GW$nhALry6gcUnx?}A+3VN8E|*94xK?Y z5_uBgCg>HcPan+5DH!lArLI5b^M$<*Fi+rs5!gA3t!PX?4{9HO{R8@B2#G1#lCa=j zCXj4aUMSubQhfmp&;l;9j>8M&Vo`~_@Q#V-Mod}%LfivDQKdbcVgeH80XvU5n980} z<@yXj=~Xrx{NX3M>wLxta--pM%Vlbx{~MmRw0H@?3g4<)1T6#5@aIIB zZsYD73G>JtWCabNf7o|6aEzEr~n zy8ImmgwQE_+0fVT0<`|`GDEGPSN*OGrS?iEh0}gZG$D%E^>*>omd!-15yS4R_`7sp z^j&Bm7)nn^rZX|oQEH4rEDy#M*HWXt$(<})sP;?v$5gQ|loR@83htOpD=##utHBi& zOodqhDahYwoi<0n{dUN6s#SgT>XToNqnRc7;X2u_e!ZErOS|87qqQb2&Ag>f0Z{$U zM1#Dt{o_K8Wqk0)6>?j}REMJaBz?<1(5*J#{Vx_Q_5gBS=4w!)V4F%JiM8^IdyZLx z7E51-X|KXnrzisz*er`*p(sI>vJW(0yf=IR5{)q$#o9&sM@H9*T)W!TY1Cb z#@owMtBZ}3a^FS#d7_cd_NOb#HuvYQE$@4SE$`3OL%sRI393SNHunlk`{0@{^qkG! zi0V6jw&E$PKU9Vmi~E(v+r6{PJWXXw?YT8%8odwqu#m7qy^LN$A5w~V-UKj)7dE+o zdj?f)I^?asqp`&yFPSgxYNpo(3WPUyN<}W)Tny5(Y6jkK*KJRZ8A3}}FTUC1aVOh4 zk3x$Fj4KkCawfi%E?znY+djFWvyJ1D{8M)b+u8at7Jexxo$+heHn?xa`4_VtqHSmH zdgJ(ywU3!(Z=9e>!Gf0JIzwdSjSh>zdx*5Imeml~&tG&k85fHsjUj1olzH1n9dVGc zX>Z#n1gW+v{Svbed&R@*j!oOfEk}!Rh7LoYKh*^LQiwXpwQ1>zNn?J53FcrZ=b*Ed z9-&fp5;l}F{Q36HetHdb=A5<6n3gWAcaPCB&9!VrU3I`0{+rNkU&n{tExAvYD)Y00fywHo4X)Nmhfe(6ufERyZyV<%rLzUsBNb49AeZE` zD}QD!P#cvdXbVk$P{_BO3LQjvWY}fHZP9j8EO#(SX~#Sg7OQTLD$ndS^QV+^C-1Yj z=>x)Y()Z89YMIgX`BYb}3vxBiM{$0Z>!>gdUc*^$f18IL`_6Kj7IX|D7TzED|J|h_ ztJ&jOlX@VjfPnQc|8B|ZXxsmbA?h2k>ntd~()+|xT_W_TA@ZG*6%|d8myuz`%VOGR zg-Hs=ZiLE*@Em{}?l~u0HtWgbu@c^~;)&*NB0sZN&19w303z zO9p*Z#w6t#W3lymwOb{8T$u_059^ZB$Rt4ml2F%3@;-pWfTjzIE2FDBt!4`4R=8Hp z{U}xRW&dGqlHM-*6-m8$@pEj0hY=<-Orbg{`G|B+*PWORY`5gFDu6J z_27c)N;&kPDAy;Py493}2yw9pbu$EeiE8R_$g??1{oeZ+pY3tC+6D`WQr5WSB(DiWsLaDdTDBg{T=c#)7T1 z{`!5ELBlQ2ZX&(IOD%vsKgR#E2l*OtD%2eg?Kfg*?C!v3CX`q9vl#|*fd>vE)gPff zWaxKjKh!r7wAy_D^nYHm4BhVvNjxxem=ysEmVJw$WAA@oufJ?egUJR({Ff&4ZduMB z76gPVNfb`pEb{+Xy##uRx8ZQmaoa8O+0O}gp=-?ef=2C@`P>(KP!+I=LfLuTFG4!m zG$@7TDno~VopW#DdqVwy%~wPd(PXYW<1nipAW|RdviQxCM?C2iP847Q?Gkh%`ZL|~ z<0*KBsc~hsFgSs-RiL2-`vmfZLSo6Vv7MxGW7@LR(3@n)Dpw72Jr7)_YFVlDJYL06 zyaq@X|y`n@+3h=-rSoT8`nGCA4Dr{ zIF&EKl9PMMn=vvR@292M{P=}B7FT*4OQJHnG3;REEZ)&AO4N_{Ig7$sN83Bl(QS^y zLP24hH_Q<>W|^Fqf~?sj757iM10IoHr;Utw+WFF;sEgPidZy*!MF0cQ(pj_ z(4PJK1QwzGo={Bh=im;z-yw5W>9ZDGezwQQtsR|obvIcweLnZQ4OXcl)fo1&ZN*~M zn~laTX&#vKt2FDIKaKBV`psYM9{O>n3zy5kB2Xh-`=l|$esR2)+r`T?spIYShDa*Q zPllw78as%HdjzUWmThvH-WEJw!w1~WS7iLZ?wwQ79MB{9;O-6Y>eucFpK>Yl#Zc8b z5HyDkO7*T0aq?A1%@2>4ZJo8m0cmLJcuCWPR1#oQP&<6mzO@_YEqJ3_!wvJcjGI!u zi~L|K(+5{w?%%uYTm3%YT4gKUIcy)PV(tykyPTG?2>|ZUtt8n(eu9{{4?nwwD@C>h zT!8Y4Yu|*TKZstSlxZt#9Z$hz3w^+`?@8yxi*}AF7ztPWyuB9{JcyNq#1CDNd@>rt z?!@Uma3noYO#+7V1cMnBJZ>+t1D@k{OS7V>+irJdDmsXq_3K6-1UE*cNV3?HiBKCN z$RY%8IDi6^FF$V_9JDF}wIt%oGfec&fC-%glC`d+A5B%!{yoP$vZeRAx2uRB4yJLG_O8uukK?hlQiV)g`{fbL^ zH)tuUwVD5Sj?{Q~E=?a&e{OwdfSD;&Nt07-L-ECaywu;lgYZQlarUabx~*i*Cm=N7+!4p}DItzv2wHpxTlk0MFuGGh zD{!x4;~>7fp8W`8D#x3G^t#iwBzTuFIfqo5xQ)tmL~+CIO(13SZW$M_Yj{u#EA{#c zguNaR+D^=`(`Z~lqJGCI<3bb=*8Ar_XE}!4T!eTcTK~2$Gme6O zOk{^qo@`a{8}4-FzOJ6CU%XJDTNkXs2`@dq;+%oV=AEMJ??L;w$@SV`tHYIv34p+y zvbPmUK-lD}y{%<>R7J7l{^*#(ZB-B`gq(yzt2w(bKw&Ck&w!?jdQa=A-nx4u9I ziz+(j5jlroq)J861rOWULBE1~{aUW8@@|UsNvohL%ix{1u;fm3y%O6quKGebro^xl zFj37wj*H<9E<32jFTWfw@4McI{%P#R6Vh_Y$g%&FE$`{NALn!FD8HHeM-mWb=2}rJ z8E=93emvwgZ^aQt2SVXrkTE@lW>CIIPRC=dX~L1FI6Bwy~J4%th9q@vwmH}t4{@zJGB%HoIMzvgC%wG;1 z4G}8=>5GbrNuw=6DTn^;-hg?*0mf`=S&pi<$~*b7i2=%CH=@6HS?w4cbn0Z6wp{>@ zA>>9qrxal8s`W{zz*p#G?Z_PC<_7q;^DN%n%N*B0n+W;7lyoa z6C2H(>SM@j#CNJ(tg}m;J32;>DT0U2--=V&Q ze(mA&ap{9$+Z?c^8c*t8W`cx!2WfX~n)_361eK*lZ_~mBfi0@Cdv0bi*Ja=T75bRv zJ?tX-3Y8o+M9Rj}3q@nLHX}20>8@}7mIld$F+w|l|EIT`_SpVW`2o>Fq;wi)WWWC) z!s%sJiya^PHbWdMIpB{>;=4c6qY#S)9o^Z}t1Qv-oNV%9E?I?Xn7UWieUCpt%IZ`o zKOrCD$K#J@hMchnZ4r(fe(QqLqs>x^y7ZQeMu(siTF#VwVU~`(cvizkDpcfBoxejt zecgC{(;DcpaE2n7emCV#_!;*tZ{{QFk)VaV+CR?E(+p}l70|L`k16L(yk+c!y~FlI zH*Y-&Vh#`Ir`stl6fm4~>4Ce%IjS_u;uSTXE;ma&RIpNf~A&h#i zJ#WnWLG8(90$`&63rdU_oF|_$9|0YMzoKY7$f7rHU!d!ZXS2$X0@w7nO4dsnU0M+^ zw8a+~X+-kzf>>{$oXSP>h8}5&HncSG*Yj(WyP^iC2bY^)K*vE<`^O%Oa>cPI&R3&h z*SJ>m=B1r0R*MT`-vamZDYBKp=dZ@WhYl4g5v1>}fzG93<;%-e*~vJAvf?!TmVt(6 z2en9!=g2{Ies9f#gG~JVimuQ^7h+$Py-KuV93x_l=a8S(MQ^1qioQw{#~%u{j!KtX z3~DYHorqd$c3;zEZ@m?Lz~}NQ^JTs?M%(GQ;TJtIFN>B~e=b+cx*inyFMorrd{R=9 z%hYKmz^MH`0sRU2f2K7i3~DTro#20uYpc{-|8@g^*=UDh4F>V=k?toJH5L<8$iGD_ zLw`ko*@%Jt_+KIyh-mB3g#Q`G0nFoiW${VDs1dE34bvMAjy(P{Zsv^UjR`@_=~cnI3B>ux&tj7uDfmCvj&bnCnsNc1bKM{`266&%^Z1!FRez(Hjx(LYr)U2)%F=v?uTZHn$?hVX7bM+Bn zavA}mHQM@~)~j7cA=L8;S7YNi;Prx~HZ`W_>3inmBlNLkkrN85nh}hM=KFk`AkZ-b zEXm{HR^SBWSxL3wrl`}R@I6cX`NB@^??egd#I46&-nY;CV>;S07_j}>E$=*TQ30wn zk~rak*)xw-@LxuYKiF~y&7sa7z8BH)l*B?8{!$_A4TCq}&S5YvGOUD$pkq;jSb)i@ zn1bDHX2Unw(|!>nERTv4Y}3Ft3-pfgw@9C84B^v>J;YT=YdkftA%PW#5Y!q?V;?Fq zpg#x+PIp2`Mt+7o(!R5XV2!&&YX{O{`Jj_dM}NHju?5vmnpf%Xhliw1W|oo*NBV&u zZT`>!E&ihCR~xR09?XWmNCxLvgTWfiWAP5usZg7lO7c9Jcct&CAh%~TCjR0+GdK+p zP(P-~np}fWjkk7MmH-)WHKPocFrBr7E}eV&WgvTsDk_~I4dbW;(f}`pxd;GfsR{vB z1(6(9+k_byX@?-wV3(3{WD36w1aA}o<}ZzxjIYBZ-!n~Ovzm)GNj2W%XR@x_XIp5S zIHGS6+HO6@f0VA%L(eq!VHV9xlc$}yKBrNIAjCE^9@K;~CF&*|DMs&m9-f;Dk;#x{_Ji|!Q$!MET zED-4YS~0Ina$KzNroexQ(=D3+?lM(T`+8@W?b-oW9;iwtktMn4(7Ja*n=5eQF0ksr z>G-Mcr^6Mkv#|?_kVTJ7CG{xk0M`5PzcLZ8Hz_1l$7Jw`^M&UCmRMXN+}@XJr*n&GRxk=q{sNUHaP z$)v_4GT-H3fqFKzUERVAvl8jlqyDc-nAuSuVKng8skZU;$)^UQd<-JQT^r4eAPviGV>QM5V6h-WRQZ+|;q0v)>Oo!^6Hu6N z8wrPYpkpt+)0=*18?25<*s0~Q09L^mcDP%&(NZU5!IC%ywJG-p9yqhva0$bOFO-ls zXchS25Lj?+U5jd^={1_I8(mPJh^l4c(H!-z0^efh4n3u+p??AiN(GvjbTc<`s56M~ z@{4z@5N@W6K3OJ*7SthqOpIR{W3t`Sa^S}hgV+gWtl>UX|uWGgsR&G zJwt7eNk;cFS;KLSOW65|YYI6wylo-eC^#_H7Txqs?7H%c5)_q~EU5WRBMqj>1?{2O z=%_%HDs6-E)Mho{m|MP`l*+ZZOs zC!@~gIt(!YR~8t13=y@Os8{DW(Kg|ATiOM4r9bSyIk~u)UJIZs&HwrPt!-$i;qv6- z(x}Luen@JMl1w&KNDVXD?h6F@&j}17Hk91Jn=%+e%BL@4AbTRE1Jvt5h>N`{O9#;j zieuvI_d|W$c+%pwm{S7}s}o(0%N|!OSpo>hR0gEL7g7~k?tGd;9E5eMajI6KcM@9t zRvjYBG2dFS>pj;)F-wh>kjBd3;u_0@D-lwz#VmWxXYxmQl(nNkz zH;Cq}SoNQ-gIh!+?0l2X?4JW!QUU`>Z>MAQ zU5tFZUA!IWr@34;f1#$Fm;LP)#(G9lKa+|?ov#YBXwi>(=9b?v0u+JFb%zjEtJ@2j_{5b!ELjGUrVc9_e--_?arZ!u;2qieT`UD4<~aIga0bk*pC_?*z)B%}d9l2)FVP97R3)JuflvN$w$4r4uu zyzpyzm|`d%R~r{Xw4Dk_+uB!pSav}l9@>~rhu|;jK1RbZM}(peL2GYS_|V#&d9vdy zug(s<>3($L)X87xC;64wK~XVYw%v!}awc>|OX3wwd@WS(?6s#3bvFanLmS~8Pb0*! zbidet-?Px!!&gxs4KXxD`j-Q3(@`w6ASIIL*MCdNeyWUTDny z+$Y{y*Lu93=!h`*(Pg2_krMqjk_ln8b4F|aEwugd#PA>~gpoF9gz<9SLrnI32_i#t z+6qCE=12v@-2|9Tg;S4xkmN7#Df3m>m> zgxjgdhP*Vghl48+vzl3Xh1Qfl%xBFBXRl(IX|Hzpx@AfH7+;VaJGj}j{J6wx%bx8N zo6tmk)#SQrBcR5H^%`rTQlE<^7a(Uq?PNP$>{o7YW`~Gt@z$>s!5MclfavI;4e^1x zR%@>q>WRJe`>`0AiktP<;xk+B;q;qfV0 zPK7qB`E_0sg;896b{gTW%`%!lptMnbv7(^~VTDF!$u#O{zDc@}4qkBaD8c$Qa|z{j z1tsk*7g|RVpv6ElxhIms6uyZ4X*1JGPpxG1fq538z%2XuyKRR$V+MpSe8Hh!?WaVX zkZZIRzF#JgC)6P>3F48+Rtj_aS-i{+m0ev4m-?A9tcf6rrXuH5n*{6gT_78lhwf8k zuM$38z1#~;dh_)6tBdx!EZ385=sXWUSq#F{i zi%fAT1$n3@werVe5R@qnJXORWjU2%tkQUXFNjGf@`pORNlW{Y_Fr^ie?T@9ZKND#2 zOhKmkre&>#avO2ZpeuwM{%@E3p&`g$j^SK)7)Tby&G%Qt;xO1j{OB zznfYC>q}}|RCjWCRR=4os-#Y|U)!dw`K&3QU}%O}9_t-L6&+f*kU;IErUnV_z?Pr~n1GCqE9fX`xrwBMAD z-#rcU@8@!^xCwK_p;9>G$iK@oI^so5qriR_3@f!U(UX>TDiQEBO*>qZ1raDooF>c~ zz8;DT=AU`^QtOZ_Wv@qZlpFaAd`q~9tSig0M~@?igjG@yx-PKAhp z#df~Pw14E2Ab$=0e>klx@3_H((t~{hkih(ISY5Tjih>NJ*;;xm03{fdSvXXXZITSe zf=u*#sO$9&D>9c)HRp|3s%C}_yMKP3ww968&ix|=j%r8CgO}vdL*a6^ml8KWtrj&O zIr92LwnITcfZRYe8j#8iZuGZ77M`Gtc034|D@h3p6H_kBVKA~rjwWZZ0G(GD>dq8t z#3T$X6oGHQ6jZ6!70~W2O!|5=iVWiij;fX`#egK3<#~#VY3~JfUwR%#Tw^Tx^nE6| z1WhpUMPmVX!-FT<%zgyD!5=d=LYY?zneFDL_oI(B?^P@74lvm&5sHvwDy1kP*!ri= zkPk(1JkGd4&pn#awz^$BAQ68XuV@!`eS73@onU_wwO%~-9RRzfxT?N{<%D0K;rb$nJw zL@6Yv0KYkJ6Fo8TY)aozJEiF8E<&};zU6v-;HR`8i!weffI_df?#_0DcrKS~8JCtVKbhj6^s;~ROO%dQf?N&$SoV3>hPIBJ^ zP865!2QwUCe5pvQ|^=|B>T8YQ8msg2Y-g#<;pp28A+Ed zSDMH)U3Yg<%AsJu>t(`=lk0iyox z{?09txL}%xlt2fsZteo6r#Z9d4#!h*K63f(Tihe-cr`SnrZ0GECK)h?LJ+QraRM}PJHBVz(KBoI2*~R?$(`bZ%9*2(lAlqar}+D65g`eUJzQe9zyIu7 z!0zpy0sf~!5B<|XmDsKOr@%o#c%_rRNYDcqp+4&WYM}r5Ao(Bu%2IUPXF(CUmU)NX z;YqQ*)}(~9)-RV=&EIHDLKqqtC)p5LGwM~MAq^l&h&;_7%x|j6e(s)%z7IIrG(UJU4C$l&#pgPP#aSquhT1`+Mv9%>^Qty0`jfB(Cla z%}9w?{198Mr5Dw`jmDj3KLQ=h?`RWTo`?Gms81-d?rUNg&ioYxu*%ZXeNsgSJ-!EQ zYePV>O*S3-2z5wci!}m+#~Cpi+3RVfxf<|O*TyzS&C;=i+6OqvetPA`Y7FI zLf)6RB`mT4hIL6^6F#!8m!l|5L^p*dV?q@)U`Sf<8i6PlW_EW+u z2W1Li&mFdtRBz=);G778Z(qsHDrmM(GQ_4GrF_X?TX# zFZUHP?Ib!NW{Qsa*K#_$EpMMh1&6oFxX2|f`|#PYk{u$4$?7X@l_ms14q>WsEm0Zh zRqOO#zX{}1;w}Ns@7pff+!WX8v_A_;5vOkB`A|!y=n#zZ?GKwpCKt1*MyOjgMeHgD zzlwVRKI7t+K<~@MT_FPcADY|pa(x&=o7h)~=Fq|8FLpmt`R;LT82i!81<4aE^ai4> zzSlM@$YDcGvgIUi zY|UrYl>-NgwGzHtXJF0e_o6M@*9gb?mq*b8%j4H6sIWa@v^d_moc?UOZ5rVX? zq3rW7uyXNR3J_Pa_*Rc|*W90IDQ@&{&ChPBZs)@P(+4zEF%*A8|DaDoga85A5J)PL zAp^8dS0Db>2x7zjo>2UUm-u%7Oj38=0e_$epzY23R2LjNJ6od&@>ZS6mY8LfyoR^( z<0;oyq_BL^vX|cW{1!e&GV{xx24feQu-r#mY!r}=hxZVyWOBRxT&19*m1%M>h)#OP zd39ZSK3?|sPfulCagk{NWMdK6RVdLn`%dKUT@ix~%TaHe#CM1HmuRrNU|F_zNG zwIeWI{%fuWXn(zVxPYh6v|Cm%$A11XNh}cv@1Ge-p+u9N4Ua^y1qlo>VN|khNfOw* z4RZV=FZuUexZ9S_kZZ|vA}2wK-c_fQ=(@#x&>1jKCLI~Fv$ybm@a>Q(+%PaIstFb4 zzA%lnypJZ!%mN7@ujUsMf%HPXWA(TpGVf59!2F&7w{8iA0 zWTl!5FF^v3xVWYA{Y^ zz)7$;7L2B=Tn;aTqP+W9o#F})oSv-1+~|gr2$KSa`#)==5%I*5?`hAn^YxGoQObR> zZsK258IxPUqd?W2hiWu9S3Baq?}iv3Fl<(?_p#X?>vH%&xWvf8*qXTF92s|>AxK?7 zNrmQj=PNV#s92GD|2A07q**=JMn8#b;j)h@T=V;g6v3t0zBhtg@$sbZ%8dvG0SkjDT;)&{{n`Om zZDdK=*OkxYSExF!-#}T9pvZPvx4g(!97LfEn;tH^>oJ#-&p!lZ;D%y$=N|=srduF< zXGd6t+79($axheUkDK1(JWnQL3Kek-gdlw-Bcku(BPB$MtqPorN9h?Kx8a3 z3#6*~%;bG@5}9F}2?mqsXJ3E3JQhZH3hC0`p?=!i#sQ{2wtU);Wk~csf+01k^9il%jLwa*Q<&vd3i*X1W(iIO>~{ zDU=;H%b6SqXL{ezRwdQ!r0TW+r+T8WWjCsJnPY;=aOmFB>aBW9`vXE#3q0qTC zQev+_?91Bndk|=P83YRk&EVcH%c)W~l?WoL5@NV-lfB<~u35~e3XI~qPEFfhiWgBN z>DUvk)q*M(ies(o_U&Ynb_h`Q=NvaoU>1V&yQNL2en*5OlaIaG2AG+`O{f$*eD#f^ zC()01MnPDB_sG2jLv=s^R1P9T{lQIXC+Ch#8MqhgYS(8Nru+e#FBp$KKF04tZW0(p{?q{9$1nl_T;B*5A#RNC%n%g zADsiM3CyT9@of&sppKA4_j{I0wINNh|X6wT$9)#|T zh*TUFf~>B%A9me=&HIB$$khZ^Z)$Z-O7b%E=#)Z1E}lVtJF#98t&b@2)@iSbjn&ck zJ~xkHq-u;B2}#lA;`rdm^6xKI3pxuZA?vS^QUV;lMJ6Zh9B9Qcoz?Kt*%VvaXA{`^ zsxopSDwB<-vzVu|Px=*`&OO7g*hJ8;oh(J5+K5Wr2@ABqOy9m+eW`@Db$LZ!qmT>j z>A?@X)@sCcbeYJk2k~-K%9WH3#(ex$L$As&KJ|#+55c% zCkd`u26m%*RCC6SlJ&c*3hl`imST->;_RyvVx%?S>-WLVuNidoWHijAA*d~MydJh6 zCo%H{v^whmmGI7J?Me{>MUnL&HD2{eloH1lpB=ZnN%HbZP^4*0J;_{>3H=xpPNdiL zdiH8z9^ms&=@a50F=;;LMqJn1Z5Z(o=UC??F<`%>dEYZ{T(PO!nsdHj=7!Odh`XTa?n11h#|1iE9#lMGayi`j5brp6L_hB540mJtX ziqsZ>mYCzZ-4|*F((>GVa`TI@LV2)>X_;j^)y^1HTT2YyDiX`Nf&qMVd1pjKw+|6^ zCtR?9^S7H7thclQR(3Bh3NdA*(8I^?eI4`q+b?W?hKj7GHnWw{cX5j0Z#(^P#cf*$s4wS^k1{LEdl$r8&C%^DU%`<{7w&YZjEfJsS_J|>GG2o{eK!WNni?_pOX2=^;> zQ#`2TF5(Z2Q^2NJ%^`O;Uw_3oLh3;ys)v9lyjcHBlr<+N^NJV66?TI3?$UtfQc5^E z&?VHrwro179TkFztPBDqmSLMVmz^ykEp1v)ESG^5zLgQGL>fQ4DdbMY^n@}u3ITJ% z%gfnl3P1GZxqT1UgESe=$OU6iccN~Ff{{P%eYkN@ZG%3BsqOabvak2)W%j)$DTnnm zxm?Ew7I16y7?x3WM+#9n&bU5DDypP__9IVK=-VhI{>}5crnjb!)P=JYQ9Oq(v}d_y zs*yDEO251}!w>Khwg$O~l1K#&bFb6rnn)DaUjnO;Ap;3CTH)crZm~b(R|^k+onYe7 zdKb5)dIhKK9?Iy2d-&r^5fG=QQ0a0yx zJH5=zP}^L~3ZyLf?0;kJ0;kylhRx6)Rxel^LnU7r51CpS2E0TcvwS6p%Z+->5{f+o z^g)&=tz_5OrH?97BE7IFuIEWz?PY!X#9A0Y7zb^%x=1zoK09#cP68Ug5^NSm-I32f zznn{+{yK$}MlJLB(sqPjC)UO8sb%qofB^39@ggT~?^;encFmEIG;LM`$n3{%QgMO# zXkX23CSp)8w@;;8CFsZl518n;IHb--d|>f%$+PjCmg71vtbvs3w`se$jzuz{IT+|e(!4U#j<|S?E}b{BIhi= z%sV*y(aoqP!*^p2l^AQNKWFQ1M2Cr-==MDz?TOyvA26t}v5CLjpBZuFv8iaOPD;@- z%Q~9Z&s~@ek!00my77oo1dY<7(qhu zdV2iGMgDrF7Slx|ClCtvwd?~Cv?rkedkB+Dv?Dh-6>Mb#<_Wn5g|2VgQC)oI%z&i{V+{>#QaE%W~hsmbcnVevEmjl2DyOk9L+Gw9z;oR~fx)`896N?2}x zEB$3-p#C=k*neG%l+^NhflGRGCu6B$F!)~=ZT@rdhJBHJiG6{+2?FGQEatyAD(}Jc z-{o<$|CayD#yAhH|JuW;Cm+^*{NFv~*Zeh~f7!_EH46&C;((->gy6%96&N`i@yWgf z+PwT%^p}n5KJbu#pN29}2+PD6_;)UkvG4C8!(TRf24+A({OkN62|Gd*i&T&I-=_v5 z$A3kC+2|0lh48nMa;o@0nU=qM8veci@2CFD#+hjcm)>(gd;r(r;Z1(WMdf4{KtvQA?^Nq z;s5Yb@asQLd?B~9?;k5pJcG1Lr?l{M*bAf<9k)5VV9Te+1oea z)0dc81X{Ud3Au(OuC*;Vcl|K3u))25?vfD1t_%N}qXHMko43XQNL zb$0`tseXs^V?o#>1Mc-_KYG`o9v}F~vWG!=uO4D^iJoGWZkB!MK?5WEN06(=9tAxj zu9qM9)c7MUV^Og;4*@{Kjs9ynzAS+J0l#%Xf#9ifXlpi!Vg1BsZ1FR<3}a zTgx(rtrGRS?_;(%7d8`1Q{WW>n(fMaQY_Q8vsf*dzD>CXxI z%Q69Chxzl{FLR#k#M|KXYi8yt(&Qh7jZu{Wyk7F#BAxRdQcP1%M+p86M59%U5Lvug zWPMMA<7@oSjh`c3ELOywhnrb3C|A57S4oq9%q?@ieECg%cxUU(n}Y-z0_qPC{V2SL z{mtPcOfZdbf;%yG!~Gnju=Bvo6pmx|2`9yB;*k@>EUYxudTn{Q^=!%#Jism9SNC~j zI@TG~pZ(?c^wSr%liurI!Uiofe>Rh4Gz8%;{06dnBHB40FD}+_Yz1AhyQ95m5{it@H~0s#FOv+U z9W>W;QIZRWGQ#w?*)D`}0;K*|DdN;aM8Z|jn;K&Km_Nq0bQ{?(HBn+Rx3)05WX7Tg z-M!JG0vg&K!Q82ZH5|oJJavWDw>cdyI>C0{>WCL~!Frg_c-je4F?*aK>k$(0i~PdL`k+%bJ=Z>%1^Ek#x`vAhE1F7Y15%~e6ds5 z(_c8O{#>vBF-`0?zeFHU<&~E~^Jj9<>Ig0^#=-sdm~$b`>w)a`vdQ%c%I}XxYAaAl zO#R?$DCgRu^br@fg4XPyDwy1W%YqucwVynkRu|e+ipc5fn>!&>_*@~&%r(O>eWzVs-StQRA3i>zi|!$; zS{Un^{>8Le!)`ASE(LQeXEQ_70GLNXO!wFOPvhypa7ar?2P#RM3TuIUR2&B#RQ$c( zlGeLPO~TLDjKDcy0FM&)3F*S?BFrx$I@mV`_JbYjEwvmS@7)rzg%etEb(}dP>UQJy z1l{^(ymY4zK_p3>Rpw;#vBVgDG{5gojE;{nl|;wo_i2}-p@Cv3+hC(EdEG>K_bGFl zaX`>7I4v^82ZQ?SsvMOM*s7vkvj2xpyYQTLT4hd!E*>R$YVw?rN}#+* zN;ER)(KObE8(aZz{h-1s2VIA%8%1@ly63c7sC}TUHj%ov<*@_TWL20mF|3vAov+0d z`BBAYgNQD0FaSq>&vsDWWaYY8IgJ*Ypu)1_>mVREvFmaL?VwY)AZr3H~jFL<^mm7-aNRhc(F)0S)xF|AaHZ{<&UaN=}WDw?+D z{MGywMEhs)=be!o5jl3eb5Jm+@8Zw6hdR?IxN@;^l_|WqrX#n;GNf5&mOO=86Jxx~ zd8Xcg*2wwMSGHyFl<_&eDs%~o-I7vOh`o^~vCSP5@M$lmxfpQnP++9)_QKq3e%x<) z5#k5Z^+_MjK3P7AM@GM;M(AnZ3y0L7YS4kR?#p3R|D`EU$m0mIa-7&6DNKmw z21V(?l!8??cyh(}YW5|LY1Je+l<{0WOp;bWly86tR0iiOKjVEvingdCNndY-2O&uB zImLBsUE-H$ybQm2nq5|Yvp&QK1uNVx4{91%rT@p)JB3#kZCl&1ZQH8YsMxk`+gWi^ zv2CMbvtrveE4GurzMXx}#d-dl)hecsNe^>?%(TGa@dEx1khu^y-aG}ofg)s!)h z@9z3%j$SKoV<=lMI~%@qUM&Qe$bd-fTD}xW&Decs{)ipO`4qxs^quw@_k4AZA(CAm~Ks$;&Ry%T0_EIxQMq!>)J8O+h%fdF0P+pn=&B{;>4PJYs@A$Qkv3 zL{RQ}yK`&SX$nm8%z%z~v!xCHugoC3xiPHvOpA4T<4QIHoO6g^7n^{9!E~3StAe)i zqRK6@vNsmL%B33H4cI?kkLRAnFbw-3W9onsUC`tL9QkrMijTfOi_jx9QE>Cxb3gV~ zOI^p+jV$!No6Y^RZ@@=Bok_KUbAyY~MpRp>lzC+rBL3g|TWXI!78nI3&yte&nnsM3pUJ;(4}kqEiC94(d{J0PdHjeOS7Iijd%FiX z7`!8q+Ma@TCGbACNa$?gtwnBw{5y$32CVm z$2|5#VmF1W?9ssT1NkHl{vEtWh=p%@9-nEUnwK>s^6z~1<^awy%wM`{WVh?>(de-p zLZ*_e;Zj8F2GaQvILC6#PPjp8P=`^#2z*xXWRE-jx^ZWIYN?}{RMtGhNMJZ1a}uKe9Z!my^*DCbjR?{(9(mU5$t==|#c64-vj{EuHQ1S< zS@q7dpFP-DbHArYut=S*VKC6~2vDBj#^d6-19 zfbt5qF7iAJT`<}=TGTGDrhBQ`H}vFyE63|x^<%wZJ&(LwWQd)Zd%C^9HyyF9BXs+$ z@|53mK)3t1-?YV;398ltARM;!g$XX^%I!%;t2&xeOoAI(?}^5w<1>pVF^mQs1;x51 zcx%jEeI`0fmO?1V?A9UVO0!K8a~Nfxm@D8_CfmlgXq9-qt7L9`;QtkxeAeo!dk;$e zIis;-LC}0i3r=xYV4FV~XE#6W)>-6}y2_~+Jp`%2ukAY50 z!<$g6Ndv-DiO8E+UMtb_fX<1h+LfY;IimC7&mHzP)(7ZGg%h_}L)l&E*Qt99O{0mk z)&;SsYbD2Vg%eZ(32@Z(+rV?ITh}`~D8KJzjV*Y%by$(m$WR8OcTMp0{K>?#ID*OX z;l|@c9Gy7>VwbHV3_L6c_XuX-HG0lxP!52@DR28YtIPCHFx=J{!L3U|VSLAHa1e!| zEhwQ9FqO%yuP*<-qHEXVPtnJ zE=Ikts{cJy=jpMI1(qreC5)?KjTGWdxYIE$Yrut3r3AdKy|t6q^oiSmSTU{|*8F3F zZy^dGg7_YBIt-Lp@2zX8)s_R>dDJFH8t&MQF`I4j z{YE(f(I8TVN31euX91gtM&@pfwlQi-+K?xH3K=ujep9PR<&E70D<4E|r(x$_Cr)95 zan{Q4_c;^`vAr5wrgHNT=sTB?E!eJ98n9ak_lcP*ft{3&=Dw?fGj(G)jQ?Q$G`OM{ zmD@G$p8$Cj-@H4dsOck4Q+S%5&BOtN5=Uo%VZ6$6pjCINurZsySE=^sSmeGrAA*=z_U7%I-5a6_ea-^3rzC(S7L4 z$IZd-)=8r_e5^H3ov8!nMQHUGht|dr<9MlFSKy-r-Hubp!5N6o=+vvm@Gz!mOu7Mp zLRYJ%dgLG{xM5n16+BhTxXwf8C2IbFzg zf)m=Tm&;K6lkkX_iguz1{4xOqt4brm?SO~IoP+OTLgsG|9i3>;u*67=8^h6*HwZW6x}p72%HvQW?f-tX6t*>Xg@zuU-_E0t6lGI_y#TT81B&5$j}I)hmbZqIgYziRIw)0g5e@PNDX9>(BSv7>b&?Moz2n>6hRt z4t15&GhPy2*lz`t5%qUuJ+M$*{y;V3@>-)N_t}?(sr)8mRl=##j$!@R6EQXemm6`5bJ<=g$t2g8mxm6xzO0M;Yu6NHgdXaHBV-~ z1n0%xaan*lPnfSl>7=OOwazq8@aoFWPAgXN(paqG?yOeXPx}RWG9Ejti3e2AMbO{R z8~&a%dc!Rc4H-|Qg^O5m!h-(x_xc2zMq>eX+bgUjgSyL11p@ONP%c^tpjM1&TQ@r5 z*+ngrh_FOkKiRGSP!oXqeE|*umP5mBBBY0&=~&~$F1uR~O+q>TcVzEF=0|@^=WS+~ z8p#Q3b%i65(4OerfNI5uSgeR~S##o{4*i3X`VWdfH|)Xq3h~Jr2_C(%gcX#i*MIBlTZ1JQDhC?f-d1K5NTXCRv`xF2lTzexg*x=q3w% z+V1z^c==kT_^K{>bQjjPxA?M+#U)S;JsMkRtxW!_fHwxqtc%M+LA(vpO@4e4Sg8(fuy}ss?3i*PDdKi_8lkU7MlToQkdb4`e#w?mJ z7zn&Um1_{W4~dIG+n7ocmdqeK=10U-$7j{mzvTNGg(cNOh?j59 z0nk9FrP{VX=ZBD_+05Dkc{A0{51Wnsm|A_&E1z9FV;AFd1_(=&yjn{~JQ<6?pZR=l z!jcuMZN}N%JT0Ptyebe(d*1$%`C_73bpaGiM-Dy_z5c#70;G~yl|7Q?-a6~YlfCP8 z_t!cbNWEmG>HkrnxcgmuxR2tRBq^Fal@TUWT}%+Y^q`*EuIsW&?-;UGkxHZ{4O1RX zvOD1(`LP=UT^j(kyH{_RsF9+Ca9^-O1)GxLBBoCZpF3t+zudm%D!c8-XFYMf>cRN= zE357&$UUbQ5#SSu{)qEl{b1mv?l~}x3zly$u*-nfUZq(wgG!)_fqHXGM!pL<Xl53Ha*3@$g`a;6ViYIIJ97+`9-LKA7gf;NhqNIYRP>zU0ssvhwn%B zMM4ki3t%!zI^7lPu1x>Sy?~I55jSIFn+Fg>x~Y&MFrxb@Pk8n znjOU{Sa93eo1~NSM4*z6C}j&~tx2J&fGn3X1gP zZOB}bem=(q+2fW2_4^9F#p-}*rR%j*SRgAXeqE=fq1rIb36T6;>fNmw_vhsm$3E^R z0YEZtjS;R&cSkQ$<5&ArNM`0*{Q;1udd|}RxGGSYIRVK=m*Wc5g%51j?Zf-^HRWliwp`WLW3Ji>>dh^+c6TT=LDa%lAL<;25 z1l`MOelLNsdw@2vwcd0zw(VbQ7%UXi1Jvbt1efD!TfVvh7vLJX(tbQkZG43Dw>V?U zz8y%qSxXJ9?v~s4@GnTG+zc5~KMUeBP*X6N{wnTg9Y@#aa97_d=O60%qh8jf&pNx6 z*Z%Ucu`KVAh1SoHK>bxQw&2Dwl_GA`cbTju?b6=e#SB@0$?x}ZUQ~ek?E9YK4sdn> zQ)3!m7#IoYR?9iKKO7bI`FV1D!+U>2VOHAI3pzl)_3Ji~83Xlg;{=bXs0<_{Yjahn};({|767+4;y5@z*X_PQWZDZegL^K=C{HArFsb(2@ zh|)Oc-`PVcyKCc&wEFRW`FbUz8vw7abbM)~$3}qC9PC<#5l(mHVGT`+1@ zut|LrqIL*8ybjL*I_4f`053(>HT`b^&;7^qXU(R6hdK77mk`guoRcC3f&pr2exl}= z8e8UAlxI?CL!;(=xn}7f1P+O1sp~Z8*Xl@PY#cUh>4n9?zt?=`V)ZhXi<3TR{t-p# zTh(ZPSKTKG{`@rej2a|QVoc3;9=$86ePj0c3fn}kC&dWp>69e;yzSwfltemqQUQ>v zYs!Tl-K{4rEcG9}C*95zkpO7wfM|+TZt+b?C^rY*VSF&IDgTTWTo?NkBRv`kjB>am z@&EA~+?0?Eib!5XY4PBf4B9WG_UncY(w$`?eoeTedh9a&cVyNSJ*maqz=vqP;C#sd z=%Ob?YZ!!QT3Q)*d|*o*961oMkrVQ2cEF zddNzPwRbaa2Z=V+Z$m};ZF0S5F#t?QOqq+G*}h>{zN2TZSkZws<{ZR=`QM_D!xV*O)8gSJj|@ zj4*8hyLKE5K9w%e@Y(?85SDs74dMGBa>G4-9DeE*vIQz%bD46`JqsA=`Fzr}XE|%) zjt4|xxAGw%F@cE=aYW59`eXpBXtASCT6ny1_?-c}6Rt)kyo`9LV4LsSyl&{pbL5b5 zGEWUuJezuUj0pIP^dH?UH8?htRMea#4C zFe7|7Tl^oB#%vDg_qOVFK?Ggudr)xD_n>cWP+m0nucu{26yw10|JQ`FYVu!`*9PzZ znsO?>Cw*(f#763WP3Aj-=xN`B>Sn(^-#*bKK^#->f=a9(+Zv{oRT05`+~gh;fW~fC(*~q1PG! zj-2u2fk!xlia;j$0Sf0x8S)AriQIVG1~-Z)Z@X}!E`2=@3e1nv6@9=yEn&O#=tAUf zNWpj>7@bhjGO1Q_0(EupLU5LAUO(~H)}}_$i4miM$UX9)7;yzv!qwv1;+dT6kSe{| zTbJG-nCR!u+y&BY3uWD0VEwjdN1C_*oL74AP)R3e*}dj-e578-EH9Jijci8mTW7c_ zqV2v$dXEe;pj+wLOM|NG=RRbm3N`ciajyfMed7NuJoW97N9P}=UEQ{367R75b$|$SK&7RXg}hm zHa|x}X6y&rxPl+gHm=^eZ%4y-z+6{)jqo0xRzP8|ry=oipu1X_?VjcF&3@$oR*@=( zynE5Qr2aE!;ZBeY?)N`zj2-xBqAr(q<}+dHI1=lGbQSuUDf!4<_F5~P<{u1kJtZMp zy1-x$++u;jlML375j$7vDRl<`aZY^UKR~>&z_;iq=$WXjpec7$@SqbxL0zm~*MpDg z^)s3#@+Wjr-Rxe99%pScgh_{Ve+S}+kH=!G9GIblhR~mU1aHEw0MFf^tu|IcT>tV= zCM?R@Lnz3ZnO^CQxn@j3cNo$hitBrkQVM#)PE?OUgM-b1bbT4A1L*+3rgOe)EqFt* zai-tt=}ZYXDF!FZNebb}lwf9k4R4lSs2!Z%#m}Suf?4`|9uN9E=UV01EzzgKyw};d zay{<=+^Mv~O@B(e6`NOE_?`w9@I6rv)EKd|pC4vEDa1CC_Zd`6KM8d-D|>Ku5T#5?DRk5ao|CT6PA?r z@*Nn5c(nPO6azh7^%X~!fHsIfD_zYdp)dpaDn=k)U1IhCF38d>5@G8!(;nxO0%|I( zAa~4^hqig{tDvj*)Y&VHb(}xbpyqfX0Z)W$h`w5g<)zw7t}WYuZrCbFK1`hmZ_K?s z`^U9S>CJPOdued{>+wc>IRlg+m^RSz?F$5yJQN85IL|;wabM61Jry7 zGjr`K?N2~KwKtRiOeoDHFjFA7-E;7Qqs@*b`noFVvY9dGEBdxvDf#_2M~ysG4MvJQ zPD7={ekT3T3=>=%7Rgxv`#QSyJGf^|RSp5}Y8!)1 zC=+}R@W{PNLBq8tSOLKO^5~uCsAo4S_k;;2<;9reR0d-)!r&?l#r|Vls_0^u4H>aB z=c<40)$N%KeWMP4hSl^+CsUSMo)v|_Y>W(2Ar;1J)H`G zL^u@t-Ddx_D9yJauL$QBbT0BS44+;ycshTHL%b&sCjP>o{8G#lZYNvVP9+FKI zgY^OWwaLq6L16rX3KH!CTh%m!fRp#TwFn)xNs|Cee<=?JCy}X977L05Ov8$RIQa=W zc~D{j0CC88Ev89k40KkTGMR5FXo;W!E(ycH%F(P@J3bmW2Ndxy+X03=XIFE&zTCOC z9RqfIO3Y=VQ?KYh$2Qeb;o{}y^nqkU*cOCWA21cex<|%{wkC|2WmzH`z(daTDRyRV z=#}ElcYzZ?#t}78drs+>V1liu!ihaHISHErEVD9*h+@%O2Zey>Ob-$v-w3aRGe4|0 znGvuWq6|f7;{29M;q04Hh9T=wecP-}KSGeNS4)FgP7=%m!uFVrSUh?K+M*272I+T6 za5=HD2fV=KHggc`m(+s?0O(d0!tTK*nmy27`J-`4;zshLW0P9;pm-W}Bt29Jh?WCxxP}3s@+e9P)XY#sqv}w$U2lEQ2Qm#?!CD3Iti} z<^N`^l+k-LNAdEEtSj(9d-X##E#nsh3fodXH}p-F>gg{`@y;tXfo##ZdR8E~Ngi>t zuT%#qAFmXCS)e_Le1Tf-n%LE#zVS0h3Oq%?sh}>>IP3~@|0qYA2U0hRVYdr3Vl*wj zFK&{u?UgQSWL|3?q#y8BlhW4NU%+UVkf1f>D=5>{F~WDmtZa}K(L-8DO4G&!=*DDK zVRY15{r=$;5U19+)?79|vn56Cd=t3#@B6xmx9_vh(q6Per^m5aTw(S;-720?_ z!8Bkd*@&Kmy~$MTr}g-nc1j6WhAy=#^@5UiI|_AGRI{n&c<+AlEsc>-6S-R4yh?a1 zjq61|8HeA2*)k)lTfs{bZOP#p!0aM{(26-DS}?77q`9mtvrEeD0-`{M4a{f(?m(8|qaXVUkfK(ch!L#X7 znBYc~rJ;g~Ey`ZGS9oEVA&xM)#Ht^I6&*h{!5}SNvAb;3$91{jH(jH(vGntg^oS4g z@D(L z6}*sbw7Q4X)p&g>-h;V$0E#QYWV^pplV&in{f#67$Tca4?ZXUbX29wJq&y? z$m`HSUY*J@%F3Ofwnro1(8_8{iftKUr%0OG`w8|1B^DOac79r^NXUlZ4#H5O;m#FfSko*?Z&p02{#W3wZLuF{ z`#!AKhsC4t0 zJ)jw+FBfikFrBs=3b2WaHr^_;QG~&al1Gt~H;nk?YIrDhnzMf07`}6V#_Q(ev?*Dg z=P=*mxQ6G9{w#m_d>+k4D;aoAqUT$fFCJ<>6CtyTWLPatyiSo~5N60=R$XJykhN|W zdHr?FJKfH+C^I+i8iR=72-?3Z54LP~@NqLL4`%*!u=Hp=1`vV3r<5@wl<1h}vP9DG zP0Y84)SrbS`=Kej@0&BU-d_lrmp`>7tnPdh7YWPK15H5gXt}RP{Xu#A59Ppg$>GkO zf1zBbjFcrDzX;3N_;u-p5~Z4nx(vblWYFyO18nheut_ip_i#z<->$Dy{Wiz{kUrTO zRPCy%6EVpM5^(hDkj%rd99ppz<|z+8;?1;-sd(Pr4f%7>ZA7-HVkM`IJ*hLl-tR$0 zIV3veY^i3;S5qr~VIwE8roIEq?%=6dQghFy*i)mqvZzXxz+iS^%O%~V^~d6#7&QGu zGopBYEsr4WYigCk7&BYO7&sr1C>Lc7I^ROSq87z48$cublDrH)aTl)?7dw$U_ezrb zE*qbo;~d>t>5L_A+(_M-=(ssP}LOK$l>M4@wXZh0!>`p?KnUQJi);#C$KvYTm0$19TJVshueFz4!! zs06hv78Q1TOyjRQf695Az_VyZOvYwS6kPWqHwR%@Z}myV!Okv6!600IiZ7zc2+kAV z>|Q4eu&93oQizN9%Ot9pLYJq|hn7QT z5Uuki{9V*JCxE8VR8#mi@cs<5>y=;2Nht;zV_9hP$OR&zx6QeTk7!dFW{5Hv+{Bb) zngF$&UmeXGM0I(X^*RRbqvd7rlRI5vux2K7WVodD#u zVe5GV(HRO~6dl~OtMOKEO5Hx7`-A30c89Wq;B$D>8ZwqWymiAl4mh#{hkbdddHlV_ zKG?eHTra@e`-qLsk=z{>J1W8u0#ZRi*xgeara z->I=$TBXZ*Cs$_DCV%Siplx`~*a0lO_eksl-@pya98lGIMD}~$XiJRXdf2Hs(lEeenE-{jj}UW1F)vabMFJ^R!Cy8Bq)HHgy@55=8y|=`sc%=S zK_L(lQsRz!JS_?6Q+dS}JidWFs_Nuq zuA)EyhLJ+&nYsNV@Zh)_Y~GB8oZgz5!x_(aXE}fn>Y)`FYb%F`D-T%exYu^t294RW z9~r~Xj?K}OxuWFf^@$Ogo?Y2g67xShCBT@bNY)_u!^ZMiK|AOkF_k!rh-$~R4;qHH^ z>u+t?xJL*3&c+^|x&JpnyAu00eQSg0OVxi(k01OPqHNzO+n4RP>02A5K1aUk@>C31 zU``BWoo^RL^0(_-TTEbqmA(_Z)OI9bp8vIhIDMn)-`WC;46Odm&!?K90P|uP2mNr3s}HtaLE4;*`E^q)b~OL0?IN3 z0-{K*Q3l3Ijferp1?<^=_t*a1|9*S z)0WvFKoXSYUE)hrFJ2YN#*dfJ*Tdrkz(sd$xg#uWKee>dG|jGk$)FB=Iw3!j+0ejI zvz68LiI8cw4o7q{!V$F|Fz#b9@W^y%tqxU2R82%XMjfT$w2oLdPYx?bZ3xS(zv?5| zL1r-U*kU5w<_~Oxu~L2YDs7a=73a?vgzk@QgUq{#pe2ll`l zyaRIKG{pmBnhQlO%nyvu)IoL$2t(ICHU~S`3f_Qh>>SZJ(m9-VlWa#~CpWwB}->lXH#; zL<5=u3M3_3gr-z2&G`rMffnWbY_V&ptc#J%s0Z`wAl3=!++4}Ed!_Ux0Pf7o#Txm9 zX;$Wp4_g;y(nsEpeL^txo4@1H2#N6iP%Ti| z0B3@Pu|p`os6WSR5da=wg*h}+yX8JwY?u!9gaTx3@>`a!5WurQVdBGs9b3X3#|Si2 zVyGtvl;~HOsfNfXj6Vwi1PF}WYvCeDGK*hem@&n>Jc{o>q3-`(BUvuo{TVg}i%+${ z5b70-K(S0{H6)t~*NA%|m0BnUWJ=O8h_*Kw=b9+3k(yTp!6UWLU#e}fJ5B;>qjEHD>T7h|4SVMf!$F@dvK6tn>KH1X6 zc?jkGLs$?~x@e$NfVaUUlv*rThdcgQp&4B$;?g`g^X*S}e0Sa9jV{O_3BPrTlz;sx z{#N}GfKvYfu z>Du}NXC+|E93g7vN~or0zSzUVNP7yGU;SFp1-LLN8^~33fc3QtcF%_wa>Q#&?y1>CDQ{{fqa2kyh)CxllhCER|$e(WG|TvWjeNj+q9!hW4&LXEpw z(6#TpsLJbf2Go6kze9bBs1BgBf)k$okUucOF$miIv4TL563`LKxbLn)eeSO-`xrkM|%Gm>4-$rr=F|Na2EshQif?A9Ti5367 z8qv|o(*J=8BzTX1Y`zPqWoZ>76l3|1E+*-L( ztq*4&00bR*F(Y(C^i5SI6&l_kEUv|>gMgEU3DDMbw1R}K^plS?h__i#Q|aRjB{^MA zOG(ZI?%CecEB`Q1aKjWcX=HCbqS%>KG_0dIZKrtH%-;f-2gw_uj=(04^E?AoN5LLGT3TkVQsX+?P;c!IA+T#fJ(p zUNW>`NzYVPzgvJkszC0T$da2wm7DVKO&5AMSf-YyO@A-BO>zP`6^SZY2Ayrm$EEJ* zJ<1GHvC|w}3_`oyyY(Qe0zvxt4Uh8|I{*rwGDr+g1ovhOXdLzjYbvaPOX8*Zn1s=T zIu=~HO7bH~eMl^BLP$`l!g0y?F=ja?0N#_QdZZC}DtN3NV{zi}6G zZoRXt41PLTRKn;PM`_KUFvgdMCxduA-W?=XqD*vH4M!ML|6ey*p)8}p!6hfblE9BcmPxat+B_TCUnScXL)S%+^)S>BuJlkBe+%1Lk2slcKZ5%99rNw2 zIJ{&erj34e#H`$8W?;rTROoL3;Q^9+j!jm3(qh8a-r#g|r+=)V+wywjI?8S$jwj0O z5cw_1U~1~l>yU=Lj#iElD7V1f{as4aI}17=1-kC@w`>XprjGGFBB_X1$?yxP_B z$rYs%?{aA}&DKQ4dt$Nd@l+VslFI)(0%O9Pp|w^kfP?pAOZJ(~Oh`|cTfgTssr2SI zOxUHnQ`wYZ9+37C<*{bK*fGE)tr+p)=3#_)W?FNhFcbamPmd6-;%k;o$HJ$h0jDW| zI|6?k>H7C;3E~s)g=8|ka$C&a4l@}qCGF*XWVs=JnYg3f0hNiGGh~#K2H#=W+I@Kl|3UL+d z&{^)5L0fddg;vIYYQO-Q&=&5MIaTSQEa~o{e+pX(z9w{lM4I0P&+qtQqkH! z#w%#~N~$H-kl`{EDY-;+f++$(m9bASThw6+kk`fAH*Xp@$h!bE!+xQJ$fsIk&Etq|3MTmLIZ$ z3J(`P=@J$DVIUv46G?Jg+8`6nZbwI)vN{c}BVzW0F|bk(PQrBd zWoLFSC{x=^kgSLl{yQO*QbdD@7CZS1;v;4nDou4J`Zn)(G|vxH-xLLlkKW3wuh$Pv zaA_Y*0YitcFe&To0PVT~2Uice+e)s%sa0Cb%23Ca7&I?{tCIpqMY^&K^6|3Jy?o-L zf}JNXA;!2NSDljy*NxgZ9H4mQ!u6sIG~j_r1{hSbK&%R*jUXwS!sk2=ds zW$(+55hG~ysfo>K+)5>UJ(ut(2ocgn0%2~3`Pl_!J~JEAsF~u)ZmVYTTGY;dB8uO z9DW22(1?!|(62#ssdUtRTWd1K%T;_&+wzx-d{eOG+4byle#S(nTdi&wIpCcYW0)vn z%7S=!l+08kkbGwjW+yymtc==CnTbp!iKy(d%roam0%GKZl5(+tFR;75lyFdz&72R~ zE8H%DOTE$ncW~;u4aEI)9~Qh$Mg5TvJY8u8&^1Qq*)U}P{d(I5Lb%6$*w4*CcG^Z;xI8GN!f4V0v8((o}0 z<^$5rA7VGp>Ko< z0EC}h;p_r-PAn`sY@s000qTo#Qa6YQD0P~-k{iWgF~FiuVw)js>8U^A;T$?yQZ;DS z>A`$h3>{v4Nc=$bk`;?D&uD5>7LSY^h`9;gU|@Swe~u2mV+;a`q31ZLt@YskkMQ5= z7HrPJ5{MZ(1jVy7r&KQNpXqBQj1?!N01nn%?O!=MzQz$wymA#dQS2h;9PWjQ6%d86 z5T`nZ<$sCUpg(KLa;i(YC9l5%jPv{V^G_Iuk8TU|NBE1Y`CZGt z2!l!<%|&G|j8>B1+?hE@QE_|g}@Vl;`AiVoD zvKeH~*R-rsjI<-nsY;yrLJt{YfX8U&!$gz8WD>JyV4jC;xwF#M4*i;fRAGaU6$0%9 zi#|d>?(DAqWtu!#z`q~9t!R_bl-X(3vZD8e>8JBheXAh_=sclC6kksrT^y2C*TP&c z4y3bn=?bH~J@|+~6UOWikrpP+x^q(Gmzy{|MQn~kG#rf0P42CbdS7x7xc@2FC@yx_7L6DISVxJcy(V{-GoESx zGmyG)2zp>w`>)T8Ck^u5KvLqCF}Z+#gfl%j3zUfC01t?{TjNJ=@e{#$l|>9Bkob8# zrMQ1z!-r}3U(_p0FL>-vVTv#*p~eli56U~snpT|d6VlFS2TkHO+ICEXhV6093~=!1 zx1#M6GJmjW>%TD#|H5+73BkABi*=3%EG1yXVt-nt(!HyO(7H67K3&;QfRoQlZ_ER1oL^d00VzRN$Z=0RQ_q1?b!&5vc>{F5Ox zF1+rESeAZb*X!Fs;Ijyip8eh<{4W8wffUEi&!gw(Pr&DvizwbTr$6SA%x^|(@!u`^ zEgC};Y54W(l$13wdf8ciAvJa_Ttab7I*~KK_>g;~eFXM)$0A824D<$4cn=hekhujX zHrX@7vRIhR8;VgGJTeCZxq4HoJh23U9dUW|cEDkeYO!nmx%SE9ehu(;y9*(t>mG^3 zr+FgG7y~r&Y0Wax5si!jC;4*4C&E*+nkXt%&f;jC+V)v~7(6q04qkS7P_r|^dZLAG z!C5vE&rfW(j)>o`J*nkX0H2AVEC?W@Y>E6klhrb**7tDq{G;@!ile0)lYV{TA@2Qx zB6I)>)tt9SX(q=Qxjy`jU+EwCW#v3Xd>Ee$a}J=~5q8B~^!?$fd4kDnj zqYJ=bt%>@)Y1Pp3ct3gVHAXbNf+GVk>W4Lh_cIb$39`$4_+-L)qCjQGV|lY$Xz`9S zL*)KAtLAGpIaaV^%&PD9HI)ybTI4K}Lg(t>5DZlBay*8AZ=Aa5=KCn0WH>(sI@JR* zjEw$$vv8^NRK-aRR;^L;TJ+k$)BBp}Oq@)thq+)i8++~@Wk@3v~Fb~V*~EL%V-i=xilyS~UI zAQ#NWcwbIm>j!2J3HIhpiy$Jaa6hJ~09bFM|jMkb_SH=~=F zRJ$Ho2&#Gg^iY&~Bb+zi@cPp}5bPHG0BM~z3j#UQrZBB$q8hUg4SmPuw5z zhkmCIlY<(s77tNYo6Qo0Nb1(VKY@`_AuWLk09oT4n5@V4Vi+<%h?s#Vz=FAr>Aer> zJX~yCS1qWGkeisL5+~`G%<#-4`F>JM3^7O~ARr*D%=`tW9Q}?o1+ik)aYmV`1&|`!NK02{op1ZW~-CYmOqf}5Q;v$jtT2_ z0BlgDqhMzGW2m@|?$;qXs{c0dRfsD>(k-}r(c%UV6V@Z{H^<3lFfdm zpg$_hhMoJ{4r$LJ(-oX&9+Su`2{f~W8_>KK=vJKwg@J?&^NSSe(i^$`;?=7{zS;*_ zwq%`cxzT6Bct+yiJ(5RfoHsV3|5iKjN7poAIi^lP)Ti2@QVYwRNO`}(BKN#SATv}% zdnC-x%ojXT%5K7X!lujOy!i`-atz>Ue1^hh1}8{^vY3w7oxM4GPb(W?-dRw`wEz0ve13x0Z#boDU*C3+?GV>Ek+50EgO$ZZAc;qPUg5OKpX0xY}9cwc(IxjrbL5+iCBNkRpGvvBGiK=szyYw``*i8wTQi_n??^u#I_r<$dKSB3>3eIm%u$^c zKu06Wg^2NJ?&_VN7baNKVc_ZbyQK0+hvr4wdSH;|5U}{s1*apM_4E?g_}e`b_T`nA z^?dgFRSEM9&|gIh!xtRlWiEW@(Ut`R|ShE(tr0syRy0sm*8!et@^N z9(DtFD&1A_x)A1Z?;5w!=Cw<`Z%ZVHk#9MG3Nw7DVd8H+y)R|OpZjuGXedsQn_&W5 zQ5p$gb4ouz6z7$O9pCoB?EnldFh1~<@JfCfS)c_7iSd;jyp+#M%;;+U9fs7h`dtw$ zVwU>mBlt&pvk0;dq|lW&nOgN8$p>YffwZ;M@S(^V<7ClzN+A&9k|$m(L(++EY2w&@ zLmo}4t-goQzN-iQiRkQrb=s>`qnN-_DX$HQxZ{w?Xfz|t8M!*^r)_GM4KN}g!63xJ zr|##QA$|fo0Yxa-Z$}g`=?Cll5(3Ld@C=+R&pG1CFl-gmyfY89!~~WiSEN_*8q&UZ z*`ztR(8mRoLe7cAaTmH|3%L-fHx_GOXP=F^#JYCm+pP1@BoS(T=s4m-i#cn)i5*~) z^icJkrk|h0dU!tE;RHj%(z}I#HJcbAU}xN?$S4vAQe}?)U57P%J=~WgdJ-d?$Kb@xn*0oUH`|T{DOunoW;VV zqdTGC?cVWDtq4Yp-Wq*CRt{e7J7UD%Hi}|!yfCUQQcG^*lYRI9YwXJ7p={gseG?vJE!p>ChQ>Db zt%Q&zWM3o6F1v`a6Iq9bFnR1t6p`hzBrUR&UA9tWmo=&0TR!jmjHci3giKDRX( zSW&EUc1qYNZe{dr5|TpCu{C>-wa@(;zjlq)h|kpo0)eq`&cs|+rB;+gba1|WDlxXN z8+zuz_1q%JkG+cLt0IW8-VJ%3WgRw*)NA2=(v_odxn$<6_v=#zp|dkVZ}QLN!1Pji z&*m_|7Z5#UKWAUHv?;vL)KA`!inVnZ9Zav>5w+3U6%~=&`NTaCaCNuj{yO zhal`Q%_xCS4$ys5%hE+%{4i+saoORa)(u~|)a++HZ`@ca>*94OcUVgFua^_UFg<5t!?~=kXd@ z(@{U>7xl2ONkhrBx;qu+PT-k8u4_o0m*(wtIt7uKQ@`CvBR|KuAO#39QV%NxIxKG; z?;qoZYgVXj<>-CzhM$vlef*Jsd=kAzbNv1u+Q^g?%~R~SEu_}v9(vsyObK40$YkXZ z^i6W!9?qjk%ue3gLM`ihjro1O@oZ8e%JoU>v`3H}(08#+pU3uzCPVqRJd%0sPwII> z6fH;{GD&9G2RVc-O1{-SlacX5o(ViHluM&n z%!hCexva>l#frF+_<}~wOETc^-k1dz%O^MJ2F1pZx$2meYY`sy3*3)k8@0r|NkWO0 z6AcDmJueH9uA3C064_2Vwa$z%-q7*3(dEn}FM~fV*2vYEl6rPhwvCf?>hZ*jJKeHw zRJR4Ub*IkQ#jv-aZoZg!Z+zY?-7I+FWYMq*X)FBUXs;%G)cCVzLdxXUAP*H*qkRrE%CLdVa+?S@OP8dlp~l$y#kMd2JYDaH;>%9`s;`ym0_0J zu!bkEO<{UyI%1we|C!Sdy##n>e}1`<;9lk z!H?}{6aA_{M-)+6)ymtLwF8P<78N#6;ua3qxBF{@{QNt2>uTZJOEae*J zK_LJ9rO`cf{Rm{!;5>UGQLU3;P47Z&wJclaGH1d_9SVz>y{}(?$?}PBPH@)8*>B&! z!oje6gBHT6x3Y&mi+QWh;<3B8*1##Wwu^x07hXi6EvlQHoR6iw)!Sb{Mmq^nFT-Z9 zMc6NnjMX^1IABj@Yd1hHsaQ#!E=6*lL=CbDK; z+;-zcS)~+Oam3H^UEJ&%uXOT9ohi`=)py5q!I6i^VU=ccsTCko!dEIQ`FLb09F~}y zL(pZ4ALdpvWhVavG+*R zv0Y1~@>nodKQM3Y%sKrBvtp}!+hUPaCM^${(#N5i2 zrYBIiZaJ>Qd5>7d%6mD9;2me-<1BGB`E_>K8Ag-@DPPL5993Dxf>)QAkC&5)o|J6u zIYSb6?9^&JvEdeMv5QTo2I;FbZM+)weCd>egE>op{I*9+X16MLV!o&9rT49@Z2n5U zm|&W!U5eKFjymK-wm{wA@RK2`1#$7VtUshQin>oc{FGIBqQ*MK?D$nthxWhIkFB@s znwaUdqpnGd-R%(*h79-?0x5^X*7wXmXjOXOo>XL}cmDKY%(T0S;^kWA>y=FE4x0zp zu-hn08S>?c!d&KVIsb+yOJrigWMh6&f{oEI2p(`l9DW@Tb~^;#kok0luMysyMPU^o4q#hu1~Y zo{0EtqRLM@NOmQiYwU8Q<6 zT&+`){E^8}nNZsDeJiaA&sr;~=y`q(;xEXIf{!{>>S&rfZ_@L$(OgmCU%P73DXE&_Id8YaHXZ^kzk9{YyOUt4FzG@}I;01~Nw}xQ=TEa%UUmUFiNa z+!xtPKzikR(@g_xQ)fr2;%>z;i+PEJSx*xR$wbFaMw-sne${DzqvwAsunR=K2ryZw zo}{ZQ8(HmcTl(PU?^``ft47lkJc;s|mGGQFdE5+4;D%>cNmB~f8Ce(=2)I0VZINs= z&fb82G;#m3x%Qc~PPH-coTYvIOxZQIX`Yc}2xOS>tx3;@p_cwiKU26oSz3kdB86?NoIEv%vS8Q->BoIHx8F^9k-L2^V_rf?^lcSc zcyPx@yv=*IBX+JH%e|}g{5dG1c1vHSjU2T-&=V6`%Me{{t+V`Bu|T z-qXQKR26Xtm&Dm{i^wv_8zN;QOQ%=3w_hM(#K#A2S(s}ZxYx~S7gB^?>15RXu9l5} z2dU<#ewkEbiv0Y=?v&rc`v%s?+St9eXFMrWJ=W%>E*G=)IfiYOJP20O^f1Q^|@1Q2BNK$ z)SssdcIISC-c&0+IX_gpYCa{w=%B`S&eYCld%P@1ruZ+{Zj+wzIk(EtTDyQqRMA*z zqg=k3rt;8E+Ot6)JMkRumJy!n)b|hbQJDV4!U#P=3zaUpLW8FFlLe3BF8?G*2-v0f ztCDaU(wMFue!UT(NK{(8rJkh`cxKG7pStKDYjyHZzI6O9GpoMQ8379C60rh;cTMh{ zh)noG=kW=S6;@kmBfS~|coXfE4lzokOd2(cxjPpF_X%=j2QrO3HL)H>@wI4&K-7Fp z#ul|_KV6_!@&r@AshBkT(_3uG-D14o9HjC;Gi?P?eyt2__Pv`v$jL@qV;o8FZ85?@ z7-cFbnoeKQorIO+?k(KFm?3Kt7b2d{l$MSfqe9{JqB4z9zL{2LEak5jp7!;s?u>sE z;3e9ySKD>A1`Gh%l!Hgje-Rx@E+3BnCfcvx)STx`PXqyg;TQlQaEK)S0?;ad$y_KtC=_ko zI}lMm9FG#Ee;K$GL<#`ne2|wTE)ixr06eE0{r@DoxVubc1}%+}90161h~OsywA@Js zMUKe>p=Df^>VEKONSx>E(DM+J3zQ^WrasKGK#)mMfcQY}8rM7WccQxs@laM0DuB#`U{w86v(33fAN6m(2MPGJW6!bYx94nMgns_2&9J{CIr`U6E`9I z&YKui5Xc0c$J`GB*_H7-aN>e+oj8v!gdzws!bF9DEHM1?>v&Kd`*Yng0nj?8%n1B??6|1^>at^mLqWQ$2p<6OzV7Z} z?+Sfd@%1DF_U|0f-2`9&{-oJ{biHZZ_cAU)Hx4K0x}e3$T$m4lHt}VL9ma(#a;Qw_YhCKg8w03(oi zIu}mR=|LFfa8L+_Uk)CZY5y=|GQ**bi;cw8hJ#2Y{QB^?sQvld)fh$_D4>J0KUDZ{Q>^UR9Id z$uO38pp5<;*au3$@XMUwL5)Hv!sjCZ`p!GVe^I!)CwNdA(a>Cv#xZu$(3!(4gn|pg zRYW;@U)d(J_Yyt$WH#~r< ynt^mm_$x_%hvF2J;4C8V>H*z;eTl%I>PxiMiJ-d)00=_=a?qQ7uMhNS1pWh5yOt&Z diff --git a/Settings.ascx b/Settings.ascx index bf5e6f0..40270d2 100644 --- a/Settings.ascx +++ b/Settings.ascx @@ -38,6 +38,10 @@ + + + + diff --git a/Settings.ascx.designer.vb b/Settings.ascx.designer.vb index d7429f9..6a27518 100644 --- a/Settings.ascx.designer.vb +++ b/Settings.ascx.designer.vb @@ -203,6 +203,33 @@ Namespace DotNetNuke.Authentication.ActiveDirectory ''' Protected WithEvents chkAutoCreate As Global.System.Web.UI.WebControls.CheckBox + '''

+ '''Tr1 control. + ''' + ''' + '''Auto-generated field. + '''To modify move field declaration from designer file to code-behind file. + ''' + Protected WithEvents Tr1 As Global.System.Web.UI.HtmlControls.HtmlTableRow + + ''' + '''plDebugMode control. + ''' + ''' + '''Auto-generated field. + '''To modify move field declaration from designer file to code-behind file. + ''' + Protected WithEvents plDebugMode As Global.System.Web.UI.UserControl + + ''' + '''chkDebugMode control. + ''' + ''' + '''Auto-generated field. + '''To modify move field declaration from designer file to code-behind file. + ''' + Protected WithEvents chkDebugMode As Global.System.Web.UI.WebControls.CheckBox + ''' '''plStripDomainName control. ''' diff --git a/Settings.ascx.vb b/Settings.ascx.vb index ab1924b..c96fd57 100644 --- a/Settings.ascx.vb +++ b/Settings.ascx.vb @@ -135,7 +135,7 @@ Namespace DotNetNuke.Authentication.ActiveDirectory 'Code Cleanup If Not chkAuthentication.Checked Then Configuration.UpdateConfig(_portalSettings.PortalId, False, False, "", "", "", "", False, False, - False, "", "", "", "", False, "", False, False) + False, "", "", "", "", False, "", False, False, False) Configuration.ResetConfig() Else Dim providerTypeName As String = cboProviders.SelectedItem.Value @@ -154,14 +154,16 @@ Namespace DotNetNuke.Authentication.ActiveDirectory txtPassword.Text, chkSynchronizeRole.Checked, chkSynchronizePassword.Checked, chkStripDomainName.Checked, providerTypeName, authenticationType, txtAutoIP.Text, - txtDefaultDomain.Text, chkAutoCreate.Checked, txtBots.Text, chkSynchronizePhoto.Checked, chkAutoLogin.Checked) + txtDefaultDomain.Text, chkAutoCreate.Checked, txtBots.Text, + chkSynchronizePhoto.Checked, chkAutoLogin.Checked, chkDebugMode.Checked) Else Configuration.UpdateConfig(_portalSettings.PortalId, False, chkHidden.Checked, txtRootDomain.Text, txtEmailDomain.Text, txtUserName.Text, txtPassword.Text, chkSynchronizeRole.Checked, chkSynchronizePassword.Checked, chkStripDomainName.Checked, providerTypeName, authenticationType, - txtAutoIP.Text, txtDefaultDomain.Text, chkAutoCreate.Checked, txtBots.Text, chkSynchronizePhoto.Checked, chkAutoLogin.Checked) + txtAutoIP.Text, txtDefaultDomain.Text, chkAutoCreate.Checked, txtBots.Text, + chkSynchronizePhoto.Checked, chkAutoLogin.Checked, chkDebugMode.Checked) End If Configuration.ResetConfig() Dim objAuthenticationController As New AuthenticationController @@ -258,6 +260,9 @@ Namespace DotNetNuke.Authentication.ActiveDirectory txtDefaultDomain.Text = config.DefaultDomain 'ACD-4259 chkAutoCreate.Checked = config.AutoCreateUsers + chkAutoLogin.Checked = config.EnableAutoLogin + chkDebugMode.Checked = config.EnableDebugMode + 'WorkItems 4766 and 4077 txtBots.Text = config.Bots If (txtBots.Text = "") Then diff --git a/version.txt b/version.txt index c72014b..9cac065 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -6.1.2.19 \ No newline at end of file +7.0.0.13 \ No newline at end of file