<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/56118>56118</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Dead Code Elimination Regression at -O3 (trunk vs. 14.0.4)
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Quarub
      </td>
    </tr>
</table>

<pre>
    
`cat case.c #223142`

```c
int a, e;
static int b[] = {2, 2};
int d[7];
void bar11_(void);
void foo(void);
static int c(short g) {
  char f = b[1] = d[0] = 8;
  for (;; a++) {
    bar11_();
    for (;;) {
      d[0] = d[a];
      if (d[0])
        return 8;
      f = g;
      if (f)
        ;
      else {
        foo();
        break;
      }
      g = 3 && b[1];
    }
  }
}
int main() {
  c(1);
  for (; e < 2; e++)
    b[e];
}
```
`llvm-41455dd1dcbbdf2f5fb34cc1f248bfd8d947dc52 (trunk) -O3` can not eliminate `foo` but `llvm-llvmorg-14.0.4 -O3` can.

Target: `x86_64-unknown-linux-gnu`

------------------------------------------------

`llvm-41455dd1dcbbdf2f5fb34cc1f248bfd8d947dc52 (trunk) -O3 [-emit-llvm] -S -o /dev/stdout case.c`
<details ><summary>Emitted IR</summary><p>

```ll
; ModuleID = 'case.c'
source_filename = "case.c"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@e = dso_local local_unnamed_addr global i32 0, align 4
@b.0 = internal unnamed_addr global i1 false, align 4
@a = dso_local local_unnamed_addr global i32 0, align 4
@d = dso_local local_unnamed_addr global [7 x i32] zeroinitializer, align 16

; Function Attrs: nounwind uwtable
define dso_local i32 @main() local_unnamed_addr #0 {
  store i32 8, ptr @d, align 16, !tbaa !5
  store i1 true, ptr @b.0, align 4
  tail call void @bar11_() #2
  %1 = load i32, ptr @a, align 4, !tbaa !5
  %2 = sext i32 %1 to i64
  %3 = getelementptr inbounds [7 x i32], ptr @d, i64 0, i64 %2
  %4 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %4, ptr @d, align 16, !tbaa !5
  %5 = icmp eq i32 %4, 0
  br i1 %5, label %6, label %23

6:                                                ; preds = %0, %12
  %7 = phi ptr [ %17, %12 ], [ %3, %0 ]
  %8 = phi i8 [ 0, %12 ], [ 1, %0 ]
  br label %9

9:                                                ; preds = %20, %6
  %10 = phi i8 [ %8, %6 ], [ 1, %20 ]
  %11 = icmp eq i8 %10, 0
  br i1 %11, label %12, label %20

12:                                               ; preds = %9
  tail call void @foo() #2
  %13 = load i32, ptr @a, align 4, !tbaa !5
  %14 = add nsw i32 %13, 1
  store i32 %14, ptr @a, align 4, !tbaa !5
  tail call void @bar11_() #2
  %15 = load i32, ptr @a, align 4, !tbaa !5
  %16 = sext i32 %15 to i64
  %17 = getelementptr inbounds [7 x i32], ptr @d, i64 0, i64 %16
  %18 = load i32, ptr %17, align 4, !tbaa !5
  store i32 %18, ptr @d, align 16, !tbaa !5
  %19 = icmp eq i32 %18, 0
  br i1 %19, label %6, label %23

20:                                               ; preds = %9
  %21 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %21, ptr @d, align 16, !tbaa !5
  %22 = icmp eq i32 %21, 0
  br i1 %22, label %9, label %23

23:                                               ; preds = %12, %20, %0
  %24 = load i32, ptr @e, align 4, !tbaa !5
  %25 = icmp slt i32 %24, 2
  br i1 %25, label %26, label %27

26:                                               ; preds = %23
  store i32 2, ptr @e, align 4, !tbaa !5
  br label %27

27:                                               ; preds = %26, %23
  ret i32 0
}

declare void @bar11_() local_unnamed_addr #1

declare void @foo() local_unnamed_addr #1

attributes #0 = { nounwind uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 7, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 15.0.0 (https://github.com/llvm/llvm-project.git 41455dd1dcbbdf2f5fb34cc1f248bfd8d947dc52)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
```
</p></details>


------------------------------------------------

`llvm-llvmorg-14.0.4 -O3 [-emit-llvm] -S -o /dev/stdout case.c`

<details ><summary>Emitted IR</summary><p>

```ll
; ModuleID = 'case.c'
source_filename = "case.c"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@e = dso_local local_unnamed_addr global i32 0, align 4
@b.0 = internal unnamed_addr global i1 false, align 4
@a = dso_local local_unnamed_addr global i32 0, align 4
@d = dso_local local_unnamed_addr global [7 x i32] zeroinitializer, align 16

; Function Attrs: nounwind uwtable
define dso_local i32 @main() local_unnamed_addr #0 {
  store i32 8, i32* getelementptr inbounds ([7 x i32], [7 x i32]* @d, i64 0, i64 0), align 16, !tbaa !3
  store i1 true, i1* @b.0, align 4
  tail call void @bar11_() #2
  %1 = load i32, i32* @a, align 4, !tbaa !3
  %2 = sext i32 %1 to i64
  %3 = getelementptr inbounds [7 x i32], [7 x i32]* @d, i64 0, i64 %2
  %4 = load i32, i32* %3, align 4, !tbaa !3
  store i32 %4, i32* getelementptr inbounds ([7 x i32], [7 x i32]* @d, i64 0, i64 0), align 16, !tbaa !3
  %5 = icmp eq i32 %4, 0
  br i1 %5, label %6, label %9

6:                                                ; preds = %0, %6
  %7 = load i32, i32* %3, align 4, !tbaa !3
  store i32 %7, i32* getelementptr inbounds ([7 x i32], [7 x i32]* @d, i64 0, i64 0), align 16, !tbaa !3
  %8 = icmp eq i32 %7, 0
  br i1 %8, label %6, label %9

9:                                                ; preds = %6, %0
  %10 = load i32, i32* @e, align 4, !tbaa !3
  %11 = icmp slt i32 %10, 2
  br i1 %11, label %12, label %13

12:                                               ; preds = %9
  store i32 2, i32* @e, align 4, !tbaa !3
  br label %13

13:                                               ; preds = %12, %9
  ret i32 0
}

declare dso_local void @bar11_() local_unnamed_addr #1

attributes #0 = { nounwind uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind }

!llvm.module.flags = !{!0, !1}
!llvm.ident = !{!2}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 7, !"uwtable", i32 1}
!2 = !{!"clang version 14.0.4 (https://github.com/llvm/llvm-project.git 29f1039a7285a5c3a9c353d054140bf2556d4c4d)"}
!3 = !{!4, !4, i64 0}
!4 = !{!"int", !5, i64 0}
!5 = !{!"omnipotent char", !6, i64 0}
!6 = !{!"Simple C/C++ TBAA"}
```
</p></details>

------------------------------------------------

### Bisection
Bisected to: fc539b0004d4fe8072aca00e38599a2300a955ce
Committed by: @max-quazan

------------------------------------------------

`llvm-fc539b0004d4fe8072aca00e38599a2300a955ce -O3 [-emit-llvm] -S -o /dev/stdout case.c`
<details ><summary>Emitted IR</summary><p>

```ll
; ModuleID = 'case.c'
source_filename = "case.c"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@e = dso_local local_unnamed_addr global i32 0, align 4
@b.0 = internal unnamed_addr global i1 false, align 4
@a = dso_local local_unnamed_addr global i32 0, align 4
@d = dso_local local_unnamed_addr global [7 x i32] zeroinitializer, align 16

; Function Attrs: nounwind uwtable
define dso_local i32 @main() local_unnamed_addr #0 {
  store i32 8, i32* getelementptr inbounds ([7 x i32], [7 x i32]* @d, i64 0, i64 0), align 16, !tbaa !3
  store i1 true, i1* @b.0, align 4
  tail call void @bar11_() #2
  %1 = load i32, i32* @a, align 4, !tbaa !3
  %2 = sext i32 %1 to i64
  %3 = getelementptr inbounds [7 x i32], [7 x i32]* @d, i64 0, i64 %2
  %4 = load i32, i32* %3, align 4, !tbaa !3
  store i32 %4, i32* getelementptr inbounds ([7 x i32], [7 x i32]* @d, i64 0, i64 0), align 16, !tbaa !3
  %5 = icmp eq i32 %4, 0
  br i1 %5, label %6, label %23

6:                                                ; preds = %0, %15
  %7 = phi i32* [ %20, %15 ], [ %3, %0 ]
  %8 = phi i16 [ 0, %15 ], [ 1, %0 ]
  br label %12

9:                                                ; preds = %12
  %10 = load i32, i32* %7, align 4, !tbaa !3
  store i32 %10, i32* getelementptr inbounds ([7 x i32], [7 x i32]* @d, i64 0, i64 0), align 16, !tbaa !3
  %11 = icmp eq i32 %10, 0
  br i1 %11, label %12, label %23

12:                                               ; preds = %9, %6
  %13 = phi i16 [ %8, %6 ], [ 1, %9 ]
  %14 = icmp eq i16 %13, 0
  br i1 %14, label %15, label %9

15:                                               ; preds = %12
  tail call void @foo() #2
  %16 = load i32, i32* @a, align 4, !tbaa !3
  %17 = add nsw i32 %16, 1
  store i32 %17, i32* @a, align 4, !tbaa !3
  tail call void @bar11_() #2
  %18 = load i32, i32* @a, align 4, !tbaa !3
  %19 = sext i32 %18 to i64
  %20 = getelementptr inbounds [7 x i32], [7 x i32]* @d, i64 0, i64 %19
  %21 = load i32, i32* %20, align 4, !tbaa !3
  store i32 %21, i32* getelementptr inbounds ([7 x i32], [7 x i32]* @d, i64 0, i64 0), align 16, !tbaa !3
  %22 = icmp eq i32 %21, 0
  br i1 %22, label %6, label %23

23:                                               ; preds = %15, %9, %0
  %24 = load i32, i32* @e, align 4, !tbaa !3
  %25 = icmp slt i32 %24, 2
  br i1 %25, label %26, label %27

26:                                               ; preds = %23
  store i32 2, i32* @e, align 4, !tbaa !3
  br label %27

27:                                               ; preds = %26, %23
  ret i32 0
}

declare dso_local void @bar11_() local_unnamed_addr #1

declare dso_local void @foo() local_unnamed_addr #1

attributes #0 = { nounwind uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind }

!llvm.module.flags = !{!0, !1}
!llvm.ident = !{!2}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 7, !"uwtable", i32 2}
!2 = !{!"clang version 15.0.0 (https://github.com/llvm/llvm-project.git fc539b0004d4fe8072aca00e38599a2300a955ce)"}
!3 = !{!4, !4, i64 0}
!4 = !{!"int", !5, i64 0}
!5 = !{!"omnipotent char", !6, i64 0}
!6 = !{!"Simple C/C++ TBAA"}
```
</p></details>

------------------------------------------------

Previous commit: 9798b33d1dc14f5334e2cc117e3896510fa57b82

`llvm-9798b33d1dc14f5334e2cc117e3896510fa57b82 -O3 [-emit-llvm] -S -o /dev/stdout case.c`

<details ><summary>Emitted IR</summary><p>

```ll
; ModuleID = 'case.c'
source_filename = "case.c"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@e = dso_local local_unnamed_addr global i32 0, align 4
@b.0 = internal unnamed_addr global i1 false, align 4
@a = dso_local local_unnamed_addr global i32 0, align 4
@d = dso_local local_unnamed_addr global [7 x i32] zeroinitializer, align 16

; Function Attrs: nounwind uwtable
define dso_local i32 @main() local_unnamed_addr #0 {
  store i32 8, i32* getelementptr inbounds ([7 x i32], [7 x i32]* @d, i64 0, i64 0), align 16, !tbaa !3
  store i1 true, i1* @b.0, align 4
  tail call void @bar11_() #2
  %1 = load i32, i32* @a, align 4, !tbaa !3
  %2 = sext i32 %1 to i64
  %3 = getelementptr inbounds [7 x i32], [7 x i32]* @d, i64 0, i64 %2
  %4 = load i32, i32* %3, align 4, !tbaa !3
  store i32 %4, i32* getelementptr inbounds ([7 x i32], [7 x i32]* @d, i64 0, i64 0), align 16, !tbaa !3
  %5 = icmp eq i32 %4, 0
  br i1 %5, label %6, label %9

6:                                                ; preds = %0, %6
  %7 = load i32, i32* %3, align 4, !tbaa !3
  store i32 %7, i32* getelementptr inbounds ([7 x i32], [7 x i32]* @d, i64 0, i64 0), align 16, !tbaa !3
  %8 = icmp eq i32 %7, 0
  br i1 %8, label %6, label %9

9:                                                ; preds = %6, %0
  %10 = load i32, i32* @e, align 4, !tbaa !3
  %11 = icmp slt i32 %10, 2
  br i1 %11, label %12, label %13

12:                                               ; preds = %9
  store i32 2, i32* @e, align 4, !tbaa !3
  br label %13

13:                                               ; preds = %12, %9
  ret i32 0
}

declare dso_local void @bar11_() local_unnamed_addr #1

attributes #0 = { nounwind uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind }

!llvm.module.flags = !{!0, !1}
!llvm.ident = !{!2}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 7, !"uwtable", i32 2}
!2 = !{!"clang version 15.0.0 (https://github.com/llvm/llvm-project.git 9798b33d1dc14f5334e2cc117e3896510fa57b82)"}
!3 = !{!4, !4, i64 0}
!4 = !{!"int", !5, i64 0}
!5 = !{!"omnipotent char", !6, i64 0}
!6 = !{!"Simple C/C++ TBAA"}
```
</p></details>

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztXFtv2zoS_jXOCyFDpO4PfkjSFiiwiz17et4DSqIcbWXJR6KS9Pz6naEupi527cTZk0VVuI4ozgyHM-SQ82WQsIh_bFbmp5V5u3LNiEsS8UqsI7JiFmMWtRm8bvs7quYTNe00l4Sv2D0RK-uueVVJLtOIYE-4cu5WzieysuC_d8eQkK28Tz0tEsVA5AFV__KpSGMS8pLShxXzsbViwbA3KYqZLm3kCLqrx6KUZAsUOHhDQkj0yEuSKJVQPdrph2qYXcPvZRIYqwRzqDfWHU72Tn0GQslBX10h7BiwT9jIcFxscN0WDU2aoIiOEkfQOgkphazLfKC0GlmJ3M7KSiZCRmQiq8RYVdLafTxFNf9S8O-jt-hprblV-lgwvAuf3voDJo2lf-wf0LE7nuaNCgOnwis6VOtgdwITsXDh4WPvPs11oIjQFTmM3K32vpllTzvDprbjxDGNozCME5Y4SWjZUUQTZvthEvtxYHtx5DAcX5Z1_h21Nf5lAT_sr5zkhQT7prs05xJ0c000K_SFtSTdGPhVlFuD2mtzbWvca307_sHLrZAr6xb5Xnz3wbUNGC8vnnMjS_P6xdjm9WgLGxf-G23_N1mAgKkNsUulmh-ueuMbMQog-xKLJ_iuZFzUXRQ6KG7dx0LyNKvAk5-hVdW7HS9_QOMzCJMiJl9_h9cooO-B9h5_zEWvLOsE35F_FnGdia9tlGJeOzbz2qBS1GUkHpI0EznfiZaKdVSsoZLKESTmkmf8B06hpRPGDtwjjD3zTHiwmPrCJh028cm11ZeRdg-Jj0yU-Ubu44Pb8UDfN4rbYDi-LNN91ut4dEF0XO23bTYscVU8ZEXEM6K-H-ocZxw_8DguyTYrQuhJLUZMjOM8S7c5sXsR4dpUQmCTijIHylluShIOkWVOAH-7DvHZIvDMIS8oCRfhX6Is0jyVKQiE54NoMLhuKFgtX-o8kmmRk1spywp3Xl7U-XOax6R-ljzMREMbiyTNhaYLKg0qavFrRjs4dk09rlWyKIVi9VGpvSxRRjxQEJ5XjMqQc_zpjFgprIlaaMzgp4npCMHNBbsuy4g6X5FOO9DUdaCPy8yhys5ZwWNlwYNwros-ohjwM8VfiRfZmAUlyoLgsj8QWc3xJaTIxE7kEodI8xCsHVdD_41NA3Ka9YEPOJwm1Z5XHYY7Q_WDO1DSpR4BHqfZItFuT8SfA0FmRxWW6DSkxdcZD0WGLXfQYpa-LjEqkAv_4VrelwJNqYKFYzZqO1S3lqd6949pM1HnTlF4PSlprd_2WG2Hqd4fxPi9mNRXtOasBDrHDvbopx3osw6uMWvWaeLqy9sc64tz6AjnNGbjGVM69LTfyJ33NKUD51I29PXg9Kbs8mlPZh0c3_b9DW-y5603bnrabD2IcySvnvuNr9YMnd1h1L5wlAujmPPWGbnTOOZMAxn1rhbJ6GCZ-sdiWbNDLwlm9OLzBZmCuXDWiJpZ5cHZAY2Z11zkKP7IiQUR7lJLMfoKSzE2Z6lG1NRSbBgAglOWsq5gqSbg6NHQ1HU_cmTCrfHM01479aqs3yrMbuCAyeyHBx8bLRRvMP1XHH3TM8CaOvrSaeqn1EhF7xoqup2Hel0h6W8vwqOctb1-RhmHuczGwfmLJz3FfzgWzmDmcDVOIZkVVXuhbeCfyU0Zc5SkBDnGvlBpAyYmFgRBlhc5WB2XCYMs2cjElmfGk4jAP8ZzGsvHntJsyfLCkCXf79N8a-y4RtBcfxVNJXn03diXhWwkhXWSiNKo4M7fk_stbZNQGdG-7rsgnTIgsA_6E8FlXYqqJ1qxu-gFIyA8JC9V2Tztdi_NQ6Vyn-aBNU8vvtfJrHMxGHErclGmkeru_Ds0Lu2Ne44tf1EjsekKHG0X2MoISKx3CgtYJxnfdnuPYjrGaBsZaXvj60ImXF96Sa2MNIYjfshsT4czNQrcxp1cmMYzQpQPncHx8Id-Wx-Hjpi9A_NvX-_JP8STyDRepvOyU7yfT_Nax3m75PcIpz00CAIoGc-35EmUFWbT1FmbCCAw_1HKPebVK_YFPttUPtbhOip20FCYUfMDF-h_YIGugYCci0Yh6scGajlDtboj3D3cvTRidzIH2GjthKHtzTJ5E6Zil6d72F2IUoOjDwL8WQH-RMC3dIcgD6Jd9w2cSf64u70dTG0EXCpobN-AYgprU2DaGB27Gjw4BS9fC_wt8N8C_y3wXwv_qdv37dFEEsSOc8nRi9v5xNJUgfFoIjO-Hh8gxZS2Mt8HVGznezohtzQR74ArnmfBn4KM3VRO4owzeUgHD_7drr8idjkA8a4KXergiHdNF3gfxAX-nAu8eRf457rgKjhql5_qwEF7x53f0SeSan3GOo6qYQfNdXyKHZxGUukAOrkukjqCDi6bqI4ejJS8Kr7Ta3seeHA4vV4LIyxIwIIEfCQjXRcJOCPzZ_-7zH-agdNjef9sBt7kaq_LwFmQUNMKuMd8hzuRxYPIcqzYdCA1N8MELgRubEd2PM3AraFaXYi0Z3PhKYowyMCdWSZnwnQ0Az8373-vDPxNuTezmg-5SyuhkpSmo2lCjiwLPEuSyLGC0DRNO7YT4Zse4xE3TWH5ThBwCNImDxwnavOY-2LXZtjhD1VmhCnMi_Fnzf_i-bVhg3NVWyqJFihhgRIWKGGBEn5xKOE9y6D032AfyqA64zc1QexAfXklFN4r9FIo56JSKDoIvFfJ4QeVXyeS95NFE_MLr7k0f4CVN67L0tW7uDDrPeCEKZLVXpH1NfOzcrRgXI1mD2eNYrrSq5lZ28NZD3fgADuCvqvAE0ej_PFyNPftMb795dy4Ik2tnyMVad7lA114dE2Lui6fVzA9vPzp6cXM9zm-6E8qrw5xhJmXBpKmZOoDBJI3VXSdrH27CuLn9IjfFJedKei6GJf9v63pej0w-5HKut6OzB6XtJR6fUzscgF4F4D3VInVTwHet5RYnY0aLgDvewG8v5XiKS3qikQKk8XjJ_ACP7QsrHyjduJYli1YFFHqgV8CF9KahDte6A8xuhZsPZd3qd5aINcFcl0g1wVyJQvkulRvvcEFS_XWUr31CiWX6q1fIG9dkvsluf_bkvuz08gluZ9P7m_ijRUHVsBvZCozsfkk4NC8L2JBPrd_5gl99LvYwuZR7uKySavbv45Enqp1W4AHNr6py2xzmRuhmVZVjVvzi-NS6t88bpjl0ZjzgNtubPKIglstEYc0MEM7dOzoRh1a1ab5G2036YaZEIZdGlAGpPba9UInNl3hxsKJXCfG0xASoGytdktRbm_KjdIhrLcVdGZpJatDJ4eZbnMhOvm8lo9Fufl3zcs6vFHabpSq_wWTmyBj">