program main
    implicit none
    integer i, j, k
    integer n_len, tg, pop
    integer :: mod_ = 10**9+7
    integer, allocatable :: dp(:),old_dp(:)
    character(10**5):: S

    read*, S
    n_len = len_trim(S)
    allocate(dp(0:12), old_dp(0:12))
    dp(0:12) = 0
    dp(0) = 1
    old_dp(0:12) = 0
    
    do i=1, n_len
        old_dp(0:12) = dp(0:12)
        dp(0:12) = 0

        if(S(i:i) == "?")then
            do j = 0,9
                do k=0,12
                    pop = mod(k*10+j,13)
                    dp(pop) = dp(pop) + old_dp(k)
                    dp(pop) = mod(dp(pop),mod_)
                enddo
            enddo

        else
            read(S(i:i),*) tg
            do k=0,12
                pop = mod(k*10+tg,13)
                dp(pop) = dp(pop) + old_dp(k)
                dp(pop) = mod(dp(pop),mod_)
            enddo
        endif

    enddo

print'(i0)', dp(5)

stop
end program main
; ModuleID = 'FIRModule'
source_filename = "FIRModule"
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-pc-linux-gnu"

@_QFEdp.0 = internal unnamed_addr global ptr null
@_QFEs = internal global [100000 x i8] undef
@_QQcl.5cc402ff94b424fb4afb589617717033 = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_3672/source.f\00"
@_QQcl.3F = linkonce constant [1 x i8] c"?"
@_QQcl.28693029 = linkonce constant [4 x i8] c"(i0)"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null
@_QFEold_dp.0.body = internal unnamed_addr global [52 x i8] undef

; Function Attrs: noreturn
define void @_QQmain() local_unnamed_addr #0 {
  %1 = alloca i32, align 4
  %2 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.5cc402ff94b424fb4afb589617717033, i32 9)
  %3 = tail call i1 @_FortranAioInputAscii(ptr %2, ptr nonnull @_QFEs, i64 100000)
  %4 = tail call i32 @_FortranAioEndIoStatement(ptr %2)
  br label %5

5:                                                ; preds = %0, %5
  %6 = phi i64 [ 99999, %0 ], [ %10, %5 ]
  %7 = getelementptr [100000 x [1 x i8]], ptr @_QFEs, i64 0, i64 %6
  %8 = load i8, ptr %7, align 1, !tbaa !3
  %9 = icmp eq i8 %8, 32
  %10 = add nsw i64 %6, -1
  %11 = icmp ne i64 %6, 0
  %12 = and i1 %9, %11
  br i1 %12, label %5, label %13

13:                                               ; preds = %5
  %calloc = tail call dereferenceable_or_null(52) ptr @calloc(i64 1, i64 52)
  store ptr %calloc, ptr @_QFEdp.0, align 8, !tbaa !7
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(52) @_QFEold_dp.0.body, i8 0, i64 52, i1 false)
  store i32 1, ptr %calloc, align 4, !tbaa !3
  %14 = shl i64 %6, 32
  %sext = add i64 %14, 4294967296
  %15 = ashr exact i64 %sext, 32
  %spec.select = select i1 %9, i64 0, i64 %15
  %16 = icmp sgt i64 %spec.select, 0
  br i1 %16, label %.lr.ph, label %select.unfold._crit_edge

.lr.ph:                                           ; preds = %13, %select.unfold
  %indvars.iv510 = phi i64 [ %indvars.iv.next511, %select.unfold ], [ 1, %13 ]
  %.unpack404 = load ptr, ptr @_QFEdp.0, align 8, !tbaa !7
  %17 = load i32, ptr %.unpack404, align 4, !tbaa !3
  store i32 %17, ptr @_QFEold_dp.0.body, align 16, !tbaa !3
  %18 = getelementptr i32, ptr %.unpack404, i64 1
  %19 = load i32, ptr %18, align 4, !tbaa !3
  store i32 %19, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 4), align 4, !tbaa !3
  %20 = getelementptr i32, ptr %.unpack404, i64 2
  %21 = load i32, ptr %20, align 4, !tbaa !3
  store i32 %21, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 8), align 8, !tbaa !3
  %22 = getelementptr i32, ptr %.unpack404, i64 3
  %23 = load i32, ptr %22, align 4, !tbaa !3
  store i32 %23, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 12), align 4, !tbaa !3
  %24 = getelementptr i32, ptr %.unpack404, i64 4
  %25 = load i32, ptr %24, align 4, !tbaa !3
  store i32 %25, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 16), align 16, !tbaa !3
  %26 = getelementptr i32, ptr %.unpack404, i64 5
  %27 = load i32, ptr %26, align 4, !tbaa !3
  store i32 %27, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 20), align 4, !tbaa !3
  %28 = getelementptr i32, ptr %.unpack404, i64 6
  %29 = load i32, ptr %28, align 4, !tbaa !3
  store i32 %29, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 24), align 8, !tbaa !3
  %30 = getelementptr i32, ptr %.unpack404, i64 7
  %31 = load i32, ptr %30, align 4, !tbaa !3
  store i32 %31, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 28), align 4, !tbaa !3
  %32 = getelementptr i32, ptr %.unpack404, i64 8
  %33 = load i32, ptr %32, align 4, !tbaa !3
  store i32 %33, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 32), align 16, !tbaa !3
  %34 = getelementptr i32, ptr %.unpack404, i64 9
  %35 = load i32, ptr %34, align 4, !tbaa !3
  store i32 %35, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 36), align 4, !tbaa !3
  %36 = getelementptr i32, ptr %.unpack404, i64 10
  %37 = load i32, ptr %36, align 4, !tbaa !3
  store i32 %37, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 40), align 8, !tbaa !3
  %38 = getelementptr i32, ptr %.unpack404, i64 11
  %39 = load i32, ptr %38, align 4, !tbaa !3
  store i32 %39, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 44), align 4, !tbaa !3
  %40 = getelementptr i32, ptr %.unpack404, i64 12
  %41 = load i32, ptr %40, align 4, !tbaa !3
  store i32 %41, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 48), align 16, !tbaa !3
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(52) %.unpack404, i8 0, i64 52, i1 false), !tbaa !3
  %42 = add nsw i64 %indvars.iv510, -1
  %43 = getelementptr [100000 x [1 x i8]], ptr @_QFEs, i64 0, i64 %42
  %44 = call i32 @_FortranACharacterCompareScalar1(ptr %43, ptr nonnull @_QQcl.3F, i64 1, i64 1)
  %45 = icmp eq i32 %44, 0
  br i1 %45, label %.preheader500, label %select.unfold.loopexit504

.preheader500:                                    ; preds = %.lr.ph
  %.unpack464 = load ptr, ptr @_QFEdp.0, align 8, !tbaa !7
  %46 = load i32, ptr @_QFEold_dp.0.body, align 16, !tbaa !3
  %47 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 4), align 4, !tbaa !3
  %48 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 8), align 8, !tbaa !3
  %49 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 12), align 4, !tbaa !3
  %50 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 16), align 16, !tbaa !3
  %51 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 20), align 4, !tbaa !3
  %52 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 24), align 8, !tbaa !3
  %53 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 28), align 4, !tbaa !3
  %54 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 32), align 16, !tbaa !3
  %55 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 36), align 4, !tbaa !3
  %56 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 40), align 8, !tbaa !3
  %57 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 44), align 4, !tbaa !3
  %58 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 48), align 16, !tbaa !3
  br label %.preheader

.preheader:                                       ; preds = %.preheader500, %.preheader
  %indvars.iv = phi i64 [ 0, %.preheader500 ], [ %indvars.iv.next, %.preheader ]
  %59 = getelementptr i32, ptr %.unpack464, i64 %indvars.iv
  %60 = load i32, ptr %59, align 4, !tbaa !3
  %61 = add i32 %46, %60
  %62 = srem i32 %61, 1000000007
  store i32 %62, ptr %59, align 4, !tbaa !3
  %63 = trunc i64 %indvars.iv to i32
  %64 = add i32 %63, 10
  %.urem.1 = urem i32 %64, 13
  %65 = zext i32 %.urem.1 to i64
  %66 = getelementptr i32, ptr %.unpack464, i64 %65
  %67 = load i32, ptr %66, align 4, !tbaa !3
  %68 = add i32 %47, %67
  %69 = srem i32 %68, 1000000007
  store i32 %69, ptr %66, align 4, !tbaa !3
  %70 = trunc i64 %indvars.iv to i32
  %71 = add i32 %70, 20
  %.urem.2 = urem i32 %71, 13
  %72 = zext i32 %.urem.2 to i64
  %73 = getelementptr i32, ptr %.unpack464, i64 %72
  %74 = load i32, ptr %73, align 4, !tbaa !3
  %75 = add i32 %48, %74
  %76 = srem i32 %75, 1000000007
  store i32 %76, ptr %73, align 4, !tbaa !3
  %77 = trunc i64 %indvars.iv to i32
  %78 = add i32 %77, 30
  %.urem.3 = urem i32 %78, 13
  %79 = zext i32 %.urem.3 to i64
  %80 = getelementptr i32, ptr %.unpack464, i64 %79
  %81 = load i32, ptr %80, align 4, !tbaa !3
  %82 = add i32 %49, %81
  %83 = srem i32 %82, 1000000007
  store i32 %83, ptr %80, align 4, !tbaa !3
  %84 = trunc i64 %indvars.iv to i32
  %85 = add i32 %84, 40
  %.urem.4 = urem i32 %85, 13
  %86 = zext i32 %.urem.4 to i64
  %87 = getelementptr i32, ptr %.unpack464, i64 %86
  %88 = load i32, ptr %87, align 4, !tbaa !3
  %89 = add i32 %50, %88
  %90 = srem i32 %89, 1000000007
  store i32 %90, ptr %87, align 4, !tbaa !3
  %91 = trunc i64 %indvars.iv to i32
  %92 = add i32 %91, 50
  %.urem.5 = urem i32 %92, 13
  %93 = zext i32 %.urem.5 to i64
  %94 = getelementptr i32, ptr %.unpack464, i64 %93
  %95 = load i32, ptr %94, align 4, !tbaa !3
  %96 = add i32 %51, %95
  %97 = srem i32 %96, 1000000007
  store i32 %97, ptr %94, align 4, !tbaa !3
  %98 = trunc i64 %indvars.iv to i32
  %99 = add i32 %98, 60
  %.urem.6 = urem i32 %99, 13
  %100 = zext i32 %.urem.6 to i64
  %101 = getelementptr i32, ptr %.unpack464, i64 %100
  %102 = load i32, ptr %101, align 4, !tbaa !3
  %103 = add i32 %52, %102
  %104 = srem i32 %103, 1000000007
  store i32 %104, ptr %101, align 4, !tbaa !3
  %105 = trunc i64 %indvars.iv to i32
  %106 = add i32 %105, 70
  %.urem.7 = urem i32 %106, 13
  %107 = zext i32 %.urem.7 to i64
  %108 = getelementptr i32, ptr %.unpack464, i64 %107
  %109 = load i32, ptr %108, align 4, !tbaa !3
  %110 = add i32 %53, %109
  %111 = srem i32 %110, 1000000007
  store i32 %111, ptr %108, align 4, !tbaa !3
  %112 = trunc i64 %indvars.iv to i32
  %113 = add i32 %112, 80
  %.urem.8 = urem i32 %113, 13
  %114 = zext i32 %.urem.8 to i64
  %115 = getelementptr i32, ptr %.unpack464, i64 %114
  %116 = load i32, ptr %115, align 4, !tbaa !3
  %117 = add i32 %54, %116
  %118 = srem i32 %117, 1000000007
  store i32 %118, ptr %115, align 4, !tbaa !3
  %119 = trunc i64 %indvars.iv to i32
  %120 = add i32 %119, 90
  %.urem.9 = urem i32 %120, 13
  %121 = zext i32 %.urem.9 to i64
  %122 = getelementptr i32, ptr %.unpack464, i64 %121
  %123 = load i32, ptr %122, align 4, !tbaa !3
  %124 = add i32 %55, %123
  %125 = srem i32 %124, 1000000007
  store i32 %125, ptr %122, align 4, !tbaa !3
  %126 = trunc i64 %indvars.iv to i32
  %127 = add i32 %126, 100
  %.urem.10 = urem i32 %127, 13
  %128 = zext i32 %.urem.10 to i64
  %129 = getelementptr i32, ptr %.unpack464, i64 %128
  %130 = load i32, ptr %129, align 4, !tbaa !3
  %131 = add i32 %56, %130
  %132 = srem i32 %131, 1000000007
  store i32 %132, ptr %129, align 4, !tbaa !3
  %133 = trunc i64 %indvars.iv to i32
  %134 = add i32 %133, 110
  %.urem.11 = urem i32 %134, 13
  %135 = zext i32 %.urem.11 to i64
  %136 = getelementptr i32, ptr %.unpack464, i64 %135
  %137 = load i32, ptr %136, align 4, !tbaa !3
  %138 = add i32 %57, %137
  %139 = srem i32 %138, 1000000007
  store i32 %139, ptr %136, align 4, !tbaa !3
  %140 = trunc i64 %indvars.iv to i32
  %141 = add i32 %140, 120
  %.urem.12 = urem i32 %141, 13
  %142 = zext i32 %.urem.12 to i64
  %143 = getelementptr i32, ptr %.unpack464, i64 %142
  %144 = load i32, ptr %143, align 4, !tbaa !3
  %145 = add i32 %58, %144
  %146 = srem i32 %145, 1000000007
  store i32 %146, ptr %143, align 4, !tbaa !3
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 10
  br i1 %exitcond.not, label %select.unfold, label %.preheader

select.unfold.loopexit504:                        ; preds = %.lr.ph
  %147 = call ptr @_FortranAioBeginInternalListInput(ptr %43, i64 1, ptr null, i64 0, ptr nonnull @_QQcl.5cc402ff94b424fb4afb589617717033, i32 30)
  %148 = call i1 @_FortranAioInputInteger(ptr %147, ptr nonnull %1, i32 4)
  %149 = call i32 @_FortranAioEndIoStatement(ptr %147)
  %.unpack428 = load ptr, ptr @_QFEdp.0, align 8, !tbaa !7
  %150 = load i32, ptr %1, align 4, !tbaa !3
  %151 = srem i32 %150, 13
  %152 = sext i32 %151 to i64
  %153 = getelementptr i32, ptr %.unpack428, i64 %152
  %154 = load i32, ptr %153, align 4, !tbaa !3
  %155 = load i32, ptr @_QFEold_dp.0.body, align 16, !tbaa !3
  %156 = add i32 %155, %154
  %157 = srem i32 %156, 1000000007
  store i32 %157, ptr %153, align 4, !tbaa !3
  %158 = load i32, ptr %1, align 4, !tbaa !3
  %159 = add i32 %158, 10
  %160 = srem i32 %159, 13
  %161 = sext i32 %160 to i64
  %162 = getelementptr i32, ptr %.unpack428, i64 %161
  %163 = load i32, ptr %162, align 4, !tbaa !3
  %164 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 4), align 4, !tbaa !3
  %165 = add i32 %164, %163
  %166 = srem i32 %165, 1000000007
  store i32 %166, ptr %162, align 4, !tbaa !3
  %167 = load i32, ptr %1, align 4, !tbaa !3
  %168 = add i32 %167, 20
  %169 = srem i32 %168, 13
  %170 = sext i32 %169 to i64
  %171 = getelementptr i32, ptr %.unpack428, i64 %170
  %172 = load i32, ptr %171, align 4, !tbaa !3
  %173 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 8), align 8, !tbaa !3
  %174 = add i32 %173, %172
  %175 = srem i32 %174, 1000000007
  store i32 %175, ptr %171, align 4, !tbaa !3
  %176 = load i32, ptr %1, align 4, !tbaa !3
  %177 = add i32 %176, 30
  %178 = srem i32 %177, 13
  %179 = sext i32 %178 to i64
  %180 = getelementptr i32, ptr %.unpack428, i64 %179
  %181 = load i32, ptr %180, align 4, !tbaa !3
  %182 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 12), align 4, !tbaa !3
  %183 = add i32 %182, %181
  %184 = srem i32 %183, 1000000007
  store i32 %184, ptr %180, align 4, !tbaa !3
  %185 = load i32, ptr %1, align 4, !tbaa !3
  %186 = add i32 %185, 40
  %187 = srem i32 %186, 13
  %188 = sext i32 %187 to i64
  %189 = getelementptr i32, ptr %.unpack428, i64 %188
  %190 = load i32, ptr %189, align 4, !tbaa !3
  %191 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 16), align 16, !tbaa !3
  %192 = add i32 %191, %190
  %193 = srem i32 %192, 1000000007
  store i32 %193, ptr %189, align 4, !tbaa !3
  %194 = load i32, ptr %1, align 4, !tbaa !3
  %195 = add i32 %194, 50
  %196 = srem i32 %195, 13
  %197 = sext i32 %196 to i64
  %198 = getelementptr i32, ptr %.unpack428, i64 %197
  %199 = load i32, ptr %198, align 4, !tbaa !3
  %200 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 20), align 4, !tbaa !3
  %201 = add i32 %200, %199
  %202 = srem i32 %201, 1000000007
  store i32 %202, ptr %198, align 4, !tbaa !3
  %203 = load i32, ptr %1, align 4, !tbaa !3
  %204 = add i32 %203, 60
  %205 = srem i32 %204, 13
  %206 = sext i32 %205 to i64
  %207 = getelementptr i32, ptr %.unpack428, i64 %206
  %208 = load i32, ptr %207, align 4, !tbaa !3
  %209 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 24), align 8, !tbaa !3
  %210 = add i32 %209, %208
  %211 = srem i32 %210, 1000000007
  store i32 %211, ptr %207, align 4, !tbaa !3
  %212 = load i32, ptr %1, align 4, !tbaa !3
  %213 = add i32 %212, 70
  %214 = srem i32 %213, 13
  %215 = sext i32 %214 to i64
  %216 = getelementptr i32, ptr %.unpack428, i64 %215
  %217 = load i32, ptr %216, align 4, !tbaa !3
  %218 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 28), align 4, !tbaa !3
  %219 = add i32 %218, %217
  %220 = srem i32 %219, 1000000007
  store i32 %220, ptr %216, align 4, !tbaa !3
  %221 = load i32, ptr %1, align 4, !tbaa !3
  %222 = add i32 %221, 80
  %223 = srem i32 %222, 13
  %224 = sext i32 %223 to i64
  %225 = getelementptr i32, ptr %.unpack428, i64 %224
  %226 = load i32, ptr %225, align 4, !tbaa !3
  %227 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 32), align 16, !tbaa !3
  %228 = add i32 %227, %226
  %229 = srem i32 %228, 1000000007
  store i32 %229, ptr %225, align 4, !tbaa !3
  %230 = load i32, ptr %1, align 4, !tbaa !3
  %231 = add i32 %230, 90
  %232 = srem i32 %231, 13
  %233 = sext i32 %232 to i64
  %234 = getelementptr i32, ptr %.unpack428, i64 %233
  %235 = load i32, ptr %234, align 4, !tbaa !3
  %236 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 36), align 4, !tbaa !3
  %237 = add i32 %236, %235
  %238 = srem i32 %237, 1000000007
  store i32 %238, ptr %234, align 4, !tbaa !3
  %239 = load i32, ptr %1, align 4, !tbaa !3
  %240 = add i32 %239, 100
  %241 = srem i32 %240, 13
  %242 = sext i32 %241 to i64
  %243 = getelementptr i32, ptr %.unpack428, i64 %242
  %244 = load i32, ptr %243, align 4, !tbaa !3
  %245 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 40), align 8, !tbaa !3
  %246 = add i32 %245, %244
  %247 = srem i32 %246, 1000000007
  store i32 %247, ptr %243, align 4, !tbaa !3
  %248 = load i32, ptr %1, align 4, !tbaa !3
  %249 = add i32 %248, 110
  %250 = srem i32 %249, 13
  %251 = sext i32 %250 to i64
  %252 = getelementptr i32, ptr %.unpack428, i64 %251
  %253 = load i32, ptr %252, align 4, !tbaa !3
  %254 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 44), align 4, !tbaa !3
  %255 = add i32 %254, %253
  %256 = srem i32 %255, 1000000007
  store i32 %256, ptr %252, align 4, !tbaa !3
  %257 = load i32, ptr %1, align 4, !tbaa !3
  %258 = add i32 %257, 120
  %259 = srem i32 %258, 13
  %260 = sext i32 %259 to i64
  %261 = getelementptr i32, ptr %.unpack428, i64 %260
  %262 = load i32, ptr %261, align 4, !tbaa !3
  %263 = load i32, ptr getelementptr inbounds ([52 x i8], ptr @_QFEold_dp.0.body, i64 0, i64 48), align 16, !tbaa !3
  %264 = add i32 %263, %262
  %265 = srem i32 %264, 1000000007
  store i32 %265, ptr %261, align 4, !tbaa !3
  br label %select.unfold

select.unfold:                                    ; preds = %.preheader, %select.unfold.loopexit504
  %indvars.iv.next511 = add nuw nsw i64 %indvars.iv510, 1
  %exitcond513.not = icmp eq i64 %indvars.iv510, %spec.select
  br i1 %exitcond513.not, label %select.unfold._crit_edge, label %.lr.ph

select.unfold._crit_edge:                         ; preds = %select.unfold, %13
  %266 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.28693029, i64 4, ptr null, i32 -1, ptr nonnull @_QQcl.5cc402ff94b424fb4afb589617717033, i32 40)
  %.unpack380 = load ptr, ptr @_QFEdp.0, align 8, !tbaa !7
  %267 = getelementptr i32, ptr %.unpack380, i64 5
  %268 = load i32, ptr %267, align 4, !tbaa !3
  %269 = call i1 @_FortranAioOutputInteger32(ptr %266, i32 %268)
  %270 = call i32 @_FortranAioEndIoStatement(ptr %266)
  %271 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable
}

declare ptr @_FortranAioBeginExternalListInput(i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioInputAscii(ptr, ptr, i64) local_unnamed_addr

declare i32 @_FortranAioEndIoStatement(ptr) local_unnamed_addr

declare i32 @_FortranACharacterCompareScalar1(ptr, ptr, i64, i64) local_unnamed_addr

declare ptr @_FortranAioBeginInternalListInput(ptr, i64, ptr, i64, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioInputInteger(ptr, ptr, i32) local_unnamed_addr

declare ptr @_FortranAioBeginExternalFormattedOutput(ptr, i64, ptr, i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioOutputInteger32(ptr, i32) local_unnamed_addr

declare {} @_FortranAStopStatement(i32, i1, i1) local_unnamed_addr

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #1

; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #2

attributes #0 = { noreturn }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #2 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" }

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

!0 = !{i32 2, !"Debug Info Version", i32 3}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{!4, !4, i64 0}
!4 = !{!"any data access", !5, i64 0}
!5 = !{!"any access", !6, i64 0}
!6 = !{!"Flang Type TBAA Root"}
!7 = !{!8, !8, i64 0}
!8 = !{!"descriptor member", !5, i64 0}
