feat(clinical): 부착 위치 정렬(AnchorGuide) — 임상 프로토콜 전 단계
piezo-phantom-test `vesiscan_test` 의 단일 pass 정렬을 이식한다. 규칙은
`alignment_selection.select_supine_anchor`(tie='cap'), 절차는
`alignment_runners.AnchorGuide`, 계약은 `porting/SPEC.md` §8.
- managers/AnchorGuide.kt 알고리즘 코어(측정·종료판정·선택 위임·안내)
- ui/.../AnchorAlignView.kt 위치별 측정 화면 + 원시 데이터 저장
- HospitalRunStore align/ 폴더에 위치별 raw cycle + 결과 요약
- 병원 모드에 정렬 카드 · 매니페스트에 anchor_cm
기존 AlignmentAdvisorV3 는 같은 저장소의 **구 알고리즘**(2-pass CenterAligner ·
bvcv tie · 오프셋 없음)이고 호출처가 0이라 그대로 두었다. Python 쪽에서도 이미
주석 처리됐다. 제품 경로는 새 파일이다.
## 검증
- 선택 규칙: Python 무작위 200 케이스 전수 대조 **200/200 일치**
(CH3 2단 게이트 · fallback · NaN=+inf · 동률 min cm 경계 포함)
- trace 분할: 22 cycle · win 10 → 11 trace, Python 과 일치
- 실기기: 20 cycle 수집 → 판정 → 안내 → 저장까지 완주 확인
## 알려진 불일치 — 화면에도 적었다
앱의 **벽 검출**(MethodDRunner)이 현재 Python 레퍼런스와 어긋난다. 실측
(HUMAN-kai VBT26050202, v1):
cm=0 CH2 ant 13.913 vs 18.559 · span 24~61 vs 33~60
cm=1 CH1 ant 4.486 vs 13.188 · CH3 는 Python 검출 / 앱 미검출
cm=1 판정 nch=4 ch3=O vs nch=3 ch3=X
cm=0 cap_frac 0.63899 vs 0.67479 · BV 410.6 vs 470.5 mL
cm=1 은 레퍼런스에서 유력 후보인데 앱에서는 후보 자격조차 없다. 정렬 선택이 이
값들 위에 서 있으므로 **앱의 추천 위치는 아직 레퍼런스의 답이 아니다.**
그래서 (1) 화면에 검증 전임을 명시하고, (2) 위치별 raw cycle 을 반드시 남긴다
(align_{n}cm.csv · Python 대조 스크립트가 바로 읽는 형식). 앱 판정이 틀려도
나중에 Python 으로 다시 고를 수 있어야 그 환자를 다시 부르지 않는다.
AnchorMeasureParityTest 는 이 불일치를 표로 기록한 채 @Ignore 로 격리했다 —
기대값을 코틀린 값으로 낮추면 대조 시험의 존재 이유가 사라진다.
BV **코어** 자체는 맞다. 벽을 고정해 넣으면 Python estimate_bv
(ellipse_cap_height=true · cap_fit='specific')와 마지막 자리까지 일치한다.
## 곁가지
- gradle.properties 에서 -Dfile.encoding=UTF-8 제거. 한글 사용자 폴더에서
테스트 워커가 클래스패스를 못 찾아(GradleWorkerMain) **단위시험이 통째로
실행되지 않고 있었다**. 신 저장소에서 같은 원인을 이미 확인했다.
- 환자명을 AppState 로 올렸다. 정렬 화면을 다녀오면 remember 가 초기화돼,
이름을 다시 치는 순간 "환자가 바뀌었다"로 보여 방금 맞춘 정렬이 지워졌다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,7 @@ enum class AppScreen {
|
||||
CLINICAL_HOME, // ★ Dev 모드 한정 — 임상 R&D 측정 세션 화면 (입력 폼)
|
||||
CLINICAL_LIVE, // ★ Dev 모드 한정 — 6채널 라이브 시각화 + Capture
|
||||
HOSPITAL_MODE, // ★ Dev 모드 한정 — 병원 임상 측정 (주파수×cycle 자동 순회)
|
||||
ANCHOR_ALIGN, // ★ Dev 모드 한정 — 부착 위치 정렬 (병원 임상 전 단계)
|
||||
FIRMWARE_UPDATE // ★ 2026-08-03 (cloud-mvp 672e679 이식) — VBT 프로브 firmware DFU
|
||||
}
|
||||
|
||||
@@ -37,6 +38,23 @@ class AppState(private val context: Context) {
|
||||
* 한 번 쓰면 비운다([consumeConnectReturn]). 안 비우면 다음에 다른 경로로 들어온
|
||||
* 연결 화면까지 엉뚱한 곳으로 보낸다.
|
||||
*/
|
||||
/**
|
||||
* 정렬로 정한 부착 위치(cm). 병원 임상 모드가 표시·기록에 쓴다.
|
||||
*
|
||||
* 자세·용량이 바뀌어도 이 위치는 **고정**이라 한 환자 동안 유지된다.
|
||||
* 환자가 바뀜면 다시 정렬해야 하므로 병원 모드에서 환자명을 바꿀 때 비운다.
|
||||
*/
|
||||
var anchorCm: Int? by mutableStateOf(null)
|
||||
|
||||
/**
|
||||
* 병원 임상 환자명. 화면 상태가 아니라 여기 둔다.
|
||||
*
|
||||
* 정렬 화면을 다녀오면 [ui.views.clinical.HospitalModeView] 가 파기되어 remember 가
|
||||
* 초기화된다. 그러면 돌아와서 이름을 다시 치는 순간 "환자가 바뀌었다"로 보여
|
||||
* 방금 맞춘 정렬 결과까지 지워진다. 정렬 화면도 이 이름으로 저장 폴더를 잡는다.
|
||||
*/
|
||||
var hospitalPatient: String by mutableStateOf("")
|
||||
|
||||
var connectReturnScreen: AppScreen? = null
|
||||
|
||||
/** 복귀 화면을 꺼내며 지운다. 없으면 null. */
|
||||
|
||||
@@ -178,6 +178,8 @@ fun MedilightApp(modifier: Modifier = Modifier) {
|
||||
AppScreen.VOIDING_DIARY -> appState.currentScreen = AppScreen.PIEZO_MONITORING
|
||||
AppScreen.REMINDER_SETTINGS -> appState.currentScreen = AppScreen.PIEZO_MONITORING
|
||||
AppScreen.FIRMWARE_UPDATE -> appState.currentScreen = AppScreen.HOME
|
||||
// 정렬은 병원 임상 모드에서 들어온다 — 돌아갈 곳도 거기다.
|
||||
AppScreen.ANCHOR_ALIGN -> appState.currentScreen = AppScreen.HOSPITAL_MODE
|
||||
// 기타
|
||||
AppScreen.SENSOR_SELECT -> appState.currentScreen = AppScreen.HOME
|
||||
// 온보딩/등록 (뒤로가기 막지 않되 Home으로)
|
||||
@@ -210,6 +212,7 @@ fun MedilightApp(modifier: Modifier = Modifier) {
|
||||
)
|
||||
AppScreen.CLINICAL_HOME -> ClinicalHomeView(appState)
|
||||
AppScreen.HOSPITAL_MODE -> com.medithings.vesiscan.ui.views.clinical.HospitalModeView(appState)
|
||||
AppScreen.ANCHOR_ALIGN -> com.medithings.vesiscan.ui.views.clinical.AnchorAlignView(appState)
|
||||
AppScreen.CLINICAL_LIVE -> ClinicalLiveView(appState)
|
||||
AppScreen.FIRMWARE_UPDATE -> com.medithings.vesiscan.firmware.ui.FirmwareUpdateScreen(
|
||||
onBack = { appState.currentScreen = AppScreen.HOME }
|
||||
|
||||
@@ -0,0 +1,442 @@
|
||||
/*
|
||||
* AnchorGuide — 단일 pass 부착 위치(anchor) 정렬.
|
||||
*
|
||||
* Python 원본: piezophantomtest `vesiscan_test/library/alignment_runners.py:AnchorGuide`
|
||||
* 선택 규칙 : `vesiscan_test/library/alignment/alignment_selection.py:select_supine_anchor`
|
||||
* 상수 : `vesiscan_test/library/alignment/config_al.py`
|
||||
* 계약 문서 : `vesiscan_test/porting/SPEC.md` §8
|
||||
*
|
||||
* ## 왜 새로 쓰나 — [AlignmentAdvisorV3] 와의 차이
|
||||
* V3 는 같은 저장소의 **구 알고리즘**(`CenterAligner`)을 옮긴 것이고, Python 쪽에서
|
||||
* 이미 주석 처리됐다("2-pass 라 실사용이 어렵다"). 바뀐 곳:
|
||||
*
|
||||
* | | V3 (구) | 이 파일 (현행) |
|
||||
* |---|---|---|
|
||||
* | 절차 | 2-pass (전수 스캔 후 재측정) | **단일 pass** (올라가며 결정) |
|
||||
* | tie | `bv_cv` 최소 | **`cap_frac` 최소** |
|
||||
* | 오프셋 | 없음 | **best + 1cm** |
|
||||
* | 종료 | 없음(5위치 전수) | nch 붕괴 / ch3 소실 / 상한 |
|
||||
*
|
||||
* V3 는 호출처가 없어 그대로 둔다(대조용). 제품 경로는 이 파일이다.
|
||||
*
|
||||
* ## 절차
|
||||
* 0cm 부터 1cm 씩 올리며 위치마다 [step] 을 한 번 부른다.
|
||||
* · 측정 : 20 cycle → nch·ch3·cap_frac
|
||||
* · 갱신 : max nch 를 **온라인** 갱신 (전역 최대를 미리 알 수 없다)
|
||||
* · 종료 : 커버리지 붕괴 / ch3 소실 / 4cm 상한
|
||||
* · 선택 : [AnchorSelection.selectBest] 에 위임 — 규칙을 여기서 재구현하지 않는다
|
||||
* · 안내 : MOVE_UP / MOVE_DOWN / STOP / REATTACH
|
||||
*
|
||||
* ## 지표 산출 단위 (여기가 제일 틀리기 쉽다 — SPEC §8.2)
|
||||
* nch·ch3 mean-scan 1회 검출 · **CCC off** ← 검출 커버리지를 재는 값
|
||||
* ch3 검출률 **trace 별**(10-cycle 슬라이딩) · CCC off
|
||||
* cap_frac mean-scan 1회 검출 · **CCC on** ← 기하를 재는 값
|
||||
*
|
||||
* 한쪽으로 통일하면 안 된다. 그리고 `cap_frac` 은 BV 파이프라인([estimateBv])을 부르므로
|
||||
* BV 포팅이 맞아야 이 정렬이 의미를 갖는다.
|
||||
*/
|
||||
package com.medithings.vesiscan.managers
|
||||
|
||||
import com.medithings.vesiscan.walldetect.MethodDRunner
|
||||
import com.medithings.vesiscan.walldetect.algo.methodd.MethodDParams
|
||||
|
||||
/** [AnchorGuide.step] 이 돌려주는 다음 행동. */
|
||||
enum class AnchorAction {
|
||||
/** 1cm 올려 다시 측정. */
|
||||
MOVE_UP,
|
||||
|
||||
/** best 를 지나쳤다 — 치골 방향으로 내려가 다시 측정. */
|
||||
MOVE_DOWN,
|
||||
|
||||
/** best 도달. 여기서 `+offsetCm` 올려 부착한다. */
|
||||
STOP,
|
||||
|
||||
/** CH3 가 잡히는 위치가 하나도 없었다 — 더 치골 쪽으로 재부착. */
|
||||
REATTACH,
|
||||
}
|
||||
|
||||
/**
|
||||
* 한 위치의 지표. Python `PosRecord` / `position_records()` 레코드와 같은 값을 낸다.
|
||||
*
|
||||
* `nchTrace`·`nchSd` 는 **진단 표시 전용**이다. 판정에 쓰지 않는다 — ch3 검출률을 재느라
|
||||
* 어차피 trace 별로 검출하므로 추가 비용 없이 얻는 값이다.
|
||||
*/
|
||||
data class AnchorPosRecord(
|
||||
val cm: Int,
|
||||
val nTrace: Int,
|
||||
/** center(CH0~CH3) 검출 채널 수 — mean-scan · CCC off. */
|
||||
val nch: Int,
|
||||
/** mean-scan 에서 CH3 검출 여부 (= Python 레코드의 `ch3 == 'O'`). */
|
||||
val ch3Mean: Boolean,
|
||||
/** CH3 가 검출된 trace 비율. */
|
||||
val ch3Rate: Double,
|
||||
/** cap 외삽 비중 — mean-scan · CCC on. 작을수록 검출 단면이 방광을 직접 덮는다. */
|
||||
val capFrac: Double,
|
||||
val nchTrace: Double = Double.NaN,
|
||||
val nchSd: Double = Double.NaN,
|
||||
) {
|
||||
/**
|
||||
* 후보 자격 — **2단 게이트**다.
|
||||
*
|
||||
* mean-scan 에서 CH3 가 잡혔고(`ch3Mean`) **동시에** trace 검출률이 임계 이상이어야
|
||||
* 한다. 율만 보면 mean-scan 에서 CH3 가 안 잡힌 위치가 통과한다
|
||||
* (Python 실측 `p4_1 v1 cm2`: ch3='X' 인데 율 81%).
|
||||
*/
|
||||
val eligible: Boolean get() = ch3Mean && ch3Rate >= AnchorConfig.CH3_HIT_MIN
|
||||
|
||||
val ch3Hit: Int get() = Math.round(ch3Rate * nTrace).toInt()
|
||||
}
|
||||
|
||||
/** 상수 — Python `alignment/config_al.py` 와 1:1. 값을 바꾸려면 그쪽부터 고칠 것. */
|
||||
object AnchorConfig {
|
||||
/** 후보 자격: per-trace CH3 검출률 하한. */
|
||||
const val CH3_HIT_MIN = 0.80
|
||||
|
||||
/** 최종 안내 = best + 이 값. **선택이 아니라 안내**다(아래 [AnchorGuide.anchorCm] 참고). */
|
||||
const val FINAL_OFFSET_CM = 1
|
||||
|
||||
/** 하강 전환 문턱. `nch < max_nch − NCH_DROP` 이면 지나친 것으로 본다. */
|
||||
const val NCH_DROP = 1.0
|
||||
|
||||
/** 탐색 상한(cm). */
|
||||
const val SEARCH_MAX_CM = 4
|
||||
|
||||
/** trace 슬라이딩 window(cycle). 분석 파이프라인과 동일 규약. */
|
||||
const val TRACE_WIN = 10
|
||||
|
||||
/**
|
||||
* 정렬 위치당 cycle 수 — **고정 20**.
|
||||
*
|
||||
* 실측(병원 모드 반복 횟수)은 화면에서 바꾸지만 정렬은 고정이다. [TRACE_WIN] 이 10 이라
|
||||
* cycle 수가 곧 trace 수를 정하고(20 → 11 trace), trace 수가 줄면 `ch3Rate` 의 해상도가
|
||||
* 거칠어져 0.8 임계가 불안정해진다(6 trace 면 5/6=83% 와 4/6=67% 사이에 값이 없다).
|
||||
*/
|
||||
const val ALIGN_CYCLES = 20
|
||||
|
||||
private const val CH3_INDEX = 3
|
||||
|
||||
/** center 채널 중 전벽·후벽이 **모두** 검출된 채널 수 (Python `_center_nch`). */
|
||||
fun centerNch(walls: List<com.medithings.vesiscan.walldetect.MethodDResult?>): Int =
|
||||
(0..CH3_INDEX).count { it < walls.size && walls[it] != null }
|
||||
|
||||
/** CH3 검출 여부 (Python `ch3_ok`). */
|
||||
fun ch3Ok(walls: List<com.medithings.vesiscan.walldetect.MethodDResult?>): Boolean =
|
||||
walls.size > CH3_INDEX && walls[CH3_INDEX] != null
|
||||
}
|
||||
|
||||
/**
|
||||
* cap 외삽 비중 = (top_h + bottom_h) / (측정 SI span + cap). Python `runners.cap_fraction`.
|
||||
*
|
||||
* 작을수록 검출 단면이 방광을 직접 덮어(외삽이 적어) 곡률이 잘 구속된다 = 신뢰도가 높다.
|
||||
* 그래서 nch 동률일 때 **최소값**을 고른다.
|
||||
*
|
||||
* BV 를 못 내면 1.0(최악)을 돌려준다 — Python 과 같다. 후보 정렬에서 자연히 뒤로 밀린다.
|
||||
*/
|
||||
fun capFraction(walls: List<WallWithSpan?>): Double {
|
||||
val r = estimateBv(walls) ?: return 1.0
|
||||
val y = r.sortedYMm
|
||||
val ySpan = if (y.size >= 2) (y.max() - y.min()) else 0.0
|
||||
val top = if (r.topHMm.isFinite()) r.topHMm else 0.0
|
||||
val bot = if (r.bottomHMm.isFinite()) r.bottomHMm else 0.0
|
||||
val cap = top + bot
|
||||
val denom = ySpan + cap
|
||||
return if (denom > 0.0) cap / denom else 1.0
|
||||
}
|
||||
|
||||
/** 선택 결과. Python `AnchorDecision`. */
|
||||
data class AnchorDecision(
|
||||
/** null = 유효 위치 없음(재부착). */
|
||||
val bestCm: Int?,
|
||||
val nCandidate: Int,
|
||||
val record: AnchorPosRecord?,
|
||||
)
|
||||
|
||||
/**
|
||||
* 선택 규칙 — **단일 진실원천**. Python `select_supine_anchor`(tie='cap', offset=0).
|
||||
*
|
||||
* 오프셋은 여기서 다루지 않는다. Python 의 `select_supine_anchor(offset_cm=)` 은 측정된
|
||||
* 위치로 스냅하는 **회고 분석 전용** 동작이고, 실시간 경로는 단순 덧셈이다(SPEC §8 ④).
|
||||
*/
|
||||
object AnchorSelection {
|
||||
|
||||
/** 조건 ①: CH3 검출 위치만. 검출률 임계 통과분 우선, 없으면 `ch3='O'` 전체 fallback. */
|
||||
fun eligibleCh3(records: List<AnchorPosRecord>): List<AnchorPosRecord> {
|
||||
val cand = records.filter { it.ch3Mean }
|
||||
val passed = cand.filter { it.nTrace > 0 && it.ch3Rate >= AnchorConfig.CH3_HIT_MIN }
|
||||
return if (passed.isNotEmpty()) passed else cand
|
||||
}
|
||||
|
||||
/**
|
||||
* ① ch3 필수 → ② max nch → ③ cap_frac 최소 (동률이면 min cm).
|
||||
*
|
||||
* `cap_frac` 이 유한하지 않으면 +∞ 로 취급해 맨 뒤로 보낸다(Python `_tie_val`).
|
||||
*/
|
||||
fun selectBest(records: List<AnchorPosRecord>): AnchorDecision {
|
||||
if (records.isEmpty()) return AnchorDecision(null, 0, null)
|
||||
val cand = eligibleCh3(records)
|
||||
if (cand.isEmpty()) return AnchorDecision(null, 0, null)
|
||||
val maxNch = cand.maxOf { it.nch }
|
||||
val top = cand.filter { it.nch == maxNch }
|
||||
val best = top.minWithOrNull(
|
||||
compareBy(
|
||||
{ if (it.capFrac.isFinite()) it.capFrac else Double.POSITIVE_INFINITY },
|
||||
{ it.cm },
|
||||
)
|
||||
)
|
||||
return AnchorDecision(best?.cm, cand.size, best)
|
||||
}
|
||||
}
|
||||
|
||||
/** [AnchorGuide.step] 반환값. */
|
||||
data class AnchorStep(
|
||||
val action: AnchorAction,
|
||||
/** 사용자에게 보여줄 안내 문구. */
|
||||
val message: String,
|
||||
val record: AnchorPosRecord?,
|
||||
val bestCm: Int?,
|
||||
/** 최종 부착 위치 = best + offset. best 미확정이면 null. */
|
||||
val anchorCm: Int?,
|
||||
val maxNch: Double,
|
||||
val searching: Boolean,
|
||||
val stopReason: String?,
|
||||
) {
|
||||
val done: Boolean get() = action == AnchorAction.STOP || action == AnchorAction.REATTACH
|
||||
}
|
||||
|
||||
/**
|
||||
* 단일 pass 정렬 상태기. 위치마다 [step] 을 한 번 부른다.
|
||||
*
|
||||
* ```
|
||||
* val g = AnchorGuide()
|
||||
* for (cm in 0..4) {
|
||||
* val s = g.step(cyclesAt(cm), cm)
|
||||
* if (s.done) break
|
||||
* }
|
||||
* val s = if (!g.settled) g.finish() else null // 위치 소진 시 강제 확정
|
||||
* ```
|
||||
*/
|
||||
class AnchorGuide(
|
||||
private val offsetCm: Int = AnchorConfig.FINAL_OFFSET_CM,
|
||||
private val nchDrop: Double = AnchorConfig.NCH_DROP,
|
||||
private val maxCm: Int? = AnchorConfig.SEARCH_MAX_CM,
|
||||
private val traceWin: Int = AnchorConfig.TRACE_WIN,
|
||||
private val methodDParams: MethodDParams = MethodDParams.DEFAULT,
|
||||
) {
|
||||
private val recs = LinkedHashMap<Int, AnchorPosRecord>()
|
||||
|
||||
/** ② 온라인 갱신되는 최대 nch. 전역 최대를 미리 알 수 없다. */
|
||||
var maxNch: Double = 0.0
|
||||
private set
|
||||
|
||||
var searching: Boolean = true
|
||||
private set
|
||||
|
||||
var bestCm: Int? = null
|
||||
private set
|
||||
|
||||
var stopReason: String? = null
|
||||
private set
|
||||
|
||||
val records: List<AnchorPosRecord> get() = recs.values.sortedBy { it.cm }
|
||||
|
||||
/** 탐색이 끝나 best 가 정해졌는지. */
|
||||
val settled: Boolean get() = !searching
|
||||
|
||||
/**
|
||||
* 최종 부착 위치 = **best + offsetCm** (단순 덧셈).
|
||||
*
|
||||
* 알고리즘이 하는 일은 best 를 고르는 것까지다. 오프셋은 그 뒤 사용자에게 "1cm
|
||||
* 올리세요" 라고 **안내**하는 값이지, 후보 중에서 다시 고르는 선택이 아니다.
|
||||
* **오프셋 위치는 측정하지 않는다** — 설계상 그 자리는 지표가 나쁘므로, 측정해서
|
||||
* 문턱으로 쓰면 anchor 에 도달하기 전에 멈춘다.
|
||||
*/
|
||||
val anchorCm: Int? get() = bestCm?.let { it + offsetCm }
|
||||
|
||||
// ── 측정 ────────────────────────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* 한 위치의 cycles → [AnchorPosRecord]. Python `AnchorGuide.measure` 와 같은 산출식.
|
||||
*
|
||||
* @param cycles (cycle, 6채널, sample). 정렬은 [AnchorConfig.ALIGN_CYCLES] 개가 표준.
|
||||
*/
|
||||
fun measure(cycles: List<List<DoubleArray>>, cm: Int): AnchorPosRecord {
|
||||
val meanScan = meanOf(cycles)
|
||||
|
||||
// 검출 커버리지(nch·ch3)는 CCC **off**, 기하(cap_frac)는 CCC **on**.
|
||||
// 같은 mean-scan 을 두 번 검출한다 — 통일하면 안 된다(SPEC §8.2-1).
|
||||
val wallsBase = MethodDRunner.detectMultichannel(
|
||||
meanScan, methodDParams, applyTgc = true, applyCross = false)
|
||||
val wallsCross = MethodDRunner.detectMultichannel(
|
||||
meanScan, methodDParams, applyTgc = true, applyCross = true)
|
||||
|
||||
val capFrac = capFraction(wallsCross.map { r ->
|
||||
r?.let { WallWithSpan(it.antRefined, it.postRefined, it.lowStart, it.lowEnd) }
|
||||
})
|
||||
|
||||
// ch3 검출률은 trace 단위다. 그 김에 trace 별 nch 통계도 얻는다(진단용).
|
||||
val traces = slidingTraces(cycles, traceWin)
|
||||
var hit = 0
|
||||
val nchs = ArrayList<Int>(traces.size)
|
||||
for (tr in traces) {
|
||||
val w = MethodDRunner.detectMultichannel(
|
||||
tr, methodDParams, applyTgc = true, applyCross = false)
|
||||
nchs.add(AnchorConfig.centerNch(w))
|
||||
if (AnchorConfig.ch3Ok(w)) hit++
|
||||
}
|
||||
val n = traces.size
|
||||
val mean = if (nchs.isNotEmpty()) nchs.average() else Double.NaN
|
||||
val sd = if (nchs.size > 1)
|
||||
Math.sqrt(nchs.map { (it - mean) * (it - mean) }.average()) else 0.0
|
||||
|
||||
return AnchorPosRecord(
|
||||
cm = cm,
|
||||
nTrace = n,
|
||||
nch = AnchorConfig.centerNch(wallsBase),
|
||||
ch3Mean = AnchorConfig.ch3Ok(wallsBase),
|
||||
ch3Rate = if (n > 0) hit.toDouble() / n else 0.0,
|
||||
capFrac = capFrac,
|
||||
nchTrace = mean,
|
||||
nchSd = sd,
|
||||
)
|
||||
}
|
||||
|
||||
// ── 진행 ────────────────────────────────────────────────────────────────
|
||||
|
||||
/** 한 위치 측정 → 안내. */
|
||||
fun step(cycles: List<List<DoubleArray>>, cm: Int): AnchorStep {
|
||||
val rec = measure(cycles, cm)
|
||||
recs[cm] = rec
|
||||
|
||||
if (searching) {
|
||||
remember(rec)
|
||||
val reason = terminator(rec)
|
||||
if (reason == null) {
|
||||
return out(AnchorAction.MOVE_UP, "1cm 올리고 다시 측정하세요.\n${describe(rec)}", rec)
|
||||
}
|
||||
searching = false
|
||||
stopReason = reason
|
||||
bestCm = AnchorSelection.selectBest(selectableRecords()).bestCm
|
||||
if (bestCm == null) {
|
||||
return out(
|
||||
AnchorAction.REATTACH,
|
||||
"CH3 가 잡히는 위치가 없습니다. 더 치골 쪽으로 다시 부착하세요.\n($reason)",
|
||||
rec,
|
||||
)
|
||||
}
|
||||
}
|
||||
return guideToBest(rec)
|
||||
}
|
||||
|
||||
/**
|
||||
* 더 올릴 위치가 없을 때 탐색을 강제 종료하고 best 를 확정한다.
|
||||
*
|
||||
* 하강 전환은 "지나쳐야" 발동하므로, 올라가는 도중 위치가 소진되면(기구적 상한·
|
||||
* 피험자 체형) 영영 발동하지 않는다. 그때 호출부가 이걸 부른다.
|
||||
*/
|
||||
fun finish(): AnchorStep {
|
||||
if (searching) {
|
||||
searching = false
|
||||
stopReason = stopReason ?: "탐색 위치 소진"
|
||||
bestCm = AnchorSelection.selectBest(selectableRecords()).bestCm
|
||||
}
|
||||
val best = bestCm
|
||||
?: return out(
|
||||
AnchorAction.REATTACH,
|
||||
"CH3 가 잡히는 위치가 없습니다. 더 치골 쪽으로 다시 부착하세요.", null)
|
||||
val last = recs.keys.maxOrNull() ?: best
|
||||
return guideToBest(recs[last])
|
||||
}
|
||||
|
||||
fun reset() {
|
||||
recs.clear(); maxNch = 0.0; searching = true; bestCm = null; stopReason = null
|
||||
}
|
||||
|
||||
// ── 내부 ────────────────────────────────────────────────────────────────
|
||||
|
||||
/** ② max nch 갱신 — **후보 자격을 갖춘 위치만** 센다. */
|
||||
private fun remember(rec: AnchorPosRecord) {
|
||||
if (!rec.eligible) return
|
||||
if (rec.nch > maxNch) maxNch = rec.nch.toDouble()
|
||||
}
|
||||
|
||||
/** ③ 종료 사유(없으면 null). */
|
||||
private fun terminator(rec: AnchorPosRecord): String? {
|
||||
if (maxNch > 0 && rec.nch < maxNch - nchDrop) {
|
||||
return "커버리지 붕괴 nch ${rec.nch} < 최대 ${fmtNch(maxNch)}−${fmtNch(nchDrop)}"
|
||||
}
|
||||
if (!rec.eligible && recs.values.any { it.eligible }) {
|
||||
return "ch3 소실 ${pct(rec.ch3Rate)}<${pct(AnchorConfig.CH3_HIT_MIN)}"
|
||||
}
|
||||
if (maxCm != null && rec.cm >= maxCm) return "탐색 상한 ${maxCm}cm"
|
||||
return null
|
||||
}
|
||||
|
||||
/** cap_frac 이 유한한 위치만 선택 입력으로 넘긴다(Python `_records`). */
|
||||
private fun selectableRecords(): List<AnchorPosRecord> =
|
||||
recs.values.filter { it.capFrac.isFinite() }
|
||||
|
||||
private fun guideToBest(rec: AnchorPosRecord?): AnchorStep {
|
||||
val best = bestCm!!
|
||||
if (rec != null && rec.cm > best) {
|
||||
return out(
|
||||
AnchorAction.MOVE_DOWN,
|
||||
"치골 방향으로 ${rec.cm - best}cm 내리세요. (최적 ${best}cm · $stopReason)",
|
||||
rec,
|
||||
)
|
||||
}
|
||||
if (rec != null && rec.cm < best) {
|
||||
return out(AnchorAction.MOVE_UP,
|
||||
"머리 방향으로 ${best - rec.cm}cm 올리세요. (최적 ${best}cm)", rec)
|
||||
}
|
||||
val b = recs[best]
|
||||
return out(
|
||||
AnchorAction.STOP,
|
||||
"정렬 완료 — 최적 위치 ${best}cm" +
|
||||
(b?.let { " (nch ${it.nch} · cap ${fmt3(it.capFrac)})" } ?: "") +
|
||||
"\n여기서 ${offsetCm}cm 더 올려 ${anchorCm}cm 에 부착하세요.",
|
||||
rec,
|
||||
)
|
||||
}
|
||||
|
||||
private fun out(action: AnchorAction, msg: String, rec: AnchorPosRecord?) = AnchorStep(
|
||||
action = action, message = msg, record = rec, bestCm = bestCm, anchorCm = anchorCm,
|
||||
maxNch = maxNch, searching = searching, stopReason = stopReason,
|
||||
)
|
||||
|
||||
private fun describe(r: AnchorPosRecord): String =
|
||||
"${r.cm}cm · 채널 ${r.nch}/4 · CH3 ${if (r.ch3Mean) "O" else "X"} ${pct(r.ch3Rate)}" +
|
||||
" · cap ${fmt3(r.capFrac)}" + if (r.eligible) "" else " (CH3 미달)"
|
||||
|
||||
private fun meanOf(cycles: List<List<DoubleArray>>): List<DoubleArray> {
|
||||
val nCh = cycles[0].size
|
||||
return List(nCh) { ch ->
|
||||
val len = cycles[0][ch].size
|
||||
DoubleArray(len) { i ->
|
||||
var s = 0.0
|
||||
for (c in cycles) s += c[ch][i]
|
||||
s / cycles.size
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* cycles → trace 리스트 (10-cycle 슬라이딩 평균). Python `_traces`.
|
||||
*
|
||||
* cycle 수가 window 이하면 전체 평균 1개다(`C-w+1 = 1`).
|
||||
*/
|
||||
private fun slidingTraces(
|
||||
cycles: List<List<DoubleArray>>, win: Int,
|
||||
): List<List<DoubleArray>> {
|
||||
val n = cycles.size
|
||||
val w = minOf(win, n)
|
||||
return if (n <= w) listOf(meanOf(cycles))
|
||||
else (0..n - w).map { s -> meanOf(cycles.subList(s, s + w)) }
|
||||
}
|
||||
|
||||
companion object {
|
||||
private fun pct(v: Double) = "${Math.round(v * 100)}%"
|
||||
private fun fmt3(v: Double) = if (v.isFinite()) "%.3f".format(v) else "-"
|
||||
private fun fmtNch(v: Double) =
|
||||
if (v == Math.floor(v)) "%.0f".format(v) else "%.1f".format(v)
|
||||
}
|
||||
}
|
||||
@@ -150,6 +150,55 @@ object HospitalRunStore {
|
||||
}
|
||||
}
|
||||
|
||||
// ── 정렬(anchor) ─────────────────────────────────────────────────────
|
||||
//
|
||||
// 위치마다 잰 raw cycle 을 그대로 남긴다.
|
||||
//
|
||||
// 왜 지표만이 아니라 raw 인가: 앱의 벽 검출이 Python 레퍼런스와 아직 어긋나 있어
|
||||
// (2026-09-03 실측 · AnchorMeasureParityTest KDoc 참조) 앱이 고른 위치가 레퍼런스가
|
||||
// 고를 위치와 다를 수 있다. raw 가 남아 있으면 나중에 Python 으로 다시 판정할 수 있고,
|
||||
// 없으면 그 환자는 다시 부를 수밖에 없다.
|
||||
|
||||
/** 정렬 raw 는 임상 데이터와 같은 환자·날짜 폴더 밑 `align/` 에 둔다. */
|
||||
fun alignDir(patient: String, startedAt: Date): File {
|
||||
val dir = File(runDir(patient, startedAt), "align")
|
||||
if (!dir.exists()) dir.mkdirs()
|
||||
return dir
|
||||
}
|
||||
|
||||
/**
|
||||
* 한 위치의 cycle 전부를 CSV 로 저장한다.
|
||||
*
|
||||
* 형식은 Python 대조 스크립트가 바로 읽도록 `cycle,channel,s0..sN` 으로 맞췄다
|
||||
* (`app/src/test/resources/align_cm*.csv` 와 동일).
|
||||
*/
|
||||
fun writeAlignCycles(
|
||||
dir: File, cm: Int, cycles: List<List<DoubleArray>>,
|
||||
): Boolean = try {
|
||||
File(dir, "align_%dcm.csv".format(cm)).bufferedWriter().use { w ->
|
||||
cycles.forEachIndexed { ci, chans ->
|
||||
chans.forEachIndexed { ch, buf ->
|
||||
w.write(buildString {
|
||||
append(ci); append(','); append(ch)
|
||||
for (v in buf) { append(','); append(v.toInt()) }
|
||||
})
|
||||
w.newLine()
|
||||
}
|
||||
}
|
||||
}
|
||||
true
|
||||
} catch (e: Exception) {
|
||||
android.util.Log.w("HospitalRunStore", "align cycles 저장 실패 cm=$cm: ${e.message}")
|
||||
false
|
||||
}
|
||||
|
||||
/** 정렬 결과 요약(위치별 지표 + 선택). 판정 근거를 남겨 두어야 나중에 대조할 수 있다. */
|
||||
fun writeAlignSummary(dir: File, json: JSONObject) {
|
||||
runCatching {
|
||||
File(dir, "align_result.json").writeText(json.toString(2), Charsets.UTF_8)
|
||||
}
|
||||
}
|
||||
|
||||
// ── 진행 현황 ────────────────────────────────────────────────────────
|
||||
//
|
||||
// 간호사가 자세·방광 단계를 하나씩 올려 가며 재는데, 중간에 자리를 비우거나
|
||||
|
||||
@@ -0,0 +1,412 @@
|
||||
/*
|
||||
* 부착 위치 정렬 (anchor) — 병원 임상 프로토콜 **전** 단계.
|
||||
*
|
||||
* 치골 위 0cm 부터 1cm 씩 올리며 위치를 하나 고르고, 그 위치를 이후 전 자세·전 용량에서
|
||||
* 고정해 재사용한다. 규칙은 [AnchorGuide] 가 소유한다 — 이 파일은 화면과 BLE 만 맡는다.
|
||||
*
|
||||
* ## 측정 조건은 정렬 전용으로 고정한다
|
||||
* 2.3MHz · cycle 3 · 위치당 20 cycle. 병원 모드가 6조합을 순회하는 것과 달리 정렬은
|
||||
* 한 설정으로만 잰다 — 검출 문턱이 절대값 기준이라 설정이 바뀌면 `nch` 가 달라지고,
|
||||
* 그러면 위치끼리 비교가 성립하지 않는다.
|
||||
*
|
||||
* 20 cycle 은 고정이다(실측 반복 횟수만 화면에서 바꾼다). 슬라이딩 window 가 10 이라
|
||||
* cycle 수가 곧 trace 수를 정하는데(20 → 11 trace), trace 가 줄면 CH3 검출률의 해상도가
|
||||
* 거칠어져 0.8 임계가 불안정해진다.
|
||||
*
|
||||
* ## 화면 흐름
|
||||
* [0cm 에서 측정] → 안내(1cm 올리세요) → [1cm 에서 측정] → ... →
|
||||
* 정렬 완료: "최적 2cm · 여기서 1cm 더 올려 3cm 에 부착하세요"
|
||||
*
|
||||
* 오프셋 위치(+1cm)는 **측정하지 않는다**. 설계상 그 자리는 지표가 나쁘므로, 재확인하면
|
||||
* 반드시 "미달"이 떠서 anchor 에 도달하기 전에 멈추게 된다.
|
||||
*/
|
||||
package com.medithings.vesiscan.ui.views.clinical
|
||||
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.medithings.vesiscan.AppScreen
|
||||
import com.medithings.vesiscan.AppState
|
||||
import com.medithings.vesiscan.ble.BleManager
|
||||
import com.medithings.vesiscan.managers.AnchorAction
|
||||
import com.medithings.vesiscan.managers.AnchorConfig
|
||||
import com.medithings.vesiscan.managers.AnchorGuide
|
||||
import com.medithings.vesiscan.managers.AnchorPosRecord
|
||||
import com.medithings.vesiscan.managers.AnchorStep
|
||||
import com.medithings.vesiscan.models.HospitalFixedParams
|
||||
import com.medithings.vesiscan.services.HospitalRunStore
|
||||
import org.json.JSONArray
|
||||
import org.json.JSONObject
|
||||
import java.util.Date
|
||||
import com.medithings.vesiscan.models.ProbeCycle
|
||||
import com.medithings.vesiscan.models.ProbeFrequency
|
||||
import com.medithings.vesiscan.ui.theme.*
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.withTimeoutOrNull
|
||||
|
||||
/** 정렬 측정 조건 — 병원 모드의 조합 순회와 무관하게 고정. */
|
||||
private val ALIGN_FREQ = ProbeFrequency.F_2_3
|
||||
private val ALIGN_CYCLE = ProbeCycle.C3
|
||||
|
||||
private const val MEASURE_TIMEOUT_MS = 3_000L
|
||||
private const val CONFIG_TIMEOUT_MS = 3_000L
|
||||
private const val SETTLE_MS = 800L
|
||||
private const val CYCLE_GAP_MS = 600L
|
||||
|
||||
@Composable
|
||||
fun AnchorAlignView(appState: AppState) {
|
||||
val context = LocalContext.current
|
||||
val bleManager = remember { BleManager.getInstance(context) }
|
||||
val isConnected by bleManager.isConnected
|
||||
val deviceName = bleManager.connectedDeviceName.value
|
||||
|
||||
val guide = remember { AnchorGuide() }
|
||||
var cm by remember { mutableIntStateOf(0) }
|
||||
var measuring by remember { mutableStateOf(false) }
|
||||
var progress by remember { mutableIntStateOf(0) }
|
||||
var last by remember { mutableStateOf<AnchorStep?>(null) }
|
||||
var error by remember { mutableStateOf<String?>(null) }
|
||||
var records by remember { mutableStateOf<List<AnchorPosRecord>>(emptyList()) }
|
||||
// 위치를 다 썼는데 종료 조건이 안 걸리면 호출부가 강제 확정한다(AnchorGuide.finish).
|
||||
var forceFinish by remember { mutableStateOf(false) }
|
||||
// 한 정렬 세션의 시작 시각 — 저장 폴더가 위치마다 갈리지 않게 고정한다.
|
||||
val runStartedAt = remember { Date() }
|
||||
|
||||
val done = last?.done == true
|
||||
|
||||
LaunchedEffect(measuring, forceFinish) {
|
||||
if (forceFinish) {
|
||||
last = guide.finish()
|
||||
records = guide.records
|
||||
forceFinish = false
|
||||
return@LaunchedEffect
|
||||
}
|
||||
if (!measuring) return@LaunchedEffect
|
||||
error = null
|
||||
progress = 0
|
||||
|
||||
val inbox = kotlinx.coroutines.channels.Channel<
|
||||
List<com.medithings.vesiscan.ble.PiezoChannelData>>(
|
||||
kotlinx.coroutines.channels.Channel.CONFLATED)
|
||||
val prev = bleManager.piezoCollector.onMultiChannelComplete
|
||||
bleManager.piezoCollector.onMultiChannelComplete = { ch -> inbox.trySend(ch) }
|
||||
try {
|
||||
// 정렬 파라미터를 프로브에 넣고 **echo 로 확인한 뒤** 잰다. 설정이 거부돼도
|
||||
// 프로브는 옛 설정으로 계속 측정하므로, 확인하지 않으면 다른 조건의 신호로
|
||||
// 위치를 고르게 된다 — 병원 모드와 같은 이유다.
|
||||
bleManager.piezoConfigEcho.value = null
|
||||
bleManager.sendPiezoConfig(
|
||||
freq = ALIGN_FREQ.freqOption,
|
||||
cycles = ALIGN_CYCLE.cycles,
|
||||
avg = HospitalFixedParams.AVG,
|
||||
delayUs = HospitalFixedParams.DELAY_US,
|
||||
samples = HospitalFixedParams.SAMPLES,
|
||||
)
|
||||
val echo = withTimeoutOrNull(CONFIG_TIMEOUT_MS) {
|
||||
while (bleManager.piezoConfigEcho.value == null) delay(20)
|
||||
bleManager.piezoConfigEcho.value
|
||||
}
|
||||
val ok = echo?.matches(
|
||||
ALIGN_FREQ.freqOption, ALIGN_CYCLE.cycles,
|
||||
HospitalFixedParams.AVG, HospitalFixedParams.DELAY_US,
|
||||
HospitalFixedParams.SAMPLES,
|
||||
) == true
|
||||
if (!ok) {
|
||||
error = "프로브 설정 실패 — ${echo?.error ?: "응답 없음 또는 설정 불일치"}"
|
||||
return@LaunchedEffect
|
||||
}
|
||||
delay(SETTLE_MS)
|
||||
|
||||
// 20 cycle 수집. 한 번이라도 놓치면 그 위치는 버린다 — trace 수가 달라지면
|
||||
// 검출률 임계의 의미가 위치마다 달라져 비교가 깨진다.
|
||||
val cycles = ArrayList<List<DoubleArray>>(AnchorConfig.ALIGN_CYCLES)
|
||||
for (i in 1..AnchorConfig.ALIGN_CYCLES) {
|
||||
while (inbox.tryReceive().isSuccess) { /* 늦게 도착한 직전 결과 비우기 */ }
|
||||
bleManager.sendMtb()
|
||||
val got = withTimeoutOrNull(MEASURE_TIMEOUT_MS) { inbox.receive() }
|
||||
if (got == null) {
|
||||
error = "측정 시간 초과 (${i}/${AnchorConfig.ALIGN_CYCLES}) — 다시 측정하세요."
|
||||
return@LaunchedEffect
|
||||
}
|
||||
cycles.add(got.sortedBy { it.channel }.map { ch ->
|
||||
DoubleArray(ch.buffer.size) { k -> ch.buffer[k].toDouble() }
|
||||
})
|
||||
progress = i
|
||||
delay(CYCLE_GAP_MS)
|
||||
}
|
||||
|
||||
// 판정 **전에** raw 를 남긴다. 앱의 검출이 레퍼런스와 어긋나 있는 동안에는
|
||||
// 이 파일이 정답을 되살릴 유일한 수단이다 — 판정이 실패해도 데이터는 남아야 한다.
|
||||
val patient = appState.hospitalPatient
|
||||
if (patient.isNotBlank()) {
|
||||
val dir = HospitalRunStore.alignDir(patient, runStartedAt)
|
||||
if (!HospitalRunStore.writeAlignCycles(dir, cm, cycles)) {
|
||||
error = "정렬 원시 데이터 저장 실패 (${cm}cm) — 저장 공간을 확인하세요."
|
||||
}
|
||||
}
|
||||
|
||||
val step = guide.step(cycles, cm)
|
||||
last = step
|
||||
records = guide.records
|
||||
|
||||
// 결과 요약도 매 위치마다 갱신한다. 중간에 앱이 죽어도 여기까지는 남는다.
|
||||
if (patient.isNotBlank()) {
|
||||
HospitalRunStore.writeAlignSummary(
|
||||
HospitalRunStore.alignDir(patient, runStartedAt),
|
||||
buildAlignSummary(patient, deviceName, bleManager.firmwareVersion.value,
|
||||
guide.records, step),
|
||||
)
|
||||
}
|
||||
// 안내대로 다음 측정 위치를 미리 맞춰 둔다. 사용자는 프로브만 옮기면 된다.
|
||||
when (step.action) {
|
||||
AnchorAction.MOVE_UP -> cm += 1
|
||||
AnchorAction.MOVE_DOWN -> step.bestCm?.let { cm = it }
|
||||
else -> Unit
|
||||
}
|
||||
} finally {
|
||||
bleManager.piezoCollector.onMultiChannelComplete = prev
|
||||
inbox.close()
|
||||
measuring = false
|
||||
}
|
||||
}
|
||||
|
||||
Column(
|
||||
Modifier.fillMaxSize().background(MlBackground).verticalScroll(rememberScrollState())
|
||||
) {
|
||||
Row(
|
||||
Modifier.fillMaxWidth().padding(horizontal = 12.dp, vertical = 8.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
IconButton(onClick = { if (!measuring) appState.currentScreen = AppScreen.HOSPITAL_MODE }) {
|
||||
Icon(Icons.AutoMirrored.Filled.ArrowBack, "Back", tint = MlPrimary)
|
||||
}
|
||||
Text("부착 위치 정렬", fontSize = 18.sp, fontWeight = FontWeight.Bold)
|
||||
}
|
||||
|
||||
Column(Modifier.padding(horizontal = 16.dp)) {
|
||||
StatusChip(isConnected, deviceName)
|
||||
Spacer(Modifier.height(12.dp))
|
||||
|
||||
Text(
|
||||
"치골 위 0cm 에서 시작해 안내대로 1cm 씩 올리며 측정합니다.\n" +
|
||||
"측정 조건 ${ALIGN_FREQ.label}MHz · cycle ${ALIGN_CYCLE.cycles} · " +
|
||||
"위치당 ${AnchorConfig.ALIGN_CYCLES}회 (고정)",
|
||||
fontSize = 13.sp, color = MlSecondaryText,
|
||||
)
|
||||
Spacer(Modifier.height(10.dp))
|
||||
// 앱의 벽 검출이 Python 레퍼런스와 아직 어긋나 있다(2026-09-03 실측).
|
||||
// 화면에 적어 두지 않으면 현장에서는 검증된 결과로 받아들이게 된다.
|
||||
Box(
|
||||
Modifier.fillMaxWidth()
|
||||
.background(MlWarning.copy(alpha = 0.10f), RoundedCornerShape(10.dp))
|
||||
.padding(10.dp)
|
||||
) {
|
||||
Text(
|
||||
"⚠ 이 추천 위치는 아직 검증 전입니다. 앱의 벽 검출이 분석 도구와 " +
|
||||
"일치하지 않는 구간이 있어, 최종 판단은 임상의 · 검사자가 하십시오. " +
|
||||
"각 위치의 원시 데이터는 저장되므로 나중에 다시 판정할 수 있습니다.",
|
||||
fontSize = 12.sp, color = MlWarning,
|
||||
)
|
||||
}
|
||||
Spacer(Modifier.height(16.dp))
|
||||
|
||||
// 현재 위치 — 크게. 간호사가 프로브를 잡은 채 멀리서 봐야 한다.
|
||||
Box(
|
||||
Modifier.fillMaxWidth()
|
||||
.background(Color.White, RoundedCornerShape(14.dp))
|
||||
.padding(vertical = 20.dp),
|
||||
contentAlignment = Alignment.Center,
|
||||
) {
|
||||
Column(horizontalAlignment = Alignment.CenterHorizontally) {
|
||||
Text(if (done) "부착 위치" else "지금 측정할 위치",
|
||||
fontSize = 13.sp, color = MlSecondaryText)
|
||||
Spacer(Modifier.height(4.dp))
|
||||
Text(
|
||||
if (done) "${last?.anchorCm ?: "-"} cm" else "$cm cm",
|
||||
fontSize = 40.sp, fontWeight = FontWeight.Bold,
|
||||
color = if (done) MlSuccess else MlPrimary,
|
||||
)
|
||||
}
|
||||
}
|
||||
Spacer(Modifier.height(12.dp))
|
||||
|
||||
last?.let { s ->
|
||||
val tone = when (s.action) {
|
||||
AnchorAction.STOP -> MlSuccess
|
||||
AnchorAction.REATTACH -> MlCritical
|
||||
else -> MlPrimary
|
||||
}
|
||||
Box(
|
||||
Modifier.fillMaxWidth()
|
||||
.border(1.5.dp, tone, RoundedCornerShape(12.dp))
|
||||
.padding(12.dp)
|
||||
) { Text(s.message, fontSize = 14.sp, color = tone) }
|
||||
Spacer(Modifier.height(12.dp))
|
||||
}
|
||||
|
||||
error?.let {
|
||||
Text(it, fontSize = 13.sp, color = MlCritical)
|
||||
Spacer(Modifier.height(8.dp))
|
||||
}
|
||||
|
||||
if (measuring) {
|
||||
LinearProgressIndicator(
|
||||
progress = { progress / AnchorConfig.ALIGN_CYCLES.toFloat() },
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
)
|
||||
Spacer(Modifier.height(6.dp))
|
||||
Text("${cm}cm 측정 중 $progress/${AnchorConfig.ALIGN_CYCLES}",
|
||||
fontSize = 13.sp, color = MlSecondaryText)
|
||||
Spacer(Modifier.height(12.dp))
|
||||
}
|
||||
|
||||
if (!done) {
|
||||
Button(
|
||||
onClick = { measuring = true },
|
||||
enabled = isConnected && !measuring,
|
||||
modifier = Modifier.fillMaxWidth().height(52.dp),
|
||||
shape = RoundedCornerShape(14.dp),
|
||||
) { Text("${cm}cm 측정", fontSize = 16.sp, fontWeight = FontWeight.Bold) }
|
||||
|
||||
// 탐색 상한(4cm)까지 갔는데도 종료가 안 걸릴 수 있다 — 그때 쓰는 문이다.
|
||||
if (guide.records.isNotEmpty() && !guide.settled) {
|
||||
Spacer(Modifier.height(8.dp))
|
||||
TextButton(
|
||||
onClick = { forceFinish = true },
|
||||
enabled = !measuring,
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
) { Text("여기까지로 결정하기", color = MlSecondaryText) }
|
||||
}
|
||||
} else {
|
||||
Button(
|
||||
onClick = {
|
||||
appState.anchorCm = last?.anchorCm
|
||||
appState.currentScreen = AppScreen.HOSPITAL_MODE
|
||||
},
|
||||
enabled = last?.action == AnchorAction.STOP,
|
||||
modifier = Modifier.fillMaxWidth().height(52.dp),
|
||||
shape = RoundedCornerShape(14.dp),
|
||||
colors = ButtonDefaults.buttonColors(containerColor = MlSuccess),
|
||||
) { Text("이 위치로 임상 측정 진행", fontSize = 16.sp, fontWeight = FontWeight.Bold) }
|
||||
Spacer(Modifier.height(8.dp))
|
||||
TextButton(
|
||||
onClick = {
|
||||
guide.reset(); cm = 0; last = null; records = emptyList(); error = null
|
||||
},
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
) { Text("처음부터 다시 정렬", color = MlSecondaryText) }
|
||||
}
|
||||
|
||||
Spacer(Modifier.height(20.dp))
|
||||
|
||||
if (records.isNotEmpty()) {
|
||||
Text("측정한 위치", fontSize = 13.sp, fontWeight = FontWeight.Bold,
|
||||
color = MlSecondaryText)
|
||||
Spacer(Modifier.height(6.dp))
|
||||
records.forEach { r -> RecordRow(r, isBest = r.cm == last?.bestCm) }
|
||||
}
|
||||
Spacer(Modifier.height(24.dp))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun StatusChip(connected: Boolean, name: String?) {
|
||||
val bg = if (connected) MlSuccess.copy(alpha = 0.15f) else MlCritical.copy(alpha = 0.12f)
|
||||
val fg = if (connected) MlSuccess else MlCritical
|
||||
Box(Modifier.background(bg, RoundedCornerShape(10.dp)).padding(horizontal = 12.dp, vertical = 8.dp)) {
|
||||
Text(
|
||||
if (connected) "연결됨 · ${name ?: "-"}" else "기기 연결 필요",
|
||||
fontSize = 13.sp, color = fg, fontWeight = FontWeight.Bold,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/** 한 위치의 지표. 판정 근거를 그대로 보여준다 — 나중에 왜 그 위치였는지 물어보게 된다. */
|
||||
@Composable
|
||||
private fun RecordRow(r: AnchorPosRecord, isBest: Boolean) {
|
||||
Row(
|
||||
Modifier.fillMaxWidth()
|
||||
.background(
|
||||
if (isBest) MlSuccess.copy(alpha = 0.12f) else Color.White,
|
||||
RoundedCornerShape(8.dp),
|
||||
)
|
||||
.padding(horizontal = 12.dp, vertical = 8.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
Text("${r.cm}cm", fontSize = 14.sp, fontWeight = FontWeight.Bold,
|
||||
modifier = Modifier.width(52.dp),
|
||||
color = if (isBest) MlSuccess else MlSecondaryText)
|
||||
Text(
|
||||
"채널 ${r.nch}/4 · CH3 ${if (r.ch3Mean) "O" else "X"} " +
|
||||
"${Math.round(r.ch3Rate * 100)}% · cap " +
|
||||
(if (r.capFrac.isFinite()) "%.3f".format(r.capFrac) else "-") +
|
||||
if (r.eligible) "" else " (CH3 미달)",
|
||||
fontSize = 13.sp, color = MlSecondaryText,
|
||||
)
|
||||
}
|
||||
Spacer(Modifier.height(4.dp))
|
||||
}
|
||||
|
||||
/**
|
||||
* 정렬 결과 요약 JSON. 위치별 지표와 선택을 **판정 근거 그대로** 남긴다.
|
||||
*
|
||||
* 나중에 Python 으로 다시 판정할 때 "앱은 무엇을 보고 그렇게 골랐나" 를 대조하는 데 쓴다.
|
||||
*/
|
||||
private fun buildAlignSummary(
|
||||
patient: String,
|
||||
deviceName: String?,
|
||||
firmware: String?,
|
||||
records: List<AnchorPosRecord>,
|
||||
step: AnchorStep,
|
||||
): JSONObject = JSONObject().apply {
|
||||
put("patient", patient)
|
||||
put("device", deviceName ?: "")
|
||||
put("firmware_version", firmware ?: "")
|
||||
put("hw_preset", com.medithings.vesiscan.managers.PiezoHW.activePreset.name)
|
||||
put("freq_mhz", ALIGN_FREQ.label)
|
||||
put("freq_option", ALIGN_FREQ.freqOption)
|
||||
put("cycles_per_position", AnchorConfig.ALIGN_CYCLES)
|
||||
put("probe_cycles", ALIGN_CYCLE.cycles)
|
||||
put("avg", HospitalFixedParams.AVG)
|
||||
put("delay_us", HospitalFixedParams.DELAY_US)
|
||||
put("samples", HospitalFixedParams.SAMPLES)
|
||||
put("ch3_hit_min", AnchorConfig.CH3_HIT_MIN)
|
||||
put("final_offset_cm", AnchorConfig.FINAL_OFFSET_CM)
|
||||
put("best_cm", step.bestCm ?: JSONObject.NULL)
|
||||
put("anchor_cm", step.anchorCm ?: JSONObject.NULL)
|
||||
put("action", step.action.name)
|
||||
put("stop_reason", step.stopReason ?: JSONObject.NULL)
|
||||
put("max_nch", step.maxNch)
|
||||
// 앱 검출이 Python 레퍼런스와 불일치인 상태로 낸 값이라는 사실을 데이터와 함께 남긴다.
|
||||
put("selection_verified_against_reference", false)
|
||||
put("positions", JSONArray().apply {
|
||||
records.forEach { r ->
|
||||
put(JSONObject().apply {
|
||||
put("align_cm", r.cm)
|
||||
put("n_trace", r.nTrace)
|
||||
put("nch", r.nch)
|
||||
put("ch3", if (r.ch3Mean) "O" else "X")
|
||||
put("ch3_hit", r.ch3Hit)
|
||||
put("ch3_tot", r.nTrace)
|
||||
put("ch3_rate", r.ch3Rate)
|
||||
put("cap_frac", if (r.capFrac.isFinite()) r.capFrac else JSONObject.NULL)
|
||||
put("eligible", r.eligible)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -73,7 +73,8 @@ fun HospitalModeView(appState: AppState) {
|
||||
val isConnected by bleManager.isConnected
|
||||
val deviceName = bleManager.connectedDeviceName.value
|
||||
|
||||
var patient by remember { mutableStateOf("") }
|
||||
// 환자명은 AppState 에 둔다 — 정렬 화면을 다녀와도 살아있어야 한다.
|
||||
var patient by appState::hospitalPatient
|
||||
var posture by remember { mutableStateOf(ClinicalPosture.SUPINE) }
|
||||
var fill by remember { mutableStateOf(BladderFill.P0) }
|
||||
var repeatsText by remember { mutableStateOf(HOSPITAL_DEFAULT_REPEATS.toString()) }
|
||||
@@ -223,6 +224,9 @@ fun HospitalModeView(appState: AppState) {
|
||||
put("delay_us", HospitalFixedParams.DELAY_US)
|
||||
put("samples", HospitalFixedParams.SAMPLES)
|
||||
put("params_persist_in_probe_nvs", true)
|
||||
// 정렬로 정한 부착 위치. 자세·용량이 바뀌어도 고정이므로
|
||||
// 분석 때 "이 데이터는 몇 cm 에서 받았나" 를 되살릴 수 있어야 한다.
|
||||
put("anchor_cm", appState.anchorCm ?: JSONObject.NULL)
|
||||
put("combinations", results)
|
||||
}, startedAt)
|
||||
running = false
|
||||
@@ -265,7 +269,14 @@ fun HospitalModeView(appState: AppState) {
|
||||
|
||||
OutlinedTextField(
|
||||
value = patient,
|
||||
onValueChange = { if (!running) patient = it },
|
||||
onValueChange = {
|
||||
if (!running) {
|
||||
// 환자가 바뀌면 정렬도 무효다. 앞 환자의 cm 을 그대로 들고 가면
|
||||
// 매니페스트에 틀린 위치가 기록된다.
|
||||
if (it != patient) appState.anchorCm = null
|
||||
patient = it
|
||||
}
|
||||
},
|
||||
label = { Text("환자명") },
|
||||
singleLine = true,
|
||||
enabled = !running,
|
||||
@@ -273,6 +284,13 @@ fun HospitalModeView(appState: AppState) {
|
||||
)
|
||||
Spacer(Modifier.height(12.dp))
|
||||
|
||||
AnchorCard(
|
||||
anchorCm = appState.anchorCm,
|
||||
enabled = !running && isConnected,
|
||||
onAlign = { appState.currentScreen = AppScreen.ANCHOR_ALIGN },
|
||||
)
|
||||
Spacer(Modifier.height(12.dp))
|
||||
|
||||
Label("자세")
|
||||
ChipRow(ClinicalPosture.entries, posture, { posture = it }, !running,
|
||||
progressOf = { postureProgress(it) }) { it.label }
|
||||
@@ -480,3 +498,38 @@ private fun ProgressPanel(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 정렬 상태 카드 — 프로토콜을 돌기 전에 부착 위치를 정했는지 보여준다.
|
||||
*
|
||||
* 정렬 없이도 측정은 되게 뒀다. 급할 때 막아 세우면 결국 앱을 안 쓰게 되고, 그러면
|
||||
* 위치 기록이 아예 안 남는다. 대신 안 한 상태가 눈에 띄게 해 두고, 매니페스트에는
|
||||
* `anchor_cm: null` 로 정직하게 남긴다.
|
||||
*/
|
||||
@Composable
|
||||
private fun AnchorCard(anchorCm: Int?, enabled: Boolean, onAlign: () -> Unit) {
|
||||
val set = anchorCm != null
|
||||
val tone = if (set) MlSuccess else MlWarning
|
||||
Column(
|
||||
Modifier.fillMaxWidth()
|
||||
.background(tone.copy(alpha = 0.10f), RoundedCornerShape(12.dp))
|
||||
.border(1.dp, tone.copy(alpha = 0.5f), RoundedCornerShape(12.dp))
|
||||
.padding(12.dp)
|
||||
) {
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
Text(
|
||||
if (set) "부착 위치 ${anchorCm}cm" else "부착 위치 미정렬",
|
||||
fontSize = 15.sp, fontWeight = FontWeight.Bold, color = tone,
|
||||
modifier = Modifier.weight(1f),
|
||||
)
|
||||
TextButton(onClick = onAlign, enabled = enabled) {
|
||||
Text(if (set) "다시 정렬" else "정렬 시작", color = MlPrimary)
|
||||
}
|
||||
}
|
||||
Text(
|
||||
if (set) "이 환자의 전 자세·전 용량에서 이 위치를 그대로 씁니다."
|
||||
else "정렬하지 않아도 측정은 되지만, 기록에 부착 위치가 남지 않습니다.",
|
||||
fontSize = 12.sp, color = MlSecondaryText,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
package com.medithings.vesiscan.managers
|
||||
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Ignore
|
||||
import org.junit.Test
|
||||
|
||||
/**
|
||||
* 정렬 지표 산출 Python 대조 — 실측 세션으로 [AnchorGuide.measure] 를 검증한다.
|
||||
*
|
||||
* [AnchorSelectionParityTest] 가 **규칙**을 보는 것과 달리 여기는 **입력 지표**를 본다.
|
||||
* 규칙이 맞아도 `nch`·`ch3_rate`·`cap_frac` 이 어긋나면 다른 위치를 고른다.
|
||||
*
|
||||
* ## 현재 상태 (2026-09-03) — 격리 중
|
||||
* 정렬 코드가 아니라 그 **아래의 벽 검출**(`MethodDRunner`)이 현재 Python 레퍼런스와
|
||||
* 어긋난다. mean-scan · CCC off 로 잰 실측값:
|
||||
*
|
||||
* | | Python | Kotlin |
|
||||
* |---|---|---|
|
||||
* | cm=0 CH0·CH1·CH5 | — | 소수점까지 일치 |
|
||||
* | cm=0 CH2 | ant 13.913 · span 24~61 | ant **18.559** · span **33~60** |
|
||||
* | cm=0 CH4 | span 31~54 | span **23**~54 |
|
||||
* | cm=1 CH1 | ant 4.486 | ant **13.188** |
|
||||
* | cm=1 CH2 | ant 7.468 | ant **12.816** |
|
||||
* | cm=1 **CH3** | (14.691, 66.294, 29, 64) | **미검출** |
|
||||
* | cm=1 판정 | nch=4 · ch3=O | nch=3 · ch3=**X** |
|
||||
* | cm=0 cap_frac | 0.63899 | 0.67479 |
|
||||
* | cm=0 BV | 410.6 mL | 470.5 mL |
|
||||
*
|
||||
* cm=1 은 레퍼런스에서 유력 후보(CH3 검출·nch 최대)인데 앱에서는 후보 자격조차 없다.
|
||||
* 정렬 선택이 이 값들 위에 서 있으므로, 검출이 맞을 때까지 앱의 선택 결과는
|
||||
* 레퍼런스의 선택 결과가 아니다.
|
||||
*
|
||||
* ## 왜 통과하도록 완화하지 않았나
|
||||
* 기대값을 코틀린 값으로 바꾸면 초록이 되지만, 그 순간 이 시험은 "코틀린이 코틀린과
|
||||
* 같다"만 확인하게 된다. 대조 시험의 존재 이유가 사라진다. 검출 포팅이 정리되면
|
||||
* `@Ignore` 를 떼면 그대로 게이트가 된다.
|
||||
*
|
||||
* ## 알아 둘 것
|
||||
* BV **코어** 자체는 맞다 — 벽을 고정해 넣으면 Python `estimate_bv`(ellipse_cap_height=
|
||||
* true · cap_fit='specific')와 마지막 자리까지 일치한다. 어긋나는 것은 그 앞의 검출이다.
|
||||
*
|
||||
* 데이터: HUMAN-kai / VBT26050202(=V1) SUPINE_ALIGN 0cm·1cm, 각 22 cycle × 6ch × 100.
|
||||
* `align_cm{n}.csv` = cycle,channel,s0..s99 (정수 ADC 원본)
|
||||
* `align_expect.tsv` = Python `AnchorGuide(ver='v1').step()` 결과
|
||||
* (데이터셋의 2~4cm 는 레코드가 비어 있어 두 위치만 쓴다.)
|
||||
*/
|
||||
class AnchorMeasureParityTest {
|
||||
|
||||
private fun res(name: String) =
|
||||
javaClass.classLoader!!.getResourceAsStream(name)!!.bufferedReader().use { it.readText() }
|
||||
|
||||
/** cycle,channel,s0..sN → [cycle][channel][sample] */
|
||||
private fun loadCycles(name: String): List<List<DoubleArray>> {
|
||||
val byCycle = sortedMapOf<Int, MutableMap<Int, DoubleArray>>()
|
||||
res(name).lineSequence().filter { it.isNotBlank() }.forEach { line ->
|
||||
val p = line.split(',')
|
||||
byCycle.getOrPut(p[0].toInt()) { sortedMapOf() }[p[1].toInt()] =
|
||||
DoubleArray(p.size - 2) { p[it + 2].toDouble() }
|
||||
}
|
||||
return byCycle.values.map { chans -> chans.toSortedMap().values.toList() }
|
||||
}
|
||||
|
||||
/**
|
||||
* trace 분할만 검증 — 검출과 무관하게 성립해야 하는 부분이라 계속 돈다.
|
||||
*
|
||||
* 22 cycle · window 10 → 13 trace. 이 수가 틀리면 `ch3_rate` 의 분모가 달라져
|
||||
* 0.8 임계의 의미 자체가 바뀐다.
|
||||
*/
|
||||
@Test
|
||||
fun traceCountMatchesPython() {
|
||||
val saved = PiezoHW.activePreset
|
||||
PiezoHW.activePreset = PiezoHW.DevicePreset.V1
|
||||
try {
|
||||
val guide = AnchorGuide()
|
||||
res("align_expect.tsv").lineSequence()
|
||||
.filter { it.isNotBlank() && !it.startsWith("#") }
|
||||
.forEach { line ->
|
||||
val f = line.split('\t')
|
||||
val cm = f[0].toInt()
|
||||
val rec = guide.measure(loadCycles("align_cm$cm.csv"), cm)
|
||||
assertEquals("cm=$cm trace 수", f[1].toInt(), rec.nTrace)
|
||||
}
|
||||
} finally {
|
||||
PiezoHW.activePreset = saved
|
||||
}
|
||||
}
|
||||
|
||||
/** 전체 지표 대조 — 검출 포팅 차이로 격리 중. 위 KDoc 표가 실측 차이다. */
|
||||
@Ignore("MethodD 벽 검출이 현재 Python 레퍼런스와 불일치 — 정렬 코드가 아니라 그 아래 단계. 상세는 클래스 KDoc.")
|
||||
@Test
|
||||
fun measureMatchesPythonOnRealSession() {
|
||||
val saved = PiezoHW.activePreset
|
||||
PiezoHW.activePreset = PiezoHW.DevicePreset.V1
|
||||
try {
|
||||
val guide = AnchorGuide()
|
||||
res("align_expect.tsv").lineSequence()
|
||||
.filter { it.isNotBlank() && !it.startsWith("#") }
|
||||
.forEach { line ->
|
||||
val f = line.split('\t')
|
||||
val cm = f[0].toInt()
|
||||
val rec = guide.measure(loadCycles("align_cm$cm.csv"), cm)
|
||||
assertEquals("cm=$cm nch", f[2].toInt(), rec.nch)
|
||||
assertEquals("cm=$cm ch3(mean-scan)", f[3] == "O", rec.ch3Mean)
|
||||
assertEquals("cm=$cm ch3 검출률", f[4].toDouble(), rec.ch3Rate, 1e-9)
|
||||
assertEquals("cm=$cm cap_frac", f[5].toDouble(), rec.capFrac, 1e-3)
|
||||
}
|
||||
} finally {
|
||||
PiezoHW.activePreset = saved
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.medithings.vesiscan.managers
|
||||
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Test
|
||||
|
||||
/**
|
||||
* 정렬 선택 규칙 Python 대조 — `select_supine_anchor(tie='cap', offset_cm=0)` 과 1:1.
|
||||
*
|
||||
* ## 왜 무작위 대량인가
|
||||
* 이 규칙은 경계에서 갈린다: CH3 2단 게이트(mean-scan **AND** 검출률 0.8), 임계 통과가
|
||||
* 0개일 때의 `ch3='O'` 전체 fallback, cap_frac 이 NaN 일 때 +∞ 취급, 동률 시 min cm.
|
||||
* 손으로 고른 몇 개로는 이 조합을 다 밟지 못한다. Python 레퍼런스로 200 케이스의 답을
|
||||
* 미리 뽑아 두고 전수 대조한다.
|
||||
*
|
||||
* 케이스: `app/src/test/resources/anchor_cases.tsv`
|
||||
* `best<TAB>cm,nch,ch3,hit,tot,cap|...` · best='-' 는 재부착(선택 불가)
|
||||
* 규칙이 바뀌면 Python 으로 파일을 다시 생성해야 한다(생성 절차는 커밋 메시지 참조).
|
||||
*
|
||||
* JSON 대신 TSV 인 이유: `org.json` 은 Android 단위테스트에서 스텁이라 호출하면
|
||||
* "not mocked" 로 죽는다. 임상 일정 중이라 테스트 의존성을 늘리지 않고 형식을 낮췄다.
|
||||
*/
|
||||
class AnchorSelectionParityTest {
|
||||
|
||||
private fun parse(line: String): Pair<Int?, List<AnchorPosRecord>> {
|
||||
val (bestRaw, recsRaw) = line.split('\t', limit = 2)
|
||||
val recs = recsRaw.split('|').map { f ->
|
||||
val p = f.split(',')
|
||||
val hit = p[3].toInt()
|
||||
val tot = p[4].toInt()
|
||||
AnchorPosRecord(
|
||||
cm = p[0].toInt(),
|
||||
nTrace = tot,
|
||||
nch = p[1].toInt(),
|
||||
ch3Mean = p[2] == "O",
|
||||
// Python 은 hit/tot 를 직접 비교하고, tot=0 이면 임계 통과 후보에서
|
||||
// 빠진다(`r.get("ch3_tot") and ...` 가 거짓). rate=0 이 같은 효과다.
|
||||
ch3Rate = if (tot > 0) hit.toDouble() / tot else 0.0,
|
||||
// Python 은 NaN 을 'nan' 으로 쓴다. Java 파서는 'NaN' 만 받는다.
|
||||
capFrac = if (p[5] == "nan") Double.NaN else p[5].toDouble(),
|
||||
)
|
||||
}
|
||||
return (if (bestRaw == "-") null else bestRaw.toInt()) to recs
|
||||
}
|
||||
|
||||
@Test
|
||||
fun matchesPythonSelectSupineAnchor() {
|
||||
val text = javaClass.classLoader!!.getResourceAsStream("anchor_cases.tsv")!!
|
||||
.bufferedReader().use { it.readText() }
|
||||
val lines = text.lineSequence()
|
||||
.filter { it.isNotBlank() && !it.startsWith("#") }.toList()
|
||||
|
||||
var nullBest = 0
|
||||
lines.forEachIndexed { i, line ->
|
||||
val (want, recs) = parse(line)
|
||||
val got = AnchorSelection.selectBest(recs).bestCm
|
||||
assertEquals("case #$i best (records=$line)", want, got)
|
||||
if (want == null) nullBest++
|
||||
}
|
||||
assertEquals("케이스 수", 200, lines.size)
|
||||
// 재부착 판정이 실제로 섞여 있어야 대조가 의미 있다.
|
||||
assertTrue("재부착 케이스가 없다 — 데이터가 한쪽으로 쏠렸다", nullBest > 0)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
0,0,2325,2248,1981,2245,2308,2003,2056,2076,1980,1717,1750,1547,1865,2041,2246,1946,1498,1617,1214,1181,1181,1121,1412,1465,1357,1141,1057,1119,864,856,882,947,1220,1234,927,887,907,877,976,972,929,953,1010,925,962,918,977,1013,1037,1120,999,912,1121,980,1185,1078,1019,1096,1227,1115,1217,1180,1234,1191,1332,1014,1282,1289,1174,1256,1490,1098,1351,1271,1297,1047,926,1042,1096,1155,1250,1055,938,922,1046,980,1069,1070,951,921,1184,946,963,1059,956,909,935,923,888,942
|
||||
0,1,2107,2320,2246,1996,1884,2180,2023,1774,1775,1373,1907,1814,1618,1720,1905,1683,1412,1542,1279,1241,1470,1363,1063,1254,1340,1122,1222,1244,935,1055,916,886,967,892,908,888,841,900,893,906,900,910,881,860,868,888,871,906,939,884,921,898,970,910,935,991,965,931,978,949,924,1016,1234,1091,1161,948,1284,1164,1286,1255,1261,1319,1250,1252,1279,1146,1083,1207,1242,1025,1127,1006,1012,966,1006,1062,1006,918,1025,1087,1019,988,1002,1172,1027,1018,1012,1063,885,1000
|
||||
0,2,2191,2258,2352,2209,2103,1862,1904,2000,1577,1482,1733,1657,1575,1509,1608,1775,1678,1218,1514,1482,1321,1166,1233,1414,1216,1294,893,1034,1178,952,1129,1099,1060,979,921,924,989,951,954,1047,1046,941,965,912,899,915,877,900,902,903,937,979,1003,994,1134,975,1045,963,929,1031,1125,1078,1212,1227,1146,1122,1004,1014,1141,1160,1213,1130,937,1005,1116,1046,1042,950,874,969,944,1022,926,960,960,1025,912,965,927,982,1081,918,925,968,905,918,889,873,892,896
|
||||
0,3,2069,2134,2030,2087,1910,1720,1677,1695,1811,1948,1895,1794,1724,1500,1547,1702,1188,1558,1595,1532,1494,1539,1311,1190,1270,1076,1151,1141,1202,1400,1325,1305,1223,1321,1328,1228,1023,1214,1042,958,1141,953,1249,1012,1151,1122,1062,1065,969,1174,1017,1061,963,1014,1008,926,920,1333,1319,1051,1066,1073,1063,1058,1166,985,1061,898,923,933,863,874,927,896,972,938,923,908,857,919,850,903,879,877,914,933,934,897,891,847,879,875,870,878,916,920,921,907,885,839
|
||||
0,4,1805,2098,2201,2035,1804,1913,1764,1679,1753,1763,1685,1873,1749,1753,1932,1973,1578,1146,1432,1319,1545,1565,1384,1167,1224,1257,1042,997,1112,1105,1096,985,937,1017,943,900,945,957,998,868,866,925,976,933,945,916,893,905,949,974,943,872,912,942,945,965,1032,947,1085,1235,1376,1357,1421,1447,1588,1482,1620,1606,1215,1411,1166,1430,1455,1421,1309,1123,1160,1129,1088,1137,1253,1208,1129,973,1040,997,1008,1068,1072,1040,1139,1108,1101,1301,1251,1140,1055,1021,913,931
|
||||
0,5,1941,2148,1974,2061,2018,2146,1999,1802,1852,1565,1550,1571,1815,1936,1757,1678,1448,1482,1363,1421,1327,1135,1393,1334,1235,1271,1151,1091,1184,1004,972,1023,898,959,1074,1009,1044,985,1012,911,988,975,1024,939,944,1111,1084,973,886,1082,1159,956,1069,974,1115,1106,1314,1165,1348,1202,1298,1137,1164,1252,904,1016,1068,915,1181,1374,1354,1185,1054,1110,1220,1151,972,1173,1133,1137,883,960,885,871,987,1100,956,908,884,867,904,913,1182,1128,918,889,874,922,856,932
|
||||
1,0,2328,2245,2033,2284,2332,1803,2005,2064,1937,1745,1757,1634,1704,1960,2200,1843,1391,1412,1352,1436,1229,1190,1273,1357,1128,1240,925,1012,1055,917,972,978,1245,1122,1076,929,878,876,846,948,878,867,872,870,946,921,1011,956,1097,1177,957,1014,1150,930,937,949,1083,1049,1201,1092,1018,1009,1321,1333,1276,1281,1385,1337,1032,1445,1505,1303,1429,1312,1255,906,955,915,1143,987,1281,1055,956,897,959,916,1013,916,987,1011,1116,955,978,1122,945,984,946,934,921,886
|
||||
1,1,2144,2315,2227,1975,1808,2006,2071,1810,1724,1607,1924,1808,1416,1600,1787,1660,1428,1420,1509,1376,1190,1184,1205,1219,1369,1150,1254,1135,1045,989,943,1006,972,938,955,923,958,908,925,934,875,878,859,904,918,914,944,965,966,960,933,923,915,977,978,1033,951,921,996,986,942,1091,1171,1185,1330,1346,1194,994,995,1322,1296,1337,1210,1240,1299,1278,1206,1163,1167,1168,1039,1026,991,1018,1008,1061,1056,998,1009,952,1112,1044,946,1114,1021,1075,941,942,1002,1007
|
||||
1,2,2186,2249,2355,2243,2100,1910,1837,1681,1711,1557,1700,1533,1633,1626,1546,1594,1444,1289,1582,1544,1114,1379,1243,1176,1303,1117,1097,918,924,980,1136,948,970,990,1022,909,900,889,949,996,928,910,940,958,951,939,960,942,878,898,939,934,910,960,957,945,935,942,967,1089,1192,988,1139,1061,1145,1059,1082,1057,1210,1209,1121,1108,915,1061,1188,1003,972,955,907,959,983,1097,953,915,973,1042,1102,964,929,892,919,924,919,950,940,1005,1012,906,886,887
|
||||
1,3,2071,2134,2019,2076,1906,1736,1674,1618,1817,1826,1840,1642,1518,1612,1627,1740,1708,1561,1344,1493,1512,1610,1307,1032,1059,1029,1230,1184,1318,1295,1208,1202,1226,1042,1147,1232,1109,1006,1110,964,1166,970,1295,1027,1073,1076,1107,1007,1082,1168,956,1016,997,1060,1040,915,944,1323,1233,907,964,1003,1061,992,1063,965,895,898,865,845,881,914,896,935,1031,954,915,914,937,880,894,892,875,925,948,975,930,881,864,851,881,859,870,901,891,932,937,912,859,855
|
||||
1,4,1830,2091,2192,2041,1805,1825,1517,1755,1783,1693,1656,1822,1793,1757,1661,1832,1479,1422,1292,1300,1412,1344,1171,1093,1296,1124,1237,1162,1030,1125,1067,1073,897,1019,951,1012,974,995,957,969,929,1013,1023,921,881,885,883,879,914,916,897,906,915,890,897,919,947,878,1004,1217,1272,1180,1449,1334,1597,1346,1666,1572,1285,1351,1459,1475,1422,1256,1222,1233,1130,1159,1058,1168,1221,1236,1024,1135,1086,1172,1051,1078,1134,1071,1111,1130,1157,1316,1217,1125,956,1003,971,963
|
||||
1,5,1947,2166,2050,2113,2075,2244,2135,2014,1870,1482,1608,1659,1841,2003,1959,1796,1405,1465,1300,1279,1229,1315,1213,1287,1208,1063,1237,1188,1038,1213,942,1214,999,960,1093,1135,1111,1165,1019,967,1151,1052,901,919,943,1015,1058,957,954,1214,1067,1093,1130,968,1114,1089,1307,1243,1280,1279,1231,1005,1101,1180,1077,1218,1144,1140,1098,1206,1336,1081,1017,982,1275,1287,1085,1061,1111,978,930,1037,934,1051,895,1148,1077,929,932,948,1016,956,977,1066,885,898,963,867,897,923
|
||||
2,0,2328,2250,2049,2279,2343,1776,1995,2061,1912,1704,1744,1661,1630,1887,2186,1816,1405,1347,1399,1481,1223,1253,1215,1366,1190,1246,953,972,1052,899,1004,957,1205,1106,1024,943,875,921,873,918,849,892,876,893,888,897,969,947,1134,1216,964,1009,1177,915,955,901,1134,1009,1137,1161,1084,1059,1280,1313,1246,1272,1355,1305,1012,1434,1513,1292,1404,1329,1244,933,871,1020,1137,958,1294,1131,858,904,1081,991,1007,1010,1037,959,1175,1081,943,1179,1032,997,870,970,946,878
|
||||
2,1,2144,2320,2221,1907,1783,1989,2092,1757,1769,1678,1930,1820,1442,1509,1692,1729,1532,1510,1527,1351,1155,1118,1220,1190,1391,1238,1170,1141,1084,962,873,917,913,857,886,886,875,846,866,867,872,891,891,894,864,870,865,899,903,875,905,877,894,939,954,965,910,928,965,936,877,986,1235,1235,1490,1464,1432,950,1185,1348,1141,1208,1039,1042,1453,1333,1199,1267,1187,1016,1069,973,960,923,1047,988,992,1044,972,1010,1137,1081,989,1209,1032,1070,888,933,1022,950
|
||||
2,2,2188,2250,2364,2250,2104,1895,1784,1656,1722,1553,1685,1499,1570,1511,1496,1445,1338,1338,1453,1409,1132,1385,1195,1140,1225,1132,1084,961,943,957,1043,1002,955,1042,1117,994,951,927,1058,1043,972,927,956,972,998,977,972,996,928,883,933,932,961,961,979,959,919,1006,959,1026,1116,1019,973,992,1085,1061,1011,955,1116,1162,1059,1012,994,1085,1116,1046,1013,930,923,971,1039,976,890,901,896,1011,1047,944,898,905,886,922,899,946,927,967,1000,915,918,900
|
||||
2,3,2064,2134,2015,2072,1889,1714,1685,1571,1828,1715,1896,1699,1611,1669,1631,1745,1712,1575,1311,1468,1462,1623,1200,978,1103,1103,1212,1257,1308,1332,1210,1117,1219,1024,1149,1224,1058,1108,1112,1005,1126,1014,1315,1086,1101,1116,1167,1015,1090,1172,1018,1042,1018,1062,1006,930,961,1266,1127,980,966,957,1053,969,1010,965,853,948,907,911,899,940,936,923,943,914,911,874,902,855,919,936,905,913,927,945,907,854,879,880,894,865,913,877,930,950,893,913,867,875
|
||||
2,4,1840,2087,2189,2038,1788,1818,1571,1690,1770,1663,1673,1834,1788,1791,1605,1824,1497,1349,1150,1138,1409,1284,1186,1042,1244,1107,1154,1130,1001,1052,1009,989,910,954,1006,1006,921,999,939,895,907,944,988,949,931,927,948,965,941,981,988,1017,980,995,977,1065,1051,1098,1014,1153,1252,1294,1336,1394,1561,1311,1519,1436,1237,1204,1448,1298,1357,1324,1050,1220,1035,1123,1094,1039,1227,1191,981,1050,987,996,1042,1048,1080,1024,1073,1115,1175,1222,1162,1080,999,1007,1042,1007
|
||||
2,5,1946,2172,2063,2103,2091,2246,2143,2037,1876,1608,1640,1685,1815,1972,1958,1730,1476,1507,1118,1149,1160,1249,1243,1182,1173,1159,1309,1292,1069,1131,905,1207,997,907,1063,1058,1159,1104,915,898,1153,994,909,893,1051,975,930,903,965,1219,1022,1078,1071,963,1202,1172,1313,1180,1278,1285,1237,990,1159,1072,1216,1207,911,1148,1249,1259,1288,1144,1034,902,1151,1306,1087,1050,1047,996,971,933,1005,1078,1002,1162,1099,938,1005,999,949,925,1022,1110,896,895,1034,920,929,931
|
||||
3,0,2326,2259,2075,2266,2348,1773,1985,2049,1915,1694,1773,1663,1501,1861,2176,1770,1446,1334,1332,1493,1232,1272,1170,1365,1153,1262,926,918,1054,899,999,892,1121,1079,972,912,888,940,885,899,863,899,864,908,888,857,1021,928,1047,1222,1043,1076,1206,985,944,875,1101,1155,1152,1188,1120,1256,1247,1287,1264,1207,1333,1311,1082,1440,1464,1223,1365,1208,1137,1051,1174,1049,1151,1025,1279,1138,925,1004,1130,1070,1030,1016,953,975,1077,1055,1001,1157,1000,1000,867,913,886,882
|
||||
3,1,2146,2311,2221,1911,1784,1965,2102,1847,1766,1714,1928,1819,1382,1401,1664,1803,1553,1489,1557,1427,1124,1273,1254,1250,1415,1315,1129,1117,1169,1000,941,907,942,973,976,939,923,907,917,906,930,929,939,885,862,888,882,887,882,899,880,878,873,935,956,899,887,903,1015,940,954,1054,1189,1152,1395,1265,1229,1179,1077,1222,1122,1173,1131,1145,1402,1303,1101,1146,1103,1024,991,1034,938,904,1107,979,1097,1052,959,959,1092,1074,992,1137,983,944,899,915,961,914
|
||||
3,2,2191,2250,2361,2258,2097,1907,1782,1671,1750,1480,1658,1553,1643,1655,1687,1611,1404,1500,1592,1562,1259,1510,1258,1217,1338,1066,1124,1092,975,922,1041,905,918,1053,1055,903,901,894,936,976,867,907,948,960,937,885,884,924,866,887,953,914,969,988,911,976,1092,1120,980,1100,1074,953,1002,1050,1115,1032,1002,1112,1209,1214,1199,999,959,1037,1022,1005,954,1017,956,951,1013,981,924,918,953,1038,1007,911,894,914,961,908,998,934,928,996,1002,943,944,900
|
||||
3,3,2030,2085,1957,2010,1863,1706,1636,1532,1759,1532,1842,1708,1592,1644,1554,1655,1693,1609,1360,1471,1469,1560,1308,1212,1115,1215,1210,1220,1338,1290,991,1113,1228,1043,1052,1196,1007,1071,1117,1046,1202,1084,1258,1197,1135,1195,944,912,937,1064,934,965,976,1021,919,930,999,1275,1051,1047,972,1070,1095,981,957,921,918,980,873,918,913,900,918,936,994,924,894,861,896,886,965,917,905,971,972,962,910,873,894,864,889,888,886,908,930,924,910,897,886,878
|
||||
3,4,1832,2009,2070,1971,1779,1697,1549,1698,1726,1574,1635,1726,1716,1707,1486,1698,1487,1283,1116,1129,1370,1258,1123,1035,1185,1006,1206,1089,999,1013,1041,1053,939,972,986,1051,952,1059,950,942,998,924,1036,1004,1000,977,992,1038,985,1041,1030,1049,975,1025,975,1116,1107,1074,1177,1312,1309,1347,1286,1217,1538,1298,1437,1311,1168,1261,1507,1314,1316,1343,1039,1237,1139,1164,1163,1213,1200,1170,996,1012,941,1005,1040,1130,1098,1031,1162,1099,1209,1285,1182,1012,1014,932,950,988
|
||||
3,5,1946,2186,2076,2097,2102,2242,2146,2049,1898,1606,1629,1644,1801,1951,1974,1759,1494,1506,1098,1092,1244,1222,1279,1239,1166,1084,1339,1283,1102,1122,978,1152,912,890,1074,889,961,872,1014,871,1090,960,903,935,875,951,1101,1050,900,1124,1012,884,914,986,1155,1199,1274,1114,1292,1296,1237,1040,1129,997,1290,1207,1015,1034,1225,1240,1201,1097,1006,941,1156,1282,1125,933,1064,948,984,896,1088,1099,911,1155,1174,1007,979,987,924,894,1040,1113,886,934,1072,889,863,890
|
||||
4,0,2325,2262,2050,2233,2293,1808,2019,2036,1906,1734,1754,1666,1486,1974,2200,1863,1549,1413,1321,1420,1322,1150,1274,1386,1149,1264,921,1047,901,968,948,882,1135,1166,986,995,875,881,887,871,907,952,867,867,878,859,905,919,1054,1242,990,1182,1112,961,1198,1012,1240,1213,1140,1074,1091,1332,1120,1047,1084,1158,1366,1332,1041,1421,1451,1220,1345,1090,1233,909,1141,999,1181,1228,1273,1055,923,1009,1162,1079,1123,1007,964,960,913,983,1024,1152,932,994,889,884,867,952
|
||||
4,1,2154,2301,2237,2021,1754,2100,2064,1968,1774,1597,1904,1838,1358,1463,1700,1889,1593,1473,1515,1447,1138,1235,1393,1281,1315,1283,1091,941,1060,963,885,989,972,982,915,905,932,840,883,883,895,863,884,916,945,878,891,885,856,879,878,860,896,914,888,913,892,934,998,907,1003,939,1063,1263,1438,1336,1370,1244,1225,1285,1063,1121,1264,1174,1494,1322,1157,1250,1214,1073,954,1014,961,970,1073,1036,1045,954,926,991,1005,1080,1051,1139,993,1026,969,944,946,951
|
||||
4,2,2182,2238,2353,2256,2098,1939,1799,1768,1818,1644,1631,1589,1547,1600,1674,1629,1441,1392,1577,1619,1424,1374,1372,1287,1325,1183,1181,1215,1205,1121,1113,1009,973,1020,914,891,952,874,899,960,938,918,933,932,960,898,884,855,922,893,966,933,971,983,978,967,1152,1184,1003,1127,1131,990,1196,1128,1149,1013,1092,1144,1079,1092,1126,1042,1051,973,952,971,1050,1003,929,938,955,976,910,923,963,951,932,931,896,867,881,947,1047,986,942,1024,975,910,881,880
|
||||
4,3,2064,2136,2011,2064,1908,1756,1646,1585,1828,1704,1874,1508,1602,1587,1569,1742,1718,1656,1425,1515,1556,1560,1489,1411,1249,1263,1265,1133,1315,1193,1161,1270,1208,1141,1089,1098,900,917,1123,1095,1169,1071,1250,1025,1223,1154,1036,928,1026,961,955,1046,948,968,964,907,989,1346,1204,1158,988,1093,1041,970,988,953,947,1018,864,879,894,877,869,928,978,963,907,879,867,842,920,943,880,1060,931,948,930,919,872,877,899,872,868,881,858,935,939,926,857,831
|
||||
4,4,1917,2114,2197,2039,1864,1819,1814,1860,1822,1720,1610,1849,1863,1783,1549,1820,1461,1470,1374,1023,1335,1295,1202,1059,1294,1250,1132,998,1001,935,1104,1147,954,1035,1025,1098,977,1013,910,974,985,1066,980,943,972,886,956,927,872,909,905,934,914,919,912,1016,1077,1140,1024,1093,1051,1423,1380,1334,1556,1433,1518,1452,1211,1270,1558,1440,1369,1354,1175,1301,1222,1104,1168,1178,1270,1121,1086,1020,1168,1153,1057,1092,1185,1087,1172,1082,1143,1335,1231,1132,983,1025,988,955
|
||||
4,5,1933,2187,2081,2113,2085,2267,2151,2026,1837,1503,1665,1664,1795,1961,1958,1853,1520,1291,1270,1210,1335,1309,1211,1346,1162,1200,1309,1259,1015,1173,1048,1188,1055,1158,959,1057,1102,1145,888,901,1107,1018,976,916,935,1025,951,1067,1111,1256,996,862,905,915,1034,1161,1147,1258,1280,1332,1230,1144,1111,942,1310,1257,1187,1133,1264,1327,1185,965,927,979,1208,1247,1052,977,1239,1067,956,1027,1049,1070,968,988,1024,1012,952,968,900,924,1050,1143,871,948,1031,911,875,874
|
||||
5,0,2329,2248,1954,2258,2292,1794,2036,1974,1919,1625,1707,1666,1807,2022,2216,1909,1398,1603,1369,1222,1263,1056,1276,1368,1313,1241,1024,959,1041,994,893,878,1034,1105,915,891,885,862,874,846,923,934,919,870,875,949,1042,897,962,1217,960,930,1098,1107,1022,1135,1057,1386,1080,1105,1009,994,1195,1374,1217,1171,1231,1242,1036,1219,1472,1051,1402,1377,1315,1052,1102,951,1148,1269,1263,1097,991,1033,928,946,980,1075,910,1125,949,920,929,1107,1063,896,935,897,892,871
|
||||
5,1,2129,2313,2253,2059,1768,2130,2069,1775,1832,1419,1886,1851,1522,1704,1817,1497,1543,1574,1372,1157,1057,1136,1421,1193,1160,1119,1149,1198,948,1026,931,1009,927,902,948,884,869,874,862,897,943,898,890,865,864,863,884,873,852,891,903,866,889,887,890,916,880,860,934,935,981,1034,906,1016,1336,1237,1397,1175,1066,1270,1150,1197,1330,1167,1416,1413,1143,1200,1205,1248,1196,1107,942,966,1109,897,905,1035,905,1128,1094,1044,1076,1243,971,967,936,984,1015,893
|
||||
5,2,2177,2243,2346,2236,2098,1913,1826,1741,1845,1859,1781,1417,1420,1309,1498,1625,1473,1207,1476,1493,1167,1253,1231,1248,1119,1098,1047,1190,1135,953,1100,1049,960,952,1018,919,1026,946,921,1029,988,952,984,958,935,918,920,910,924,919,959,932,951,995,996,971,992,1042,1078,1081,1124,958,1077,1110,1085,1050,985,1002,1202,1169,1222,1145,1058,1186,1116,1081,1102,1045,1168,1129,1089,973,1020,985,999,977,1011,949,971,931,907,935,898,915,914,975,974,967,902,886
|
||||
5,3,2057,2138,2011,2077,1898,1757,1682,1589,1829,1877,1732,1349,1684,1692,1581,1701,1356,1640,1531,1555,1499,1514,1250,1246,1261,1263,1167,1185,1361,1357,1263,1099,1153,1235,1182,1130,1086,1077,1106,964,1149,1134,1004,1028,1167,1122,994,957,1038,1132,901,1066,1026,1012,1019,1021,879,1264,1185,1077,1164,927,951,1087,969,974,940,1016,906,948,931,899,892,923,1005,969,901,866,907,922,878,906,898,922,959,957,900,933,884,883,904,891,877,899,951,967,915,879,864,858
|
||||
5,4,1876,2110,2200,2046,1771,1945,1742,1796,1782,1761,1711,1793,1774,1638,1826,1857,1497,1315,1318,1201,1437,1504,1312,1120,1153,1253,1120,968,1132,1103,998,976,1013,1027,1019,1006,1090,1101,1003,944,976,961,989,976,957,932,972,924,1013,960,974,931,913,917,977,920,1020,1010,1029,1017,1160,1276,1382,1238,1556,1323,1460,1400,1354,1276,1360,1192,1363,1365,1285,1225,1193,1107,1149,1075,1215,1215,1097,1154,1132,1055,1115,1131,1103,981,1119,1060,1173,1251,1182,1085,959,999,931,958
|
||||
5,5,1910,2154,2044,2091,2048,2279,2151,1996,1888,1516,1658,1670,1929,2026,1784,1854,1438,1520,1328,1472,1013,1130,1244,1314,1253,1328,1047,1152,1156,903,1025,1063,904,960,1207,1196,1049,965,899,911,922,1065,1001,955,939,939,927,984,932,1116,939,1015,916,986,1181,1030,1303,972,1306,961,923,1107,958,1114,1244,1313,1173,1324,1417,1015,1301,1296,1212,1111,967,1134,1238,1108,1142,909,1080,965,915,1004,882,959,1052,1040,1003,963,905,898,1094,1199,974,970,928,906,889,864
|
||||
6,0,2328,2244,1996,2264,2305,1706,1994,1998,1924,1720,1786,1704,1712,1974,2188,1828,1382,1489,1263,1392,1153,1024,1035,1237,1079,1306,972,1055,1108,882,956,1053,1248,1245,937,893,896,881,887,873,867,926,904,896,879,915,880,894,913,877,951,1125,1138,1126,988,1125,956,1085,993,1070,1288,1234,1263,1351,1231,1278,1061,1354,1055,1200,1496,1172,1341,1319,1353,985,1162,1067,964,1208,1253,1259,998,890,989,900,1168,1001,1081,1106,994,930,929,1101,924,1021,1010,978,903,902
|
||||
6,1,2139,2309,2250,2078,1809,2070,2081,1853,1732,1477,1895,1815,1237,1672,1731,1761,1573,1432,1521,1418,1301,1200,1441,1133,1341,1231,1204,1025,902,958,943,929,885,919,957,970,844,870,885,877,844,860,921,901,863,874,905,882,900,879,878,878,896,891,955,904,916,903,870,902,1099,1154,909,1004,1289,1242,1355,1275,1316,1250,1252,1370,1387,1343,1427,1447,1257,1254,1106,1150,1031,1003,983,935,999,911,931,1078,988,1144,1159,1011,1078,1184,1064,934,936,898,1033,892
|
||||
6,2,2173,2243,2336,2248,2111,1940,1814,1786,1836,1795,1759,1499,1545,1530,1466,1608,1445,1255,1547,1547,1172,1044,1233,1167,1183,1159,1154,1082,963,1135,1079,1017,1090,1048,1065,942,955,992,1008,1111,988,935,983,938,923,887,903,863,876,899,1021,941,947,965,1037,921,1096,1003,1044,1133,1151,913,985,1071,999,1210,1089,1131,1242,1076,1210,1247,1186,1232,1149,1149,1132,973,1123,1052,1060,1077,992,1018,1103,1102,1058,963,899,945,894,936,940,1062,935,1011,1021,946,858,866
|
||||
6,3,2078,2132,2023,2081,1937,1764,1667,1636,1754,1711,1871,1436,1692,1480,1609,1714,1645,1532,1324,1539,1508,1560,1399,1299,1106,1307,1370,1184,1307,1128,1237,989,1234,1041,1079,993,927,966,1160,989,1152,964,1137,1198,1212,1248,1092,933,926,967,1039,1096,1045,916,970,928,965,1312,1293,1118,1206,939,1021,1098,996,987,955,909,1017,985,863,884,875,949,951,951,917,927,964,890,861,890,861,925,901,936,927,936,906,878,917,857,866,879,878,899,936,949,908,883
|
||||
6,4,1886,2105,2197,2044,1815,1845,1747,1861,1833,1745,1697,1844,1826,1715,1809,1893,1378,1513,1394,1251,1407,1477,1161,1166,1356,1229,1077,903,1054,1209,1081,1033,1007,996,1030,958,998,921,975,897,884,954,949,916,929,931,944,987,971,904,961,1013,967,939,961,1006,1004,1023,961,1003,1214,1332,1411,1408,1514,1253,1475,1471,1366,1306,1292,1297,1335,1397,1254,1267,1117,1165,1069,1135,1201,1175,1146,1069,1056,1090,1226,1239,998,1167,1113,1086,1250,1274,1186,1037,961,961,895,990
|
||||
6,5,1912,2179,2072,2088,2083,2259,2162,2031,1850,1558,1628,1685,1857,1988,1901,1812,1436,1388,1414,1302,947,1154,1130,1345,1154,1159,1040,1061,1105,1129,873,1222,1143,914,934,1016,1064,1113,1079,1067,1003,939,982,878,991,987,991,963,936,991,929,1067,956,949,1113,1075,1291,960,1265,1017,1089,935,965,1029,1298,1182,1011,1288,1274,1199,1055,1276,1092,999,1073,918,1141,1022,1177,1069,893,902,880,1047,988,1095,1071,1056,913,861,897,883,1020,1086,930,932,1024,938,880,922
|
||||
7,0,2323,2250,2035,2252,2323,1876,1955,2030,1914,1729,1779,1705,1139,1939,2174,1811,1522,1500,1357,1388,1291,1199,1179,1302,1159,1237,909,899,917,943,925,1008,1053,995,991,960,859,887,866,905,899,893,950,903,878,862,1018,893,948,1064,950,1205,1172,1104,977,989,1013,944,1058,1120,1280,1290,1041,1326,962,1257,1267,1373,1165,1432,1441,1229,1223,1216,1173,1094,1170,1061,1215,1148,1124,1121,1125,1090,1061,957,863,908,992,1167,1007,885,1094,1142,935,960,854,895,963,892
|
||||
7,1,2158,2315,2250,2024,1807,2021,2079,1920,1709,1581,1914,1832,1475,1568,1743,1831,1509,1589,1543,1468,1245,1272,1191,1292,1347,1333,1231,1096,1124,1007,987,911,920,942,903,911,927,880,867,877,899,887,932,871,896,884,882,896,917,871,859,865,883,884,914,909,893,867,907,944,1035,1010,1036,1334,1309,1061,1148,1403,1347,1124,1303,1377,1277,1408,1491,1402,1261,1202,980,1018,1075,999,972,989,1019,952,1089,964,1007,1032,1099,1073,1068,1235,1056,1042,967,930,995,930
|
||||
7,2,2175,2239,2351,2261,2002,1845,1734,1739,1715,1478,1601,1552,1475,1558,1664,1624,1318,1448,1584,1565,1274,1380,1256,1264,1393,1141,1214,1266,1118,1100,1107,1061,998,980,895,907,944,1052,895,959,893,895,980,941,950,944,948,918,904,895,968,884,898,939,1004,935,1189,1062,1029,1046,1069,901,924,1004,1032,1240,1078,1141,1229,1091,1128,1275,1116,1148,941,1112,1008,1020,980,1090,1027,891,865,919,1057,1072,967,1026,976,947,977,912,940,1019,993,1011,1027,952,912,919
|
||||
7,3,2063,2135,2014,2072,1917,1751,1653,1627,1799,1461,1906,1712,1612,1652,1553,1610,1721,1700,1442,1555,1517,1553,1526,1471,1249,1274,1328,1087,1399,1281,931,1026,1296,1262,1031,1059,923,966,1018,1066,1200,967,1282,1184,1173,1253,1081,911,914,851,883,1051,939,935,1019,977,1065,1293,1204,1058,1011,920,1111,993,948,982,1053,958,988,917,892,893,885,900,931,936,920,893,921,875,912,897,873,883,902,942,939,940,896,866,943,905,885,883,892,935,937,934,903,872
|
||||
7,4,1914,2110,2196,2048,1862,1843,1789,1857,1866,1674,1707,1802,1891,1720,1746,1724,1450,1441,1086,1125,1234,1302,1010,933,1161,1149,1278,944,1158,997,1153,1007,1016,1101,984,959,999,1008,1020,1087,1059,967,937,937,969,950,990,995,957,979,966,993,976,974,968,1030,989,1130,945,973,1209,1339,1388,1433,1476,1380,1546,1484,1334,1313,1325,1392,1244,1344,1069,1249,1132,1169,963,1077,1108,1224,1090,958,1020,1077,1189,1108,1075,1138,1198,1041,1158,1291,1176,1012,940,943,945,1032
|
||||
7,5,1928,2194,2085,2088,2083,2257,2159,2054,1888,1496,1538,1554,1734,1952,1972,1773,1392,1427,1365,1372,1228,1262,1316,1402,1226,1055,1256,1212,969,1115,1079,1161,1080,1064,1017,1045,912,931,1107,882,959,1186,1004,987,962,1069,930,887,1053,990,973,947,950,1023,1189,1182,1057,1179,1138,1224,934,1027,887,1166,1321,1214,935,1225,1091,1267,1085,1280,954,897,1217,1197,1058,999,1188,1087,902,867,1080,954,1022,1079,1070,1009,902,875,880,935,915,1036,967,901,1064,872,855,897
|
||||
8,0,2315,2257,2060,2256,2342,2091,1762,2036,1931,1717,1769,1696,1636,1785,2117,1769,1561,1393,1401,1397,1269,1318,1135,1215,1212,1069,972,1162,922,895,886,971,963,979,866,858,919,898,890,876,854,887,860,911,886,875,1006,894,878,1114,1008,1186,1209,1225,1077,1162,1008,969,1174,1229,1267,1231,1086,1270,1210,1187,1404,1331,1103,1517,1471,1352,1268,939,1226,1153,1326,1047,1268,967,1101,948,945,1075,1138,962,1038,1088,958,1154,1086,893,1074,1095,1059,1028,892,878,937,885
|
||||
8,1,2179,2309,2226,1988,1776,1919,2108,1866,1587,1559,1810,1664,1389,1551,1681,1589,1543,1575,1468,1398,1243,1302,1265,1142,1136,1299,1233,1021,1005,1007,1076,926,906,1000,931,930,923,851,902,943,957,925,899,915,912,920,916,905,889,929,939,929,926,918,937,971,925,905,999,970,1005,1052,1000,1281,1235,1171,1324,1335,1243,1183,1285,1339,1206,1275,1340,1314,1219,1134,986,967,1080,958,955,1098,1090,998,963,996,1056,1100,1114,1089,1018,1157,957,968,893,914,919,913
|
||||
8,2,2175,2229,2356,2278,2104,1932,1781,1787,1750,1566,1678,1564,1516,1621,1741,1530,1427,1450,1556,1561,1356,1431,1249,1206,1314,1084,1195,1292,1203,1098,1060,952,1020,1063,1008,902,888,1074,957,1011,873,895,956,951,956,930,936,941,921,984,946,923,1085,976,1040,1011,1161,1020,1032,1047,1057,1013,1112,1049,1034,1122,1131,1171,1107,1159,1048,1158,1025,1128,1031,1073,1065,1036,1001,987,954,969,954,1011,1029,1082,1011,1058,1008,965,989,938,994,1038,936,1004,998,956,873,858
|
||||
8,3,2055,2143,1997,2040,1879,1732,1569,1586,1852,1541,1930,1729,1521,1469,1449,1414,1606,1645,1498,1474,1583,1563,1467,1494,1349,1320,1335,1344,1438,1378,1084,1165,1316,1121,979,1199,886,949,1200,1140,1112,1178,1059,1253,1157,1202,1079,995,981,1044,1020,953,1015,1039,983,917,1188,1288,1204,1113,874,1069,1070,939,991,1046,919,877,980,912,887,904,883,913,949,995,970,852,867,868,922,886,869,898,932,981,949,887,871,867,894,905,865,876,893,951,963,928,857,864
|
||||
8,4,1931,2119,2196,2045,1894,1820,1806,1842,1893,1592,1696,1749,1868,1660,1837,1705,1545,1460,1273,1135,1151,1433,1274,1076,1172,1167,1332,1034,923,916,1064,980,985,1018,1044,936,967,907,906,950,990,926,913,880,987,1008,900,924,938,878,905,917,881,893,922,976,993,1110,936,978,1246,1369,1492,1521,1567,1554,1673,1545,1351,1381,1552,1500,1281,1349,1273,1344,1091,1077,965,1113,1238,1153,946,932,957,1154,1255,1136,972,1050,1168,1032,1079,1279,1081,1090,929,919,915,931
|
||||
8,5,1941,2210,2126,2089,2115,2250,2151,2071,1904,1578,1610,1449,1658,1932,1979,1621,1502,1574,1499,1426,1407,1254,1334,1329,1280,1099,1310,1274,927,1206,1101,1109,994,1062,1121,879,959,1059,998,862,1043,1000,1046,930,945,1031,950,935,1114,1133,931,1018,1024,968,1189,1168,1003,1149,1096,1286,938,1109,969,1290,1290,1071,1206,1119,1265,1273,996,1036,936,944,1180,1247,958,1088,1196,998,934,890,954,938,1018,1038,1018,1023,891,873,896,1004,930,953,892,871,967,871,905,899
|
||||
9,0,2315,2251,2067,2259,2339,2023,1840,2035,1907,1681,1734,1725,1579,1845,2121,1774,1599,1476,1409,1373,1300,1188,1209,1264,1283,1072,1032,1139,892,880,857,1121,1018,1008,901,860,911,885,896,871,873,849,905,879,893,892,899,972,907,1173,1024,1188,1184,1210,941,1176,1199,1088,1129,1251,1212,1199,1124,1096,1285,1134,1399,1323,1065,1459,1401,1250,1301,950,1142,971,1249,1084,1196,980,1165,980,1012,1083,987,997,1086,1092,1055,1172,1104,981,1049,1025,1072,1011,862,871,942,927
|
||||
9,1,2179,2308,2237,2037,1794,1794,2093,1989,1663,1625,1912,1840,1540,1690,1913,1743,1598,1651,1500,1414,1290,1360,1230,1233,1201,1343,1241,1104,977,957,1106,986,947,967,921,888,901,876,878,849,898,892,866,883,880,882,894,903,887,882,863,886,896,900,923,959,900,857,932,992,927,1024,1028,1293,1324,1280,1440,1383,1142,1283,1373,1452,1360,1181,1359,1363,1218,1067,1025,1064,1149,947,1018,1012,1061,1029,917,944,1010,1116,1173,1072,1061,1152,1018,963,942,910,889,889
|
||||
9,2,2178,2232,2355,2278,2104,1941,1813,1863,1790,1586,1652,1599,1462,1643,1770,1524,1471,1495,1623,1573,1340,1485,1242,1260,1386,1123,1245,1382,1255,1213,1064,950,1100,1102,981,917,919,1096,1055,969,975,961,1098,1011,1037,1001,960,1029,927,1014,984,969,1019,1044,1088,990,1103,934,917,1021,945,1035,1075,1052,1066,1063,985,1073,1053,1082,915,1065,1140,1100,921,1061,1083,1030,985,900,875,910,928,927,917,934,1002,1027,953,907,947,940,993,1033,924,974,953,974,932,899
|
||||
9,3,2056,2141,2001,2045,1889,1752,1578,1636,1821,1641,1907,1704,1628,1508,1519,1433,1644,1643,1503,1444,1591,1504,1476,1507,1341,1352,1348,1283,1405,1319,1009,1134,1308,1303,1130,938,1047,923,1178,1071,1091,1047,1138,1291,1038,1258,1091,938,909,1079,939,902,1026,1029,936,910,1154,1261,1217,1086,908,1119,1046,945,965,1024,933,926,930,892,917,911,890,937,972,1013,954,857,871,887,852,890,879,926,954,975,931,876,856,861,898,898,889,907,923,941,955,898,874,872
|
||||
9,4,1938,2124,2200,2046,1931,1836,1887,1879,1918,1644,1644,1762,1874,1708,1845,1740,1487,1356,1376,1286,1093,1328,1262,1067,984,1165,1314,1001,973,973,1069,1091,903,1124,985,921,1061,947,884,923,934,927,940,932,976,969,972,946,943,877,871,882,893,910,967,1008,1064,1174,967,1037,1272,1300,1490,1445,1582,1508,1573,1516,1314,1419,1561,1477,1191,1328,1295,1275,1176,969,1064,993,1214,1209,1140,1011,1102,1227,1250,1269,1036,977,1152,965,959,1245,1136,1143,912,947,923,921
|
||||
9,5,1940,2213,2132,2092,2115,2254,2149,2075,1876,1604,1597,1459,1660,1939,1981,1595,1556,1585,1419,1271,1418,1139,1360,1307,1243,1086,1274,1312,907,1184,904,1004,1115,1163,1076,886,1026,1119,957,942,1051,1031,1028,924,914,1037,950,883,1119,1124,954,940,908,994,1164,1117,1033,1171,1198,1321,982,1179,1026,1281,1289,1126,1268,1045,1296,1283,1042,1009,1141,988,1213,1340,1056,1131,1258,1025,1051,1031,940,941,902,928,973,941,905,852,902,938,971,910,949,885,964,868,908,927
|
||||
10,0,2307,2249,2058,2258,2338,2027,1819,2033,1934,1683,1731,1709,1680,1739,2123,1786,1625,1400,1412,1354,1276,1307,1267,1223,1279,1090,997,1185,902,923,895,1006,963,988,880,922,966,942,875,880,919,926,913,937,943,920,898,932,973,1118,1020,1123,1132,1260,1000,1156,1241,1215,1157,1195,1128,1261,1062,1338,1234,1152,1324,1331,1230,1484,1416,993,1369,1248,1033,951,1089,916,1282,1197,1164,1223,1160,1002,1002,1106,1147,1109,898,1117,948,938,986,1000,910,869,878,877,957,894
|
||||
10,1,2190,2308,2241,2044,1800,1963,2066,2030,1673,1643,1909,1853,1500,1710,1913,1793,1677,1648,1443,1383,1290,1418,1283,954,973,1295,1227,1060,990,1084,1132,949,927,1072,941,971,947,876,861,877,903,871,883,892,932,904,845,866,865,872,877,886,918,914,943,946,926,889,1007,1008,934,1129,997,1216,1289,1302,1297,1075,1082,1276,1388,1344,1271,1098,1405,1351,1081,1019,1190,939,1115,1074,984,1200,1186,978,1018,918,1068,960,1113,1106,1062,1097,999,917,912,889,891,899
|
||||
10,2,2170,2217,2357,2213,2069,1893,1806,1819,1796,1549,1690,1574,1356,1601,1680,1602,1492,1436,1548,1497,1282,1398,1181,1252,1360,1131,1217,1327,1304,1215,1142,913,1072,958,1022,888,930,982,912,931,877,916,878,931,926,936,916,907,889,898,905,957,1046,1015,1079,981,1153,1012,940,1053,1105,1018,1161,1069,1043,1087,1060,1135,1098,1123,1147,1028,1220,1143,1059,1076,1071,1199,1016,897,945,902,892,982,995,946,915,994,951,899,910,906,970,1019,896,994,999,909,884,924
|
||||
10,3,2054,2141,1985,2034,1847,1739,1555,1615,1853,1624,1927,1673,1504,1493,1503,1445,1605,1514,1591,1340,1607,1560,1543,1513,1332,1238,1357,1277,1398,1335,999,1177,1276,1264,1192,950,1025,944,1127,949,1066,1114,1174,1283,1093,1176,1084,1005,959,983,991,1058,1054,1039,958,944,1178,1278,1056,995,930,966,995,944,958,986,1005,914,874,897,866,889,929,937,948,943,953,875,871,869,879,953,901,894,946,943,956,908,849,858,910,837,881,890,902,970,942,939,870,874
|
||||
10,4,1970,2143,2205,2044,1922,1903,1847,1896,1906,1590,1657,1726,1902,1609,1871,1725,1465,1415,1375,1252,1265,1400,1310,1094,966,1088,1366,1008,944,903,1151,1024,961,1101,1014,874,905,995,904,985,913,950,944,976,970,990,1044,930,890,863,928,994,923,944,918,1018,992,1162,981,982,1226,1337,1516,1467,1542,1472,1414,1454,1464,1470,1516,1484,1289,1440,1305,1262,1169,1144,1077,1130,1253,1241,1081,1145,1065,1108,1079,982,1043,983,1017,972,1020,1260,1131,1004,1025,961,1055,922
|
||||
10,5,1931,2211,2128,2075,2092,2255,2152,2081,1878,1552,1574,1422,1607,1922,1980,1652,1539,1582,1494,1440,1375,1360,1285,1314,1305,1000,1246,1275,1019,1102,1022,1135,971,1210,1227,936,893,1022,966,969,911,945,966,952,944,954,959,929,930,988,885,982,882,983,1235,1154,1208,1148,1178,1358,1030,1032,1026,1277,1335,1098,1250,1253,1278,1301,1002,1116,903,902,1194,1204,1003,945,1161,1106,992,961,877,928,887,980,917,1017,959,934,900,915,930,1086,902,898,916,895,893,853
|
||||
11,0,2314,2254,2035,2238,2309,1916,1935,2018,1941,1736,1761,1753,1320,1949,2207,1896,1569,1398,1490,1301,1345,1097,1256,1408,1079,1152,888,1030,880,935,872,902,946,1118,1007,941,871,898,867,902,895,944,903,906,914,930,929,948,1076,1150,1127,997,1157,1081,1230,1185,1049,1219,1052,1132,1062,1249,1189,1343,1285,1327,1099,1314,1043,1341,1471,1238,1098,1187,1241,1006,1160,1181,1192,1178,1190,1218,967,1127,1060,950,1138,1122,1095,1081,1070,908,1114,1133,896,895,930,856,911,877
|
||||
11,1,2101,2209,2164,2043,1766,2052,1981,1914,1687,1591,1782,1730,1434,1485,1579,1749,1493,1556,1471,1408,1034,1078,1093,1199,1307,1201,1126,938,897,975,957,921,919,905,898,924,928,873,912,881,876,869,894,896,880,888,878,900,868,878,881,911,881,890,908,895,913,878,978,893,957,1006,951,1240,1224,1244,1380,1187,1114,1254,1102,1304,1174,1015,1188,1292,1071,961,939,961,1146,1132,1009,1081,1020,929,986,985,1078,989,1202,1091,1027,1187,1105,1009,915,967,964,910
|
||||
11,2,2168,2224,2340,2267,2109,1937,1858,1799,1847,1736,1631,1523,1473,1543,1664,1685,1482,1413,1605,1542,1351,1275,1302,1324,1373,1241,1203,1303,1107,1136,1002,1052,944,1054,930,982,912,947,985,1054,954,972,964,943,960,962,963,935,878,903,945,912,1001,1046,1056,1013,1164,1068,933,997,1167,1094,1103,1055,1123,1003,1051,1160,1228,1084,1177,1210,1126,1116,1043,1008,1104,1011,1015,926,981,906,916,1026,1155,1062,1009,988,996,952,968,969,983,1153,976,1069,1049,915,883,895
|
||||
11,3,2062,2140,1996,2053,1903,1760,1620,1678,1782,1665,1859,1391,1655,1539,1521,1691,1705,1627,1446,1244,1580,1485,1524,1450,1317,1407,1418,1237,1375,977,1215,1160,1300,1132,1035,959,1073,992,935,973,1163,956,1046,1085,974,1222,1133,913,903,1093,1073,1081,1022,1022,1089,1066,1052,1246,1157,995,966,984,1044,1002,972,939,881,947,1026,920,929,891,921,929,1028,945,944,851,894,877,887,877,883,912,937,964,954,901,870,856,922,878,887,900,924,951,954,937,857,860
|
||||
11,4,1968,2140,2212,2037,1908,1904,1847,1878,1843,1744,1599,1817,1908,1691,1642,1831,1324,1492,1098,1114,1227,1257,1038,1033,1223,1089,1098,909,1046,1141,1075,1024,920,901,977,1037,928,939,902,965,914,935,924,908,907,895,951,923,898,866,903,916,960,932,948,1024,1033,1043,998,990,1165,1202,1431,1369,1608,1506,1552,1453,1477,1416,1462,1429,1314,1363,1335,1288,1218,1058,1064,1044,1242,1138,1075,1040,1094,1152,1212,1264,1015,1051,1154,977,986,1275,1209,1158,988,1011,1046,928
|
||||
11,5,1917,2200,2120,2087,2087,2284,2173,2050,1865,1506,1638,1655,1799,1916,1949,1828,1501,1392,1346,1038,1294,1424,1255,1462,1245,1219,1004,1199,1145,1046,1043,1190,1041,1151,1015,1146,1066,1063,909,939,1049,1077,981,945,916,998,837,932,955,1132,946,959,899,901,1165,1083,1254,1197,1283,1328,1230,1070,919,1138,1357,1140,1039,1062,1275,1385,1186,1100,898,892,1127,1119,1059,1116,1203,1009,962,952,997,967,897,1016,1096,966,1023,901,880,899,913,1093,894,907,1008,931,880,876
|
||||
12,0,2321,2254,2031,2233,2311,1826,1963,2010,1947,1765,1786,1741,1514,1979,2200,1852,1522,1373,1407,1381,1326,1040,1228,1390,1011,1211,895,1023,901,876,885,878,1089,1177,1073,951,858,874,864,977,921,915,895,942,882,970,1074,932,917,1140,1058,1098,1139,1076,1245,1171,1124,1242,960,1204,966,1290,1155,1277,1239,1206,1197,1289,1122,1272,1484,1278,1261,1190,1268,971,962,1195,1135,1038,1229,1182,957,1008,1086,925,1060,1014,1168,1058,1025,885,1104,1187,915,970,988,878,943,909
|
||||
12,1,2036,2161,2120,2003,1718,1986,1940,1820,1692,1516,1781,1724,1513,1554,1649,1793,1419,1587,1504,1443,1235,1023,1278,1168,1359,1225,1150,980,925,920,942,922,937,931,921,966,914,904,980,903,891,922,912,903,930,936,943,895,899,887,915,902,919,952,919,938,898,910,883,891,1018,966,946,1242,1280,1241,1370,1058,1189,1277,1182,1185,1022,1020,1116,1285,1176,1061,928,1021,1137,1051,989,1046,1031,942,1010,1082,1096,1069,1162,1098,1079,1179,1098,1013,907,1001,976,933
|
||||
12,2,2167,2228,2332,2259,2114,1946,1856,1784,1833,1797,1685,1487,1517,1541,1568,1667,1549,1376,1567,1491,1306,1207,1277,1225,1317,1185,1181,1240,1049,1185,960,1132,1007,983,956,998,946,979,931,991,882,933,987,994,961,926,889,911,887,904,1039,924,930,975,1046,1013,1169,1075,1014,1008,1172,1119,1134,1075,1105,1106,1158,1201,1227,1100,1226,1236,1184,1171,1109,1083,1171,965,1031,949,939,924,969,968,1018,937,954,899,961,963,958,902,897,1116,954,1002,978,922,899,879
|
||||
12,3,2071,2132,2009,2063,1930,1773,1630,1689,1740,1670,1854,1326,1705,1568,1595,1708,1708,1568,1445,1209,1517,1480,1522,1422,1220,1438,1449,1186,1327,1048,1144,1029,1265,1147,1028,935,1047,1009,1024,930,1101,1006,1082,1148,1055,1231,1083,881,886,1085,1039,1032,955,928,1002,1000,1021,1280,1207,958,904,1017,1083,1090,977,1003,916,904,1030,909,939,880,927,926,981,953,937,874,901,886,923,860,855,910,932,945,952,896,855,840,915,879,874,905,914,922,947,918,884,839
|
||||
12,4,1968,2129,2210,2037,1899,1885,1853,1898,1858,1730,1653,1822,1881,1727,1620,1855,1341,1537,1233,1158,1255,1322,1090,1070,1287,970,1162,1037,1101,1212,1135,1109,898,970,1091,1071,874,894,941,898,902,1000,948,914,938,1004,912,925,922,898,868,927,891,878,906,1009,1067,1076,989,980,1233,1109,1461,1323,1622,1467,1644,1548,1476,1432,1472,1425,1358,1373,1366,1280,1207,1160,1114,1074,1206,1227,1031,993,1056,1210,1177,1318,1012,1112,1167,959,1063,1337,1268,1154,977,1054,1053,905
|
||||
12,5,1912,2199,2110,2095,2094,2277,2164,2045,1861,1489,1648,1662,1829,1939,1922,1818,1513,1254,1352,1217,1187,1373,1296,1438,1121,1068,935,1170,1149,1160,1061,1167,1004,1063,1012,1122,987,1173,1141,883,1036,1123,976,893,926,1035,993,1048,957,1135,896,1005,923,938,1136,1042,1245,1211,1317,1312,1175,1092,882,1085,1337,1044,1020,960,1273,1410,1202,1111,892,1051,1087,1193,1104,1126,1274,1141,925,992,992,1011,881,973,1034,963,1025,904,895,881,952,1068,872,943,981,959,900,857
|
||||
13,0,2317,2262,2052,2229,2322,1974,1907,2043,1928,1758,1760,1710,1633,1934,2174,1832,1592,1501,1495,1292,1354,928,1255,1284,1247,897,919,1048,886,894,893,1058,985,877,882,890,876,859,906,873,859,931,888,878,893,968,1014,944,901,1135,1033,1148,1122,1052,1139,1103,1154,1218,1083,1132,987,1228,1252,1179,1231,1088,1444,1274,1040,1422,1398,1152,1178,1158,1063,1109,1172,1160,1173,909,947,922,1013,1045,1134,973,1033,1081,1073,1063,1215,1005,1065,977,1102,1058,885,869,923,939
|
||||
13,1,2173,2301,2247,2075,1791,2034,2056,1999,1629,1653,1895,1829,1537,1653,1761,1661,1616,1668,1432,1419,1175,1318,1219,1166,1140,1334,1240,1081,1076,1030,1010,958,913,902,872,873,859,958,912,873,918,881,876,873,896,881,872,874,859,878,921,873,897,904,910,1002,952,844,935,1030,1150,1006,1000,1382,1354,1345,1417,1091,1162,1217,1281,1307,1182,1126,1317,1387,1220,977,1088,1111,1164,1050,1118,952,1090,944,924,1043,1075,1153,1202,1089,1162,1232,1063,978,909,886,919,903
|
||||
13,2,2167,2228,2340,2265,2108,1936,1844,1811,1763,1527,1610,1570,1403,1647,1784,1626,1367,1474,1629,1552,1304,1422,1221,1339,1445,1139,1260,1365,1202,1160,1022,1067,1020,1007,933,939,934,1043,946,968,942,925,1006,979,1043,899,966,893,908,963,956,933,980,1063,1054,992,1209,1052,1044,1072,1049,1213,1130,1176,1017,1138,1087,1061,1016,1042,1177,1174,1262,1141,1004,995,1147,1015,959,943,917,942,947,918,987,958,982,957,900,914,977,947,994,1082,926,1030,968,995,901,913
|
||||
13,3,2074,2132,2003,2046,1917,1780,1619,1676,1784,1524,1896,1614,1577,1610,1430,1473,1694,1667,1490,1551,1485,1445,1565,1492,1303,1324,1373,1296,1362,1281,998,1119,1353,1276,1205,910,1003,908,1091,1121,938,1069,1224,1286,1013,1169,1006,897,1047,1095,956,963,966,974,908,972,1133,1346,1274,932,1088,1040,1042,1072,1016,1081,978,870,999,895,964,965,924,1032,977,1023,930,857,914,881,929,907,878,905,938,959,969,916,887,868,887,854,916,892,903,916,951,911,885,875
|
||||
13,4,1971,2132,2209,2028,1930,1867,1888,1914,1914,1645,1661,1761,1901,1708,1845,1741,1436,1389,1290,1087,1130,1326,1211,1065,926,1103,1293,1108,935,971,1121,1016,904,1127,997,888,1048,998,925,885,991,904,911,955,1011,1037,1034,950,947,973,976,903,934,951,981,1063,1051,1135,937,958,1200,1336,1455,1440,1546,1460,1617,1543,1283,1296,1513,1449,1202,1294,1248,1226,1250,1069,1163,1140,1168,1255,1132,924,1020,1233,1223,1194,976,1038,1128,963,995,1297,1108,996,909,954,935,951
|
||||
13,5,1932,2213,2133,2092,2103,2263,2159,2065,1869,1518,1576,1560,1625,1934,1969,1573,1478,1490,1374,1339,1388,1393,1313,1400,1267,893,1265,1233,911,1062,1109,1147,1059,1124,963,897,982,935,1164,917,1072,1175,1117,1003,979,1022,1064,976,1086,1069,979,914,1035,1011,1175,1167,1078,1258,1255,1341,1074,1133,1099,1267,1217,990,1164,901,1312,1307,1013,1065,1138,1114,1158,1283,1093,1010,1109,1110,915,1065,930,933,932,1015,954,943,1001,850,888,899,959,877,936,890,946,874,873,870
|
||||
14,0,2313,2256,2031,2236,2323,1974,1887,2041,1929,1738,1718,1618,1775,1826,2124,1772,1544,1436,1310,1256,1217,1121,1230,1049,1320,1062,1120,1129,919,1015,873,941,1064,892,925,949,894,881,920,937,867,866,873,871,893,958,902,896,884,1042,964,1020,1000,1138,938,966,1303,1153,1081,1203,1218,1256,1260,1349,1116,1143,1358,1261,1256,1530,1450,1217,1404,1060,931,1105,1208,979,1301,1308,1018,1216,1261,974,1110,1126,1096,985,1176,1057,1156,1050,900,956,926,986,866,955,969,863
|
||||
14,1,2094,2212,2164,1946,1742,2017,1959,1955,1660,1620,1852,1793,1494,1688,1813,1643,1626,1545,1416,1394,1131,1313,1212,999,1203,1309,1169,1077,1122,1054,974,875,967,1052,973,888,871,889,892,931,885,880,880,881,906,874,851,853,870,904,904,892,874,872,874,945,923,889,919,962,912,1057,1102,1258,1295,1379,1343,1165,1181,1140,1326,1360,1263,1171,1301,1239,1131,995,1169,980,1122,1016,1155,1239,1184,922,926,883,1048,1003,1067,1206,1134,1062,1025,1018,946,902,922,931
|
||||
14,2,2161,2221,2357,2259,2092,1921,1770,1742,1719,1481,1659,1487,1470,1525,1672,1634,1521,1326,1507,1444,1267,1270,1064,1314,1348,1055,1280,1301,1220,1104,1093,1018,1090,999,1077,963,964,906,943,966,948,965,949,962,947,984,909,924,943,980,979,998,976,1046,1125,1013,1191,1041,914,1064,1076,1013,1155,1072,1067,1167,1191,1150,1050,1088,1146,1120,1169,1028,1003,959,1048,1074,910,1005,974,925,914,935,937,966,942,927,933,888,877,951,922,981,935,993,980,987,927,886
|
||||
14,3,2002,2082,1945,1979,1834,1738,1542,1548,1828,1534,1832,1613,1437,1574,1404,1373,1530,1485,1511,1427,1523,1492,1531,1438,1275,1140,1164,1047,1371,1236,948,1222,1334,1182,1032,1201,1087,901,1125,898,1057,1047,1064,1161,1170,1176,1010,901,989,922,1034,1139,1038,991,968,931,1143,1323,1194,908,881,1067,1020,1056,982,1029,897,908,936,896,874,898,874,928,942,959,955,881,892,873,895,956,898,890,916,939,962,909,890,879,938,917,876,878,904,961,959,927,892,869
|
||||
14,4,1969,2144,2207,2039,1921,1909,1825,1875,1891,1539,1692,1687,1935,1579,1901,1730,1446,1208,1307,1337,1167,1417,1192,1085,964,1097,1355,972,1191,926,1182,1132,1001,1073,941,857,893,1064,889,884,925,949,970,1046,879,903,903,891,879,876,895,971,911,923,900,941,965,1109,936,1006,1114,1322,1412,1429,1458,1525,1569,1474,1224,1173,1474,1406,1174,1325,1249,1229,1098,996,1048,1157,1255,1189,949,1144,1074,1178,1184,1030,1048,898,956,1041,1094,1232,1016,966,1066,1063,1061,890
|
||||
14,5,1933,2210,2116,2075,2071,2272,2165,2065,1888,1465,1500,1503,1449,1959,1970,1654,1498,1559,1426,1483,1357,1429,1315,1280,1330,936,1212,1269,1069,967,900,1127,1100,1182,1254,958,880,1065,860,874,949,944,957,1032,1027,1056,982,872,921,1014,1001,943,930,960,1153,1255,1002,1151,1220,1341,1083,1185,1104,1226,1265,971,1248,1173,1257,1207,957,1084,953,1010,1124,1204,1132,972,1050,1056,910,875,950,927,908,992,977,1040,895,892,877,887,1001,1090,1012,897,919,891,994,904
|
||||
15,0,2309,2255,2066,2239,2330,2030,1817,2025,1936,1730,1730,1556,1813,1751,2097,1718,1566,1364,1306,1154,1085,1132,1227,1100,1345,1028,1145,1124,956,1011,876,1033,956,898,909,886,909,876,953,877,875,871,861,885,904,964,948,858,872,986,922,961,899,1052,974,905,1166,1227,917,1200,1229,1277,1284,1346,1213,1154,1349,1240,1188,1528,1435,1237,1367,1036,1144,954,1206,993,1258,1237,1112,1050,1085,1079,1102,957,997,1028,1135,1021,1114,1020,901,997,887,941,867,960,991,913
|
||||
15,1,2183,2311,2235,1981,1793,1981,2062,2032,1636,1618,1902,1843,1468,1706,1927,1838,1716,1642,1506,1428,1176,1323,1257,1152,1377,1392,1134,1133,1157,1132,1114,959,1023,1078,1057,992,926,949,947,949,936,924,919,936,938,930,917,922,913,916,948,944,935,933,947,1006,962,929,971,978,953,1123,1136,1327,1362,1416,1343,1179,1211,1113,1312,1292,1245,1185,1344,1176,979,973,1194,971,1152,958,1059,1219,1186,929,974,926,1056,987,1042,1226,1084,1059,1061,1025,994,945,903,927
|
||||
15,2,2167,2227,2360,2268,2089,1921,1828,1828,1795,1602,1728,1553,1529,1585,1706,1749,1490,1214,1518,1511,1291,1334,1098,1304,1366,1026,1209,1357,1211,1184,1199,1120,1156,991,1051,1047,1040,953,1015,962,887,1028,1011,942,912,960,908,963,930,894,965,993,915,1007,1086,986,1188,1006,920,1075,1108,985,1175,1045,1018,1212,1247,1214,1120,1111,1091,1257,1212,1033,1023,960,991,1012,940,996,1017,962,929,896,949,935,986,977,912,899,908,936,931,952,913,964,942,923,913,892
|
||||
15,3,2052,2142,1991,2035,1856,1740,1547,1560,1872,1603,1925,1731,1594,1598,1480,1483,1571,1603,1497,1533,1530,1583,1552,1515,1301,1212,1152,1129,1406,1262,1064,1134,1276,1244,1128,1273,1270,1086,1152,886,1064,936,1289,1140,1096,1183,932,1015,886,954,1050,1095,1001,1083,1083,948,1068,1371,1234,944,860,1195,1027,1132,1053,1085,938,929,982,867,948,906,905,910,951,947,981,930,914,866,911,925,878,896,886,942,920,922,916,873,936,893,851,887,873,931,923,931,899,867
|
||||
15,4,1953,2129,2200,2047,1923,1869,1866,1875,1897,1494,1711,1689,1900,1623,1897,1690,1498,1393,1371,1456,1338,1465,1399,1141,998,1260,1362,1007,1119,1055,1011,1087,914,927,904,1037,904,886,994,931,1049,937,963,934,878,911,904,864,942,950,953,882,881,917,899,957,989,1070,889,926,1031,1392,1480,1486,1442,1555,1587,1515,1307,1243,1489,1437,1204,1390,1267,1322,1086,1240,1231,1248,1270,1080,1098,1167,1058,1222,1107,998,1142,955,948,1061,1182,1298,974,1026,1157,1124,1154,867
|
||||
15,5,1938,2211,2122,2064,2085,2257,2145,2070,1883,1555,1524,1418,1619,1970,1931,1763,1567,1550,1480,1441,1321,1423,1339,1338,1332,1005,1114,1294,971,1087,1058,938,993,1144,1057,1123,1109,1134,1118,948,981,940,906,939,988,913,899,879,1034,910,958,1161,881,1029,1198,1255,1153,1141,1241,1338,1076,1058,1140,1303,1328,978,1285,1241,1096,1045,919,1175,1094,1018,977,1088,1219,1054,1014,1028,916,987,1118,973,908,992,935,987,917,938,930,1002,884,1106,910,931,874,867,933,871
|
||||
16,0,2305,2251,2090,2254,2352,2114,1522,2009,1951,1702,1695,1401,1825,1635,2045,1614,1578,1305,1224,1189,1238,1360,1009,1007,1331,1131,1053,1127,1039,977,958,903,919,878,877,873,847,858,828,870,851,862,874,871,853,965,1107,931,852,1002,960,1019,1099,998,1033,937,1019,1304,909,1166,1305,1255,1382,1322,1311,1207,1212,1169,1355,1497,1381,1184,1279,1020,1187,1010,1286,1050,1299,1143,1206,1216,1264,1067,1026,984,1077,947,1032,1087,1007,885,914,940,979,946,956,914,883,862
|
||||
16,1,2190,2318,2220,1814,1811,1925,2120,2043,1619,1579,1895,1851,1409,1596,1934,1890,1721,1677,1551,1467,1288,1246,1243,1008,1420,1421,1000,1036,1101,1054,1016,896,1020,1063,1033,909,896,918,904,897,937,876,872,870,874,868,930,855,883,877,899,866,902,917,886,922,939,868,990,992,955,1071,1171,1381,1384,1438,1413,1332,1294,1073,1374,1234,1210,1090,1408,1298,1030,1117,1272,976,1119,1111,1046,1212,1193,956,1034,934,1102,995,1092,1270,1002,1052,1093,1071,970,1008,913,936
|
||||
16,2,2059,2061,2245,2149,1988,1805,1740,1680,1696,1661,1659,1420,1464,1476,1481,1627,1315,1216,1378,1487,1338,1262,1091,1054,1009,1202,961,1142,1199,1072,1158,1063,1026,968,966,918,922,947,1016,1026,921,936,989,965,961,914,930,948,994,949,995,957,1075,972,1013,1018,1171,1004,983,1032,1068,986,1084,991,971,1148,1145,1104,1114,1072,1054,1158,1142,986,1015,1022,952,1010,985,963,980,948,923,1029,957,940,1022,958,924,921,931,922,946,946,1005,997,962,952,961,972
|
||||
16,3,2033,2152,1966,1996,1751,1693,1508,1696,1902,1611,1915,1638,1686,1676,1580,1609,1632,1558,1567,1587,1271,1409,937,1506,1245,1192,1187,1161,1424,990,1287,1043,1301,1127,1264,1149,1062,1125,1143,974,936,1076,1249,1284,1176,1232,892,1028,971,1008,1057,1152,1003,941,909,959,1174,1382,1292,1020,1017,1233,1002,1091,1111,1115,922,938,1001,910,935,910,881,909,953,997,911,900,887,901,916,886,901,866,928,931,918,881,869,926,912,897,878,879,909,920,920,928,868,871
|
||||
16,4,1948,2130,2192,2050,1935,1891,1782,1829,1799,1583,1707,1645,1915,1812,1933,1472,1515,1398,1538,1618,1535,1511,1148,1140,1272,1223,1236,978,997,996,1050,1024,986,1003,1037,1007,906,872,1009,1042,908,933,934,921,933,897,870,865,886,877,895,873,875,904,928,969,1012,1010,922,922,1090,1433,1465,1543,1532,1600,1560,1516,1301,1396,1420,1411,1211,1406,1233,1324,1172,1326,1208,1290,1328,1165,944,1046,995,1146,1171,966,1122,1003,1068,1077,1242,1255,972,1016,1137,1114,1169,929
|
||||
16,5,1928,2213,2125,2047,2087,2235,2121,2061,1872,1617,1668,1494,1691,1957,1869,1791,1466,1556,1559,1374,1437,1391,1297,1323,1264,969,1103,1333,1190,1305,1119,990,1123,1229,1192,1215,920,1035,1097,873,878,931,999,900,1022,1030,1039,909,997,1073,928,1167,904,1006,1205,1305,1087,1229,1260,1258,962,1217,1157,1295,1295,1053,1343,1191,1225,950,914,1205,1047,1052,1048,1105,1240,1153,970,909,1011,1052,1039,980,947,932,944,935,899,912,938,1073,977,1079,906,981,925,891,944,880
|
||||
17,0,2312,2263,2089,2234,2332,2060,1795,2018,1915,1704,1768,1682,1731,1799,2145,1811,1592,1178,1400,1383,1329,1289,1300,1262,1310,914,918,1124,915,1049,938,946,939,1018,909,908,874,915,878,856,854,941,885,960,888,993,987,911,859,1097,1082,1082,1051,1048,1139,1064,1116,1234,950,1182,1284,1431,1230,1268,1053,1066,1443,1322,1058,1443,1450,1028,1358,1235,1013,1071,1129,1199,1145,905,1095,1172,1172,1033,1234,929,901,928,967,1132,1208,974,870,1003,1010,967,880,972,908,903
|
||||
17,1,2176,2307,2221,1920,1757,1863,2015,1982,1595,1628,1842,1806,1490,1620,1796,1666,1674,1641,1492,1383,1309,1324,1317,1012,1009,1267,1153,1045,1132,1002,1100,903,945,1067,890,942,940,970,933,890,888,874,873,929,916,895,872,861,850,878,842,878,894,894,910,946,953,900,1034,991,1060,991,1041,1325,1338,1304,1372,1215,1252,994,1228,1366,1340,1186,1362,1217,1185,1091,1175,999,988,919,1027,1043,1141,974,925,981,935,1026,974,1165,1190,1198,1108,941,892,903,900,864
|
||||
17,2,2169,2234,2350,2271,2095,1937,1791,1878,1787,1651,1656,1572,1504,1586,1729,1675,1375,1425,1583,1538,1306,1398,1176,1282,1273,1017,981,1271,1229,1082,1170,978,949,1047,1086,1029,876,1007,949,1054,943,902,962,960,948,911,907,931,905,934,996,940,1028,989,1032,997,1169,1034,960,987,1086,1175,1080,1159,1062,1184,1219,1013,1027,1055,1088,1230,1185,1041,1164,1098,946,934,971,940,891,926,881,933,949,932,960,938,921,868,887,924,943,1014,980,1103,955,1010,933,872
|
||||
17,3,2052,2149,1978,2028,1900,1747,1580,1664,1810,1589,1916,1660,1616,1588,1391,1372,1607,1539,1493,1454,1587,1609,1354,1487,1342,1214,1328,1362,1422,1309,1367,987,1277,1141,1175,1230,1080,1111,1203,1016,1052,1184,1184,1242,1160,1216,1157,929,972,1121,982,1053,1133,1069,953,920,1093,1397,1337,1119,902,1174,917,1021,1037,1102,955,970,1100,924,892,875,905,994,974,925,921,883,924,889,955,911,900,919,924,969,937,899,889,905,871,909,912,867,903,940,954,940,872,886
|
||||
17,4,1940,2116,2201,2044,1924,1853,1942,1922,1917,1559,1715,1740,1925,1584,1846,1702,1522,1418,1302,1436,1334,1476,1316,1149,1044,1185,1253,947,1021,1134,1086,1026,940,1020,951,1040,1162,976,985,927,929,900,930,918,971,929,974,1014,927,940,951,1032,1013,947,960,982,1036,1107,978,989,1174,1291,1427,1427,1514,1521,1510,1460,1155,1097,1530,1491,1304,1368,1333,1301,1117,1141,1188,1184,1255,1115,1038,1006,1046,1249,1205,1089,1070,1119,1077,1100,1043,1247,1134,986,985,1021,973,967
|
||||
17,5,1930,2218,2156,2076,2146,2239,2175,2100,1870,1751,1599,1354,1665,1866,1850,1551,1534,1503,1436,1363,1377,1437,1350,1356,1236,1131,1282,1274,1158,1154,1077,1089,970,928,954,927,923,1091,1067,936,1004,938,920,966,929,1069,953,983,1011,1111,1054,1009,961,1010,1208,1245,1154,1310,1296,1333,1235,1102,1066,1254,1278,1077,1294,1102,1278,1287,957,963,960,1090,1150,1111,1065,906,1096,977,929,1015,929,967,925,1065,1018,950,929,881,847,905,941,949,989,958,904,885,941,875
|
||||
18,0,2320,2243,2037,2273,2301,2017,1918,1977,1877,1699,1764,1754,1574,1931,2211,1883,1445,1487,1321,1492,1349,1003,1050,1339,1145,1235,925,881,978,1061,977,944,1019,1105,940,880,865,869,901,902,896,934,935,944,880,927,995,959,999,945,1098,1066,956,1015,1148,1027,962,1138,1293,1216,1176,1239,1025,1313,1336,1107,1246,1161,1119,1421,1386,1300,1412,1281,1125,942,1034,1173,1023,1110,1183,1257,1084,1056,1093,1152,1007,899,1043,1162,1100,892,1038,1076,966,1101,891,910,926,898
|
||||
18,1,2162,2296,2221,2121,1820,2024,2090,1983,1686,1654,1866,1822,1678,1660,1766,1910,1569,1603,1590,1399,1132,955,1235,1271,1360,1149,1077,1109,1152,941,1094,931,968,1098,888,880,942,985,863,882,871,866,889,908,892,886,890,895,897,891,876,868,891,882,887,910,883,863,894,918,1100,904,921,1228,1311,1084,1237,1251,1333,1305,1186,1345,1211,1229,1368,1355,1253,1172,1003,1160,1144,986,995,1031,1021,925,1056,994,997,954,1016,1076,1043,1089,945,997,962,986,851,881
|
||||
18,2,2121,2193,2267,2211,2064,1926,1741,1867,1787,1728,1560,1521,1515,1559,1609,1666,1441,1346,1560,1544,1353,1301,1116,1036,1023,1293,1213,1158,973,1128,1023,931,966,1220,1104,1098,938,900,934,965,902,908,927,994,950,966,919,948,900,885,1031,942,887,933,1026,962,1112,1095,1130,1061,1155,996,1059,1117,1061,1332,1280,1112,1328,1290,1077,1137,1111,1124,1100,1053,1078,975,1028,1011,938,947,1005,998,987,1031,985,935,916,978,922,930,911,1014,962,969,919,978,890,911
|
||||
18,3,2070,2138,2000,2058,1922,1727,1675,1742,1727,1610,1833,1436,1651,1619,1549,1680,1654,1534,982,1345,1618,1540,1303,1460,1361,1165,1403,1309,1319,1193,1221,1136,1326,946,1127,1041,1150,1082,1164,1294,1076,958,981,1023,1197,1150,973,927,950,1103,1088,1147,984,996,1084,933,899,1311,1330,1125,1167,1254,923,926,934,940,982,917,975,926,935,943,899,985,950,914,922,872,894,886,954,906,856,962,925,910,934,896,876,893,914,907,865,867,931,935,923,907,912,886
|
||||
18,4,1909,2108,2201,2038,1876,1876,1956,1927,1888,1725,1760,1869,1896,1629,1699,1853,1514,1604,1487,1309,1158,1407,1121,1208,1275,1128,1131,936,936,1171,1089,969,1057,1011,1016,1083,948,903,954,872,968,896,939,936,930,910,877,866,911,933,912,956,872,927,932,1001,1077,1124,979,968,1228,1226,1474,1310,1600,1274,1476,1555,1432,1282,1384,1468,1396,1440,1311,1255,1199,1237,1126,1227,1215,1233,1121,1129,1089,1204,1195,1189,1194,1107,995,989,1032,1318,1265,1116,987,926,928,992
|
||||
18,5,1923,2210,2156,2070,2164,2260,2193,2112,1768,1789,1555,1586,1783,1916,1927,1748,1604,1553,1285,1315,1330,1363,1397,1456,1018,1384,1170,951,1272,1244,978,1101,1098,948,995,1000,1023,1123,1117,1041,1061,939,1038,942,948,1035,1038,974,1038,1150,1034,902,939,938,1184,1027,1302,1128,1301,1281,1233,933,895,1173,1309,1161,1119,1228,973,1387,1244,1225,1163,988,1171,895,954,925,1221,944,875,889,980,961,853,958,1000,950,995,913,884,1002,1082,1063,972,993,1057,1066,892,892
|
||||
19,0,2318,2241,2072,2269,2317,2028,1816,2028,1892,1779,1742,1744,1714,1878,2159,1816,1611,1420,1493,1396,1348,911,1196,1332,1337,959,960,1016,883,1069,981,986,956,913,903,906,902,908,895,864,878,918,889,893,866,940,894,889,935,1026,926,1111,928,1079,1179,1142,1059,1154,1215,1268,961,1294,1293,1281,1273,1213,1317,1376,1261,1404,1335,1317,1333,1028,1003,1035,1154,1153,1247,1144,1261,1185,1200,927,1223,1213,972,1018,1042,1055,1177,1046,1011,890,888,984,1001,898,940,900
|
||||
19,1,2178,2297,2220,2120,1840,2011,2052,2062,1647,1657,1877,1825,1676,1600,1776,1576,1652,1703,1470,1350,1291,1295,1343,987,1051,1322,1057,1085,900,1069,1127,913,1005,1007,919,928,904,917,871,899,880,885,902,910,900,881,852,885,849,900,861,891,878,912,911,947,917,886,979,884,1120,945,1118,1372,1355,999,1385,1340,1340,1135,1238,1349,1161,1123,1452,1290,991,1147,933,1157,1229,1040,1009,1120,1039,1002,967,917,920,1116,1054,1092,1026,1190,1079,946,966,883,904,881
|
||||
19,2,2117,2188,2269,2204,2064,1921,1778,1802,1724,1558,1435,1564,1367,1527,1647,1617,1388,1432,1545,1465,1302,1395,1145,1138,1170,1158,1108,1244,1037,1102,1087,1054,1039,1110,1041,1041,1005,1164,925,943,967,891,941,1054,968,920,940,922,925,966,1091,1009,1007,1015,1020,1054,1146,993,1081,1104,1102,996,1047,1069,1121,1256,1242,1095,1231,1162,1033,1111,1011,1119,1014,961,929,906,997,1029,927,943,982,918,981,1008,973,898,906,869,905,862,910,1054,934,1005,970,927,895,874
|
||||
19,3,2076,2135,2008,2054,1910,1746,1654,1757,1673,1648,1845,1636,1528,1662,1448,1286,1607,1602,1397,1386,1542,1526,1440,1484,1272,1192,1350,1288,1351,1332,1072,982,1269,1110,1269,1014,962,1026,1224,1183,985,1112,1137,1252,1115,1172,1200,994,990,1026,1077,1037,1001,992,1083,989,1011,1323,1263,1109,1047,1060,1070,916,940,1012,1041,997,952,910,975,883,898,981,907,946,919,913,893,882,895,904,892,881,886,919,919,925,912,876,885,872,871,888,898,893,933,926,922,877
|
||||
19,4,1917,2111,2206,2038,1892,1899,1988,1950,1943,1543,1673,1767,1833,1617,1771,1637,1534,1413,1425,1333,1051,1382,1035,1073,1101,1177,1282,1181,1095,1041,1174,951,970,1102,941,1124,923,1044,919,1048,981,952,1008,949,962,997,1035,932,909,957,969,925,937,919,970,971,995,1196,977,1016,1199,1395,1426,1486,1521,1402,1480,1485,1350,1242,1450,1443,1222,1384,1301,1224,1054,1273,1196,1185,1172,1220,1145,1069,994,1103,1209,1000,1044,979,1044,1045,1063,1202,1137,1038,1073,976,1021,939
|
||||
19,5,1916,2215,2163,2064,2165,2231,2177,2105,1855,1757,1582,1448,1547,1909,1995,1591,1607,1515,1470,1291,1435,1435,1269,1480,1063,1013,1187,1265,1184,991,1144,1044,1154,1115,922,1004,1085,1204,1173,1011,1115,1206,1101,955,1009,1057,907,899,1084,1078,934,905,860,978,1186,1088,1220,1118,1049,1281,1080,946,1090,1322,1294,1167,1061,1237,964,1256,1185,1250,1169,1055,1075,901,1066,959,1115,940,896,898,980,1016,942,963,932,1049,870,850,907,955,894,1017,1070,916,966,932,986,906
|
||||
20,0,2309,2243,2097,2253,2323,2071,1768,2027,1918,1734,1684,1635,1826,1720,2014,1330,1623,1360,1226,1294,994,1245,1314,1332,1339,1098,1097,1001,904,926,909,1072,981,860,938,901,854,893,875,930,885,848,877,919,920,898,950,966,871,933,999,1116,949,1086,996,1190,1177,1276,1093,1141,1273,1208,1407,1365,1028,1254,1322,1373,1091,1500,1307,1319,1394,1019,868,1137,1221,970,1076,1153,935,1134,1144,1020,1162,1138,1088,939,1093,1070,1168,1060,887,899,1033,919,946,856,973,953
|
||||
20,1,2197,2298,2210,2082,1821,2024,2033,2133,1774,1631,1846,1816,1490,1623,2059,1943,1624,1612,1597,1417,1318,1419,1257,1272,1330,1269,1098,946,1039,1157,1074,889,1029,1031,1065,942,870,890,868,871,845,860,860,898,885,889,919,883,875,861,880,846,838,879,942,905,902,884,916,1034,1020,1078,1037,1425,1345,1376,1366,1385,1404,1245,1177,1251,1236,1112,1417,1315,1160,1034,979,979,1212,1078,1084,1081,988,966,980,1076,1147,1119,1032,1260,1189,1158,1106,915,909,958,882,887
|
||||
20,2,2154,2215,2334,2277,2108,1932,1835,1924,1872,1829,1740,1543,1605,1614,1676,1644,1453,1381,1380,1357,1237,1327,1104,1114,1262,936,1051,1202,1149,1120,1137,998,1061,1045,954,965,966,1049,1028,912,945,984,942,971,958,947,1003,974,995,947,996,944,1074,1048,1005,1008,1106,1013,935,1009,1045,1020,1119,1068,1047,1097,1137,1081,1106,1036,1024,1047,945,991,1005,960,948,928,985,943,916,894,907,900,940,938,950,961,895,874,912,894,942,947,926,942,913,940,940,889
|
||||
20,3,2067,2140,2000,2040,1887,1764,1637,1736,1684,1663,1872,1675,1712,1659,1554,1625,1695,1645,1602,1418,1581,1523,1523,1491,1264,1121,1188,1262,1450,1443,1096,973,1308,1336,1193,1170,1097,977,1260,1052,951,1051,1299,1236,1172,1126,1139,937,1040,1036,1038,1134,1006,1101,1056,947,1032,1323,1216,974,900,1039,1011,1103,981,1064,912,1002,993,897,939,910,902,928,976,963,932,911,867,868,858,849,889,865,946,950,934,899,870,864,879,888,874,896,917,951,937,936,873,871
|
||||
20,4,1933,2132,2208,2039,1888,1889,1992,1945,1920,1540,1664,1760,1886,1769,1889,1696,1514,1124,1446,1429,1097,1402,1353,1221,1210,1136,1347,1104,945,1177,1154,1060,984,945,983,1040,1046,913,930,1065,1105,994,1027,980,941,1007,971,941,936,971,960,942,917,953,983,994,1036,1081,963,1039,1261,1416,1471,1495,1394,1490,1445,1438,1265,1351,1441,1437,1315,1368,1292,1273,1134,1025,1193,1255,1292,1271,1149,1186,1097,1144,1167,953,957,981,1012,1138,1147,1198,1017,978,1073,966,1061,900
|
||||
20,5,1922,2222,2175,2070,2155,2226,2163,2103,1923,1756,1690,1457,1637,1950,1969,1799,1640,1541,1425,1267,1393,1503,1450,1395,1286,1201,1234,1319,1037,1086,941,1105,930,908,1007,1006,1123,1190,1106,948,1002,1226,1061,878,1128,956,910,876,1138,1059,1014,979,903,1113,1234,1264,1123,1108,1179,1306,1083,1064,1152,1374,1321,1078,1149,1076,1172,1122,1015,1229,907,928,1053,1059,1165,927,1023,897,952,869,945,907,897,990,918,954,915,949,889,976,918,1038,972,955,889,996,988,882
|
||||
21,0,2297,2239,2138,2188,2287,1892,1874,1995,1846,1542,1646,1660,1818,1789,1894,1519,1391,1559,1258,1197,1252,1336,1307,1199,1284,1090,1022,971,1109,948,906,932,1057,1075,961,897,898,880,885,894,929,934,933,884,930,915,972,1125,983,969,930,1233,1075,1045,1147,1165,1290,1261,1201,950,1269,1248,1309,1343,1166,1199,1270,1342,1204,1461,1307,1295,1339,1002,1106,1019,1249,958,1100,1105,1123,1130,1247,1159,1217,897,1013,1040,1031,1081,1067,1036,1019,922,945,884,892,943,964,871
|
||||
21,1,2130,2192,2116,2002,1742,2010,1934,2066,1862,1795,1704,1677,1282,1650,1963,1598,1585,1379,1540,1269,1322,1376,1076,1165,1166,1083,1016,1043,1119,1131,978,913,978,932,996,895,901,850,871,878,890,870,888,903,897,895,904,939,923,950,919,907,927,926,920,927,920,918,992,1087,918,1067,1183,1333,1287,1276,1356,1331,1287,1193,1083,1158,1209,1134,1264,1237,1042,1159,1214,1084,1125,1051,992,1052,1000,970,1004,958,988,1075,1092,1194,1058,1030,1062,990,911,992,899,916
|
||||
21,2,2146,2194,2340,2282,2086,1913,1839,1984,1881,1789,1824,1483,1483,1529,1471,1547,1511,1438,1441,1451,1561,1250,1329,1297,1216,1064,1034,1252,1224,1034,1026,1124,1121,1061,1025,907,920,981,1062,1011,935,920,966,959,942,950,929,932,904,896,1018,935,961,938,992,1030,1220,1034,941,953,1011,1153,1107,1040,1013,1111,1083,1196,1178,1019,1086,1056,1020,962,1022,1096,951,986,1020,1027,1025,988,939,906,965,948,1040,1097,986,959,1047,926,948,950,973,1012,980,988,954,949
|
||||
21,3,2070,2144,1992,1991,1796,1751,1505,1797,1736,1695,1910,1651,1661,1706,1649,1522,1702,1558,1425,1499,1508,1516,1554,1371,1178,1230,947,1238,1443,1523,1166,1101,1164,1318,1286,948,935,1060,1103,1108,1210,1036,1233,1309,1202,1250,886,925,900,1086,1086,1067,898,932,923,923,1095,1372,1207,1160,887,1008,984,1197,968,1038,926,899,903,881,942,885,907,936,959,932,933,872,927,916,898,868,874,912,971,932,902,899,902,901,883,868,887,865,885,924,929,934,870,906
|
||||
21,4,1940,2145,2204,2043,1905,1890,2052,1937,1904,1613,1607,1654,1783,1855,1948,1604,1570,1397,1307,1542,1512,1235,1339,1130,1304,1252,1253,1309,1095,1112,995,1064,1014,1138,933,1037,1053,1090,1040,902,1022,960,914,926,954,901,868,883,897,909,909,859,872,899,892,892,1025,1069,940,1028,1205,1398,1491,1518,1458,1521,1411,1432,1258,1401,1331,1434,1264,1313,1039,1148,1156,1246,993,1264,1335,1250,985,1143,955,1188,1214,978,1074,941,968,1166,1139,1248,960,1118,1051,1037,1026,906
|
||||
21,5,1914,2225,2191,2086,2154,2231,2154,2094,1900,1803,1686,1663,1667,1994,1868,1674,1540,1464,1488,1309,1182,1460,1269,1205,1223,986,1123,1423,908,1140,1077,916,1059,1018,1150,895,945,1091,1139,980,1020,912,899,1003,1070,924,927,902,1013,1032,977,1045,979,1134,1208,1268,1111,1055,1304,1341,897,982,1149,1340,1329,1101,1277,966,1258,973,1125,1233,933,939,1191,1209,1182,885,1065,902,936,889,883,922,906,1166,923,892,925,1002,935,1065,967,958,886,893,891,913,875,877
|
||||
|
@@ -0,0 +1,132 @@
|
||||
0,0,1937,2119,2302,2174,2236,2049,1841,1936,1847,1543,1876,1867,1909,2118,1953,1598,1328,1109,1397,1205,1543,1523,1435,1303,1212,1176,973,1109,1164,975,979,1102,946,933,921,870,1048,889,1044,1068,973,1055,1161,1076,1000,1090,1445,1274,1166,1348,1401,1414,1309,1115,1037,1204,1388,1018,939,1085,1237,1177,1284,1082,1198,1116,1130,955,1268,1040,940,1232,1133,1131,1295,1300,1089,1189,924,1067,1021,1209,1180,940,963,996,910,1017,1061,973,932,910,911,916,920,919,889,853,847,930
|
||||
0,1,2018,1794,1853,2107,1990,2097,2128,1733,1639,1765,1677,1544,1718,1961,1993,1593,1311,1345,1429,1468,1353,1025,1186,1139,1169,1326,976,913,1049,953,980,984,899,877,905,908,889,941,918,903,892,904,919,932,929,935,1010,959,930,939,1026,1123,1033,1152,1122,932,1132,1042,1097,1049,1169,1035,1276,1246,1116,1302,1280,1298,1121,1460,1293,1051,1246,1285,1164,1100,1196,1164,1060,1141,987,999,1187,1033,915,927,1017,1034,894,1001,999,974,1064,1149,904,929,944,966,907,895
|
||||
0,2,2020,1933,1902,2078,1983,1837,1802,1816,1948,1938,1548,1765,1429,1672,1602,1614,1369,1508,1560,1444,1353,1115,1202,1081,1195,1101,937,870,1128,1132,1017,920,973,953,1029,891,934,880,861,888,852,876,924,939,928,923,886,856,847,876,872,889,910,945,937,923,924,1050,1048,933,1070,1353,1338,1174,1296,1414,1639,1473,1281,1094,1162,1196,1112,1245,1258,972,999,1079,1032,1272,1241,1106,1200,1248,1146,948,967,1036,1070,1240,1112,1108,1431,1477,1274,1025,1067,1020,1044,925
|
||||
0,3,1944,1900,1953,2128,1830,1983,1851,1595,1615,1632,1805,1360,1669,1417,1725,1763,1705,1353,1157,1505,1447,1256,1326,1402,1514,1228,1301,1197,1110,1190,1059,976,1071,1294,1204,1157,1189,1131,997,885,940,985,957,941,979,956,881,973,969,925,877,999,1009,1107,1020,1131,1083,963,886,1197,899,1166,1058,956,1028,1083,1061,1113,1197,906,956,1052,926,1002,1051,1012,1024,973,1150,1023,1027,975,956,893,926,969,980,918,932,900,898,916,931,961,914,1005,941,920,869,863
|
||||
0,4,2055,1913,1729,1992,1957,1938,1748,1550,1484,1603,1573,1698,1802,1842,1698,1469,1239,1259,1282,1181,1178,1434,1261,1225,1103,1141,1105,1018,986,982,1117,1071,960,951,932,974,965,1000,998,953,932,973,950,976,985,1005,990,982,1000,1000,985,979,1016,1045,1022,1048,1005,987,1041,1086,1134,1181,1286,1263,1376,1495,1462,1430,1423,1503,1439,1444,1224,1256,1308,1318,1377,1257,1167,1256,1072,1185,1048,1140,1278,1103,1242,1229,1263,1238,1164,1276,1353,1254,1245,1195,1085,996,1032,924
|
||||
0,5,1879,2123,2231,1970,1881,2106,1852,1525,1612,1515,1668,1517,1436,1820,2010,1690,1647,1465,948,1265,1460,1249,1467,1310,1445,1298,1375,1426,1064,1200,1160,979,1026,959,898,1168,1058,1001,940,1046,932,853,870,924,907,901,880,890,869,919,973,858,941,930,890,1061,1023,1201,1098,1175,1159,1449,1428,1383,1383,1560,1576,1436,1408,1231,1410,1326,1141,1098,1164,939,1265,1283,1217,1236,1135,1385,1290,1188,1054,1327,1204,1034,1256,1052,1274,1042,1452,1434,1290,1131,944,1034,942,986
|
||||
1,0,1921,2123,2303,2168,2243,2057,1822,1912,1851,1587,1870,1874,1900,2100,1981,1644,1505,1078,1316,1303,1522,1528,1328,1347,1258,1195,1084,1221,1076,1062,1092,970,951,997,1017,1006,995,957,977,1039,1029,1165,997,1184,1165,1298,1407,1394,1203,1267,1383,1375,1215,1178,1130,1302,1339,1224,1185,1118,1262,1211,1351,1127,1241,1236,1044,1000,1191,1165,961,1246,1097,1073,1161,1169,960,1075,900,920,924,1241,1170,1223,1134,1025,987,992,1063,975,999,865,883,902,976,935,914,872,871,884
|
||||
1,1,1957,1736,1819,2027,1931,2034,2053,1714,1655,1655,1592,1369,1612,1838,1849,1580,1404,987,1188,1406,1280,1041,1055,1123,1001,1122,1014,972,939,881,929,922,989,934,931,853,872,958,920,909,920,882,899,885,931,923,887,922,904,987,918,934,950,1143,1160,1117,1014,1047,999,1071,1135,1062,1059,1253,1279,1214,1223,1027,1107,1356,1360,1243,1124,1247,1146,983,1191,1224,973,958,1084,921,1083,1012,965,1052,1033,872,962,1113,1138,944,1090,1116,978,1055,897,995,863,891
|
||||
1,2,2019,1920,1924,2082,1981,1847,1810,1810,1945,1945,1567,1797,1414,1752,1494,1556,1528,1565,1524,1387,1363,1245,1171,1096,1180,974,971,1110,1074,1088,969,930,959,954,918,930,961,920,920,932,917,930,932,952,923,911,841,866,897,877,872,928,925,974,971,925,918,1088,1105,991,1246,1339,1348,1114,1046,1299,1590,1504,1313,1044,1228,1165,1219,1161,1173,1028,981,1013,967,1212,1215,1138,1026,1218,1114,1026,1101,1085,1069,1132,1163,1128,1255,1287,1160,1019,989,986,1001,921
|
||||
1,3,1924,1886,1975,2127,1841,1962,1815,1628,1628,1564,1779,1514,1697,1464,1658,1551,1513,1412,1372,1529,1421,1215,1300,1388,1518,1262,1282,1090,1215,1228,1097,998,1154,1226,1121,1093,1141,1065,942,866,988,924,934,1025,1071,933,911,936,997,890,929,967,1099,1039,955,1174,1096,919,944,1081,1088,1084,1089,931,1012,1150,952,1124,1234,915,1036,1070,1060,1097,1054,975,1039,982,1058,1000,891,1090,965,927,920,985,937,927,904,899,897,869,890,911,895,988,940,957,920,861
|
||||
1,4,2153,1992,1774,2107,2057,2008,1903,1579,1539,1763,1696,1907,2099,2120,1915,1642,1342,1321,1394,1161,1300,1596,1385,1353,1265,1266,1151,1069,991,999,1227,1165,960,971,987,1024,984,986,911,891,879,880,934,888,893,875,890,852,875,871,888,931,926,897,929,920,887,895,1052,1061,1100,1247,1308,1384,1442,1374,1416,1287,1563,1570,1589,1660,1406,1509,1441,1358,1378,1312,1373,1397,1156,1145,1100,1163,1422,1205,1325,1266,1463,1376,1201,1451,1508,1418,1386,1286,1056,934,969,929
|
||||
1,5,1885,2116,2216,1952,1913,2094,1858,1559,1561,1518,1673,1532,1352,1868,2049,1663,1660,1498,1027,1307,1478,1243,1444,1109,1422,1207,1407,1437,1145,1248,1199,908,1107,1030,976,1267,1210,1078,883,935,888,907,878,909,884,905,883,871,889,924,994,865,915,897,909,972,988,1190,981,1175,936,1458,1442,1436,1481,1533,1506,1440,1431,1014,1433,1086,1221,1152,1150,1074,1311,1345,1316,1261,1206,1309,1155,1050,1031,1151,1223,1166,1220,1071,1374,1043,1468,1521,1312,1101,964,1172,1079,1067
|
||||
2,0,1961,2138,2290,2183,2251,2080,1874,1944,1794,1547,1883,1839,1988,2173,1783,1496,1463,1413,1237,1365,1599,1577,1406,1261,979,1031,984,941,960,1037,885,1118,890,1049,940,888,932,948,886,1079,882,1066,965,936,978,950,1275,1388,1293,1348,1295,1483,1301,1100,912,1208,1371,1125,1118,1065,1064,1248,1315,1163,1163,1066,1300,1063,1178,926,1122,1215,1173,1172,1109,1231,1081,1242,1255,1053,1134,1067,913,1114,1151,1133,888,1058,1011,1188,969,918,971,866,901,892,907,858,853,867
|
||||
2,1,2036,1790,1828,2094,1983,2085,2114,1699,1479,1750,1638,1623,1659,1952,2008,1479,1235,1478,1491,1484,1398,1057,1249,1192,1105,1217,926,943,1040,989,975,1005,1007,925,928,952,943,926,937,915,879,902,942,955,929,913,965,1004,874,911,976,969,941,999,947,929,995,993,956,1026,966,908,1059,1264,1325,1246,1214,1108,1201,1414,1245,1100,1302,1263,929,1027,1118,1114,1000,1115,970,1075,1151,1002,1095,1081,988,958,1029,1137,1068,1051,1169,1216,1032,1042,983,938,934,890
|
||||
2,2,1991,1845,1852,2076,1927,1767,1860,1738,1896,1914,1635,1602,1625,1560,1758,1820,1702,1552,1456,1475,1163,1299,1292,1214,1112,1002,1041,1036,1062,1138,967,941,942,941,934,937,881,864,885,958,931,913,943,956,948,921,960,978,990,956,950,919,947,986,1009,980,948,1089,1115,995,1164,1277,1293,1203,1281,1384,1520,1389,1233,1216,1311,1091,1163,1128,1089,1012,1092,1059,1033,1172,1029,1198,1208,1209,1141,1037,1180,1007,1052,1129,932,1140,1303,1354,1192,974,996,1035,1108,922
|
||||
2,3,1932,1908,1976,2122,1828,1988,1895,1679,1320,1618,1756,1516,1604,1448,1672,1764,1692,1549,1511,1543,1509,1253,1151,1410,1535,1218,1362,1345,1036,1227,1175,1144,1159,1165,980,1130,1104,991,1041,962,968,928,938,954,919,929,926,886,1083,889,990,944,974,1028,999,1170,1090,915,969,980,1069,1097,951,1060,997,993,1150,1044,1071,1000,922,917,1055,965,964,985,1093,998,1075,939,893,880,937,899,930,946,927,896,981,895,903,925,888,979,923,975,947,940,876,869
|
||||
2,4,2142,2011,1791,2094,2086,2013,1889,1588,1704,1540,1609,1946,2072,2178,1958,1384,1392,1385,1374,1338,1152,1480,1332,1309,1126,1235,1193,1191,1125,1032,1100,989,955,1014,947,910,893,926,895,925,903,915,913,902,893,916,883,904,917,901,885,880,899,934,880,934,884,914,1038,1008,1183,1157,1214,1447,1535,1566,1544,1306,1363,1571,1768,1673,1373,1526,1434,1317,1418,1227,1307,1445,1355,1286,1287,1184,1402,1124,1327,1283,1459,1251,1373,1429,1554,1362,1370,1256,1063,978,992,968
|
||||
2,5,1870,2127,2242,2010,1869,2061,1601,1523,1676,1523,1404,1502,1488,1610,1952,1580,1676,1566,1375,1099,1387,1308,1450,1468,1394,1295,1356,1371,1271,1170,1228,1079,921,1110,1060,1275,1007,972,917,899,859,895,991,990,933,1056,867,918,913,905,873,956,990,938,885,1070,858,1061,975,1036,942,1481,1270,1414,1532,1483,1521,1566,1408,1248,1385,1256,1312,1210,962,1086,1397,1355,1350,1265,1033,1314,1306,1172,1203,1260,1006,1170,1311,1081,1487,1215,1681,1492,1149,1069,1016,1095,986,1041
|
||||
3,0,1994,2138,2298,2174,2283,2099,1921,1978,1780,1783,1895,1780,2071,2062,1773,1589,1347,1380,1408,1313,1673,1410,1105,1283,1175,1063,965,1002,1188,1054,962,1014,916,906,958,861,882,955,911,967,873,858,1117,1144,1116,1272,1194,1251,1109,1461,1251,1477,1391,1077,1089,1252,1215,1080,1148,1023,1397,1362,1121,1037,1157,1078,1379,1241,1158,1108,909,1310,1046,1234,1216,1118,1207,1186,1092,1283,1060,1173,1100,973,1032,899,878,1027,1040,1032,957,993,1029,917,887,941,936,877,851,867
|
||||
3,1,2032,1833,1779,2052,2019,2071,2077,1822,1773,1480,1761,1643,1687,1999,1985,1377,1283,1330,1064,1424,1296,1181,1042,1153,1234,975,978,1086,918,1058,923,887,941,953,1029,958,885,898,912,895,886,847,851,903,912,906,906,889,970,898,934,1023,932,979,887,878,895,880,947,891,1017,1135,953,1117,1441,1407,1272,1242,1334,1458,1381,1228,1345,1316,1220,1166,1037,1170,1176,1138,1002,1016,1101,1135,1193,963,999,936,1118,1111,1149,1177,1176,1169,1141,965,1070,1029,907,875
|
||||
3,2,1977,1783,1800,2040,1879,1746,1895,1646,1794,1884,1673,1740,1732,1558,1662,1524,1583,1550,1261,1214,1404,1515,1167,1098,1217,1187,1214,1026,933,1062,910,922,978,967,930,919,943,922,866,885,901,908,951,925,952,911,887,887,904,893,920,910,949,978,974,964,982,1024,1156,1040,1240,1196,1248,1317,1416,1385,1472,1328,1259,1182,1286,1122,1025,1086,1195,1161,1115,1068,1083,1231,1155,1142,1249,1240,1208,1124,977,1023,1163,1150,1033,1046,1280,1306,1107,973,954,945,988,930
|
||||
3,3,1929,1923,1966,2119,1844,2002,1936,1680,1597,1694,1526,1560,1581,1149,1579,1625,1559,1183,1282,1511,1450,1023,1107,1469,1467,1275,1441,1244,1246,1071,946,1093,1237,1024,977,1080,1088,939,1175,900,974,920,934,964,987,935,903,875,1134,940,895,1026,955,945,969,1122,997,1102,972,1062,1051,1182,969,974,979,1001,1222,960,878,1024,922,973,1111,1078,987,980,1033,884,982,870,914,868,991,928,964,983,956,916,897,875,885,868,895,901,926,974,938,921,871,878
|
||||
3,4,2128,2024,1807,2077,2096,1947,1892,1685,1734,1846,1785,1982,2106,2162,1943,1341,1235,1350,1377,1475,1157,1255,1081,1397,1305,1216,944,1208,1015,910,1069,1094,949,927,1006,1053,909,901,896,878,893,883,911,943,926,910,895,849,884,910,871,884,911,902,913,945,942,952,907,967,1130,1046,1279,1440,1661,1627,1572,1387,1440,1534,1726,1629,1499,1483,1405,1379,1348,1171,1223,1435,1371,1383,1357,1261,1387,1220,1114,1121,1409,1085,1350,1374,1484,1330,1305,1047,1048,1111,1154,1021
|
||||
3,5,1868,2127,2267,2081,1788,2016,1660,1576,1622,1715,1714,1553,1507,1502,1973,1435,1663,1563,1539,1456,1244,1395,1336,1549,1344,935,1310,1132,1120,943,963,1073,884,916,1073,1245,894,940,890,874,941,914,964,900,911,1077,974,902,889,881,929,951,1040,897,881,952,879,1098,1017,1135,1004,1413,1122,1373,1498,1350,1447,1508,1191,1233,1024,1265,1361,1268,1128,1168,1364,1362,1424,1305,1106,1280,1347,1032,1337,1329,1060,1221,1232,1135,1414,1265,1617,1413,1210,924,911,1045,909,923
|
||||
4,0,2004,2148,2304,2160,2274,2137,1936,1981,1760,1838,1909,1777,2060,1974,1901,1576,1452,1117,1417,1266,1639,1306,1106,1221,1261,943,1157,899,1078,900,1019,948,1075,1089,1036,892,874,930,1007,955,864,925,1091,986,1044,1198,1171,1322,1318,1358,1323,1413,1350,882,1236,1250,1253,1143,1243,1085,1296,1329,947,894,1026,1253,1366,1265,937,1158,1150,1373,1184,1003,1119,1048,1320,1257,1120,1143,1224,1177,970,956,955,1033,1108,1044,1040,912,876,955,948,995,947,912,903,879,868,902
|
||||
4,1,2022,1835,1781,2068,1998,2055,2024,1824,1794,1541,1754,1592,1760,2028,1978,1403,1501,1323,1241,1405,990,1270,1237,1032,1174,903,1093,1122,984,948,914,863,895,921,888,910,927,935,892,860,890,877,869,876,889,939,930,975,884,861,918,1019,1023,1115,1072,947,945,965,1024,1050,1119,1218,994,1234,1405,1406,1110,1089,1119,1457,1173,1205,1342,1149,1135,1106,1010,1217,1180,1132,956,910,981,1011,1215,1103,1000,935,1204,1019,1070,1270,1323,1208,1124,1067,1073,899,901,902
|
||||
4,2,1972,1806,1789,2061,1894,1709,1896,1625,1800,1877,1618,1630,1653,1597,1666,1622,1608,1556,1381,1352,1274,1344,1006,1035,1172,1119,1207,1068,928,1035,1024,913,913,1014,1003,911,884,893,880,879,913,945,952,930,997,965,1005,1044,1090,1072,1046,1009,951,1019,1064,1007,1052,1104,1188,1091,1210,1106,1182,1317,1316,1349,1404,1318,1180,1142,1216,1181,1103,1192,1151,1213,1232,1226,1139,1146,1135,1092,1170,1164,986,1041,1090,1029,1136,1111,975,1137,1264,1291,1200,1049,1050,1039,964,967
|
||||
4,3,1941,1939,1954,2118,1825,2004,1948,1692,1577,1727,1661,1536,1543,1402,1565,1537,1562,1512,1417,1453,1412,1291,1279,1465,1386,1311,1397,1281,1340,1015,1091,1112,1177,1202,940,1052,900,906,1133,874,931,1033,973,972,1091,932,936,862,1041,974,943,935,991,1006,1103,1098,1095,1099,922,858,947,1122,982,1028,984,1038,1083,1042,990,992,896,1094,1172,1004,1029,961,959,965,994,889,914,893,910,928,1013,999,973,905,880,927,871,877,902,879,881,1006,954,942,877,876
|
||||
4,4,2122,2018,1797,2060,2099,1956,1927,1683,1650,1877,1835,1989,2087,2167,1946,1429,1430,1427,1412,1420,1055,1345,1027,1374,1332,1145,1095,1226,1064,997,1113,1072,999,931,1082,1029,894,893,875,902,897,920,891,927,923,1009,948,873,927,879,919,903,918,898,913,900,904,932,931,1016,1141,1070,1234,1464,1691,1637,1560,1485,1550,1592,1788,1644,1563,1483,1388,1415,1310,1101,1325,1406,1326,1265,1365,1270,1296,1178,1143,1293,1438,1203,1432,1467,1541,1446,1389,1173,1118,1176,961,1018
|
||||
4,5,1866,2141,2283,2104,1785,1992,1671,1660,1555,1732,1760,1599,1513,1648,1983,1547,1628,1558,1495,1460,1066,1386,1359,1529,1370,1090,1379,1090,1261,995,1014,885,931,958,1111,1205,1020,907,899,982,1019,877,891,886,915,1046,929,889,928,898,937,905,911,935,923,981,919,1148,936,1179,1064,1376,1229,1396,1508,1348,1381,1605,1236,1151,1170,1241,1248,1212,1082,1086,1384,1401,1401,1399,984,1312,1396,1162,1374,1312,1109,1257,1258,1133,1468,1305,1689,1478,1278,901,941,1071,973,1003
|
||||
5,0,2006,2144,2303,2151,2284,2131,1939,1976,1763,1828,1898,1776,2054,1991,1933,1561,1491,1036,1435,1226,1652,1355,1189,1238,1203,1100,1174,900,1110,956,1090,895,1006,1065,1015,883,932,960,950,944,1039,885,886,878,882,1062,1220,1386,1319,1346,1313,1346,1307,885,1196,1328,1341,1126,1270,1168,1285,1299,955,965,1060,1166,1337,1197,1033,1175,1120,1317,1283,1022,1161,1126,1243,1283,1119,1138,1307,1146,1036,1020,1046,1114,1139,1013,903,980,886,890,889,958,919,923,898,903,911,907
|
||||
5,1,2019,1843,1765,2052,2000,2054,2017,1809,1805,1536,1739,1602,1724,1922,1864,1392,1453,1332,1190,1309,1057,1270,1245,1100,1140,985,1113,1094,1015,922,937,963,937,963,928,932,957,954,938,941,988,933,944,933,928,955,967,1034,912,927,948,1026,961,1126,1095,1005,1007,996,974,1040,1097,1166,955,1159,1301,1285,1097,1142,1287,1388,1155,1276,1238,1113,1068,1179,1003,1169,1033,1051,950,948,960,1015,1084,991,1005,934,1163,1010,1065,1201,1240,1155,1009,987,947,902,870,898
|
||||
5,2,1975,1812,1749,2051,1878,1720,1922,1640,1897,1938,1683,1652,1717,1634,1695,1715,1671,1678,1499,1458,1351,1379,1093,1204,1235,1210,1245,1066,908,966,1097,906,948,1047,1009,912,860,895,868,897,914,915,935,921,944,924,891,912,884,904,902,880,896,939,937,907,899,973,1159,1041,1310,1162,1172,1326,1496,1416,1449,1285,1174,1146,1252,1306,1069,1224,1268,1267,1190,1199,1267,1281,1191,1237,1267,1234,1076,1194,1226,1169,1180,1130,967,1188,1324,1356,1228,1095,1037,1073,915,910
|
||||
5,3,1951,1942,1964,2114,1811,2005,1962,1709,1567,1709,1702,1508,1529,1465,1523,1331,1544,1535,1418,1473,1456,1295,1294,1461,1383,1329,1365,1286,1362,1137,1148,1175,1133,1147,976,1068,861,861,967,981,982,1144,960,944,998,951,876,1092,1126,855,1012,1043,1126,1011,1133,1027,1164,905,915,861,958,1194,971,1076,1084,1101,1114,1076,931,906,1023,1186,1031,1061,1063,926,946,1034,1147,962,958,879,913,1013,1000,964,939,922,909,977,861,911,867,894,904,980,929,929,915,867
|
||||
5,4,2121,2020,1779,2060,2097,1904,1925,1652,1493,1854,1821,1995,2074,2162,1944,1560,1477,1525,1473,1387,1215,1257,1025,1344,1395,1164,1250,1199,1186,1093,1232,962,1089,1003,1018,1039,910,909,848,865,863,915,901,898,904,888,908,876,881,869,888,888,896,899,934,918,949,1012,959,925,980,1151,1174,1480,1718,1625,1598,1523,1600,1535,1791,1594,1545,1448,1320,1383,1419,1216,1303,1205,1074,1103,1373,1371,1340,1261,1331,1269,1423,1247,1504,1507,1610,1511,1474,1344,1190,1089,973,1023
|
||||
5,5,1845,2071,2195,2035,1698,1925,1686,1665,1526,1641,1741,1544,1444,1611,1893,1472,1519,1443,1367,1445,1117,1372,1278,1469,1334,1083,1326,1042,1238,1080,1112,925,955,948,1099,1187,998,965,900,991,955,925,946,890,954,926,912,971,965,917,956,989,945,956,1052,1089,1003,1169,1116,1107,1134,1357,1357,1350,1476,1345,1421,1543,1320,1142,1346,1177,1190,1147,1292,1157,1345,1305,1163,1312,1257,1296,1324,1168,1019,1186,1007,1219,1207,1228,1329,1171,1625,1408,1178,1126,1046,976,1014,997
|
||||
6,0,1991,2126,2297,2176,2280,2090,1946,1976,1799,1747,1866,1736,2013,2061,1723,1563,1497,1368,1309,1384,1629,1470,1262,1302,1238,876,1035,865,1067,1147,947,1147,1100,983,895,903,884,888,877,861,898,945,1108,1167,1040,1026,1279,1406,1206,1413,1331,1379,1252,1087,1248,1223,1379,950,867,948,1142,1318,1102,1043,1052,1210,1396,1272,1012,948,1066,1343,1087,1044,1250,1076,1335,1211,1215,1238,1024,1250,1099,964,918,1037,993,963,1059,875,863,961,889,921,894,890,930,885,871,846
|
||||
6,1,2014,1828,1773,2024,2023,2055,2057,1733,1686,1379,1690,1582,1594,1912,1918,1292,1206,1339,1265,1402,1354,1147,980,1211,1239,939,972,1045,919,1046,1030,955,971,966,907,928,874,857,886,924,890,888,920,962,931,926,964,944,926,868,918,1000,974,1023,1118,1080,1060,947,1073,1068,1046,1167,1139,1154,1294,1289,1151,1065,1054,1415,1095,1013,1283,1237,1219,1196,1153,1114,1073,1110,1001,926,992,1014,1065,920,941,942,1115,973,1039,1152,1210,1156,901,917,981,946,851,912
|
||||
6,2,1974,1843,1850,2068,1891,1680,1955,1657,1816,1929,1678,1766,1774,1675,1654,1465,1591,1558,1203,1280,1413,1523,1171,1106,1220,1194,1175,1133,975,1053,945,1037,1060,1008,916,930,938,910,900,890,909,898,958,938,955,911,882,901,929,935,947,927,940,975,1021,1006,910,1026,1187,1074,1332,1056,1064,1218,1444,1445,1474,1375,1249,1222,1250,1234,1115,1188,1250,1279,1231,1231,1149,1272,1194,1125,1243,1253,1105,1138,1142,1030,1123,1112,949,1173,1319,1374,1248,1119,995,1007,910,911
|
||||
6,3,1938,1940,1974,2131,1805,1979,1963,1725,1561,1692,1579,1670,1596,1249,1673,1572,1549,1275,1254,1541,1498,1211,1139,1507,1486,1224,1466,1293,1177,989,1021,1149,1199,1038,961,983,900,905,1124,903,873,938,1028,993,943,902,924,889,1008,916,899,1035,1046,966,1035,1059,1151,951,1017,892,923,1157,942,1046,965,1054,1225,1051,971,915,882,1082,979,1195,1092,927,967,947,1108,906,1124,896,946,944,978,1023,965,909,882,964,900,900,902,897,891,983,952,953,872,866
|
||||
6,4,2119,2024,1799,2073,2099,2059,1911,1683,1787,1803,1705,1978,2106,2166,1960,1471,1396,1340,1307,1452,1309,1359,1350,1417,1214,1236,1215,1225,1163,911,1096,1090,924,902,975,910,913,985,929,892,887,893,947,911,870,934,883,883,912,892,861,936,895,904,881,884,890,1004,932,964,1062,1103,1223,1448,1617,1664,1645,1526,1477,1676,1717,1620,1536,1466,1434,1417,1454,1256,1269,1297,1148,1162,1360,1311,1435,1260,1353,1205,1460,1208,1474,1433,1579,1459,1430,1308,1154,1092,1036,944
|
||||
6,5,1872,2134,2294,2098,1821,2050,1774,1492,1566,1672,1714,1548,1478,1681,1966,1496,1677,1584,1473,1438,1077,1353,1391,1522,1241,1156,1318,1107,1035,1119,960,865,921,966,950,1127,983,1032,885,1001,948,866,949,930,897,1016,903,855,900,915,907,895,999,897,865,1071,1087,1246,1062,944,1119,1408,1182,1384,1409,1452,1374,1615,1208,1363,1309,1321,1164,909,1198,1026,1369,1318,1256,1384,1032,1330,1405,1222,1267,1147,1033,1126,1324,1007,1444,1279,1705,1525,1124,1015,1166,1200,1116,1049
|
||||
7,0,1950,2121,2298,2177,2243,2076,1838,1910,1807,1524,1853,1828,1888,2109,1988,1625,1504,950,1373,1249,1574,1626,1289,1312,1253,1152,1034,1237,934,1045,1093,1053,899,948,908,895,944,896,876,905,1007,1019,1011,1265,1202,1265,1361,1221,1301,1288,1432,1490,1123,1032,1221,1235,1238,1121,1028,1171,1267,1127,1332,1031,1260,999,974,1092,1023,1199,1189,1295,1202,1218,1054,1066,1115,1303,1073,1148,1141,1218,1236,1267,1121,974,935,921,1094,893,956,899,905,989,940,865,920,928,886,902
|
||||
7,1,2031,1815,1858,2065,2005,2092,2131,1728,1593,1799,1617,1418,1702,1956,1992,1560,1409,1340,1359,1479,1325,1128,1123,1190,1155,1153,927,1001,968,992,902,882,944,919,969,890,880,942,859,880,878,876,876,894,913,902,899,868,904,912,1037,1022,919,1068,1141,958,879,1129,1077,1022,1083,971,1054,1251,1068,1367,1245,1301,1241,1402,1352,1195,1255,1329,1042,1041,1250,1262,1025,1098,1133,969,1100,1036,991,965,930,933,897,1169,1152,883,1069,1251,1018,970,892,956,904,876
|
||||
7,2,1988,1858,1918,2088,1942,1762,1877,1744,1923,1931,1580,1769,1540,1699,1465,1510,1379,1521,1515,1493,1396,1364,1127,1107,1211,959,983,1027,1154,1167,972,999,1035,967,1009,856,944,963,920,905,884,888,908,958,934,891,900,877,895,880,893,873,900,927,939,913,881,1069,1123,1038,1256,1090,1319,1207,1342,1421,1576,1466,1262,1349,1318,1258,1163,1157,1214,1077,1196,1103,1242,1165,1158,1026,1188,1271,1159,995,1097,977,977,1067,1116,1094,1384,1451,1293,1066,1125,1068,1079,972
|
||||
7,3,1899,1910,1998,2130,1836,1939,1861,1619,1434,1559,1827,1359,1746,1599,1594,1585,1643,1548,1452,1501,1448,1103,1315,1364,1406,1215,1220,1170,1109,1135,1062,1169,1016,1084,1005,1066,999,887,871,907,931,944,917,928,977,984,954,942,1017,927,909,950,950,1036,972,1056,1059,1052,948,945,943,1099,1089,947,1074,1119,1007,1078,1159,914,1037,932,1068,1143,1002,955,941,971,869,897,890,910,923,937,925,975,948,940,946,853,929,877,892,912,896,934,935,941,892,888
|
||||
7,4,2054,1924,1722,1993,1998,2012,1808,1449,1567,1572,1533,1725,1813,1879,1720,1487,1014,1290,1275,1254,1133,1384,1315,1259,1124,1225,1164,1022,965,1000,1081,1185,954,910,938,1033,1018,894,963,947,931,919,944,1008,1010,986,959,945,938,933,936,876,905,955,931,898,911,890,1027,1022,1070,1132,1257,1271,1364,1248,1418,1305,1518,1472,1409,1539,1419,1444,1409,1330,1290,1210,1205,1301,1209,1034,1054,1216,1345,1251,1232,1160,1323,1302,1059,1289,1405,1364,1278,1241,1052,921,1009,959
|
||||
7,5,1878,2125,2257,2028,1923,2101,1823,1605,1613,1395,1628,1543,1473,1831,2059,1739,1661,1457,1359,1245,1400,1330,1497,1209,1461,1152,1508,1409,1283,1254,1032,1063,1272,952,1082,1177,1203,1085,984,977,900,916,908,908,937,911,893,860,901,931,1067,863,921,958,947,1027,1223,1276,1070,1157,1096,1449,1463,1436,1466,1603,1499,1410,1468,1249,1470,1096,1319,1148,1286,1185,1208,1382,1355,1151,1207,1296,1293,1199,1148,1160,1255,1215,1113,1138,1347,1007,1424,1552,1338,1174,989,1155,1053,1019
|
||||
8,0,1982,2136,2291,2183,2262,2084,1893,1948,1743,1664,1838,1794,1981,2168,1869,1519,1453,1299,1273,1342,1602,1547,1452,1103,1158,1072,1068,917,868,945,991,1226,1029,1076,1034,894,870,1028,907,1037,981,1118,954,1197,1069,1123,1263,1390,1196,1377,1349,1383,1073,971,897,1248,1241,1018,1222,996,1256,1264,1224,957,1255,1010,1345,1187,1074,1229,1226,1192,1051,1267,1024,1176,1249,1331,1167,1105,959,1188,1192,1079,964,964,859,979,1032,1088,926,906,887,875,943,894,900,862,960,881
|
||||
8,1,1931,1743,1745,1965,1925,1980,2008,1669,1520,1622,1601,1551,1553,1822,1915,1423,1278,1467,1442,1461,1422,1060,1229,1215,1112,1107,946,934,1022,954,902,932,1048,951,918,896,870,893,923,909,909,892,910,897,945,910,969,867,904,1009,1077,908,1011,1033,1053,1017,950,938,909,905,1081,963,1082,1034,1306,1333,1245,1155,1142,1394,1339,1123,956,984,1109,1149,1080,1124,950,984,932,1043,996,1080,1092,893,859,924,983,1195,965,1064,1105,1220,969,1004,905,933,957,923
|
||||
8,2,1986,1841,1860,2078,1926,1789,1899,1708,1877,1898,1643,1605,1666,1642,1728,1810,1673,1544,1344,1405,1308,1328,1212,1250,1105,1017,1031,993,1120,1161,992,951,940,927,948,948,906,931,920,982,921,904,932,898,900,857,927,903,915,895,904,904,930,974,968,939,909,978,1155,1096,1343,1256,1234,1296,1401,1365,1465,1407,1167,1340,1365,1200,1136,1243,1161,1111,1213,1247,1203,1235,1112,1050,1198,1100,1162,1214,1144,1169,1268,1191,1150,1230,1328,1344,1187,984,1071,1041,1104,892
|
||||
8,3,1887,1920,1982,2129,1849,1971,1905,1654,1431,1620,1747,1643,1635,1516,1580,1754,1706,1565,1509,1563,1531,1299,1365,1462,1489,1169,1310,1319,1122,1122,1153,1110,993,1237,1073,1245,1119,905,1084,913,871,949,982,983,997,911,904,866,973,879,885,960,929,1024,1001,1106,1046,1069,961,1017,930,999,1061,1081,975,988,1219,1087,1035,1002,891,1074,1137,1006,973,940,966,926,917,919,891,938,941,918,1023,992,924,888,935,889,909,898,876,938,917,992,956,923,886,900
|
||||
8,4,2138,2022,1800,2099,2085,2069,1900,1577,1739,1536,1581,1959,2063,2162,1952,1484,1286,1324,1366,1290,1149,1449,1387,1311,1054,1163,1322,1154,1144,986,922,1088,1017,966,965,870,942,886,932,876,914,926,905,910,976,915,922,937,959,942,976,991,940,930,994,967,970,1048,997,1047,1222,1025,1194,1421,1575,1570,1566,1354,1345,1366,1641,1671,1512,1440,1386,1381,1415,1213,1134,1345,1294,1213,1259,1200,1364,1294,1236,1178,1387,1240,1153,1317,1445,1327,1222,998,1012,938,1054,1014
|
||||
8,5,1886,2121,2260,2054,1904,2080,1685,1536,1638,1480,1342,1456,1479,1640,1987,1650,1698,1563,1492,1400,1211,1335,1482,1430,1309,1192,1359,1250,1066,1166,1193,1055,973,979,1109,1148,1103,974,883,901,877,972,1012,1066,896,1112,973,899,935,1001,964,934,1043,934,940,1092,967,1025,1043,1078,1040,1450,1380,1392,1494,1475,1506,1498,1340,1296,1308,1199,1358,1238,1184,1187,1306,1423,1426,1163,1044,1198,1291,1110,1274,1344,1129,1004,1229,1134,1386,1299,1578,1433,1123,1167,1010,1081,919,858
|
||||
9,0,2019,2155,2296,2189,2273,2102,1936,1983,1660,1867,1833,1782,2092,2123,1806,1553,1438,1297,1400,1290,1691,1458,1157,1229,1091,1071,1066,1022,1117,1121,935,976,969,1037,897,943,890,868,998,919,975,975,1033,1209,1106,1177,1329,1307,1112,1437,1321,1400,1301,1104,1288,1208,1296,1056,1017,1119,1219,1276,1150,1253,1097,1181,1343,1282,891,879,1126,1275,1147,1083,1306,1094,1324,1191,1138,1222,1136,1267,1138,906,931,1010,948,1036,979,939,876,954,899,969,916,875,960,910,882,901
|
||||
9,1,2036,1841,1875,2109,2026,2053,2093,1852,1809,1451,1827,1691,1657,1989,1991,1435,1329,1199,1105,1415,1363,1140,1058,970,1021,964,953,952,888,944,902,1040,892,907,918,876,881,870,863,881,883,902,915,962,900,907,997,870,894,909,1011,1055,1028,1099,1097,981,932,1117,1228,1009,1060,1147,1178,1136,1432,1429,1248,1182,1179,1443,1034,1085,1301,1218,1238,1238,1174,1171,1123,900,905,933,1035,1012,1074,1059,978,914,1170,1070,1016,1195,1180,1143,885,928,1058,931,837,863
|
||||
9,2,1976,1853,1830,2075,1890,1874,1861,1707,1774,1941,1675,1780,1740,1572,1632,1222,1512,1521,1173,1135,1335,1443,1256,1200,1117,1136,1157,1104,1003,1030,914,911,1003,1029,914,934,907,874,952,958,916,934,949,960,1032,975,964,905,995,964,979,978,949,1053,1053,1022,1051,1089,1142,1067,1272,1292,1172,1211,1351,1369,1459,1278,1222,1235,1254,1204,1005,1029,1073,1033,1149,1207,1081,1199,975,931,1060,1187,1079,1085,1058,1131,1156,1075,917,1146,1295,1300,1164,1072,914,971,944,927
|
||||
9,3,1940,1927,1925,2125,1850,1986,1945,1547,1509,1554,1656,1677,1638,1236,1635,1563,1651,1471,1266,1500,1421,1387,1512,1454,1161,954,1222,1201,910,1016,996,1057,1014,954,1003,1039,1130,1252,1036,952,952,973,1097,1038,993,1045,909,983,1005,934,950,1030,916,1005,977,1071,1005,951,1070,1114,1014,1150,1016,1035,1032,954,1206,970,927,1022,919,905,900,993,1014,920,1001,913,1092,930,1066,931,1060,914,939,961,919,865,889,952,957,902,906,923,917,957,905,897,862,866
|
||||
9,4,2121,2016,1806,2071,2028,2137,1906,1629,1821,1678,1580,1978,2071,2174,1924,1164,1399,1417,1283,1469,1220,1358,1343,1361,1064,1137,1179,1200,1068,945,1168,1058,983,932,999,1051,951,1045,912,879,900,871,909,885,893,1001,891,898,904,841,895,938,894,908,948,950,969,1043,1050,992,1226,1046,1330,1501,1646,1611,1552,1446,1494,1502,1732,1601,1538,1416,1445,1412,1414,1123,1274,1341,1144,1317,1284,1134,1229,1251,1181,1167,1322,1254,1244,1335,1426,1242,1217,1081,1080,1009,1040,1019
|
||||
9,5,1895,2127,2284,2075,1913,2086,1885,1533,1616,1573,1627,1238,1305,1628,1969,1505,1670,1520,1418,1414,1359,1405,1479,1498,1188,1252,1442,1335,1018,1171,1144,930,930,1077,942,1088,874,886,864,982,911,923,996,923,893,1045,989,895,981,942,938,882,915,1041,911,1058,907,1130,1023,1054,1088,1443,1060,1398,1586,1359,1424,1538,1314,1295,1064,1241,1440,1241,1138,1172,1324,1450,1345,1268,1052,1290,1417,1074,1375,1401,1018,1018,1278,1173,1401,1351,1691,1523,1077,973,1009,1110,891,971
|
||||
10,0,2023,2159,2288,2185,2283,2098,1931,1957,1652,1869,1823,1797,2113,2118,1934,1452,1306,1117,1484,1152,1649,1393,1290,1244,1197,1068,1109,956,1180,1084,1079,1104,995,935,955,907,919,989,922,931,1023,1022,970,1110,1063,1238,1274,1356,1224,1373,1348,1288,1249,1099,1253,979,1162,920,1001,1150,1189,1280,1006,1191,1234,1201,1304,1302,1074,1149,1106,1279,1301,1039,1095,1149,1278,1240,1106,1239,1201,993,908,993,1027,1082,1003,1028,929,1059,879,898,884,1011,925,880,874,940,869,870
|
||||
10,1,2037,1861,1888,2095,2038,2043,2077,1878,1851,1456,1837,1659,1696,2012,2017,1523,1388,1256,1282,1349,1337,1212,1134,1042,1104,1062,902,949,921,902,868,1057,919,896,882,866,853,868,891,892,924,859,915,881,883,889,927,943,933,942,966,1015,1035,1104,1105,939,955,1148,1135,969,1081,1165,1101,1051,1313,1349,1172,1218,1148,1369,1003,989,1236,1253,1235,1131,1138,1167,996,950,998,939,1024,934,994,964,910,956,1163,987,1071,1233,1213,1020,910,900,941,963,887,885
|
||||
10,2,1972,1862,1774,2076,1886,1877,1889,1717,1827,1957,1721,1738,1788,1490,1744,1703,1656,1668,1395,1391,1321,1464,1169,1052,1282,981,1268,1039,1152,958,902,943,930,994,903,888,908,921,960,938,919,925,953,980,971,917,889,891,929,933,967,943,951,979,937,948,925,1021,1112,1172,1247,1204,1015,1208,1377,1451,1465,1225,1316,1304,1269,1295,1044,1172,1239,1323,1332,1202,1180,1267,991,1043,1147,1314,1118,1161,1168,1278,1228,1117,1048,1346,1474,1450,1299,1154,996,968,942,988
|
||||
10,3,1953,1945,1921,2120,1850,1989,1964,1567,1521,1547,1689,1652,1625,1360,1639,1688,1662,1434,1357,1495,1407,1296,1483,1395,982,919,1317,1281,1121,1103,1089,1021,1012,994,998,996,948,1125,1050,919,922,911,941,1011,1060,1023,1076,908,1008,898,926,890,925,1001,1078,1101,1184,985,989,1070,986,1134,990,1068,1010,1100,1210,1052,871,1104,911,1141,1069,990,996,942,1020,939,1161,908,1087,917,908,924,963,951,979,900,900,894,883,883,900,910,906,950,951,946,872,870
|
||||
10,4,2119,2017,1816,2055,2007,2115,1929,1702,1827,1790,1747,1992,1972,2044,1849,1457,1418,1409,1329,1416,1176,1331,1185,1256,1042,1079,967,1238,1065,932,1079,1136,1002,974,1106,1055,978,938,979,937,948,955,970,1001,1012,1030,1011,981,1020,1035,1020,976,1065,1073,1075,1067,1071,1061,1038,1076,1272,1240,1228,1446,1589,1573,1506,1414,1451,1401,1571,1456,1426,1237,1363,1352,1346,1149,1276,1261,1083,1198,1239,1036,1116,1186,1278,1184,1255,1187,1324,1339,1420,1286,1279,1181,913,945,905,905
|
||||
10,5,1899,2117,2289,1995,1870,2005,1898,1619,1582,1646,1731,1449,1432,1571,1885,1439,1584,1429,1226,1339,1386,1386,1365,1421,1241,1236,1411,1193,1124,1178,998,874,930,986,1059,1093,1013,926,911,1042,930,915,864,989,973,981,990,952,975,1045,1157,1042,920,1021,1076,1110,996,1182,1086,1026,1140,1288,1336,1351,1519,1389,1277,1478,1420,1110,1302,1252,1016,1055,1056,1258,1387,1316,1146,1291,1193,1314,1301,1160,1178,1157,1019,1172,1165,1053,1317,1241,1619,1446,1143,1044,1054,976,1003,977
|
||||
11,0,2022,2158,2286,2181,2282,2102,1923,1950,1645,1854,1758,1710,2025,2005,1873,1447,1368,1082,1441,1115,1559,1381,1254,1124,1196,1151,1119,1010,1222,944,1036,1097,922,946,956,1004,893,979,983,936,941,899,881,1068,980,1123,1341,1386,1244,1358,1327,1243,1213,1076,1214,1120,1191,1071,1019,1177,1291,1327,954,1084,1227,1269,1354,1317,1098,1093,1046,1238,1206,1113,1058,1152,1243,1205,963,1090,1299,1009,1056,1156,1026,1079,930,1053,887,1030,902,853,906,1003,889,881,867,890,933,867
|
||||
11,1,1972,1816,1832,2018,1982,1985,2006,1826,1811,1416,1737,1600,1630,1908,1903,1463,1331,1274,1262,1282,1285,1169,1139,1091,1005,985,889,976,916,914,891,988,901,928,850,881,884,893,924,882,893,882,912,922,961,883,947,999,935,941,946,943,960,1033,1134,959,951,1148,1084,1091,1005,1110,970,1148,1239,1239,1205,1186,1142,1271,973,982,1158,1207,1178,1106,1102,1183,1006,960,957,907,971,913,931,967,901,956,1132,1006,1086,1159,1175,949,905,940,964,926,889,907
|
||||
11,2,1975,1835,1777,2069,1867,1875,1903,1688,1828,1957,1747,1707,1783,1522,1748,1704,1642,1692,1490,1412,1249,1419,1110,1081,1272,958,1221,1070,1111,890,900,914,993,993,923,906,915,884,946,900,939,924,926,960,955,903,896,882,873,868,903,885,913,923,967,962,948,930,1107,1157,1290,1253,1192,1246,1417,1410,1411,1231,1292,1315,1261,1318,1094,1237,1236,1265,1233,1112,1175,1242,1076,1035,1038,1249,1066,1087,1054,1177,1171,1069,975,1244,1361,1346,1243,1065,953,960,909,864
|
||||
11,3,1948,1946,1916,2126,1836,1981,1968,1350,1480,1495,1686,1637,1617,1395,1667,1673,1610,1475,1370,1469,1387,1306,1464,1448,1086,1026,1339,1310,1112,1082,1110,1086,1022,1006,985,1016,997,1129,1018,870,900,906,965,960,1117,1113,1130,916,1036,923,966,949,1013,1029,1062,1068,1206,953,969,1016,957,1017,960,1020,953,1072,1190,1058,965,1074,921,1218,1104,941,952,987,999,1021,1157,939,1050,921,928,950,991,949,957,911,882,915,874,849,901,903,898,934,947,915,878,892
|
||||
11,4,2118,2002,1824,2052,2027,2108,1937,1710,1817,1817,1782,1995,2054,2170,1939,1509,1470,1491,1356,1458,1210,1386,1237,1290,1043,1055,1031,1271,1070,884,1042,1085,1054,987,1106,1053,1047,971,877,868,877,872,896,920,924,937,911,875,877,883,873,903,874,893,915,897,902,947,918,928,1143,1237,1277,1492,1706,1635,1599,1527,1551,1514,1752,1617,1516,1247,1461,1484,1362,1102,1295,1369,1264,1332,1324,1173,1245,1190,1402,1215,1406,1254,1421,1463,1550,1391,1411,1286,1016,938,900,966
|
||||
11,5,1894,2124,2296,2085,1889,2068,1913,1637,1579,1682,1784,1550,1458,1648,1985,1432,1654,1490,1313,1402,1403,1428,1413,1469,1287,1298,1442,1097,1084,1154,1018,913,873,1021,1065,1042,1070,894,929,1030,939,889,846,987,952,981,958,926,864,1004,1095,967,885,1014,1063,1047,1022,1198,1113,1050,1053,1306,1345,1354,1538,1406,1279,1542,1459,983,1362,1172,976,1099,1247,1229,1376,1363,1137,1299,1256,1404,1354,1210,1219,1222,1100,1181,1183,1117,1358,1284,1695,1468,1223,937,971,1054,1138,1007
|
||||
12,0,2006,2148,2272,2211,2251,2074,1932,1967,1617,1778,1662,1680,2097,2167,1725,1577,1490,1386,1416,1280,1650,1554,1407,1262,1090,1180,916,1137,1062,961,1030,1008,1058,1046,996,922,877,860,853,905,1129,906,1058,1033,1133,950,1394,1450,1231,1410,1246,1359,1268,1145,1300,1319,1449,1197,1017,1036,1288,1310,1140,1086,973,1098,1408,1292,1034,1059,910,1287,1126,1159,1272,1255,1241,1176,1121,1113,1117,1321,1088,1122,1014,921,908,976,946,904,942,979,917,874,877,911,867,895,885,912
|
||||
12,1,2041,1854,1902,2064,2027,2034,2100,1833,1840,1508,1813,1616,1584,2002,1992,1563,1485,1211,1148,1424,1450,1104,1052,1165,1022,1065,951,965,1032,938,951,985,936,946,948,925,941,928,928,941,966,919,913,905,942,906,924,1013,958,996,916,888,1027,1067,1087,1096,898,922,1054,967,1084,1169,1222,1244,1270,1271,1208,1311,1224,1348,1173,1186,1186,1267,1211,1139,1193,1158,1045,1046,1086,1030,964,1068,1042,934,977,1028,1179,1127,978,1097,1122,1105,899,893,982,936,906,916
|
||||
12,2,1990,1886,1850,2075,1888,1869,1918,1751,1766,1929,1706,1779,1703,1547,1724,1401,1531,1596,1326,1313,1347,1470,1316,1067,1091,1188,1161,1098,1022,1139,933,903,953,981,921,1021,989,906,888,900,934,899,896,1006,920,911,869,914,902,919,920,932,937,950,959,967,966,983,1049,1032,1287,1285,1283,1280,1458,1412,1402,1234,1305,1322,1314,1273,1209,1095,1158,1215,1288,1249,1198,1249,1157,987,1157,1167,1178,1136,1136,1090,1216,1143,969,1141,1366,1385,1265,1188,961,977,929,910
|
||||
12,3,1922,1941,1942,2137,1842,1968,1945,1575,1617,1608,1723,1703,1644,1319,1674,1588,1620,1506,1158,1468,1354,1361,1493,1505,1038,977,1157,1356,1070,1009,946,1132,1000,1225,1114,1236,1039,1044,1134,887,1001,901,916,1004,1057,965,958,1019,1061,892,1002,1027,915,1027,1120,1131,1113,1024,953,951,973,986,945,929,965,1070,1195,966,1115,1019,937,1084,998,960,937,1042,1022,1041,974,965,1047,975,945,910,934,965,946,916,886,999,878,865,896,899,908,973,942,923,885,872
|
||||
12,4,2114,2013,1828,2078,2032,2185,1930,1653,1841,1667,1529,1975,2085,2188,1949,1275,1472,1374,1147,1375,1236,1318,1365,1346,993,1050,1263,1251,1075,1042,1204,979,1050,929,953,1044,922,979,879,902,928,903,924,896,905,929,941,948,944,930,929,937,958,941,968,961,966,962,1024,1015,1099,1137,1198,1442,1538,1633,1593,1522,1419,1520,1657,1618,1499,1316,1472,1454,1445,1097,1181,1329,1219,1228,1294,1193,1304,1216,1104,1214,1400,1217,1340,1427,1514,1358,1248,1163,1124,987,1090,1135
|
||||
12,5,1885,2125,2297,2078,1979,2115,1923,1508,1529,1398,1663,1325,1326,1698,1987,1613,1700,1517,1326,1438,1380,1355,1493,1409,901,1236,1399,1312,1197,1251,1112,1072,1107,903,1113,1182,1182,1038,882,940,883,935,1029,892,892,940,876,857,919,1004,904,884,957,1023,954,1062,1003,1228,1160,937,1056,1470,1284,1368,1498,1471,1523,1580,1245,1301,1234,1322,1300,1193,1038,1274,1356,1406,1364,1370,1137,1369,1464,1137,1292,1332,1043,1184,1282,1105,1394,1319,1695,1510,1143,972,958,1109,1112,1071
|
||||
13,0,1973,2138,2250,2249,2216,2061,1826,1767,1702,1659,1804,1616,2056,2080,1847,1646,1550,1277,1318,1213,1527,1552,1407,1225,1097,1020,1001,1204,919,1138,944,1048,982,893,868,930,875,911,932,942,1180,1090,1109,1160,1143,1124,1151,1418,1270,1258,1426,1407,1342,1244,1203,1343,1452,1303,1175,1034,878,1271,1291,969,1242,1153,1139,1169,1132,1003,1201,1109,1205,995,995,1238,1252,1321,1029,1101,1085,1347,1070,944,953,1108,881,901,1022,1105,1002,965,957,919,874,901,880,931,892,927
|
||||
13,1,2060,1837,1905,1942,1884,1960,2046,1739,1482,1594,1491,1429,1583,1931,1900,1476,1455,1318,1244,1390,1332,1107,1119,1301,1205,1219,968,968,926,1006,935,952,1008,958,913,930,894,890,918,865,899,887,929,901,903,904,964,958,910,1061,930,928,959,1012,1055,1029,1030,905,961,987,1115,1076,1141,1210,1034,1261,1247,1029,946,1364,1362,1014,935,1150,1131,1248,1114,1128,1183,1085,1038,1064,1132,1186,1100,956,1174,916,1043,1171,1071,1010,1016,965,911,970,938,911,1006,876
|
||||
13,2,1938,1850,1866,2018,1877,1822,1796,1742,1805,1814,1541,1680,1603,1487,1709,1520,1440,1398,1319,1343,1393,1402,1275,1148,1308,1135,965,1050,1150,1072,1025,983,955,907,964,859,884,902,891,910,891,895,940,922,955,922,902,912,944,939,965,937,935,987,991,985,939,985,1112,1054,1274,1110,1176,1245,1249,1274,1469,1481,1234,1386,1300,1240,1211,1219,1207,1076,1308,1239,1075,1013,1241,1101,1074,1143,1159,1192,1221,1163,1181,1044,1149,1081,1273,1409,1249,1110,1167,1165,1026,968
|
||||
13,3,1857,1917,1973,2141,1911,1917,1891,1751,1712,1456,1893,1393,1710,1623,1729,1558,1498,1560,1477,1486,1443,1333,1463,1379,973,1153,980,865,980,1199,1204,1005,970,1125,1067,1053,902,987,915,893,1019,1019,948,920,933,893,903,861,1138,999,920,893,928,1106,950,1104,915,1028,972,1036,872,1079,1078,950,1136,1141,1152,1094,1186,921,1090,1071,1080,951,950,962,945,951,989,876,885,900,983,892,956,992,991,913,944,886,923,878,874,936,922,1039,937,898,880,901
|
||||
13,4,2129,2014,1804,2108,2039,2226,1973,1711,1720,1709,1698,1981,2019,2173,1957,1425,1205,1247,1214,1246,1192,1409,1276,1321,1187,1242,1284,1170,1010,1002,1195,1247,1127,946,989,920,887,956,905,901,927,957,874,882,883,951,883,925,895,946,939,941,964,984,944,1010,991,996,956,978,993,1099,1231,1338,1406,1487,1536,1464,1460,1435,1567,1638,1540,1502,1290,1344,1061,1222,1295,1368,1260,1158,1334,1279,1258,1379,1275,1163,1362,1361,1088,1317,1403,1341,1268,1004,1111,1069,1090,942
|
||||
13,5,1884,2104,2276,2010,2086,2159,2010,1758,1611,1555,1663,1543,1515,1892,2113,1771,1678,1304,1439,1279,1415,1398,1536,1200,1475,1134,1462,1121,1223,1032,917,1072,1208,895,1036,1245,1119,1053,1012,901,922,917,958,937,957,921,928,923,1003,937,980,928,1022,1011,998,924,1037,1090,1126,1015,1053,1396,1441,1349,1436,1531,1417,1475,1492,1131,1356,1216,1228,1360,1202,1355,1327,1298,1417,1215,1064,1117,1175,1070,1256,1231,1153,1187,1051,1277,1279,1089,1372,1544,1311,1138,1030,1072,968,858
|
||||
14,0,2011,2160,2273,2208,2253,2070,1915,1970,1698,1794,1688,1672,2076,2182,1599,1558,1452,1422,1033,1284,1627,1517,1290,1059,1237,1219,984,949,863,1006,939,1080,938,1070,885,909,897,990,946,960,991,1207,956,1048,959,935,1279,1380,1219,1417,1353,1435,1276,984,1165,984,1272,977,1043,1054,1134,1246,1331,1092,1243,1047,1356,1168,1167,1074,1071,1042,1012,987,1155,1293,1106,1276,1123,1142,965,1283,1233,1053,1080,1039,913,885,1039,984,880,865,969,949,969,910,957,894,921,929
|
||||
14,1,2041,1855,1904,2084,2019,2048,2129,1817,1784,1579,1768,1569,1595,1928,1961,1560,1468,1390,1354,1435,1470,1083,1070,1155,1085,943,988,1075,928,960,943,903,959,876,887,928,914,849,911,888,915,870,882,895,952,905,908,929,891,899,1006,972,894,908,985,936,950,916,907,946,1207,1030,1071,1171,1285,1387,1318,1314,1230,1459,1359,1087,1299,1382,1238,1042,1283,1152,1214,980,980,1097,1136,1130,1008,1003,993,974,1016,1160,978,902,1029,1176,905,913,953,938,872,897
|
||||
14,2,1966,1859,1851,2090,1900,1866,1859,1782,1778,1902,1661,1676,1715,1686,1795,1754,1639,1519,1111,1133,1261,1431,1284,1286,1241,1109,1069,1028,1039,1153,1016,945,933,942,959,960,903,878,874,871,889,915,888,929,936,916,873,901,895,859,879,888,899,898,936,904,899,976,1143,1083,1232,1154,1172,1086,1327,1349,1576,1456,1138,1429,1288,1270,965,1205,991,1298,1275,1281,1033,1266,1189,1069,1107,1001,1100,1206,1033,1017,1248,1163,1011,1256,1421,1449,1252,1184,1112,1107,937,888
|
||||
14,3,1892,1929,1946,2135,1885,1953,1925,1674,1713,1575,1832,1629,1593,1491,1224,1654,1657,1449,1398,1451,1388,1169,1439,1452,1075,902,1035,1175,1115,1093,873,1029,1000,1240,1133,1266,1037,916,938,898,1026,987,941,973,976,940,869,930,1017,938,1035,1025,929,1185,1019,1162,984,1061,973,898,957,1122,940,967,1068,983,1118,916,1127,916,967,1078,892,927,968,961,976,906,1046,908,888,919,1019,903,1052,967,957,944,946,915,922,911,875,891,922,981,949,939,872,839
|
||||
14,4,2129,2022,1809,2083,2033,2067,1845,1536,1678,1532,1561,1891,1934,2064,1848,1397,1237,1291,1115,1290,1301,1430,1424,1333,1122,1161,1342,1308,1002,977,1091,1106,1001,987,992,971,941,988,922,982,989,933,949,940,994,1006,923,938,968,933,919,912,889,908,943,968,941,960,972,932,1077,1061,1155,1361,1511,1511,1526,1270,1212,1125,1611,1656,1394,1421,1354,1286,1301,1210,1169,1317,1352,1210,1252,1249,1301,1269,1213,1167,1415,1317,1189,1325,1504,1363,1301,1104,1021,990,1074,1023
|
||||
14,5,1891,2110,2278,2041,2027,2125,1905,1525,1569,1358,1317,1477,1448,1713,2019,1692,1722,1546,1410,1476,1321,1365,1529,1374,1271,1174,1344,1195,1001,1210,1182,1197,1205,911,1127,1196,1129,1126,944,868,888,916,1009,898,936,1045,938,947,951,970,1007,980,1084,926,944,918,1026,929,1174,1152,1053,1436,1296,1420,1425,1478,1542,1470,1430,1164,1368,1094,1256,1338,1199,1334,1328,1379,1472,1276,961,1241,1311,1046,1176,1334,1223,1011,1222,1192,1378,1185,1510,1468,1262,977,982,902,1017,871
|
||||
15,0,2018,2158,2285,2188,2275,2086,1944,2002,1584,1816,1756,1769,2093,2144,1814,1553,1414,1288,1423,1294,1676,1477,1366,1264,1123,1135,933,1112,1164,913,1057,1068,999,926,874,1072,931,911,926,994,873,944,988,972,1028,1196,1216,1356,1011,1438,1246,1436,1368,1124,1257,1125,1318,936,957,1036,1301,1316,1278,1147,1218,1154,1357,1245,961,937,958,1291,1232,1262,1223,1192,1269,1198,1132,1169,1003,1022,1052,893,1015,1143,1132,1006,993,1083,960,946,878,992,954,864,905,890,895,888
|
||||
15,1,2034,1866,1881,2075,2046,2049,2103,1825,1855,1443,1823,1636,1634,2000,2011,1564,1469,1037,1099,1372,1406,1176,1019,974,1049,921,873,934,898,936,867,1020,917,936,971,874,860,858,864,879,899,867,906,907,948,887,869,869,894,884,895,975,992,1034,925,1046,981,995,1206,980,935,1206,1148,1106,1409,1400,1222,1295,1209,1412,1187,1247,1297,1227,1254,1204,1128,956,1146,985,1045,1077,960,1125,1110,959,933,1113,1010,1040,1112,1130,976,1134,883,1008,999,957,907,931
|
||||
15,2,1978,1859,1834,2079,1882,1871,1906,1731,1761,1940,1708,1772,1743,1510,1727,1369,1561,1614,1315,1374,1333,1482,1228,1096,1223,1140,1219,1107,1045,1127,911,871,924,952,922,939,921,911,869,871,861,881,891,963,940,882,873,914,885,860,884,884,910,922,936,933,946,992,1134,1125,1179,1004,1040,1088,1451,1412,1489,1244,1137,1141,1326,1327,1259,1272,1058,1252,1269,1204,1062,1373,1200,1007,1088,1140,1081,1043,981,1098,1234,1102,950,1191,1481,1475,1297,1180,1099,1029,928,967
|
||||
15,3,1919,1938,1945,2132,1860,1969,1945,1560,1571,1561,1668,1696,1633,1378,1680,1547,1641,1404,1007,1496,1393,1350,1483,1509,1140,1001,1277,1329,946,1042,1065,1114,1018,1224,1047,1237,924,967,1169,925,1021,905,987,1016,1051,949,939,965,981,906,942,1068,908,1121,1080,1158,1150,1057,1060,912,963,1147,932,950,978,1068,981,1013,956,1036,983,1120,1191,1011,986,972,1062,925,1171,1106,1039,873,950,920,925,943,1007,890,887,909,888,880,905,945,875,948,945,938,914,894
|
||||
15,4,2121,2026,1807,2065,2039,2140,1908,1651,1837,1706,1584,1985,2084,2179,1946,1350,1407,1439,1234,1482,1206,1329,1249,1309,980,1177,1195,1238,1056,889,1142,1068,913,954,1079,1033,974,1013,856,881,960,920,913,889,879,936,927,929,971,950,943,955,953,968,1003,1000,977,923,1080,1009,1160,1103,1110,1417,1563,1580,1526,1473,1494,1495,1751,1678,1433,1351,1466,1396,1464,1068,1198,1245,1233,1210,1251,1083,1115,1134,1266,1241,1400,1269,1410,1426,1567,1359,1375,1217,1016,1050,954,932
|
||||
15,5,1887,2122,2287,2061,1939,2096,1913,1574,1566,1598,1707,1306,1286,1605,1999,1478,1694,1525,1398,1450,1397,1381,1466,1475,1224,1283,1386,1209,1058,1241,1111,970,926,932,1123,1020,1094,1022,928,964,910,907,936,886,889,1042,977,861,892,918,947,892,980,913,952,915,949,1011,1129,976,1238,1442,1270,1352,1512,1182,1404,1581,1271,1355,1349,1234,1258,1148,982,1256,1382,1371,1285,1361,1003,1389,1471,1210,1255,1330,1000,1188,1217,1089,1384,1368,1710,1537,1097,1008,1118,901,982,1032
|
||||
16,0,2023,2152,2293,2174,2291,2098,1952,2001,1704,1854,1829,1817,2080,2123,1930,1388,1439,1176,1452,1181,1656,1357,1270,1133,1227,1056,1106,957,1226,933,1069,1086,1076,906,903,1003,874,912,948,1064,909,904,910,985,1083,1224,1248,1373,1127,1407,1211,1401,1367,1106,1294,1257,1191,1099,1229,1008,1330,1317,1202,1145,1205,1235,1318,1245,1135,1057,978,1261,1185,1008,1142,964,1271,1128,1031,1133,1181,1123,1157,1115,1010,1085,1013,948,932,1010,933,906,905,961,890,913,866,860,936,891
|
||||
16,1,2041,1840,1864,1966,1925,1946,1959,1761,1778,1459,1735,1557,1617,1917,1944,1542,1425,1202,1314,1307,1326,1162,1144,992,1019,963,1039,974,917,997,919,1043,914,904,904,923,910,907,941,906,932,922,895,929,986,912,918,915,920,924,908,1081,972,1002,911,985,985,1125,1191,911,1107,1196,1011,1122,1375,1309,1059,1214,1168,1371,1053,1122,1275,1187,1080,1054,1046,1134,1063,1017,1132,1031,1013,1038,1122,1078,924,988,1070,1084,1133,1122,1036,1038,950,996,923,911,904,941
|
||||
16,2,1979,1828,1794,2076,1892,1843,1817,1626,1740,1851,1678,1682,1706,1481,1687,1563,1566,1588,1348,1365,1239,1395,1013,1040,1237,1021,1249,1007,1063,983,943,911,909,946,916,929,953,868,903,924,916,917,940,959,933,961,953,937,915,918,924,935,946,940,974,944,978,1054,1189,1129,1159,1251,1267,1262,1395,1343,1408,1279,1205,1155,1279,1212,1257,1202,1120,1253,1340,1238,1077,1364,1267,1129,1079,1151,1144,1091,1030,1147,1195,1135,1030,1182,1415,1434,1269,1163,1065,1007,965,962
|
||||
16,3,1939,1945,1930,2128,1849,1981,1958,1426,1458,1552,1632,1666,1635,1350,1677,1630,1586,1280,1307,1453,1388,1325,1419,1459,1279,1047,1304,1309,1016,1011,1068,1081,1061,1088,984,1102,893,940,1146,943,979,909,964,951,936,979,967,912,1053,908,943,1109,914,1165,1078,1167,1129,968,1079,923,918,1177,1041,1089,953,1018,1025,1065,942,973,896,1122,1097,980,959,974,1114,1067,1125,1068,962,872,963,965,945,985,935,914,902,917,889,913,899,953,902,956,938,900,875,871
|
||||
16,4,2118,2024,1815,2056,2035,2090,1912,1693,1822,1723,1666,1914,1960,2059,1864,1419,1397,1431,1281,1445,1177,1296,1129,1249,1076,1149,1051,1204,999,912,1104,1082,961,1009,1107,1031,973,967,893,912,888,937,897,912,906,952,960,932,953,975,952,945,954,970,998,968,925,953,1078,1005,1119,1128,1265,1468,1593,1594,1527,1519,1568,1605,1725,1664,1400,1432,1451,1346,1372,1182,1100,1211,1217,1185,1240,1110,1174,1128,1163,1143,1307,1279,1350,1362,1457,1277,1304,1171,1000,1006,1016,957
|
||||
16,5,1876,2123,2291,2077,1861,2076,1888,1573,1595,1690,1745,1491,1415,1597,2013,1412,1659,1496,1387,1457,1407,1448,1449,1506,1301,1281,1378,1179,877,1088,1014,941,935,897,1073,917,1088,1008,880,1009,910,927,960,929,907,1043,911,894,878,897,911,866,916,1005,909,886,957,1063,1289,1311,1264,1401,1385,1404,1509,1343,1285,1628,1298,1247,1348,1117,1263,1046,1101,1284,1404,1386,1348,1334,1124,1363,1424,1192,1158,1346,1112,1115,1218,987,1357,1341,1639,1482,1117,980,1061,876,1016,943
|
||||
17,0,2031,2158,2301,2158,2293,2108,1945,1983,1724,1880,1863,1844,2086,2131,2003,1617,1578,1054,1481,1138,1611,1351,1308,1207,1189,1121,1163,1145,1179,1023,1184,940,1008,951,880,924,876,858,917,853,889,1087,977,984,1046,979,1251,1406,1308,1388,1274,1392,1391,1057,1244,1122,859,1165,1171,1136,1306,1243,1082,943,1119,1166,1384,1246,1261,1017,914,1256,1160,1021,1017,1126,1245,1156,953,1188,1318,1146,1184,1176,1043,910,935,1042,1127,1052,951,872,902,959,920,952,883,907,926,876
|
||||
17,1,2047,1845,1861,2098,2033,2053,2059,1844,1874,1520,1818,1623,1668,2012,2020,1647,1468,1401,1407,1290,1234,1232,1263,952,931,1027,1070,1057,890,959,880,1044,931,982,902,877,869,880,896,879,882,861,957,935,920,898,927,934,1072,929,948,1060,994,1120,961,1036,963,1202,1143,995,1217,1135,986,1161,1364,1372,1203,1317,1157,1456,1107,917,1210,1231,1076,1132,1177,1283,992,1088,1047,1007,1026,1081,985,1179,931,915,1228,1126,1182,950,1174,958,1128,1158,986,951,912,945
|
||||
17,2,1997,1861,1737,2058,1910,1879,1895,1671,1843,1943,1721,1662,1782,1582,1754,1693,1628,1692,1482,1419,1288,1295,1017,1064,1320,1099,1302,1124,1085,908,985,916,1031,1067,936,907,920,883,885,888,897,884,916,934,917,903,897,870,882,883,897,893,936,928,918,912,926,1089,1269,1276,1130,1273,1203,1259,1414,1358,1357,1285,1309,1362,1381,1203,1221,1117,1157,1269,1309,1175,1142,1395,1323,1137,1063,1132,1217,1146,996,1146,1201,1110,1020,1235,1463,1481,1329,1205,1131,1028,991,1002
|
||||
17,3,1953,1941,1897,2124,1859,1993,1974,1327,1490,1500,1703,1621,1601,1424,1609,1669,1572,1521,1462,1503,1373,1269,1400,1457,1271,986,1352,1269,1277,1054,1101,1000,1111,986,988,1033,900,996,1091,885,883,945,968,989,1087,1039,1073,956,962,866,952,944,988,1182,1146,1233,1140,1107,1061,887,869,1196,1029,1052,1021,1023,991,1118,966,971,946,1007,1085,906,1037,1063,929,1104,1104,1017,940,904,963,997,1034,947,976,921,902,957,963,903,901,953,921,956,921,907,878,874
|
||||
17,4,2119,2007,1833,2045,2005,2065,1945,1687,1751,1783,1778,1953,1884,1974,1822,1483,1428,1427,1342,1440,1105,1290,1241,1283,1124,1113,1149,1126,922,893,995,1051,979,1007,1158,1064,953,904,909,884,858,895,920,925,925,958,940,953,984,980,978,979,974,979,977,987,938,934,1057,1054,1092,1214,1316,1361,1593,1526,1469,1467,1523,1562,1659,1597,1398,1311,1417,1260,1157,1224,1182,1029,1226,1110,1288,1195,1119,1238,1184,1308,1324,1134,1320,1394,1434,1267,1332,1178,1052,1101,989,1083
|
||||
17,5,1892,2120,2290,2077,1821,2082,1906,1618,1621,1695,1769,1517,1493,1588,2009,1314,1608,1465,1342,1419,1421,1490,1420,1457,1270,1273,1361,984,936,1020,879,870,929,935,1048,1036,1142,986,928,969,985,1006,951,980,944,1008,915,895,913,989,1073,933,945,1066,950,1030,967,961,1266,1236,1155,1429,1380,1425,1406,1336,1375,1639,1175,1194,1348,1047,1232,1081,1194,1189,1332,1407,1349,1232,1227,1334,1314,1131,1089,1328,1188,1096,1072,1111,1332,1229,1532,1377,1208,1004,890,1067,964,914
|
||||
18,0,2021,2147,2294,2145,2301,2110,1931,1990,1766,1852,1863,1851,2094,2161,2052,1679,1633,1435,1463,1429,1592,1380,1324,1251,1052,1179,1110,1106,1198,968,1100,1199,1098,920,1001,948,872,879,884,878,1007,988,976,917,931,1136,1161,1427,1302,1351,1346,1318,1281,1127,1113,1107,1026,1241,1088,1236,1260,1115,1009,1071,1093,1047,1342,1106,1319,1213,1049,1267,1242,1027,1090,1053,1314,1114,1084,1129,1263,1203,1250,1064,1071,906,893,1009,1077,1015,886,902,919,936,908,1045,870,900,920,860
|
||||
18,1,2042,1841,1805,2055,2032,2036,2034,1880,1910,1608,1690,1547,1486,1898,1880,1592,1434,1371,1349,1306,1276,1261,1284,982,1059,1044,1058,1071,933,922,861,1064,905,961,883,873,966,911,895,867,892,890,895,905,904,897,948,1025,951,903,977,921,987,1065,979,976,1060,1148,936,974,1094,976,1169,1190,1283,1271,1300,1365,1319,1435,1037,1083,1141,989,1165,1092,1088,1160,976,1129,870,971,1141,1105,937,966,910,985,1203,1138,1217,968,1201,1003,1118,949,940,979,872,923
|
||||
18,2,1994,1825,1735,1988,1846,1747,1870,1642,1818,1880,1707,1492,1689,1564,1669,1587,1527,1616,1472,1385,1400,1028,1138,1199,1298,1286,1226,1006,1135,982,965,958,1038,1015,934,970,973,881,918,938,981,1016,977,990,988,975,938,940,961,961,932,906,939,963,978,982,1011,1072,1041,1265,1249,1361,1362,1344,1382,1388,1281,1278,1397,1344,1249,1224,1276,1099,1225,1194,1244,1069,1104,1302,1271,1036,1138,1229,1158,1184,1032,958,1129,1162,928,1144,1405,1404,1215,1147,1112,1067,1012,956
|
||||
18,3,1947,1946,1915,2124,1849,1974,1982,1529,1453,1561,1780,1603,1541,1414,1651,1622,1278,1482,1340,1412,1398,1303,1320,1509,1388,1214,1288,954,1250,1008,1198,1005,935,1072,982,1048,880,958,1000,891,912,941,952,945,998,953,1027,902,1093,880,1072,1048,999,1037,1150,1169,1127,1070,982,943,959,1256,1092,1135,1128,1007,1054,1143,1094,1093,967,1068,1111,908,1030,949,956,929,1030,1065,995,1011,1074,971,1124,945,969,924,906,1070,932,870,913,986,931,941,941,929,895,889
|
||||
18,4,2099,2012,1818,2055,2053,2104,1979,1709,1753,1819,1821,2015,2032,2167,1962,1509,1556,1543,1477,1477,1112,1391,1269,1370,1161,1095,1288,1064,998,1090,1116,1112,991,1088,1154,1039,1039,939,1023,893,871,857,884,985,895,904,884,918,880,862,868,909,885,880,892,929,918,977,1088,1071,993,1272,1397,1516,1725,1645,1575,1582,1610,1597,1720,1664,1502,1300,1428,1275,1018,1129,1126,1046,1359,1262,1233,1251,1125,1363,1330,1361,1380,1140,1424,1383,1469,1236,1305,1213,1161,972,1077,1148
|
||||
18,5,1877,2131,2303,2120,1763,2043,1860,1600,1473,1695,1793,1595,1515,1652,2002,1535,1583,1549,1420,1397,1396,1449,1355,1490,1362,1302,1216,1206,1272,1247,1189,949,881,1018,1077,1004,1191,987,903,1061,965,957,853,876,883,863,843,914,884,938,973,887,910,1037,885,945,883,924,1127,1023,1098,1342,1380,1510,1410,1355,1438,1633,1308,1415,1358,1035,1439,1281,950,1122,1317,1443,1348,1149,1225,1239,1334,1196,1174,1385,1264,1012,1252,1096,1388,1250,1623,1447,1251,1010,1016,997,961,880
|
||||
19,0,2018,2145,2302,2131,2303,2105,1916,1983,1764,1864,1855,1853,2102,2189,2068,1681,1631,1455,1461,1429,1606,1353,1331,1285,1155,1168,1081,1119,1197,967,1117,1193,1040,926,899,876,914,1091,936,901,989,1034,951,1074,915,1176,1240,1392,1108,1312,1411,1360,1233,922,1164,1069,1219,1184,1141,1225,1077,1236,1203,957,1241,1163,1318,1112,1220,1127,1030,1247,1104,1086,896,1118,1269,1251,1126,1121,1233,1234,1299,1106,854,1115,903,969,1057,955,868,983,902,965,1018,1002,915,973,949,884
|
||||
19,1,2035,1836,1838,2096,1989,1917,1902,1814,1839,1548,1666,1592,1449,1918,1890,1590,1404,1386,1389,1372,1369,1309,1308,1021,1004,1102,1096,1106,1041,959,916,1039,909,1028,925,922,935,905,891,916,915,910,903,928,896,889,871,937,961,900,986,1010,896,897,952,956,1049,1100,905,1099,1210,1057,1181,1202,997,984,1328,1380,1425,1474,1242,1294,1308,1096,1146,1150,1168,976,1018,981,990,1047,1136,971,1149,1150,1043,1072,1122,1081,1158,1084,1208,1112,1004,905,945,886,865,920
|
||||
19,2,1981,1820,1787,2055,1896,1851,1924,1732,1890,1954,1746,1563,1769,1695,1729,1599,1584,1669,1523,1358,1390,1014,1223,1244,1277,1325,1234,1061,1166,1099,972,1069,1047,1029,926,901,895,867,924,880,913,900,930,927,944,910,885,879,884,947,955,964,954,965,988,1004,988,1047,1159,1231,1139,1244,1276,1262,1144,1286,1293,1178,1336,1279,1135,1258,1243,1174,995,1140,1200,1090,1133,1170,1108,984,1085,1189,1056,1209,998,981,1111,1164,1049,1179,1324,1260,1180,1118,1047,943,907,905
|
||||
19,3,1965,1953,1920,2119,1835,1993,2001,1488,1535,1554,1795,1608,1568,1404,1619,1485,1188,1469,1370,1453,1437,1331,1263,1458,1352,1180,1295,931,1286,1150,1164,1013,965,979,919,1003,1005,1062,1035,933,952,981,1039,985,956,932,1049,961,1061,905,1034,1001,1011,1047,1145,1121,1215,1033,933,1028,1002,1201,1043,1068,1106,971,927,1057,926,930,882,900,1099,935,1009,949,947,916,865,857,878,1002,975,1053,1007,1021,936,929,860,1020,890,895,900,925,908,935,939,920,871,868
|
||||
19,4,2112,2010,1817,2041,2040,2078,1977,1719,1725,1822,1833,2028,2043,2173,1963,1459,1551,1528,1512,1473,1114,1385,1276,1393,1092,1170,1340,1086,996,1089,1164,987,1059,1036,1174,1052,987,937,960,925,891,928,926,918,997,945,883,898,911,892,909,875,911,932,926,905,873,958,994,1153,1200,1316,1421,1495,1692,1568,1614,1595,1589,1593,1733,1625,1608,1325,1125,1403,1427,1387,1386,1062,1066,1055,1287,1255,1255,1302,1320,1347,1457,1280,1413,1598,1564,1365,1437,1261,1137,1103,976,1168
|
||||
19,5,1896,2129,2296,2080,1758,2032,1892,1596,1525,1668,1774,1595,1572,1598,1970,1409,1542,1565,1482,1345,1425,1438,1261,1472,1334,1300,1099,1247,1177,1224,1208,943,989,1044,1149,1113,1110,1004,904,979,1001,940,911,886,873,871,964,938,877,979,910,883,888,938,934,893,1098,957,1288,1240,1230,1312,1456,1500,1351,1528,1543,1601,1416,1423,1428,1115,1053,1057,1318,1362,1349,1346,1350,1284,1186,1292,1302,1170,1270,1310,974,1207,1119,1200,1440,1115,1720,1503,1304,935,1099,1200,1028,919
|
||||
20,0,2020,2146,2303,2134,2305,2104,1916,1945,1745,1884,1856,1854,2103,2189,2068,1663,1620,1448,1474,1442,1595,1345,1318,1255,1033,1193,1040,1092,1233,929,1120,1217,1075,915,871,897,859,1106,1026,982,963,941,1033,1187,923,1205,1267,1378,1143,1308,1398,1386,1252,990,1256,1083,1297,1246,1127,1234,1118,1223,1207,927,1249,1063,1347,1119,1212,1141,996,1197,1122,1090,1009,1155,1289,1279,1111,1194,1275,1200,1308,982,923,1076,914,945,1114,899,882,879,934,1009,956,992,939,960,935,888
|
||||
20,1,2043,1841,1857,2098,1997,1915,1912,1812,1830,1535,1680,1595,1460,1926,1910,1627,1399,1334,1379,1330,1345,1320,1316,1024,1071,1126,1069,1049,1031,941,914,1047,909,991,877,898,1018,896,901,920,890,907,956,945,938,911,875,894,977,905,921,1055,908,930,903,939,1085,1107,996,1137,1147,1186,1254,1269,1053,1001,1274,1335,1428,1475,1278,1272,1229,1109,1070,1161,1163,1000,968,1004,987,1019,1150,1111,1227,1157,1027,1073,1158,1105,1212,1079,1231,1151,955,884,902,890,890,900
|
||||
20,2,1984,1826,1805,2048,1896,1845,1941,1734,1879,1957,1746,1555,1755,1700,1743,1618,1547,1668,1504,1335,1411,1022,1238,1254,1281,1317,1248,1031,1182,1040,958,1058,1032,1012,950,899,911,880,866,897,925,911,969,933,939,901,893,882,877,879,874,914,961,1020,996,1034,955,1050,1122,1252,1203,1102,1158,1295,1363,1357,1309,1204,1362,1317,1121,1256,1226,1180,1133,1244,1130,1039,1147,1110,1091,1038,1158,1242,1024,1243,1037,1009,1119,1194,1156,1183,1293,1265,1148,1118,1039,952,895,896
|
||||
20,3,1972,1952,1901,2116,1838,1988,2004,1555,1502,1588,1805,1637,1555,1399,1638,1528,1326,1463,1415,1504,1390,1358,1277,1447,1339,1162,1225,978,1304,1193,1178,945,984,998,923,1011,886,981,1029,975,919,902,953,938,932,943,1043,978,1121,920,1029,958,1072,934,1091,1057,1141,952,958,972,894,1084,1072,995,1052,971,1014,935,1079,895,877,895,1084,990,924,940,927,925,926,936,897,902,964,980,941,961,928,952,897,1011,918,879,901,887,876,894,921,920,920,879
|
||||
20,4,2108,2007,1822,2039,2040,2083,1981,1712,1738,1823,1820,2021,2033,2164,1962,1443,1561,1531,1487,1503,1293,1405,1295,1362,1139,1135,1354,1018,1040,1169,1135,1072,1104,1108,1127,1050,924,895,898,900,883,887,901,939,983,970,978,889,912,927,911,888,930,897,890,878,901,1010,1113,1137,1168,1246,1371,1529,1713,1593,1610,1517,1538,1452,1677,1553,1584,1428,1121,1379,1390,1348,1393,1061,1160,1142,1318,1312,1292,1315,1245,1358,1501,1320,1382,1543,1554,1352,1424,1295,1164,1156,942,1170
|
||||
20,5,1904,2129,2302,2087,1758,2033,1893,1602,1545,1679,1779,1579,1587,1611,1966,1513,1559,1582,1454,1385,1401,1448,1241,1461,1354,1252,1191,1227,1218,1222,1181,905,877,956,1084,1028,1134,870,855,874,890,962,888,919,883,904,871,896,894,914,845,858,907,892,1067,937,1066,1018,1167,1276,1391,1344,1425,1450,1401,1535,1522,1602,1479,1484,1400,1098,906,991,1274,1426,1312,1320,1361,1295,1171,1312,1328,975,1263,1291,934,1243,1122,1267,1447,1149,1727,1511,1288,957,1118,1196,1100,938
|
||||
21,0,2022,2152,2305,2124,2301,2106,1901,1935,1752,1870,1854,1851,2119,2202,2080,1632,1629,1481,1449,1480,1593,1341,1275,1305,1065,1201,950,969,1214,963,1062,1243,1155,965,855,874,989,1045,999,898,858,883,1067,1197,1112,1174,1213,1332,1284,1261,1370,1380,1240,991,1239,1044,1177,1277,1133,1262,1281,1220,1125,973,1163,1196,1340,1035,1250,1192,1068,1121,877,902,1007,1068,1319,1188,1065,1221,1303,1176,1273,911,901,1077,1032,1134,970,892,882,901,913,949,875,981,926,981,900,869
|
||||
21,1,2048,1823,1842,2100,1990,2011,2014,1888,1913,1578,1726,1614,1480,2027,1937,1637,1453,1335,1378,1338,1357,1302,1309,1067,1028,1095,1119,1063,1031,988,968,1066,894,997,931,906,951,878,922,902,923,930,902,905,936,915,898,874,965,905,996,1069,907,893,907,943,1062,1017,997,990,1074,1016,1241,1183,1210,1025,1275,1336,1393,1436,1312,1248,1076,1062,1000,1174,1109,1028,923,922,1125,1044,1068,1170,1196,1135,1058,1099,1212,1179,1218,1049,1254,1193,1071,889,894,888,913,883
|
||||
21,2,1987,1832,1804,2048,1901,1850,1946,1720,1883,1957,1752,1572,1750,1733,1761,1620,1652,1703,1510,1254,1406,1034,1236,1278,1340,1365,1277,1042,1187,1052,999,1056,1045,978,924,915,929,905,881,911,938,913,927,911,977,937,960,943,932,971,926,934,978,1006,1006,1000,970,1113,1000,1230,1366,1365,1279,1173,1129,1375,1332,1346,1414,1345,1139,1220,1192,1255,1027,1232,1318,1133,1071,1221,1158,1066,1226,1190,1007,1124,997,1050,1100,1187,1139,1245,1365,1292,1144,1040,1022,935,935,1009
|
||||
21,3,1978,1954,1902,2116,1850,1981,2004,1611,1472,1609,1821,1622,1550,1407,1645,1497,1291,1452,1400,1492,1397,1368,1248,1455,1364,1170,1205,970,1304,1204,1137,983,1034,1032,947,954,921,927,1012,997,871,895,946,981,986,926,1089,945,1136,871,1024,925,1074,999,1120,1100,1113,879,934,879,863,1085,1086,956,1011,950,985,902,1162,914,894,893,992,891,1069,946,949,942,986,919,903,908,1014,926,900,974,952,920,876,953,912,871,926,970,882,947,949,943,895,850
|
||||
21,4,2102,1997,1830,2038,2037,2075,1985,1721,1733,1814,1823,2024,2032,2158,1960,1424,1553,1533,1509,1495,1257,1406,1252,1355,1127,1134,1371,1008,973,1157,1172,1118,1129,1101,1127,1041,934,941,883,858,901,894,898,901,973,991,920,891,873,893,948,871,887,926,891,882,875,1004,1080,1138,1178,1253,1371,1492,1660,1579,1659,1584,1515,1377,1715,1557,1584,1436,1291,1394,1320,1341,1379,1099,1157,1164,1167,1346,1309,1239,1175,1456,1489,1242,1400,1592,1546,1390,1409,1304,1271,1233,937,1195
|
||||
21,5,1896,2132,2298,2081,1759,2028,1878,1614,1527,1662,1774,1567,1570,1625,1959,1522,1528,1584,1467,1376,1415,1453,1260,1462,1374,1275,1130,1251,1261,1221,1208,896,888,989,1038,1143,1152,943,850,864,903,906,934,1022,895,858,868,890,886,926,865,923,890,893,1012,913,1087,1060,1056,1352,1379,1417,1412,1450,1452,1525,1471,1581,1463,1480,1375,994,1187,1211,1320,1428,1287,1323,1325,1209,1275,1334,1336,916,1328,1351,1000,1250,1111,1286,1428,1167,1723,1504,1268,979,986,1086,1038,924
|
||||
|
@@ -0,0 +1,3 @@
|
||||
# cm n_trace nch ch3 ch3_rate cap_frac action
|
||||
0 13 3 X 0.2307692308 0.6389854775 MOVE_UP
|
||||
1 13 4 O 0.7692307692 0.5477886956 MOVE_UP
|
||||
|
@@ -0,0 +1,201 @@
|
||||
# best<TAB>cm,nch,ch3,hit,tot,cap|... (cap=nan 가능 · best=- 는 재부착)
|
||||
3 0,1,X,6,6,0.5|1,3,O,0,1,0.5043|2,1,X,1,1,0.5|3,2,O,11,11,0.5
|
||||
0 0,2,O,1,1,0.7523|1,1,O,5,6,0.5
|
||||
0 0,4,O,0,1,0.5|1,3,X,1,1,0.5|2,2,X,0,1,0.5
|
||||
1 0,4,X,5,6,0.5|1,3,O,0,1,0.5|2,1,O,0,1,nan
|
||||
0 0,4,O,0,0,0.3646|1,1,O,0,0,0.5|2,4,X,6,6,0.8704|3,1,X,5,6,0.5
|
||||
1 0,3,O,6,11,0.1022|1,3,O,9,11,0.6024|2,1,X,6,11,0.5
|
||||
- 0,1,X,4,11,0.5009|1,0,X,2,6,0.2937
|
||||
1 0,3,X,0,0,nan|1,2,O,0,1,0.1872|2,1,O,4,6,0.5|3,0,O,4,11,0.5|4,4,X,6,11,0.5
|
||||
0 0,4,O,1,6,0.5
|
||||
0 0,3,O,4,11,0.4301
|
||||
1 0,2,X,1,1,0.5|1,4,O,4,11,0.6481|2,0,O,1,11,0.5|3,3,O,0,0,nan|4,3,O,0,0,nan
|
||||
0 0,3,O,1,1,nan|1,4,X,0,0,nan
|
||||
2 0,1,O,1,1,0.5|1,4,O,0,1,0.6467|2,2,O,1,1,0.5|3,0,O,7,11,0.5595|4,3,O,0,0,0.3441
|
||||
2 0,1,X,1,1,nan|1,1,X,11,11,0.5|2,0,O,2,6,0.5
|
||||
0 0,4,O,6,6,0.7561|1,3,X,0,1,nan|2,0,O,2,6,0.5
|
||||
- 0,0,X,6,11,0.5|1,4,X,0,0,0.8669|2,3,X,1,1,0.5
|
||||
2 0,1,O,0,0,nan|1,4,O,2,6,0.7495|2,2,O,10,11,0.2726|3,4,O,0,0,0.5
|
||||
0 0,2,O,6,11,0.5|1,0,X,1,1,0.3374|2,0,X,0,1,0.5|3,2,O,4,6,0.7666
|
||||
3 0,0,O,11,11,0.5|1,1,O,7,11,0.5|2,0,O,1,6,nan|3,1,O,1,1,0.5|4,4,O,0,0,0.5
|
||||
1 0,4,O,0,0,nan|1,3,O,1,1,0.5|2,4,X,2,6,nan|3,3,O,6,6,0.5
|
||||
0 0,4,O,1,1,0.551|1,2,X,4,6,0.5|2,0,O,9,11,0.5
|
||||
0 0,4,O,3,6,0.212|1,4,O,0,11,0.2505|2,3,O,2,11,nan|3,4,X,2,6,0.2563
|
||||
1 0,1,X,1,1,0.5|1,3,O,0,0,0.1525
|
||||
2 0,3,O,0,1,0.5|1,4,X,11,11,0.5|2,1,O,10,11,0.5|3,2,O,1,11,0.5|4,3,O,2,6,0.5
|
||||
- 0,3,X,5,6,0.7826|1,4,X,1,11,nan
|
||||
0 0,4,O,0,11,0.5
|
||||
1 0,2,X,0,0,0.5|1,3,O,5,6,0.5|2,3,O,0,0,0.4853|3,1,X,1,1,0.5
|
||||
- 0,3,X,1,1,0.5
|
||||
0 0,2,O,9,11,0.5715|1,2,O,0,0,0.5
|
||||
2 0,0,O,0,1,0.5|1,0,X,5,6,0.5|2,4,O,0,11,nan
|
||||
3 0,3,X,0,0,0.5|1,0,O,0,0,0.5|2,4,X,0,0,nan|3,2,O,0,1,0.5|4,0,X,0,11,0.5
|
||||
1 0,4,X,0,0,nan|1,0,O,1,1,0.0813|2,1,X,5,11,0.291|3,1,O,0,6,0.5
|
||||
1 0,1,X,0,0,0.5|1,0,O,9,11,0.5
|
||||
2 0,2,O,0,0,0.2137|1,0,O,0,0,nan|2,0,O,1,1,0.5|3,1,O,0,1,0.5
|
||||
2 0,3,O,0,1,0.8864|1,2,X,1,1,0.5|2,4,O,0,6,0.4515
|
||||
4 0,1,O,0,6,nan|1,2,O,3,11,0.5|2,3,O,0,1,0.9495|3,0,X,5,6,0.5|4,4,O,1,1,0.5
|
||||
2 0,0,O,6,11,0.5|1,1,O,3,11,nan|2,2,O,10,11,0.3559|3,2,X,2,6,nan|4,2,O,1,1,0.5
|
||||
1 0,1,O,1,1,0.5|1,3,O,6,6,nan
|
||||
0 0,0,O,4,11,0.5|1,4,X,1,1,0.5
|
||||
0 0,1,O,0,0,0.5|1,0,O,0,0,nan
|
||||
- 0,3,X,0,6,0.5
|
||||
0 0,3,O,0,0,0.4641
|
||||
1 0,2,O,4,6,0.5|1,3,O,0,0,0.5|2,0,X,0,0,nan
|
||||
0 0,4,O,0,1,0.174|1,4,X,5,6,0.5
|
||||
0 0,4,O,5,6,nan|1,1,X,0,0,0.5
|
||||
1 0,1,X,1,11,0.5|1,3,O,0,0,nan
|
||||
0 0,4,O,0,1,0.6288|1,0,X,1,6,0.6891|2,2,X,7,11,0.5
|
||||
1 0,3,X,0,1,nan|1,1,O,1,6,nan
|
||||
1 0,0,X,0,0,0.5|1,1,O,0,0,0.5|2,4,X,1,1,0.3084
|
||||
0 0,2,O,0,6,0.6048
|
||||
0 0,4,O,6,11,0.5|1,3,O,0,0,0.5
|
||||
1 0,1,X,8,11,0.5|1,0,O,11,11,0.5|2,2,X,3,6,0.5|3,0,X,5,11,nan
|
||||
0 0,3,O,0,1,nan
|
||||
1 0,4,X,2,11,nan|1,2,O,0,0,0.5|2,1,O,0,6,0.107|3,1,O,2,6,0.5
|
||||
1 0,2,O,1,1,0.5|1,3,O,1,1,0.5|2,3,O,5,6,nan|3,0,O,0,0,0.5|4,0,X,9,11,0.1236
|
||||
1 0,0,X,2,11,0.5|1,1,O,1,6,0.4831
|
||||
1 0,0,X,1,11,0.7592|1,2,O,1,1,0.5|2,4,X,0,1,0.5|3,4,O,3,6,0.4226
|
||||
0 0,4,O,0,0,0.5
|
||||
1 0,0,O,0,6,0.5|1,1,O,1,1,0.5|2,0,X,8,11,0.5|3,1,O,1,1,0.5|4,4,X,0,0,0.5
|
||||
0 0,4,O,0,11,0.0633|1,3,X,6,11,nan|2,1,X,0,6,0.5|3,1,X,0,1,nan
|
||||
0 0,2,O,9,11,0.5|1,2,O,0,0,nan|2,2,O,8,11,0.118
|
||||
0 0,2,O,9,11,nan|1,1,O,1,1,nan
|
||||
1 0,0,X,0,1,nan|1,4,O,0,0,0.5|2,4,X,4,11,0.5|3,2,O,0,11,0.3582
|
||||
0 0,3,O,5,6,0.5|1,3,O,0,0,0.5|2,2,O,1,1,0.8522|3,2,O,0,0,0.5
|
||||
0 0,4,O,0,6,0.5
|
||||
3 0,4,O,0,0,0.5|1,2,X,3,6,0.5|2,3,O,2,6,nan|3,2,O,1,1,0.6676
|
||||
1 0,2,O,0,0,nan|1,3,O,1,1,0.3858|2,4,O,0,1,nan
|
||||
2 0,3,X,0,0,0.5|1,1,X,0,1,nan|2,1,O,0,0,nan|3,4,X,4,6,0.2745
|
||||
- 0,0,X,0,0,0.5
|
||||
- 0,4,X,0,1,nan|1,2,X,4,6,nan
|
||||
1 0,4,X,3,6,0.5|1,3,O,0,0,0.5
|
||||
0 0,0,O,0,0,nan
|
||||
2 0,1,O,1,6,0.0554|1,0,X,1,1,0.8507|2,2,O,0,0,nan
|
||||
- 0,4,X,8,11,nan
|
||||
0 0,4,O,0,6,0.5|1,3,O,0,0,0.2693|2,1,X,0,0,nan|3,0,O,0,1,nan
|
||||
1 0,1,O,2,11,nan|1,2,O,0,0,nan|2,4,X,0,0,nan|3,3,X,1,6,0.5
|
||||
0 0,1,O,1,1,0.5|1,3,O,2,6,nan|2,3,X,4,11,0.5
|
||||
0 0,1,O,0,1,0.5
|
||||
0 0,1,O,0,1,0.5|1,4,X,0,0,0.5
|
||||
1 0,0,O,0,0,nan|1,2,O,1,1,0.5|2,2,X,0,1,0.5|3,1,O,1,1,0.5
|
||||
0 0,0,O,0,0,0.9111
|
||||
2 0,4,X,0,0,0.5|1,2,X,0,0,0.9469|2,1,O,2,11,nan|3,2,X,0,11,nan|4,3,X,5,11,nan
|
||||
0 0,1,O,1,1,nan|1,3,O,3,6,0.6328
|
||||
2 0,4,X,9,11,0.5|1,0,O,4,11,0.5|2,4,O,0,0,0.5
|
||||
1 0,0,O,0,0,0.5|1,1,O,4,11,0.415
|
||||
0 0,4,O,1,6,0.5153|1,1,O,8,11,0.5|2,1,O,0,1,0.5|3,4,O,0,1,nan|4,0,X,0,1,0.6208
|
||||
3 0,2,X,4,11,nan|1,1,X,0,1,0.5|2,1,X,11,11,nan|3,4,O,8,11,0.5
|
||||
3 0,1,O,1,1,0.5|1,1,X,3,6,0.0557|2,4,X,1,1,0.5|3,3,O,1,1,0.2657
|
||||
0 0,4,O,0,0,0.5|1,1,X,6,6,0.5|2,2,O,3,11,0.5|3,1,O,3,6,nan|4,2,O,0,0,0.5
|
||||
0 0,3,O,1,1,0.5|1,4,X,11,11,0.5088
|
||||
0 0,2,O,0,0,0.5
|
||||
0 0,1,O,1,1,0.4181|1,1,O,1,11,0.8431|2,3,O,0,0,0.5|3,2,O,6,11,0.6751
|
||||
4 0,1,O,1,11,0.0858|1,1,O,3,6,nan|2,2,X,3,6,0.5|3,4,X,0,6,0.363|4,2,O,0,1,nan
|
||||
1 0,2,X,0,0,0.7831|1,1,O,0,0,0.7691
|
||||
0 0,2,O,0,0,0.4112
|
||||
1 0,0,X,0,0,0.5|1,1,O,4,11,nan
|
||||
- 0,3,X,8,11,0.5
|
||||
2 0,0,X,0,1,0.5|1,4,O,0,0,nan|2,4,O,1,1,0.5|3,0,X,1,1,0.5
|
||||
0 0,1,O,4,11,0.3517
|
||||
0 0,0,O,0,0,0.5
|
||||
0 0,2,O,9,11,0.5|1,0,O,6,6,0.1963|2,0,O,10,11,0.5
|
||||
3 0,1,O,0,1,0.5|1,2,O,0,1,nan|2,0,O,4,6,0.5|3,2,O,2,6,0.5|4,4,X,7,11,0.5
|
||||
0 0,3,O,10,11,nan|1,3,X,0,0,nan|2,4,O,1,11,0.8167|3,2,O,1,1,0.5
|
||||
0 0,2,O,1,1,nan|1,1,O,0,6,0.5|2,2,X,0,1,0.5|3,4,X,7,11,0.4087
|
||||
- 0,3,X,0,0,0.5
|
||||
- 0,3,X,8,11,0.5|1,4,X,3,6,nan
|
||||
- 0,2,X,3,11,0.0733|1,4,X,0,0,nan|2,4,X,1,1,nan|3,3,X,4,6,nan
|
||||
1 0,0,X,1,1,0.5|1,4,O,1,1,0.5|2,4,X,0,11,0.8716|3,1,O,6,11,nan
|
||||
0 0,2,O,0,1,0.5|1,0,O,0,6,0.8683|2,2,O,1,6,nan
|
||||
4 0,3,O,4,6,0.5|1,3,O,0,0,0.5|2,3,O,0,0,0.5|3,3,X,1,1,0.5|4,4,O,0,1,0.5
|
||||
1 0,2,X,6,6,nan|1,0,O,1,1,0.5
|
||||
2 0,2,X,4,6,nan|1,1,O,0,1,0.5|2,0,O,1,1,0.5
|
||||
0 0,1,O,0,1,0.5|1,2,X,0,1,0.5|2,0,X,2,11,0.7244|3,4,X,0,1,nan|4,3,X,0,1,0.5
|
||||
0 0,3,O,10,11,nan
|
||||
1 0,0,O,0,0,0.5224|1,2,O,0,0,0.5379
|
||||
3 0,2,X,0,11,0.9234|1,3,O,0,0,0.0909|2,1,O,1,1,nan|3,2,O,1,1,nan
|
||||
0 0,2,O,0,0,0.5|1,0,O,0,1,nan|2,1,X,1,11,0.5
|
||||
0 0,3,O,1,1,0.5|1,0,X,0,1,nan|2,2,O,3,6,0.1928|3,4,O,0,0,nan|4,2,O,0,6,0.3144
|
||||
1 0,4,X,0,0,0.5|1,4,O,0,1,0.4258|2,1,O,0,0,0.8755|3,3,O,0,1,0.5|4,0,X,0,6,nan
|
||||
0 0,3,O,0,0,0.5
|
||||
0 0,4,O,8,11,0.5|1,2,O,0,1,0.2788|2,3,O,0,1,nan|3,4,O,8,11,0.9269|4,2,O,0,6,nan
|
||||
- 0,1,X,3,6,0.6197
|
||||
0 0,4,O,1,1,nan|1,1,X,0,0,0.6865|2,0,O,5,11,0.5|3,0,O,6,6,0.5
|
||||
1 0,0,O,0,0,0.6664|1,4,O,1,1,nan|2,1,O,0,0,nan
|
||||
1 0,0,O,6,6,nan|1,0,O,11,11,0.3174|2,4,O,0,1,0.5
|
||||
0 0,4,O,0,0,0.5|1,0,O,7,11,0.5|2,0,O,3,6,0.5|3,1,O,1,11,nan
|
||||
0 0,3,O,1,1,0.5
|
||||
2 0,0,X,8,11,0.5|1,2,O,0,0,0.5826|2,4,O,0,0,0.082|3,4,O,0,0,0.5
|
||||
3 0,1,O,0,0,nan|1,1,X,0,0,0.5|2,3,O,0,0,nan|3,4,O,6,6,0.2585|4,0,X,1,6,0.5
|
||||
1 0,4,O,0,0,0.5|1,4,O,1,1,nan|2,1,O,0,0,0.6837|3,2,X,4,11,0.5
|
||||
1 0,1,X,0,0,nan|1,3,O,3,6,0.5|2,2,X,0,0,nan|3,2,O,0,1,0.5
|
||||
2 0,1,O,3,11,0.5|1,0,O,4,6,0.5|2,3,O,9,11,nan|3,2,X,6,6,nan|4,0,O,7,11,0.5
|
||||
2 0,2,O,8,11,0.7672|1,4,X,0,0,0.5|2,4,O,0,0,0.4113|3,4,X,0,0,0.5
|
||||
- 0,4,X,0,0,0.5
|
||||
0 0,4,O,5,6,0.5|1,1,O,1,1,0.5
|
||||
0 0,3,O,1,1,0.5|1,3,X,1,1,0.748|2,1,X,1,6,0.1778
|
||||
3 0,0,O,0,0,0.5|1,4,X,0,0,nan|2,4,O,1,11,0.5|3,0,O,11,11,0.5
|
||||
0 0,0,O,2,11,0.8458
|
||||
1 0,4,O,0,0,0.5|1,2,O,11,11,nan|2,2,X,1,6,nan|3,0,O,0,0,nan
|
||||
1 0,3,O,3,11,0.5|1,3,O,1,1,0.5|2,2,O,0,6,0.5|3,4,O,0,0,0.9115|4,2,X,0,0,0.9149
|
||||
0 0,4,O,0,0,0.1606|1,2,O,2,6,0.574
|
||||
1 0,2,O,11,11,0.5564|1,4,O,9,11,0.5|2,4,X,0,1,0.4846
|
||||
0 0,2,O,0,1,nan|1,2,X,1,6,nan|2,0,O,0,0,0.5
|
||||
1 0,1,O,0,1,0.5|1,1,O,1,1,0.8336|2,4,O,4,6,0.5148|3,4,X,3,6,0.5|4,0,X,0,0,0.5
|
||||
- 0,3,X,5,6,0.3578
|
||||
0 0,3,O,5,11,0.6709
|
||||
1 0,2,O,0,0,0.5|1,2,O,6,6,0.8069|2,4,X,5,11,0.5
|
||||
1 0,2,X,10,11,0.789|1,2,O,4,6,0.5
|
||||
2 0,2,X,0,1,0.7031|1,0,O,2,6,0.5|2,4,O,2,6,nan|3,3,O,4,11,nan
|
||||
1 0,4,O,11,11,0.5|1,4,O,1,1,0.3557|2,2,X,4,6,nan|3,2,O,0,11,0.5|4,2,O,3,6,0.2397
|
||||
1 0,4,O,0,0,0.5|1,4,O,1,1,nan|2,0,O,0,0,nan|3,3,O,5,11,0.5
|
||||
2 0,4,X,0,1,0.5|1,1,X,0,0,0.5|2,2,O,6,11,nan|3,0,O,0,6,0.5
|
||||
0 0,2,O,9,11,nan|1,3,O,0,0,nan|2,3,X,0,0,nan
|
||||
- 0,3,X,5,6,0.5738|1,1,X,0,1,0.5
|
||||
- 0,0,X,0,6,0.2474
|
||||
0 0,0,O,0,0,0.175
|
||||
0 0,2,O,6,6,0.5|1,2,X,1,1,0.5|2,4,X,0,0,0.7646
|
||||
2 0,0,O,0,1,nan|1,1,X,6,6,0.5|2,4,O,0,0,nan|3,2,O,0,0,0.7553
|
||||
3 0,0,O,2,6,nan|1,3,X,1,11,0.5356|2,1,X,1,6,0.5|3,0,O,1,6,0.5
|
||||
0 0,3,O,4,6,0.5|1,4,X,1,11,0.5|2,4,X,0,1,0.5|3,4,X,0,0,0.5|4,0,O,7,11,0.5
|
||||
1 0,2,O,0,1,0.1486|1,0,O,1,1,nan|2,2,O,4,6,nan
|
||||
- 0,1,X,1,1,0.5|1,2,X,3,11,nan
|
||||
0 0,2,O,3,11,0.5
|
||||
- 0,0,X,11,11,nan|1,0,X,0,1,0.5
|
||||
1 0,0,O,0,0,nan|1,2,O,0,11,0.6383|2,2,O,0,0,nan|3,1,O,0,1,0.5
|
||||
0 0,4,O,0,0,nan
|
||||
1 0,0,O,0,1,nan|1,1,O,6,6,0.8142|2,1,O,7,11,nan|3,1,O,0,0,nan|4,2,O,2,11,0.5
|
||||
0 0,3,O,1,1,nan|1,0,O,6,6,0.5|2,4,X,4,11,nan|3,1,X,1,11,0.3811
|
||||
0 0,4,O,0,0,nan|1,1,X,4,6,nan|2,2,X,0,1,0.2474
|
||||
0 0,4,O,0,0,0.7172|1,1,X,4,11,0.3775
|
||||
0 0,1,O,1,1,0.5|1,0,X,6,6,0.4991|2,3,X,0,0,0.5396|3,0,X,4,6,0.5|4,0,O,0,1,0.9152
|
||||
1 0,4,O,0,0,0.8142|1,1,O,11,11,0.5|2,4,O,3,6,0.5|3,3,O,1,6,nan|4,0,O,6,6,0.5
|
||||
3 0,1,X,2,11,0.5|1,3,X,6,6,nan|2,3,X,0,1,nan|3,1,O,7,11,nan
|
||||
1 0,1,O,1,1,0.2283|1,4,O,5,6,nan|2,2,O,0,0,0.0791|3,4,O,5,6,nan|4,0,O,7,11,nan
|
||||
0 0,1,O,4,11,0.5
|
||||
0 0,4,O,2,11,nan|1,1,O,5,11,nan|2,1,O,0,1,0.5
|
||||
1 0,2,O,4,6,0.5|1,4,O,5,6,0.883|2,3,O,1,11,0.5
|
||||
2 0,2,O,2,6,nan|1,2,O,0,6,0.5|2,2,O,1,1,0.7525
|
||||
3 0,4,X,0,0,nan|1,3,X,3,11,0.2461|2,1,O,1,6,0.2374|3,1,O,1,1,nan|4,1,X,2,6,0.2782
|
||||
1 0,1,X,0,1,0.2753|1,4,O,5,6,0.5|2,3,O,11,11,nan|3,1,O,0,6,0.5|4,2,O,1,1,nan
|
||||
0 0,1,O,0,1,0.4212|1,1,X,0,0,0.5
|
||||
2 0,2,X,0,0,0.5|1,1,X,1,6,0.911|2,0,O,0,0,0.5
|
||||
3 0,3,X,0,11,0.5|1,4,O,0,0,0.5|2,4,O,0,1,0.5|3,0,O,5,6,0.5|4,4,X,9,11,0.5
|
||||
2 0,0,O,2,11,0.5581|1,4,O,6,11,0.7932|2,3,O,10,11,0.5|3,1,X,0,0,0.4305
|
||||
0 0,4,O,0,0,0.7023|1,4,X,4,11,0.5|2,0,X,0,0,0.5|3,3,X,4,11,nan|4,1,X,4,6,nan
|
||||
3 0,3,O,4,11,0.5|1,0,X,0,11,0.5|2,2,O,0,0,0.5|3,3,O,1,6,0.3106
|
||||
2 0,0,O,3,11,nan|1,0,O,0,6,0.5|2,0,O,11,11,0.5|3,0,X,0,0,nan
|
||||
1 0,2,O,0,0,0.5|1,4,O,1,1,0.5|2,0,O,0,0,0.9393
|
||||
0 0,0,O,1,1,nan
|
||||
0 0,3,O,4,6,nan|1,1,X,0,0,nan|2,0,O,0,0,0.6956|3,0,X,0,1,0.5
|
||||
0 0,0,O,0,6,0.3889
|
||||
2 0,0,X,1,1,0.5|1,3,X,0,0,0.5|2,3,O,0,1,0.5|3,1,O,0,1,0.176|4,1,O,0,0,0.5
|
||||
2 0,3,O,0,0,0.5|1,0,O,0,6,0.2365|2,0,O,1,1,0.5|3,4,O,6,11,nan|4,1,O,0,1,0.5292
|
||||
2 0,0,O,1,1,nan|1,4,O,0,1,nan|2,0,O,5,6,0.9178
|
||||
0 0,3,O,0,0,nan|1,1,O,1,11,0.5
|
||||
0 0,4,O,1,1,nan|1,3,O,0,0,0.5
|
||||
0 0,3,O,4,6,0.5
|
||||
0 0,3,O,5,6,0.5|1,3,O,3,6,0.5
|
||||
0 0,1,O,1,1,0.5|1,3,X,1,6,0.5
|
||||
2 0,2,O,5,11,0.5|1,0,O,1,6,nan|2,4,O,6,11,nan
|
||||
|
Reference in New Issue
Block a user