UPDE — PHA-C Acceptance Chain¶
PHACAcceptanceRecord is the end-to-end PHA-C review gate. It advances a
moving-frame trajectory through the same physics surfaces used by the PHA-C
lane, then converts the result into timeline evidence and a deterministic
acceptance hash.
The acceptance record is review-only. It does not write to actuators, change coupling policy, schedule hardware, or mutate supervisor state.
Use cases¶
Use the PHA-C acceptance chain when reviewers need evidence that the whole lane was exercised rather than a single isolated module:
- MIF/FRC readiness checks where spatial coupling, Doppler correction, moving-frame propagation, merge-window locking, handoff hashing, and timeline hashing must be reviewed together;
- release gates that need one compact record proving the PHA-C chain can run from initial state to final lock evidence;
- benchmark snapshots that aggregate the per-module Rust, Go, Julia, Mojo, and Python parity gates while labelling local timings as non-isolated regression evidence;
- Studio or replay panels that need an acceptance hash without exposing raw trajectory arrays.
Contract¶
Inputs are the initial state plus schedules:
phases_t0[i] = initial oscillator phase
positions_t0[i] = initial axial position
omega_schedule[t, i] = natural frequency at schedule row t
velocity_schedule[t, i] = axial velocity at schedule row t
knm[i, j] = zero-diagonal base coupling matrix
For each schedule row, the builder:
- resolves distance-modulated coupling through
SpatialCouplingModulator; - computes the graph-weighted Doppler correction;
- advances one moving-frame UPDE step;
- records phase and position trajectory rows;
- computes the signed moving-frame kinematic residual
max |z[t+1] - (z[t] + v[t] * dt)|; - builds a
PHACTimelineRecordover the trajectory; - can project the verified acceptance payload into a Lean
PHACKinematicProofObligationforSPOFormal.Kinematic; and - hashes schedules, trajectories, spatial couplings, Doppler trace, timeline, proof-obligation references, and final acceptance payload.
The record carries:
- first-lock index/time and final-lock state;
- lock sample, lock-loss, reset, and maximum consecutive-lock counts;
- maximum absolute Doppler correction and spatial coupling;
- maximum moving-frame kinematic residual, maximum absolute velocity, and maximum per-oscillator axial path length;
- final-position, maximum-velocity, and path-length equation replay under
PHA_C_ACCEPTANCE_KINEMATIC_SUMMARY_REPLAY_TOLERANCE; - fixed-point Lean proof-obligation compatibility through
build_pha_c_kinematic_proof_obligation(...); - maximum phase/spatial dispersion, minimum signed phase/spatial margins, minimum Kuramoto order parameter, and maximum distance to reference;
- replay validation that each signed margin equals its tolerance minus the
corresponding maximum dispersion under
PHA_C_ACCEPTANCE_MARGIN_REPLAY_TOLERANCE; - resolved tolerance profile provenance;
execution_disabled=True,actuating=False, and the fixed claim boundarypha_c_end_to_end_acceptance_review_only.
Minimal example¶
import numpy as np
from scpn_phase_orchestrator.upde.pha_c_acceptance import (
build_pha_c_acceptance_record,
verify_pha_c_acceptance_record,
)
from scpn_phase_orchestrator.upde.pha_c_formal_obligation import (
build_pha_c_kinematic_proof_obligation,
verify_pha_c_kinematic_proof_obligation,
)
n = 5
phases = np.linspace(-0.002, 0.002, n)
positions = np.linspace(-0.0006, 0.0006, n)
omega = np.zeros((4, n))
knm = np.full((n, n), 0.04)
np.fill_diagonal(knm, 0.0)
velocities = np.vstack([np.linspace(0.10, 0.12, n) for _ in range(4)])
record = build_pha_c_acceptance_record(
phases,
positions,
omega,
knm,
velocities,
dt=1.0e-3,
required_consecutive_samples=3,
tolerance_profile="baseline_1x",
backend="python",
)
assert record.first_lock_index == 2
assert record.final_lock_achieved
assert record.kinematic_residual_max_m <= 1.0e-12
assert record.execution_disabled
assert not record.actuating
acceptance_payload = record.to_dict()
verify_pha_c_acceptance_record(record)
obligation = build_pha_c_kinematic_proof_obligation(record)
assert obligation.proof_obligations_discharged
verify_pha_c_kinematic_proof_obligation(obligation)
Use verify_pha_c_acceptance_record(...) when replaying a stored acceptance
record. It rechecks sample/step consistency, first-lock semantics, review-only
flags, signed margin equations, the moving-frame kinematic residual bound,
kinematic equation replay flags and tolerance, SHA-256 fields, the timeline
digest reference, and the canonical acceptance hash without requiring the
original schedules or trajectories. The signed margin
replay rejects records whose positive-looking phase or spatial margin no longer
matches tolerance - maximum_dispersion.
Use verify_pha_c_kinematic_proof_obligation(...) when release review also
needs the accepted runtime envelope bound to Lean. The release-facing boundary
is the combined KinematicBounds.acceptanceCertificate predicate and
acceptance_certificate_discharges_runtime_preconditions theorem; that
certificate includes the spatial budget theorem, phase-budget theorem, and
acceptance kinematic-equation replay certificate.
Relationship to other PHA-C records¶
| Surface | Scope | Use when |
|---|---|---|
PHACHandoffRecord |
one phase/position sample | a downstream lane needs one reviewed event-state atom |
PHACTimelineRecord |
complete phase/position trajectory | a downstream lane needs lock/loss/reset history |
PHACAcceptanceRecord |
full PHA-C physics chain plus timeline | a release, MIF/FRC, or benchmark gate needs end-to-end evidence |
PHACKinematicProofObligation |
fixed-point Lean assumptions derived from verified acceptance | a formal gate or downstream lane needs a signed theorem-specific obligation |
Polyglot parity and benchmark snapshot¶
The benchmark gate records Rust, Mojo, Julia, Go, and Python source-contract
slots for the acceptance builder, then aggregates the existing PHA-C subgates:
spatial modulation, time-varying omega, Doppler, moving-frame, merge window,
handoff, and timeline. Acceptance rows also publish the minimum signed margins
copied from the timeline plus the moving-frame kinematic residual, so release
evidence exposes both the distance to the reviewed merge envelope and the
mechanical validity of the axial schedule. The benchmark row now also records
phase_margin_equation_validated, spatial_margin_equation_validated,
signed_margin_equations_validated, and margin_replay_tolerance for every
backend slot. It also records final_position_equation_validated,
max_abs_velocity_equation_validated, path_length_equation_validated,
kinematic_equations_validated, and kinematic_summary_replay_tolerance for
every backend slot so the aggregate acceptance record preserves the
moving-frame summary equations rather than only scalar residuals. The same
benchmark now builds and verifies a Lean kinematic
proof-obligation manifest for every backend row. The
acceptance gate fails unless the manifest names SPOFormal.Kinematic, targets
budget_certificate_discharges_budget, replays its canonical hash, replays the
finite-horizon Gronwall budget trace, and discharges the fixed-point
merge-window and phase-margin checks. The final formal row must also name
KinematicBounds.acceptanceCertificate, name
acceptance_certificate_discharges_runtime_preconditions, and discharge the
combined spatial-budget, phase-budget, and acceptance-replay certificate. The
same manifest publishes sampled continuous-rate fields for dt, horizon time,
velocity-rate bounds, and residual-rate bounds so Rust, Mojo, Julia, Go, and
Python source-contract rows carry the same time-normalised formal assumptions.
The rows now also publish the SPOFormal.Continuous horizon theorem,
continuous drive-rate sum, continuous horizon-drive replay, continuous budget,
continuous margin, and a Boolean continuous-envelope discharge flag.
The formal manifest now also publishes
formal_obligation_acceptance_kinematic_equations_validated and
formal_obligation_acceptance_kinematic_summary_replay_tolerance, binding the
Lean-facing proof obligation to the verified acceptance record's moving-frame
summary equations. The same benchmark row now publishes
formal_obligation_acceptance_replay_certificate_discharged,
formal_obligation_acceptance_certificate_discharged,
formal_obligation_acceptance_certificate_predicate, and
formal_obligation_acceptance_certificate_theorem, and the parity gate fails
unless every backend row discharges the combined Lean acceptance certificate.
Before calculating parity error, the source-contract validator now compares raw
PHACAcceptanceRecord fields rather than the canonical to_dict() payload, so
numeric strings, non-finite values, boolean aliases, malformed integer fields,
non-plain lock flags, malformed string/hash fields, and typed field divergence
fail closed before benchmark rows are published. Imported subgate payload flags
are also parsed as strict integers so malformed benchmark evidence cannot be
accepted through Python string coercion.
uv run python benchmarks/pha_c_acceptance_benchmark.py \
--parity-gate \
--calls 1 \
--output benchmarks/results/pha_c_acceptance.json
Committed benchmark JSON is local regression evidence only. It is not a production timing claim unless rerun under the benchmark-isolation protocol.
Failure boundaries¶
The acceptance builder fails closed on:
- empty, non-finite, complex, object-dtype, or boolean state vectors;
- mismatched phase and position shapes;
- malformed omega or velocity schedules;
- non-square, non-finite, or non-zero-diagonal coupling matrices;
- invalid moving-frame backend names;
- non-positive
dt, tolerances, or integration controls; - unknown tolerance profile names.
The polyglot source-contract validator also fails closed on acceptance records whose raw dataclass fields do not preserve the expected numeric, integer, boolean, and string/hash domains, even if their canonical dictionary projection would coerce to the reference value.
PHACAcceptanceRecord
dataclass
¶
PHACAcceptanceRecord(
sample_count: int,
step_count: int,
oscillator_count: int,
start_time: float,
end_time: float,
dt: float,
first_lock_index: int,
first_lock_time: float,
first_lock_observed: bool,
final_lock_achieved: bool,
lock_sample_count: int,
lock_loss_count: int,
reset_count: int,
max_consecutive_lock_samples: int,
max_abs_doppler_term: float,
max_abs_spatial_coupling: float,
max_phase_dispersion_rad: float,
max_spatial_dispersion_m: float,
kinematic_residual_max_m: float,
max_abs_velocity_m_per_s: float,
path_length_max_m: float,
final_position_equation_validated: bool,
max_abs_velocity_equation_validated: bool,
path_length_equation_validated: bool,
kinematic_equations_validated: bool,
kinematic_summary_replay_tolerance: float,
min_phase_margin_rad: float,
min_spatial_margin_m: float,
min_phase_order_parameter: float,
max_distance_to_reference_m: float,
reference_phase: float,
reference_point: float,
phase_tol_rad: float,
spatial_tol_m: float,
tolerance_profile_name: str,
tolerance_profile_multiplier: float,
required_consecutive_samples: int,
moving_frame_backend_request: str,
claim_boundary: str,
evidence_kind: str,
execution_disabled: bool,
actuating: bool,
omega_schedule_sha256: str,
velocity_schedule_sha256: str,
phase_trajectory_sha256: str,
position_trajectory_sha256: str,
initial_spatial_coupling_sha256: str,
final_spatial_coupling_sha256: str,
doppler_trace_sha256: str,
timeline_sha256: str,
acceptance_sha256: str,
)
build_pha_c_acceptance_record ¶
build_pha_c_acceptance_record(
phases_t0: ArrayLike,
positions_t0: ArrayLike,
omega_schedule: ArrayLike,
knm: ArrayLike,
velocity_schedule: ArrayLike,
*,
alpha: object = 0.0,
spatial_modulator: SpatialCouplingModulator
| None = None,
doppler_strength: object = 0.001,
doppler_epsilon: object = 1e-09,
zeta: object = 0.0,
psi: object = 0.0,
dt: object = 0.001,
method: str = "rk4",
n_substeps: object = 1,
atol: object = 1e-09,
rtol: object = 1e-09,
reference_phase: object = 0.0,
reference_point: object = 0.0,
phase_tol_rad: object = DEFAULT_PHASE_TOL_RAD,
spatial_tol_m: object = DEFAULT_SPATIAL_TOL_M,
required_consecutive_samples: object = 3,
tolerance_profile: object | None = "baseline_1x",
backend: object = "python",
) -> PHACAcceptanceRecord
Build deterministic end-to-end PHA-C acceptance evidence.
The builder advances a moving-frame trajectory one schedule row at a time, recording spatially modulated coupling and Doppler traces before converting the trajectory into a PHA-C event timeline. The output remains review-only; it is evidence for downstream gates and never permits actuation.
Parameters¶
phases_t0 : ArrayLike
Initial oscillator phases in radians, shape (N,).
positions_t0 : ArrayLike
Initial axial coordinates per oscillator, shape (N,).
omega_schedule : ArrayLike
Per-step natural-frequency vectors, shape (n_steps, N).
knm : ArrayLike
Coupling matrix K_nm, shape (N, N).
velocity_schedule : ArrayLike
Per-step axial velocity vectors, shape (n_steps, N).
alpha : object
Phase-lag matrix in radians, shape (N, N), or None for no lag.
spatial_modulator : SpatialCouplingModulator | None
Configured spatial coupling modulator.
doppler_strength : object
Doppler coupling-correction strength.
doppler_epsilon : object
Numerical floor guarding the Doppler denominator.
zeta : object
External drive strength ζ.
psi : object
External drive reference phase Ψ in radians.
dt : object
Integration step size.
method : str
Integration method (euler, rk4, or rk45).
n_substeps : object
Number of inner substeps per outer step.
atol : object
Absolute tolerance for the adaptive (rk45) integrator.
rtol : object
Relative tolerance for the adaptive (rk45) integrator.
reference_phase : object
Reference phase for the lock criterion, in radians.
reference_point : object
Reference axial coordinate for the spatial-margin criterion.
phase_tol_rad : object
Phase lock tolerance in radians.
spatial_tol_m : object
Spatial lock tolerance in metres.
required_consecutive_samples : object
Consecutive in-tolerance samples required to declare lock.
tolerance_profile : object | None
Named tolerance profile, or None for the baseline profile.
backend : object
Name of the compute backend to run.
Returns¶
PHACAcceptanceRecord The deterministic end-to-end PHA-C acceptance record.
Raises¶
ValueError If any input is invalid or the acceptance replay fails.
Source code in src/scpn_phase_orchestrator/upde/pha_c_acceptance.py
391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 | |
pha_c_acceptance_record_to_dict ¶
pha_c_acceptance_record_to_dict(
record: PHACAcceptanceRecord,
) -> dict[str, float | int | bool | str]
Return the canonical JSON-safe PHA-C acceptance payload.
Parameters¶
record : PHACAcceptanceRecord The PHA-C record to operate on.
Returns¶
dict[str, float | int | bool | str] The canonical JSON-safe PHA-C acceptance payload.
Source code in src/scpn_phase_orchestrator/upde/pha_c_acceptance.py
verify_pha_c_acceptance_record ¶
Replay and validate a complete PHA-C acceptance record.
Parameters¶
record : PHACAcceptanceRecord The PHA-C record to operate on.
Returns¶
PHACAcceptanceRecord The same record after fail-closed replay and validation.
Raises¶
ValueError If the record fails fail-closed replay or hash validation.
Source code in src/scpn_phase_orchestrator/upde/pha_c_acceptance.py
732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 | |
API documentation¶
pha_c_acceptance ¶
End-to-end PHA-C acceptance evidence.
The PHA-C work lane has several reviewed modules: spatial coupling, time-varying frequencies, Doppler correction, moving-frame integration, merge-window monitoring, handoff records, and event timelines. This module binds those surfaces into one deterministic, non-actuating acceptance record so review lanes can prove the complete chain was exercised rather than only one slice.
Classes¶
PHACAcceptanceRecord
dataclass
¶
PHACAcceptanceRecord(
sample_count: int,
step_count: int,
oscillator_count: int,
start_time: float,
end_time: float,
dt: float,
first_lock_index: int,
first_lock_time: float,
first_lock_observed: bool,
final_lock_achieved: bool,
lock_sample_count: int,
lock_loss_count: int,
reset_count: int,
max_consecutive_lock_samples: int,
max_abs_doppler_term: float,
max_abs_spatial_coupling: float,
max_phase_dispersion_rad: float,
max_spatial_dispersion_m: float,
kinematic_residual_max_m: float,
max_abs_velocity_m_per_s: float,
path_length_max_m: float,
final_position_equation_validated: bool,
max_abs_velocity_equation_validated: bool,
path_length_equation_validated: bool,
kinematic_equations_validated: bool,
kinematic_summary_replay_tolerance: float,
min_phase_margin_rad: float,
min_spatial_margin_m: float,
min_phase_order_parameter: float,
max_distance_to_reference_m: float,
reference_phase: float,
reference_point: float,
phase_tol_rad: float,
spatial_tol_m: float,
tolerance_profile_name: str,
tolerance_profile_multiplier: float,
required_consecutive_samples: int,
moving_frame_backend_request: str,
claim_boundary: str,
evidence_kind: str,
execution_disabled: bool,
actuating: bool,
omega_schedule_sha256: str,
velocity_schedule_sha256: str,
phase_trajectory_sha256: str,
position_trajectory_sha256: str,
initial_spatial_coupling_sha256: str,
final_spatial_coupling_sha256: str,
doppler_trace_sha256: str,
timeline_sha256: str,
acceptance_sha256: str,
)
Functions:¶
build_pha_c_acceptance_record ¶
build_pha_c_acceptance_record(
phases_t0: ArrayLike,
positions_t0: ArrayLike,
omega_schedule: ArrayLike,
knm: ArrayLike,
velocity_schedule: ArrayLike,
*,
alpha: object = 0.0,
spatial_modulator: SpatialCouplingModulator
| None = None,
doppler_strength: object = 0.001,
doppler_epsilon: object = 1e-09,
zeta: object = 0.0,
psi: object = 0.0,
dt: object = 0.001,
method: str = "rk4",
n_substeps: object = 1,
atol: object = 1e-09,
rtol: object = 1e-09,
reference_phase: object = 0.0,
reference_point: object = 0.0,
phase_tol_rad: object = DEFAULT_PHASE_TOL_RAD,
spatial_tol_m: object = DEFAULT_SPATIAL_TOL_M,
required_consecutive_samples: object = 3,
tolerance_profile: object | None = "baseline_1x",
backend: object = "python",
) -> PHACAcceptanceRecord
Build deterministic end-to-end PHA-C acceptance evidence.
The builder advances a moving-frame trajectory one schedule row at a time, recording spatially modulated coupling and Doppler traces before converting the trajectory into a PHA-C event timeline. The output remains review-only; it is evidence for downstream gates and never permits actuation.
Parameters¶
phases_t0 : ArrayLike
Initial oscillator phases in radians, shape (N,).
positions_t0 : ArrayLike
Initial axial coordinates per oscillator, shape (N,).
omega_schedule : ArrayLike
Per-step natural-frequency vectors, shape (n_steps, N).
knm : ArrayLike
Coupling matrix K_nm, shape (N, N).
velocity_schedule : ArrayLike
Per-step axial velocity vectors, shape (n_steps, N).
alpha : object
Phase-lag matrix in radians, shape (N, N), or None for no lag.
spatial_modulator : SpatialCouplingModulator | None
Configured spatial coupling modulator.
doppler_strength : object
Doppler coupling-correction strength.
doppler_epsilon : object
Numerical floor guarding the Doppler denominator.
zeta : object
External drive strength ζ.
psi : object
External drive reference phase Ψ in radians.
dt : object
Integration step size.
method : str
Integration method (euler, rk4, or rk45).
n_substeps : object
Number of inner substeps per outer step.
atol : object
Absolute tolerance for the adaptive (rk45) integrator.
rtol : object
Relative tolerance for the adaptive (rk45) integrator.
reference_phase : object
Reference phase for the lock criterion, in radians.
reference_point : object
Reference axial coordinate for the spatial-margin criterion.
phase_tol_rad : object
Phase lock tolerance in radians.
spatial_tol_m : object
Spatial lock tolerance in metres.
required_consecutive_samples : object
Consecutive in-tolerance samples required to declare lock.
tolerance_profile : object | None
Named tolerance profile, or None for the baseline profile.
backend : object
Name of the compute backend to run.
Returns¶
PHACAcceptanceRecord The deterministic end-to-end PHA-C acceptance record.
Raises¶
ValueError If any input is invalid or the acceptance replay fails.
Source code in src/scpn_phase_orchestrator/upde/pha_c_acceptance.py
391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 | |
pha_c_acceptance_record_to_dict ¶
pha_c_acceptance_record_to_dict(
record: PHACAcceptanceRecord,
) -> dict[str, float | int | bool | str]
Return the canonical JSON-safe PHA-C acceptance payload.
Parameters¶
record : PHACAcceptanceRecord The PHA-C record to operate on.
Returns¶
dict[str, float | int | bool | str] The canonical JSON-safe PHA-C acceptance payload.
Source code in src/scpn_phase_orchestrator/upde/pha_c_acceptance.py
verify_pha_c_acceptance_record ¶
Replay and validate a complete PHA-C acceptance record.
Parameters¶
record : PHACAcceptanceRecord The PHA-C record to operate on.
Returns¶
PHACAcceptanceRecord The same record after fail-closed replay and validation.
Raises¶
ValueError If the record fails fail-closed replay or hash validation.
Source code in src/scpn_phase_orchestrator/upde/pha_c_acceptance.py
732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 | |