#include <bits/stdc++.h>
#define A double
#define B const
#define C return
#define D requests
#define E std
#define F RequestPhase
#define G static_cast
#define H int
#define I distance_base
#define J current_time_ms
#define K input_length
#define L task_cost
#define M last_token_time_ms
#define N transfer_cost_ms
#define O num_clouds
#define P cloud
#define Q tokens_produced
#define R population
#define S choices
#define T strong_waiting_fallback_mode
#define U request_ids
#define V cloud_prefill_work_ms
#define W choice
#define X throughput_upper_bound
#define Y task_setup_ms
#define Z request
#define e decode_window
#define g if
#define k latency_pressure
#define p vector
#define q false
#define AA tiny_wait_weight_mode
#define AB throughput_baseline
#define AC cloud_request_load
#define AD tpot_slo_ms
#define AE num_layers
#define AF is_valid
#define AG active_decode_requests
#define AH batch_size
#define AI runtime_fallback_enabled
#define AJ tdr_slo_ms
#define AK next_prefill_layer
#define AL pending_prefill_count
#define AM link_available_time_ms
#define AN unopened_decode_ready_count
#define AO preferred_decode_proc_batch
#define AP arrival_time_ms
#define AQ is_valid_request_id
#define AR base_decode_window
#define AS cloud_active_output_requests
#define AT cloud_id
#define AU request_id
#define AV size
#define AW w_tp
#define AX ready_since_ms
#define AY synchronized_decode_active
#define AZ collect_ready_requests
#define Aa best_cloud
#define Ab decode_batch_size
#define Ac modeled_cloud_prefix_mode
#define Ad bool
#define Ae minimum_prefill_path_ms
#define Af predicted_transfer_queue
#define Ag prefill_id
#define Ah cloud_decode_load
#define Ai push_back
#define Aj has_internal_future
#define Ak prefill_request
#define Al produced_token_count
#define Am latency_dominant_objective_band
#define An direction
#define Ao decode_controller_max
#define Ap decode_pre_ready
#define Aq next_predicted_decode_transfer
#define Ar objective_band_code
#define As cloud_count
#define At EdgeTaskChoice
#define Au cloud_running_prefill_work_ms
#define Av arrived_count
#define Aw task_times
#define Ax prefill_proc_ready
#define Ay cohort_size
#define Az transfer_latency_ms
#define BA has_active_decode_output
#define BB predicted_decode_transfers_by_cloud
#define BC max
#define BD remaining
#define BE decode_proc_ready_count
#define BF cloud_predicted_busy_until_ms
#define BG best
#define BH decode_ids
#define BI average_prefill_proc_cost
#define BJ priority_key
#define BK set_request_phase
#define BL decode_stream_observed
#define BM protected_startup_chunk_and_prior_mode
#define BN normalized_throughput
#define BO candidate
#define BP max_batch_size
#define BQ transfer_prediction_valid
#define BR throughput_pressure_value
#define BS numeric_limits
#define BT finished_count
#define BU ReadyQueueEntry
#define BV best_rate_cohort
#define BW prefill_proc_ready_count
#define BX phase
#define BY advance_request_phase
#define BZ EdgeTaskKind
#define Ba runtime_fallback_active
#define Bb throughput_batch_threshold
#define Bc synchronization_population
#define Bd observed_first_token_count
#define Be pure_waiting_objective
#define Bf decode_controller_step
#define Bg cloud_busy
#define Bh candidate_indices
#define Bi else
#define Bj task_kind
#define Bk Request
#define Bl member_count
#define Bm decode_waves
#define Bn selection_order
#define Bo cohort_cycle_ms
#define Bp duration
#define Bq ready_count_by_phase
#define Br wave_id
#define Bs assignment_latency_pressure
#define Bt clamp
#define Bu begin
#define Bv best_tie_time
#define Bw decode_post_ready
#define Bx prefill_upload_pending
#define By long_prefill_risk_mode
#define Bz protected_startup_prefill_guard
#define CA prefill_proc_ready_queues
#define CB continue
#define CC synchronization_ratio
#define CD best_unit
#define CE best_rank
#define CF prefill_post_ready
#define CG latency_batch_size
#define CH for
#define CI proc_finishes
#define CJ other_request
#define CK prefill_download_pending
#define CL decode_wave_id
#define CM legacy_grouping_mode
#define CN group_contains_started_decode
#define CO reported_duration
#define CP prefill_pre_ready
#define CQ prefill_post_skip_count
#define CR decode_admitted
#define CS bytes_per_token
#define CT best_batch_size
#define CU strong_waiting_decode_window
#define CV reconcile_completed_transfer
#define CW protected_startup_max_prefill_chunks
#define CX true
#define CY prefill_pre_skip_count
#define CZ fresh_decode_pre_queue
#define Ca synchronized_decode_enabled
#define Cb first
#define Cc quality_level
#define Cd high_wait_weight
#define Ce ready
#define Cf index
#define Cg remaining_cost
#define Ch ids
#define Ci observed_nonterminal_first_tokens
#define Cj record_predicted_transfer
#define Ck is_decode
#define Cl download_finish
#define Cm step
#define Cn isfinite
#define Co cohort_limit
#define Cp members_per_cloud
#define Cq prefill_priority_key
#define Cr group_size
#define Cs visible_sizes
#define Ct started_decode_is_urgent
#define Cu value
#define Cv invalidate_transfer_predictions
#define Cw quantum
#define Cx throughput_marginal
#define Cy prefill_pre_running
#define Cz w_c
#define DA future
#define DB to_string
#define DC max_decode_age
#define DD bandwidth_gbps
#define DE fallback_request
#define DF maximum_prefill_path_ms
#define DG mature_entry_population
#define DH decode_download_pending
#define DI strong_waiting_max_decode_rate
#define DJ should_hold_for_known_transfer
#define DK stage_bonus
#define DL last_cloud_starvation_time_ms
#define DM auto
#define DN string
#define DO best_pipeline_rate
#define DP TransferPrediction
#define DQ next_cloud_round_robin
#define DR infinity
#define DS by_cloud
#define DT minimum_service
#define DU online_normalized_throughput
#define DV upload_finish
#define DW best_position
#define DX tight_distance_regime
#define DY open_decode_pre_queue
#define DZ first_arrival_time_ms
#define Da decode_proc_ready
#define Db best_cloud_count_for_cohort
#define Dc high_throughput_synchronization_enabled
#define Dd empty
#define De run_decode
#define Df chosen_key
#define Dg best_value
#define Dh tie_breaker
#define Di legacy_size
#define Dj cloud_limit
#define Dk prefill_proc_running
#define Dl prefill_post_running
#define Dm first_token_completion_ids
#define Dn best_size
#define Do left_started
#define Dp bootstrap_cohort
#define Dq best_cohort_rate
#define Dr batching_economy
#define Ds fresh
#define Dt epoch_opportunities
#define Du should_wait_for_modeled_cloud_prefix
#define Dv request_count
#define Dw prefill_chunks_completed
#define Dx pending_arrival_time_sum
#define Dy earliest_decode_deadline
#define Dz decode_proc_ready_queues
#define EA use_ready_order
#define EB samples_by_kind
#define EC min
#define ED is_decode_transfer
#define EE decode_proc_streak
#define EF stage
#define EG queue
#define EH constexpr
#define EI prefill_proc_skip_count
#define EJ decode_post_ready_queue
#define EK throughput_synchronized_q2_domain
#define EL prefill_uplink_restraint_strength
#define EM next_decode_downstream_completion
#define EN second
#define EO has_open
#define EP waiting_weight
#define EQ model_strength
#define ER distance_scale
#define ES fallback_remaining_raw
#define ET protected_startup_objective_band
#define EU lower_bound_cached_arrival_count
#define EV epoch_utilization_sum
#define EW decode_upload_pending
#define EX counted_in_cloud_load
#define EY arrival_seen_in_frame
#define EZ target
#define Ea size_t
#define Eb end_layer
#define Ec tpot_guard
#define Ed prediction
#define Ee generation
#define Ef latency_stressed
#define Eg observed_single_token_workload
#define Eh transfer_time
#define Ei right_started
#define Ej remaining_raw
#define Ek probe_pending
#define El pipeline_rate
#define Em item_key
#define En urgent_decode_choice
#define Eo last_arrival_time_ms
#define Ep append_request_group
#define Eq should_hold_for_next_transfer
#define Er record_controller_opportunity
#define Es edge_decode_round_robin_class
#define Et startup_decode_admission_cap
#define Eu has_expensive_prefill_upload
#define Ev append_formed_cohort_members
#define Ew update_skip_counter
#define Ex strict_latency_mode
#define Ey startup_srpt_active
#define Ez score_by_population
#define FA prefill_ready_count
#define FB decode_proc_running
#define FC task
#define FD take
#define FE nullptr
#define FF target_cloud
#define FG service_cost
#define FH current_size
#define FI single_token_finished_count
#define FJ scheduled_prefill_layer_end
#define FK remaining_prefill_path_cost
#define FL probe_normalized_throughput
#define FM tdr_guard
#define FN per_layer
#define FO end
#define FP transfer
#define FQ old_window
#define FR best_score
#define FS epoch_launches
#define FT dynamic_group_size
#define FU completion_time_ms
#define FV choose_modeled_cloud_count
#define FW item
#define FX pure_throughput_objective
#define FY not_arrived
#define FZ throughput_factor
#define Fa remaining_members
#define Fb average_path_cost
#define Fc server
#define Fd resize
#define Fe ready_members
#define Ff payload_units
#define Fg max_age_ratio
#define Fh prefill_post_ready_queue
#define Fi keep_started_decode_only
#define Fj decode_admission_limited
#define Fk cohort_scale_denominator
#define Fl should_defer_prefill_proc_for_decode_transfer
#define Fm break
#define Fn tie_time
#define Fo distance
#define Fp ready_age
#define Fq edge_work
#define Fr edge_busy
#define Fs hot_decode_ready
#define Ft cloud_batch_size
#define Fu prefill_work_skip_limit
#define Fv prefill_pre_ready_queue
#define Fw fallback_representative
#define Fx protected_startup_cloud_prior_strength_milli
#define Fy non_up
#define Fz samples
#define GA reserve
#define GB event_type
#define GC best_batch
#define GD prefill_post
#define GE finished_ids
#define GF decode_queue
#define GG protected_startup_mode
#define GH competing_decode_count
#define GI score_tolerance
#define GJ prefill_service
#define GK next_completion
#define GL completion_time
#define GM candidate_cloud
#define GN aged_batch_size
#define GO admission_waves
#define GP enable_protected_startup_prefill_chunking
#define GQ startup_admission_cap
#define GR normalized_constraint
#define GS key
#define GT void
#define GU sort
#define GV strength
#define GW position
#define GX next_window
#define GY good_epochs
#define GZ decode_post
#define Ga representative
#define Gb per_layer_cost
#define Gc parse_cloud_id
#define Gd minimum_layers
#define Ge layers_to_take
#define Gf expected_phase
#define Gg decode_service
#define Gh candidate_cost
#define Gi blend_strength
#define Gj best_rate_size
#define Gk next_completion_time
#define Gl finished_token_count
#define Gm completed_tdr_sum_ms
#define Gn choose_modeled_cloud
#define Go link_wait
#define Gp schedule_cloud_task
#define Gq decode_post_running
#define Gr balance_by_workload
#define Gs synchronization_population_threshold
#define Gt enable_protected_startup_cloud_prior
#define Gu abs
#define Gv batch
#define Gw waiting_guard
#define Gx transfer_kind
#define Gy prefill_slack
#define Gz next_transfer
#define HA first_service
#define HB epoch_starved
#define HC epoch_blocked
#define HD cohort_target
#define HE TaskTimeTable
#define HF should_hold_synchronized_decode_pre
#define HG select_pure_throughput_refill_cloud
#define HH decode_pre_fresh_expansion_strength
#define HI weight_sum
#define HJ saturation
#define HK low_epochs
#define HL efficiency
#define HM cycle_time
#define HN busy_until
#define HO best_model
#define HP best_cycle
#define HQ schedule_edge_task
#define HR irreversible_limit
#define HS decode_pre_running
#define HT decode_competition
#define HU alternate_ordering
#define HV adjust_ready_count
#define HW uplink_queue_target_strength_milli
#define HX startup_decode_release_gain_domain
#define HY strong_waiting_batch_service_cost
#define HZ predicted_prefill_completion_time
#define Ha first_token_count_at_last_arrival
#define Hb drain_prefill_before_fresh_decode
#define Hc deque
#define Hd array
#define He norm_tp
#define Hf server_c
#define Hg cooldown
#define Hh prefill_gain
#define Hi legacy_value
#define Hj latency_best
#define Hk latency_area
#define Hl future_group
#define Hm decode_slack
#define Hn decode_count
#define Ho current_unit
#define Hp startup_srpt_mode
#define Hq queued_cloud_work
#define Hr pipeline_capacity
#define Hs overhead_fraction
#define Ht edge_choice_score
#define Hu should_hold_decode_post_for_wave
#define Hv non_q2_startup_phase_opportunity
#define Hw baseline_synchronization_enabled
#define Hx short_output_prefill_drain_mode
#define Hy choose_legacy_prefill_chunk_end
#define Hz rank
#define IA lround
#define IB cohort
#define IC throughput_share
#define ID startup_strength
#define IE score_weight_sum
#define IF same_cloud_ready
#define IG remaining_layers
#define IH probe_tpot_guard
#define II probe_saturation
#define IJ is_prefill_phase
#define IK fallback_quantum
#define IL entry_population
#define IM completed_epochs
#define IN cohort_objective
#define IO best_cloud_count
#define IP uplink_queue_target_base_milli
#define IQ strong_waiting_prefers_prefill
#define IR tpot_excess
#define IS rolled_back
#define IT risk_offset
#define IU remote_time
#define IV queued_jobs
#define IW prefill_pre
#define IX hold_budget
#define IY decode_gain
#define IZ synchronized_decode_pre_group
#define Ia is_expensive_prefill_transfer
#define Ib choose_prefill_proc_end_layer
#define Ic long
#define Id weight_strength
#define Ie probe_tdr_guard
#define If max_cloud_count
#define Ig downstream_tail
#define Ih canonical_slots
#define Ii representative_completion_ms
#define Ij epsilon
#define Ik synchronization_warm_target
#define Il prefill_path_exceeds_budget
#define Im choose_prefill_proc_request
#define In move
#define Io upper
#define Ip scale
#define Iq front
#define Ir cycle
#define Is struct
#define It any_of
#define Iu unsigned
#define Iv selected
#define Iw headroom
#define Ix full_raw
#define Iy tdr_excess
#define Iz raw_epochs
#define JA max_pieces
#define JB fifo_order
#define JC decode_pre
#define JD waiting_guards
#define JE waiting_excess
#define JF transfer_limit
#define JG selected_count
#define JH queued_prefill
#define JI overhead_floor
#define JJ is_ready_phase
#define JK future_service
#define JL first_ready_id
#define JM cloud_capacity
#define JN best_objective
#define JO prefer_decode_over_prefill
#define JP handle_transfer_completion
#define JQ downstream_decode_pressure
#define JR startup_cohort_multiplier
#define JS proactive_policy_strength
#define JT long_risk_prefers_prefill
#define JU fallback_remaining_layers
#define JV pair
#define JW spent_waiting
#define JX probe_deficit
#define JY previous_best
#define JZ prefill_score
#define Ja prefill_count
#define Jb cloud_batches
#define Jc make_prefill_post_choice
#define Jd latency_round_robin_mode
#define Je dynamic_batch_candidates
#define Jf dominant_decode_batching
#define Jg score
#define Jh lower
#define Ji group
#define Jj count
#define Jk pop_front
#define Jl old_model
#define Jm norm_wait
#define Jn best_rate
#define Jo available
#define Jp allowance
#define Jq age_bonus
#define Jr update_runtime_fallback
#define Js throughput_upper_bound_
#define Jt should_hold_prefill_pre
#define Ju prefill_post_skip_limit
#define Jv make_prefill_pre_choice
#define Jw make_decode_post_choice
#define Jx hold_for_startup_cohort
#define Jy finish_controller_epoch
#define Jz cloud_decode_population
#define KA build_decode_proc_group
#define KB finish
#define KC excess
#define KD current
#define KE best_id
#define KF waiting_risk
#define KG stage_offset
#define KH refill_cloud
#define KI irreversible
#define KJ first_weight
#define KK very_tolerant_balanced
#define KL tolerant_model_support
#define KM should_hold_decode_pre
#define KN reset_controller_epoch
#define KO medium_weight_tolerant
#define KP make_decode_pre_choice
#define KQ handle_task_completion
#define KR full_prefill_path_cost
#define KS cohort_scale_numerator
#define KT build_decode_pre_group
#define KU best_decode_proc_batch
#define KV baseline_entry_support
#define KW adaptive_admission_cap
#define KX stream_cohort_support
#define KY neutral_prefill_order
#define KZ get_or_create_request
#define Ka unit
#define Kb tp_share
#define Kc fraction
#define Kd finishes
#define Ke finished
#define Kf uplink_time
#define Kg total_limit
#define Kh score_proxy
#define Ki prefill_key
#define Kj future_tail
#define Kk edge_finish
#define Kl decode_rate
#define Km best_cohort
#define Kn transfer_latency_ms_
#define Ko throughput_baseline_
#define Kp strict_model_support
#define Kq representative_batch
#define Kr population_per_cloud
#define Ks available_population
#define Kt within_total_budget
#define Ku ultra_entry_support
#define Kv throughput_pressure
#define Kw ready_prefill_count
#define Kx prefill_finish_time
#define Ky enqueue_ready_state
#define Kz batch_hold_strength
#define LA admission_reduction
#define LB rate
#define LC open
#define LD prefix
#define LE legacy
#define LF header
#define LG unfinished
#define LH tail_limit
#define LI saved_time
#define LJ first_tail
#define LK decode_key
#define LL confidence
#define LM completion
#define LN cloud_rate
#define LO best_index
#define LP remaining_fraction
#define LQ prefill_chunk_mode
#define LR normalized_waiting
#define LS fallback_per_layer
#define LT distance_tolerance
#define LU decode_wait_weight
#define LV decode_finish_time
#define LW ans
#define LX token
#define LY alpha
#define LZ prepare
#define La desired
#define Lb deficit
#define Lc ultra_weight_gate
#define Ld queued_prefill_up
#define Le deficit_threshold
#define Lf decode_efficiency
#define Lg build_assignments
#define Lh active_population
namespace{EH H IP=6000;EH H HW=4750;EH H CW=16;EH Ad GP=CX;EH Ad Gt=CX;EH H Fx=1000;EH H KS=1;EH H Fk=4;EH H JR=8;enum class F:Iu char{FY,CP,Cy,Bx,Ax,Dk,CK,CF,Dl,Ap,HS,EW,Da,FB,DH,Bw,Gq,Ke};Is Bk{F BX=F::FY;H Ee=0;H K=0;H AT=-1;H Q=0;H CL=-1;H AK=0;H FJ=0;H Dw=0;Ad EX=q;Ad CR=q;A AP=0;A AX=0;A M=0;};Is BU{H AU=-1;H Ee=-1;};Is DecodeWave{H Fa=0;H Fe=0;};Is DP{A FU=0;H AT=-1;H Ff=0;Ad ED=q;};Is HE{E::Hd<E::p<E::JV<H,A>>,6>EB;GT add_sample(H AV,B E::Hd<A,6>&Cu){CH(H Bj=0;Bj<6;++Bj){g(Cu[Bj]>=0)EB[Bj].Ai({AV,Cu[Bj]});}}GT sort_samples(){CH(DM&Fz:EB)E::GU(Fz.Bu(),Fz.FO());}A Bp(H kind,H AV)B{B DM&Fz=EB[kind];B DM Io=E::lower_bound(Fz.Bu(),Fz.FO(),E::JV<H,A>{AV,-1e100});g(Io==Fz.Bu())C Io->EN;g(Io==Fz.FO())C Fz.back().EN;g(Io->Cb==AV)C Io->EN;B DM Jh=E::prev(Io);B A ratio=G<A>(AV-Jh->Cb)/(Io->Cb-Jh->Cb);C Jh->EN+ratio*(Io->EN-Jh->EN);}H KU(A Y)B{E::p<H>BO{1};CH(B DM&[AV,Cu]:EB[4]){(GT)Cu;BO.Ai(E::EC(AV,2000));}E::GU(BO.Bu(),BO.FO());BO.erase(E::unique(BO.Bu(),BO.FO()),BO.FO());H Dn=1;A CD=(Y+Bp(4,1));CH(H AV:BO){B A unit_cost=(Y+Bp(4,AV))/AV;g(unit_cost+1e-12<CD){CD=unit_cost;Dn=AV;}}C Dn;}};Ad Gc(B E::DN&LX,H&P){g(LX.AV()<2||LX[0]!='C')C q;Ic Ic Cu=0;CH(E::Ea i=1;i<LX.AV();++i){g(!E::isdigit(G<Iu char>(LX[i])))C q;Cu=Cu*10+LX[i]-'0';g(Cu>INT_MAX)C q;}P=G<H>(Cu);C CX;}enum class BZ:Iu char{IW,GD,JC,GZ,};Is At{Ad AF=q;BZ Bj=BZ::IW;A BJ=0;H Dh=0;H AU=-1;H AT=-1;E::p<H>U;};Is Scheduler{static EH H BP=4096;H O;H AE;H CS;A Y;A Az;A DD;A AJ;A AD;A X;A AB;A I;A AW;A Cz;HE Aw;A Ae=0;A J=0;Ad Fr=q;E::p<Ad>Bg;E::Hd<A,2>AM{0.,0.};E::Hd<E::Hc<DP>,2>Af;E::Hd<E::p<E::Hc<E::JV<A,H>> >,2>BB;E::Hd<Ad,2>BQ{CX,CX};E::p<H>AC;E::p<H>Ah;E::p<H>AS;E::p<A>V;E::p<A>DL,BF,Au;H DQ=0;H Es=0;H AG=0;Ad Fj=q;H AO=1;H AR=1;H e=1;H Bf=1;H Ao=1;H AN=0;Ad BL=q;Ad Hp=q;Ic Ic Al=0;A DZ=-1;A Eo=-1;H Dt=0;H HC=0;H FS=0;H HB=0;A EV=0;H GY=0;H HK=0;H Hg=0;H IM=0;Ad Ek=q;A JX=0;A II=0;A Ie=0;A IH=0;A FL=0;E::Hd<E::p<H>,3>CT;E::Hd<E::p<H>,3>CG;E::p<A>Bo;E::p<H>BV;E::p<H>Db;Ad Ca=q;H Et=0;A CC=0,DI=0;H CU=1,Dp=1;Ad T()B{C Cz>=2*AW&&!CM()&&!Am();}A HY(H EF,H AH)B{A FG=L(3+EF,AH);g(!EF)FG=E::BC(FG,Az*E::EC(O,AH)+N(AH)-Az);Bi g(EF==1)FG=E::BC(FG,N(AH));C FG;}H Bc=64;H DG=64;H Av=0;H AL=0;H EU=-1;A Dx=0;A Gm=0;Ad AI=q;H BT=0;H FI=0;Ic Ic Gl=0;E::p<H>Dm;H Bd=0;H Ha=0;H Ci=0;Ad EY=q;H CQ=0;H CY=0;E::p<H>EI;E::p<H>EE;E::Hd<H,18>Bq{};E::p<H>BW;E::p<H>BE;E::p<Bk>D;E::p<DecodeWave>Bm;E::Hc<BU>Fv;E::Hc<BU>Fh;E::Hc<BU>CZ;E::Hc<BU>DY;E::Hc<BU>EJ;E::p<E::Hc<BU>>CA;E::p<E::Hc<BU>>Dz;Scheduler(H num_clouds_,H num_layers_,H bytes_per_token_,A task_setup_ms_,A Kn,A bandwidth_gbps_,A tdr_slo_ms_,A tpot_slo_ms_,A Js,A Ko,A distance_base_,A w_tp_,A w_c_,HE task_times_):O(num_clouds_),AE(num_layers_),CS(bytes_per_token_),Y(task_setup_ms_),Az(Kn),DD(bandwidth_gbps_),AJ(tdr_slo_ms_),AD(tpot_slo_ms_),X(Js),AB(Ko),I(distance_base_),AW(w_tp_),Cz(w_c_),Aw(E::In(task_times_)),Bg(O),AC(O),Ah(O),AS(O),V(O),DL(O,-1e100),BF(O),Au(O),EI(O),EE(O),BW(O),BE(O),CA(O),Dz(O){BB[0].Fd(O);BB[1].Fd(O);CH(H Cm=0;Cm<3;++Cm){CT[Cm].Fd(BP+1);CG[Cm].Fd(BP+1);H BG=1;A CD=E::BS<A>::DR();CH(H AV=1;AV<=BP;++AV){B A Ka=L(3+Cm,AV)/AV;B A eps=E::Cn(CD)?1e-12*E::BC(1.,E::Gu(CD)):0;g(!E::Cn(CD)||Ka<CD-eps||(E::Gu(Ka-CD)<=eps&&AV>BG)){BG=AV;CD=Ka;}CT[Cm][AV]=BG;g(AW<=1e-12&&Cz>1e-12){H Hj=1;A Hk=E::BS<A>::DR();CH(H Gv=1;Gv<=AV;++Gv){B H full=AV/Gv;B H rem=AV%Gv;B A full_cost=L(3+Cm,Gv);A area=G<A>(Gv)*full_cost*full*(full+1)/2.;g(rem>0){area+=G<A>(rem)*(full*full_cost+L(3+Cm,rem));}g(area<Hk-1e-12||(E::Gu(area-Hk)<=1e-12&&Gv>Hj)){Hk=area;Hj=Gv;}}CG[Cm][AV]=Hj;}Bi{CG[Cm][AV]=CT[Cm][AV];}}}g(T())CH(H EF=0;EF<3;++EF){E::p<A>DT(2001,E::BS<A>::DR());DT[0]=0;CH(H R=1;R<=2000;++R)CH(H AH=1;AH<=R;++AH){A Gh=DT[R-AH]+HY(EF,AH),Ij=1e-12*E::BC(1.,E::Gu(DT[R]));g(Gh<DT[R]-Ij||(E::Gu(Gh-DT[R])<=Ij&&AH>CT[EF][R]))DT[R]=Gh,CT[EF][R]=AH;}}AO=Aw.KU(Y);B H Co=2000;Bo.assign(Co+1,E::BS<A>::DR());BV.assign(Co+1,1);Db.assign(Co+1,1);A Dq=0;A DO=0;H Gj=1;E::p<A>Hr(Co+1);CH(H Ay=1;Ay<=Co;++Ay){A HP=E::BS<A>::DR();H best_q=1;CH(H As=1;As<=E::EC(O,Ay);++As){E::p<H>Jb(As,Ay/As);CH(H i=0;i<Ay%As;++i)++Jb[i];A DV=L(3,Ay);E::p<E::JV<A,H>>CI;CI.GA(As);A JM=0;CH(H AH:Jb){DV+=N(AH);CI.Ai({DV+L(4,AH),AH});JM+=G<A>(AH)/L(4,AH);}E::GU(CI.Bu(),CI.FO());A Cl=0;CH(B DM&[KB,AH]:CI){Cl=E::BC(Cl,KB)+N(AH);}B A Ir=Cl+L(5,Ay);g(Ir<HP-1e-12){HP=Ir;best_q=As;}B A edge_capacity=G<A>(Ay)/(L(3,Ay)+L(5,Ay));B A link_capacity=G<A>(Ay)/(As*Az+8. *G<A>(CS)*Ay/(DD*1e6));DO=E::BC(DO,E::EC({edge_capacity,JM,link_capacity}));}Hr[Ay]=DO;Bo[Ay]=HP;Db[Ay]=best_q;B A LB=G<A>(Ay)/HP;g(LB>Dq+1e-12){Dq=LB;Gj=Ay;}BV[Ay]=(Ay==1?1:BV[Ay-1]);B H JY=BV[Ay];g(LB>G<A>(JY)/Bo[JY]+1e-12){BV[Ay]=Ay;}}CC=DO>1e-15?Dq/DO:0;B A single_rate=1./Bo[1];B A Dr=Dq/E::BC(1e-15,single_rate);B A LT=I/(I+32.);B A BR=AW+Cz*LT;Ae=E::BS<A>::DR();A DF=0;E::p<H>Cs{1};CH(B DM&column:Aw.EB){CH(B DM&[AV,Cu]:column){(GT)Cu;Cs.Ai(AV);}}E::GU(Cs.Bu(),Cs.FO());Cs.erase(E::unique(Cs.Bu(),Cs.FO()),Cs.FO());CH(H AV:Cs){B A path=L(0,AV)+2. *N(AV)+L(1,AV)+L(2,AV);Ae=E::EC(Ae,path);DF=E::BC(DF,path);}B A modeled_norm_tp=E::Bt((Dq-AB)/E::BC(1e-15,X-AB),0.,1.);B Ad generous_waiting=Ae<=0.65*AJ+1e-12&&Bo[1]<=0.65*AD+1e-12;Hp=AB>1e-15&&AW>=0.35-1e-12&&Cz+1e-12>=AW&&I>=256.&&I<10000.&&BR>=0.95-1e-12&&modeled_norm_tp>=0.75-1e-12&&DF>=1.20*Ae-1e-12&&generous_waiting;B Ad IN=AW>=0.72-1e-12||(I>=10000.&&X>1.);B Ad KO=AW>=0.72-1e-12&&AW<=0.86+1e-12&&I>=256.&&BR>=0.97-1e-12;B Ad KK=AW>=0.30-1e-12&&AW<=0.70+1e-12&&I>=10000.&&X>1.&&BR>=0.97-1e-12;B Ad Kp=CC>=0.72-1e-12&&Dr>=1.18-1e-12;B Ad KL=CC>=0.52-1e-12&&Dr>=1.05-1e-12;B Ad Hw=O>=2&&Cz>0.02&&IN&&BR>=0.90-1e-12&&Gj>=2&&(Kp||((KO||KK)&&KL));B A IE=AW+Cz;B A IC=IE>1e-15?AW/IE:0.;B A Lc=E::Bt((IC-0.95)/0.03,0.,1.);B A KX=CC*E::sqrt(E::BC(1.,Dr));B A ID=E::Bt((IC-0.82)/0.08,0.,1.);g(O>=2&&I>=64.&&BR>=0.90-1e-12&&ID>1e-12){Et=E::Bt(G<H>(E::IA(ID*JR*O)),2,8*O);}B Ad Dc=O>=2&&IN&&Gj>=2&&Dr>=1.02-1e-12&&Lc*KX>=0.45+.25*Cz-1e-12;Ca=Hw||Dc;Dp=BV[E::EC(Co,E::BC(8,O*E::Bt(AO,2,64)))];Bc=E::BC(24,E::EC(192,Dp));DG=Bc;B H bootstrap_index=E::EC(Co,E::BC(1,Dp));B Ad Jf=Dr>=G<A>(Bc)-1e-12&&DF<=Bo[bootstrap_index]+1e-12;B Ad KV=Jf&&CC>=.74-1e-12;B Ad Ku=Dc&&CC>=0.45-1e-12;g(Ca&&(KV||Ku)){H IL=Bc;B DM Kh=[&](H R){B H IB=BV[E::Bt(R,1,Co)];B A Ir=Bo[IB];B A LB=G<A>(IB)/Ir;B A He=E::Bt((LB-AB)/E::BC(1e-15,X-AB),0.,1.);B A Iy=E::BC(0.,Ir/E::BC(1e-9,AJ)-1.);B A IR=E::BC(0.,Ir/E::BC(1e-9,AD)-1.);B A Fo=E::hypot(Iy,IR);B A Jm=I>1e-15?E::Bt(1.-Fo/I,0.,1.):G<A>(Fo<=1e-12);C AW*He+Cz*Jm;};B A singleton_score=Kh(1);CH(H R=2;R<=Bc;++R){B H IB=BV[R];g(IB>=2&&Kh(R)>singleton_score+1e-12){IL=R;Fm;}}DG=IL;}g(AW>=0.72-1e-12){e=2000;}Bi{B A HI=AW+Cz;B A Kb=HI>0?AW/HI:.5;H GO=4;g(Kb<0.34)GO=1;g(Kb>0.67)GO=3;B H practical_batch=E::EC(AO,64);B H window_cap=Kb>0.67?768:512;e=E::Bt(O*practical_batch*GO,1,window_cap);}g(I>=10000.)e=2000;g(I>=100.&&I<10000.&&AW>1e-12&&AW<.25-1e-12){e=E::EC(1024,8*O*E::EC(AO,64));}g(AW>=0.55-1e-12&&AW<0.72-1e-12&&Cz>0.05&&I>=256.&&I<10000.&&BR>=0.90-1e-12){B DM model=[&](H R){B H IB=BV[R];B A cohort_rate=IB/Bo[IB];B A finite_pipeline=E::EC(Hr[R],R/Bo[1]);B A LB=E::BC(cohort_rate,finite_pipeline);B A robust_rate=0.85*LB;B A He=E::Bt((robust_rate-AB)/E::BC(1e-15,X-AB),0.,1.);B A KC=E::BC(0.,R/E::BC(1e-15,LB)/E::BC(1e-9,AD)-1.);B A Jm=I>1e-15?E::BC(0.,1.-KC/I):G<A>(KC<=1e-12);C E::JV<A,A>{AW*He+Cz*Jm,He};};B H FQ=E::Bt(e,1,Co);B DM Jl=model(FQ);H BO=FQ;DM HO=Jl;CH(H R=1;R<FQ;++R){B DM Cu=model(R);g(Cu.Cb>HO.Cb+1e-12){BO=R;HO=Cu;}}g(BO<FQ&&HO.Cb>=Jl.Cb+0.001&&HO.EN+0.005>=Jl.EN){A fade_weight=E::Bt((BR-0.985)/0.010,0.,1.);e=E::BC(O,G<H>(E::IA(FQ+fade_weight*(BO-FQ))));}}g(AW<=1e-12&&Cz>=0.95-1e-12&&I<2.){e=E::BC(1,e*15/16);}B A JS=AW>1e-12?E::Bt((0.30-AW)/0.12,0.,1.):0.;e=E::BC(e,G<H>(E::IA(e+JS*(2000-e))));g(T()){E::p<A>Ez(2001);A FR=-E::BS<A>::DR();CH(H R=1;R<=2000;++R){H As=E::EC(O,R),per_cloud_batch=(R+As-1)/As;A HM=L(3,R)+2*(Az*As+N(R)-Az)+L(4,per_cloud_batch)+L(5,R),Kl=G<A>(R)/HM;DI=E::BC(DI,Kl);A BN=E::Bt((Kl-AB)/E::BC(1e-15,X-AB),0.,1.),JE=E::BC(0.,(1.5*HM-AD)/E::BC(1e-9,AD)),LR=I>1e-15?E::BC(0.,1-JE/I):G<A>(JE<=1e-12);Ez[R]=AW*BN+Cz*LR;FR=E::BC(FR,Ez[R]);}A GI=.04+.15*E::BC(0.,AW-.55);CH(H R=1;R<=2000;++R)g(Ez[R]>=FR-GI)CU=R;CU=E::BC(CU,O);}AR=e;Bf=O*E::Bt(AO,1,64);Ao=AR;g(I>=100.&&I<10000.&&AW>=0.1-1e-12&&AR<2000){g(AW<.25-1e-12){Ao=E::EC(1024,AR+3*Bf);}Bi g(AW<0.7-1e-12){Ao=2000;}Bi g(AW<0.8-1e-12){Ao=E::EC(1536,AR+2*Bf);}}g(I>=100.&&I<10000.&&AW>1e-12&&AW<.25-1e-12){Ao=AR;}}Ad AQ(H id)B{C id>=0&&id<G<H>(D.AV());}Ad Am()B{C Ar()==1&&Cz>AW;}Ad Ba()B{C AI;}Bk&KZ(H id){g(id>=G<H>(D.AV()))D.Fd(G<E::Ea>(id)+1);C D[id];}Ad JJ(F BX)B{C BX==F::CP||BX==F::Ax||BX==F::CF||BX==F::Ap||BX==F::Da||BX==F::Bw;}GT HV(F BX,H P,H delta){g(!JJ(BX))C;Bq[G<E::Ea>(BX)]+=delta;g(BX==F::Ax&&P>=0&&P<O)BW[P]+=delta;g(BX==F::Da&&P>=0&&P<O)BE[P]+=delta;}GT Ky(H id){B BU FW{id,D[id].Ee};switch(D[id].BX){case F::CP:Fv.Ai(FW);Fm;case F::Ax:CA[D[id].AT].Ai(FW);Fm;case F::CF:Fh.Ai(FW);Fm;case F::Ap:g(D[id].Q==0)CZ.Ai(FW);Bi DY.Ai(FW);Fm;case F::Da:Dz[D[id].AT].Ai(FW);Fm;case F::Bw:EJ.Ai(FW);Fm;default:Fm;}}GT BK(H id,F to){Bk&r=D[id];HV(r.BX,r.AT,-1);r.BX=to;++r.Ee;g(JJ(to))r.AX=J;HV(r.BX,r.AT,1);Ky(id);}Ad BY(H id,F from,F to){g(!AQ(id)||D[id].BX!=from)C q;BK(id,to);C CX;}Ad release_server(B E::DN&Fc){g(Fc=="E"){g(!Fr)C q;Fr=q;C CX;}H P=-1;g(!Gc(Fc,P)||P<0||P>=O||!Bg[P])C q;Bg[P]=q;BF[P]=Au[P]=0;C CX;}GT Cj(H An,H P,Ad Ck,H units){g(An<0||An>1||P<0||P>=O||units<=0||!BQ[An])C;B A due=E::BC(J,AM[An])+N(units);AM[An]=due;Af[An].Ai({due,P,units,Ck});g(Ck)BB[An][P].Ai({due,units});}GT Cv(H An){BQ[An]=q;Af[An].clear();CH(DM&EG:BB[An])EG.clear();AM[An]=J;}GT CV(H An,H P,Ad Ck,Ic Ic bytes,H members){g(An<0||An>1||!BQ[An])C;DM&EG=Af[An];g(EG.Dd()){Cv(An);C;}B DP Ed=EG.Iq();B Ic Ic modeled_bytes=G<Ic Ic>(CS)*Ed.Ff;B A Ij=1e-7*E::BC(1.,E::Gu(J));g(Ed.AT!=P||Ed.ED!=Ck||modeled_bytes!=bytes||(Ck&&Ed.Ff!=members)||E::Gu(Ed.FU-J)>Ij||(!Ck&&members!=1)){Cv(An);C;}EG.Jk();g(Ck){DM&GF=BB[An][P];g(GF.Dd()||E::Gu(GF.Iq().Cb-Ed.FU)>Ij||GF.Iq().EN!=Ed.Ff){Cv(An);C;}GF.Jk();}g(EG.Dd())AM[An]=J;}E::JV<A,H>Aq(H An,H P=-1)B{g(An<0||An>1||!BQ[An]){C{E::BS<A>::DR(),0};}E::JV<A,H>BG{E::BS<A>::DR(),0};B H Cb=P<0?0:P;B H last=P<0?O:P+1;CH(H GM=Cb;GM<last;++GM){B DM&EG=BB[An][GM];g(!EG.Dd()&&EG.Iq().Cb>J+1e-9&&EG.Iq().Cb<BG.Cb){BG=EG.Iq();}}C BG;}Ad BA()B{C E::It(AS.Bu(),AS.FO(),[](H Jj){C Jj>0;});}Ad CN(B E::p<H>&Ch)B{C E::It(Ch.Bu(),Ch.FO(),[&](H id){C AQ(id)&&D[id].Q>0;});}Ad Ey()B{C Hp&&!BL&&!BA();}Ad Ia(H K)B{B A Eh=N(K);B A remote=Y+L(1,K);B A edge=Y+L(0,K);C Eh>=2. *remote-1e-12&&Eh>=1.25*edge-1e-12;}Ad Eu()B{g(!BQ[0]||Av<64)C q;C E::It(Af[0].Bu(),Af[0].FO(),[&](B DP&FP){C!FP.ED&&Ia(FP.Ff);});}H Ld()B{C G<H>(E::count_if(Af[0].Bu(),Af[0].FO(),[](B DP&FP){C!FP.ED;}));}A KR(H id)B{B H K=D[id].K;C L(0,K)+2. *N(K)+L(1,K)+L(2,K);}A EL(H id)B{g(!AQ(id)||!BQ[0]||Af[0].Dd()||BA()||Cz<=AW+1e-12)C 0;B H K=D[id].K;B A Eh=N(K);B A edge=L(0,K);B A remote=L(1,K);B A HI=E::BC(1e-12,AW+Cz);B A Id=E::Bt((Cz-AW)/(0.10*HI),0.,1.);B A link_ratio=E::EC(Eh/E::BC(1e-12,edge),O*Eh/E::BC(1e-12,2. *remote));B A cost_strength=E::Bt((link_ratio-0.80)/0.20,0.,1.);A EQ=Id*cost_strength;g(EQ<=1e-12||KR(id)<=Ae+edge+1e-12){C 0;}B A queue_per_cloud=G<A>(Ld())/E::BC(1,O);B A EZ=IP*0.001-HW*0.001*EQ;B A depth_strength=E::Bt(queue_per_cloud-(EZ-1.),0.,1.);EQ*=depth_strength;g(BL){EQ*=0.75+0.15*Id;}C EQ;}Ad Jt(H id)B{g(id<0||BA()||!BQ[0]||Af[0].Dd())C q;B Ad legacy_hold=!BL&&Eu();g(!legacy_hold&&!(AW>=.4-1e-12&&AW<.5-1e-12)&&EL(id)<0.85-1e-12){C q;}g(Cz>AW+1e-12&&I>=100.-1e-12&&Eo>=0&&AJ>1e-12){B A FP=N(D[id].K);B A JF=.005*AJ;B A KI=FP+L(0,D[id].K);B A HR=.01*AJ;B Ad within_budget=FP<=JF+1e-12*E::BC(1.,JF)&&KI<=HR+1e-12*E::BC(1.,HR);B A Iz=(J-Eo)/(2. *AJ);B H epochs=Iz>=4.?4:(Iz<=0.?0:G<H>(Iz));B H per_epoch=E::BC(1,(O+3)/4);B H Jp=epochs*per_epoch;B A LH=.04*AJ;B A Kg=.04*AJ;B Ad Kt=Jp*FP<=LH+1e-12*E::BC(1.,LH)&&Jp*KI<=Kg+1e-12*E::BC(1.,Kg);H JH=0;CH(B DP&FW:Af[0]){g(!FW.ED)++JH;}g(within_budget&&Kt&&JH<Jp){C q;}}B A next_wakeup=Af[0].Iq().FU;B A LZ=L(0,D[id].K);C(AW>=.4-1e-12&&AW<.5-1e-12)||next_wakeup+LZ<=AM[0]+1e-12*E::BC(1.,E::Gu(AM[0]));}Ad KQ(E::istream&in){E::DN Fc,family,Cm;g(!(in>>Fc>>family>>Cm)||!release_server(Fc))C q;g(family=="P"){g(Cm=="PRE"){H P=-1,id=-1;A CO=0;g(!(in>>P>>id>>CO))C q;g(Fc!="E"||!AQ(id)||D[id].AT!=P)C q;g(!BY(id,F::Cy,F::Bx))C q;Cj(0,P,q,D[id].K);C CX;}g(Cm=="PROC"){H l=-1,r=-1,P=-1,id=-1;A CO=0;g(!(in>>l>>r>>P>>id>>CO))C q;H Hf=-1;g(!Gc(Fc,Hf)||Hf!=P||!AQ(id)||D[id].AT!=P||l!=D[id].AK||r!=D[id].FJ||l<0||l>=r||r>AE){C q;}B A raw=Aw.Bp(1,D[id].K)*G<A>(r-l)/AE;V[P]=E::BC(0.,V[P]-raw);D[id].AK=r;++D[id].Dw;g(r==AE){BK(id,F::CK);Cj(1,P,q,D[id].K);}Bi{BK(id,F::Ax);}C CX;}g(Cm=="POST"){H P=-1,id=-1;A CO=0;g(!(in>>P>>id>>CO))C q;g(Fc!="E"||!AQ(id)||D[id].AT!=P)C q;g(!BY(id,F::Dl,F::Ap))C q;--AL;Dx-=D[id].AP;Gm+=J-D[id].AP;D[id].M=J;++AN;C CX;}C q;}g(family!="D")C q;H P=-2,Bl=0;g(!(in>>P>>Bl)||Bl<1)C q;E::p<H>Ch(G<E::Ea>(Bl));CH(H&id:Ch){g(!(in>>id))C q;}A CO=0;g(!(in>>CO))C q;g(Cm=="PRE"){g(Fc!="E"||P!=-1)C q;E::p<H>DS(O);CH(H id:Ch){g(!BY(id,F::HS,F::EW))C q;++DS[D[id].AT];}CH(H FF=0;FF<O;++FF){g(DS[FF]>0)Cj(0,FF,CX,DS[FF]);}C CX;}g(Cm=="PROC"){H Hf=-1;g(!Gc(Fc,Hf)||Hf!=P||P<0||P>=O){C q;}CH(H id:Ch){g(!AQ(id)||D[id].AT!=P||!BY(id,F::FB,F::DH)){C q;}}Cj(1,P,CX,Bl);C CX;}g(Cm=="POST"){g(Fc!="E"||P!=-1)C q;CH(H id:Ch){g(!AQ(id)||D[id].BX!=F::Gq)C q;Bk&r=D[id];g(r.Q==0){++AS[r.AT];Dm.Ai(id);}++r.Q;++Al;r.M=J;BK(id,F::Ap);}C CX;}C q;}Ad JP(E::istream&in){E::DN An,Gx;H P=-1,Bl=0;Ic Ic AV=0;g(!(in>>An>>P>>AV>>Gx>>Bl)||P<0||P>=O||AV<0||Bl<1){C q;}E::p<H>Ch(G<E::Ea>(Bl));CH(H&id:Ch){g(!(in>>id))C q;}g(Gx=="PRE"){g(Bl!=1||!AQ(Ch[0])||D[Ch[0]].AT!=P)C q;g(An=="UP"){CV(0,P,q,AV,Bl);C BY(Ch[0],F::Bx,F::Ax);}g(An=="DOWN"){CV(1,P,q,AV,Bl);C BY(Ch[0],F::CK,F::CF);}C q;}g(Gx!="DEC")C q;g(An=="UP"){CV(0,P,CX,AV,Bl);CH(H id:Ch){g(!AQ(id)||D[id].AT!=P||!BY(id,F::EW,F::Da)){C q;}}C CX;}g(An=="DOWN"){CV(1,P,CX,AV,Bl);CH(H id:Ch){g(!AQ(id)||D[id].AT!=P||!BY(id,F::DH,F::Bw)){C q;}B H Br=D[id].CL;g(Br>=0&&Br<G<H>(Bm.AV()))++Bm[Br].Fe;}C CX;}C q;}Ad read_event(E::istream&in,E::p<H>&GE){E::DN GB;g(!(in>>GB))C q;g(GB=="ARR"){H id=-1,K=0;g(!(in>>id>>K)||id<0||K<=0)C q;Bk&Z=KZ(id);g(Z.BX!=F::FY)C q;Z.K=K;Z.AP=J;Eo=J;EY=CX;++Av;++AL;Dx+=J;g(DZ<0)DZ=J;BK(id,F::CP);C CX;}g(GB=="FIN"){H id=-1;g(!(in>>id)||!AQ(id))C q;GE.Ai(id);C CX;}g(GB=="TDN")C KQ(in);g(GB=="XDN")C JP(in);C q;}Ad finish_frame(B E::p<H>&GE){E::p<Iu char>Kd(D.AV(),0);CH(H id:GE){g(AQ(id))Kd[id]=1;}CH(H id:Dm){g(!AQ(id))C q;++Bd;g(id>=G<H>(Kd.AV())||!Kd[id]){++Ci;}}g(EY){Ha=Bd;EY=q;}Dm.clear();CH(H id:GE){g(!AQ(id)||D[id].BX!=F::Ap||D[id].Q<=0){C q;}Bk&Z=D[id];g(!Z.EX||Z.AT<0||Z.AT>=O||AC[Z.AT]<=0)C q;--AC[Z.AT];Z.EX=q;g(!Z.CR||AG<=0||Ah[Z.AT]<=0)C q;--AG;--Ah[Z.AT];g(Z.Q>0&&AS[Z.AT]>0)--AS[Z.AT];Z.CR=q;++BT;Gl+=Z.Q;g(Z.Q==1)++FI;g(Z.Q>1)BL=CX;BK(id,F::Ke);}g(!AY()&&BT>=8&&AW>0.10){B A singleton_ratio=G<A>(FI)/BT;B A mean_tokens=G<A>(Gl)/BT;g(singleton_ratio>=0.75&&mean_tokens<=1.5){B A LL=E::EC(1.,(BT-7)/24.);B A GI=I/(I+16.);B A GV=LL*(0.45+0.55*AW)*(0.35+0.65*GI);B H La=E::Bt(G<H>(E::IA(AR+GV*(2000-AR))),AR,2000);e=E::BC(e,La);Ao=E::BC(Ao,La);g(LL>=0.75)AR=E::BC(AR,La);}}C CX;}E::p<H>AZ(E::Hc<BU>&EG,F Gf){E::p<H>Ch;B E::Ea Jj=EG.AV();Ch.GA(Jj);CH(E::Ea i=0;i<Jj;++i){B BU FW=EG.Iq();EG.Jk();g(!AQ(FW.AU)||D[FW.AU].Ee!=FW.Ee||D[FW.AU].BX!=Gf){CB;}Ch.Ai(FW.AU);EG.Ai(FW);}C Ch;}H JL(E::Hc<BU>&EG,F Gf){while(!EG.Dd()){B BU FW=EG.Iq();EG.Jk();g(!AQ(FW.AU)||D[FW.AU].Ee!=FW.Ee||D[FW.AU].BX!=Gf){CB;}EG.Ai(FW);C FW.AU;}C-1;}A L(H kind,H AV)B{C Y+Aw.Bp(kind,AV);}Ad Be()B{C AW<=1e-12&&Cz>1e-12;}Ad FX()B{C Cz<=1e-15&&AW>1e-15;}Ad Eg()B{C Bd>=8&&Ci==0;}H Kw()B{C Bq[G<E::Ea>(F::CP)]+Bq[G<E::Ea>(F::Ax)]+Bq[G<E::Ea>(F::CF)];}Ad ET()B{C Cz>=0.30-1e-12&&AW<=0.52+1e-12&&I>=512.-1e-12&&X<=1.+1e-12;}Ad GG()B{C!BL&&ET();}A Kv()B{C AW+Cz*I/(I+32.);}A HH()B{g(ET()){C 0.;}B A teacher_strength=E::Bt((Kv()-0.985)/0.010,0.,1.);C 1.-teacher_strength;}Ad BM()B{C GG()&&AW>=0.45-1e-12;}Ad Bz()B{C GG()&&AL>=(Eg()?2:E::BC(2,(O+1)/2));}Ad Hx()B{B A relative_span=(X-AB)/E::BC(1e-15,E::BC(E::Gu(X),E::Gu(AB)));C Cz+1e-12>=AW&&!AY()&&relative_span+1e-12>=.10&&Eg()&&Kw()>=E::BC(2,O);}Ad Ex()B{C Be()&&I<=8.+1e-12;}Ad Jd()B{g(Ex())C CX;g(!Be())C q;B H R=E::Bt(E::BC(1,AG),1,BP);C CG[0][R]==1&&CG[2][R]==1;}Ad CM()B{C Ar()==1&&AW>Cz||Ar()==2&&AW<Cz||!Ar()&&(AW>=.2&&AW<.3||AW>=.6&&AW<.7||AW>.95&&Cz+1e-12>=.02);}Ad AA()B{C!CM()&&AW>=.88&&Cz>1e-12&&Cz<=.02+1e-12;}Ad Ac()B{C AA();}H FV()B{H R=E::EC(2000,E::BC(1,Av-BT)),If=E::EC(O,R);g(If<2)C 1;A Fb=0,BI=0;CH(B DM&x:D)g(x.BX!=F::FY){Fb+=L(0,x.K)+2*N(x.K)+L(1,x.K)+L(2,x.K);BI+=Aw.Bp(1,x.K);}Fb/=E::BC(1,Av);BI/=E::BC(1,Av);A FR=-1e100;H IO=1;CH(H As=1;As<=If;++As){A edge_rate=R/(L(3,R)+L(5,R)),link_rate=R/(As*Az+8. *G<A>(CS)*R/(DD*1e6)),LN=0,DV=L(3,R);E::p<E::JV<A,H>>CI;CH(H i=0;i<As;++i){H x=R/As+(i<R%As);LN+=x/L(4,x);DV+=N(x);CI.Ai({DV+L(4,x),x});}A El=E::EC({edge_rate,link_rate,LN}),BN=E::Bt((El-AB)/E::BC(1e-15,X-AB),0.,1.);E::GU(CI.Bu(),CI.FO());A Cl=0;CH(DM LM:CI)Cl=E::BC(Cl,LM.Cb)+N(LM.EN);A HM=Cl+L(5,R),predicted_tpot=E::BC(HM,R/E::BC(El,1e-30)),predicted_tdr=Fb+BI*E::BC(0.,G<A>(R)/As-1.)*.45,Iy=E::BC(0.,predicted_tdr/AJ-1.),IR=E::BC(0.,predicted_tpot/AD-1.),Fo=E::hypot(Iy,IR),GR=E::BC(0.,1-Fo/I),Jg=AW*BN+Cz*GR+1e-5*Cz*(GR<=1e-15?-Fo/(1+Fo):-Fo)+1e-6*AW*(BN>=1-1e-15?El/(1+El):El)-1e-9*As;g(Jg>FR+1e-12){FR=Jg;IO=As;}}C IO;}H Gn(H As)B{A BI=0;CH(B DM&Z:D)g(Z.BX!=F::FY)BI+=Aw.Bp(1,Z.K);BI/=E::BC(1,Av);A ER=E::Bt(I,.12,8.),k=Cz/(Cz+AW*ER),JN=1e100;H Aa=0;CH(H c=0;c<As;++c){H Hn=Ah[c];CH(B DM&Z:D)Hn+=!Z.CR&&Z.AT==c&&Z.BX==F::Ap;A Ja=AC[c],objective=(1-k)*(Ja*BI+.35*Hn*L(4,E::BC(1,Hn)))+k*(V[c]+E::BC(0.,BF[c]-J)+.25*Ja*BI)+1e-7*c;g(objective<JN){JN=objective;Aa=c;}}C Aa;}H GN(H EF,B E::p<H>&Ch)B{A Fg=0;CH(H id:Ch)Fg=E::BC(Fg,(J-D[id].M)/E::BC(1e-9,AD*(D[id].Q?1.:2.)));H Cc=5;g(Fg>1.15)--Cc;g(Fg>1.8)--Cc;C Bb(EF,G<H>(Ch.AV()),Cc);}H Hy(H id,H P)B{B DM&Z=D[id];H IG=AE-Z.AK;g(IG<=1||AE<=1||!AS[P])C AE;A full_raw_cost=Aw.Bp(1,Z.K),Gb=full_raw_cost/AE,k=Bs(),Cw=AD*(.14+1.35*(1-k));Cw=E::BC(Cw,Y*(1.25+2.5*(1-k)));A age_ratio=(J-Z.AP)/E::BC(1e-9,AJ);g(age_ratio>.72)Cw*=1+3*(age_ratio-.72)*E::BC(.25,k);DM Gz=Aq(0,P);g(E::Cn(Gz.Cb)&&Gz.Cb>J&&k>.25)Cw=E::EC(Cw,E::BC(Y+Gb,(Gz.Cb-J)*.95));H Ge=E::BC(1,G<H>(E::floor(E::BC(Gb,Cw-Y)/E::BC(1e-15,Gb)+1e-10)));Ge=E::EC(Ge,IG);H Eb=Z.AK+Ge;Ad JQ=E::It(AS.Bu(),AS.FO(),[](H v){C v>0;})&&(N(Z.K)>.18*AD||AM[1]-J>.12*AD||E::It(D.Bu(),D.FO(),[](B Bk&r){C r.BX==F::DH||r.BX==F::FB;}));A slack_ratio=(Z.AP+AJ-(J+FK(id,2)))/E::BC(1e-9,AJ);g(Eb==AE&&JQ&&k>.35&&slack_ratio>.08&&Z.AK<AE-1)--Eb;C E::BC(Z.AK+1,Eb);}Ad JO(H Ag,B E::p<H>&BH)B{H Ab=G<H>(BH.AV());A k=Bs(),LV=J+L(4,Ab)+N(Ab)+L(5,Ab),Dy=E::BS<A>::DR();CH(H id:BH)Dy=E::EC(Dy,D[id].Q?D[id].M+AD:J+(1.5+1.5*(1-k))*AD);A Hm=(Dy-LV)/AD;B DM&Ak=D[Ag];A Kx=J+Y+Aw.Bp(1,Ak.K)*G<A>(AE-Ak.AK)/AE+N(Ak.K)+L(2,Ak.K),Gy=(Ak.AP+AJ-Kx)/AJ,Lf=G<A>(Ab)/L(4,Ab)/(G<A>(AO)/L(4,AO)),decode_score=4.5+1.2*(1-k)*Lf-k*Hm+.14*E::log1p(G<A>(Ab)),JZ=(BA()?2.05:5)+1.8*k-k*Gy;g(BA())JZ-=k*E::EC(3.,N(Ak.K)/AD+E::BC(0.,AM[1]-J)/AD);C E::EC(Hm,Gy)<.12+.42*k?Hm<=Gy:decode_score>=JZ;}A Ht(B At&W)B{A k=Cz/E::BC(1e-15,Cz+AW*E::Bt(I,.12,8.)),Dv=W.U.AV(),HL=0,Jg=0;g(W.Bj==BZ::GZ){H GC=CT[2][BP];HL=Dv/E::BC(1e-15,L(5,G<H>(Dv)))/(GC/E::BC(1e-15,L(5,GC)));Jg=5.25+1.15*(1-k)*HL+.16*E::log1p(Dv)-k*W.BJ;}Bi g(W.Bj==BZ::JC){H GC=CT[0][BP];HL=Dv/E::BC(1e-15,L(3,G<H>(Dv)))/(GC/E::BC(1e-15,L(3,GC)));Jg=3.8+1.2*(1-k)*HL+.18*E::log1p(Dv)-k*W.BJ;}Bi Jg=W.Bj==BZ::GD?4.45+2*k-k*W.BJ:2+1.7*k-k*W.BJ;C Jg;}Ad Du()B{C Ac()&&!Al&&AL>0&&Bq[G<E::Ea>(F::Ap)]<E::BC(2,Bb(0,E::EC(2000,E::BC(1,Av-BT)),5))&&Aj();}H Jz(H P)B{H R=Ah[P];CH(B DM&Z:D)R+=!Z.CR&&Z.AT==P&&Z.BX==F::Ap;C R;}E::JV<A,H>EM()B{DM GK=Aq(1);CH(A HN:BF)g(E::Cn(HN)&&HN>=J-1e-9&&HN+N(1)<GK.Cb)GK={HN+N(1),1};C GK;}Ad Eq(H EF,H FH,H R,E::JV<A,H>DA)B{g(!AA()||FH<1||DA.EN<1||!E::Cn(DA.Cb)||DA.Cb<J-1e-9)C q;R=E::EC(2000,E::BC(FH,R));g(FH>=Bb(EF,R,5))C q;A LI=L(3+EF,FH)+L(3+EF,1)-L(3+EF,FH+1);C LI>1e-12&&DA.Cb-J<=(.55+.4*AW)*LI+1e-9;}Ad Hu(B E::p<H>&Ch)B{g(Ch.Dd()||!Aj())C q;H Br=D[Ch[0]].CL;g(Br<0||Br>=G<H>(Bm.AV())||Bm[Br].Fe>=Bm[Br].Fa)C q;B DM&Z=D[Ch[0]];A Fp=E::BC(0.,J-Z.AX),token_age=Z.Q?J-Z.M:0,k=Cz/E::BC(1e-15,Cz+AW*E::Bt(I,.12,8.)),IX=AD*(.012+.36*(1-k));g(!Z.Q)IX*=1.5;g(Fp>=IX||Z.Q&&token_age/E::BC(1e-9,AD)>.78+.35*(1-k))C q;A Gk=EM().Cb;C E::Cn(Gk)&&Gk-J<=E::BC(0.,IX-Fp)+1e-9;}A HZ(H id,H P)B{B DM&Z=D[id];A Kk=J+L(0,Z.K),DV=E::BC(AM[0],Kk)+N(Z.K),Hq=E::BC(0.,V[P]-Au[P]);H IV=0;CH(B DM&CJ:D)IV+=CJ.AT==P&&(CJ.BX==F::Cy||CJ.BX==F::Bx||CJ.BX==F::Ax||CJ.BX==F::Dk);IV-=Au[P]>0;Hq+=Y*IV;A GL=E::BC(DV,BF[P])+Hq+L(1,Z.K);GL=E::BC(AM[1],GL)+N(Z.K);C E::BC(GL,Kk)+L(2,Z.K);}H Bb(H EF,H R,H Cc)B{A target_ratio=Cc<1?.82:Cc<2?.88:Cc<3?.93:Cc<4?.97:Cc<5?.99:.999999999,Jn=0;CH(H AH=1;AH<=R;++AH)Jn=E::BC(Jn,AH/(L(3+EF,AH)+(EF<2?N(AH):0)));H AH=1;while(AH<R&&AH/(L(3+EF,AH)+(EF<2?N(AH):0))+1e-15<target_ratio*Jn)++AH;C AH;}Ad HF(H n)B{C CM()&&!Al&&AL>0&&n<E::BC(2,Bb(0,E::EC(2000,E::BC(1,Av-BT)),5))&&Aj();}Ad KM(H n)B{C CM()&&(I>=64.||!Al)&&AL>0&&n<E::BC(2,Bb(0,E::EC(2000,E::BC(1,Av-BT)),5))&&Aj();}H Cr(H Cm,H Ce)B{g(Ce<=0)C 0;g(Ex())C 1;g(Be()&&Ce<=BP)C CG[Cm][Ce];g(Ce<=BP)C CT[Cm][Ce];H BG=1;A CD=E::BS<A>::DR();CH(H AV=1;AV<=Ce;++AV){B A Ka=L(3+Cm,AV)/AV;B A eps=E::Cn(CD)?1e-12*E::BC(1.,E::Gu(CD)):0;g(!E::Cn(CD)||Ka<CD-eps||(E::Gu(Ka-CD)<=eps&&AV>BG)){BG=AV;CD=Ka;}}C BG;}A LU(H id)B{B Bk&Z=D[id];g(Z.Q<=0)C 0;B A age=E::BC(0.,J-Z.M)/E::BC(1e-9,AD);B A KC=E::BC(0.,age-1.);C 0.10+E::EC(3.,age)+.5*E::EC(4.,KC*KC);}E::p<H>Je(H Cm,H Ce)B{E::p<H>BO;BO.GA(40);B DM add=[&](H AV){g(AV>=1&&AV<=Ce)BO.Ai(AV);};B H LE=Cr(Cm,Ce);add(1);add(LE);add(Ce);add(LE/2);add((LE+1)/2);add(LE*2);CH(H divisor:{2,3,4,6,8}){B H part=(Ce+divisor-1)/divisor;add(part);add(Ce-part);add(Cr(Cm,part));}CH(H AV=2;AV<Ce;AV*=2)add(AV);E::GU(BO.Bu(),BO.FO());BO.erase(E::unique(BO.Bu(),BO.FO()),BO.FO());C BO;}A Ig(H Cm,H AV,B E::p<H>&Ch)B{g(Cm==2||AV<=0)C 0;g(Cm==1){B H Ce=Bq[G<E::Ea>(F::Bw)];C N(AV)+L(5,E::EC(BP,Ce+AV));}E::p<H>DS(O);B H FD=E::EC(AV,G<H>(Ch.AV()));CH(H i=0;i<FD;++i)++DS[D[Ch[i]].AT];g(FD<AV){CH(H i=FD;i<AV;++i)++DS[i%O];}A Kf=0;A IU=0;CH(H P=0;P<O;++P){g(DS[P]==0)CB;Kf+=N(DS[P]);B H merged=E::EC(BP,BE[P]+DS[P]);IU=E::BC(IU,L(4,merged)+N(DS[P]));}B H Ce=Bq[G<E::Ea>(F::Bw)];C Kf+IU+L(5,E::EC(BP,Ce+AV));}H FT(H Cm,B E::p<H>&Ch)B{B H Ce=G<H>(Ch.AV());g(T())C Cr(Cm,Ce);g(Ce<=1)C Ce;g(Ex())C 1;g(Be()&&Ce<=BP)C CG[Cm][Ce];g(Cm!=1||AW<=1e-12||AW>=0.95-1e-12||Az>Y||Fj){C Cr(Cm,Ce);}E::p<A>LD(G<E::Ea>(Ce)+1);CH(H i=0;i<Ce;++i){LD[i+1]=LD[i]+LU(Ch[i]);}B A total_weight=LD.back();B A ER=E::BC(1.,I);B A wait_factor=Cz/ER;A FZ=AW;g(Al>=64){FZ*=E::BC(0.05,1.-DU());}FZ+=2. *Cz;B E::p<H>BO=Je(Cm,Ce);B H Di=Cr(Cm,Ce);H Dn=Di;A Dg=E::BS<A>::DR();A Hi=E::BS<A>::DR();CH(H AV:BO){B A HA=L(3+Cm,AV);B H BD=Ce-AV;B H Hl=BD>0?Cr(Cm,BD):0;B A future_unit=BD>0?L(3+Cm,Hl)/Hl:0;B A JK=future_unit*BD;B A LJ=Ig(Cm,AV,Ch);B A Kj=BD>0?Ig(Cm,Hl,{}):0;B A KJ=LD[AV];B A later_weight=total_weight-KJ;B A wait_area=KJ*(HA+LJ)+later_weight*(HA+.5*JK+Kj);B A makespan=HA+JK+E::BC(LJ,Kj);B A Cu=wait_factor*wait_area+FZ*Ce*makespan;g(AV==Di)Hi=Cu;B A eps=E::Cn(Dg)?1e-10*E::BC(1.,E::Gu(Dg)):0;g(!E::Cn(Dg)||Cu<Dg-eps||(E::Gu(Cu-Dg)<=eps&&AV==Di)){Dg=Cu;Dn=AV;}}B A relative_gain=(Hi-Dg)/E::BC(1e-12,E::Gu(Hi));g(relative_gain<0.04-1e-12)Dn=Di;g(Dn!=Di&&(N(Di)>0.60*L(4,Di)||N(Dn)>0.60*L(4,Dn))){Dn=Di;}C Dn;}A N(H len)B{C Az+8. *G<A>(CS)*len/(DD*1e6);}A Kz()B{g(AW<=1e-15)C 0.;g(Cz<=1e-15)C 0.95;B A tolerance=I/(I+16.);B A effective=AW+Cz*tolerance;C E::Bt((effective-0.82)/0.18,0.,1.)*(0.55+0.40*AW);}Ad DJ(H Cm,H KD,E::JV<A,H>DA)B{g(KD<=0||DA.EN<=0||!E::Cn(DA.Cb)||DA.Cb<=J+1e-9||KD+DA.EN>BP){C q;}A GV=Kz();g(By()&&Av>0&&AL==0)GV=E::BC(GV,.25);g(GV<=1e-12)C q;B DM[g1,g2]=Gw();B A risk=E::hypot(E::BC(0.,g1-1.),E::BC(0.,g2-1.));g((I<=1e-15&&risk>1e-12)||(I>1e-15&&risk>=0.75*I)){C q;}B A separate=L(3+Cm,KD)+L(3+Cm,DA.EN);B A merged=L(3+Cm,KD+DA.EN);B A saved=separate-merged;C saved>1e-12&&DA.Cb-J<=GV*saved+1e-9;}Ad LQ()B{C AE>1&&AW>1e-12&&AW<.25-1e-12&&Cz>=0.75-1e-12&&I>=100.;}A FK(H id,H extra_pieces=1)B{B Bk&Z=D[id];B A Kc=G<A>(AE-Z.AK)/AE;C extra_pieces*Y+Kc*Aw.Bp(1,Z.K)+N(Z.K)+L(2,Z.K);}H Ib(H id,H P)B{B Bk&DE=D[id];H JU=AE-DE.AK;g(T()){Ad Ef=AI||Ae>AJ*(1.+I)||(Cz>=.5-1e-12&&I<=.25+1e-12),Cd=Cz>=.8-1e-12;H GH=0;CH(B Bk&CJ:D)GH+=CJ.AT==P&&CJ.BX!=F::FY&&CJ.BX!=F::Ke&&!IJ(CJ.BX);A raw=Aw.Bp(1,DE.K),ES=raw*JU/AE,path=Y+ES+N(DE.K)+L(2,DE.K);Ad urgent=!Ef&&J+path>=DE.AP+(Cd?.8:1.)*AJ;H JA=AI?4:Ef?(Cz>=.5?16:Cz>=.15?8:4):Cd?16:8,Fw=E::BC(1,E::EC(AC[P],2000));A IK=Cd&&!Ef?E::BC({2*Y,1.1*L(4,Fw),.2*AD}):E::BC({3*Y,1.25*L(4,Fw),.3*AD});Ad should_split=(!AI&&Ef)||!AI||AW>=.88||(raw>=24*Y&&(JA-1)*Y<=.25*ES);g(GH&&!urgent&&should_split&&ES>1.35*IK){A LS=raw/AE;H Gd=(AE+JA-1)/JA,quantum_layers=E::BC(1,G<H>(E::floor(IK/LS)));C E::EC(AE,DE.AK+E::BC(Gd,quantum_layers));}C AE;}B Bk&Z=D[id];B H BD=AE-Z.AK;g(AA())C Hy(id,P);g(GP&&BM()){g(BD<=1||Z.Dw>=CW-1)C AE;B Ad HT=Ah[P]>0;H IF=0;CH(B Bk&other:D){IF+=other.BX==F::Ax&&other.AT==P;}g(!HT&&IF<=1){C AE;}B A Ix=Aw.Bp(1,Z.K);B A Ej=Ix*BD/AE;g(Ej<=4*Y+1e-12)C AE;B A Hs=.025+.155*E::Bt(Cz+.20,0.,1.);B A JI=Y/E::BC(.01,Hs);B H Ga=E::Bt(E::BC(1,E::EC(Ah[P],AO)),1,64);A Cw=E::BC(JI,(1.05+.45*AW)*L(4,Ga));g(HT){Cw=E::BC(Cw,(.16+.34*AW)*E::BC(AD,1e-9));}Cw=E::EC(Cw,E::BC(JI,.08*E::BC(AJ,1e-9)));B A FN=Ix/AE;B H Gd=(BD+CW-1)/CW;B A modeled_take=E::floor(E::BC(FN,Cw-Y)/E::BC(1e-15,FN)+1e-12);H FD=E::BC(Gd,G<H>(E::EC<A>(BD,modeled_take)));FD=E::Bt(FD,1,BD);g(FD>=BD)C AE;B H pieces=(BD+FD-1)/FD;g(G<A>(pieces-1)*Y>Hs*Ej+1e-12){C AE;}C Z.AK+FD;}g(BD<=1||Z.Dw>=3||!LQ())C AE;B DM DA=Aq(0,P);B Ad decode_sensitive=AS[P]>0||E::Cn(DA.Cb);g(!decode_sensitive)C AE;B A Ix=Aw.Bp(1,Z.K);B A FN=Ix/AE;B A Ej=FN*BD;B H Ga=E::BC(1,E::EC({BP,E::BC(1,Ah[P]),E::BC(1,AO)}));B A pressure=Bs();A Cw=E::BC({Y+FN,0.85*L(4,Ga),AD*(0.14+1.05*(1.-pressure))});g(E::Cn(DA.Cb)&&DA.Cb>J){Cw=E::EC(Cw,E::BC(Y+FN,0.92*(DA.Cb-J)));}g(Y>0.10*Ej||Y+Ej<=1.35*Cw){C AE;}H FD=G<H>(E::floor((Cw-Y)/E::BC(1e-15,FN)+1e-10));FD=E::Bt(FD,1,BD);C Z.AK+FD;}Ad Fl(H P,H Ag,H right)B{B DM DA=Aq(0,P);g(!E::Cn(DA.Cb)||DA.Cb<=J+1e-9||AS[P]<=0)C q;B Bk&r=D[Ag];B A raw=Aw.Bp(1,r.K)*G<A>(right-r.AK)/AE;B A block=Y+raw;B A delay=DA.Cb-J;g(delay>=0.82*block||Bs()<0.20-1e-12){C q;}B A slack=r.AP+AJ-(J+FK(Ag,2));C slack>0.06*AJ;}A Jq(B E::p<H>&Ch,A Ip)B{g(Ch.Dd())C 0;A oldest=0;CH(H id:Ch)oldest=E::BC(oldest,J-D[id].AX);C 0.08*E::EC(4.,oldest/E::BC(1e-9,Ip));}Ad By()B{B A ratio=X/E::BC(1e-15,AB);C AW>=0.20-1e-12&&AW<=0.40+1e-12&&Cz>AW&&I>=24.&&I<=64.&&ratio>=8.;}H Ar()B{C AW>.09&&AW<.2?2:AW>.7&&AW<.95?1+(AW<.86):AW>0&&AW<.1;}A Cq(H id,A BD,A DK)B{Ad HU=(Ar()||AW==Cz&&X<=.01&&Al==0)&&(DK<.05||Ar()>1&&DK>.1);B A Ip=E::BC(1e-9,AJ);g(By()&&!HU){A offset=1.-0.05*Cz;g(DK>0.30){offset=0.75-0.15*Cz;}Bi g(DK>0.10){offset=1.-0.10*Cz;}B A Fp=(J-D[id].AX)/Ip;C-(J-D[id].AP)/Ip+.25*BD/Ip+offset-0.08*E::EC(4.,Fp);}B A He=DU();B A Iw=AW*(1.-He);B Ad moderate_risk=AW>=0.85-1e-12&&AW<0.95-1e-12&&I>=100.&&I<1200.;B Ad JW=AW>=0.95-1e-12&&AW<1.-1e-12&&I<=16.;B Ad KY=AW>=0.72-1e-12&&AW<0.88-1e-12&&I>=512.&&I<=8192.&&Iw>=0.15;A LY=.5+.5*Cz;g(Iw>=0.12&&(moderate_risk||JW))LY=(CM()||Ac())&&JW&&I>1e-15?.125:-1.;g(KY&&DK<0.05)LY=0;A Gi=HU?1:(X<=1+1e-12)*E::Bt(1-E::Gu(AW-Cz)/.04,0.,1.)*E::Bt((I-256)/256.,0.,1.);A KG=-DK;g(Gi>0){A IT=1-.05*Cz;g(DK>.3)IT=.75-.15*Cz;Bi g(DK>.1)IT=1-.1*Cz;A Fp=(J-D[id].AX)/Ip;LY+=Gi*(-1-LY);KG+=Gi*(IT+DK-.08*E::EC(4.,Fp));}C-(J-D[id].AP)/Ip+LY*BD/Ip+KG;}H Ju()B{g(X<=1+1e-12&&E::Gu(AW-Cz)<.04&&I>=512)C 1000000;g(AW>=0.95-1e-12)C 32;C 2+G<H>(E::IA(14. *AW));}H Fu()B{g(X<=1+1e-12&&E::Gu(AW-Cz)<.04&&I>=512)C 1000000;g(AW>=0.95-1e-12)C 32;C 4+G<H>(E::IA(28. *AW));}static GT Ew(H&skip,Ad Ce,Ad Iv){g(!Ce||Iv)skip=0;Bi skip=E::EC(skip+1,1000000);}Ad IJ(F st)B{C st==F::CP||st==F::Cy||st==F::Bx||st==F::Ax||st==F::Dk||st==F::CK||st==F::CF||st==F::Dl;}A DU()B{B A span=X-AB;B A elapsed=J-DZ;g(span<=1e-12||DZ<0||elapsed<=1e-12)C 0;B A throughput=G<A>(Al)/elapsed;C E::Bt((throughput-AB)/span,0.,1.);}E::JV<A,A>Gw()B{A FM=0,Ec=0;B A tdr_scale=E::BC(1e-9,AJ);B A tpot_scale=E::BC(1e-9,AD);CH(B Bk&r:D){g(IJ(r.BX)){FM=E::BC(FM,(J-r.AP)/tdr_scale);}g(r.CR&&r.Q>0){Ec=E::BC(Ec,(J-r.M)/tpot_scale);}}C{FM,Ec};}GT Jr(){g(AI||AW<=1e-12||Av<E::BC(16,4*O)||Ae>AJ*(1.+I))C;A Jh=Gm+AL*J-Dx;g(EU!=Av){EU=Av;E::p<A>Fq;Fq.GA(AL);CH(B Bk&r:D){A work=0;g(r.BX==F::CP){work=2. *Y+Aw.Bp(0,r.K)+Aw.Bp(2,r.K);}Bi g(r.BX==F::Cy||r.BX==F::Bx||r.BX==F::Ax||r.BX==F::Dk||r.BX==F::CK||r.BX==F::CF){work=Y+Aw.Bp(2,r.K);}Bi g(r.BX!=F::Dl){CB;}Fq.Ai(work);}E::GU(Fq.Bu(),Fq.FO());B H jobs=G<H>(Fq.AV());CH(H i=0;i<jobs;++i)Jh+=(jobs-i)*Fq[i];}g(Jh/Av<=1.5*AJ*(1.+I))C;AI=CX;AR=e=Ao=2000;}A edge_window_gain()B{B H GX=E::EC(Ao,e+Bf);g(GX<=e)C 0;B A Ho=(L(3,e)+L(5,e))/e;B A next_unit=(L(3,GX)+L(5,GX))/GX;g(!E::Cn(Ho)||Ho<=1e-12)C 0;C E::BC(0.,1.-next_unit/Ho);}GT KN(){Dt=0;HC=0;FS=0;HB=0;EV=0;}GT Jy(){B A Jj=E::BC(1,Dt);B A HJ=HC/Jj;B A utilization=FS>0?EV/FS:0;B A starvation=HB/Jj;B A Lb=(1.-utilization)+0.75*starvation;B DM[FM,Ec]=Gw();B A BN=DU();B A Iw=AW*(1.-BN);B A risk=E::hypot(E::BC(0.,FM-1.),E::BC(0.,Ec-1.));Ad IS=q;g(Ek){B Ad no_supply_gain=Lb>JX-0.08&&HJ>II-0.20&&BN<FL+0.01;B Ad waiting_worse=FM>Ie+0.15||Ec>IH+0.15;g(no_supply_gain||waiting_worse){e=E::BC(AR,e-Bf);Hg=3;IS=CX;}Ek=q;}g(e>AR&&risk>=0.9*I){e=AR;Hg=3;Ek=q;IS=CX;}g(Hg>0)--Hg;g(HJ<=0.20)++HK;Bi HK=0;g(HK>=2&&e>AR){e=E::BC(AR,e-Bf);HK=0;Ek=q;}B A Le=AW<0.7-1e-12?0.40:.25;B Ad score_gate=Al>=128&&BN<0.95-1e-12&&Iw>=0.025-1e-12;B Ad risk_gate=risk<0.9*I;B Ad supply_gate=Lb>=Le-1e-12||edge_window_gain()>=0.04-1e-12;B Ad good=!IS&&Hg==0&&IM>0&&e<Ao&&AN>0&&HJ>=0.75-1e-12&&score_gate&&risk_gate&&supply_gate;g(good)++GY;Bi GY=0;g(GY>=2){JX=Lb;II=HJ;Ie=FM;IH=Ec;FL=BN;e=E::EC(Ao,e+Bf);Ek=CX;GY=0;}++IM;KN();}GT Er(H Cr,Ad starved){g(Ao<=AR)C;++Dt;g(AN>0&&AG>=e)++HC;g(Cr>0){B H EZ=E::Bt(AO,1,64);++FS;EV+=E::EC(1.,G<A>(Cr)/EZ);}g(starved)++HB;B H horizon=E::BC(32,8*O);g(Dt>=horizon)Jy();}Ad AY()B{C!Ac()&&Ca&&Av-BT>=Gs();}H Gs()B{C BL&&BA()?DG:Bc;}H Ik()B{C BL&&BA()?DG:Dp;}A Bs()B{g(Cz<=1e-15)C 0.;g(AW<=1e-15)C 1.;g(I<=1e-15)C 0.98;B A ER=E::Bt(I,.25,64.);C E::Bt(Cz/(Cz+AW*ER),0.,1.);}H choose_cloud(H id){g(T()){H Aa=0;CH(H c=1;c<O;++c)g(AC[c]<AC[Aa]||(AC[c]==AC[Aa]&&(V[c]<V[Aa]-1e-12||(E::Gu(V[c]-V[Aa])<=1e-12&&G<H>(Bg[c])<G<H>(Bg[Aa])))))Aa=c;(GT)id;C Aa;}g(Am()){H Aa=0;CH(H c=1;c<O;++c)g(AC[c]<AC[Aa]||(AC[c]==AC[Aa]&&(V[c]<V[Aa]-1e-12||(E::Gu(V[c]-V[Aa])<=1e-12&&G<H>(Bg[c])<G<H>(Bg[Aa])))))Aa=c;C Aa;}H Dj=Ac()?FV():O;g(AY()&&!Ac()){B H potential=E::EC(2000,E::BC(Dp,Av-BT));B H EZ=E::BC(1,HD(potential));Dj=E::Bt(Db[EZ],1,O);}g(Ac())C Gn(Dj);g(Gt&&BM()){B H Gv=E::BC(1,E::EC(AO,64));B A Ka=L(4,Gv)/Gv;B A observed_prior=(16+Bd-Ci)/(4.+Bd);B A prior=4.+Fx*.001*(observed_prior-4.);H BG=-1;A low=1e100;CH(H d=0;d<Dj;++d){B H c=(DQ+d)%Dj;B A Cu=V[c]+prior*AC[c]*Ka;g(Cu<low-1e-12){low=Cu;BG=c;}}DQ=(BG+1)%Dj;C BG;}B Ad Gr=Bs()<=0.12+1e-12;H BG=-1;CH(H d=0;d<Dj;++d){B H c=(DQ+d)%Dj;g(BG<0){BG=c;CB;}g(Gr&&AW>=0.8-1e-12){B A Cu=V[c]+.5*AC[c]*L(4,1);B A old=V[BG]+.5*AC[BG]*L(4,1);g(Cu<old-1e-12)BG=c;}Bi g(Gr){g(AC[c]<AC[BG]||(AC[c]==AC[BG]&&(V[c]<V[BG]-1e-12||(E::Gu(V[c]-V[BG])<=1e-12&&(Ah[c]<Ah[BG]||(Ah[c]==Ah[BG]&&G<H>(Bg[c])<G<H>(Bg[BG]))))))){BG=c;}}Bi{B A Cu=AC[c]+(0.4+0.8*AW)*Ah[c]+(Bg[c]?0.35:0.);B A Dg=AC[BG]+(0.4+0.8*AW)*Ah[BG]+(Bg[BG]?0.35:0.);g(Cu<Dg-1e-12)BG=c;}}(GT)id;DQ=(BG+1)%Dj;C BG;}Ad Aj()B{g(Fr)C CX;CH(Ad busy:Bg){g(busy)C CX;}CH(B Bk&r:D){g(r.BX==F::Bx||r.BX==F::CK||r.BX==F::EW||r.BX==F::DH){C CX;}}C q;}static GT Ep(E::DN&FC,B E::p<H>&Ch){FC+=" "+E::DB(Ch.AV());CH(H id:Ch)FC+=" "+E::DB(id);}H HD(H Jo)B{g(Jo<=1)C E::BC(0,Jo);B H capped=E::EC(2000,Jo);H EZ=BV[capped];B A sum=AW+Cz;B A share=sum>1e-15?AW/sum:0.;g(share>=0.74-1e-12&&share<=0.85+1e-12&&I>=64.){EZ=E::BC(1,(EZ*KS+Fk-1)/Fk);}C E::EC(capped,EZ);}Ad EK()B{C Ca&&Ar()==2&&AW>Cz;}GT Ev(E::p<H>&Ji,B E::p<H>&Ds,H requested_count)B{B H FD=E::Bt(requested_count,0,G<H>(Ds.AV()));g(!EK()){Ji.insert(Ji.FO(),Ds.Bu(),Ds.Bu()+FD);C;}E::p<H>Cp(O,0);CH(H id:Ji){B H P=D[id].AT;g(P>=0&&P<O)++Cp[P];}E::p<H>Bh;Bh.GA(FD);CH(H Cf=0;Cf<G<H>(Ds.AV());++Cf)Bh.Ai(Cf);E::p<H>Bn;Bn.GA(FD);E::p<Iu char>Iv(Bh.AV(),0);CH(H JG=0;JG<G<H>(Bh.AV());++JG){H DW=-1;CH(H GW=0;GW<G<H>(Bh.AV());++GW){g(Iv[GW])CB;B H Cf=Bh[GW];B H P=D[Ds[Cf]].AT;g(P<0||P>=O)CB;g(DW<0){DW=GW;CB;}B H LO=Bh[DW];B H Aa=D[Ds[LO]].AT;g(Cp[P]<Cp[Aa]||(Cp[P]==Cp[Aa]&&Cf<LO)){DW=GW;}}g(DW<0)Fm;Iv[DW]=1;B H Cf=Bh[DW];++Cp[D[Ds[Cf]].AT];Bn.Ai(Cf);g(G<H>(Bn.AV())==FD)Fm;}g(G<H>(Bn.AV())<FD){CH(H Cf:Bh){g(E::find(Bn.Bu(),Bn.FO(),Cf)==Bn.FO())Bn.Ai(Cf);g(G<H>(Bn.AV())==FD)Fm;}}E::p<H>JB=Bn;E::GU(JB.Bu(),JB.FO());CH(H Cf:JB)Ji.Ai(Ds[Cf]);}E::p<H>IZ(){E::p<H>LC=AZ(DY,F::Ap);E::GU(LC.Bu(),LC.FO(),[&](H x,H y){g(D[x].M!=D[y].M){C D[x].M<D[y].M;}g(D[x].Q!=D[y].Q)C D[x].Q<D[y].Q;C x<y;});E::p<H>Ds=AZ(CZ,F::Ap);E::GU(Ds.Bu(),Ds.FO(),[&](H x,H y){g(D[x].AX!=D[y].AX){C D[x].AX<D[y].AX;}C x<y;});E::p<H>Ch;g(AG>0){g(G<H>(LC.AV())<AG&&Aj()){C Ch;}Ch=E::In(LC);B H Ks=E::EC(2000,AG+AN);B H EZ=E::BC(AG,HD(Ks));B H slots=E::EC({E::BC(0,EZ-AG),E::BC(0,e-AG),G<H>(Ds.AV())});Ev(Ch,Ds,slots);}Bi{B H LG=E::BC(1,Av-BT);B H EZ=E::BC(1,HD(E::EC(2000,LG)));B H pending_prefill=E::BC(0,LG-AN);B H warm_target=E::EC(EZ,E::BC(2,Ik()));g(Al==0&&pending_prefill>0&&G<H>(Ds.AV())<warm_target&&Aj()){C Ch;}B H FD=E::EC({EZ,e,G<H>(Ds.AV())});Ev(Ch,Ds,FD);}g(Ch.Dd()&&!Aj()){B H id=JL(CZ,F::Ap);g(id>=0)Ch.Ai(id);}C Ch;}E::p<H>KT(){g(AY()&&!Bz()){DM Ji=IZ();g((HF(G<H>(Ji.AV()))&&!(AA()&&!Aj()))||Du())C{};C Ji;}g(AN>0&&AG+E::BC(1,O)>=e){Fj=CX;}E::p<H>LC=AZ(DY,F::Ap);E::GU(LC.Bu(),LC.FO(),[&](H x,H y){g(D[x].M!=D[y].M){C D[x].M<D[y].M;}g(D[x].Q!=D[y].Q)C D[x].Q<D[y].Q;C x<y;});E::p<H>Ch=E::In(LC);B H Ih=E::BC(0,e-AG);B Ad Hb=Hx()||Bz()||(Be()&&Av>Bd);g(!Hb){E::p<H>Ds=AZ(CZ,F::Ap);E::GU(Ds.Bu(),Ds.FO(),[&](H x,H y){g(D[x].AX!=D[y].AX){C D[x].AX<D[y].AX;}C x<y;});B H extra_fresh=E::BC(0,G<H>(Ds.AV())-Ih);B H slots=Ih+G<H>(E::IA(HH()*extra_fresh));B H FD=E::EC(slots,G<H>(Ds.AV()));Ch.insert(Ch.FO(),Ds.Bu(),Ds.Bu()+FD);}g(AA())E::GU(Ch.Bu(),Ch.FO(),[&](H x,H y){C D[x].M!=D[y].M?D[x].M<D[y].M:x<y;});g((KM(G<H>(Ch.AV()))&&!(AA()&&!Aj()))||Du())C{};g(Ch.Dd()&&!Aj()){B H id=JL(CZ,F::Ap);g(id>=0)Ch.Ai(id);}g(!Ch.Dd())Ch.Fd(AA()?GN(0,Ch):FT(0,Ch));C Ch;}At Jw(){At W;W.Bj=BZ::GZ;W.Dh=0;W.U=AZ(EJ,F::Bw);g(W.U.Dd())C W;g(T()){E::stable_partition(W.U.Bu(),W.U.FO(),[&](H id){C D[id].Q>0;});H o=G<H>(E::count_if(W.U.Bu(),W.U.FO(),[&](H id){C D[id].Q>0;})),h=0;CH(B Bk&r:D)h+=r.Q>0&&r.BX!=F::Ke;H w=AI?2000:CU;W.U.Fd(o+E::EC(G<H>(W.U.AV())-o,E::BC(0,w-h)));g(W.U.Dd())C At{};W.U.Fd(Cr(2,G<H>(W.U.AV())));}Bi{g(Eq(2,G<H>(W.U.AV()),AG+AN,EM())||Ac()&&Hu(W.U))C At{};g(!AY()&&AW>=0.70-1e-12&&AW<0.80-1e-12&&I<64.&&G<H>(W.U.AV())<E::EC(4,AG)&&Aj())C At{};g(AY()){H Br=-1;CH(H id:W.U){B H w=D[id].CL;g(w>=0&&(Br<0||w<Br))Br=w;}g(Br>=0){E::p<H>same;same.GA(W.U.AV());CH(H id:W.U)g(D[id].CL==Br)same.Ai(id);g(Br<G<H>(Bm.AV())&&Bm[Br].Fe<Bm[Br].Fa&&Aj()){C W;}W.U=E::In(same);}}g(AA())E::GU(W.U.Bu(),W.U.FO(),[&](H x,H y){C D[x].M!=D[y].M?D[x].M<D[y].M:x<y;});Bi E::GU(W.U.Bu(),W.U.FO(),[&](H x,H y){B Ad Do=D[x].Q>0;B Ad Ei=D[y].Q>0;g(Do!=Ei)C Do>Ei;g(Do&&D[x].M!=D[y].M){C D[x].M<D[y].M;}g(D[x].Q!=D[y].Q)C D[x].Q<D[y].Q;C x<y;});g(!AY()){W.U.Fd(AA()?GN(2,W.U):FT(2,W.U));g(!AA()&&DJ(2,G<H>(W.U.AV()),Aq(1))){C At{};}}}B A KB=J+L(5,G<H>(W.U.AV()));Ad EO=q;A GS=1e100;CH(H id:W.U){g(D[id].Q==0)CB;EO=CX;GS=E::EC(GS,(D[id].M+AD-KB)/AD);}g(EO){GS-=0.35+0.15*AW;}Bi{GS=0.30+0.20*Cz-0.30*AW;}GS-=Jq(W.U,AD);GS-=0.025*E::log2(G<A>(W.U.AV())+1.);W.BJ=GS;W.AF=CX;C W;}At Jc(){At W;W.Bj=BZ::GD;W.Dh=1;B E::p<H>Ch=AZ(Fh,F::CF);g(Ch.Dd())C W;A CE=1e100,Bv=1e100,Df=1e100;Ad EA=T()&&(AI||Ae>AJ*(1.+I)||(Cz>=.5-1e-12&&I<=.25+1e-12));CH(H id:Ch){A Cg=L(2,D[id].K),Em=Cq(id,Cg,.35+.15*Cz),Hz=T()?(EA?D[id].AX:Cg):AA()?D[id].AP:Ar()>1?Em:(Ba()?D[id].AX:((Ey()||(BM()&&AL>=E::BC(8,2*O)))?Cg:Em)),Fn=T()&&!EA?D[id].AP:0.;g(Hz<CE-1e-12||(E::Gu(Hz-CE)<=1e-12&&(Fn<Bv-1e-12||(E::Gu(Fn-Bv)<=1e-12&&(W.AU<0||id<W.AU))))){CE=Hz;Bv=Fn;Df=Em;W.AU=id;}}W.BJ=Df;W.AF=CX;C W;}At KP(){At W;W.Bj=BZ::JC;W.Dh=2;W.U=KT();g(W.U.Dd())C W;E::p<H>DS(O);CH(H id:W.U)++DS[D[id].AT];B H AH=G<H>(W.U.AV());B A e_cost=L(3,AH);B A post_cost=L(5,AH);Ad EO=q;A GS=1e100;CH(H id:W.U){g(D[id].Q==0)CB;EO=CX;B H Ft=DS[D[id].AT];B A BD=e_cost+N(Ft)+L(4,Ft)+N(Ft)+post_cost;B A Em=(D[id].M+AD-(J+BD))/AD;GS=E::EC(GS,Em);}g(EO){GS-=0.15+0.10*AW;}Bi{GS=0.55+.25*Cz-0.45*AW;}GS-=Jq(W.U,EO?AD:AJ);GS-=0.02*E::log2(G<A>(AH)+1.);W.BJ=GS;W.AF=CX;C W;}At Jv(){At W;W.Bj=BZ::IW;W.Dh=3;B E::p<H>Ch=AZ(Fv,F::CP);g(Ch.Dd())C W;A CE=1e100;A Df=1e100;B Ad legacy_pressure=Ey()||(BM()&&AL>=E::BC(8,2*O))||(!BL&&!BA()&&Eu());g(T()){A Bv=1e100;Ad f=AI||Ae>AJ*(1.+I)||(Cz>=.5-1e-12&&I<=.25+1e-12);CH(H id:Ch){B Bk&r=D[id];A m=L(0,r.K)+2*N(r.K)+L(1,r.K)+L(2,r.K),x=f?r.AX:m,t=f?0.:r.AP;g(x<CE-1e-12||(E::Gu(x-CE)<=1e-12&&(t<Bv-1e-12||(E::Gu(t-Bv)<=1e-12&&(W.AU<0||id<W.AU)))))CE=x,Bv=t,Df=Cq(id,m,0),W.AU=id;}W.BJ=Df;W.AF=CX;C W;}g(Ac()){B H c=Gn(FV());DM v=Ch;E::GU(v.Bu(),v.FO(),[&](H x,H y){C D[x].AP!=D[y].AP?D[x].AP<D[y].AP:x<y;});H z=0;CH(H id:v){g(z>=12)Fm;B DM&r=D[id];B A BD=L(0,r.K)+2. *N(r.K)+L(1,r.K)+L(2,r.K);B A GS=Cq(id,BD,0);A Hz=(HZ(id,c)-r.AP)/E::BC(1e-9,AJ)+.02*z+1e-9*c;g(Hz<CE-1e-12){CE=Hz;Df=GS;W.AU=id;W.AT=c;}++z;}W.BJ=Df;W.AF=W.AU>=0;C W;}CH(H id:Ch){B Bk&r=D[id];B A BD=L(0,r.K)+2. *N(r.K)+L(1,r.K)+L(2,r.K);B A GS=Cq(id,BD,0);B A restraint=legacy_pressure?1.:EL(id);B A srpt_rank=BD/E::BC(1e-9,AJ);B A Hz=AW<.5-1e-12?srpt_rank:Am()?BD:((Ar()||AW==Cz&&X<=.01&&Al==0)?GS:Ar()?GS:(Ba()?r.AX:(1.-restraint)*GS+restraint*srpt_rank));g(Hz<CE-1e-12||(E::Gu(Hz-CE)<=1e-12&&(W.AU<0||id<W.AU))){CE=Hz;Df=GS;W.AU=id;}}W.BJ=Df;W.AF=CX;C W;}Ad HQ(E::DN&FC){E::Hd<At,4>S={Jw(),Jc(),KP(),Jv()};At*BG=FE;B Ad Fs=(S[0].AF&&CN(S[0].U))||(S[2].AF&&CN(S[2].U));B Ad hold_prefill_up=S[3].AF&&Jt(S[3].AU);At*En=FE;g(Ba()||Am()){B A Ir=L(3,1)+N(1)+L(4,1)+N(1)+L(5,1);B A limit=E::BC(AD,Ir)*(Am()?1.:1.+2. *AW);CH(H Cf:{0,2}){g(!S[Cf].AF)CB;B A Kc=Am()?.3:(Cf==0?1.:.75);A prefill_delay=Am()?(S[1].AF?L(2,D[S[1].AU].K):S[3].AF?L(0,D[S[3].AU].K):0.):0.;g(E::It(S[Cf].U.Bu(),S[Cf].U.FO(),[&](H id){C D[id].Q>0&&J+prefill_delay-D[id].M>=Kc*limit;})){En=&S[Cf];Fm;}}}B DM JD=Gw();B A KF=E::hypot(E::BC(0.,JD.Cb-1.),E::BC(0.,JD.EN-1.));A Kr=A(E::BC(0,Av-BT))/E::BC(1,O);A LA=E::Bt((Kr-8)/8,0.,1.)*E::Bt((8192-I)/7168,0.,1.)*E::Bt((.98-AW)/.03,0.,1.);H KW=G<H>(E::IA((8-5*LA)*O));B H GQ=E::EC({Et,KW,AN+E::BC(0,AL)});B Ad Jx=GQ>=2&&Al==0&&!Fs&&S[2].AF&&AL>0&&AN<GQ&&(S[1].AF||S[3].AF||Aj())&&((I<=1e-15&&KF<=1e-12)||(I>1e-15&&KF<.25*I));B Ad HX=Cz>1e-15&&((AW>=.20&&AW<.30)||AW>=.88);B Ad Hv=HX&&!EK()&&Al==0&&S[2].AF&&AL>0;g(Hv){BG=&S[2];}Bi g(Ac()){CH(DM&x:S)g(x.AF&&(BG==FE||Ht(x)>Ht(*BG)+1e-12))BG=&x;}Bi g(T()){DM Fi=[&](H j){E::p<H>u=j?AZ(DY,F::Ap):AZ(EJ,F::Bw);u.erase(E::remove_if(u.Bu(),u.FO(),[&](H id){C D[id].Q==0;}),u.FO());g(!u.Dd())u.Fd(Cr(j?0:2,G<H>(u.AV())));S[j?2:0].U=E::In(u);S[j?2:0].AF=!S[j?2:0].U.Dd();};DM Ct=[&](H j,A f,A x,A m){H b=-1;A r=E::BS<A>::DR();F s=j?F::Ap:F::Bw;CH(H id=0;id<G<H>(D.AV());++id)g(D[id].BX==s&&D[id].Q>0&&(D[id].AX<r-1e-12||(E::Gu(D[id].AX-r)<=1e-12&&(b<0||id<b))))r=D[id].AX,b=id;A c=E::BC(AD,L(3,1)+N(1)+L(4,1)+N(1)+L(5,1));C b>=0&&J+x-D[b].M>=f*m*c;};Ad Il=Ae>AJ*(1.+I),DX=Cz>=.5-1e-12&&I<=.25+1e-12,Cd=Cz>=.8-1e-12;A x=S[1].AF?L(2,D[S[1].AU].K):S[3].AF?L(0,D[S[3].AU].K):0.;g(Il||AI){A m=1+2*AW;g(!AI&&Ct(0,1.,0,m))BG=&S[0];Bi g(S[1].AF)BG=&S[1];Bi g(!AI&&Ct(1,.75,0,m))BG=&S[2];Bi g(S[3].AF)BG=&S[3];Bi g(S[0].AF)BG=&S[0];Bi g(S[2].AF)BG=&S[2];}Bi{A m=Cd?1.:1+.75*AW,a=DX?.45:Cd?.3:.75,b=DX?.45:Cd?.3:.55;g(Ct(0,a,x,m)){g(!DX)Fi(0);BG=&S[0];}Bi g(Ct(1,b,x,m)){g(!DX)Fi(1);BG=&S[2];}Bi g(S[1].AF)BG=&S[1];Bi g(S[3].AF)BG=&S[3];Bi g(S[0].AF)BG=&S[0];Bi g(S[2].AF)BG=&S[2];}}Bi g(Jx){g(S[1].AF||S[3].AF){BG=S[1].AF?&S[1]:&S[3];}Bi g(Aj()){CQ=0;CY=0;C q;}}Bi g(Bz()&&!Fs&&(S[1].AF||S[3].AF)){BG=S[1].AF?&S[1]:&S[3];}Bi g(En!=FE){BG=En;}Bi g(Am()&&(S[1].AF||S[3].AF)){BG=S[1].AF?&S[1]:&S[3];}Bi g(Ba()&&(S[1].AF||S[3].AF)){BG=S[1].AF?&S[1]:&S[3];}Bi g(Be()&&!Fs&&(S[1].AF||S[3].AF)){BG=S[1].AF?&S[1]:&S[3];}Bi g(Ar()>1&&(S[1].AF||S[3].AF)){BG=S[1].AF?&S[1]:&S[3];}Bi g(!Cz){CH(H Cf:{3,0,1,2}){g(!S[Cf].AF)CB;BG=&S[Cf];Fm;}}Bi g(hold_prefill_up){At*Fy=FE;CH(H Cf:{0,1}){g(!S[Cf].AF)CB;g(Fy==FE||S[Cf].BJ<Fy->BJ-1e-12||(E::Gu(S[Cf].BJ-Fy->BJ)<=1e-12&&S[Cf].Dh<Fy->Dh)){Fy=&S[Cf];}}g(Fy!=FE){B A service=Fy->Bj==BZ::GZ?L(5,G<H>(Fy->U.AV())):L(2,D[Fy->AU].K);B A LZ=L(0,D[S[3].AU].K);g(J+service+LZ<=AM[0]+1e-12*E::BC(1.,E::Gu(AM[0]))){BG=Fy;}Bi{BG=&S[3];}}Bi{CQ=0;CY=0;C q;}}Bi g(AY()&&S[0].AF){BG=&S[0];}Bi g(AY()&&S[2].AF&&E::It(S[2].U.Bu(),S[2].U.FO(),[&](H id){C D[id].CR;})){BG=&S[2];}Bi g(Jd()&&!S[1].AF&&!S[3].AF){CH(H d=0;d<2;++d){B H cls=(Es+d)%2;B H Cf=cls==0?0:2;g(!S[Cf].AF)CB;BG=&S[Cf];Es=(cls+1)%2;Fm;}}Bi g(!AA()&&!By()&&S[1].AF&&CQ>=Ju()){BG=&S[1];}Bi g(!AA()&&!By()&&S[3].AF&&CY>=Fu()){BG=&S[3];}Bi{CH(At&W:S){g(!W.AF)CB;g(BG==FE||W.BJ<BG->BJ-1e-12||(E::Gu(W.BJ-BG->BJ)<=1e-12&&W.Dh<BG->Dh)){BG=&W;}}}g(BG==FE){CQ=0;CY=0;C q;}Ew(CQ,S[1].AF,BG->Bj==BZ::GD);Ew(CY,S[3].AF,BG->Bj==BZ::IW);g(BG->Bj==BZ::GZ){FC="E D POST -1";Ep(FC,BG->U);CH(H id:BG->U){B H w=D[id].CL;g(w>=0&&w<G<H>(Bm.AV())){--Bm[w].Fa;--Bm[w].Fe;}D[id].CL=-1;BK(id,F::Gq);}}Bi g(BG->Bj==BZ::GD){Bk&r=D[BG->AU];FC="E P POST "+E::DB(r.AT)+" "+E::DB(BG->AU);BK(BG->AU,F::Dl);}Bi g(BG->Bj==BZ::JC){FC="E D PRE -1";Ep(FC,BG->U);B Ad sync=AY()||Ac();B H Br=sync?G<H>(Bm.AV()):-1;g(sync)Bm.Ai({G<H>(BG->U.AV()),0});CH(H id:BG->U){Bk&r=D[id];r.CL=Br;g(!r.CR){g(r.Q==0&&AN>0)--AN;r.CR=CX;++AG;++Ah[r.AT];}BK(id,F::HS);}}Bi{Bk&r=D[BG->AU];BG->AT=Ac()&&BG->AT>=0?BG->AT:choose_cloud(BG->AU);r.AT=BG->AT;r.EX=CX;++AC[r.AT];V[r.AT]+=Aw.Bp(1,r.K);FC="E P PRE "+E::DB(r.AT)+" "+E::DB(BG->AU);BK(BG->AU,F::Cy);}Fr=CX;C CX;}H Im(H P,A&GS){B E::p<H>Ch=AZ(CA[P],F::Ax);H KE=-1;GS=1e100;A CE=1e100,Bv=1e100;Ad EA=T()&&(AI||Ae>AJ*(1.+I)||(Cz>=.5-1e-12&&I<=.25+1e-12));CH(H id:Ch){B Bk&Z=D[id];A LP=G<A>(AE-Z.AK)/AE,Cg=Y+LP*Aw.Bp(1,Z.K)+N(Z.K)+L(2,Z.K),Em=Cq(id,Cg,.15+.10*Cz),Hz=T()?(EA?Z.AX:Cg):AA()?Z.AP:Ar()>1?Em:(Ba()?Z.AX:(Ey()?Cg:(BM()&&Al==0?Cg/E::BC(1e-9,AJ):Em))),Fn=T()&&!EA?Z.AP:0.;g(Hz<CE-1e-12||(E::Gu(Hz-CE)<=1e-12&&(Fn<Bv-1e-12||(E::Gu(Fn-Bv)<=1e-12&&(KE<0||id<KE)))))KE=id,CE=Hz,Bv=Fn,GS=Em;}C KE;}E::p<H>KA(H P,A&GS){E::p<H>Ch=AZ(Dz[P],F::Da);g(Ch.Dd()){GS=1e100;C Ch;}g(AA())E::GU(Ch.Bu(),Ch.FO(),[&](H x,H y){C D[x].M!=D[y].M?D[x].M<D[y].M:x<y;});Bi E::GU(Ch.Bu(),Ch.FO(),[&](H x,H y){B Ad Do=D[x].Q>0;B Ad Ei=D[y].Q>0;g(Do!=Ei)C Do>Ei;g(Do&&D[x].M!=D[y].M){C D[x].M<D[y].M;}g(D[x].Q!=D[y].Q)C D[x].Q<D[y].Q;C x<y;});g(Eq(1,G<H>(Ch.AV()),Jz(P),Aq(0,P))){GS=1e100;C{};}g(CM()){g(I<64.)Ch.Fd(Bb(1,G<H>(Ch.AV()),5));g(DJ(1,G<H>(Ch.AV()),Aq(0,P))){GS=1e100;C{};}}Bi g(AY()){H Br=-1;CH(H id:Ch){B H w=D[id].CL;g(w>=0&&(Br<0||w<Br))Br=w;}g(Br>=0){Ch.erase(E::remove_if(Ch.Bu(),Ch.FO(),[&](H id){C D[id].CL!=Br;}),Ch.FO());}}Bi{Ch.Fd(AA()?GN(1,Ch):FT(1,Ch));g(!AA()&&DJ(1,G<H>(Ch.AV()),Aq(0,P))){GS=1e100;C{};}}B H AH=G<H>(Ch.AV());B A KB=J+L(4,AH)+N(AH)+L(5,AH);Ad EO=q;GS=1e100;CH(H id:Ch){g(D[id].Q==0)CB;EO=CX;GS=E::EC(GS,(D[id].M+AD-KB)/AD);}g(EO){GS-=0.30+0.15*AW;}Bi{GS=.25+0.15*Cz-.25*AW;}GS-=Jq(Ch,EO?AD:AJ);GS-=0.025*E::log2(G<A>(AH)+1.);C Ch;}H HG()B{g(!FX()||O<2)C-1;CH(H P=0;P<O;++P){g(Bg[P]&&Au[P]>1e-15)C-1;}H Aa=-1;CH(H P=0;P<O;++P){g(Bg[P]||BW[P]<=0)CB;g(Aa<0||V[P]>V[Aa]+1e-12||(E::Gu(V[P]-V[Aa])<=1e-12&&(BW[P]>BW[Aa]||(BW[P]==BW[Aa]&&(BE[P]<BE[Aa]||(BE[P]==BE[Aa]&&P<Aa)))))){Aa=P;}}C Aa;}Ad decode_downlink_is_congested()B{B H Kq=E::Bt(AO,1,64);B A Ii=J+L(4,Kq);C AM[1]>Ii+1e-9;}Ad IQ(H P,H Ag,B E::p<H>&BH){Bk&Ak=D[Ag];H Ab=G<H>(BH.AV());A Go=E::BC(0.,AM[1]-J),GJ=Y+Aw.Bp(1,Ak.K)*G<A>(AE-Ak.AK)/AE+Go+N(Ak.K)+L(2,Ak.K),Gg=E::BC(L(4,Ab),N(Ab))+Go+N(Ab)+L(5,Ab),Cx=AW*DI/E::BC(1e-15,X-AB),EP=Cz/E::BC(1e-15,I),DC=0.;CH(H id:BH)DC=E::BC(DC,J-D[id].M);A Hh=Cx+EP*E::BC(0.,(J-Ak.AP)/AJ-1.),IY=Cx+EP*E::BC(0.,DC/AD-1.);H FA=G<H>(AZ(CA[P],F::Ax).AV()),Lh=AG+AN;C Hh*FA*Lh*Gg>IY*BE[P]*Ab*AL*GJ;}Ad JT(H P,H Ag,B E::p<H>&BH){Bk&Ak=D[Ag];A Go=AM[1]-J;A GJ=Y+Aw.Bp(1,Ak.K)*(AE-Ak.AK)/AE+Go+N(Ak.K)+L(2,Ak.K);H Ab=BH.AV(),Km=BV.back();A Gg=L(4,Ab)+Go+N(Ab)+L(5,Ab);A Cx=AW*Km/Bo[Km]/(X-AB);A EP=Cz/I;A DC=0.;CH(H id:BH){DC=E::BC(DC,J-D[id].M);}A Hh=Cx+EP*E::BC(0.,(J-Ak.AP)/AJ-1.);A IY=Cx+EP*E::BC(0.,DC/AD-1.);H FA=AZ(CA[P],F::Ax).AV();C Hh*FA*AG*Gg>IY*BE[P]*Ab*AL*GJ;}Ad Gp(H P,E::DN&FC,Ad&Ck){A LK=0,Ki=0;E::p<H>BH=KA(P,LK);B H Ag=Im(P,Ki);g(BH.Dd()&&Ag<0){g(Ah[P]>0&&J!=DL[P]){DL[P]=J;Er(0,CX);}C q;}Ad De=!BH.Dd()&&(Ag<0||(T()?!IQ(P,Ag,BH):By()?!JT(P,Ag,BH):LK<=Ki+1e-12));g(Ar()>1&&AW<Cz&&Ag>=0){De=q;}Bi g(!T()&&AA()&&Ag>=0&&!BH.Dd()){De=JO(Ag,BH);}Bi{g(!T()&&Bz()&&Ag>=0&&!CN(BH)){De=q;}Bi g(!T()&&Ba()&&Ag>=0&&!BH.Dd()){B H limit=Cz>=.5-1e-12?2:4;De=EE[P]<limit;}Bi g(!T()&&Be()&&Ag>=0&&!CN(BH)){De=q;}g(!T()&&!Ba()&&!By()&&Ag>=0&&EI[P]>=Fu()){De=q;}}g(FX()&&O>=2&&Ag>=0&&!BH.Dd()){B H KH=HG();De=KH<0||P!=KH;}Ew(EI[P],Ag>=0,!De);g(De){BF[P]=J+L(4,G<H>(BH.AV()));Au[P]=0;++EE[P];Er(G<H>(BH.AV()),q);Ck=CX;FC="C"+E::DB(P)+" D PROC "+E::DB(P);Ep(FC,BH);CH(H id:BH)BK(id,F::FB);}Bi{EE[P]=0;B H Eb=Ib(Ag,P);g(!T()&&Fl(P,Ag,Eb))C q;Au[P]=Aw.Bp(1,D[Ag].K)*G<A>(Eb-D[Ag].AK)/AE;BF[P]=J+Y+Au[P];Ck=q;FC="C"+E::DB(P)+" P PROC "+E::DB(D[Ag].AK)+" "+E::DB(Eb)+" "+E::DB(P)+" "+E::DB(Ag);D[Ag].FJ=Eb;BK(Ag,F::Dk);}Bg[P]=CX;C CX;}E::p<E::DN>Lg(){Jr();g(BA())BL=CX;E::p<E::DN>LW;LW.GA(G<E::Ea>(O)+1);g(T()){g(!Fr){E::DN t;g(HQ(t))LW.Ai(E::In(t));}CH(H c=0;c<O;++c){g(Bg[c])CB;E::DN t;Ad d=q;g(Gp(c,t,d))LW.Ai(E::In(t));}C LW;}E::p<E::DN>p_ans;p_ans.GA(O);CH(H c=0;c<O;++c){g(Bg[c])CB;E::DN FC;Ad Ck=q;g(!Gp(c,FC,Ck))CB;g(Ck)LW.Ai(E::In(FC));Bi p_ans.Ai(E::In(FC));}CH(E::DN&FC:p_ans)LW.Ai(E::In(FC));g(AA())E::GU(LW.Bu(),LW.FO(),[](B E::DN&a,B E::DN&b){C E::stoi(a.c_str()+1)<E::stoi(b.c_str()+1);});g(!Fr){E::DN FC;g(HQ(FC)){g(AA())LW.insert(LW.Bu(),E::In(FC));Bi LW.Ai(E::In(FC));}}C LW;}};}H main(){E::ios::sync_with_stdio(q);E::cin.tie(FE);H O=0,CS=0,AE=0;A Y=0,Az=0,DD=0;g(!(E::cin>>O>>Y>>Az>>DD>>CS>>AE)){C 0;}A AJ=0,AD=0,X=0,AB=0;A I=0,AW=0,Cz=0;g(!(E::cin>>AJ>>AD>>X>>AB>>I>>AW>>Cz)){C 0;}H n=0;g(!(E::cin>>n)||n<0)C 0;HE Aw;CH(H i=0;i<n;++i){H AV=0;E::Hd<A,6>Cu{};g(!(E::cin>>AV))C 0;CH(A&x:Cu){g(!(E::cin>>x))C 0;}Aw.add_sample(AV,Cu);}Aw.sort_samples();Scheduler sol(O,AE,CS,Y,Az,DD,AJ,AD,X,AB,I,AW,Cz,E::In(Aw));E::DN LF;while(E::cin>>LF){g(LF=="END")C 0;char*FO=FE;B A time=E::strtod(LF.c_str(),&FO);g(FO==LF.c_str()||*FO!='\0'||!E::Cn(time)||time<0)C 0;sol.J=time;H events=-1;g(!(E::cin>>events)||events<0)C 0;E::p<H>fin;CH(H i=0;i<events;++i){g(!sol.read_event(E::cin,fin))C 0;}g(!sol.finish_frame(fin))C 0;B E::p<E::DN>LW=sol.Lg();E::cout<<LW.AV()<<"\n";CH(B E::DN&FC:LW)E::cout<<FC<<"\n";E::cout<<E::flush;g(!E::cout)C 0;}C 0;}