OR-Tools  9.0
cp_model.pb.cc
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/sat/cp_model.proto
3 
5 
6 #include <algorithm>
7 
8 #include <google/protobuf/io/coded_stream.h>
9 #include <google/protobuf/extension_set.h>
10 #include <google/protobuf/wire_format_lite.h>
11 #include <google/protobuf/descriptor.h>
12 #include <google/protobuf/generated_message_reflection.h>
13 #include <google/protobuf/reflection_ops.h>
14 #include <google/protobuf/wire_format.h>
15 // @@protoc_insertion_point(includes)
16 #include <google/protobuf/port_def.inc>
17 
18 PROTOBUF_PRAGMA_INIT_SEG
19 namespace operations_research {
20 namespace sat {
21 constexpr IntegerVariableProto::IntegerVariableProto(
22  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
23  : domain_()
24  , _domain_cached_byte_size_()
25  , name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
28  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
30  union {
31  IntegerVariableProto _instance;
32  };
33 };
35 constexpr BoolArgumentProto::BoolArgumentProto(
36  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
37  : literals_()
38  , _literals_cached_byte_size_(){}
41  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
43  union {
44  BoolArgumentProto _instance;
45  };
46 };
47 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BoolArgumentProtoDefaultTypeInternal _BoolArgumentProto_default_instance_;
48 constexpr IntegerArgumentProto::IntegerArgumentProto(
49  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
50  : vars_()
51  , _vars_cached_byte_size_()
52  , target_(0){}
55  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
57  union {
58  IntegerArgumentProto _instance;
59  };
60 };
62 constexpr LinearExpressionProto::LinearExpressionProto(
63  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
64  : vars_()
65  , _vars_cached_byte_size_()
66  , coeffs_()
67  , _coeffs_cached_byte_size_()
68  , offset_(PROTOBUF_LONGLONG(0)){}
71  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
73  union {
74  LinearExpressionProto _instance;
75  };
76 };
78 constexpr LinearArgumentProto::LinearArgumentProto(
79  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
80  : exprs_()
81  , target_(nullptr){}
84  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
86  union {
87  LinearArgumentProto _instance;
88  };
89 };
90 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearArgumentProtoDefaultTypeInternal _LinearArgumentProto_default_instance_;
91 constexpr AllDifferentConstraintProto::AllDifferentConstraintProto(
92  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
93  : vars_()
94  , _vars_cached_byte_size_(){}
97  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
99  union {
100  AllDifferentConstraintProto _instance;
101  };
102 };
104 constexpr LinearConstraintProto::LinearConstraintProto(
105  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
106  : vars_()
107  , _vars_cached_byte_size_()
108  , coeffs_()
109  , _coeffs_cached_byte_size_()
110  , domain_()
111  , _domain_cached_byte_size_(){}
114  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
116  union {
117  LinearConstraintProto _instance;
118  };
119 };
121 constexpr ElementConstraintProto::ElementConstraintProto(
122  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
123  : vars_()
124  , _vars_cached_byte_size_()
125  , index_(0)
126  , target_(0){}
129  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
131  union {
132  ElementConstraintProto _instance;
133  };
134 };
136 constexpr IntervalConstraintProto::IntervalConstraintProto(
137  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
138  : start_view_(nullptr)
139  , end_view_(nullptr)
140  , size_view_(nullptr)
141  , start_(0)
142  , end_(0)
143  , size_(0){}
146  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
148  union {
149  IntervalConstraintProto _instance;
150  };
151 };
153 constexpr NoOverlapConstraintProto::NoOverlapConstraintProto(
154  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
155  : intervals_()
156  , _intervals_cached_byte_size_(){}
159  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
161  union {
162  NoOverlapConstraintProto _instance;
163  };
164 };
166 constexpr NoOverlap2DConstraintProto::NoOverlap2DConstraintProto(
167  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
168  : x_intervals_()
169  , _x_intervals_cached_byte_size_()
170  , y_intervals_()
171  , _y_intervals_cached_byte_size_()
172  , boxes_with_null_area_can_overlap_(false){}
175  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
177  union {
178  NoOverlap2DConstraintProto _instance;
179  };
180 };
182 constexpr CumulativeConstraintProto::CumulativeConstraintProto(
183  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
184  : intervals_()
185  , _intervals_cached_byte_size_()
186  , demands_()
187  , _demands_cached_byte_size_()
188  , capacity_(0){}
191  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
193  union {
194  CumulativeConstraintProto _instance;
195  };
196 };
198 constexpr ReservoirConstraintProto::ReservoirConstraintProto(
199  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
200  : times_()
201  , _times_cached_byte_size_()
202  , demands_()
203  , _demands_cached_byte_size_()
204  , actives_()
205  , _actives_cached_byte_size_()
206  , min_level_(PROTOBUF_LONGLONG(0))
207  , max_level_(PROTOBUF_LONGLONG(0)){}
210  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
212  union {
213  ReservoirConstraintProto _instance;
214  };
215 };
217 constexpr CircuitConstraintProto::CircuitConstraintProto(
218  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
219  : tails_()
220  , _tails_cached_byte_size_()
221  , heads_()
222  , _heads_cached_byte_size_()
223  , literals_()
224  , _literals_cached_byte_size_(){}
227  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
229  union {
230  CircuitConstraintProto _instance;
231  };
232 };
234 constexpr RoutesConstraintProto::RoutesConstraintProto(
235  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
236  : tails_()
237  , _tails_cached_byte_size_()
238  , heads_()
239  , _heads_cached_byte_size_()
240  , literals_()
241  , _literals_cached_byte_size_()
242  , demands_()
243  , _demands_cached_byte_size_()
244  , capacity_(PROTOBUF_LONGLONG(0)){}
247  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
249  union {
250  RoutesConstraintProto _instance;
251  };
252 };
254 constexpr TableConstraintProto::TableConstraintProto(
255  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
256  : vars_()
257  , _vars_cached_byte_size_()
258  , values_()
259  , _values_cached_byte_size_()
260  , negated_(false){}
263  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
265  union {
266  TableConstraintProto _instance;
267  };
268 };
270 constexpr InverseConstraintProto::InverseConstraintProto(
271  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
272  : f_direct_()
273  , _f_direct_cached_byte_size_()
274  , f_inverse_()
275  , _f_inverse_cached_byte_size_(){}
278  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
280  union {
281  InverseConstraintProto _instance;
282  };
283 };
285 constexpr AutomatonConstraintProto::AutomatonConstraintProto(
286  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
287  : final_states_()
288  , _final_states_cached_byte_size_()
289  , transition_tail_()
290  , _transition_tail_cached_byte_size_()
291  , transition_head_()
292  , _transition_head_cached_byte_size_()
293  , transition_label_()
294  , _transition_label_cached_byte_size_()
295  , vars_()
296  , _vars_cached_byte_size_()
297  , starting_state_(PROTOBUF_LONGLONG(0)){}
300  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
302  union {
303  AutomatonConstraintProto _instance;
304  };
305 };
307 constexpr ConstraintProto::ConstraintProto(
308  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
309  : enforcement_literal_()
310  , _enforcement_literal_cached_byte_size_()
311  , name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
312  , _oneof_case_{}{}
315  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
317  union {
318  ConstraintProto _instance;
319  };
320 };
321 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ConstraintProtoDefaultTypeInternal _ConstraintProto_default_instance_;
322 constexpr CpObjectiveProto::CpObjectiveProto(
323  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
324  : vars_()
325  , _vars_cached_byte_size_()
326  , coeffs_()
327  , _coeffs_cached_byte_size_()
328  , domain_()
329  , _domain_cached_byte_size_()
330  , offset_(0)
331  , scaling_factor_(0){}
334  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
336  union {
337  CpObjectiveProto _instance;
338  };
339 };
340 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpObjectiveProtoDefaultTypeInternal _CpObjectiveProto_default_instance_;
341 constexpr DecisionStrategyProto_AffineTransformation::DecisionStrategyProto_AffineTransformation(
342  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
343  : offset_(PROTOBUF_LONGLONG(0))
344  , positive_coeff_(PROTOBUF_LONGLONG(0))
345  , index_(0){}
348  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
350  union {
351  DecisionStrategyProto_AffineTransformation _instance;
352  };
353 };
355 constexpr DecisionStrategyProto::DecisionStrategyProto(
356  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
357  : variables_()
358  , _variables_cached_byte_size_()
359  , transformations_()
360  , variable_selection_strategy_(0)
361 
362  , domain_reduction_strategy_(0)
363 {}
366  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
368  union {
369  DecisionStrategyProto _instance;
370  };
371 };
373 constexpr PartialVariableAssignment::PartialVariableAssignment(
374  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
375  : vars_()
376  , _vars_cached_byte_size_()
377  , values_()
378  , _values_cached_byte_size_(){}
381  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
383  union {
384  PartialVariableAssignment _instance;
385  };
386 };
388 constexpr SparsePermutationProto::SparsePermutationProto(
389  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
390  : support_()
391  , _support_cached_byte_size_()
392  , cycle_sizes_()
393  , _cycle_sizes_cached_byte_size_(){}
396  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
398  union {
399  SparsePermutationProto _instance;
400  };
401 };
403 constexpr DenseMatrixProto::DenseMatrixProto(
404  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
405  : entries_()
406  , _entries_cached_byte_size_()
407  , num_rows_(0)
408  , num_cols_(0){}
411  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
413  union {
414  DenseMatrixProto _instance;
415  };
416 };
417 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT DenseMatrixProtoDefaultTypeInternal _DenseMatrixProto_default_instance_;
418 constexpr SymmetryProto::SymmetryProto(
419  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
420  : permutations_()
421  , orbitopes_(){}
424  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
426  union {
427  SymmetryProto _instance;
428  };
429 };
430 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SymmetryProtoDefaultTypeInternal _SymmetryProto_default_instance_;
431 constexpr CpModelProto::CpModelProto(
432  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
433  : variables_()
434  , constraints_()
435  , search_strategy_()
436  , assumptions_()
437  , _assumptions_cached_byte_size_()
438  , name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
439  , objective_(nullptr)
440  , solution_hint_(nullptr)
441  , symmetry_(nullptr){}
444  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
446  union {
447  CpModelProto _instance;
448  };
449 };
450 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpModelProtoDefaultTypeInternal _CpModelProto_default_instance_;
451 constexpr CpSolverResponse::CpSolverResponse(
452  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
453  : solution_()
454  , _solution_cached_byte_size_()
455  , solution_lower_bounds_()
456  , _solution_lower_bounds_cached_byte_size_()
457  , solution_upper_bounds_()
458  , _solution_upper_bounds_cached_byte_size_()
459  , tightened_variables_()
460  , sufficient_assumptions_for_infeasibility_()
461  , _sufficient_assumptions_for_infeasibility_cached_byte_size_()
462  , solution_info_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
463  , solve_log_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
464  , objective_value_(0)
465  , status_(0)
466 
467  , all_solutions_were_found_(false)
468  , best_objective_bound_(0)
469  , num_booleans_(PROTOBUF_LONGLONG(0))
470  , num_conflicts_(PROTOBUF_LONGLONG(0))
471  , num_branches_(PROTOBUF_LONGLONG(0))
472  , num_binary_propagations_(PROTOBUF_LONGLONG(0))
473  , num_integer_propagations_(PROTOBUF_LONGLONG(0))
474  , wall_time_(0)
475  , user_time_(0)
476  , deterministic_time_(0)
477  , primal_integral_(0)
478  , num_restarts_(PROTOBUF_LONGLONG(0))
479  , num_lp_iterations_(PROTOBUF_LONGLONG(0)){}
482  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
484  union {
485  CpSolverResponse _instance;
486  };
487 };
488 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpSolverResponseDefaultTypeInternal _CpSolverResponse_default_instance_;
489 } // namespace sat
490 } // namespace operations_research
491 static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fcp_5fmodel_2eproto[28];
492 static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto[3];
493 static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto = nullptr;
494 
495 const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fsat_2fcp_5fmodel_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
496  ~0u, // no _has_bits_
497  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, _internal_metadata_),
498  ~0u, // no _extensions_
499  ~0u, // no _oneof_case_
500  ~0u, // no _weak_field_map_
501  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, name_),
502  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, domain_),
503  ~0u, // no _has_bits_
504  PROTOBUF_FIELD_OFFSET(::operations_research::sat::BoolArgumentProto, _internal_metadata_),
505  ~0u, // no _extensions_
506  ~0u, // no _oneof_case_
507  ~0u, // no _weak_field_map_
508  PROTOBUF_FIELD_OFFSET(::operations_research::sat::BoolArgumentProto, literals_),
509  ~0u, // no _has_bits_
510  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, _internal_metadata_),
511  ~0u, // no _extensions_
512  ~0u, // no _oneof_case_
513  ~0u, // no _weak_field_map_
514  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, target_),
515  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, vars_),
516  ~0u, // no _has_bits_
517  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, _internal_metadata_),
518  ~0u, // no _extensions_
519  ~0u, // no _oneof_case_
520  ~0u, // no _weak_field_map_
521  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, vars_),
522  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, coeffs_),
523  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, offset_),
524  ~0u, // no _has_bits_
525  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, _internal_metadata_),
526  ~0u, // no _extensions_
527  ~0u, // no _oneof_case_
528  ~0u, // no _weak_field_map_
529  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, target_),
530  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, exprs_),
531  ~0u, // no _has_bits_
532  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AllDifferentConstraintProto, _internal_metadata_),
533  ~0u, // no _extensions_
534  ~0u, // no _oneof_case_
535  ~0u, // no _weak_field_map_
536  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AllDifferentConstraintProto, vars_),
537  ~0u, // no _has_bits_
538  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, _internal_metadata_),
539  ~0u, // no _extensions_
540  ~0u, // no _oneof_case_
541  ~0u, // no _weak_field_map_
542  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, vars_),
543  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, coeffs_),
544  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, domain_),
545  ~0u, // no _has_bits_
546  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, _internal_metadata_),
547  ~0u, // no _extensions_
548  ~0u, // no _oneof_case_
549  ~0u, // no _weak_field_map_
550  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, index_),
551  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, target_),
552  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, vars_),
553  ~0u, // no _has_bits_
554  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, _internal_metadata_),
555  ~0u, // no _extensions_
556  ~0u, // no _oneof_case_
557  ~0u, // no _weak_field_map_
558  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, start_),
559  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, end_),
560  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, size_),
561  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, start_view_),
562  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, end_view_),
563  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, size_view_),
564  ~0u, // no _has_bits_
565  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlapConstraintProto, _internal_metadata_),
566  ~0u, // no _extensions_
567  ~0u, // no _oneof_case_
568  ~0u, // no _weak_field_map_
569  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlapConstraintProto, intervals_),
570  ~0u, // no _has_bits_
571  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, _internal_metadata_),
572  ~0u, // no _extensions_
573  ~0u, // no _oneof_case_
574  ~0u, // no _weak_field_map_
575  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, x_intervals_),
576  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, y_intervals_),
577  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, boxes_with_null_area_can_overlap_),
578  ~0u, // no _has_bits_
579  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, _internal_metadata_),
580  ~0u, // no _extensions_
581  ~0u, // no _oneof_case_
582  ~0u, // no _weak_field_map_
583  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, capacity_),
584  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, intervals_),
585  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, demands_),
586  ~0u, // no _has_bits_
587  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, _internal_metadata_),
588  ~0u, // no _extensions_
589  ~0u, // no _oneof_case_
590  ~0u, // no _weak_field_map_
591  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, min_level_),
592  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, max_level_),
593  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, times_),
594  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, demands_),
595  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, actives_),
596  ~0u, // no _has_bits_
597  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, _internal_metadata_),
598  ~0u, // no _extensions_
599  ~0u, // no _oneof_case_
600  ~0u, // no _weak_field_map_
601  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, tails_),
602  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, heads_),
603  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, literals_),
604  ~0u, // no _has_bits_
605  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, _internal_metadata_),
606  ~0u, // no _extensions_
607  ~0u, // no _oneof_case_
608  ~0u, // no _weak_field_map_
609  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, tails_),
610  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, heads_),
611  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, literals_),
612  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, demands_),
613  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, capacity_),
614  ~0u, // no _has_bits_
615  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, _internal_metadata_),
616  ~0u, // no _extensions_
617  ~0u, // no _oneof_case_
618  ~0u, // no _weak_field_map_
619  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, vars_),
620  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, values_),
621  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, negated_),
622  ~0u, // no _has_bits_
623  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, _internal_metadata_),
624  ~0u, // no _extensions_
625  ~0u, // no _oneof_case_
626  ~0u, // no _weak_field_map_
627  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, f_direct_),
628  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, f_inverse_),
629  ~0u, // no _has_bits_
630  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, _internal_metadata_),
631  ~0u, // no _extensions_
632  ~0u, // no _oneof_case_
633  ~0u, // no _weak_field_map_
634  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, starting_state_),
635  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, final_states_),
636  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_tail_),
637  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_head_),
638  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_label_),
639  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, vars_),
640  ~0u, // no _has_bits_
641  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, _internal_metadata_),
642  ~0u, // no _extensions_
643  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, _oneof_case_[0]),
644  ~0u, // no _weak_field_map_
645  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, name_),
646  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, enforcement_literal_),
647  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
648  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
649  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
650  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
651  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
652  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
653  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
654  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
655  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
656  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
657  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
658  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
659  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
660  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
661  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
662  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
663  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
664  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
665  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
666  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
667  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
668  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
669  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
670  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
671  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
672  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, constraint_),
673  ~0u, // no _has_bits_
674  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, _internal_metadata_),
675  ~0u, // no _extensions_
676  ~0u, // no _oneof_case_
677  ~0u, // no _weak_field_map_
678  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, vars_),
679  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, coeffs_),
680  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, offset_),
681  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, scaling_factor_),
682  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, domain_),
683  ~0u, // no _has_bits_
684  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, _internal_metadata_),
685  ~0u, // no _extensions_
686  ~0u, // no _oneof_case_
687  ~0u, // no _weak_field_map_
688  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, index_),
689  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, offset_),
690  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, positive_coeff_),
691  ~0u, // no _has_bits_
692  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, _internal_metadata_),
693  ~0u, // no _extensions_
694  ~0u, // no _oneof_case_
695  ~0u, // no _weak_field_map_
696  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, variables_),
697  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, variable_selection_strategy_),
698  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, domain_reduction_strategy_),
699  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, transformations_),
700  ~0u, // no _has_bits_
701  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, _internal_metadata_),
702  ~0u, // no _extensions_
703  ~0u, // no _oneof_case_
704  ~0u, // no _weak_field_map_
705  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, vars_),
706  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, values_),
707  ~0u, // no _has_bits_
708  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, _internal_metadata_),
709  ~0u, // no _extensions_
710  ~0u, // no _oneof_case_
711  ~0u, // no _weak_field_map_
712  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, support_),
713  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, cycle_sizes_),
714  ~0u, // no _has_bits_
715  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, _internal_metadata_),
716  ~0u, // no _extensions_
717  ~0u, // no _oneof_case_
718  ~0u, // no _weak_field_map_
719  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, num_rows_),
720  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, num_cols_),
721  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, entries_),
722  ~0u, // no _has_bits_
723  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, _internal_metadata_),
724  ~0u, // no _extensions_
725  ~0u, // no _oneof_case_
726  ~0u, // no _weak_field_map_
727  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, permutations_),
728  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, orbitopes_),
729  ~0u, // no _has_bits_
730  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, _internal_metadata_),
731  ~0u, // no _extensions_
732  ~0u, // no _oneof_case_
733  ~0u, // no _weak_field_map_
734  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, name_),
735  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, variables_),
736  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, constraints_),
737  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, objective_),
738  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, search_strategy_),
739  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, solution_hint_),
740  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, assumptions_),
741  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, symmetry_),
742  ~0u, // no _has_bits_
743  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, _internal_metadata_),
744  ~0u, // no _extensions_
745  ~0u, // no _oneof_case_
746  ~0u, // no _weak_field_map_
747  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, status_),
748  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_),
749  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, objective_value_),
750  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, best_objective_bound_),
751  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_lower_bounds_),
752  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_upper_bounds_),
753  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, tightened_variables_),
754  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, sufficient_assumptions_for_infeasibility_),
755  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, all_solutions_were_found_),
756  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_booleans_),
757  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_conflicts_),
758  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_branches_),
759  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_binary_propagations_),
760  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_integer_propagations_),
761  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_restarts_),
762  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_lp_iterations_),
763  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, wall_time_),
764  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, user_time_),
765  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, deterministic_time_),
766  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, primal_integral_),
767  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_info_),
768  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solve_log_),
769 };
770 static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
771  { 0, -1, sizeof(::operations_research::sat::IntegerVariableProto)},
772  { 7, -1, sizeof(::operations_research::sat::BoolArgumentProto)},
773  { 13, -1, sizeof(::operations_research::sat::IntegerArgumentProto)},
774  { 20, -1, sizeof(::operations_research::sat::LinearExpressionProto)},
775  { 28, -1, sizeof(::operations_research::sat::LinearArgumentProto)},
776  { 35, -1, sizeof(::operations_research::sat::AllDifferentConstraintProto)},
777  { 41, -1, sizeof(::operations_research::sat::LinearConstraintProto)},
778  { 49, -1, sizeof(::operations_research::sat::ElementConstraintProto)},
779  { 57, -1, sizeof(::operations_research::sat::IntervalConstraintProto)},
780  { 68, -1, sizeof(::operations_research::sat::NoOverlapConstraintProto)},
781  { 74, -1, sizeof(::operations_research::sat::NoOverlap2DConstraintProto)},
782  { 82, -1, sizeof(::operations_research::sat::CumulativeConstraintProto)},
783  { 90, -1, sizeof(::operations_research::sat::ReservoirConstraintProto)},
784  { 100, -1, sizeof(::operations_research::sat::CircuitConstraintProto)},
785  { 108, -1, sizeof(::operations_research::sat::RoutesConstraintProto)},
786  { 118, -1, sizeof(::operations_research::sat::TableConstraintProto)},
787  { 126, -1, sizeof(::operations_research::sat::InverseConstraintProto)},
788  { 133, -1, sizeof(::operations_research::sat::AutomatonConstraintProto)},
789  { 144, -1, sizeof(::operations_research::sat::ConstraintProto)},
790  { 177, -1, sizeof(::operations_research::sat::CpObjectiveProto)},
791  { 187, -1, sizeof(::operations_research::sat::DecisionStrategyProto_AffineTransformation)},
792  { 195, -1, sizeof(::operations_research::sat::DecisionStrategyProto)},
793  { 204, -1, sizeof(::operations_research::sat::PartialVariableAssignment)},
794  { 211, -1, sizeof(::operations_research::sat::SparsePermutationProto)},
795  { 218, -1, sizeof(::operations_research::sat::DenseMatrixProto)},
796  { 226, -1, sizeof(::operations_research::sat::SymmetryProto)},
797  { 233, -1, sizeof(::operations_research::sat::CpModelProto)},
798  { 246, -1, sizeof(::operations_research::sat::CpSolverResponse)},
799 };
800 
801 static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
802  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntegerVariableProto_default_instance_),
803  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_BoolArgumentProto_default_instance_),
804  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntegerArgumentProto_default_instance_),
805  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearExpressionProto_default_instance_),
806  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearArgumentProto_default_instance_),
807  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_AllDifferentConstraintProto_default_instance_),
808  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearConstraintProto_default_instance_),
809  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ElementConstraintProto_default_instance_),
810  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntervalConstraintProto_default_instance_),
811  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_NoOverlapConstraintProto_default_instance_),
812  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_NoOverlap2DConstraintProto_default_instance_),
813  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CumulativeConstraintProto_default_instance_),
814  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ReservoirConstraintProto_default_instance_),
815  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CircuitConstraintProto_default_instance_),
816  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_RoutesConstraintProto_default_instance_),
817  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_TableConstraintProto_default_instance_),
818  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_InverseConstraintProto_default_instance_),
819  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_AutomatonConstraintProto_default_instance_),
820  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ConstraintProto_default_instance_),
821  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpObjectiveProto_default_instance_),
822  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DecisionStrategyProto_AffineTransformation_default_instance_),
823  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DecisionStrategyProto_default_instance_),
824  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_PartialVariableAssignment_default_instance_),
825  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_SparsePermutationProto_default_instance_),
826  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DenseMatrixProto_default_instance_),
827  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_SymmetryProto_default_instance_),
828  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpModelProto_default_instance_),
829  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpSolverResponse_default_instance_),
830 };
831 
832 const char descriptor_table_protodef_ortools_2fsat_2fcp_5fmodel_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
833  "\n\032ortools/sat/cp_model.proto\022\027operations"
834  "_research.sat\"4\n\024IntegerVariableProto\022\014\n"
835  "\004name\030\001 \001(\t\022\016\n\006domain\030\002 \003(\003\"%\n\021BoolArgum"
836  "entProto\022\020\n\010literals\030\001 \003(\005\"4\n\024IntegerArg"
837  "umentProto\022\016\n\006target\030\001 \001(\005\022\014\n\004vars\030\002 \003(\005"
838  "\"E\n\025LinearExpressionProto\022\014\n\004vars\030\001 \003(\005\022"
839  "\016\n\006coeffs\030\002 \003(\003\022\016\n\006offset\030\003 \001(\003\"\224\001\n\023Line"
840  "arArgumentProto\022>\n\006target\030\001 \001(\0132..operat"
841  "ions_research.sat.LinearExpressionProto\022"
842  "=\n\005exprs\030\002 \003(\0132..operations_research.sat"
843  ".LinearExpressionProto\"+\n\033AllDifferentCo"
844  "nstraintProto\022\014\n\004vars\030\001 \003(\005\"E\n\025LinearCon"
845  "straintProto\022\014\n\004vars\030\001 \003(\005\022\016\n\006coeffs\030\002 \003"
846  "(\003\022\016\n\006domain\030\003 \003(\003\"E\n\026ElementConstraintP"
847  "roto\022\r\n\005index\030\001 \001(\005\022\016\n\006target\030\002 \001(\005\022\014\n\004v"
848  "ars\030\003 \003(\005\"\214\002\n\027IntervalConstraintProto\022\r\n"
849  "\005start\030\001 \001(\005\022\013\n\003end\030\002 \001(\005\022\014\n\004size\030\003 \001(\005\022"
850  "B\n\nstart_view\030\004 \001(\0132..operations_researc"
851  "h.sat.LinearExpressionProto\022@\n\010end_view\030"
852  "\005 \001(\0132..operations_research.sat.LinearEx"
853  "pressionProto\022A\n\tsize_view\030\006 \001(\0132..opera"
854  "tions_research.sat.LinearExpressionProto"
855  "\"-\n\030NoOverlapConstraintProto\022\021\n\tinterval"
856  "s\030\001 \003(\005\"p\n\032NoOverlap2DConstraintProto\022\023\n"
857  "\013x_intervals\030\001 \003(\005\022\023\n\013y_intervals\030\002 \003(\005\022"
858  "(\n boxes_with_null_area_can_overlap\030\003 \001("
859  "\010\"Q\n\031CumulativeConstraintProto\022\020\n\010capaci"
860  "ty\030\001 \001(\005\022\021\n\tintervals\030\002 \003(\005\022\017\n\007demands\030\003"
861  " \003(\005\"q\n\030ReservoirConstraintProto\022\021\n\tmin_"
862  "level\030\001 \001(\003\022\021\n\tmax_level\030\002 \001(\003\022\r\n\005times\030"
863  "\003 \003(\005\022\017\n\007demands\030\004 \003(\003\022\017\n\007actives\030\005 \003(\005\""
864  "H\n\026CircuitConstraintProto\022\r\n\005tails\030\003 \003(\005"
865  "\022\r\n\005heads\030\004 \003(\005\022\020\n\010literals\030\005 \003(\005\"j\n\025Rou"
866  "tesConstraintProto\022\r\n\005tails\030\001 \003(\005\022\r\n\005hea"
867  "ds\030\002 \003(\005\022\020\n\010literals\030\003 \003(\005\022\017\n\007demands\030\004 "
868  "\003(\005\022\020\n\010capacity\030\005 \001(\003\"E\n\024TableConstraint"
869  "Proto\022\014\n\004vars\030\001 \003(\005\022\016\n\006values\030\002 \003(\003\022\017\n\007n"
870  "egated\030\003 \001(\010\"=\n\026InverseConstraintProto\022\020"
871  "\n\010f_direct\030\001 \003(\005\022\021\n\tf_inverse\030\002 \003(\005\"\242\001\n\030"
872  "AutomatonConstraintProto\022\026\n\016starting_sta"
873  "te\030\002 \001(\003\022\024\n\014final_states\030\003 \003(\003\022\027\n\017transi"
874  "tion_tail\030\004 \003(\003\022\027\n\017transition_head\030\005 \003(\003"
875  "\022\030\n\020transition_label\030\006 \003(\003\022\014\n\004vars\030\007 \003(\005"
876  "\"\355\r\n\017ConstraintProto\022\014\n\004name\030\001 \001(\t\022\033\n\023en"
877  "forcement_literal\030\002 \003(\005\022=\n\007bool_or\030\003 \001(\013"
878  "2*.operations_research.sat.BoolArgumentP"
879  "rotoH\000\022>\n\010bool_and\030\004 \001(\0132*.operations_re"
880  "search.sat.BoolArgumentProtoH\000\022A\n\013at_mos"
881  "t_one\030\032 \001(\0132*.operations_research.sat.Bo"
882  "olArgumentProtoH\000\022A\n\013exactly_one\030\035 \001(\0132*"
883  ".operations_research.sat.BoolArgumentPro"
884  "toH\000\022>\n\010bool_xor\030\005 \001(\0132*.operations_rese"
885  "arch.sat.BoolArgumentProtoH\000\022@\n\007int_div\030"
886  "\007 \001(\0132-.operations_research.sat.IntegerA"
887  "rgumentProtoH\000\022@\n\007int_mod\030\010 \001(\0132-.operat"
888  "ions_research.sat.IntegerArgumentProtoH\000"
889  "\022@\n\007int_max\030\t \001(\0132-.operations_research."
890  "sat.IntegerArgumentProtoH\000\022\?\n\007lin_max\030\033 "
891  "\001(\0132,.operations_research.sat.LinearArgu"
892  "mentProtoH\000\022@\n\007int_min\030\n \001(\0132-.operation"
893  "s_research.sat.IntegerArgumentProtoH\000\022\?\n"
894  "\007lin_min\030\034 \001(\0132,.operations_research.sat"
895  ".LinearArgumentProtoH\000\022A\n\010int_prod\030\013 \001(\013"
896  "2-.operations_research.sat.IntegerArgume"
897  "ntProtoH\000\022@\n\006linear\030\014 \001(\0132..operations_r"
898  "esearch.sat.LinearConstraintProtoH\000\022H\n\010a"
899  "ll_diff\030\r \001(\01324.operations_research.sat."
900  "AllDifferentConstraintProtoH\000\022B\n\007element"
901  "\030\016 \001(\0132/.operations_research.sat.Element"
902  "ConstraintProtoH\000\022B\n\007circuit\030\017 \001(\0132/.ope"
903  "rations_research.sat.CircuitConstraintPr"
904  "otoH\000\022@\n\006routes\030\027 \001(\0132..operations_resea"
905  "rch.sat.RoutesConstraintProtoH\000\022>\n\005table"
906  "\030\020 \001(\0132-.operations_research.sat.TableCo"
907  "nstraintProtoH\000\022F\n\tautomaton\030\021 \001(\01321.ope"
908  "rations_research.sat.AutomatonConstraint"
909  "ProtoH\000\022B\n\007inverse\030\022 \001(\0132/.operations_re"
910  "search.sat.InverseConstraintProtoH\000\022F\n\tr"
911  "eservoir\030\030 \001(\01321.operations_research.sat"
912  ".ReservoirConstraintProtoH\000\022D\n\010interval\030"
913  "\023 \001(\01320.operations_research.sat.Interval"
914  "ConstraintProtoH\000\022G\n\nno_overlap\030\024 \001(\01321."
915  "operations_research.sat.NoOverlapConstra"
916  "intProtoH\000\022L\n\rno_overlap_2d\030\025 \001(\01323.oper"
917  "ations_research.sat.NoOverlap2DConstrain"
918  "tProtoH\000\022H\n\ncumulative\030\026 \001(\01322.operation"
919  "s_research.sat.CumulativeConstraintProto"
920  "H\000B\014\n\nconstraint\"h\n\020CpObjectiveProto\022\014\n\004"
921  "vars\030\001 \003(\005\022\016\n\006coeffs\030\004 \003(\003\022\016\n\006offset\030\002 \001"
922  "(\001\022\026\n\016scaling_factor\030\003 \001(\001\022\016\n\006domain\030\005 \003"
923  "(\003\"\327\005\n\025DecisionStrategyProto\022\021\n\tvariable"
924  "s\030\001 \003(\005\022m\n\033variable_selection_strategy\030\002"
925  " \001(\0162H.operations_research.sat.DecisionS"
926  "trategyProto.VariableSelectionStrategy\022i"
927  "\n\031domain_reduction_strategy\030\003 \001(\0162F.oper"
928  "ations_research.sat.DecisionStrategyProt"
929  "o.DomainReductionStrategy\022\\\n\017transformat"
930  "ions\030\004 \003(\0132C.operations_research.sat.Dec"
931  "isionStrategyProto.AffineTransformation\032"
932  "M\n\024AffineTransformation\022\r\n\005index\030\001 \001(\005\022\016"
933  "\n\006offset\030\002 \001(\003\022\026\n\016positive_coeff\030\003 \001(\003\"\224"
934  "\001\n\031VariableSelectionStrategy\022\020\n\014CHOOSE_F"
935  "IRST\020\000\022\025\n\021CHOOSE_LOWEST_MIN\020\001\022\026\n\022CHOOSE_"
936  "HIGHEST_MAX\020\002\022\032\n\026CHOOSE_MIN_DOMAIN_SIZE\020"
937  "\003\022\032\n\026CHOOSE_MAX_DOMAIN_SIZE\020\004\"\214\001\n\027Domain"
938  "ReductionStrategy\022\024\n\020SELECT_MIN_VALUE\020\000\022"
939  "\024\n\020SELECT_MAX_VALUE\020\001\022\025\n\021SELECT_LOWER_HA"
940  "LF\020\002\022\025\n\021SELECT_UPPER_HALF\020\003\022\027\n\023SELECT_ME"
941  "DIAN_VALUE\020\004\"9\n\031PartialVariableAssignmen"
942  "t\022\014\n\004vars\030\001 \003(\005\022\016\n\006values\030\002 \003(\003\">\n\026Spars"
943  "ePermutationProto\022\017\n\007support\030\001 \003(\005\022\023\n\013cy"
944  "cle_sizes\030\002 \003(\005\"G\n\020DenseMatrixProto\022\020\n\010n"
945  "um_rows\030\001 \001(\005\022\020\n\010num_cols\030\002 \001(\005\022\017\n\007entri"
946  "es\030\003 \003(\005\"\224\001\n\rSymmetryProto\022E\n\014permutatio"
947  "ns\030\001 \003(\0132/.operations_research.sat.Spars"
948  "ePermutationProto\022<\n\torbitopes\030\002 \003(\0132).o"
949  "perations_research.sat.DenseMatrixProto\""
950  "\276\003\n\014CpModelProto\022\014\n\004name\030\001 \001(\t\022@\n\tvariab"
951  "les\030\002 \003(\0132-.operations_research.sat.Inte"
952  "gerVariableProto\022=\n\013constraints\030\003 \003(\0132(."
953  "operations_research.sat.ConstraintProto\022"
954  "<\n\tobjective\030\004 \001(\0132).operations_research"
955  ".sat.CpObjectiveProto\022G\n\017search_strategy"
956  "\030\005 \003(\0132..operations_research.sat.Decisio"
957  "nStrategyProto\022I\n\rsolution_hint\030\006 \001(\01322."
958  "operations_research.sat.PartialVariableA"
959  "ssignment\022\023\n\013assumptions\030\007 \003(\005\0228\n\010symmet"
960  "ry\030\010 \001(\0132&.operations_research.sat.Symme"
961  "tryProto\"\256\005\n\020CpSolverResponse\0227\n\006status\030"
962  "\001 \001(\0162\'.operations_research.sat.CpSolver"
963  "Status\022\020\n\010solution\030\002 \003(\003\022\027\n\017objective_va"
964  "lue\030\003 \001(\001\022\034\n\024best_objective_bound\030\004 \001(\001\022"
965  "\035\n\025solution_lower_bounds\030\022 \003(\003\022\035\n\025soluti"
966  "on_upper_bounds\030\023 \003(\003\022J\n\023tightened_varia"
967  "bles\030\025 \003(\0132-.operations_research.sat.Int"
968  "egerVariableProto\0220\n(sufficient_assumpti"
969  "ons_for_infeasibility\030\027 \003(\005\022 \n\030all_solut"
970  "ions_were_found\030\005 \001(\010\022\024\n\014num_booleans\030\n "
971  "\001(\003\022\025\n\rnum_conflicts\030\013 \001(\003\022\024\n\014num_branch"
972  "es\030\014 \001(\003\022\037\n\027num_binary_propagations\030\r \001("
973  "\003\022 \n\030num_integer_propagations\030\016 \001(\003\022\024\n\014n"
974  "um_restarts\030\030 \001(\003\022\031\n\021num_lp_iterations\030\031"
975  " \001(\003\022\021\n\twall_time\030\017 \001(\001\022\021\n\tuser_time\030\020 \001"
976  "(\001\022\032\n\022deterministic_time\030\021 \001(\001\022\027\n\017primal"
977  "_integral\030\026 \001(\001\022\025\n\rsolution_info\030\024 \001(\t\022\021"
978  "\n\tsolve_log\030\032 \001(\t*[\n\016CpSolverStatus\022\013\n\007U"
979  "NKNOWN\020\000\022\021\n\rMODEL_INVALID\020\001\022\014\n\010FEASIBLE\020"
980  "\002\022\016\n\nINFEASIBLE\020\003\022\013\n\007OPTIMAL\020\004B@\n\026com.go"
981  "ogle.ortools.satB\017CpModelProtobufP\001\252\002\022Go"
982  "ogle.OrTools.Satb\006proto3"
983  ;
984 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_once;
985 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto = {
986  false, false, 5984, descriptor_table_protodef_ortools_2fsat_2fcp_5fmodel_2eproto, "ortools/sat/cp_model.proto",
990 };
991 PROTOBUF_ATTRIBUTE_WEAK ::PROTOBUF_NAMESPACE_ID::Metadata
993  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
995 }
996 
997 // Force running AddDescriptors() at dynamic initialization time.
998 PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_ortools_2fsat_2fcp_5fmodel_2eproto(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
999 namespace operations_research {
1000 namespace sat {
1001 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DecisionStrategyProto_VariableSelectionStrategy_descriptor() {
1002  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1004 }
1006  switch (value) {
1007  case 0:
1008  case 1:
1009  case 2:
1010  case 3:
1011  case 4:
1012  return true;
1013  default:
1014  return false;
1015  }
1016 }
1017 
1018 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1019 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_FIRST;
1020 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_LOWEST_MIN;
1021 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_HIGHEST_MAX;
1022 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_MIN_DOMAIN_SIZE;
1023 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_MAX_DOMAIN_SIZE;
1024 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::VariableSelectionStrategy_MIN;
1025 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::VariableSelectionStrategy_MAX;
1026 constexpr int DecisionStrategyProto::VariableSelectionStrategy_ARRAYSIZE;
1027 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1028 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DecisionStrategyProto_DomainReductionStrategy_descriptor() {
1029  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1031 }
1033  switch (value) {
1034  case 0:
1035  case 1:
1036  case 2:
1037  case 3:
1038  case 4:
1039  return true;
1040  default:
1041  return false;
1042  }
1043 }
1044 
1045 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1046 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_MIN_VALUE;
1047 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_MAX_VALUE;
1048 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_LOWER_HALF;
1049 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_UPPER_HALF;
1050 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_MEDIAN_VALUE;
1051 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::DomainReductionStrategy_MIN;
1052 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::DomainReductionStrategy_MAX;
1053 constexpr int DecisionStrategyProto::DomainReductionStrategy_ARRAYSIZE;
1054 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1055 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CpSolverStatus_descriptor() {
1056  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1058 }
1060  switch (value) {
1061  case 0:
1062  case 1:
1063  case 2:
1064  case 3:
1065  case 4:
1066  return true;
1067  default:
1068  return false;
1069  }
1070 }
1071 
1072 
1073 // ===================================================================
1074 
1076  public:
1077 };
1078 
1079 IntegerVariableProto::IntegerVariableProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1080  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1081  domain_(arena) {
1082  SharedCtor();
1083  RegisterArenaDtor(arena);
1084  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntegerVariableProto)
1085 }
1086 IntegerVariableProto::IntegerVariableProto(const IntegerVariableProto& from)
1087  : ::PROTOBUF_NAMESPACE_ID::Message(),
1088  domain_(from.domain_) {
1089  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1090  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1091  if (!from._internal_name().empty()) {
1092  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
1093  GetArena());
1094  }
1095  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntegerVariableProto)
1096 }
1097 
1098 void IntegerVariableProto::SharedCtor() {
1099 name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1100 }
1101 
1102 IntegerVariableProto::~IntegerVariableProto() {
1103  // @@protoc_insertion_point(destructor:operations_research.sat.IntegerVariableProto)
1104  SharedDtor();
1105  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1106 }
1107 
1108 void IntegerVariableProto::SharedDtor() {
1109  GOOGLE_DCHECK(GetArena() == nullptr);
1110  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1111 }
1112 
1113 void IntegerVariableProto::ArenaDtor(void* object) {
1114  IntegerVariableProto* _this = reinterpret_cast< IntegerVariableProto* >(object);
1115  (void)_this;
1116 }
1117 void IntegerVariableProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1118 }
1119 void IntegerVariableProto::SetCachedSize(int size) const {
1120  _cached_size_.Set(size);
1121 }
1122 
1123 void IntegerVariableProto::Clear() {
1124 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntegerVariableProto)
1125  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1126  // Prevent compiler warnings about cached_has_bits being unused
1127  (void) cached_has_bits;
1128 
1129  domain_.Clear();
1130  name_.ClearToEmpty();
1131  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1132 }
1133 
1134 const char* IntegerVariableProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1135 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1136  while (!ctx->Done(&ptr)) {
1137  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
1138  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1139  CHK_(ptr);
1140  switch (tag >> 3) {
1141  // string name = 1;
1142  case 1:
1143  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1144  auto str = _internal_mutable_name();
1145  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1146  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.IntegerVariableProto.name"));
1147  CHK_(ptr);
1148  } else goto handle_unusual;
1149  continue;
1150  // repeated int64 domain = 2;
1151  case 2:
1152  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1153  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
1154  CHK_(ptr);
1155  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1156  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1157  CHK_(ptr);
1158  } else goto handle_unusual;
1159  continue;
1160  default: {
1161  handle_unusual:
1162  if ((tag & 7) == 4 || tag == 0) {
1163  ctx->SetLastTag(tag);
1164  goto success;
1165  }
1166  ptr = UnknownFieldParse(tag,
1167  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1168  ptr, ctx);
1169  CHK_(ptr != nullptr);
1170  continue;
1171  }
1172  } // switch
1173  } // while
1174 success:
1175  return ptr;
1176 failure:
1177  ptr = nullptr;
1178  goto success;
1179 #undef CHK_
1180 }
1181 
1182 ::PROTOBUF_NAMESPACE_ID::uint8* IntegerVariableProto::_InternalSerialize(
1183  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1184  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntegerVariableProto)
1185  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1186  (void) cached_has_bits;
1187 
1188  // string name = 1;
1189  if (this->name().size() > 0) {
1190  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
1191  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
1192  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
1193  "operations_research.sat.IntegerVariableProto.name");
1194  target = stream->WriteStringMaybeAliased(
1195  1, this->_internal_name(), target);
1196  }
1197 
1198  // repeated int64 domain = 2;
1199  {
1200  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
1201  if (byte_size > 0) {
1202  target = stream->WriteInt64Packed(
1203  2, _internal_domain(), byte_size, target);
1204  }
1205  }
1206 
1207  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1208  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1209  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1210  }
1211  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntegerVariableProto)
1212  return target;
1213 }
1214 
1215 size_t IntegerVariableProto::ByteSizeLong() const {
1216 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntegerVariableProto)
1217  size_t total_size = 0;
1218 
1219  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1220  // Prevent compiler warnings about cached_has_bits being unused
1221  (void) cached_has_bits;
1222 
1223  // repeated int64 domain = 2;
1224  {
1225  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1226  Int64Size(this->domain_);
1227  if (data_size > 0) {
1228  total_size += 1 +
1229  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1230  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1231  }
1232  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1233  _domain_cached_byte_size_.store(cached_size,
1234  std::memory_order_relaxed);
1235  total_size += data_size;
1236  }
1237 
1238  // string name = 1;
1239  if (this->name().size() > 0) {
1240  total_size += 1 +
1241  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1242  this->_internal_name());
1243  }
1244 
1245  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1246  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1247  _internal_metadata_, total_size, &_cached_size_);
1248  }
1249  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1250  SetCachedSize(cached_size);
1251  return total_size;
1252 }
1253 
1254 void IntegerVariableProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1255 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.IntegerVariableProto)
1256  GOOGLE_DCHECK_NE(&from, this);
1257  const IntegerVariableProto* source =
1258  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IntegerVariableProto>(
1259  &from);
1260  if (source == nullptr) {
1261  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.IntegerVariableProto)
1262  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1263  } else {
1264  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.IntegerVariableProto)
1265  MergeFrom(*source);
1266  }
1267 }
1268 
1269 void IntegerVariableProto::MergeFrom(const IntegerVariableProto& from) {
1270 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntegerVariableProto)
1271  GOOGLE_DCHECK_NE(&from, this);
1272  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1273  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1274  (void) cached_has_bits;
1275 
1276  domain_.MergeFrom(from.domain_);
1277  if (from.name().size() > 0) {
1278  _internal_set_name(from._internal_name());
1279  }
1280 }
1281 
1282 void IntegerVariableProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1283 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.IntegerVariableProto)
1284  if (&from == this) return;
1285  Clear();
1286  MergeFrom(from);
1287 }
1288 
1289 void IntegerVariableProto::CopyFrom(const IntegerVariableProto& from) {
1290 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntegerVariableProto)
1291  if (&from == this) return;
1292  Clear();
1293  MergeFrom(from);
1294 }
1295 
1296 bool IntegerVariableProto::IsInitialized() const {
1297  return true;
1298 }
1299 
1300 void IntegerVariableProto::InternalSwap(IntegerVariableProto* other) {
1301  using std::swap;
1302  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1303  domain_.InternalSwap(&other->domain_);
1304  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
1305 }
1306 
1307 ::PROTOBUF_NAMESPACE_ID::Metadata IntegerVariableProto::GetMetadata() const {
1308  return GetMetadataStatic();
1309 }
1310 
1311 
1312 // ===================================================================
1313 
1315  public:
1316 };
1317 
1318 BoolArgumentProto::BoolArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1319  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1320  literals_(arena) {
1321  SharedCtor();
1322  RegisterArenaDtor(arena);
1323  // @@protoc_insertion_point(arena_constructor:operations_research.sat.BoolArgumentProto)
1324 }
1325 BoolArgumentProto::BoolArgumentProto(const BoolArgumentProto& from)
1326  : ::PROTOBUF_NAMESPACE_ID::Message(),
1327  literals_(from.literals_) {
1328  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1329  // @@protoc_insertion_point(copy_constructor:operations_research.sat.BoolArgumentProto)
1330 }
1331 
1332 void BoolArgumentProto::SharedCtor() {
1333 }
1334 
1335 BoolArgumentProto::~BoolArgumentProto() {
1336  // @@protoc_insertion_point(destructor:operations_research.sat.BoolArgumentProto)
1337  SharedDtor();
1338  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1339 }
1340 
1341 void BoolArgumentProto::SharedDtor() {
1342  GOOGLE_DCHECK(GetArena() == nullptr);
1343 }
1344 
1345 void BoolArgumentProto::ArenaDtor(void* object) {
1346  BoolArgumentProto* _this = reinterpret_cast< BoolArgumentProto* >(object);
1347  (void)_this;
1348 }
1349 void BoolArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1350 }
1351 void BoolArgumentProto::SetCachedSize(int size) const {
1352  _cached_size_.Set(size);
1353 }
1354 
1355 void BoolArgumentProto::Clear() {
1356 // @@protoc_insertion_point(message_clear_start:operations_research.sat.BoolArgumentProto)
1357  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1358  // Prevent compiler warnings about cached_has_bits being unused
1359  (void) cached_has_bits;
1360 
1361  literals_.Clear();
1362  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1363 }
1364 
1365 const char* BoolArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1366 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1367  while (!ctx->Done(&ptr)) {
1368  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
1369  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1370  CHK_(ptr);
1371  switch (tag >> 3) {
1372  // repeated int32 literals = 1;
1373  case 1:
1374  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1375  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
1376  CHK_(ptr);
1377  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
1378  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1379  CHK_(ptr);
1380  } else goto handle_unusual;
1381  continue;
1382  default: {
1383  handle_unusual:
1384  if ((tag & 7) == 4 || tag == 0) {
1385  ctx->SetLastTag(tag);
1386  goto success;
1387  }
1388  ptr = UnknownFieldParse(tag,
1389  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1390  ptr, ctx);
1391  CHK_(ptr != nullptr);
1392  continue;
1393  }
1394  } // switch
1395  } // while
1396 success:
1397  return ptr;
1398 failure:
1399  ptr = nullptr;
1400  goto success;
1401 #undef CHK_
1402 }
1403 
1404 ::PROTOBUF_NAMESPACE_ID::uint8* BoolArgumentProto::_InternalSerialize(
1405  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1406  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.BoolArgumentProto)
1407  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1408  (void) cached_has_bits;
1409 
1410  // repeated int32 literals = 1;
1411  {
1412  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
1413  if (byte_size > 0) {
1414  target = stream->WriteInt32Packed(
1415  1, _internal_literals(), byte_size, target);
1416  }
1417  }
1418 
1419  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1420  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1421  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1422  }
1423  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.BoolArgumentProto)
1424  return target;
1425 }
1426 
1427 size_t BoolArgumentProto::ByteSizeLong() const {
1428 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.BoolArgumentProto)
1429  size_t total_size = 0;
1430 
1431  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1432  // Prevent compiler warnings about cached_has_bits being unused
1433  (void) cached_has_bits;
1434 
1435  // repeated int32 literals = 1;
1436  {
1437  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1438  Int32Size(this->literals_);
1439  if (data_size > 0) {
1440  total_size += 1 +
1441  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1442  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1443  }
1444  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1445  _literals_cached_byte_size_.store(cached_size,
1446  std::memory_order_relaxed);
1447  total_size += data_size;
1448  }
1449 
1450  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1451  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1452  _internal_metadata_, total_size, &_cached_size_);
1453  }
1454  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1455  SetCachedSize(cached_size);
1456  return total_size;
1457 }
1458 
1459 void BoolArgumentProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1460 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.BoolArgumentProto)
1461  GOOGLE_DCHECK_NE(&from, this);
1462  const BoolArgumentProto* source =
1463  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BoolArgumentProto>(
1464  &from);
1465  if (source == nullptr) {
1466  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.BoolArgumentProto)
1467  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1468  } else {
1469  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.BoolArgumentProto)
1470  MergeFrom(*source);
1471  }
1472 }
1473 
1474 void BoolArgumentProto::MergeFrom(const BoolArgumentProto& from) {
1475 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.BoolArgumentProto)
1476  GOOGLE_DCHECK_NE(&from, this);
1477  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1478  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1479  (void) cached_has_bits;
1480 
1481  literals_.MergeFrom(from.literals_);
1482 }
1483 
1484 void BoolArgumentProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1485 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.BoolArgumentProto)
1486  if (&from == this) return;
1487  Clear();
1488  MergeFrom(from);
1489 }
1490 
1491 void BoolArgumentProto::CopyFrom(const BoolArgumentProto& from) {
1492 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.BoolArgumentProto)
1493  if (&from == this) return;
1494  Clear();
1495  MergeFrom(from);
1496 }
1497 
1498 bool BoolArgumentProto::IsInitialized() const {
1499  return true;
1500 }
1501 
1502 void BoolArgumentProto::InternalSwap(BoolArgumentProto* other) {
1503  using std::swap;
1504  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1505  literals_.InternalSwap(&other->literals_);
1506 }
1507 
1508 ::PROTOBUF_NAMESPACE_ID::Metadata BoolArgumentProto::GetMetadata() const {
1509  return GetMetadataStatic();
1510 }
1511 
1512 
1513 // ===================================================================
1514 
1516  public:
1517 };
1518 
1519 IntegerArgumentProto::IntegerArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1520  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1521  vars_(arena) {
1522  SharedCtor();
1523  RegisterArenaDtor(arena);
1524  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntegerArgumentProto)
1525 }
1526 IntegerArgumentProto::IntegerArgumentProto(const IntegerArgumentProto& from)
1527  : ::PROTOBUF_NAMESPACE_ID::Message(),
1528  vars_(from.vars_) {
1529  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1530  target_ = from.target_;
1531  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntegerArgumentProto)
1532 }
1533 
1534 void IntegerArgumentProto::SharedCtor() {
1535 target_ = 0;
1536 }
1537 
1538 IntegerArgumentProto::~IntegerArgumentProto() {
1539  // @@protoc_insertion_point(destructor:operations_research.sat.IntegerArgumentProto)
1540  SharedDtor();
1541  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1542 }
1543 
1544 void IntegerArgumentProto::SharedDtor() {
1545  GOOGLE_DCHECK(GetArena() == nullptr);
1546 }
1547 
1548 void IntegerArgumentProto::ArenaDtor(void* object) {
1549  IntegerArgumentProto* _this = reinterpret_cast< IntegerArgumentProto* >(object);
1550  (void)_this;
1551 }
1552 void IntegerArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1553 }
1554 void IntegerArgumentProto::SetCachedSize(int size) const {
1555  _cached_size_.Set(size);
1556 }
1557 
1558 void IntegerArgumentProto::Clear() {
1559 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntegerArgumentProto)
1560  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1561  // Prevent compiler warnings about cached_has_bits being unused
1562  (void) cached_has_bits;
1563 
1564  vars_.Clear();
1565  target_ = 0;
1566  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1567 }
1568 
1569 const char* IntegerArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1570 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1571  while (!ctx->Done(&ptr)) {
1572  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
1573  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1574  CHK_(ptr);
1575  switch (tag >> 3) {
1576  // int32 target = 1;
1577  case 1:
1578  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
1579  target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1580  CHK_(ptr);
1581  } else goto handle_unusual;
1582  continue;
1583  // repeated int32 vars = 2;
1584  case 2:
1585  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1586  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
1587  CHK_(ptr);
1588  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1589  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1590  CHK_(ptr);
1591  } else goto handle_unusual;
1592  continue;
1593  default: {
1594  handle_unusual:
1595  if ((tag & 7) == 4 || tag == 0) {
1596  ctx->SetLastTag(tag);
1597  goto success;
1598  }
1599  ptr = UnknownFieldParse(tag,
1600  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1601  ptr, ctx);
1602  CHK_(ptr != nullptr);
1603  continue;
1604  }
1605  } // switch
1606  } // while
1607 success:
1608  return ptr;
1609 failure:
1610  ptr = nullptr;
1611  goto success;
1612 #undef CHK_
1613 }
1614 
1615 ::PROTOBUF_NAMESPACE_ID::uint8* IntegerArgumentProto::_InternalSerialize(
1616  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1617  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntegerArgumentProto)
1618  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1619  (void) cached_has_bits;
1620 
1621  // int32 target = 1;
1622  if (this->target() != 0) {
1623  target = stream->EnsureSpace(target);
1624  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_target(), target);
1625  }
1626 
1627  // repeated int32 vars = 2;
1628  {
1629  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
1630  if (byte_size > 0) {
1631  target = stream->WriteInt32Packed(
1632  2, _internal_vars(), byte_size, target);
1633  }
1634  }
1635 
1636  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1637  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1638  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1639  }
1640  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntegerArgumentProto)
1641  return target;
1642 }
1643 
1644 size_t IntegerArgumentProto::ByteSizeLong() const {
1645 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntegerArgumentProto)
1646  size_t total_size = 0;
1647 
1648  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1649  // Prevent compiler warnings about cached_has_bits being unused
1650  (void) cached_has_bits;
1651 
1652  // repeated int32 vars = 2;
1653  {
1654  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1655  Int32Size(this->vars_);
1656  if (data_size > 0) {
1657  total_size += 1 +
1658  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1659  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1660  }
1661  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1662  _vars_cached_byte_size_.store(cached_size,
1663  std::memory_order_relaxed);
1664  total_size += data_size;
1665  }
1666 
1667  // int32 target = 1;
1668  if (this->target() != 0) {
1669  total_size += 1 +
1670  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1671  this->_internal_target());
1672  }
1673 
1674  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1675  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1676  _internal_metadata_, total_size, &_cached_size_);
1677  }
1678  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1679  SetCachedSize(cached_size);
1680  return total_size;
1681 }
1682 
1683 void IntegerArgumentProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1684 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.IntegerArgumentProto)
1685  GOOGLE_DCHECK_NE(&from, this);
1686  const IntegerArgumentProto* source =
1687  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IntegerArgumentProto>(
1688  &from);
1689  if (source == nullptr) {
1690  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.IntegerArgumentProto)
1691  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1692  } else {
1693  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.IntegerArgumentProto)
1694  MergeFrom(*source);
1695  }
1696 }
1697 
1698 void IntegerArgumentProto::MergeFrom(const IntegerArgumentProto& from) {
1699 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntegerArgumentProto)
1700  GOOGLE_DCHECK_NE(&from, this);
1701  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1702  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1703  (void) cached_has_bits;
1704 
1705  vars_.MergeFrom(from.vars_);
1706  if (from.target() != 0) {
1707  _internal_set_target(from._internal_target());
1708  }
1709 }
1710 
1711 void IntegerArgumentProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1712 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.IntegerArgumentProto)
1713  if (&from == this) return;
1714  Clear();
1715  MergeFrom(from);
1716 }
1717 
1718 void IntegerArgumentProto::CopyFrom(const IntegerArgumentProto& from) {
1719 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntegerArgumentProto)
1720  if (&from == this) return;
1721  Clear();
1722  MergeFrom(from);
1723 }
1724 
1725 bool IntegerArgumentProto::IsInitialized() const {
1726  return true;
1727 }
1728 
1729 void IntegerArgumentProto::InternalSwap(IntegerArgumentProto* other) {
1730  using std::swap;
1731  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1732  vars_.InternalSwap(&other->vars_);
1733  swap(target_, other->target_);
1734 }
1735 
1736 ::PROTOBUF_NAMESPACE_ID::Metadata IntegerArgumentProto::GetMetadata() const {
1737  return GetMetadataStatic();
1738 }
1739 
1740 
1741 // ===================================================================
1742 
1744  public:
1745 };
1746 
1747 LinearExpressionProto::LinearExpressionProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1748  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1749  vars_(arena),
1750  coeffs_(arena) {
1751  SharedCtor();
1752  RegisterArenaDtor(arena);
1753  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearExpressionProto)
1754 }
1755 LinearExpressionProto::LinearExpressionProto(const LinearExpressionProto& from)
1756  : ::PROTOBUF_NAMESPACE_ID::Message(),
1757  vars_(from.vars_),
1758  coeffs_(from.coeffs_) {
1759  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1760  offset_ = from.offset_;
1761  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearExpressionProto)
1762 }
1763 
1764 void LinearExpressionProto::SharedCtor() {
1765 offset_ = PROTOBUF_LONGLONG(0);
1766 }
1767 
1768 LinearExpressionProto::~LinearExpressionProto() {
1769  // @@protoc_insertion_point(destructor:operations_research.sat.LinearExpressionProto)
1770  SharedDtor();
1771  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1772 }
1773 
1774 void LinearExpressionProto::SharedDtor() {
1775  GOOGLE_DCHECK(GetArena() == nullptr);
1776 }
1777 
1778 void LinearExpressionProto::ArenaDtor(void* object) {
1779  LinearExpressionProto* _this = reinterpret_cast< LinearExpressionProto* >(object);
1780  (void)_this;
1781 }
1782 void LinearExpressionProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1783 }
1784 void LinearExpressionProto::SetCachedSize(int size) const {
1785  _cached_size_.Set(size);
1786 }
1787 
1788 void LinearExpressionProto::Clear() {
1789 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearExpressionProto)
1790  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1791  // Prevent compiler warnings about cached_has_bits being unused
1792  (void) cached_has_bits;
1793 
1794  vars_.Clear();
1795  coeffs_.Clear();
1796  offset_ = PROTOBUF_LONGLONG(0);
1797  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1798 }
1799 
1800 const char* LinearExpressionProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1801 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1802  while (!ctx->Done(&ptr)) {
1803  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
1804  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1805  CHK_(ptr);
1806  switch (tag >> 3) {
1807  // repeated int32 vars = 1;
1808  case 1:
1809  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1810  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
1811  CHK_(ptr);
1812  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
1813  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1814  CHK_(ptr);
1815  } else goto handle_unusual;
1816  continue;
1817  // repeated int64 coeffs = 2;
1818  case 2:
1819  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1820  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
1821  CHK_(ptr);
1822  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1823  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1824  CHK_(ptr);
1825  } else goto handle_unusual;
1826  continue;
1827  // int64 offset = 3;
1828  case 3:
1829  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
1830  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1831  CHK_(ptr);
1832  } else goto handle_unusual;
1833  continue;
1834  default: {
1835  handle_unusual:
1836  if ((tag & 7) == 4 || tag == 0) {
1837  ctx->SetLastTag(tag);
1838  goto success;
1839  }
1840  ptr = UnknownFieldParse(tag,
1841  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1842  ptr, ctx);
1843  CHK_(ptr != nullptr);
1844  continue;
1845  }
1846  } // switch
1847  } // while
1848 success:
1849  return ptr;
1850 failure:
1851  ptr = nullptr;
1852  goto success;
1853 #undef CHK_
1854 }
1855 
1856 ::PROTOBUF_NAMESPACE_ID::uint8* LinearExpressionProto::_InternalSerialize(
1857  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1858  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearExpressionProto)
1859  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1860  (void) cached_has_bits;
1861 
1862  // repeated int32 vars = 1;
1863  {
1864  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
1865  if (byte_size > 0) {
1866  target = stream->WriteInt32Packed(
1867  1, _internal_vars(), byte_size, target);
1868  }
1869  }
1870 
1871  // repeated int64 coeffs = 2;
1872  {
1873  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
1874  if (byte_size > 0) {
1875  target = stream->WriteInt64Packed(
1876  2, _internal_coeffs(), byte_size, target);
1877  }
1878  }
1879 
1880  // int64 offset = 3;
1881  if (this->offset() != 0) {
1882  target = stream->EnsureSpace(target);
1883  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_offset(), target);
1884  }
1885 
1886  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1887  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1888  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1889  }
1890  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearExpressionProto)
1891  return target;
1892 }
1893 
1894 size_t LinearExpressionProto::ByteSizeLong() const {
1895 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearExpressionProto)
1896  size_t total_size = 0;
1897 
1898  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1899  // Prevent compiler warnings about cached_has_bits being unused
1900  (void) cached_has_bits;
1901 
1902  // repeated int32 vars = 1;
1903  {
1904  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1905  Int32Size(this->vars_);
1906  if (data_size > 0) {
1907  total_size += 1 +
1908  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1909  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1910  }
1911  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1912  _vars_cached_byte_size_.store(cached_size,
1913  std::memory_order_relaxed);
1914  total_size += data_size;
1915  }
1916 
1917  // repeated int64 coeffs = 2;
1918  {
1919  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1920  Int64Size(this->coeffs_);
1921  if (data_size > 0) {
1922  total_size += 1 +
1923  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1924  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1925  }
1926  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1927  _coeffs_cached_byte_size_.store(cached_size,
1928  std::memory_order_relaxed);
1929  total_size += data_size;
1930  }
1931 
1932  // int64 offset = 3;
1933  if (this->offset() != 0) {
1934  total_size += 1 +
1935  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1936  this->_internal_offset());
1937  }
1938 
1939  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1940  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1941  _internal_metadata_, total_size, &_cached_size_);
1942  }
1943  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1944  SetCachedSize(cached_size);
1945  return total_size;
1946 }
1947 
1948 void LinearExpressionProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1949 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.LinearExpressionProto)
1950  GOOGLE_DCHECK_NE(&from, this);
1951  const LinearExpressionProto* source =
1952  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearExpressionProto>(
1953  &from);
1954  if (source == nullptr) {
1955  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.LinearExpressionProto)
1956  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1957  } else {
1958  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.LinearExpressionProto)
1959  MergeFrom(*source);
1960  }
1961 }
1962 
1963 void LinearExpressionProto::MergeFrom(const LinearExpressionProto& from) {
1964 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearExpressionProto)
1965  GOOGLE_DCHECK_NE(&from, this);
1966  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1967  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1968  (void) cached_has_bits;
1969 
1970  vars_.MergeFrom(from.vars_);
1971  coeffs_.MergeFrom(from.coeffs_);
1972  if (from.offset() != 0) {
1973  _internal_set_offset(from._internal_offset());
1974  }
1975 }
1976 
1977 void LinearExpressionProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1978 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.LinearExpressionProto)
1979  if (&from == this) return;
1980  Clear();
1981  MergeFrom(from);
1982 }
1983 
1984 void LinearExpressionProto::CopyFrom(const LinearExpressionProto& from) {
1985 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearExpressionProto)
1986  if (&from == this) return;
1987  Clear();
1988  MergeFrom(from);
1989 }
1990 
1991 bool LinearExpressionProto::IsInitialized() const {
1992  return true;
1993 }
1994 
1995 void LinearExpressionProto::InternalSwap(LinearExpressionProto* other) {
1996  using std::swap;
1997  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1998  vars_.InternalSwap(&other->vars_);
1999  coeffs_.InternalSwap(&other->coeffs_);
2000  swap(offset_, other->offset_);
2001 }
2002 
2003 ::PROTOBUF_NAMESPACE_ID::Metadata LinearExpressionProto::GetMetadata() const {
2004  return GetMetadataStatic();
2005 }
2006 
2007 
2008 // ===================================================================
2009 
2011  public:
2012  static const ::operations_research::sat::LinearExpressionProto& target(const LinearArgumentProto* msg);
2013 };
2014 
2015 const ::operations_research::sat::LinearExpressionProto&
2016 LinearArgumentProto::_Internal::target(const LinearArgumentProto* msg) {
2017  return *msg->target_;
2018 }
2019 LinearArgumentProto::LinearArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2020  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2021  exprs_(arena) {
2022  SharedCtor();
2023  RegisterArenaDtor(arena);
2024  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearArgumentProto)
2025 }
2026 LinearArgumentProto::LinearArgumentProto(const LinearArgumentProto& from)
2027  : ::PROTOBUF_NAMESPACE_ID::Message(),
2028  exprs_(from.exprs_) {
2029  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2030  if (from._internal_has_target()) {
2031  target_ = new ::operations_research::sat::LinearExpressionProto(*from.target_);
2032  } else {
2033  target_ = nullptr;
2034  }
2035  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearArgumentProto)
2036 }
2037 
2038 void LinearArgumentProto::SharedCtor() {
2039 target_ = nullptr;
2040 }
2041 
2042 LinearArgumentProto::~LinearArgumentProto() {
2043  // @@protoc_insertion_point(destructor:operations_research.sat.LinearArgumentProto)
2044  SharedDtor();
2045  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2046 }
2047 
2048 void LinearArgumentProto::SharedDtor() {
2049  GOOGLE_DCHECK(GetArena() == nullptr);
2050  if (this != internal_default_instance()) delete target_;
2051 }
2052 
2053 void LinearArgumentProto::ArenaDtor(void* object) {
2054  LinearArgumentProto* _this = reinterpret_cast< LinearArgumentProto* >(object);
2055  (void)_this;
2056 }
2057 void LinearArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2058 }
2059 void LinearArgumentProto::SetCachedSize(int size) const {
2060  _cached_size_.Set(size);
2061 }
2062 
2063 void LinearArgumentProto::Clear() {
2064 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearArgumentProto)
2065  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2066  // Prevent compiler warnings about cached_has_bits being unused
2067  (void) cached_has_bits;
2068 
2069  exprs_.Clear();
2070  if (GetArena() == nullptr && target_ != nullptr) {
2071  delete target_;
2072  }
2073  target_ = nullptr;
2074  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2075 }
2076 
2077 const char* LinearArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2078 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2079  while (!ctx->Done(&ptr)) {
2080  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
2081  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2082  CHK_(ptr);
2083  switch (tag >> 3) {
2084  // .operations_research.sat.LinearExpressionProto target = 1;
2085  case 1:
2086  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2087  ptr = ctx->ParseMessage(_internal_mutable_target(), ptr);
2088  CHK_(ptr);
2089  } else goto handle_unusual;
2090  continue;
2091  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2092  case 2:
2093  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
2094  ptr -= 1;
2095  do {
2096  ptr += 1;
2097  ptr = ctx->ParseMessage(_internal_add_exprs(), ptr);
2098  CHK_(ptr);
2099  if (!ctx->DataAvailable(ptr)) break;
2100  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
2101  } else goto handle_unusual;
2102  continue;
2103  default: {
2104  handle_unusual:
2105  if ((tag & 7) == 4 || tag == 0) {
2106  ctx->SetLastTag(tag);
2107  goto success;
2108  }
2109  ptr = UnknownFieldParse(tag,
2110  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2111  ptr, ctx);
2112  CHK_(ptr != nullptr);
2113  continue;
2114  }
2115  } // switch
2116  } // while
2117 success:
2118  return ptr;
2119 failure:
2120  ptr = nullptr;
2121  goto success;
2122 #undef CHK_
2123 }
2124 
2125 ::PROTOBUF_NAMESPACE_ID::uint8* LinearArgumentProto::_InternalSerialize(
2126  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2127  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearArgumentProto)
2128  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2129  (void) cached_has_bits;
2130 
2131  // .operations_research.sat.LinearExpressionProto target = 1;
2132  if (this->has_target()) {
2133  target = stream->EnsureSpace(target);
2134  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2135  InternalWriteMessage(
2136  1, _Internal::target(this), target, stream);
2137  }
2138 
2139  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2140  for (unsigned int i = 0,
2141  n = static_cast<unsigned int>(this->_internal_exprs_size()); i < n; i++) {
2142  target = stream->EnsureSpace(target);
2143  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2144  InternalWriteMessage(2, this->_internal_exprs(i), target, stream);
2145  }
2146 
2147  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2148  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2149  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2150  }
2151  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearArgumentProto)
2152  return target;
2153 }
2154 
2155 size_t LinearArgumentProto::ByteSizeLong() const {
2156 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearArgumentProto)
2157  size_t total_size = 0;
2158 
2159  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2160  // Prevent compiler warnings about cached_has_bits being unused
2161  (void) cached_has_bits;
2162 
2163  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2164  total_size += 1UL * this->_internal_exprs_size();
2165  for (const auto& msg : this->exprs_) {
2166  total_size +=
2167  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
2168  }
2169 
2170  // .operations_research.sat.LinearExpressionProto target = 1;
2171  if (this->has_target()) {
2172  total_size += 1 +
2173  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2174  *target_);
2175  }
2176 
2177  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2178  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2179  _internal_metadata_, total_size, &_cached_size_);
2180  }
2181  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2182  SetCachedSize(cached_size);
2183  return total_size;
2184 }
2185 
2186 void LinearArgumentProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2187 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.LinearArgumentProto)
2188  GOOGLE_DCHECK_NE(&from, this);
2189  const LinearArgumentProto* source =
2190  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearArgumentProto>(
2191  &from);
2192  if (source == nullptr) {
2193  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.LinearArgumentProto)
2194  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2195  } else {
2196  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.LinearArgumentProto)
2197  MergeFrom(*source);
2198  }
2199 }
2200 
2201 void LinearArgumentProto::MergeFrom(const LinearArgumentProto& from) {
2202 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearArgumentProto)
2203  GOOGLE_DCHECK_NE(&from, this);
2204  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2205  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2206  (void) cached_has_bits;
2207 
2208  exprs_.MergeFrom(from.exprs_);
2209  if (from.has_target()) {
2210  _internal_mutable_target()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_target());
2211  }
2212 }
2213 
2214 void LinearArgumentProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2215 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.LinearArgumentProto)
2216  if (&from == this) return;
2217  Clear();
2218  MergeFrom(from);
2219 }
2220 
2221 void LinearArgumentProto::CopyFrom(const LinearArgumentProto& from) {
2222 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearArgumentProto)
2223  if (&from == this) return;
2224  Clear();
2225  MergeFrom(from);
2226 }
2227 
2228 bool LinearArgumentProto::IsInitialized() const {
2229  return true;
2230 }
2231 
2232 void LinearArgumentProto::InternalSwap(LinearArgumentProto* other) {
2233  using std::swap;
2234  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2235  exprs_.InternalSwap(&other->exprs_);
2236  swap(target_, other->target_);
2237 }
2238 
2239 ::PROTOBUF_NAMESPACE_ID::Metadata LinearArgumentProto::GetMetadata() const {
2240  return GetMetadataStatic();
2241 }
2242 
2243 
2244 // ===================================================================
2245 
2247  public:
2248 };
2249 
2250 AllDifferentConstraintProto::AllDifferentConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2251  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2252  vars_(arena) {
2253  SharedCtor();
2254  RegisterArenaDtor(arena);
2255  // @@protoc_insertion_point(arena_constructor:operations_research.sat.AllDifferentConstraintProto)
2256 }
2257 AllDifferentConstraintProto::AllDifferentConstraintProto(const AllDifferentConstraintProto& from)
2258  : ::PROTOBUF_NAMESPACE_ID::Message(),
2259  vars_(from.vars_) {
2260  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2261  // @@protoc_insertion_point(copy_constructor:operations_research.sat.AllDifferentConstraintProto)
2262 }
2263 
2264 void AllDifferentConstraintProto::SharedCtor() {
2265 }
2266 
2267 AllDifferentConstraintProto::~AllDifferentConstraintProto() {
2268  // @@protoc_insertion_point(destructor:operations_research.sat.AllDifferentConstraintProto)
2269  SharedDtor();
2270  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2271 }
2272 
2273 void AllDifferentConstraintProto::SharedDtor() {
2274  GOOGLE_DCHECK(GetArena() == nullptr);
2275 }
2276 
2277 void AllDifferentConstraintProto::ArenaDtor(void* object) {
2278  AllDifferentConstraintProto* _this = reinterpret_cast< AllDifferentConstraintProto* >(object);
2279  (void)_this;
2280 }
2281 void AllDifferentConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2282 }
2283 void AllDifferentConstraintProto::SetCachedSize(int size) const {
2284  _cached_size_.Set(size);
2285 }
2286 
2287 void AllDifferentConstraintProto::Clear() {
2288 // @@protoc_insertion_point(message_clear_start:operations_research.sat.AllDifferentConstraintProto)
2289  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2290  // Prevent compiler warnings about cached_has_bits being unused
2291  (void) cached_has_bits;
2292 
2293  vars_.Clear();
2294  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2295 }
2296 
2297 const char* AllDifferentConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2298 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2299  while (!ctx->Done(&ptr)) {
2300  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
2301  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2302  CHK_(ptr);
2303  switch (tag >> 3) {
2304  // repeated int32 vars = 1;
2305  case 1:
2306  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2307  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2308  CHK_(ptr);
2309  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
2310  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2311  CHK_(ptr);
2312  } else goto handle_unusual;
2313  continue;
2314  default: {
2315  handle_unusual:
2316  if ((tag & 7) == 4 || tag == 0) {
2317  ctx->SetLastTag(tag);
2318  goto success;
2319  }
2320  ptr = UnknownFieldParse(tag,
2321  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2322  ptr, ctx);
2323  CHK_(ptr != nullptr);
2324  continue;
2325  }
2326  } // switch
2327  } // while
2328 success:
2329  return ptr;
2330 failure:
2331  ptr = nullptr;
2332  goto success;
2333 #undef CHK_
2334 }
2335 
2336 ::PROTOBUF_NAMESPACE_ID::uint8* AllDifferentConstraintProto::_InternalSerialize(
2337  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2338  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.AllDifferentConstraintProto)
2339  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2340  (void) cached_has_bits;
2341 
2342  // repeated int32 vars = 1;
2343  {
2344  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2345  if (byte_size > 0) {
2346  target = stream->WriteInt32Packed(
2347  1, _internal_vars(), byte_size, target);
2348  }
2349  }
2350 
2351  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2352  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2353  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2354  }
2355  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.AllDifferentConstraintProto)
2356  return target;
2357 }
2358 
2359 size_t AllDifferentConstraintProto::ByteSizeLong() const {
2360 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.AllDifferentConstraintProto)
2361  size_t total_size = 0;
2362 
2363  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2364  // Prevent compiler warnings about cached_has_bits being unused
2365  (void) cached_has_bits;
2366 
2367  // repeated int32 vars = 1;
2368  {
2369  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2370  Int32Size(this->vars_);
2371  if (data_size > 0) {
2372  total_size += 1 +
2373  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2374  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2375  }
2376  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2377  _vars_cached_byte_size_.store(cached_size,
2378  std::memory_order_relaxed);
2379  total_size += data_size;
2380  }
2381 
2382  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2383  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2384  _internal_metadata_, total_size, &_cached_size_);
2385  }
2386  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2387  SetCachedSize(cached_size);
2388  return total_size;
2389 }
2390 
2391 void AllDifferentConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2392 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.AllDifferentConstraintProto)
2393  GOOGLE_DCHECK_NE(&from, this);
2394  const AllDifferentConstraintProto* source =
2395  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AllDifferentConstraintProto>(
2396  &from);
2397  if (source == nullptr) {
2398  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.AllDifferentConstraintProto)
2399  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2400  } else {
2401  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.AllDifferentConstraintProto)
2402  MergeFrom(*source);
2403  }
2404 }
2405 
2406 void AllDifferentConstraintProto::MergeFrom(const AllDifferentConstraintProto& from) {
2407 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.AllDifferentConstraintProto)
2408  GOOGLE_DCHECK_NE(&from, this);
2409  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2410  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2411  (void) cached_has_bits;
2412 
2413  vars_.MergeFrom(from.vars_);
2414 }
2415 
2416 void AllDifferentConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2417 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.AllDifferentConstraintProto)
2418  if (&from == this) return;
2419  Clear();
2420  MergeFrom(from);
2421 }
2422 
2423 void AllDifferentConstraintProto::CopyFrom(const AllDifferentConstraintProto& from) {
2424 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.AllDifferentConstraintProto)
2425  if (&from == this) return;
2426  Clear();
2427  MergeFrom(from);
2428 }
2429 
2430 bool AllDifferentConstraintProto::IsInitialized() const {
2431  return true;
2432 }
2433 
2434 void AllDifferentConstraintProto::InternalSwap(AllDifferentConstraintProto* other) {
2435  using std::swap;
2436  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2437  vars_.InternalSwap(&other->vars_);
2438 }
2439 
2440 ::PROTOBUF_NAMESPACE_ID::Metadata AllDifferentConstraintProto::GetMetadata() const {
2441  return GetMetadataStatic();
2442 }
2443 
2444 
2445 // ===================================================================
2446 
2448  public:
2449 };
2450 
2451 LinearConstraintProto::LinearConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2452  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2453  vars_(arena),
2454  coeffs_(arena),
2455  domain_(arena) {
2456  SharedCtor();
2457  RegisterArenaDtor(arena);
2458  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearConstraintProto)
2459 }
2460 LinearConstraintProto::LinearConstraintProto(const LinearConstraintProto& from)
2461  : ::PROTOBUF_NAMESPACE_ID::Message(),
2462  vars_(from.vars_),
2463  coeffs_(from.coeffs_),
2464  domain_(from.domain_) {
2465  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2466  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearConstraintProto)
2467 }
2468 
2469 void LinearConstraintProto::SharedCtor() {
2470 }
2471 
2472 LinearConstraintProto::~LinearConstraintProto() {
2473  // @@protoc_insertion_point(destructor:operations_research.sat.LinearConstraintProto)
2474  SharedDtor();
2475  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2476 }
2477 
2478 void LinearConstraintProto::SharedDtor() {
2479  GOOGLE_DCHECK(GetArena() == nullptr);
2480 }
2481 
2482 void LinearConstraintProto::ArenaDtor(void* object) {
2483  LinearConstraintProto* _this = reinterpret_cast< LinearConstraintProto* >(object);
2484  (void)_this;
2485 }
2486 void LinearConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2487 }
2488 void LinearConstraintProto::SetCachedSize(int size) const {
2489  _cached_size_.Set(size);
2490 }
2491 
2492 void LinearConstraintProto::Clear() {
2493 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearConstraintProto)
2494  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2495  // Prevent compiler warnings about cached_has_bits being unused
2496  (void) cached_has_bits;
2497 
2498  vars_.Clear();
2499  coeffs_.Clear();
2500  domain_.Clear();
2501  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2502 }
2503 
2504 const char* LinearConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2505 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2506  while (!ctx->Done(&ptr)) {
2507  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
2508  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2509  CHK_(ptr);
2510  switch (tag >> 3) {
2511  // repeated int32 vars = 1;
2512  case 1:
2513  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2514  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2515  CHK_(ptr);
2516  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
2517  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2518  CHK_(ptr);
2519  } else goto handle_unusual;
2520  continue;
2521  // repeated int64 coeffs = 2;
2522  case 2:
2523  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
2524  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
2525  CHK_(ptr);
2526  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
2527  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2528  CHK_(ptr);
2529  } else goto handle_unusual;
2530  continue;
2531  // repeated int64 domain = 3;
2532  case 3:
2533  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
2534  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
2535  CHK_(ptr);
2536  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
2537  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2538  CHK_(ptr);
2539  } else goto handle_unusual;
2540  continue;
2541  default: {
2542  handle_unusual:
2543  if ((tag & 7) == 4 || tag == 0) {
2544  ctx->SetLastTag(tag);
2545  goto success;
2546  }
2547  ptr = UnknownFieldParse(tag,
2548  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2549  ptr, ctx);
2550  CHK_(ptr != nullptr);
2551  continue;
2552  }
2553  } // switch
2554  } // while
2555 success:
2556  return ptr;
2557 failure:
2558  ptr = nullptr;
2559  goto success;
2560 #undef CHK_
2561 }
2562 
2563 ::PROTOBUF_NAMESPACE_ID::uint8* LinearConstraintProto::_InternalSerialize(
2564  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2565  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearConstraintProto)
2566  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2567  (void) cached_has_bits;
2568 
2569  // repeated int32 vars = 1;
2570  {
2571  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2572  if (byte_size > 0) {
2573  target = stream->WriteInt32Packed(
2574  1, _internal_vars(), byte_size, target);
2575  }
2576  }
2577 
2578  // repeated int64 coeffs = 2;
2579  {
2580  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
2581  if (byte_size > 0) {
2582  target = stream->WriteInt64Packed(
2583  2, _internal_coeffs(), byte_size, target);
2584  }
2585  }
2586 
2587  // repeated int64 domain = 3;
2588  {
2589  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
2590  if (byte_size > 0) {
2591  target = stream->WriteInt64Packed(
2592  3, _internal_domain(), byte_size, target);
2593  }
2594  }
2595 
2596  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2597  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2598  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2599  }
2600  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearConstraintProto)
2601  return target;
2602 }
2603 
2604 size_t LinearConstraintProto::ByteSizeLong() const {
2605 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearConstraintProto)
2606  size_t total_size = 0;
2607 
2608  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2609  // Prevent compiler warnings about cached_has_bits being unused
2610  (void) cached_has_bits;
2611 
2612  // repeated int32 vars = 1;
2613  {
2614  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2615  Int32Size(this->vars_);
2616  if (data_size > 0) {
2617  total_size += 1 +
2618  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2619  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2620  }
2621  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2622  _vars_cached_byte_size_.store(cached_size,
2623  std::memory_order_relaxed);
2624  total_size += data_size;
2625  }
2626 
2627  // repeated int64 coeffs = 2;
2628  {
2629  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2630  Int64Size(this->coeffs_);
2631  if (data_size > 0) {
2632  total_size += 1 +
2633  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2634  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2635  }
2636  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2637  _coeffs_cached_byte_size_.store(cached_size,
2638  std::memory_order_relaxed);
2639  total_size += data_size;
2640  }
2641 
2642  // repeated int64 domain = 3;
2643  {
2644  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2645  Int64Size(this->domain_);
2646  if (data_size > 0) {
2647  total_size += 1 +
2648  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2649  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2650  }
2651  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2652  _domain_cached_byte_size_.store(cached_size,
2653  std::memory_order_relaxed);
2654  total_size += data_size;
2655  }
2656 
2657  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2658  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2659  _internal_metadata_, total_size, &_cached_size_);
2660  }
2661  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2662  SetCachedSize(cached_size);
2663  return total_size;
2664 }
2665 
2666 void LinearConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2667 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.LinearConstraintProto)
2668  GOOGLE_DCHECK_NE(&from, this);
2669  const LinearConstraintProto* source =
2670  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearConstraintProto>(
2671  &from);
2672  if (source == nullptr) {
2673  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.LinearConstraintProto)
2674  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2675  } else {
2676  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.LinearConstraintProto)
2677  MergeFrom(*source);
2678  }
2679 }
2680 
2681 void LinearConstraintProto::MergeFrom(const LinearConstraintProto& from) {
2682 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearConstraintProto)
2683  GOOGLE_DCHECK_NE(&from, this);
2684  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2685  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2686  (void) cached_has_bits;
2687 
2688  vars_.MergeFrom(from.vars_);
2689  coeffs_.MergeFrom(from.coeffs_);
2690  domain_.MergeFrom(from.domain_);
2691 }
2692 
2693 void LinearConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2694 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.LinearConstraintProto)
2695  if (&from == this) return;
2696  Clear();
2697  MergeFrom(from);
2698 }
2699 
2700 void LinearConstraintProto::CopyFrom(const LinearConstraintProto& from) {
2701 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearConstraintProto)
2702  if (&from == this) return;
2703  Clear();
2704  MergeFrom(from);
2705 }
2706 
2707 bool LinearConstraintProto::IsInitialized() const {
2708  return true;
2709 }
2710 
2711 void LinearConstraintProto::InternalSwap(LinearConstraintProto* other) {
2712  using std::swap;
2713  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2714  vars_.InternalSwap(&other->vars_);
2715  coeffs_.InternalSwap(&other->coeffs_);
2716  domain_.InternalSwap(&other->domain_);
2717 }
2718 
2719 ::PROTOBUF_NAMESPACE_ID::Metadata LinearConstraintProto::GetMetadata() const {
2720  return GetMetadataStatic();
2721 }
2722 
2723 
2724 // ===================================================================
2725 
2727  public:
2728 };
2729 
2730 ElementConstraintProto::ElementConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2731  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2732  vars_(arena) {
2733  SharedCtor();
2734  RegisterArenaDtor(arena);
2735  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ElementConstraintProto)
2736 }
2737 ElementConstraintProto::ElementConstraintProto(const ElementConstraintProto& from)
2738  : ::PROTOBUF_NAMESPACE_ID::Message(),
2739  vars_(from.vars_) {
2740  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2741  ::memcpy(&index_, &from.index_,
2742  static_cast<size_t>(reinterpret_cast<char*>(&target_) -
2743  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2744  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ElementConstraintProto)
2745 }
2746 
2747 void ElementConstraintProto::SharedCtor() {
2748 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
2749  reinterpret_cast<char*>(&index_) - reinterpret_cast<char*>(this)),
2750  0, static_cast<size_t>(reinterpret_cast<char*>(&target_) -
2751  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2752 }
2753 
2754 ElementConstraintProto::~ElementConstraintProto() {
2755  // @@protoc_insertion_point(destructor:operations_research.sat.ElementConstraintProto)
2756  SharedDtor();
2757  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2758 }
2759 
2760 void ElementConstraintProto::SharedDtor() {
2761  GOOGLE_DCHECK(GetArena() == nullptr);
2762 }
2763 
2764 void ElementConstraintProto::ArenaDtor(void* object) {
2765  ElementConstraintProto* _this = reinterpret_cast< ElementConstraintProto* >(object);
2766  (void)_this;
2767 }
2768 void ElementConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2769 }
2770 void ElementConstraintProto::SetCachedSize(int size) const {
2771  _cached_size_.Set(size);
2772 }
2773 
2774 void ElementConstraintProto::Clear() {
2775 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ElementConstraintProto)
2776  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2777  // Prevent compiler warnings about cached_has_bits being unused
2778  (void) cached_has_bits;
2779 
2780  vars_.Clear();
2781  ::memset(&index_, 0, static_cast<size_t>(
2782  reinterpret_cast<char*>(&target_) -
2783  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2784  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2785 }
2786 
2787 const char* ElementConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2788 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2789  while (!ctx->Done(&ptr)) {
2790  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
2791  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2792  CHK_(ptr);
2793  switch (tag >> 3) {
2794  // int32 index = 1;
2795  case 1:
2796  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
2797  index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2798  CHK_(ptr);
2799  } else goto handle_unusual;
2800  continue;
2801  // int32 target = 2;
2802  case 2:
2803  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
2804  target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2805  CHK_(ptr);
2806  } else goto handle_unusual;
2807  continue;
2808  // repeated int32 vars = 3;
2809  case 3:
2810  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
2811  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2812  CHK_(ptr);
2813  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
2814  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2815  CHK_(ptr);
2816  } else goto handle_unusual;
2817  continue;
2818  default: {
2819  handle_unusual:
2820  if ((tag & 7) == 4 || tag == 0) {
2821  ctx->SetLastTag(tag);
2822  goto success;
2823  }
2824  ptr = UnknownFieldParse(tag,
2825  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2826  ptr, ctx);
2827  CHK_(ptr != nullptr);
2828  continue;
2829  }
2830  } // switch
2831  } // while
2832 success:
2833  return ptr;
2834 failure:
2835  ptr = nullptr;
2836  goto success;
2837 #undef CHK_
2838 }
2839 
2840 ::PROTOBUF_NAMESPACE_ID::uint8* ElementConstraintProto::_InternalSerialize(
2841  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2842  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ElementConstraintProto)
2843  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2844  (void) cached_has_bits;
2845 
2846  // int32 index = 1;
2847  if (this->index() != 0) {
2848  target = stream->EnsureSpace(target);
2849  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_index(), target);
2850  }
2851 
2852  // int32 target = 2;
2853  if (this->target() != 0) {
2854  target = stream->EnsureSpace(target);
2855  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_target(), target);
2856  }
2857 
2858  // repeated int32 vars = 3;
2859  {
2860  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2861  if (byte_size > 0) {
2862  target = stream->WriteInt32Packed(
2863  3, _internal_vars(), byte_size, target);
2864  }
2865  }
2866 
2867  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2868  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2869  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2870  }
2871  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ElementConstraintProto)
2872  return target;
2873 }
2874 
2875 size_t ElementConstraintProto::ByteSizeLong() const {
2876 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ElementConstraintProto)
2877  size_t total_size = 0;
2878 
2879  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2880  // Prevent compiler warnings about cached_has_bits being unused
2881  (void) cached_has_bits;
2882 
2883  // repeated int32 vars = 3;
2884  {
2885  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2886  Int32Size(this->vars_);
2887  if (data_size > 0) {
2888  total_size += 1 +
2889  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2890  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2891  }
2892  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2893  _vars_cached_byte_size_.store(cached_size,
2894  std::memory_order_relaxed);
2895  total_size += data_size;
2896  }
2897 
2898  // int32 index = 1;
2899  if (this->index() != 0) {
2900  total_size += 1 +
2901  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2902  this->_internal_index());
2903  }
2904 
2905  // int32 target = 2;
2906  if (this->target() != 0) {
2907  total_size += 1 +
2908  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2909  this->_internal_target());
2910  }
2911 
2912  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2913  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2914  _internal_metadata_, total_size, &_cached_size_);
2915  }
2916  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2917  SetCachedSize(cached_size);
2918  return total_size;
2919 }
2920 
2921 void ElementConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2922 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.ElementConstraintProto)
2923  GOOGLE_DCHECK_NE(&from, this);
2924  const ElementConstraintProto* source =
2925  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ElementConstraintProto>(
2926  &from);
2927  if (source == nullptr) {
2928  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.ElementConstraintProto)
2929  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2930  } else {
2931  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.ElementConstraintProto)
2932  MergeFrom(*source);
2933  }
2934 }
2935 
2936 void ElementConstraintProto::MergeFrom(const ElementConstraintProto& from) {
2937 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ElementConstraintProto)
2938  GOOGLE_DCHECK_NE(&from, this);
2939  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2940  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2941  (void) cached_has_bits;
2942 
2943  vars_.MergeFrom(from.vars_);
2944  if (from.index() != 0) {
2945  _internal_set_index(from._internal_index());
2946  }
2947  if (from.target() != 0) {
2948  _internal_set_target(from._internal_target());
2949  }
2950 }
2951 
2952 void ElementConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2953 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.ElementConstraintProto)
2954  if (&from == this) return;
2955  Clear();
2956  MergeFrom(from);
2957 }
2958 
2959 void ElementConstraintProto::CopyFrom(const ElementConstraintProto& from) {
2960 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ElementConstraintProto)
2961  if (&from == this) return;
2962  Clear();
2963  MergeFrom(from);
2964 }
2965 
2966 bool ElementConstraintProto::IsInitialized() const {
2967  return true;
2968 }
2969 
2970 void ElementConstraintProto::InternalSwap(ElementConstraintProto* other) {
2971  using std::swap;
2972  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2973  vars_.InternalSwap(&other->vars_);
2974  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2975  PROTOBUF_FIELD_OFFSET(ElementConstraintProto, target_)
2976  + sizeof(ElementConstraintProto::target_)
2977  - PROTOBUF_FIELD_OFFSET(ElementConstraintProto, index_)>(
2978  reinterpret_cast<char*>(&index_),
2979  reinterpret_cast<char*>(&other->index_));
2980 }
2981 
2982 ::PROTOBUF_NAMESPACE_ID::Metadata ElementConstraintProto::GetMetadata() const {
2983  return GetMetadataStatic();
2984 }
2985 
2986 
2987 // ===================================================================
2988 
2990  public:
2991  static const ::operations_research::sat::LinearExpressionProto& start_view(const IntervalConstraintProto* msg);
2992  static const ::operations_research::sat::LinearExpressionProto& end_view(const IntervalConstraintProto* msg);
2993  static const ::operations_research::sat::LinearExpressionProto& size_view(const IntervalConstraintProto* msg);
2994 };
2995 
2996 const ::operations_research::sat::LinearExpressionProto&
2997 IntervalConstraintProto::_Internal::start_view(const IntervalConstraintProto* msg) {
2998  return *msg->start_view_;
2999 }
3000 const ::operations_research::sat::LinearExpressionProto&
3001 IntervalConstraintProto::_Internal::end_view(const IntervalConstraintProto* msg) {
3002  return *msg->end_view_;
3003 }
3004 const ::operations_research::sat::LinearExpressionProto&
3005 IntervalConstraintProto::_Internal::size_view(const IntervalConstraintProto* msg) {
3006  return *msg->size_view_;
3007 }
3008 IntervalConstraintProto::IntervalConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3009  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
3010  SharedCtor();
3011  RegisterArenaDtor(arena);
3012  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntervalConstraintProto)
3013 }
3014 IntervalConstraintProto::IntervalConstraintProto(const IntervalConstraintProto& from)
3015  : ::PROTOBUF_NAMESPACE_ID::Message() {
3016  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3017  if (from._internal_has_start_view()) {
3018  start_view_ = new ::operations_research::sat::LinearExpressionProto(*from.start_view_);
3019  } else {
3020  start_view_ = nullptr;
3021  }
3022  if (from._internal_has_end_view()) {
3023  end_view_ = new ::operations_research::sat::LinearExpressionProto(*from.end_view_);
3024  } else {
3025  end_view_ = nullptr;
3026  }
3027  if (from._internal_has_size_view()) {
3028  size_view_ = new ::operations_research::sat::LinearExpressionProto(*from.size_view_);
3029  } else {
3030  size_view_ = nullptr;
3031  }
3032  ::memcpy(&start_, &from.start_,
3033  static_cast<size_t>(reinterpret_cast<char*>(&size_) -
3034  reinterpret_cast<char*>(&start_)) + sizeof(size_));
3035  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntervalConstraintProto)
3036 }
3037 
3038 void IntervalConstraintProto::SharedCtor() {
3039 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
3040  reinterpret_cast<char*>(&start_view_) - reinterpret_cast<char*>(this)),
3041  0, static_cast<size_t>(reinterpret_cast<char*>(&size_) -
3042  reinterpret_cast<char*>(&start_view_)) + sizeof(size_));
3043 }
3044 
3045 IntervalConstraintProto::~IntervalConstraintProto() {
3046  // @@protoc_insertion_point(destructor:operations_research.sat.IntervalConstraintProto)
3047  SharedDtor();
3048  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3049 }
3050 
3051 void IntervalConstraintProto::SharedDtor() {
3052  GOOGLE_DCHECK(GetArena() == nullptr);
3053  if (this != internal_default_instance()) delete start_view_;
3054  if (this != internal_default_instance()) delete end_view_;
3055  if (this != internal_default_instance()) delete size_view_;
3056 }
3057 
3058 void IntervalConstraintProto::ArenaDtor(void* object) {
3059  IntervalConstraintProto* _this = reinterpret_cast< IntervalConstraintProto* >(object);
3060  (void)_this;
3061 }
3062 void IntervalConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3063 }
3064 void IntervalConstraintProto::SetCachedSize(int size) const {
3065  _cached_size_.Set(size);
3066 }
3067 
3068 void IntervalConstraintProto::Clear() {
3069 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntervalConstraintProto)
3070  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3071  // Prevent compiler warnings about cached_has_bits being unused
3072  (void) cached_has_bits;
3073 
3074  if (GetArena() == nullptr && start_view_ != nullptr) {
3075  delete start_view_;
3076  }
3077  start_view_ = nullptr;
3078  if (GetArena() == nullptr && end_view_ != nullptr) {
3079  delete end_view_;
3080  }
3081  end_view_ = nullptr;
3082  if (GetArena() == nullptr && size_view_ != nullptr) {
3083  delete size_view_;
3084  }
3085  size_view_ = nullptr;
3086  ::memset(&start_, 0, static_cast<size_t>(
3087  reinterpret_cast<char*>(&size_) -
3088  reinterpret_cast<char*>(&start_)) + sizeof(size_));
3089  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3090 }
3091 
3092 const char* IntervalConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3093 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3094  while (!ctx->Done(&ptr)) {
3095  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
3096  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3097  CHK_(ptr);
3098  switch (tag >> 3) {
3099  // int32 start = 1;
3100  case 1:
3101  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
3102  start_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3103  CHK_(ptr);
3104  } else goto handle_unusual;
3105  continue;
3106  // int32 end = 2;
3107  case 2:
3108  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
3109  end_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3110  CHK_(ptr);
3111  } else goto handle_unusual;
3112  continue;
3113  // int32 size = 3;
3114  case 3:
3115  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
3116  size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3117  CHK_(ptr);
3118  } else goto handle_unusual;
3119  continue;
3120  // .operations_research.sat.LinearExpressionProto start_view = 4;
3121  case 4:
3122  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
3123  ptr = ctx->ParseMessage(_internal_mutable_start_view(), ptr);
3124  CHK_(ptr);
3125  } else goto handle_unusual;
3126  continue;
3127  // .operations_research.sat.LinearExpressionProto end_view = 5;
3128  case 5:
3129  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
3130  ptr = ctx->ParseMessage(_internal_mutable_end_view(), ptr);
3131  CHK_(ptr);
3132  } else goto handle_unusual;
3133  continue;
3134  // .operations_research.sat.LinearExpressionProto size_view = 6;
3135  case 6:
3136  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
3137  ptr = ctx->ParseMessage(_internal_mutable_size_view(), ptr);
3138  CHK_(ptr);
3139  } else goto handle_unusual;
3140  continue;
3141  default: {
3142  handle_unusual:
3143  if ((tag & 7) == 4 || tag == 0) {
3144  ctx->SetLastTag(tag);
3145  goto success;
3146  }
3147  ptr = UnknownFieldParse(tag,
3148  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3149  ptr, ctx);
3150  CHK_(ptr != nullptr);
3151  continue;
3152  }
3153  } // switch
3154  } // while
3155 success:
3156  return ptr;
3157 failure:
3158  ptr = nullptr;
3159  goto success;
3160 #undef CHK_
3161 }
3162 
3163 ::PROTOBUF_NAMESPACE_ID::uint8* IntervalConstraintProto::_InternalSerialize(
3164  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3165  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntervalConstraintProto)
3166  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3167  (void) cached_has_bits;
3168 
3169  // int32 start = 1;
3170  if (this->start() != 0) {
3171  target = stream->EnsureSpace(target);
3172  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_start(), target);
3173  }
3174 
3175  // int32 end = 2;
3176  if (this->end() != 0) {
3177  target = stream->EnsureSpace(target);
3178  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_end(), target);
3179  }
3180 
3181  // int32 size = 3;
3182  if (this->size() != 0) {
3183  target = stream->EnsureSpace(target);
3184  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_size(), target);
3185  }
3186 
3187  // .operations_research.sat.LinearExpressionProto start_view = 4;
3188  if (this->has_start_view()) {
3189  target = stream->EnsureSpace(target);
3190  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3191  InternalWriteMessage(
3192  4, _Internal::start_view(this), target, stream);
3193  }
3194 
3195  // .operations_research.sat.LinearExpressionProto end_view = 5;
3196  if (this->has_end_view()) {
3197  target = stream->EnsureSpace(target);
3198  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3199  InternalWriteMessage(
3200  5, _Internal::end_view(this), target, stream);
3201  }
3202 
3203  // .operations_research.sat.LinearExpressionProto size_view = 6;
3204  if (this->has_size_view()) {
3205  target = stream->EnsureSpace(target);
3206  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3207  InternalWriteMessage(
3208  6, _Internal::size_view(this), target, stream);
3209  }
3210 
3211  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3212  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3213  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3214  }
3215  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntervalConstraintProto)
3216  return target;
3217 }
3218 
3219 size_t IntervalConstraintProto::ByteSizeLong() const {
3220 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntervalConstraintProto)
3221  size_t total_size = 0;
3222 
3223  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3224  // Prevent compiler warnings about cached_has_bits being unused
3225  (void) cached_has_bits;
3226 
3227  // .operations_research.sat.LinearExpressionProto start_view = 4;
3228  if (this->has_start_view()) {
3229  total_size += 1 +
3230  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3231  *start_view_);
3232  }
3233 
3234  // .operations_research.sat.LinearExpressionProto end_view = 5;
3235  if (this->has_end_view()) {
3236  total_size += 1 +
3237  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3238  *end_view_);
3239  }
3240 
3241  // .operations_research.sat.LinearExpressionProto size_view = 6;
3242  if (this->has_size_view()) {
3243  total_size += 1 +
3244  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3245  *size_view_);
3246  }
3247 
3248  // int32 start = 1;
3249  if (this->start() != 0) {
3250  total_size += 1 +
3251  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3252  this->_internal_start());
3253  }
3254 
3255  // int32 end = 2;
3256  if (this->end() != 0) {
3257  total_size += 1 +
3258  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3259  this->_internal_end());
3260  }
3261 
3262  // int32 size = 3;
3263  if (this->size() != 0) {
3264  total_size += 1 +
3265  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3266  this->_internal_size());
3267  }
3268 
3269  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3270  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3271  _internal_metadata_, total_size, &_cached_size_);
3272  }
3273  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3274  SetCachedSize(cached_size);
3275  return total_size;
3276 }
3277 
3278 void IntervalConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3279 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.IntervalConstraintProto)
3280  GOOGLE_DCHECK_NE(&from, this);
3281  const IntervalConstraintProto* source =
3282  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IntervalConstraintProto>(
3283  &from);
3284  if (source == nullptr) {
3285  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.IntervalConstraintProto)
3286  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
3287  } else {
3288  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.IntervalConstraintProto)
3289  MergeFrom(*source);
3290  }
3291 }
3292 
3293 void IntervalConstraintProto::MergeFrom(const IntervalConstraintProto& from) {
3294 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntervalConstraintProto)
3295  GOOGLE_DCHECK_NE(&from, this);
3296  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3297  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3298  (void) cached_has_bits;
3299 
3300  if (from.has_start_view()) {
3301  _internal_mutable_start_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_start_view());
3302  }
3303  if (from.has_end_view()) {
3304  _internal_mutable_end_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_end_view());
3305  }
3306  if (from.has_size_view()) {
3307  _internal_mutable_size_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_size_view());
3308  }
3309  if (from.start() != 0) {
3310  _internal_set_start(from._internal_start());
3311  }
3312  if (from.end() != 0) {
3313  _internal_set_end(from._internal_end());
3314  }
3315  if (from.size() != 0) {
3316  _internal_set_size(from._internal_size());
3317  }
3318 }
3319 
3320 void IntervalConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3321 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.IntervalConstraintProto)
3322  if (&from == this) return;
3323  Clear();
3324  MergeFrom(from);
3325 }
3326 
3327 void IntervalConstraintProto::CopyFrom(const IntervalConstraintProto& from) {
3328 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntervalConstraintProto)
3329  if (&from == this) return;
3330  Clear();
3331  MergeFrom(from);
3332 }
3333 
3334 bool IntervalConstraintProto::IsInitialized() const {
3335  return true;
3336 }
3337 
3338 void IntervalConstraintProto::InternalSwap(IntervalConstraintProto* other) {
3339  using std::swap;
3340  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3341  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
3342  PROTOBUF_FIELD_OFFSET(IntervalConstraintProto, size_)
3343  + sizeof(IntervalConstraintProto::size_)
3344  - PROTOBUF_FIELD_OFFSET(IntervalConstraintProto, start_view_)>(
3345  reinterpret_cast<char*>(&start_view_),
3346  reinterpret_cast<char*>(&other->start_view_));
3347 }
3348 
3349 ::PROTOBUF_NAMESPACE_ID::Metadata IntervalConstraintProto::GetMetadata() const {
3350  return GetMetadataStatic();
3351 }
3352 
3353 
3354 // ===================================================================
3355 
3357  public:
3358 };
3359 
3360 NoOverlapConstraintProto::NoOverlapConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3361  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
3362  intervals_(arena) {
3363  SharedCtor();
3364  RegisterArenaDtor(arena);
3365  // @@protoc_insertion_point(arena_constructor:operations_research.sat.NoOverlapConstraintProto)
3366 }
3367 NoOverlapConstraintProto::NoOverlapConstraintProto(const NoOverlapConstraintProto& from)
3368  : ::PROTOBUF_NAMESPACE_ID::Message(),
3369  intervals_(from.intervals_) {
3370  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3371  // @@protoc_insertion_point(copy_constructor:operations_research.sat.NoOverlapConstraintProto)
3372 }
3373 
3374 void NoOverlapConstraintProto::SharedCtor() {
3375 }
3376 
3377 NoOverlapConstraintProto::~NoOverlapConstraintProto() {
3378  // @@protoc_insertion_point(destructor:operations_research.sat.NoOverlapConstraintProto)
3379  SharedDtor();
3380  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3381 }
3382 
3383 void NoOverlapConstraintProto::SharedDtor() {
3384  GOOGLE_DCHECK(GetArena() == nullptr);
3385 }
3386 
3387 void NoOverlapConstraintProto::ArenaDtor(void* object) {
3388  NoOverlapConstraintProto* _this = reinterpret_cast< NoOverlapConstraintProto* >(object);
3389  (void)_this;
3390 }
3391 void NoOverlapConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3392 }
3393 void NoOverlapConstraintProto::SetCachedSize(int size) const {
3394  _cached_size_.Set(size);
3395 }
3396 
3397 void NoOverlapConstraintProto::Clear() {
3398 // @@protoc_insertion_point(message_clear_start:operations_research.sat.NoOverlapConstraintProto)
3399  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3400  // Prevent compiler warnings about cached_has_bits being unused
3401  (void) cached_has_bits;
3402 
3403  intervals_.Clear();
3404  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3405 }
3406 
3407 const char* NoOverlapConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3408 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3409  while (!ctx->Done(&ptr)) {
3410  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
3411  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3412  CHK_(ptr);
3413  switch (tag >> 3) {
3414  // repeated int32 intervals = 1;
3415  case 1:
3416  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
3417  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_intervals(), ptr, ctx);
3418  CHK_(ptr);
3419  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
3420  _internal_add_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3421  CHK_(ptr);
3422  } else goto handle_unusual;
3423  continue;
3424  default: {
3425  handle_unusual:
3426  if ((tag & 7) == 4 || tag == 0) {
3427  ctx->SetLastTag(tag);
3428  goto success;
3429  }
3430  ptr = UnknownFieldParse(tag,
3431  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3432  ptr, ctx);
3433  CHK_(ptr != nullptr);
3434  continue;
3435  }
3436  } // switch
3437  } // while
3438 success:
3439  return ptr;
3440 failure:
3441  ptr = nullptr;
3442  goto success;
3443 #undef CHK_
3444 }
3445 
3446 ::PROTOBUF_NAMESPACE_ID::uint8* NoOverlapConstraintProto::_InternalSerialize(
3447  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3448  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.NoOverlapConstraintProto)
3449  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3450  (void) cached_has_bits;
3451 
3452  // repeated int32 intervals = 1;
3453  {
3454  int byte_size = _intervals_cached_byte_size_.load(std::memory_order_relaxed);
3455  if (byte_size > 0) {
3456  target = stream->WriteInt32Packed(
3457  1, _internal_intervals(), byte_size, target);
3458  }
3459  }
3460 
3461  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3462  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3463  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3464  }
3465  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.NoOverlapConstraintProto)
3466  return target;
3467 }
3468 
3469 size_t NoOverlapConstraintProto::ByteSizeLong() const {
3470 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.NoOverlapConstraintProto)
3471  size_t total_size = 0;
3472 
3473  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3474  // Prevent compiler warnings about cached_has_bits being unused
3475  (void) cached_has_bits;
3476 
3477  // repeated int32 intervals = 1;
3478  {
3479  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3480  Int32Size(this->intervals_);
3481  if (data_size > 0) {
3482  total_size += 1 +
3483  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3484  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3485  }
3486  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3487  _intervals_cached_byte_size_.store(cached_size,
3488  std::memory_order_relaxed);
3489  total_size += data_size;
3490  }
3491 
3492  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3493  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3494  _internal_metadata_, total_size, &_cached_size_);
3495  }
3496  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3497  SetCachedSize(cached_size);
3498  return total_size;
3499 }
3500 
3501 void NoOverlapConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3502 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.NoOverlapConstraintProto)
3503  GOOGLE_DCHECK_NE(&from, this);
3504  const NoOverlapConstraintProto* source =
3505  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NoOverlapConstraintProto>(
3506  &from);
3507  if (source == nullptr) {
3508  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.NoOverlapConstraintProto)
3509  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
3510  } else {
3511  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.NoOverlapConstraintProto)
3512  MergeFrom(*source);
3513  }
3514 }
3515 
3516 void NoOverlapConstraintProto::MergeFrom(const NoOverlapConstraintProto& from) {
3517 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.NoOverlapConstraintProto)
3518  GOOGLE_DCHECK_NE(&from, this);
3519  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3520  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3521  (void) cached_has_bits;
3522 
3523  intervals_.MergeFrom(from.intervals_);
3524 }
3525 
3526 void NoOverlapConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3527 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.NoOverlapConstraintProto)
3528  if (&from == this) return;
3529  Clear();
3530  MergeFrom(from);
3531 }
3532 
3533 void NoOverlapConstraintProto::CopyFrom(const NoOverlapConstraintProto& from) {
3534 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.NoOverlapConstraintProto)
3535  if (&from == this) return;
3536  Clear();
3537  MergeFrom(from);
3538 }
3539 
3540 bool NoOverlapConstraintProto::IsInitialized() const {
3541  return true;
3542 }
3543 
3544 void NoOverlapConstraintProto::InternalSwap(NoOverlapConstraintProto* other) {
3545  using std::swap;
3546  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3547  intervals_.InternalSwap(&other->intervals_);
3548 }
3549 
3550 ::PROTOBUF_NAMESPACE_ID::Metadata NoOverlapConstraintProto::GetMetadata() const {
3551  return GetMetadataStatic();
3552 }
3553 
3554 
3555 // ===================================================================
3556 
3558  public:
3559 };
3560 
3561 NoOverlap2DConstraintProto::NoOverlap2DConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3562  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
3563  x_intervals_(arena),
3564  y_intervals_(arena) {
3565  SharedCtor();
3566  RegisterArenaDtor(arena);
3567  // @@protoc_insertion_point(arena_constructor:operations_research.sat.NoOverlap2DConstraintProto)
3568 }
3569 NoOverlap2DConstraintProto::NoOverlap2DConstraintProto(const NoOverlap2DConstraintProto& from)
3570  : ::PROTOBUF_NAMESPACE_ID::Message(),
3571  x_intervals_(from.x_intervals_),
3572  y_intervals_(from.y_intervals_) {
3573  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3574  boxes_with_null_area_can_overlap_ = from.boxes_with_null_area_can_overlap_;
3575  // @@protoc_insertion_point(copy_constructor:operations_research.sat.NoOverlap2DConstraintProto)
3576 }
3577 
3578 void NoOverlap2DConstraintProto::SharedCtor() {
3579 boxes_with_null_area_can_overlap_ = false;
3580 }
3581 
3582 NoOverlap2DConstraintProto::~NoOverlap2DConstraintProto() {
3583  // @@protoc_insertion_point(destructor:operations_research.sat.NoOverlap2DConstraintProto)
3584  SharedDtor();
3585  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3586 }
3587 
3588 void NoOverlap2DConstraintProto::SharedDtor() {
3589  GOOGLE_DCHECK(GetArena() == nullptr);
3590 }
3591 
3592 void NoOverlap2DConstraintProto::ArenaDtor(void* object) {
3593  NoOverlap2DConstraintProto* _this = reinterpret_cast< NoOverlap2DConstraintProto* >(object);
3594  (void)_this;
3595 }
3596 void NoOverlap2DConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3597 }
3598 void NoOverlap2DConstraintProto::SetCachedSize(int size) const {
3599  _cached_size_.Set(size);
3600 }
3601 
3602 void NoOverlap2DConstraintProto::Clear() {
3603 // @@protoc_insertion_point(message_clear_start:operations_research.sat.NoOverlap2DConstraintProto)
3604  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3605  // Prevent compiler warnings about cached_has_bits being unused
3606  (void) cached_has_bits;
3607 
3608  x_intervals_.Clear();
3609  y_intervals_.Clear();
3610  boxes_with_null_area_can_overlap_ = false;
3611  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3612 }
3613 
3614 const char* NoOverlap2DConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3615 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3616  while (!ctx->Done(&ptr)) {
3617  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
3618  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3619  CHK_(ptr);
3620  switch (tag >> 3) {
3621  // repeated int32 x_intervals = 1;
3622  case 1:
3623  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
3624  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_x_intervals(), ptr, ctx);
3625  CHK_(ptr);
3626  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
3627  _internal_add_x_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3628  CHK_(ptr);
3629  } else goto handle_unusual;
3630  continue;
3631  // repeated int32 y_intervals = 2;
3632  case 2:
3633  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
3634  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_y_intervals(), ptr, ctx);
3635  CHK_(ptr);
3636  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
3637  _internal_add_y_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3638  CHK_(ptr);
3639  } else goto handle_unusual;
3640  continue;
3641  // bool boxes_with_null_area_can_overlap = 3;
3642  case 3:
3643  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
3644  boxes_with_null_area_can_overlap_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3645  CHK_(ptr);
3646  } else goto handle_unusual;
3647  continue;
3648  default: {
3649  handle_unusual:
3650  if ((tag & 7) == 4 || tag == 0) {
3651  ctx->SetLastTag(tag);
3652  goto success;
3653  }
3654  ptr = UnknownFieldParse(tag,
3655  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3656  ptr, ctx);
3657  CHK_(ptr != nullptr);
3658  continue;
3659  }
3660  } // switch
3661  } // while
3662 success:
3663  return ptr;
3664 failure:
3665  ptr = nullptr;
3666  goto success;
3667 #undef CHK_
3668 }
3669 
3670 ::PROTOBUF_NAMESPACE_ID::uint8* NoOverlap2DConstraintProto::_InternalSerialize(
3671  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3672  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.NoOverlap2DConstraintProto)
3673  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3674  (void) cached_has_bits;
3675 
3676  // repeated int32 x_intervals = 1;
3677  {
3678  int byte_size = _x_intervals_cached_byte_size_.load(std::memory_order_relaxed);
3679  if (byte_size > 0) {
3680  target = stream->WriteInt32Packed(
3681  1, _internal_x_intervals(), byte_size, target);
3682  }
3683  }
3684 
3685  // repeated int32 y_intervals = 2;
3686  {
3687  int byte_size = _y_intervals_cached_byte_size_.load(std::memory_order_relaxed);
3688  if (byte_size > 0) {
3689  target = stream->WriteInt32Packed(
3690  2, _internal_y_intervals(), byte_size, target);
3691  }
3692  }
3693 
3694  // bool boxes_with_null_area_can_overlap = 3;
3695  if (this->boxes_with_null_area_can_overlap() != 0) {
3696  target = stream->EnsureSpace(target);
3697  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_boxes_with_null_area_can_overlap(), target);
3698  }
3699 
3700  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3701  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3702  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3703  }
3704  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.NoOverlap2DConstraintProto)
3705  return target;
3706 }
3707 
3708 size_t NoOverlap2DConstraintProto::ByteSizeLong() const {
3709 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.NoOverlap2DConstraintProto)
3710  size_t total_size = 0;
3711 
3712  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3713  // Prevent compiler warnings about cached_has_bits being unused
3714  (void) cached_has_bits;
3715 
3716  // repeated int32 x_intervals = 1;
3717  {
3718  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3719  Int32Size(this->x_intervals_);
3720  if (data_size > 0) {
3721  total_size += 1 +
3722  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3723  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3724  }
3725  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3726  _x_intervals_cached_byte_size_.store(cached_size,
3727  std::memory_order_relaxed);
3728  total_size += data_size;
3729  }
3730 
3731  // repeated int32 y_intervals = 2;
3732  {
3733  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3734  Int32Size(this->y_intervals_);
3735  if (data_size > 0) {
3736  total_size += 1 +
3737  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3738  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3739  }
3740  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3741  _y_intervals_cached_byte_size_.store(cached_size,
3742  std::memory_order_relaxed);
3743  total_size += data_size;
3744  }
3745 
3746  // bool boxes_with_null_area_can_overlap = 3;
3747  if (this->boxes_with_null_area_can_overlap() != 0) {
3748  total_size += 1 + 1;
3749  }
3750 
3751  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3752  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3753  _internal_metadata_, total_size, &_cached_size_);
3754  }
3755  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3756  SetCachedSize(cached_size);
3757  return total_size;
3758 }
3759 
3760 void NoOverlap2DConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3761 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3762  GOOGLE_DCHECK_NE(&from, this);
3763  const NoOverlap2DConstraintProto* source =
3764  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NoOverlap2DConstraintProto>(
3765  &from);
3766  if (source == nullptr) {
3767  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.NoOverlap2DConstraintProto)
3768  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
3769  } else {
3770  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.NoOverlap2DConstraintProto)
3771  MergeFrom(*source);
3772  }
3773 }
3774 
3775 void NoOverlap2DConstraintProto::MergeFrom(const NoOverlap2DConstraintProto& from) {
3776 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3777  GOOGLE_DCHECK_NE(&from, this);
3778  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3779  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3780  (void) cached_has_bits;
3781 
3782  x_intervals_.MergeFrom(from.x_intervals_);
3783  y_intervals_.MergeFrom(from.y_intervals_);
3784  if (from.boxes_with_null_area_can_overlap() != 0) {
3785  _internal_set_boxes_with_null_area_can_overlap(from._internal_boxes_with_null_area_can_overlap());
3786  }
3787 }
3788 
3789 void NoOverlap2DConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3790 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3791  if (&from == this) return;
3792  Clear();
3793  MergeFrom(from);
3794 }
3795 
3796 void NoOverlap2DConstraintProto::CopyFrom(const NoOverlap2DConstraintProto& from) {
3797 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3798  if (&from == this) return;
3799  Clear();
3800  MergeFrom(from);
3801 }
3802 
3803 bool NoOverlap2DConstraintProto::IsInitialized() const {
3804  return true;
3805 }
3806 
3807 void NoOverlap2DConstraintProto::InternalSwap(NoOverlap2DConstraintProto* other) {
3808  using std::swap;
3809  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3810  x_intervals_.InternalSwap(&other->x_intervals_);
3811  y_intervals_.InternalSwap(&other->y_intervals_);
3812  swap(boxes_with_null_area_can_overlap_, other->boxes_with_null_area_can_overlap_);
3813 }
3814 
3815 ::PROTOBUF_NAMESPACE_ID::Metadata NoOverlap2DConstraintProto::GetMetadata() const {
3816  return GetMetadataStatic();
3817 }
3818 
3819 
3820 // ===================================================================
3821 
3823  public:
3824 };
3825 
3826 CumulativeConstraintProto::CumulativeConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3827  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
3828  intervals_(arena),
3829  demands_(arena) {
3830  SharedCtor();
3831  RegisterArenaDtor(arena);
3832  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CumulativeConstraintProto)
3833 }
3834 CumulativeConstraintProto::CumulativeConstraintProto(const CumulativeConstraintProto& from)
3835  : ::PROTOBUF_NAMESPACE_ID::Message(),
3836  intervals_(from.intervals_),
3837  demands_(from.demands_) {
3838  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3839  capacity_ = from.capacity_;
3840  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CumulativeConstraintProto)
3841 }
3842 
3843 void CumulativeConstraintProto::SharedCtor() {
3844 capacity_ = 0;
3845 }
3846 
3847 CumulativeConstraintProto::~CumulativeConstraintProto() {
3848  // @@protoc_insertion_point(destructor:operations_research.sat.CumulativeConstraintProto)
3849  SharedDtor();
3850  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3851 }
3852 
3853 void CumulativeConstraintProto::SharedDtor() {
3854  GOOGLE_DCHECK(GetArena() == nullptr);
3855 }
3856 
3857 void CumulativeConstraintProto::ArenaDtor(void* object) {
3858  CumulativeConstraintProto* _this = reinterpret_cast< CumulativeConstraintProto* >(object);
3859  (void)_this;
3860 }
3861 void CumulativeConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3862 }
3863 void CumulativeConstraintProto::SetCachedSize(int size) const {
3864  _cached_size_.Set(size);
3865 }
3866 
3867 void CumulativeConstraintProto::Clear() {
3868 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CumulativeConstraintProto)
3869  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3870  // Prevent compiler warnings about cached_has_bits being unused
3871  (void) cached_has_bits;
3872 
3873  intervals_.Clear();
3874  demands_.Clear();
3875  capacity_ = 0;
3876  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3877 }
3878 
3879 const char* CumulativeConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3880 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3881  while (!ctx->Done(&ptr)) {
3882  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
3883  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3884  CHK_(ptr);
3885  switch (tag >> 3) {
3886  // int32 capacity = 1;
3887  case 1:
3888  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
3889  capacity_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3890  CHK_(ptr);
3891  } else goto handle_unusual;
3892  continue;
3893  // repeated int32 intervals = 2;
3894  case 2:
3895  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
3896  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_intervals(), ptr, ctx);
3897  CHK_(ptr);
3898  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
3899  _internal_add_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3900  CHK_(ptr);
3901  } else goto handle_unusual;
3902  continue;
3903  // repeated int32 demands = 3;
3904  case 3:
3905  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
3906  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_demands(), ptr, ctx);
3907  CHK_(ptr);
3908  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
3909  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3910  CHK_(ptr);
3911  } else goto handle_unusual;
3912  continue;
3913  default: {
3914  handle_unusual:
3915  if ((tag & 7) == 4 || tag == 0) {
3916  ctx->SetLastTag(tag);
3917  goto success;
3918  }
3919  ptr = UnknownFieldParse(tag,
3920  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3921  ptr, ctx);
3922  CHK_(ptr != nullptr);
3923  continue;
3924  }
3925  } // switch
3926  } // while
3927 success:
3928  return ptr;
3929 failure:
3930  ptr = nullptr;
3931  goto success;
3932 #undef CHK_
3933 }
3934 
3935 ::PROTOBUF_NAMESPACE_ID::uint8* CumulativeConstraintProto::_InternalSerialize(
3936  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3937  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CumulativeConstraintProto)
3938  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3939  (void) cached_has_bits;
3940 
3941  // int32 capacity = 1;
3942  if (this->capacity() != 0) {
3943  target = stream->EnsureSpace(target);
3944  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_capacity(), target);
3945  }
3946 
3947  // repeated int32 intervals = 2;
3948  {
3949  int byte_size = _intervals_cached_byte_size_.load(std::memory_order_relaxed);
3950  if (byte_size > 0) {
3951  target = stream->WriteInt32Packed(
3952  2, _internal_intervals(), byte_size, target);
3953  }
3954  }
3955 
3956  // repeated int32 demands = 3;
3957  {
3958  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
3959  if (byte_size > 0) {
3960  target = stream->WriteInt32Packed(
3961  3, _internal_demands(), byte_size, target);
3962  }
3963  }
3964 
3965  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3966  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3967  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3968  }
3969  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CumulativeConstraintProto)
3970  return target;
3971 }
3972 
3973 size_t CumulativeConstraintProto::ByteSizeLong() const {
3974 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CumulativeConstraintProto)
3975  size_t total_size = 0;
3976 
3977  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3978  // Prevent compiler warnings about cached_has_bits being unused
3979  (void) cached_has_bits;
3980 
3981  // repeated int32 intervals = 2;
3982  {
3983  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3984  Int32Size(this->intervals_);
3985  if (data_size > 0) {
3986  total_size += 1 +
3987  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3988  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3989  }
3990  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3991  _intervals_cached_byte_size_.store(cached_size,
3992  std::memory_order_relaxed);
3993  total_size += data_size;
3994  }
3995 
3996  // repeated int32 demands = 3;
3997  {
3998  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3999  Int32Size(this->demands_);
4000  if (data_size > 0) {
4001  total_size += 1 +
4002  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4003  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4004  }
4005  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4006  _demands_cached_byte_size_.store(cached_size,
4007  std::memory_order_relaxed);
4008  total_size += data_size;
4009  }
4010 
4011  // int32 capacity = 1;
4012  if (this->capacity() != 0) {
4013  total_size += 1 +
4014  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4015  this->_internal_capacity());
4016  }
4017 
4018  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4019  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4020  _internal_metadata_, total_size, &_cached_size_);
4021  }
4022  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4023  SetCachedSize(cached_size);
4024  return total_size;
4025 }
4026 
4027 void CumulativeConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4028 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CumulativeConstraintProto)
4029  GOOGLE_DCHECK_NE(&from, this);
4030  const CumulativeConstraintProto* source =
4031  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CumulativeConstraintProto>(
4032  &from);
4033  if (source == nullptr) {
4034  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CumulativeConstraintProto)
4035  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
4036  } else {
4037  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CumulativeConstraintProto)
4038  MergeFrom(*source);
4039  }
4040 }
4041 
4042 void CumulativeConstraintProto::MergeFrom(const CumulativeConstraintProto& from) {
4043 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CumulativeConstraintProto)
4044  GOOGLE_DCHECK_NE(&from, this);
4045  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4046  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4047  (void) cached_has_bits;
4048 
4049  intervals_.MergeFrom(from.intervals_);
4050  demands_.MergeFrom(from.demands_);
4051  if (from.capacity() != 0) {
4052  _internal_set_capacity(from._internal_capacity());
4053  }
4054 }
4055 
4056 void CumulativeConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4057 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CumulativeConstraintProto)
4058  if (&from == this) return;
4059  Clear();
4060  MergeFrom(from);
4061 }
4062 
4063 void CumulativeConstraintProto::CopyFrom(const CumulativeConstraintProto& from) {
4064 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CumulativeConstraintProto)
4065  if (&from == this) return;
4066  Clear();
4067  MergeFrom(from);
4068 }
4069 
4070 bool CumulativeConstraintProto::IsInitialized() const {
4071  return true;
4072 }
4073 
4074 void CumulativeConstraintProto::InternalSwap(CumulativeConstraintProto* other) {
4075  using std::swap;
4076  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
4077  intervals_.InternalSwap(&other->intervals_);
4078  demands_.InternalSwap(&other->demands_);
4079  swap(capacity_, other->capacity_);
4080 }
4081 
4082 ::PROTOBUF_NAMESPACE_ID::Metadata CumulativeConstraintProto::GetMetadata() const {
4083  return GetMetadataStatic();
4084 }
4085 
4086 
4087 // ===================================================================
4088 
4090  public:
4091 };
4092 
4093 ReservoirConstraintProto::ReservoirConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
4094  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
4095  times_(arena),
4096  demands_(arena),
4097  actives_(arena) {
4098  SharedCtor();
4099  RegisterArenaDtor(arena);
4100  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ReservoirConstraintProto)
4101 }
4102 ReservoirConstraintProto::ReservoirConstraintProto(const ReservoirConstraintProto& from)
4103  : ::PROTOBUF_NAMESPACE_ID::Message(),
4104  times_(from.times_),
4105  demands_(from.demands_),
4106  actives_(from.actives_) {
4107  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4108  ::memcpy(&min_level_, &from.min_level_,
4109  static_cast<size_t>(reinterpret_cast<char*>(&max_level_) -
4110  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4111  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ReservoirConstraintProto)
4112 }
4113 
4114 void ReservoirConstraintProto::SharedCtor() {
4115 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
4116  reinterpret_cast<char*>(&min_level_) - reinterpret_cast<char*>(this)),
4117  0, static_cast<size_t>(reinterpret_cast<char*>(&max_level_) -
4118  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4119 }
4120 
4121 ReservoirConstraintProto::~ReservoirConstraintProto() {
4122  // @@protoc_insertion_point(destructor:operations_research.sat.ReservoirConstraintProto)
4123  SharedDtor();
4124  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4125 }
4126 
4127 void ReservoirConstraintProto::SharedDtor() {
4128  GOOGLE_DCHECK(GetArena() == nullptr);
4129 }
4130 
4131 void ReservoirConstraintProto::ArenaDtor(void* object) {
4132  ReservoirConstraintProto* _this = reinterpret_cast< ReservoirConstraintProto* >(object);
4133  (void)_this;
4134 }
4135 void ReservoirConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4136 }
4137 void ReservoirConstraintProto::SetCachedSize(int size) const {
4138  _cached_size_.Set(size);
4139 }
4140 
4141 void ReservoirConstraintProto::Clear() {
4142 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ReservoirConstraintProto)
4143  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4144  // Prevent compiler warnings about cached_has_bits being unused
4145  (void) cached_has_bits;
4146 
4147  times_.Clear();
4148  demands_.Clear();
4149  actives_.Clear();
4150  ::memset(&min_level_, 0, static_cast<size_t>(
4151  reinterpret_cast<char*>(&max_level_) -
4152  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4153  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4154 }
4155 
4156 const char* ReservoirConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4157 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4158  while (!ctx->Done(&ptr)) {
4159  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
4160  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4161  CHK_(ptr);
4162  switch (tag >> 3) {
4163  // int64 min_level = 1;
4164  case 1:
4165  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
4166  min_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4167  CHK_(ptr);
4168  } else goto handle_unusual;
4169  continue;
4170  // int64 max_level = 2;
4171  case 2:
4172  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
4173  max_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4174  CHK_(ptr);
4175  } else goto handle_unusual;
4176  continue;
4177  // repeated int32 times = 3;
4178  case 3:
4179  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4180  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_times(), ptr, ctx);
4181  CHK_(ptr);
4182  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4183  _internal_add_times(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4184  CHK_(ptr);
4185  } else goto handle_unusual;
4186  continue;
4187  // repeated int64 demands = 4;
4188  case 4:
4189  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4190  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_demands(), ptr, ctx);
4191  CHK_(ptr);
4192  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4193  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4194  CHK_(ptr);
4195  } else goto handle_unusual;
4196  continue;
4197  // repeated int32 actives = 5;
4198  case 5:
4199  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
4200  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_actives(), ptr, ctx);
4201  CHK_(ptr);
4202  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
4203  _internal_add_actives(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4204  CHK_(ptr);
4205  } else goto handle_unusual;
4206  continue;
4207  default: {
4208  handle_unusual:
4209  if ((tag & 7) == 4 || tag == 0) {
4210  ctx->SetLastTag(tag);
4211  goto success;
4212  }
4213  ptr = UnknownFieldParse(tag,
4214  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4215  ptr, ctx);
4216  CHK_(ptr != nullptr);
4217  continue;
4218  }
4219  } // switch
4220  } // while
4221 success:
4222  return ptr;
4223 failure:
4224  ptr = nullptr;
4225  goto success;
4226 #undef CHK_
4227 }
4228 
4229 ::PROTOBUF_NAMESPACE_ID::uint8* ReservoirConstraintProto::_InternalSerialize(
4230  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4231  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ReservoirConstraintProto)
4232  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4233  (void) cached_has_bits;
4234 
4235  // int64 min_level = 1;
4236  if (this->min_level() != 0) {
4237  target = stream->EnsureSpace(target);
4238  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(1, this->_internal_min_level(), target);
4239  }
4240 
4241  // int64 max_level = 2;
4242  if (this->max_level() != 0) {
4243  target = stream->EnsureSpace(target);
4244  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_max_level(), target);
4245  }
4246 
4247  // repeated int32 times = 3;
4248  {
4249  int byte_size = _times_cached_byte_size_.load(std::memory_order_relaxed);
4250  if (byte_size > 0) {
4251  target = stream->WriteInt32Packed(
4252  3, _internal_times(), byte_size, target);
4253  }
4254  }
4255 
4256  // repeated int64 demands = 4;
4257  {
4258  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
4259  if (byte_size > 0) {
4260  target = stream->WriteInt64Packed(
4261  4, _internal_demands(), byte_size, target);
4262  }
4263  }
4264 
4265  // repeated int32 actives = 5;
4266  {
4267  int byte_size = _actives_cached_byte_size_.load(std::memory_order_relaxed);
4268  if (byte_size > 0) {
4269  target = stream->WriteInt32Packed(
4270  5, _internal_actives(), byte_size, target);
4271  }
4272  }
4273 
4274  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4275  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4276  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4277  }
4278  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ReservoirConstraintProto)
4279  return target;
4280 }
4281 
4282 size_t ReservoirConstraintProto::ByteSizeLong() const {
4283 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ReservoirConstraintProto)
4284  size_t total_size = 0;
4285 
4286  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4287  // Prevent compiler warnings about cached_has_bits being unused
4288  (void) cached_has_bits;
4289 
4290  // repeated int32 times = 3;
4291  {
4292  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4293  Int32Size(this->times_);
4294  if (data_size > 0) {
4295  total_size += 1 +
4296  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4297  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4298  }
4299  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4300  _times_cached_byte_size_.store(cached_size,
4301  std::memory_order_relaxed);
4302  total_size += data_size;
4303  }
4304 
4305  // repeated int64 demands = 4;
4306  {
4307  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4308  Int64Size(this->demands_);
4309  if (data_size > 0) {
4310  total_size += 1 +
4311  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4312  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4313  }
4314  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4315  _demands_cached_byte_size_.store(cached_size,
4316  std::memory_order_relaxed);
4317  total_size += data_size;
4318  }
4319 
4320  // repeated int32 actives = 5;
4321  {
4322  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4323  Int32Size(this->actives_);
4324  if (data_size > 0) {
4325  total_size += 1 +
4326  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4327  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4328  }
4329  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4330  _actives_cached_byte_size_.store(cached_size,
4331  std::memory_order_relaxed);
4332  total_size += data_size;
4333  }
4334 
4335  // int64 min_level = 1;
4336  if (this->min_level() != 0) {
4337  total_size += 1 +
4338  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4339  this->_internal_min_level());
4340  }
4341 
4342  // int64 max_level = 2;
4343  if (this->max_level() != 0) {
4344  total_size += 1 +
4345  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4346  this->_internal_max_level());
4347  }
4348 
4349  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4350  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4351  _internal_metadata_, total_size, &_cached_size_);
4352  }
4353  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4354  SetCachedSize(cached_size);
4355  return total_size;
4356 }
4357 
4358 void ReservoirConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4359 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.ReservoirConstraintProto)
4360  GOOGLE_DCHECK_NE(&from, this);
4361  const ReservoirConstraintProto* source =
4362  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ReservoirConstraintProto>(
4363  &from);
4364  if (source == nullptr) {
4365  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.ReservoirConstraintProto)
4366  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
4367  } else {
4368  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.ReservoirConstraintProto)
4369  MergeFrom(*source);
4370  }
4371 }
4372 
4373 void ReservoirConstraintProto::MergeFrom(const ReservoirConstraintProto& from) {
4374 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ReservoirConstraintProto)
4375  GOOGLE_DCHECK_NE(&from, this);
4376  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4377  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4378  (void) cached_has_bits;
4379 
4380  times_.MergeFrom(from.times_);
4381  demands_.MergeFrom(from.demands_);
4382  actives_.MergeFrom(from.actives_);
4383  if (from.min_level() != 0) {
4384  _internal_set_min_level(from._internal_min_level());
4385  }
4386  if (from.max_level() != 0) {
4387  _internal_set_max_level(from._internal_max_level());
4388  }
4389 }
4390 
4391 void ReservoirConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4392 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.ReservoirConstraintProto)
4393  if (&from == this) return;
4394  Clear();
4395  MergeFrom(from);
4396 }
4397 
4398 void ReservoirConstraintProto::CopyFrom(const ReservoirConstraintProto& from) {
4399 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ReservoirConstraintProto)
4400  if (&from == this) return;
4401  Clear();
4402  MergeFrom(from);
4403 }
4404 
4405 bool ReservoirConstraintProto::IsInitialized() const {
4406  return true;
4407 }
4408 
4409 void ReservoirConstraintProto::InternalSwap(ReservoirConstraintProto* other) {
4410  using std::swap;
4411  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
4412  times_.InternalSwap(&other->times_);
4413  demands_.InternalSwap(&other->demands_);
4414  actives_.InternalSwap(&other->actives_);
4415  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
4416  PROTOBUF_FIELD_OFFSET(ReservoirConstraintProto, max_level_)
4417  + sizeof(ReservoirConstraintProto::max_level_)
4418  - PROTOBUF_FIELD_OFFSET(ReservoirConstraintProto, min_level_)>(
4419  reinterpret_cast<char*>(&min_level_),
4420  reinterpret_cast<char*>(&other->min_level_));
4421 }
4422 
4423 ::PROTOBUF_NAMESPACE_ID::Metadata ReservoirConstraintProto::GetMetadata() const {
4424  return GetMetadataStatic();
4425 }
4426 
4427 
4428 // ===================================================================
4429 
4431  public:
4432 };
4433 
4434 CircuitConstraintProto::CircuitConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
4435  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
4436  tails_(arena),
4437  heads_(arena),
4438  literals_(arena) {
4439  SharedCtor();
4440  RegisterArenaDtor(arena);
4441  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CircuitConstraintProto)
4442 }
4443 CircuitConstraintProto::CircuitConstraintProto(const CircuitConstraintProto& from)
4444  : ::PROTOBUF_NAMESPACE_ID::Message(),
4445  tails_(from.tails_),
4446  heads_(from.heads_),
4447  literals_(from.literals_) {
4448  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4449  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CircuitConstraintProto)
4450 }
4451 
4452 void CircuitConstraintProto::SharedCtor() {
4453 }
4454 
4455 CircuitConstraintProto::~CircuitConstraintProto() {
4456  // @@protoc_insertion_point(destructor:operations_research.sat.CircuitConstraintProto)
4457  SharedDtor();
4458  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4459 }
4460 
4461 void CircuitConstraintProto::SharedDtor() {
4462  GOOGLE_DCHECK(GetArena() == nullptr);
4463 }
4464 
4465 void CircuitConstraintProto::ArenaDtor(void* object) {
4466  CircuitConstraintProto* _this = reinterpret_cast< CircuitConstraintProto* >(object);
4467  (void)_this;
4468 }
4469 void CircuitConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4470 }
4471 void CircuitConstraintProto::SetCachedSize(int size) const {
4472  _cached_size_.Set(size);
4473 }
4474 
4475 void CircuitConstraintProto::Clear() {
4476 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CircuitConstraintProto)
4477  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4478  // Prevent compiler warnings about cached_has_bits being unused
4479  (void) cached_has_bits;
4480 
4481  tails_.Clear();
4482  heads_.Clear();
4483  literals_.Clear();
4484  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4485 }
4486 
4487 const char* CircuitConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4488 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4489  while (!ctx->Done(&ptr)) {
4490  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
4491  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4492  CHK_(ptr);
4493  switch (tag >> 3) {
4494  // repeated int32 tails = 3;
4495  case 3:
4496  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4497  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_tails(), ptr, ctx);
4498  CHK_(ptr);
4499  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4500  _internal_add_tails(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4501  CHK_(ptr);
4502  } else goto handle_unusual;
4503  continue;
4504  // repeated int32 heads = 4;
4505  case 4:
4506  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4507  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_heads(), ptr, ctx);
4508  CHK_(ptr);
4509  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4510  _internal_add_heads(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4511  CHK_(ptr);
4512  } else goto handle_unusual;
4513  continue;
4514  // repeated int32 literals = 5;
4515  case 5:
4516  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
4517  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
4518  CHK_(ptr);
4519  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
4520  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4521  CHK_(ptr);
4522  } else goto handle_unusual;
4523  continue;
4524  default: {
4525  handle_unusual:
4526  if ((tag & 7) == 4 || tag == 0) {
4527  ctx->SetLastTag(tag);
4528  goto success;
4529  }
4530  ptr = UnknownFieldParse(tag,
4531  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4532  ptr, ctx);
4533  CHK_(ptr != nullptr);
4534  continue;
4535  }
4536  } // switch
4537  } // while
4538 success:
4539  return ptr;
4540 failure:
4541  ptr = nullptr;
4542  goto success;
4543 #undef CHK_
4544 }
4545 
4546 ::PROTOBUF_NAMESPACE_ID::uint8* CircuitConstraintProto::_InternalSerialize(
4547  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4548  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CircuitConstraintProto)
4549  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4550  (void) cached_has_bits;
4551 
4552  // repeated int32 tails = 3;
4553  {
4554  int byte_size = _tails_cached_byte_size_.load(std::memory_order_relaxed);
4555  if (byte_size > 0) {
4556  target = stream->WriteInt32Packed(
4557  3, _internal_tails(), byte_size, target);
4558  }
4559  }
4560 
4561  // repeated int32 heads = 4;
4562  {
4563  int byte_size = _heads_cached_byte_size_.load(std::memory_order_relaxed);
4564  if (byte_size > 0) {
4565  target = stream->WriteInt32Packed(
4566  4, _internal_heads(), byte_size, target);
4567  }
4568  }
4569 
4570  // repeated int32 literals = 5;
4571  {
4572  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
4573  if (byte_size > 0) {
4574  target = stream->WriteInt32Packed(
4575  5, _internal_literals(), byte_size, target);
4576  }
4577  }
4578 
4579  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4580  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4581  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4582  }
4583  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CircuitConstraintProto)
4584  return target;
4585 }
4586 
4587 size_t CircuitConstraintProto::ByteSizeLong() const {
4588 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CircuitConstraintProto)
4589  size_t total_size = 0;
4590 
4591  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4592  // Prevent compiler warnings about cached_has_bits being unused
4593  (void) cached_has_bits;
4594 
4595  // repeated int32 tails = 3;
4596  {
4597  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4598  Int32Size(this->tails_);
4599  if (data_size > 0) {
4600  total_size += 1 +
4601  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4602  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4603  }
4604  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4605  _tails_cached_byte_size_.store(cached_size,
4606  std::memory_order_relaxed);
4607  total_size += data_size;
4608  }
4609 
4610  // repeated int32 heads = 4;
4611  {
4612  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4613  Int32Size(this->heads_);
4614  if (data_size > 0) {
4615  total_size += 1 +
4616  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4617  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4618  }
4619  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4620  _heads_cached_byte_size_.store(cached_size,
4621  std::memory_order_relaxed);
4622  total_size += data_size;
4623  }
4624 
4625  // repeated int32 literals = 5;
4626  {
4627  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4628  Int32Size(this->literals_);
4629  if (data_size > 0) {
4630  total_size += 1 +
4631  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4632  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4633  }
4634  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4635  _literals_cached_byte_size_.store(cached_size,
4636  std::memory_order_relaxed);
4637  total_size += data_size;
4638  }
4639 
4640  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4641  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4642  _internal_metadata_, total_size, &_cached_size_);
4643  }
4644  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4645  SetCachedSize(cached_size);
4646  return total_size;
4647 }
4648 
4649 void CircuitConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4650 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CircuitConstraintProto)
4651  GOOGLE_DCHECK_NE(&from, this);
4652  const CircuitConstraintProto* source =
4653  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CircuitConstraintProto>(
4654  &from);
4655  if (source == nullptr) {
4656  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CircuitConstraintProto)
4657  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
4658  } else {
4659  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CircuitConstraintProto)
4660  MergeFrom(*source);
4661  }
4662 }
4663 
4664 void CircuitConstraintProto::MergeFrom(const CircuitConstraintProto& from) {
4665 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CircuitConstraintProto)
4666  GOOGLE_DCHECK_NE(&from, this);
4667  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4668  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4669  (void) cached_has_bits;
4670 
4671  tails_.MergeFrom(from.tails_);
4672  heads_.MergeFrom(from.heads_);
4673  literals_.MergeFrom(from.literals_);
4674 }
4675 
4676 void CircuitConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4677 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CircuitConstraintProto)
4678  if (&from == this) return;
4679  Clear();
4680  MergeFrom(from);
4681 }
4682 
4683 void CircuitConstraintProto::CopyFrom(const CircuitConstraintProto& from) {
4684 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CircuitConstraintProto)
4685  if (&from == this) return;
4686  Clear();
4687  MergeFrom(from);
4688 }
4689 
4690 bool CircuitConstraintProto::IsInitialized() const {
4691  return true;
4692 }
4693 
4694 void CircuitConstraintProto::InternalSwap(CircuitConstraintProto* other) {
4695  using std::swap;
4696  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
4697  tails_.InternalSwap(&other->tails_);
4698  heads_.InternalSwap(&other->heads_);
4699  literals_.InternalSwap(&other->literals_);
4700 }
4701 
4702 ::PROTOBUF_NAMESPACE_ID::Metadata CircuitConstraintProto::GetMetadata() const {
4703  return GetMetadataStatic();
4704 }
4705 
4706 
4707 // ===================================================================
4708 
4710  public:
4711 };
4712 
4713 RoutesConstraintProto::RoutesConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
4714  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
4715  tails_(arena),
4716  heads_(arena),
4717  literals_(arena),
4718  demands_(arena) {
4719  SharedCtor();
4720  RegisterArenaDtor(arena);
4721  // @@protoc_insertion_point(arena_constructor:operations_research.sat.RoutesConstraintProto)
4722 }
4723 RoutesConstraintProto::RoutesConstraintProto(const RoutesConstraintProto& from)
4724  : ::PROTOBUF_NAMESPACE_ID::Message(),
4725  tails_(from.tails_),
4726  heads_(from.heads_),
4727  literals_(from.literals_),
4728  demands_(from.demands_) {
4729  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4730  capacity_ = from.capacity_;
4731  // @@protoc_insertion_point(copy_constructor:operations_research.sat.RoutesConstraintProto)
4732 }
4733 
4734 void RoutesConstraintProto::SharedCtor() {
4735 capacity_ = PROTOBUF_LONGLONG(0);
4736 }
4737 
4738 RoutesConstraintProto::~RoutesConstraintProto() {
4739  // @@protoc_insertion_point(destructor:operations_research.sat.RoutesConstraintProto)
4740  SharedDtor();
4741  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4742 }
4743 
4744 void RoutesConstraintProto::SharedDtor() {
4745  GOOGLE_DCHECK(GetArena() == nullptr);
4746 }
4747 
4748 void RoutesConstraintProto::ArenaDtor(void* object) {
4749  RoutesConstraintProto* _this = reinterpret_cast< RoutesConstraintProto* >(object);
4750  (void)_this;
4751 }
4752 void RoutesConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4753 }
4754 void RoutesConstraintProto::SetCachedSize(int size) const {
4755  _cached_size_.Set(size);
4756 }
4757 
4758 void RoutesConstraintProto::Clear() {
4759 // @@protoc_insertion_point(message_clear_start:operations_research.sat.RoutesConstraintProto)
4760  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4761  // Prevent compiler warnings about cached_has_bits being unused
4762  (void) cached_has_bits;
4763 
4764  tails_.Clear();
4765  heads_.Clear();
4766  literals_.Clear();
4767  demands_.Clear();
4768  capacity_ = PROTOBUF_LONGLONG(0);
4769  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4770 }
4771 
4772 const char* RoutesConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4773 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4774  while (!ctx->Done(&ptr)) {
4775  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
4776  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4777  CHK_(ptr);
4778  switch (tag >> 3) {
4779  // repeated int32 tails = 1;
4780  case 1:
4781  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
4782  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_tails(), ptr, ctx);
4783  CHK_(ptr);
4784  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
4785  _internal_add_tails(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4786  CHK_(ptr);
4787  } else goto handle_unusual;
4788  continue;
4789  // repeated int32 heads = 2;
4790  case 2:
4791  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
4792  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_heads(), ptr, ctx);
4793  CHK_(ptr);
4794  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
4795  _internal_add_heads(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4796  CHK_(ptr);
4797  } else goto handle_unusual;
4798  continue;
4799  // repeated int32 literals = 3;
4800  case 3:
4801  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4802  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
4803  CHK_(ptr);
4804  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4805  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4806  CHK_(ptr);
4807  } else goto handle_unusual;
4808  continue;
4809  // repeated int32 demands = 4;
4810  case 4:
4811  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4812  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_demands(), ptr, ctx);
4813  CHK_(ptr);
4814  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4815  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4816  CHK_(ptr);
4817  } else goto handle_unusual;
4818  continue;
4819  // int64 capacity = 5;
4820  case 5:
4821  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
4822  capacity_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4823  CHK_(ptr);
4824  } else goto handle_unusual;
4825  continue;
4826  default: {
4827  handle_unusual:
4828  if ((tag & 7) == 4 || tag == 0) {
4829  ctx->SetLastTag(tag);
4830  goto success;
4831  }
4832  ptr = UnknownFieldParse(tag,
4833  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4834  ptr, ctx);
4835  CHK_(ptr != nullptr);
4836  continue;
4837  }
4838  } // switch
4839  } // while
4840 success:
4841  return ptr;
4842 failure:
4843  ptr = nullptr;
4844  goto success;
4845 #undef CHK_
4846 }
4847 
4848 ::PROTOBUF_NAMESPACE_ID::uint8* RoutesConstraintProto::_InternalSerialize(
4849  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4850  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.RoutesConstraintProto)
4851  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4852  (void) cached_has_bits;
4853 
4854  // repeated int32 tails = 1;
4855  {
4856  int byte_size = _tails_cached_byte_size_.load(std::memory_order_relaxed);
4857  if (byte_size > 0) {
4858  target = stream->WriteInt32Packed(
4859  1, _internal_tails(), byte_size, target);
4860  }
4861  }
4862 
4863  // repeated int32 heads = 2;
4864  {
4865  int byte_size = _heads_cached_byte_size_.load(std::memory_order_relaxed);
4866  if (byte_size > 0) {
4867  target = stream->WriteInt32Packed(
4868  2, _internal_heads(), byte_size, target);
4869  }
4870  }
4871 
4872  // repeated int32 literals = 3;
4873  {
4874  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
4875  if (byte_size > 0) {
4876  target = stream->WriteInt32Packed(
4877  3, _internal_literals(), byte_size, target);
4878  }
4879  }
4880 
4881  // repeated int32 demands = 4;
4882  {
4883  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
4884  if (byte_size > 0) {
4885  target = stream->WriteInt32Packed(
4886  4, _internal_demands(), byte_size, target);
4887  }
4888  }
4889 
4890  // int64 capacity = 5;
4891  if (this->capacity() != 0) {
4892  target = stream->EnsureSpace(target);
4893  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(5, this->_internal_capacity(), target);
4894  }
4895 
4896  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4897  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4898  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4899  }
4900  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.RoutesConstraintProto)
4901  return target;
4902 }
4903 
4904 size_t RoutesConstraintProto::ByteSizeLong() const {
4905 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.RoutesConstraintProto)
4906  size_t total_size = 0;
4907 
4908  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4909  // Prevent compiler warnings about cached_has_bits being unused
4910  (void) cached_has_bits;
4911 
4912  // repeated int32 tails = 1;
4913  {
4914  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4915  Int32Size(this->tails_);
4916  if (data_size > 0) {
4917  total_size += 1 +
4918  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4919  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4920  }
4921  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4922  _tails_cached_byte_size_.store(cached_size,
4923  std::memory_order_relaxed);
4924  total_size += data_size;
4925  }
4926 
4927  // repeated int32 heads = 2;
4928  {
4929  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4930  Int32Size(this->heads_);
4931  if (data_size > 0) {
4932  total_size += 1 +
4933  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4934  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4935  }
4936  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4937  _heads_cached_byte_size_.store(cached_size,
4938  std::memory_order_relaxed);
4939  total_size += data_size;
4940  }
4941 
4942  // repeated int32 literals = 3;
4943  {
4944  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4945  Int32Size(this->literals_);
4946  if (data_size > 0) {
4947  total_size += 1 +
4948  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4949  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4950  }
4951  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4952  _literals_cached_byte_size_.store(cached_size,
4953  std::memory_order_relaxed);
4954  total_size += data_size;
4955  }
4956 
4957  // repeated int32 demands = 4;
4958  {
4959  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4960  Int32Size(this->demands_);
4961  if (data_size > 0) {
4962  total_size += 1 +
4963  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4964  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4965  }
4966  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4967  _demands_cached_byte_size_.store(cached_size,
4968  std::memory_order_relaxed);
4969  total_size += data_size;
4970  }
4971 
4972  // int64 capacity = 5;
4973  if (this->capacity() != 0) {
4974  total_size += 1 +
4975  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4976  this->_internal_capacity());
4977  }
4978 
4979  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4980  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4981  _internal_metadata_, total_size, &_cached_size_);
4982  }
4983  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4984  SetCachedSize(cached_size);
4985  return total_size;
4986 }
4987 
4988 void RoutesConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4989 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.RoutesConstraintProto)
4990  GOOGLE_DCHECK_NE(&from, this);
4991  const RoutesConstraintProto* source =
4992  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RoutesConstraintProto>(
4993  &from);
4994  if (source == nullptr) {
4995  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.RoutesConstraintProto)
4996  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
4997  } else {
4998  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.RoutesConstraintProto)
4999  MergeFrom(*source);
5000  }
5001 }
5002 
5003 void RoutesConstraintProto::MergeFrom(const RoutesConstraintProto& from) {
5004 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.RoutesConstraintProto)
5005  GOOGLE_DCHECK_NE(&from, this);
5006  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5007  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5008  (void) cached_has_bits;
5009 
5010  tails_.MergeFrom(from.tails_);
5011  heads_.MergeFrom(from.heads_);
5012  literals_.MergeFrom(from.literals_);
5013  demands_.MergeFrom(from.demands_);
5014  if (from.capacity() != 0) {
5015  _internal_set_capacity(from._internal_capacity());
5016  }
5017 }
5018 
5019 void RoutesConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5020 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.RoutesConstraintProto)
5021  if (&from == this) return;
5022  Clear();
5023  MergeFrom(from);
5024 }
5025 
5026 void RoutesConstraintProto::CopyFrom(const RoutesConstraintProto& from) {
5027 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.RoutesConstraintProto)
5028  if (&from == this) return;
5029  Clear();
5030  MergeFrom(from);
5031 }
5032 
5033 bool RoutesConstraintProto::IsInitialized() const {
5034  return true;
5035 }
5036 
5037 void RoutesConstraintProto::InternalSwap(RoutesConstraintProto* other) {
5038  using std::swap;
5039  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5040  tails_.InternalSwap(&other->tails_);
5041  heads_.InternalSwap(&other->heads_);
5042  literals_.InternalSwap(&other->literals_);
5043  demands_.InternalSwap(&other->demands_);
5044  swap(capacity_, other->capacity_);
5045 }
5046 
5047 ::PROTOBUF_NAMESPACE_ID::Metadata RoutesConstraintProto::GetMetadata() const {
5048  return GetMetadataStatic();
5049 }
5050 
5051 
5052 // ===================================================================
5053 
5055  public:
5056 };
5057 
5058 TableConstraintProto::TableConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
5059  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
5060  vars_(arena),
5061  values_(arena) {
5062  SharedCtor();
5063  RegisterArenaDtor(arena);
5064  // @@protoc_insertion_point(arena_constructor:operations_research.sat.TableConstraintProto)
5065 }
5066 TableConstraintProto::TableConstraintProto(const TableConstraintProto& from)
5067  : ::PROTOBUF_NAMESPACE_ID::Message(),
5068  vars_(from.vars_),
5069  values_(from.values_) {
5070  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5071  negated_ = from.negated_;
5072  // @@protoc_insertion_point(copy_constructor:operations_research.sat.TableConstraintProto)
5073 }
5074 
5075 void TableConstraintProto::SharedCtor() {
5076 negated_ = false;
5077 }
5078 
5079 TableConstraintProto::~TableConstraintProto() {
5080  // @@protoc_insertion_point(destructor:operations_research.sat.TableConstraintProto)
5081  SharedDtor();
5082  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5083 }
5084 
5085 void TableConstraintProto::SharedDtor() {
5086  GOOGLE_DCHECK(GetArena() == nullptr);
5087 }
5088 
5089 void TableConstraintProto::ArenaDtor(void* object) {
5090  TableConstraintProto* _this = reinterpret_cast< TableConstraintProto* >(object);
5091  (void)_this;
5092 }
5093 void TableConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5094 }
5095 void TableConstraintProto::SetCachedSize(int size) const {
5096  _cached_size_.Set(size);
5097 }
5098 
5099 void TableConstraintProto::Clear() {
5100 // @@protoc_insertion_point(message_clear_start:operations_research.sat.TableConstraintProto)
5101  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5102  // Prevent compiler warnings about cached_has_bits being unused
5103  (void) cached_has_bits;
5104 
5105  vars_.Clear();
5106  values_.Clear();
5107  negated_ = false;
5108  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5109 }
5110 
5111 const char* TableConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5112 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5113  while (!ctx->Done(&ptr)) {
5114  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
5115  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5116  CHK_(ptr);
5117  switch (tag >> 3) {
5118  // repeated int32 vars = 1;
5119  case 1:
5120  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
5121  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
5122  CHK_(ptr);
5123  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
5124  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5125  CHK_(ptr);
5126  } else goto handle_unusual;
5127  continue;
5128  // repeated int64 values = 2;
5129  case 2:
5130  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
5131  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_values(), ptr, ctx);
5132  CHK_(ptr);
5133  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
5134  _internal_add_values(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5135  CHK_(ptr);
5136  } else goto handle_unusual;
5137  continue;
5138  // bool negated = 3;
5139  case 3:
5140  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
5141  negated_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
5142  CHK_(ptr);
5143  } else goto handle_unusual;
5144  continue;
5145  default: {
5146  handle_unusual:
5147  if ((tag & 7) == 4 || tag == 0) {
5148  ctx->SetLastTag(tag);
5149  goto success;
5150  }
5151  ptr = UnknownFieldParse(tag,
5152  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5153  ptr, ctx);
5154  CHK_(ptr != nullptr);
5155  continue;
5156  }
5157  } // switch
5158  } // while
5159 success:
5160  return ptr;
5161 failure:
5162  ptr = nullptr;
5163  goto success;
5164 #undef CHK_
5165 }
5166 
5167 ::PROTOBUF_NAMESPACE_ID::uint8* TableConstraintProto::_InternalSerialize(
5168  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5169  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.TableConstraintProto)
5170  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5171  (void) cached_has_bits;
5172 
5173  // repeated int32 vars = 1;
5174  {
5175  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
5176  if (byte_size > 0) {
5177  target = stream->WriteInt32Packed(
5178  1, _internal_vars(), byte_size, target);
5179  }
5180  }
5181 
5182  // repeated int64 values = 2;
5183  {
5184  int byte_size = _values_cached_byte_size_.load(std::memory_order_relaxed);
5185  if (byte_size > 0) {
5186  target = stream->WriteInt64Packed(
5187  2, _internal_values(), byte_size, target);
5188  }
5189  }
5190 
5191  // bool negated = 3;
5192  if (this->negated() != 0) {
5193  target = stream->EnsureSpace(target);
5194  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_negated(), target);
5195  }
5196 
5197  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5198  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5199  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5200  }
5201  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.TableConstraintProto)
5202  return target;
5203 }
5204 
5205 size_t TableConstraintProto::ByteSizeLong() const {
5206 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.TableConstraintProto)
5207  size_t total_size = 0;
5208 
5209  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5210  // Prevent compiler warnings about cached_has_bits being unused
5211  (void) cached_has_bits;
5212 
5213  // repeated int32 vars = 1;
5214  {
5215  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5216  Int32Size(this->vars_);
5217  if (data_size > 0) {
5218  total_size += 1 +
5219  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5220  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5221  }
5222  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5223  _vars_cached_byte_size_.store(cached_size,
5224  std::memory_order_relaxed);
5225  total_size += data_size;
5226  }
5227 
5228  // repeated int64 values = 2;
5229  {
5230  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5231  Int64Size(this->values_);
5232  if (data_size > 0) {
5233  total_size += 1 +
5234  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5235  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5236  }
5237  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5238  _values_cached_byte_size_.store(cached_size,
5239  std::memory_order_relaxed);
5240  total_size += data_size;
5241  }
5242 
5243  // bool negated = 3;
5244  if (this->negated() != 0) {
5245  total_size += 1 + 1;
5246  }
5247 
5248  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5249  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5250  _internal_metadata_, total_size, &_cached_size_);
5251  }
5252  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5253  SetCachedSize(cached_size);
5254  return total_size;
5255 }
5256 
5257 void TableConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5258 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.TableConstraintProto)
5259  GOOGLE_DCHECK_NE(&from, this);
5260  const TableConstraintProto* source =
5261  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<TableConstraintProto>(
5262  &from);
5263  if (source == nullptr) {
5264  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.TableConstraintProto)
5265  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
5266  } else {
5267  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.TableConstraintProto)
5268  MergeFrom(*source);
5269  }
5270 }
5271 
5272 void TableConstraintProto::MergeFrom(const TableConstraintProto& from) {
5273 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.TableConstraintProto)
5274  GOOGLE_DCHECK_NE(&from, this);
5275  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5276  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5277  (void) cached_has_bits;
5278 
5279  vars_.MergeFrom(from.vars_);
5280  values_.MergeFrom(from.values_);
5281  if (from.negated() != 0) {
5282  _internal_set_negated(from._internal_negated());
5283  }
5284 }
5285 
5286 void TableConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5287 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.TableConstraintProto)
5288  if (&from == this) return;
5289  Clear();
5290  MergeFrom(from);
5291 }
5292 
5293 void TableConstraintProto::CopyFrom(const TableConstraintProto& from) {
5294 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.TableConstraintProto)
5295  if (&from == this) return;
5296  Clear();
5297  MergeFrom(from);
5298 }
5299 
5300 bool TableConstraintProto::IsInitialized() const {
5301  return true;
5302 }
5303 
5304 void TableConstraintProto::InternalSwap(TableConstraintProto* other) {
5305  using std::swap;
5306  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5307  vars_.InternalSwap(&other->vars_);
5308  values_.InternalSwap(&other->values_);
5309  swap(negated_, other->negated_);
5310 }
5311 
5312 ::PROTOBUF_NAMESPACE_ID::Metadata TableConstraintProto::GetMetadata() const {
5313  return GetMetadataStatic();
5314 }
5315 
5316 
5317 // ===================================================================
5318 
5320  public:
5321 };
5322 
5323 InverseConstraintProto::InverseConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
5324  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
5325  f_direct_(arena),
5326  f_inverse_(arena) {
5327  SharedCtor();
5328  RegisterArenaDtor(arena);
5329  // @@protoc_insertion_point(arena_constructor:operations_research.sat.InverseConstraintProto)
5330 }
5331 InverseConstraintProto::InverseConstraintProto(const InverseConstraintProto& from)
5332  : ::PROTOBUF_NAMESPACE_ID::Message(),
5333  f_direct_(from.f_direct_),
5334  f_inverse_(from.f_inverse_) {
5335  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5336  // @@protoc_insertion_point(copy_constructor:operations_research.sat.InverseConstraintProto)
5337 }
5338 
5339 void InverseConstraintProto::SharedCtor() {
5340 }
5341 
5342 InverseConstraintProto::~InverseConstraintProto() {
5343  // @@protoc_insertion_point(destructor:operations_research.sat.InverseConstraintProto)
5344  SharedDtor();
5345  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5346 }
5347 
5348 void InverseConstraintProto::SharedDtor() {
5349  GOOGLE_DCHECK(GetArena() == nullptr);
5350 }
5351 
5352 void InverseConstraintProto::ArenaDtor(void* object) {
5353  InverseConstraintProto* _this = reinterpret_cast< InverseConstraintProto* >(object);
5354  (void)_this;
5355 }
5356 void InverseConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5357 }
5358 void InverseConstraintProto::SetCachedSize(int size) const {
5359  _cached_size_.Set(size);
5360 }
5361 
5362 void InverseConstraintProto::Clear() {
5363 // @@protoc_insertion_point(message_clear_start:operations_research.sat.InverseConstraintProto)
5364  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5365  // Prevent compiler warnings about cached_has_bits being unused
5366  (void) cached_has_bits;
5367 
5368  f_direct_.Clear();
5369  f_inverse_.Clear();
5370  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5371 }
5372 
5373 const char* InverseConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5374 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5375  while (!ctx->Done(&ptr)) {
5376  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
5377  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5378  CHK_(ptr);
5379  switch (tag >> 3) {
5380  // repeated int32 f_direct = 1;
5381  case 1:
5382  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
5383  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_f_direct(), ptr, ctx);
5384  CHK_(ptr);
5385  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
5386  _internal_add_f_direct(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5387  CHK_(ptr);
5388  } else goto handle_unusual;
5389  continue;
5390  // repeated int32 f_inverse = 2;
5391  case 2:
5392  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
5393  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_f_inverse(), ptr, ctx);
5394  CHK_(ptr);
5395  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
5396  _internal_add_f_inverse(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5397  CHK_(ptr);
5398  } else goto handle_unusual;
5399  continue;
5400  default: {
5401  handle_unusual:
5402  if ((tag & 7) == 4 || tag == 0) {
5403  ctx->SetLastTag(tag);
5404  goto success;
5405  }
5406  ptr = UnknownFieldParse(tag,
5407  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5408  ptr, ctx);
5409  CHK_(ptr != nullptr);
5410  continue;
5411  }
5412  } // switch
5413  } // while
5414 success:
5415  return ptr;
5416 failure:
5417  ptr = nullptr;
5418  goto success;
5419 #undef CHK_
5420 }
5421 
5422 ::PROTOBUF_NAMESPACE_ID::uint8* InverseConstraintProto::_InternalSerialize(
5423  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5424  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.InverseConstraintProto)
5425  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5426  (void) cached_has_bits;
5427 
5428  // repeated int32 f_direct = 1;
5429  {
5430  int byte_size = _f_direct_cached_byte_size_.load(std::memory_order_relaxed);
5431  if (byte_size > 0) {
5432  target = stream->WriteInt32Packed(
5433  1, _internal_f_direct(), byte_size, target);
5434  }
5435  }
5436 
5437  // repeated int32 f_inverse = 2;
5438  {
5439  int byte_size = _f_inverse_cached_byte_size_.load(std::memory_order_relaxed);
5440  if (byte_size > 0) {
5441  target = stream->WriteInt32Packed(
5442  2, _internal_f_inverse(), byte_size, target);
5443  }
5444  }
5445 
5446  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5447  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5448  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5449  }
5450  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.InverseConstraintProto)
5451  return target;
5452 }
5453 
5454 size_t InverseConstraintProto::ByteSizeLong() const {
5455 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.InverseConstraintProto)
5456  size_t total_size = 0;
5457 
5458  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5459  // Prevent compiler warnings about cached_has_bits being unused
5460  (void) cached_has_bits;
5461 
5462  // repeated int32 f_direct = 1;
5463  {
5464  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5465  Int32Size(this->f_direct_);
5466  if (data_size > 0) {
5467  total_size += 1 +
5468  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5469  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5470  }
5471  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5472  _f_direct_cached_byte_size_.store(cached_size,
5473  std::memory_order_relaxed);
5474  total_size += data_size;
5475  }
5476 
5477  // repeated int32 f_inverse = 2;
5478  {
5479  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5480  Int32Size(this->f_inverse_);
5481  if (data_size > 0) {
5482  total_size += 1 +
5483  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5484  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5485  }
5486  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5487  _f_inverse_cached_byte_size_.store(cached_size,
5488  std::memory_order_relaxed);
5489  total_size += data_size;
5490  }
5491 
5492  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5493  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5494  _internal_metadata_, total_size, &_cached_size_);
5495  }
5496  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5497  SetCachedSize(cached_size);
5498  return total_size;
5499 }
5500 
5501 void InverseConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5502 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.InverseConstraintProto)
5503  GOOGLE_DCHECK_NE(&from, this);
5504  const InverseConstraintProto* source =
5505  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<InverseConstraintProto>(
5506  &from);
5507  if (source == nullptr) {
5508  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.InverseConstraintProto)
5509  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
5510  } else {
5511  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.InverseConstraintProto)
5512  MergeFrom(*source);
5513  }
5514 }
5515 
5516 void InverseConstraintProto::MergeFrom(const InverseConstraintProto& from) {
5517 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.InverseConstraintProto)
5518  GOOGLE_DCHECK_NE(&from, this);
5519  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5520  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5521  (void) cached_has_bits;
5522 
5523  f_direct_.MergeFrom(from.f_direct_);
5524  f_inverse_.MergeFrom(from.f_inverse_);
5525 }
5526 
5527 void InverseConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5528 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.InverseConstraintProto)
5529  if (&from == this) return;
5530  Clear();
5531  MergeFrom(from);
5532 }
5533 
5534 void InverseConstraintProto::CopyFrom(const InverseConstraintProto& from) {
5535 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.InverseConstraintProto)
5536  if (&from == this) return;
5537  Clear();
5538  MergeFrom(from);
5539 }
5540 
5541 bool InverseConstraintProto::IsInitialized() const {
5542  return true;
5543 }
5544 
5545 void InverseConstraintProto::InternalSwap(InverseConstraintProto* other) {
5546  using std::swap;
5547  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5548  f_direct_.InternalSwap(&other->f_direct_);
5549  f_inverse_.InternalSwap(&other->f_inverse_);
5550 }
5551 
5552 ::PROTOBUF_NAMESPACE_ID::Metadata InverseConstraintProto::GetMetadata() const {
5553  return GetMetadataStatic();
5554 }
5555 
5556 
5557 // ===================================================================
5558 
5560  public:
5561 };
5562 
5563 AutomatonConstraintProto::AutomatonConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
5564  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
5565  final_states_(arena),
5566  transition_tail_(arena),
5567  transition_head_(arena),
5568  transition_label_(arena),
5569  vars_(arena) {
5570  SharedCtor();
5571  RegisterArenaDtor(arena);
5572  // @@protoc_insertion_point(arena_constructor:operations_research.sat.AutomatonConstraintProto)
5573 }
5574 AutomatonConstraintProto::AutomatonConstraintProto(const AutomatonConstraintProto& from)
5575  : ::PROTOBUF_NAMESPACE_ID::Message(),
5576  final_states_(from.final_states_),
5577  transition_tail_(from.transition_tail_),
5578  transition_head_(from.transition_head_),
5579  transition_label_(from.transition_label_),
5580  vars_(from.vars_) {
5581  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5582  starting_state_ = from.starting_state_;
5583  // @@protoc_insertion_point(copy_constructor:operations_research.sat.AutomatonConstraintProto)
5584 }
5585 
5586 void AutomatonConstraintProto::SharedCtor() {
5587 starting_state_ = PROTOBUF_LONGLONG(0);
5588 }
5589 
5590 AutomatonConstraintProto::~AutomatonConstraintProto() {
5591  // @@protoc_insertion_point(destructor:operations_research.sat.AutomatonConstraintProto)
5592  SharedDtor();
5593  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5594 }
5595 
5596 void AutomatonConstraintProto::SharedDtor() {
5597  GOOGLE_DCHECK(GetArena() == nullptr);
5598 }
5599 
5600 void AutomatonConstraintProto::ArenaDtor(void* object) {
5601  AutomatonConstraintProto* _this = reinterpret_cast< AutomatonConstraintProto* >(object);
5602  (void)_this;
5603 }
5604 void AutomatonConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5605 }
5606 void AutomatonConstraintProto::SetCachedSize(int size) const {
5607  _cached_size_.Set(size);
5608 }
5609 
5610 void AutomatonConstraintProto::Clear() {
5611 // @@protoc_insertion_point(message_clear_start:operations_research.sat.AutomatonConstraintProto)
5612  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5613  // Prevent compiler warnings about cached_has_bits being unused
5614  (void) cached_has_bits;
5615 
5616  final_states_.Clear();
5617  transition_tail_.Clear();
5618  transition_head_.Clear();
5619  transition_label_.Clear();
5620  vars_.Clear();
5621  starting_state_ = PROTOBUF_LONGLONG(0);
5622  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5623 }
5624 
5625 const char* AutomatonConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5626 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5627  while (!ctx->Done(&ptr)) {
5628  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
5629  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5630  CHK_(ptr);
5631  switch (tag >> 3) {
5632  // int64 starting_state = 2;
5633  case 2:
5634  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
5635  starting_state_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
5636  CHK_(ptr);
5637  } else goto handle_unusual;
5638  continue;
5639  // repeated int64 final_states = 3;
5640  case 3:
5641  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
5642  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_final_states(), ptr, ctx);
5643  CHK_(ptr);
5644  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
5645  _internal_add_final_states(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5646  CHK_(ptr);
5647  } else goto handle_unusual;
5648  continue;
5649  // repeated int64 transition_tail = 4;
5650  case 4:
5651  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
5652  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_tail(), ptr, ctx);
5653  CHK_(ptr);
5654  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
5655  _internal_add_transition_tail(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5656  CHK_(ptr);
5657  } else goto handle_unusual;
5658  continue;
5659  // repeated int64 transition_head = 5;
5660  case 5:
5661  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
5662  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_head(), ptr, ctx);
5663  CHK_(ptr);
5664  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
5665  _internal_add_transition_head(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5666  CHK_(ptr);
5667  } else goto handle_unusual;
5668  continue;
5669  // repeated int64 transition_label = 6;
5670  case 6:
5671  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
5672  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_label(), ptr, ctx);
5673  CHK_(ptr);
5674  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48) {
5675  _internal_add_transition_label(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5676  CHK_(ptr);
5677  } else goto handle_unusual;
5678  continue;
5679  // repeated int32 vars = 7;
5680  case 7:
5681  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
5682  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
5683  CHK_(ptr);
5684  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56) {
5685  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5686  CHK_(ptr);
5687  } else goto handle_unusual;
5688  continue;
5689  default: {
5690  handle_unusual:
5691  if ((tag & 7) == 4 || tag == 0) {
5692  ctx->SetLastTag(tag);
5693  goto success;
5694  }
5695  ptr = UnknownFieldParse(tag,
5696  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5697  ptr, ctx);
5698  CHK_(ptr != nullptr);
5699  continue;
5700  }
5701  } // switch
5702  } // while
5703 success:
5704  return ptr;
5705 failure:
5706  ptr = nullptr;
5707  goto success;
5708 #undef CHK_
5709 }
5710 
5711 ::PROTOBUF_NAMESPACE_ID::uint8* AutomatonConstraintProto::_InternalSerialize(
5712  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5713  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.AutomatonConstraintProto)
5714  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5715  (void) cached_has_bits;
5716 
5717  // int64 starting_state = 2;
5718  if (this->starting_state() != 0) {
5719  target = stream->EnsureSpace(target);
5720  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_starting_state(), target);
5721  }
5722 
5723  // repeated int64 final_states = 3;
5724  {
5725  int byte_size = _final_states_cached_byte_size_.load(std::memory_order_relaxed);
5726  if (byte_size > 0) {
5727  target = stream->WriteInt64Packed(
5728  3, _internal_final_states(), byte_size, target);
5729  }
5730  }
5731 
5732  // repeated int64 transition_tail = 4;
5733  {
5734  int byte_size = _transition_tail_cached_byte_size_.load(std::memory_order_relaxed);
5735  if (byte_size > 0) {
5736  target = stream->WriteInt64Packed(
5737  4, _internal_transition_tail(), byte_size, target);
5738  }
5739  }
5740 
5741  // repeated int64 transition_head = 5;
5742  {
5743  int byte_size = _transition_head_cached_byte_size_.load(std::memory_order_relaxed);
5744  if (byte_size > 0) {
5745  target = stream->WriteInt64Packed(
5746  5, _internal_transition_head(), byte_size, target);
5747  }
5748  }
5749 
5750  // repeated int64 transition_label = 6;
5751  {
5752  int byte_size = _transition_label_cached_byte_size_.load(std::memory_order_relaxed);
5753  if (byte_size > 0) {
5754  target = stream->WriteInt64Packed(
5755  6, _internal_transition_label(), byte_size, target);
5756  }
5757  }
5758 
5759  // repeated int32 vars = 7;
5760  {
5761  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
5762  if (byte_size > 0) {
5763  target = stream->WriteInt32Packed(
5764  7, _internal_vars(), byte_size, target);
5765  }
5766  }
5767 
5768  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5769  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5770  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5771  }
5772  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.AutomatonConstraintProto)
5773  return target;
5774 }
5775 
5776 size_t AutomatonConstraintProto::ByteSizeLong() const {
5777 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.AutomatonConstraintProto)
5778  size_t total_size = 0;
5779 
5780  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5781  // Prevent compiler warnings about cached_has_bits being unused
5782  (void) cached_has_bits;
5783 
5784  // repeated int64 final_states = 3;
5785  {
5786  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5787  Int64Size(this->final_states_);
5788  if (data_size > 0) {
5789  total_size += 1 +
5790  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5791  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5792  }
5793  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5794  _final_states_cached_byte_size_.store(cached_size,
5795  std::memory_order_relaxed);
5796  total_size += data_size;
5797  }
5798 
5799  // repeated int64 transition_tail = 4;
5800  {
5801  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5802  Int64Size(this->transition_tail_);
5803  if (data_size > 0) {
5804  total_size += 1 +
5805  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5806  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5807  }
5808  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5809  _transition_tail_cached_byte_size_.store(cached_size,
5810  std::memory_order_relaxed);
5811  total_size += data_size;
5812  }
5813 
5814  // repeated int64 transition_head = 5;
5815  {
5816  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5817  Int64Size(this->transition_head_);
5818  if (data_size > 0) {
5819  total_size += 1 +
5820  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5821  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5822  }
5823  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5824  _transition_head_cached_byte_size_.store(cached_size,
5825  std::memory_order_relaxed);
5826  total_size += data_size;
5827  }
5828 
5829  // repeated int64 transition_label = 6;
5830  {
5831  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5832  Int64Size(this->transition_label_);
5833  if (data_size > 0) {
5834  total_size += 1 +
5835  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5836  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5837  }
5838  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5839  _transition_label_cached_byte_size_.store(cached_size,
5840  std::memory_order_relaxed);
5841  total_size += data_size;
5842  }
5843 
5844  // repeated int32 vars = 7;
5845  {
5846  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5847  Int32Size(this->vars_);
5848  if (data_size > 0) {
5849  total_size += 1 +
5850  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5851  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5852  }
5853  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5854  _vars_cached_byte_size_.store(cached_size,
5855  std::memory_order_relaxed);
5856  total_size += data_size;
5857  }
5858 
5859  // int64 starting_state = 2;
5860  if (this->starting_state() != 0) {
5861  total_size += 1 +
5862  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
5863  this->_internal_starting_state());
5864  }
5865 
5866  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5867  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5868  _internal_metadata_, total_size, &_cached_size_);
5869  }
5870  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5871  SetCachedSize(cached_size);
5872  return total_size;
5873 }
5874 
5875 void AutomatonConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5876 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.AutomatonConstraintProto)
5877  GOOGLE_DCHECK_NE(&from, this);
5878  const AutomatonConstraintProto* source =
5879  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AutomatonConstraintProto>(
5880  &from);
5881  if (source == nullptr) {
5882  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.AutomatonConstraintProto)
5883  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
5884  } else {
5885  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.AutomatonConstraintProto)
5886  MergeFrom(*source);
5887  }
5888 }
5889 
5890 void AutomatonConstraintProto::MergeFrom(const AutomatonConstraintProto& from) {
5891 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.AutomatonConstraintProto)
5892  GOOGLE_DCHECK_NE(&from, this);
5893  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5894  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5895  (void) cached_has_bits;
5896 
5897  final_states_.MergeFrom(from.final_states_);
5898  transition_tail_.MergeFrom(from.transition_tail_);
5899  transition_head_.MergeFrom(from.transition_head_);
5900  transition_label_.MergeFrom(from.transition_label_);
5901  vars_.MergeFrom(from.vars_);
5902  if (from.starting_state() != 0) {
5903  _internal_set_starting_state(from._internal_starting_state());
5904  }
5905 }
5906 
5907 void AutomatonConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5908 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.AutomatonConstraintProto)
5909  if (&from == this) return;
5910  Clear();
5911  MergeFrom(from);
5912 }
5913 
5914 void AutomatonConstraintProto::CopyFrom(const AutomatonConstraintProto& from) {
5915 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.AutomatonConstraintProto)
5916  if (&from == this) return;
5917  Clear();
5918  MergeFrom(from);
5919 }
5920 
5921 bool AutomatonConstraintProto::IsInitialized() const {
5922  return true;
5923 }
5924 
5925 void AutomatonConstraintProto::InternalSwap(AutomatonConstraintProto* other) {
5926  using std::swap;
5927  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5928  final_states_.InternalSwap(&other->final_states_);
5929  transition_tail_.InternalSwap(&other->transition_tail_);
5930  transition_head_.InternalSwap(&other->transition_head_);
5931  transition_label_.InternalSwap(&other->transition_label_);
5932  vars_.InternalSwap(&other->vars_);
5933  swap(starting_state_, other->starting_state_);
5934 }
5935 
5936 ::PROTOBUF_NAMESPACE_ID::Metadata AutomatonConstraintProto::GetMetadata() const {
5937  return GetMetadataStatic();
5938 }
5939 
5940 
5941 // ===================================================================
5942 
5944  public:
5945  static const ::operations_research::sat::BoolArgumentProto& bool_or(const ConstraintProto* msg);
5946  static const ::operations_research::sat::BoolArgumentProto& bool_and(const ConstraintProto* msg);
5947  static const ::operations_research::sat::BoolArgumentProto& at_most_one(const ConstraintProto* msg);
5948  static const ::operations_research::sat::BoolArgumentProto& exactly_one(const ConstraintProto* msg);
5949  static const ::operations_research::sat::BoolArgumentProto& bool_xor(const ConstraintProto* msg);
5950  static const ::operations_research::sat::IntegerArgumentProto& int_div(const ConstraintProto* msg);
5951  static const ::operations_research::sat::IntegerArgumentProto& int_mod(const ConstraintProto* msg);
5952  static const ::operations_research::sat::IntegerArgumentProto& int_max(const ConstraintProto* msg);
5953  static const ::operations_research::sat::LinearArgumentProto& lin_max(const ConstraintProto* msg);
5954  static const ::operations_research::sat::IntegerArgumentProto& int_min(const ConstraintProto* msg);
5955  static const ::operations_research::sat::LinearArgumentProto& lin_min(const ConstraintProto* msg);
5956  static const ::operations_research::sat::IntegerArgumentProto& int_prod(const ConstraintProto* msg);
5957  static const ::operations_research::sat::LinearConstraintProto& linear(const ConstraintProto* msg);
5958  static const ::operations_research::sat::AllDifferentConstraintProto& all_diff(const ConstraintProto* msg);
5959  static const ::operations_research::sat::ElementConstraintProto& element(const ConstraintProto* msg);
5960  static const ::operations_research::sat::CircuitConstraintProto& circuit(const ConstraintProto* msg);
5961  static const ::operations_research::sat::RoutesConstraintProto& routes(const ConstraintProto* msg);
5962  static const ::operations_research::sat::TableConstraintProto& table(const ConstraintProto* msg);
5963  static const ::operations_research::sat::AutomatonConstraintProto& automaton(const ConstraintProto* msg);
5964  static const ::operations_research::sat::InverseConstraintProto& inverse(const ConstraintProto* msg);
5965  static const ::operations_research::sat::ReservoirConstraintProto& reservoir(const ConstraintProto* msg);
5966  static const ::operations_research::sat::IntervalConstraintProto& interval(const ConstraintProto* msg);
5967  static const ::operations_research::sat::NoOverlapConstraintProto& no_overlap(const ConstraintProto* msg);
5968  static const ::operations_research::sat::NoOverlap2DConstraintProto& no_overlap_2d(const ConstraintProto* msg);
5969  static const ::operations_research::sat::CumulativeConstraintProto& cumulative(const ConstraintProto* msg);
5970 };
5971 
5972 const ::operations_research::sat::BoolArgumentProto&
5973 ConstraintProto::_Internal::bool_or(const ConstraintProto* msg) {
5974  return *msg->constraint_.bool_or_;
5975 }
5976 const ::operations_research::sat::BoolArgumentProto&
5977 ConstraintProto::_Internal::bool_and(const ConstraintProto* msg) {
5978  return *msg->constraint_.bool_and_;
5979 }
5980 const ::operations_research::sat::BoolArgumentProto&
5981 ConstraintProto::_Internal::at_most_one(const ConstraintProto* msg) {
5982  return *msg->constraint_.at_most_one_;
5983 }
5984 const ::operations_research::sat::BoolArgumentProto&
5985 ConstraintProto::_Internal::exactly_one(const ConstraintProto* msg) {
5986  return *msg->constraint_.exactly_one_;
5987 }
5988 const ::operations_research::sat::BoolArgumentProto&
5989 ConstraintProto::_Internal::bool_xor(const ConstraintProto* msg) {
5990  return *msg->constraint_.bool_xor_;
5991 }
5992 const ::operations_research::sat::IntegerArgumentProto&
5993 ConstraintProto::_Internal::int_div(const ConstraintProto* msg) {
5994  return *msg->constraint_.int_div_;
5995 }
5996 const ::operations_research::sat::IntegerArgumentProto&
5997 ConstraintProto::_Internal::int_mod(const ConstraintProto* msg) {
5998  return *msg->constraint_.int_mod_;
5999 }
6000 const ::operations_research::sat::IntegerArgumentProto&
6001 ConstraintProto::_Internal::int_max(const ConstraintProto* msg) {
6002  return *msg->constraint_.int_max_;
6003 }
6004 const ::operations_research::sat::LinearArgumentProto&
6005 ConstraintProto::_Internal::lin_max(const ConstraintProto* msg) {
6006  return *msg->constraint_.lin_max_;
6007 }
6008 const ::operations_research::sat::IntegerArgumentProto&
6009 ConstraintProto::_Internal::int_min(const ConstraintProto* msg) {
6010  return *msg->constraint_.int_min_;
6011 }
6012 const ::operations_research::sat::LinearArgumentProto&
6013 ConstraintProto::_Internal::lin_min(const ConstraintProto* msg) {
6014  return *msg->constraint_.lin_min_;
6015 }
6016 const ::operations_research::sat::IntegerArgumentProto&
6017 ConstraintProto::_Internal::int_prod(const ConstraintProto* msg) {
6018  return *msg->constraint_.int_prod_;
6019 }
6020 const ::operations_research::sat::LinearConstraintProto&
6021 ConstraintProto::_Internal::linear(const ConstraintProto* msg) {
6022  return *msg->constraint_.linear_;
6023 }
6024 const ::operations_research::sat::AllDifferentConstraintProto&
6025 ConstraintProto::_Internal::all_diff(const ConstraintProto* msg) {
6026  return *msg->constraint_.all_diff_;
6027 }
6028 const ::operations_research::sat::ElementConstraintProto&
6029 ConstraintProto::_Internal::element(const ConstraintProto* msg) {
6030  return *msg->constraint_.element_;
6031 }
6032 const ::operations_research::sat::CircuitConstraintProto&
6033 ConstraintProto::_Internal::circuit(const ConstraintProto* msg) {
6034  return *msg->constraint_.circuit_;
6035 }
6036 const ::operations_research::sat::RoutesConstraintProto&
6037 ConstraintProto::_Internal::routes(const ConstraintProto* msg) {
6038  return *msg->constraint_.routes_;
6039 }
6040 const ::operations_research::sat::TableConstraintProto&
6041 ConstraintProto::_Internal::table(const ConstraintProto* msg) {
6042  return *msg->constraint_.table_;
6043 }
6044 const ::operations_research::sat::AutomatonConstraintProto&
6045 ConstraintProto::_Internal::automaton(const ConstraintProto* msg) {
6046  return *msg->constraint_.automaton_;
6047 }
6048 const ::operations_research::sat::InverseConstraintProto&
6049 ConstraintProto::_Internal::inverse(const ConstraintProto* msg) {
6050  return *msg->constraint_.inverse_;
6051 }
6052 const ::operations_research::sat::ReservoirConstraintProto&
6053 ConstraintProto::_Internal::reservoir(const ConstraintProto* msg) {
6054  return *msg->constraint_.reservoir_;
6055 }
6056 const ::operations_research::sat::IntervalConstraintProto&
6057 ConstraintProto::_Internal::interval(const ConstraintProto* msg) {
6058  return *msg->constraint_.interval_;
6059 }
6060 const ::operations_research::sat::NoOverlapConstraintProto&
6061 ConstraintProto::_Internal::no_overlap(const ConstraintProto* msg) {
6062  return *msg->constraint_.no_overlap_;
6063 }
6064 const ::operations_research::sat::NoOverlap2DConstraintProto&
6065 ConstraintProto::_Internal::no_overlap_2d(const ConstraintProto* msg) {
6066  return *msg->constraint_.no_overlap_2d_;
6067 }
6068 const ::operations_research::sat::CumulativeConstraintProto&
6069 ConstraintProto::_Internal::cumulative(const ConstraintProto* msg) {
6070  return *msg->constraint_.cumulative_;
6071 }
6072 void ConstraintProto::set_allocated_bool_or(::operations_research::sat::BoolArgumentProto* bool_or) {
6073  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6074  clear_constraint();
6075  if (bool_or) {
6076  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6077  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(bool_or);
6078  if (message_arena != submessage_arena) {
6079  bool_or = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6080  message_arena, bool_or, submessage_arena);
6081  }
6082  set_has_bool_or();
6083  constraint_.bool_or_ = bool_or;
6084  }
6085  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_or)
6086 }
6087 void ConstraintProto::set_allocated_bool_and(::operations_research::sat::BoolArgumentProto* bool_and) {
6088  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6089  clear_constraint();
6090  if (bool_and) {
6091  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6092  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(bool_and);
6093  if (message_arena != submessage_arena) {
6094  bool_and = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6095  message_arena, bool_and, submessage_arena);
6096  }
6097  set_has_bool_and();
6098  constraint_.bool_and_ = bool_and;
6099  }
6100  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_and)
6101 }
6102 void ConstraintProto::set_allocated_at_most_one(::operations_research::sat::BoolArgumentProto* at_most_one) {
6103  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6104  clear_constraint();
6105  if (at_most_one) {
6106  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6107  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(at_most_one);
6108  if (message_arena != submessage_arena) {
6109  at_most_one = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6110  message_arena, at_most_one, submessage_arena);
6111  }
6112  set_has_at_most_one();
6113  constraint_.at_most_one_ = at_most_one;
6114  }
6115  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.at_most_one)
6116 }
6117 void ConstraintProto::set_allocated_exactly_one(::operations_research::sat::BoolArgumentProto* exactly_one) {
6118  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6119  clear_constraint();
6120  if (exactly_one) {
6121  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6122  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(exactly_one);
6123  if (message_arena != submessage_arena) {
6124  exactly_one = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6125  message_arena, exactly_one, submessage_arena);
6126  }
6127  set_has_exactly_one();
6128  constraint_.exactly_one_ = exactly_one;
6129  }
6130  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.exactly_one)
6131 }
6132 void ConstraintProto::set_allocated_bool_xor(::operations_research::sat::BoolArgumentProto* bool_xor) {
6133  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6134  clear_constraint();
6135  if (bool_xor) {
6136  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6137  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(bool_xor);
6138  if (message_arena != submessage_arena) {
6139  bool_xor = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6140  message_arena, bool_xor, submessage_arena);
6141  }
6142  set_has_bool_xor();
6143  constraint_.bool_xor_ = bool_xor;
6144  }
6145  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_xor)
6146 }
6147 void ConstraintProto::set_allocated_int_div(::operations_research::sat::IntegerArgumentProto* int_div) {
6148  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6149  clear_constraint();
6150  if (int_div) {
6151  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6152  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_div);
6153  if (message_arena != submessage_arena) {
6154  int_div = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6155  message_arena, int_div, submessage_arena);
6156  }
6157  set_has_int_div();
6158  constraint_.int_div_ = int_div;
6159  }
6160  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_div)
6161 }
6162 void ConstraintProto::set_allocated_int_mod(::operations_research::sat::IntegerArgumentProto* int_mod) {
6163  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6164  clear_constraint();
6165  if (int_mod) {
6166  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6167  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_mod);
6168  if (message_arena != submessage_arena) {
6169  int_mod = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6170  message_arena, int_mod, submessage_arena);
6171  }
6172  set_has_int_mod();
6173  constraint_.int_mod_ = int_mod;
6174  }
6175  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_mod)
6176 }
6177 void ConstraintProto::set_allocated_int_max(::operations_research::sat::IntegerArgumentProto* int_max) {
6178  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6179  clear_constraint();
6180  if (int_max) {
6181  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6182  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_max);
6183  if (message_arena != submessage_arena) {
6184  int_max = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6185  message_arena, int_max, submessage_arena);
6186  }
6187  set_has_int_max();
6188  constraint_.int_max_ = int_max;
6189  }
6190  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_max)
6191 }
6192 void ConstraintProto::set_allocated_lin_max(::operations_research::sat::LinearArgumentProto* lin_max) {
6193  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6194  clear_constraint();
6195  if (lin_max) {
6196  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6197  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(lin_max);
6198  if (message_arena != submessage_arena) {
6199  lin_max = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6200  message_arena, lin_max, submessage_arena);
6201  }
6202  set_has_lin_max();
6203  constraint_.lin_max_ = lin_max;
6204  }
6205  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.lin_max)
6206 }
6207 void ConstraintProto::set_allocated_int_min(::operations_research::sat::IntegerArgumentProto* int_min) {
6208  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6209  clear_constraint();
6210  if (int_min) {
6211  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6212  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_min);
6213  if (message_arena != submessage_arena) {
6214  int_min = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6215  message_arena, int_min, submessage_arena);
6216  }
6217  set_has_int_min();
6218  constraint_.int_min_ = int_min;
6219  }
6220  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_min)
6221 }
6222 void ConstraintProto::set_allocated_lin_min(::operations_research::sat::LinearArgumentProto* lin_min) {
6223  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6224  clear_constraint();
6225  if (lin_min) {
6226  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6227  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(lin_min);
6228  if (message_arena != submessage_arena) {
6229  lin_min = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6230  message_arena, lin_min, submessage_arena);
6231  }
6232  set_has_lin_min();
6233  constraint_.lin_min_ = lin_min;
6234  }
6235  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.lin_min)
6236 }
6237 void ConstraintProto::set_allocated_int_prod(::operations_research::sat::IntegerArgumentProto* int_prod) {
6238  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6239  clear_constraint();
6240  if (int_prod) {
6241  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6242  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_prod);
6243  if (message_arena != submessage_arena) {
6244  int_prod = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6245  message_arena, int_prod, submessage_arena);
6246  }
6247  set_has_int_prod();
6248  constraint_.int_prod_ = int_prod;
6249  }
6250  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_prod)
6251 }
6252 void ConstraintProto::set_allocated_linear(::operations_research::sat::LinearConstraintProto* linear) {
6253  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6254  clear_constraint();
6255  if (linear) {
6256  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6257  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(linear);
6258  if (message_arena != submessage_arena) {
6259  linear = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6260  message_arena, linear, submessage_arena);
6261  }
6262  set_has_linear();
6263  constraint_.linear_ = linear;
6264  }
6265  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.linear)
6266 }
6267 void ConstraintProto::set_allocated_all_diff(::operations_research::sat::AllDifferentConstraintProto* all_diff) {
6268  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6269  clear_constraint();
6270  if (all_diff) {
6271  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6272  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(all_diff);
6273  if (message_arena != submessage_arena) {
6274  all_diff = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6275  message_arena, all_diff, submessage_arena);
6276  }
6277  set_has_all_diff();
6278  constraint_.all_diff_ = all_diff;
6279  }
6280  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.all_diff)
6281 }
6282 void ConstraintProto::set_allocated_element(::operations_research::sat::ElementConstraintProto* element) {
6283  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6284  clear_constraint();
6285  if (element) {
6286  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6287  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(element);
6288  if (message_arena != submessage_arena) {
6289  element = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6290  message_arena, element, submessage_arena);
6291  }
6292  set_has_element();
6293  constraint_.element_ = element;
6294  }
6295  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.element)
6296 }
6297 void ConstraintProto::set_allocated_circuit(::operations_research::sat::CircuitConstraintProto* circuit) {
6298  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6299  clear_constraint();
6300  if (circuit) {
6301  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6302  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(circuit);
6303  if (message_arena != submessage_arena) {
6304  circuit = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6305  message_arena, circuit, submessage_arena);
6306  }
6307  set_has_circuit();
6308  constraint_.circuit_ = circuit;
6309  }
6310  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.circuit)
6311 }
6312 void ConstraintProto::set_allocated_routes(::operations_research::sat::RoutesConstraintProto* routes) {
6313  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6314  clear_constraint();
6315  if (routes) {
6316  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6317  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(routes);
6318  if (message_arena != submessage_arena) {
6319  routes = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6320  message_arena, routes, submessage_arena);
6321  }
6322  set_has_routes();
6323  constraint_.routes_ = routes;
6324  }
6325  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.routes)
6326 }
6327 void ConstraintProto::set_allocated_table(::operations_research::sat::TableConstraintProto* table) {
6328  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6329  clear_constraint();
6330  if (table) {
6331  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6332  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(table);
6333  if (message_arena != submessage_arena) {
6334  table = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6335  message_arena, table, submessage_arena);
6336  }
6337  set_has_table();
6338  constraint_.table_ = table;
6339  }
6340  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.table)
6341 }
6342 void ConstraintProto::set_allocated_automaton(::operations_research::sat::AutomatonConstraintProto* automaton) {
6343  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6344  clear_constraint();
6345  if (automaton) {
6346  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6347  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(automaton);
6348  if (message_arena != submessage_arena) {
6349  automaton = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6350  message_arena, automaton, submessage_arena);
6351  }
6352  set_has_automaton();
6353  constraint_.automaton_ = automaton;
6354  }
6355  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.automaton)
6356 }
6357 void ConstraintProto::set_allocated_inverse(::operations_research::sat::InverseConstraintProto* inverse) {
6358  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6359  clear_constraint();
6360  if (inverse) {
6361  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6362  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(inverse);
6363  if (message_arena != submessage_arena) {
6364  inverse = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6365  message_arena, inverse, submessage_arena);
6366  }
6367  set_has_inverse();
6368  constraint_.inverse_ = inverse;
6369  }
6370  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.inverse)
6371 }
6372 void ConstraintProto::set_allocated_reservoir(::operations_research::sat::ReservoirConstraintProto* reservoir) {
6373  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6374  clear_constraint();
6375  if (reservoir) {
6376  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6377  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(reservoir);
6378  if (message_arena != submessage_arena) {
6379  reservoir = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6380  message_arena, reservoir, submessage_arena);
6381  }
6382  set_has_reservoir();
6383  constraint_.reservoir_ = reservoir;
6384  }
6385  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.reservoir)
6386 }
6387 void ConstraintProto::set_allocated_interval(::operations_research::sat::IntervalConstraintProto* interval) {
6388  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6389  clear_constraint();
6390  if (interval) {
6391  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6392  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(interval);
6393  if (message_arena != submessage_arena) {
6394  interval = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6395  message_arena, interval, submessage_arena);
6396  }
6397  set_has_interval();
6398  constraint_.interval_ = interval;
6399  }
6400  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.interval)
6401 }
6402 void ConstraintProto::set_allocated_no_overlap(::operations_research::sat::NoOverlapConstraintProto* no_overlap) {
6403  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6404  clear_constraint();
6405  if (no_overlap) {
6406  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6407  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(no_overlap);
6408  if (message_arena != submessage_arena) {
6409  no_overlap = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6410  message_arena, no_overlap, submessage_arena);
6411  }
6412  set_has_no_overlap();
6413  constraint_.no_overlap_ = no_overlap;
6414  }
6415  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.no_overlap)
6416 }
6417 void ConstraintProto::set_allocated_no_overlap_2d(::operations_research::sat::NoOverlap2DConstraintProto* no_overlap_2d) {
6418  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6419  clear_constraint();
6420  if (no_overlap_2d) {
6421  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6422  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(no_overlap_2d);
6423  if (message_arena != submessage_arena) {
6424  no_overlap_2d = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6425  message_arena, no_overlap_2d, submessage_arena);
6426  }
6427  set_has_no_overlap_2d();
6428  constraint_.no_overlap_2d_ = no_overlap_2d;
6429  }
6430  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.no_overlap_2d)
6431 }
6432 void ConstraintProto::set_allocated_cumulative(::operations_research::sat::CumulativeConstraintProto* cumulative) {
6433  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6434  clear_constraint();
6435  if (cumulative) {
6436  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6437  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(cumulative);
6438  if (message_arena != submessage_arena) {
6439  cumulative = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6440  message_arena, cumulative, submessage_arena);
6441  }
6442  set_has_cumulative();
6443  constraint_.cumulative_ = cumulative;
6444  }
6445  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.cumulative)
6446 }
6447 ConstraintProto::ConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
6448  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
6449  enforcement_literal_(arena) {
6450  SharedCtor();
6451  RegisterArenaDtor(arena);
6452  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ConstraintProto)
6453 }
6454 ConstraintProto::ConstraintProto(const ConstraintProto& from)
6455  : ::PROTOBUF_NAMESPACE_ID::Message(),
6456  enforcement_literal_(from.enforcement_literal_) {
6457  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
6458  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6459  if (!from._internal_name().empty()) {
6460  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
6461  GetArena());
6462  }
6463  clear_has_constraint();
6464  switch (from.constraint_case()) {
6465  case kBoolOr: {
6466  _internal_mutable_bool_or()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_or());
6467  break;
6468  }
6469  case kBoolAnd: {
6470  _internal_mutable_bool_and()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_and());
6471  break;
6472  }
6473  case kAtMostOne: {
6474  _internal_mutable_at_most_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_at_most_one());
6475  break;
6476  }
6477  case kExactlyOne: {
6478  _internal_mutable_exactly_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_exactly_one());
6479  break;
6480  }
6481  case kBoolXor: {
6482  _internal_mutable_bool_xor()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_xor());
6483  break;
6484  }
6485  case kIntDiv: {
6486  _internal_mutable_int_div()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_div());
6487  break;
6488  }
6489  case kIntMod: {
6490  _internal_mutable_int_mod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_mod());
6491  break;
6492  }
6493  case kIntMax: {
6494  _internal_mutable_int_max()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_max());
6495  break;
6496  }
6497  case kLinMax: {
6498  _internal_mutable_lin_max()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_max());
6499  break;
6500  }
6501  case kIntMin: {
6502  _internal_mutable_int_min()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_min());
6503  break;
6504  }
6505  case kLinMin: {
6506  _internal_mutable_lin_min()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_min());
6507  break;
6508  }
6509  case kIntProd: {
6510  _internal_mutable_int_prod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_prod());
6511  break;
6512  }
6513  case kLinear: {
6514  _internal_mutable_linear()->::operations_research::sat::LinearConstraintProto::MergeFrom(from._internal_linear());
6515  break;
6516  }
6517  case kAllDiff: {
6518  _internal_mutable_all_diff()->::operations_research::sat::AllDifferentConstraintProto::MergeFrom(from._internal_all_diff());
6519  break;
6520  }
6521  case kElement: {
6522  _internal_mutable_element()->::operations_research::sat::ElementConstraintProto::MergeFrom(from._internal_element());
6523  break;
6524  }
6525  case kCircuit: {
6526  _internal_mutable_circuit()->::operations_research::sat::CircuitConstraintProto::MergeFrom(from._internal_circuit());
6527  break;
6528  }
6529  case kRoutes: {
6530  _internal_mutable_routes()->::operations_research::sat::RoutesConstraintProto::MergeFrom(from._internal_routes());
6531  break;
6532  }
6533  case kTable: {
6534  _internal_mutable_table()->::operations_research::sat::TableConstraintProto::MergeFrom(from._internal_table());
6535  break;
6536  }
6537  case kAutomaton: {
6538  _internal_mutable_automaton()->::operations_research::sat::AutomatonConstraintProto::MergeFrom(from._internal_automaton());
6539  break;
6540  }
6541  case kInverse: {
6542  _internal_mutable_inverse()->::operations_research::sat::InverseConstraintProto::MergeFrom(from._internal_inverse());
6543  break;
6544  }
6545  case kReservoir: {
6546  _internal_mutable_reservoir()->::operations_research::sat::ReservoirConstraintProto::MergeFrom(from._internal_reservoir());
6547  break;
6548  }
6549  case kInterval: {
6550  _internal_mutable_interval()->::operations_research::sat::IntervalConstraintProto::MergeFrom(from._internal_interval());
6551  break;
6552  }
6553  case kNoOverlap: {
6554  _internal_mutable_no_overlap()->::operations_research::sat::NoOverlapConstraintProto::MergeFrom(from._internal_no_overlap());
6555  break;
6556  }
6557  case kNoOverlap2D: {
6558  _internal_mutable_no_overlap_2d()->::operations_research::sat::NoOverlap2DConstraintProto::MergeFrom(from._internal_no_overlap_2d());
6559  break;
6560  }
6561  case kCumulative: {
6562  _internal_mutable_cumulative()->::operations_research::sat::CumulativeConstraintProto::MergeFrom(from._internal_cumulative());
6563  break;
6564  }
6565  case CONSTRAINT_NOT_SET: {
6566  break;
6567  }
6568  }
6569  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ConstraintProto)
6570 }
6571 
6572 void ConstraintProto::SharedCtor() {
6573 name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6574 clear_has_constraint();
6575 }
6576 
6577 ConstraintProto::~ConstraintProto() {
6578  // @@protoc_insertion_point(destructor:operations_research.sat.ConstraintProto)
6579  SharedDtor();
6580  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
6581 }
6582 
6583 void ConstraintProto::SharedDtor() {
6584  GOOGLE_DCHECK(GetArena() == nullptr);
6585  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6586  if (has_constraint()) {
6587  clear_constraint();
6588  }
6589 }
6590 
6591 void ConstraintProto::ArenaDtor(void* object) {
6592  ConstraintProto* _this = reinterpret_cast< ConstraintProto* >(object);
6593  (void)_this;
6594 }
6595 void ConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
6596 }
6597 void ConstraintProto::SetCachedSize(int size) const {
6598  _cached_size_.Set(size);
6599 }
6600 
6601 void ConstraintProto::clear_constraint() {
6602 // @@protoc_insertion_point(one_of_clear_start:operations_research.sat.ConstraintProto)
6603  switch (constraint_case()) {
6604  case kBoolOr: {
6605  if (GetArena() == nullptr) {
6606  delete constraint_.bool_or_;
6607  }
6608  break;
6609  }
6610  case kBoolAnd: {
6611  if (GetArena() == nullptr) {
6612  delete constraint_.bool_and_;
6613  }
6614  break;
6615  }
6616  case kAtMostOne: {
6617  if (GetArena() == nullptr) {
6618  delete constraint_.at_most_one_;
6619  }
6620  break;
6621  }
6622  case kExactlyOne: {
6623  if (GetArena() == nullptr) {
6624  delete constraint_.exactly_one_;
6625  }
6626  break;
6627  }
6628  case kBoolXor: {
6629  if (GetArena() == nullptr) {
6630  delete constraint_.bool_xor_;
6631  }
6632  break;
6633  }
6634  case kIntDiv: {
6635  if (GetArena() == nullptr) {
6636  delete constraint_.int_div_;
6637  }
6638  break;
6639  }
6640  case kIntMod: {
6641  if (GetArena() == nullptr) {
6642  delete constraint_.int_mod_;
6643  }
6644  break;
6645  }
6646  case kIntMax: {
6647  if (GetArena() == nullptr) {
6648  delete constraint_.int_max_;
6649  }
6650  break;
6651  }
6652  case kLinMax: {
6653  if (GetArena() == nullptr) {
6654  delete constraint_.lin_max_;
6655  }
6656  break;
6657  }
6658  case kIntMin: {
6659  if (GetArena() == nullptr) {
6660  delete constraint_.int_min_;
6661  }
6662  break;
6663  }
6664  case kLinMin: {
6665  if (GetArena() == nullptr) {
6666  delete constraint_.lin_min_;
6667  }
6668  break;
6669  }
6670  case kIntProd: {
6671  if (GetArena() == nullptr) {
6672  delete constraint_.int_prod_;
6673  }
6674  break;
6675  }
6676  case kLinear: {
6677  if (GetArena() == nullptr) {
6678  delete constraint_.linear_;
6679  }
6680  break;
6681  }
6682  case kAllDiff: {
6683  if (GetArena() == nullptr) {
6684  delete constraint_.all_diff_;
6685  }
6686  break;
6687  }
6688  case kElement: {
6689  if (GetArena() == nullptr) {
6690  delete constraint_.element_;
6691  }
6692  break;
6693  }
6694  case kCircuit: {
6695  if (GetArena() == nullptr) {
6696  delete constraint_.circuit_;
6697  }
6698  break;
6699  }
6700  case kRoutes: {
6701  if (GetArena() == nullptr) {
6702  delete constraint_.routes_;
6703  }
6704  break;
6705  }
6706  case kTable: {
6707  if (GetArena() == nullptr) {
6708  delete constraint_.table_;
6709  }
6710  break;
6711  }
6712  case kAutomaton: {
6713  if (GetArena() == nullptr) {
6714  delete constraint_.automaton_;
6715  }
6716  break;
6717  }
6718  case kInverse: {
6719  if (GetArena() == nullptr) {
6720  delete constraint_.inverse_;
6721  }
6722  break;
6723  }
6724  case kReservoir: {
6725  if (GetArena() == nullptr) {
6726  delete constraint_.reservoir_;
6727  }
6728  break;
6729  }
6730  case kInterval: {
6731  if (GetArena() == nullptr) {
6732  delete constraint_.interval_;
6733  }
6734  break;
6735  }
6736  case kNoOverlap: {
6737  if (GetArena() == nullptr) {
6738  delete constraint_.no_overlap_;
6739  }
6740  break;
6741  }
6742  case kNoOverlap2D: {
6743  if (GetArena() == nullptr) {
6744  delete constraint_.no_overlap_2d_;
6745  }
6746  break;
6747  }
6748  case kCumulative: {
6749  if (GetArena() == nullptr) {
6750  delete constraint_.cumulative_;
6751  }
6752  break;
6753  }
6754  case CONSTRAINT_NOT_SET: {
6755  break;
6756  }
6757  }
6758  _oneof_case_[0] = CONSTRAINT_NOT_SET;
6759 }
6760 
6761 
6762 void ConstraintProto::Clear() {
6763 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ConstraintProto)
6764  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
6765  // Prevent compiler warnings about cached_has_bits being unused
6766  (void) cached_has_bits;
6767 
6768  enforcement_literal_.Clear();
6769  name_.ClearToEmpty();
6770  clear_constraint();
6771  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
6772 }
6773 
6774 const char* ConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
6775 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
6776  while (!ctx->Done(&ptr)) {
6777  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
6778  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
6779  CHK_(ptr);
6780  switch (tag >> 3) {
6781  // string name = 1;
6782  case 1:
6783  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
6784  auto str = _internal_mutable_name();
6785  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
6786  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.ConstraintProto.name"));
6787  CHK_(ptr);
6788  } else goto handle_unusual;
6789  continue;
6790  // repeated int32 enforcement_literal = 2;
6791  case 2:
6792  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
6793  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_enforcement_literal(), ptr, ctx);
6794  CHK_(ptr);
6795  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
6796  _internal_add_enforcement_literal(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
6797  CHK_(ptr);
6798  } else goto handle_unusual;
6799  continue;
6800  // .operations_research.sat.BoolArgumentProto bool_or = 3;
6801  case 3:
6802  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
6803  ptr = ctx->ParseMessage(_internal_mutable_bool_or(), ptr);
6804  CHK_(ptr);
6805  } else goto handle_unusual;
6806  continue;
6807  // .operations_research.sat.BoolArgumentProto bool_and = 4;
6808  case 4:
6809  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
6810  ptr = ctx->ParseMessage(_internal_mutable_bool_and(), ptr);
6811  CHK_(ptr);
6812  } else goto handle_unusual;
6813  continue;
6814  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
6815  case 5:
6816  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
6817  ptr = ctx->ParseMessage(_internal_mutable_bool_xor(), ptr);
6818  CHK_(ptr);
6819  } else goto handle_unusual;
6820  continue;
6821  // .operations_research.sat.IntegerArgumentProto int_div = 7;
6822  case 7:
6823  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
6824  ptr = ctx->ParseMessage(_internal_mutable_int_div(), ptr);
6825  CHK_(ptr);
6826  } else goto handle_unusual;
6827  continue;
6828  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
6829  case 8:
6830  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
6831  ptr = ctx->ParseMessage(_internal_mutable_int_mod(), ptr);
6832  CHK_(ptr);
6833  } else goto handle_unusual;
6834  continue;
6835  // .operations_research.sat.IntegerArgumentProto int_max = 9;
6836  case 9:
6837  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
6838  ptr = ctx->ParseMessage(_internal_mutable_int_max(), ptr);
6839  CHK_(ptr);
6840  } else goto handle_unusual;
6841  continue;
6842  // .operations_research.sat.IntegerArgumentProto int_min = 10;
6843  case 10:
6844  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
6845  ptr = ctx->ParseMessage(_internal_mutable_int_min(), ptr);
6846  CHK_(ptr);
6847  } else goto handle_unusual;
6848  continue;
6849  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
6850  case 11:
6851  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
6852  ptr = ctx->ParseMessage(_internal_mutable_int_prod(), ptr);
6853  CHK_(ptr);
6854  } else goto handle_unusual;
6855  continue;
6856  // .operations_research.sat.LinearConstraintProto linear = 12;
6857  case 12:
6858  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
6859  ptr = ctx->ParseMessage(_internal_mutable_linear(), ptr);
6860  CHK_(ptr);
6861  } else goto handle_unusual;
6862  continue;
6863  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
6864  case 13:
6865  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) {
6866  ptr = ctx->ParseMessage(_internal_mutable_all_diff(), ptr);
6867  CHK_(ptr);
6868  } else goto handle_unusual;
6869  continue;
6870  // .operations_research.sat.ElementConstraintProto element = 14;
6871  case 14:
6872  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) {
6873  ptr = ctx->ParseMessage(_internal_mutable_element(), ptr);
6874  CHK_(ptr);
6875  } else goto handle_unusual;
6876  continue;
6877  // .operations_research.sat.CircuitConstraintProto circuit = 15;
6878  case 15:
6879  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
6880  ptr = ctx->ParseMessage(_internal_mutable_circuit(), ptr);
6881  CHK_(ptr);
6882  } else goto handle_unusual;
6883  continue;
6884  // .operations_research.sat.TableConstraintProto table = 16;
6885  case 16:
6886  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
6887  ptr = ctx->ParseMessage(_internal_mutable_table(), ptr);
6888  CHK_(ptr);
6889  } else goto handle_unusual;
6890  continue;
6891  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
6892  case 17:
6893  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) {
6894  ptr = ctx->ParseMessage(_internal_mutable_automaton(), ptr);
6895  CHK_(ptr);
6896  } else goto handle_unusual;
6897  continue;
6898  // .operations_research.sat.InverseConstraintProto inverse = 18;
6899  case 18:
6900  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
6901  ptr = ctx->ParseMessage(_internal_mutable_inverse(), ptr);
6902  CHK_(ptr);
6903  } else goto handle_unusual;
6904  continue;
6905  // .operations_research.sat.IntervalConstraintProto interval = 19;
6906  case 19:
6907  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
6908  ptr = ctx->ParseMessage(_internal_mutable_interval(), ptr);
6909  CHK_(ptr);
6910  } else goto handle_unusual;
6911  continue;
6912  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
6913  case 20:
6914  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
6915  ptr = ctx->ParseMessage(_internal_mutable_no_overlap(), ptr);
6916  CHK_(ptr);
6917  } else goto handle_unusual;
6918  continue;
6919  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
6920  case 21:
6921  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
6922  ptr = ctx->ParseMessage(_internal_mutable_no_overlap_2d(), ptr);
6923  CHK_(ptr);
6924  } else goto handle_unusual;
6925  continue;
6926  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
6927  case 22:
6928  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) {
6929  ptr = ctx->ParseMessage(_internal_mutable_cumulative(), ptr);
6930  CHK_(ptr);
6931  } else goto handle_unusual;
6932  continue;
6933  // .operations_research.sat.RoutesConstraintProto routes = 23;
6934  case 23:
6935  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
6936  ptr = ctx->ParseMessage(_internal_mutable_routes(), ptr);
6937  CHK_(ptr);
6938  } else goto handle_unusual;
6939  continue;
6940  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
6941  case 24:
6942  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) {
6943  ptr = ctx->ParseMessage(_internal_mutable_reservoir(), ptr);
6944  CHK_(ptr);
6945  } else goto handle_unusual;
6946  continue;
6947  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
6948  case 26:
6949  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 210)) {
6950  ptr = ctx->ParseMessage(_internal_mutable_at_most_one(), ptr);
6951  CHK_(ptr);
6952  } else goto handle_unusual;
6953  continue;
6954  // .operations_research.sat.LinearArgumentProto lin_max = 27;
6955  case 27:
6956  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 218)) {
6957  ptr = ctx->ParseMessage(_internal_mutable_lin_max(), ptr);
6958  CHK_(ptr);
6959  } else goto handle_unusual;
6960  continue;
6961  // .operations_research.sat.LinearArgumentProto lin_min = 28;
6962  case 28:
6963  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 226)) {
6964  ptr = ctx->ParseMessage(_internal_mutable_lin_min(), ptr);
6965  CHK_(ptr);
6966  } else goto handle_unusual;
6967  continue;
6968  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
6969  case 29:
6970  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 234)) {
6971  ptr = ctx->ParseMessage(_internal_mutable_exactly_one(), ptr);
6972  CHK_(ptr);
6973  } else goto handle_unusual;
6974  continue;
6975  default: {
6976  handle_unusual:
6977  if ((tag & 7) == 4 || tag == 0) {
6978  ctx->SetLastTag(tag);
6979  goto success;
6980  }
6981  ptr = UnknownFieldParse(tag,
6982  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
6983  ptr, ctx);
6984  CHK_(ptr != nullptr);
6985  continue;
6986  }
6987  } // switch
6988  } // while
6989 success:
6990  return ptr;
6991 failure:
6992  ptr = nullptr;
6993  goto success;
6994 #undef CHK_
6995 }
6996 
6997 ::PROTOBUF_NAMESPACE_ID::uint8* ConstraintProto::_InternalSerialize(
6998  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
6999  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ConstraintProto)
7000  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7001  (void) cached_has_bits;
7002 
7003  // string name = 1;
7004  if (this->name().size() > 0) {
7005  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
7006  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
7007  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
7008  "operations_research.sat.ConstraintProto.name");
7009  target = stream->WriteStringMaybeAliased(
7010  1, this->_internal_name(), target);
7011  }
7012 
7013  // repeated int32 enforcement_literal = 2;
7014  {
7015  int byte_size = _enforcement_literal_cached_byte_size_.load(std::memory_order_relaxed);
7016  if (byte_size > 0) {
7017  target = stream->WriteInt32Packed(
7018  2, _internal_enforcement_literal(), byte_size, target);
7019  }
7020  }
7021 
7022  // .operations_research.sat.BoolArgumentProto bool_or = 3;
7023  if (_internal_has_bool_or()) {
7024  target = stream->EnsureSpace(target);
7025  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7026  InternalWriteMessage(
7027  3, _Internal::bool_or(this), target, stream);
7028  }
7029 
7030  // .operations_research.sat.BoolArgumentProto bool_and = 4;
7031  if (_internal_has_bool_and()) {
7032  target = stream->EnsureSpace(target);
7033  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7034  InternalWriteMessage(
7035  4, _Internal::bool_and(this), target, stream);
7036  }
7037 
7038  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
7039  if (_internal_has_bool_xor()) {
7040  target = stream->EnsureSpace(target);
7041  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7042  InternalWriteMessage(
7043  5, _Internal::bool_xor(this), target, stream);
7044  }
7045 
7046  // .operations_research.sat.IntegerArgumentProto int_div = 7;
7047  if (_internal_has_int_div()) {
7048  target = stream->EnsureSpace(target);
7049  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7050  InternalWriteMessage(
7051  7, _Internal::int_div(this), target, stream);
7052  }
7053 
7054  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
7055  if (_internal_has_int_mod()) {
7056  target = stream->EnsureSpace(target);
7057  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7058  InternalWriteMessage(
7059  8, _Internal::int_mod(this), target, stream);
7060  }
7061 
7062  // .operations_research.sat.IntegerArgumentProto int_max = 9;
7063  if (_internal_has_int_max()) {
7064  target = stream->EnsureSpace(target);
7065  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7066  InternalWriteMessage(
7067  9, _Internal::int_max(this), target, stream);
7068  }
7069 
7070  // .operations_research.sat.IntegerArgumentProto int_min = 10;
7071  if (_internal_has_int_min()) {
7072  target = stream->EnsureSpace(target);
7073  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7074  InternalWriteMessage(
7075  10, _Internal::int_min(this), target, stream);
7076  }
7077 
7078  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
7079  if (_internal_has_int_prod()) {
7080  target = stream->EnsureSpace(target);
7081  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7082  InternalWriteMessage(
7083  11, _Internal::int_prod(this), target, stream);
7084  }
7085 
7086  // .operations_research.sat.LinearConstraintProto linear = 12;
7087  if (_internal_has_linear()) {
7088  target = stream->EnsureSpace(target);
7089  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7090  InternalWriteMessage(
7091  12, _Internal::linear(this), target, stream);
7092  }
7093 
7094  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
7095  if (_internal_has_all_diff()) {
7096  target = stream->EnsureSpace(target);
7097  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7098  InternalWriteMessage(
7099  13, _Internal::all_diff(this), target, stream);
7100  }
7101 
7102  // .operations_research.sat.ElementConstraintProto element = 14;
7103  if (_internal_has_element()) {
7104  target = stream->EnsureSpace(target);
7105  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7106  InternalWriteMessage(
7107  14, _Internal::element(this), target, stream);
7108  }
7109 
7110  // .operations_research.sat.CircuitConstraintProto circuit = 15;
7111  if (_internal_has_circuit()) {
7112  target = stream->EnsureSpace(target);
7113  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7114  InternalWriteMessage(
7115  15, _Internal::circuit(this), target, stream);
7116  }
7117 
7118  // .operations_research.sat.TableConstraintProto table = 16;
7119  if (_internal_has_table()) {
7120  target = stream->EnsureSpace(target);
7121  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7122  InternalWriteMessage(
7123  16, _Internal::table(this), target, stream);
7124  }
7125 
7126  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
7127  if (_internal_has_automaton()) {
7128  target = stream->EnsureSpace(target);
7129  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7130  InternalWriteMessage(
7131  17, _Internal::automaton(this), target, stream);
7132  }
7133 
7134  // .operations_research.sat.InverseConstraintProto inverse = 18;
7135  if (_internal_has_inverse()) {
7136  target = stream->EnsureSpace(target);
7137  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7138  InternalWriteMessage(
7139  18, _Internal::inverse(this), target, stream);
7140  }
7141 
7142  // .operations_research.sat.IntervalConstraintProto interval = 19;
7143  if (_internal_has_interval()) {
7144  target = stream->EnsureSpace(target);
7145  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7146  InternalWriteMessage(
7147  19, _Internal::interval(this), target, stream);
7148  }
7149 
7150  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7151  if (_internal_has_no_overlap()) {
7152  target = stream->EnsureSpace(target);
7153  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7154  InternalWriteMessage(
7155  20, _Internal::no_overlap(this), target, stream);
7156  }
7157 
7158  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7159  if (_internal_has_no_overlap_2d()) {
7160  target = stream->EnsureSpace(target);
7161  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7162  InternalWriteMessage(
7163  21, _Internal::no_overlap_2d(this), target, stream);
7164  }
7165 
7166  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7167  if (_internal_has_cumulative()) {
7168  target = stream->EnsureSpace(target);
7169  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7170  InternalWriteMessage(
7171  22, _Internal::cumulative(this), target, stream);
7172  }
7173 
7174  // .operations_research.sat.RoutesConstraintProto routes = 23;
7175  if (_internal_has_routes()) {
7176  target = stream->EnsureSpace(target);
7177  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7178  InternalWriteMessage(
7179  23, _Internal::routes(this), target, stream);
7180  }
7181 
7182  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7183  if (_internal_has_reservoir()) {
7184  target = stream->EnsureSpace(target);
7185  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7186  InternalWriteMessage(
7187  24, _Internal::reservoir(this), target, stream);
7188  }
7189 
7190  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7191  if (_internal_has_at_most_one()) {
7192  target = stream->EnsureSpace(target);
7193  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7194  InternalWriteMessage(
7195  26, _Internal::at_most_one(this), target, stream);
7196  }
7197 
7198  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7199  if (_internal_has_lin_max()) {
7200  target = stream->EnsureSpace(target);
7201  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7202  InternalWriteMessage(
7203  27, _Internal::lin_max(this), target, stream);
7204  }
7205 
7206  // .operations_research.sat.LinearArgumentProto lin_min = 28;
7207  if (_internal_has_lin_min()) {
7208  target = stream->EnsureSpace(target);
7209  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7210  InternalWriteMessage(
7211  28, _Internal::lin_min(this), target, stream);
7212  }
7213 
7214  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7215  if (_internal_has_exactly_one()) {
7216  target = stream->EnsureSpace(target);
7217  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7218  InternalWriteMessage(
7219  29, _Internal::exactly_one(this), target, stream);
7220  }
7221 
7222  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7223  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
7224  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
7225  }
7226  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ConstraintProto)
7227  return target;
7228 }
7229 
7230 size_t ConstraintProto::ByteSizeLong() const {
7231 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ConstraintProto)
7232  size_t total_size = 0;
7233 
7234  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7235  // Prevent compiler warnings about cached_has_bits being unused
7236  (void) cached_has_bits;
7237 
7238  // repeated int32 enforcement_literal = 2;
7239  {
7240  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7241  Int32Size(this->enforcement_literal_);
7242  if (data_size > 0) {
7243  total_size += 1 +
7244  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7245  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
7246  }
7247  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7248  _enforcement_literal_cached_byte_size_.store(cached_size,
7249  std::memory_order_relaxed);
7250  total_size += data_size;
7251  }
7252 
7253  // string name = 1;
7254  if (this->name().size() > 0) {
7255  total_size += 1 +
7256  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
7257  this->_internal_name());
7258  }
7259 
7260  switch (constraint_case()) {
7261  // .operations_research.sat.BoolArgumentProto bool_or = 3;
7262  case kBoolOr: {
7263  total_size += 1 +
7264  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7265  *constraint_.bool_or_);
7266  break;
7267  }
7268  // .operations_research.sat.BoolArgumentProto bool_and = 4;
7269  case kBoolAnd: {
7270  total_size += 1 +
7271  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7272  *constraint_.bool_and_);
7273  break;
7274  }
7275  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7276  case kAtMostOne: {
7277  total_size += 2 +
7278  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7279  *constraint_.at_most_one_);
7280  break;
7281  }
7282  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7283  case kExactlyOne: {
7284  total_size += 2 +
7285  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7286  *constraint_.exactly_one_);
7287  break;
7288  }
7289  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
7290  case kBoolXor: {
7291  total_size += 1 +
7292  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7293  *constraint_.bool_xor_);
7294  break;
7295  }
7296  // .operations_research.sat.IntegerArgumentProto int_div = 7;
7297  case kIntDiv: {
7298  total_size += 1 +
7299  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7300  *constraint_.int_div_);
7301  break;
7302  }
7303  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
7304  case kIntMod: {
7305  total_size += 1 +
7306  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7307  *constraint_.int_mod_);
7308  break;
7309  }
7310  // .operations_research.sat.IntegerArgumentProto int_max = 9;
7311  case kIntMax: {
7312  total_size += 1 +
7313  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7314  *constraint_.int_max_);
7315  break;
7316  }
7317  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7318  case kLinMax: {
7319  total_size += 2 +
7320  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7321  *constraint_.lin_max_);
7322  break;
7323  }
7324  // .operations_research.sat.IntegerArgumentProto int_min = 10;
7325  case kIntMin: {
7326  total_size += 1 +
7327  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7328  *constraint_.int_min_);
7329  break;
7330  }
7331  // .operations_research.sat.LinearArgumentProto lin_min = 28;
7332  case kLinMin: {
7333  total_size += 2 +
7334  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7335  *constraint_.lin_min_);
7336  break;
7337  }
7338  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
7339  case kIntProd: {
7340  total_size += 1 +
7341  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7342  *constraint_.int_prod_);
7343  break;
7344  }
7345  // .operations_research.sat.LinearConstraintProto linear = 12;
7346  case kLinear: {
7347  total_size += 1 +
7348  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7349  *constraint_.linear_);
7350  break;
7351  }
7352  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
7353  case kAllDiff: {
7354  total_size += 1 +
7355  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7356  *constraint_.all_diff_);
7357  break;
7358  }
7359  // .operations_research.sat.ElementConstraintProto element = 14;
7360  case kElement: {
7361  total_size += 1 +
7362  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7363  *constraint_.element_);
7364  break;
7365  }
7366  // .operations_research.sat.CircuitConstraintProto circuit = 15;
7367  case kCircuit: {
7368  total_size += 1 +
7369  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7370  *constraint_.circuit_);
7371  break;
7372  }
7373  // .operations_research.sat.RoutesConstraintProto routes = 23;
7374  case kRoutes: {
7375  total_size += 2 +
7376  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7377  *constraint_.routes_);
7378  break;
7379  }
7380  // .operations_research.sat.TableConstraintProto table = 16;
7381  case kTable: {
7382  total_size += 2 +
7383  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7384  *constraint_.table_);
7385  break;
7386  }
7387  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
7388  case kAutomaton: {
7389  total_size += 2 +
7390  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7391  *constraint_.automaton_);
7392  break;
7393  }
7394  // .operations_research.sat.InverseConstraintProto inverse = 18;
7395  case kInverse: {
7396  total_size += 2 +
7397  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7398  *constraint_.inverse_);
7399  break;
7400  }
7401  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7402  case kReservoir: {
7403  total_size += 2 +
7404  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7405  *constraint_.reservoir_);
7406  break;
7407  }
7408  // .operations_research.sat.IntervalConstraintProto interval = 19;
7409  case kInterval: {
7410  total_size += 2 +
7411  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7412  *constraint_.interval_);
7413  break;
7414  }
7415  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7416  case kNoOverlap: {
7417  total_size += 2 +
7418  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7419  *constraint_.no_overlap_);
7420  break;
7421  }
7422  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7423  case kNoOverlap2D: {
7424  total_size += 2 +
7425  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7426  *constraint_.no_overlap_2d_);
7427  break;
7428  }
7429  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7430  case kCumulative: {
7431  total_size += 2 +
7432  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7433  *constraint_.cumulative_);
7434  break;
7435  }
7436  case CONSTRAINT_NOT_SET: {
7437  break;
7438  }
7439  }
7440  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7441  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
7442  _internal_metadata_, total_size, &_cached_size_);
7443  }
7444  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
7445  SetCachedSize(cached_size);
7446  return total_size;
7447 }
7448 
7449 void ConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
7450 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.ConstraintProto)
7451  GOOGLE_DCHECK_NE(&from, this);
7452  const ConstraintProto* source =
7453  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ConstraintProto>(
7454  &from);
7455  if (source == nullptr) {
7456  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.ConstraintProto)
7457  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
7458  } else {
7459  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.ConstraintProto)
7460  MergeFrom(*source);
7461  }
7462 }
7463 
7464 void ConstraintProto::MergeFrom(const ConstraintProto& from) {
7465 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ConstraintProto)
7466  GOOGLE_DCHECK_NE(&from, this);
7467  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7468  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7469  (void) cached_has_bits;
7470 
7471  enforcement_literal_.MergeFrom(from.enforcement_literal_);
7472  if (from.name().size() > 0) {
7473  _internal_set_name(from._internal_name());
7474  }
7475  switch (from.constraint_case()) {
7476  case kBoolOr: {
7477  _internal_mutable_bool_or()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_or());
7478  break;
7479  }
7480  case kBoolAnd: {
7481  _internal_mutable_bool_and()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_and());
7482  break;
7483  }
7484  case kAtMostOne: {
7485  _internal_mutable_at_most_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_at_most_one());
7486  break;
7487  }
7488  case kExactlyOne: {
7489  _internal_mutable_exactly_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_exactly_one());
7490  break;
7491  }
7492  case kBoolXor: {
7493  _internal_mutable_bool_xor()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_xor());
7494  break;
7495  }
7496  case kIntDiv: {
7497  _internal_mutable_int_div()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_div());
7498  break;
7499  }
7500  case kIntMod: {
7501  _internal_mutable_int_mod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_mod());
7502  break;
7503  }
7504  case kIntMax: {
7505  _internal_mutable_int_max()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_max());
7506  break;
7507  }
7508  case kLinMax: {
7509  _internal_mutable_lin_max()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_max());
7510  break;
7511  }
7512  case kIntMin: {
7513  _internal_mutable_int_min()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_min());
7514  break;
7515  }
7516  case kLinMin: {
7517  _internal_mutable_lin_min()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_min());
7518  break;
7519  }
7520  case kIntProd: {
7521  _internal_mutable_int_prod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_prod());
7522  break;
7523  }
7524  case kLinear: {
7525  _internal_mutable_linear()->::operations_research::sat::LinearConstraintProto::MergeFrom(from._internal_linear());
7526  break;
7527  }
7528  case kAllDiff: {
7529  _internal_mutable_all_diff()->::operations_research::sat::AllDifferentConstraintProto::MergeFrom(from._internal_all_diff());
7530  break;
7531  }
7532  case kElement: {
7533  _internal_mutable_element()->::operations_research::sat::ElementConstraintProto::MergeFrom(from._internal_element());
7534  break;
7535  }
7536  case kCircuit: {
7537  _internal_mutable_circuit()->::operations_research::sat::CircuitConstraintProto::MergeFrom(from._internal_circuit());
7538  break;
7539  }
7540  case kRoutes: {
7541  _internal_mutable_routes()->::operations_research::sat::RoutesConstraintProto::MergeFrom(from._internal_routes());
7542  break;
7543  }
7544  case kTable: {
7545  _internal_mutable_table()->::operations_research::sat::TableConstraintProto::MergeFrom(from._internal_table());
7546  break;
7547  }
7548  case kAutomaton: {
7549  _internal_mutable_automaton()->::operations_research::sat::AutomatonConstraintProto::MergeFrom(from._internal_automaton());
7550  break;
7551  }
7552  case kInverse: {
7553  _internal_mutable_inverse()->::operations_research::sat::InverseConstraintProto::MergeFrom(from._internal_inverse());
7554  break;
7555  }
7556  case kReservoir: {
7557  _internal_mutable_reservoir()->::operations_research::sat::ReservoirConstraintProto::MergeFrom(from._internal_reservoir());
7558  break;
7559  }
7560  case kInterval: {
7561  _internal_mutable_interval()->::operations_research::sat::IntervalConstraintProto::MergeFrom(from._internal_interval());
7562  break;
7563  }
7564  case kNoOverlap: {
7565  _internal_mutable_no_overlap()->::operations_research::sat::NoOverlapConstraintProto::MergeFrom(from._internal_no_overlap());
7566  break;
7567  }
7568  case kNoOverlap2D: {
7569  _internal_mutable_no_overlap_2d()->::operations_research::sat::NoOverlap2DConstraintProto::MergeFrom(from._internal_no_overlap_2d());
7570  break;
7571  }
7572  case kCumulative: {
7573  _internal_mutable_cumulative()->::operations_research::sat::CumulativeConstraintProto::MergeFrom(from._internal_cumulative());
7574  break;
7575  }
7576  case CONSTRAINT_NOT_SET: {
7577  break;
7578  }
7579  }
7580 }
7581 
7582 void ConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
7583 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.ConstraintProto)
7584  if (&from == this) return;
7585  Clear();
7586  MergeFrom(from);
7587 }
7588 
7589 void ConstraintProto::CopyFrom(const ConstraintProto& from) {
7590 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ConstraintProto)
7591  if (&from == this) return;
7592  Clear();
7593  MergeFrom(from);
7594 }
7595 
7596 bool ConstraintProto::IsInitialized() const {
7597  return true;
7598 }
7599 
7600 void ConstraintProto::InternalSwap(ConstraintProto* other) {
7601  using std::swap;
7602  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
7603  enforcement_literal_.InternalSwap(&other->enforcement_literal_);
7604  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
7605  swap(constraint_, other->constraint_);
7606  swap(_oneof_case_[0], other->_oneof_case_[0]);
7607 }
7608 
7609 ::PROTOBUF_NAMESPACE_ID::Metadata ConstraintProto::GetMetadata() const {
7610  return GetMetadataStatic();
7611 }
7612 
7613 
7614 // ===================================================================
7615 
7617  public:
7618 };
7619 
7620 CpObjectiveProto::CpObjectiveProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
7621  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
7622  vars_(arena),
7623  coeffs_(arena),
7624  domain_(arena) {
7625  SharedCtor();
7626  RegisterArenaDtor(arena);
7627  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpObjectiveProto)
7628 }
7629 CpObjectiveProto::CpObjectiveProto(const CpObjectiveProto& from)
7630  : ::PROTOBUF_NAMESPACE_ID::Message(),
7631  vars_(from.vars_),
7632  coeffs_(from.coeffs_),
7633  domain_(from.domain_) {
7634  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7635  ::memcpy(&offset_, &from.offset_,
7636  static_cast<size_t>(reinterpret_cast<char*>(&scaling_factor_) -
7637  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7638  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpObjectiveProto)
7639 }
7640 
7641 void CpObjectiveProto::SharedCtor() {
7642 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
7643  reinterpret_cast<char*>(&offset_) - reinterpret_cast<char*>(this)),
7644  0, static_cast<size_t>(reinterpret_cast<char*>(&scaling_factor_) -
7645  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7646 }
7647 
7648 CpObjectiveProto::~CpObjectiveProto() {
7649  // @@protoc_insertion_point(destructor:operations_research.sat.CpObjectiveProto)
7650  SharedDtor();
7651  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7652 }
7653 
7654 void CpObjectiveProto::SharedDtor() {
7655  GOOGLE_DCHECK(GetArena() == nullptr);
7656 }
7657 
7658 void CpObjectiveProto::ArenaDtor(void* object) {
7659  CpObjectiveProto* _this = reinterpret_cast< CpObjectiveProto* >(object);
7660  (void)_this;
7661 }
7662 void CpObjectiveProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
7663 }
7664 void CpObjectiveProto::SetCachedSize(int size) const {
7665  _cached_size_.Set(size);
7666 }
7667 
7668 void CpObjectiveProto::Clear() {
7669 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpObjectiveProto)
7670  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7671  // Prevent compiler warnings about cached_has_bits being unused
7672  (void) cached_has_bits;
7673 
7674  vars_.Clear();
7675  coeffs_.Clear();
7676  domain_.Clear();
7677  ::memset(&offset_, 0, static_cast<size_t>(
7678  reinterpret_cast<char*>(&scaling_factor_) -
7679  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7680  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7681 }
7682 
7683 const char* CpObjectiveProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
7684 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
7685  while (!ctx->Done(&ptr)) {
7686  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
7687  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
7688  CHK_(ptr);
7689  switch (tag >> 3) {
7690  // repeated int32 vars = 1;
7691  case 1:
7692  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
7693  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
7694  CHK_(ptr);
7695  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
7696  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7697  CHK_(ptr);
7698  } else goto handle_unusual;
7699  continue;
7700  // double offset = 2;
7701  case 2:
7702  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 17)) {
7703  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
7704  ptr += sizeof(double);
7705  } else goto handle_unusual;
7706  continue;
7707  // double scaling_factor = 3;
7708  case 3:
7709  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 25)) {
7710  scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
7711  ptr += sizeof(double);
7712  } else goto handle_unusual;
7713  continue;
7714  // repeated int64 coeffs = 4;
7715  case 4:
7716  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
7717  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
7718  CHK_(ptr);
7719  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
7720  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7721  CHK_(ptr);
7722  } else goto handle_unusual;
7723  continue;
7724  // repeated int64 domain = 5;
7725  case 5:
7726  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
7727  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
7728  CHK_(ptr);
7729  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
7730  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7731  CHK_(ptr);
7732  } else goto handle_unusual;
7733  continue;
7734  default: {
7735  handle_unusual:
7736  if ((tag & 7) == 4 || tag == 0) {
7737  ctx->SetLastTag(tag);
7738  goto success;
7739  }
7740  ptr = UnknownFieldParse(tag,
7741  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
7742  ptr, ctx);
7743  CHK_(ptr != nullptr);
7744  continue;
7745  }
7746  } // switch
7747  } // while
7748 success:
7749  return ptr;
7750 failure:
7751  ptr = nullptr;
7752  goto success;
7753 #undef CHK_
7754 }
7755 
7756 ::PROTOBUF_NAMESPACE_ID::uint8* CpObjectiveProto::_InternalSerialize(
7757  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
7758  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpObjectiveProto)
7759  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7760  (void) cached_has_bits;
7761 
7762  // repeated int32 vars = 1;
7763  {
7764  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
7765  if (byte_size > 0) {
7766  target = stream->WriteInt32Packed(
7767  1, _internal_vars(), byte_size, target);
7768  }
7769  }
7770 
7771  // double offset = 2;
7772  if (!(this->offset() <= 0 && this->offset() >= 0)) {
7773  target = stream->EnsureSpace(target);
7774  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(2, this->_internal_offset(), target);
7775  }
7776 
7777  // double scaling_factor = 3;
7778  if (!(this->scaling_factor() <= 0 && this->scaling_factor() >= 0)) {
7779  target = stream->EnsureSpace(target);
7780  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(3, this->_internal_scaling_factor(), target);
7781  }
7782 
7783  // repeated int64 coeffs = 4;
7784  {
7785  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
7786  if (byte_size > 0) {
7787  target = stream->WriteInt64Packed(
7788  4, _internal_coeffs(), byte_size, target);
7789  }
7790  }
7791 
7792  // repeated int64 domain = 5;
7793  {
7794  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
7795  if (byte_size > 0) {
7796  target = stream->WriteInt64Packed(
7797  5, _internal_domain(), byte_size, target);
7798  }
7799  }
7800 
7801  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7802  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
7803  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
7804  }
7805  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpObjectiveProto)
7806  return target;
7807 }
7808 
7809 size_t CpObjectiveProto::ByteSizeLong() const {
7810 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpObjectiveProto)
7811  size_t total_size = 0;
7812 
7813  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7814  // Prevent compiler warnings about cached_has_bits being unused
7815  (void) cached_has_bits;
7816 
7817  // repeated int32 vars = 1;
7818  {
7819  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7820  Int32Size(this->vars_);
7821  if (data_size > 0) {
7822  total_size += 1 +
7823  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7824  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
7825  }
7826  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7827  _vars_cached_byte_size_.store(cached_size,
7828  std::memory_order_relaxed);
7829  total_size += data_size;
7830  }
7831 
7832  // repeated int64 coeffs = 4;
7833  {
7834  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7835  Int64Size(this->coeffs_);
7836  if (data_size > 0) {
7837  total_size += 1 +
7838  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7839  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
7840  }
7841  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7842  _coeffs_cached_byte_size_.store(cached_size,
7843  std::memory_order_relaxed);
7844  total_size += data_size;
7845  }
7846 
7847  // repeated int64 domain = 5;
7848  {
7849  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7850  Int64Size(this->domain_);
7851  if (data_size > 0) {
7852  total_size += 1 +
7853  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7854  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
7855  }
7856  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7857  _domain_cached_byte_size_.store(cached_size,
7858  std::memory_order_relaxed);
7859  total_size += data_size;
7860  }
7861 
7862  // double offset = 2;
7863  if (!(this->offset() <= 0 && this->offset() >= 0)) {
7864  total_size += 1 + 8;
7865  }
7866 
7867  // double scaling_factor = 3;
7868  if (!(this->scaling_factor() <= 0 && this->scaling_factor() >= 0)) {
7869  total_size += 1 + 8;
7870  }
7871 
7872  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7873  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
7874  _internal_metadata_, total_size, &_cached_size_);
7875  }
7876  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
7877  SetCachedSize(cached_size);
7878  return total_size;
7879 }
7880 
7881 void CpObjectiveProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
7882 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CpObjectiveProto)
7883  GOOGLE_DCHECK_NE(&from, this);
7884  const CpObjectiveProto* source =
7885  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CpObjectiveProto>(
7886  &from);
7887  if (source == nullptr) {
7888  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CpObjectiveProto)
7889  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
7890  } else {
7891  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CpObjectiveProto)
7892  MergeFrom(*source);
7893  }
7894 }
7895 
7896 void CpObjectiveProto::MergeFrom(const CpObjectiveProto& from) {
7897 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpObjectiveProto)
7898  GOOGLE_DCHECK_NE(&from, this);
7899  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7900  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7901  (void) cached_has_bits;
7902 
7903  vars_.MergeFrom(from.vars_);
7904  coeffs_.MergeFrom(from.coeffs_);
7905  domain_.MergeFrom(from.domain_);
7906  if (!(from.offset() <= 0 && from.offset() >= 0)) {
7907  _internal_set_offset(from._internal_offset());
7908  }
7909  if (!(from.scaling_factor() <= 0 && from.scaling_factor() >= 0)) {
7910  _internal_set_scaling_factor(from._internal_scaling_factor());
7911  }
7912 }
7913 
7914 void CpObjectiveProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
7915 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CpObjectiveProto)
7916  if (&from == this) return;
7917  Clear();
7918  MergeFrom(from);
7919 }
7920 
7921 void CpObjectiveProto::CopyFrom(const CpObjectiveProto& from) {
7922 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpObjectiveProto)
7923  if (&from == this) return;
7924  Clear();
7925  MergeFrom(from);
7926 }
7927 
7928 bool CpObjectiveProto::IsInitialized() const {
7929  return true;
7930 }
7931 
7932 void CpObjectiveProto::InternalSwap(CpObjectiveProto* other) {
7933  using std::swap;
7934  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
7935  vars_.InternalSwap(&other->vars_);
7936  coeffs_.InternalSwap(&other->coeffs_);
7937  domain_.InternalSwap(&other->domain_);
7938  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
7939  PROTOBUF_FIELD_OFFSET(CpObjectiveProto, scaling_factor_)
7940  + sizeof(CpObjectiveProto::scaling_factor_)
7941  - PROTOBUF_FIELD_OFFSET(CpObjectiveProto, offset_)>(
7942  reinterpret_cast<char*>(&offset_),
7943  reinterpret_cast<char*>(&other->offset_));
7944 }
7945 
7946 ::PROTOBUF_NAMESPACE_ID::Metadata CpObjectiveProto::GetMetadata() const {
7947  return GetMetadataStatic();
7948 }
7949 
7950 
7951 // ===================================================================
7952 
7954  public:
7955 };
7956 
7957 DecisionStrategyProto_AffineTransformation::DecisionStrategyProto_AffineTransformation(::PROTOBUF_NAMESPACE_ID::Arena* arena)
7958  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
7959  SharedCtor();
7960  RegisterArenaDtor(arena);
7961  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
7962 }
7963 DecisionStrategyProto_AffineTransformation::DecisionStrategyProto_AffineTransformation(const DecisionStrategyProto_AffineTransformation& from)
7964  : ::PROTOBUF_NAMESPACE_ID::Message() {
7965  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7966  ::memcpy(&offset_, &from.offset_,
7967  static_cast<size_t>(reinterpret_cast<char*>(&index_) -
7968  reinterpret_cast<char*>(&offset_)) + sizeof(index_));
7969  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
7970 }
7971 
7972 void DecisionStrategyProto_AffineTransformation::SharedCtor() {
7973 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
7974  reinterpret_cast<char*>(&offset_) - reinterpret_cast<char*>(this)),
7975  0, static_cast<size_t>(reinterpret_cast<char*>(&index_) -
7976  reinterpret_cast<char*>(&offset_)) + sizeof(index_));
7977 }
7978 
7979 DecisionStrategyProto_AffineTransformation::~DecisionStrategyProto_AffineTransformation() {
7980  // @@protoc_insertion_point(destructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
7981  SharedDtor();
7982  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7983 }
7984 
7985 void DecisionStrategyProto_AffineTransformation::SharedDtor() {
7986  GOOGLE_DCHECK(GetArena() == nullptr);
7987 }
7988 
7989 void DecisionStrategyProto_AffineTransformation::ArenaDtor(void* object) {
7990  DecisionStrategyProto_AffineTransformation* _this = reinterpret_cast< DecisionStrategyProto_AffineTransformation* >(object);
7991  (void)_this;
7992 }
7993 void DecisionStrategyProto_AffineTransformation::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
7994 }
7995 void DecisionStrategyProto_AffineTransformation::SetCachedSize(int size) const {
7996  _cached_size_.Set(size);
7997 }
7998 
7999 void DecisionStrategyProto_AffineTransformation::Clear() {
8000 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8001  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8002  // Prevent compiler warnings about cached_has_bits being unused
8003  (void) cached_has_bits;
8004 
8005  ::memset(&offset_, 0, static_cast<size_t>(
8006  reinterpret_cast<char*>(&index_) -
8007  reinterpret_cast<char*>(&offset_)) + sizeof(index_));
8008  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8009 }
8010 
8011 const char* DecisionStrategyProto_AffineTransformation::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8012 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8013  while (!ctx->Done(&ptr)) {
8014  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
8015  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8016  CHK_(ptr);
8017  switch (tag >> 3) {
8018  // int32 index = 1;
8019  case 1:
8020  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
8021  index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8022  CHK_(ptr);
8023  } else goto handle_unusual;
8024  continue;
8025  // int64 offset = 2;
8026  case 2:
8027  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
8028  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8029  CHK_(ptr);
8030  } else goto handle_unusual;
8031  continue;
8032  // int64 positive_coeff = 3;
8033  case 3:
8034  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
8035  positive_coeff_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8036  CHK_(ptr);
8037  } else goto handle_unusual;
8038  continue;
8039  default: {
8040  handle_unusual:
8041  if ((tag & 7) == 4 || tag == 0) {
8042  ctx->SetLastTag(tag);
8043  goto success;
8044  }
8045  ptr = UnknownFieldParse(tag,
8046  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8047  ptr, ctx);
8048  CHK_(ptr != nullptr);
8049  continue;
8050  }
8051  } // switch
8052  } // while
8053 success:
8054  return ptr;
8055 failure:
8056  ptr = nullptr;
8057  goto success;
8058 #undef CHK_
8059 }
8060 
8061 ::PROTOBUF_NAMESPACE_ID::uint8* DecisionStrategyProto_AffineTransformation::_InternalSerialize(
8062  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8063  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8064  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8065  (void) cached_has_bits;
8066 
8067  // int32 index = 1;
8068  if (this->index() != 0) {
8069  target = stream->EnsureSpace(target);
8070  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_index(), target);
8071  }
8072 
8073  // int64 offset = 2;
8074  if (this->offset() != 0) {
8075  target = stream->EnsureSpace(target);
8076  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_offset(), target);
8077  }
8078 
8079  // int64 positive_coeff = 3;
8080  if (this->positive_coeff() != 0) {
8081  target = stream->EnsureSpace(target);
8082  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_positive_coeff(), target);
8083  }
8084 
8085  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8086  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8087  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8088  }
8089  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8090  return target;
8091 }
8092 
8093 size_t DecisionStrategyProto_AffineTransformation::ByteSizeLong() const {
8094 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8095  size_t total_size = 0;
8096 
8097  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8098  // Prevent compiler warnings about cached_has_bits being unused
8099  (void) cached_has_bits;
8100 
8101  // int64 offset = 2;
8102  if (this->offset() != 0) {
8103  total_size += 1 +
8104  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
8105  this->_internal_offset());
8106  }
8107 
8108  // int64 positive_coeff = 3;
8109  if (this->positive_coeff() != 0) {
8110  total_size += 1 +
8111  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
8112  this->_internal_positive_coeff());
8113  }
8114 
8115  // int32 index = 1;
8116  if (this->index() != 0) {
8117  total_size += 1 +
8118  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8119  this->_internal_index());
8120  }
8121 
8122  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8123  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8124  _internal_metadata_, total_size, &_cached_size_);
8125  }
8126  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8127  SetCachedSize(cached_size);
8128  return total_size;
8129 }
8130 
8131 void DecisionStrategyProto_AffineTransformation::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8132 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8133  GOOGLE_DCHECK_NE(&from, this);
8134  const DecisionStrategyProto_AffineTransformation* source =
8135  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DecisionStrategyProto_AffineTransformation>(
8136  &from);
8137  if (source == nullptr) {
8138  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8139  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8140  } else {
8141  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8142  MergeFrom(*source);
8143  }
8144 }
8145 
8146 void DecisionStrategyProto_AffineTransformation::MergeFrom(const DecisionStrategyProto_AffineTransformation& from) {
8147 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8148  GOOGLE_DCHECK_NE(&from, this);
8149  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8150  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8151  (void) cached_has_bits;
8152 
8153  if (from.offset() != 0) {
8154  _internal_set_offset(from._internal_offset());
8155  }
8156  if (from.positive_coeff() != 0) {
8157  _internal_set_positive_coeff(from._internal_positive_coeff());
8158  }
8159  if (from.index() != 0) {
8160  _internal_set_index(from._internal_index());
8161  }
8162 }
8163 
8164 void DecisionStrategyProto_AffineTransformation::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8165 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8166  if (&from == this) return;
8167  Clear();
8168  MergeFrom(from);
8169 }
8170 
8171 void DecisionStrategyProto_AffineTransformation::CopyFrom(const DecisionStrategyProto_AffineTransformation& from) {
8172 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8173  if (&from == this) return;
8174  Clear();
8175  MergeFrom(from);
8176 }
8177 
8178 bool DecisionStrategyProto_AffineTransformation::IsInitialized() const {
8179  return true;
8180 }
8181 
8182 void DecisionStrategyProto_AffineTransformation::InternalSwap(DecisionStrategyProto_AffineTransformation* other) {
8183  using std::swap;
8184  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8185  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8186  PROTOBUF_FIELD_OFFSET(DecisionStrategyProto_AffineTransformation, index_)
8187  + sizeof(DecisionStrategyProto_AffineTransformation::index_)
8188  - PROTOBUF_FIELD_OFFSET(DecisionStrategyProto_AffineTransformation, offset_)>(
8189  reinterpret_cast<char*>(&offset_),
8190  reinterpret_cast<char*>(&other->offset_));
8191 }
8192 
8193 ::PROTOBUF_NAMESPACE_ID::Metadata DecisionStrategyProto_AffineTransformation::GetMetadata() const {
8194  return GetMetadataStatic();
8195 }
8196 
8197 
8198 // ===================================================================
8199 
8201  public:
8202 };
8203 
8204 DecisionStrategyProto::DecisionStrategyProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8205  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
8206  variables_(arena),
8207  transformations_(arena) {
8208  SharedCtor();
8209  RegisterArenaDtor(arena);
8210  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DecisionStrategyProto)
8211 }
8212 DecisionStrategyProto::DecisionStrategyProto(const DecisionStrategyProto& from)
8213  : ::PROTOBUF_NAMESPACE_ID::Message(),
8214  variables_(from.variables_),
8215  transformations_(from.transformations_) {
8216  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8217  ::memcpy(&variable_selection_strategy_, &from.variable_selection_strategy_,
8218  static_cast<size_t>(reinterpret_cast<char*>(&domain_reduction_strategy_) -
8219  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8220  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DecisionStrategyProto)
8221 }
8222 
8223 void DecisionStrategyProto::SharedCtor() {
8224 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
8225  reinterpret_cast<char*>(&variable_selection_strategy_) - reinterpret_cast<char*>(this)),
8226  0, static_cast<size_t>(reinterpret_cast<char*>(&domain_reduction_strategy_) -
8227  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8228 }
8229 
8230 DecisionStrategyProto::~DecisionStrategyProto() {
8231  // @@protoc_insertion_point(destructor:operations_research.sat.DecisionStrategyProto)
8232  SharedDtor();
8233  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8234 }
8235 
8236 void DecisionStrategyProto::SharedDtor() {
8237  GOOGLE_DCHECK(GetArena() == nullptr);
8238 }
8239 
8240 void DecisionStrategyProto::ArenaDtor(void* object) {
8241  DecisionStrategyProto* _this = reinterpret_cast< DecisionStrategyProto* >(object);
8242  (void)_this;
8243 }
8244 void DecisionStrategyProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8245 }
8246 void DecisionStrategyProto::SetCachedSize(int size) const {
8247  _cached_size_.Set(size);
8248 }
8249 
8250 void DecisionStrategyProto::Clear() {
8251 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DecisionStrategyProto)
8252  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8253  // Prevent compiler warnings about cached_has_bits being unused
8254  (void) cached_has_bits;
8255 
8256  variables_.Clear();
8257  transformations_.Clear();
8258  ::memset(&variable_selection_strategy_, 0, static_cast<size_t>(
8259  reinterpret_cast<char*>(&domain_reduction_strategy_) -
8260  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8261  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8262 }
8263 
8264 const char* DecisionStrategyProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8265 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8266  while (!ctx->Done(&ptr)) {
8267  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
8268  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8269  CHK_(ptr);
8270  switch (tag >> 3) {
8271  // repeated int32 variables = 1;
8272  case 1:
8273  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
8274  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_variables(), ptr, ctx);
8275  CHK_(ptr);
8276  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
8277  _internal_add_variables(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8278  CHK_(ptr);
8279  } else goto handle_unusual;
8280  continue;
8281  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8282  case 2:
8283  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
8284  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8285  CHK_(ptr);
8286  _internal_set_variable_selection_strategy(static_cast<::operations_research::sat::DecisionStrategyProto_VariableSelectionStrategy>(val));
8287  } else goto handle_unusual;
8288  continue;
8289  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8290  case 3:
8291  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
8292  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8293  CHK_(ptr);
8294  _internal_set_domain_reduction_strategy(static_cast<::operations_research::sat::DecisionStrategyProto_DomainReductionStrategy>(val));
8295  } else goto handle_unusual;
8296  continue;
8297  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8298  case 4:
8299  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
8300  ptr -= 1;
8301  do {
8302  ptr += 1;
8303  ptr = ctx->ParseMessage(_internal_add_transformations(), ptr);
8304  CHK_(ptr);
8305  if (!ctx->DataAvailable(ptr)) break;
8306  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
8307  } else goto handle_unusual;
8308  continue;
8309  default: {
8310  handle_unusual:
8311  if ((tag & 7) == 4 || tag == 0) {
8312  ctx->SetLastTag(tag);
8313  goto success;
8314  }
8315  ptr = UnknownFieldParse(tag,
8316  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8317  ptr, ctx);
8318  CHK_(ptr != nullptr);
8319  continue;
8320  }
8321  } // switch
8322  } // while
8323 success:
8324  return ptr;
8325 failure:
8326  ptr = nullptr;
8327  goto success;
8328 #undef CHK_
8329 }
8330 
8331 ::PROTOBUF_NAMESPACE_ID::uint8* DecisionStrategyProto::_InternalSerialize(
8332  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8333  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DecisionStrategyProto)
8334  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8335  (void) cached_has_bits;
8336 
8337  // repeated int32 variables = 1;
8338  {
8339  int byte_size = _variables_cached_byte_size_.load(std::memory_order_relaxed);
8340  if (byte_size > 0) {
8341  target = stream->WriteInt32Packed(
8342  1, _internal_variables(), byte_size, target);
8343  }
8344  }
8345 
8346  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8347  if (this->variable_selection_strategy() != 0) {
8348  target = stream->EnsureSpace(target);
8349  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
8350  2, this->_internal_variable_selection_strategy(), target);
8351  }
8352 
8353  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8354  if (this->domain_reduction_strategy() != 0) {
8355  target = stream->EnsureSpace(target);
8356  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
8357  3, this->_internal_domain_reduction_strategy(), target);
8358  }
8359 
8360  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8361  for (unsigned int i = 0,
8362  n = static_cast<unsigned int>(this->_internal_transformations_size()); i < n; i++) {
8363  target = stream->EnsureSpace(target);
8364  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8365  InternalWriteMessage(4, this->_internal_transformations(i), target, stream);
8366  }
8367 
8368  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8369  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8370  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8371  }
8372  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DecisionStrategyProto)
8373  return target;
8374 }
8375 
8376 size_t DecisionStrategyProto::ByteSizeLong() const {
8377 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DecisionStrategyProto)
8378  size_t total_size = 0;
8379 
8380  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8381  // Prevent compiler warnings about cached_has_bits being unused
8382  (void) cached_has_bits;
8383 
8384  // repeated int32 variables = 1;
8385  {
8386  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8387  Int32Size(this->variables_);
8388  if (data_size > 0) {
8389  total_size += 1 +
8390  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8391  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8392  }
8393  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8394  _variables_cached_byte_size_.store(cached_size,
8395  std::memory_order_relaxed);
8396  total_size += data_size;
8397  }
8398 
8399  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8400  total_size += 1UL * this->_internal_transformations_size();
8401  for (const auto& msg : this->transformations_) {
8402  total_size +=
8403  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
8404  }
8405 
8406  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8407  if (this->variable_selection_strategy() != 0) {
8408  total_size += 1 +
8409  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_variable_selection_strategy());
8410  }
8411 
8412  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8413  if (this->domain_reduction_strategy() != 0) {
8414  total_size += 1 +
8415  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_domain_reduction_strategy());
8416  }
8417 
8418  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8419  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8420  _internal_metadata_, total_size, &_cached_size_);
8421  }
8422  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8423  SetCachedSize(cached_size);
8424  return total_size;
8425 }
8426 
8427 void DecisionStrategyProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8428 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.DecisionStrategyProto)
8429  GOOGLE_DCHECK_NE(&from, this);
8430  const DecisionStrategyProto* source =
8431  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DecisionStrategyProto>(
8432  &from);
8433  if (source == nullptr) {
8434  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.DecisionStrategyProto)
8435  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8436  } else {
8437  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.DecisionStrategyProto)
8438  MergeFrom(*source);
8439  }
8440 }
8441 
8442 void DecisionStrategyProto::MergeFrom(const DecisionStrategyProto& from) {
8443 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DecisionStrategyProto)
8444  GOOGLE_DCHECK_NE(&from, this);
8445  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8446  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8447  (void) cached_has_bits;
8448 
8449  variables_.MergeFrom(from.variables_);
8450  transformations_.MergeFrom(from.transformations_);
8451  if (from.variable_selection_strategy() != 0) {
8452  _internal_set_variable_selection_strategy(from._internal_variable_selection_strategy());
8453  }
8454  if (from.domain_reduction_strategy() != 0) {
8455  _internal_set_domain_reduction_strategy(from._internal_domain_reduction_strategy());
8456  }
8457 }
8458 
8459 void DecisionStrategyProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8460 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.DecisionStrategyProto)
8461  if (&from == this) return;
8462  Clear();
8463  MergeFrom(from);
8464 }
8465 
8466 void DecisionStrategyProto::CopyFrom(const DecisionStrategyProto& from) {
8467 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DecisionStrategyProto)
8468  if (&from == this) return;
8469  Clear();
8470  MergeFrom(from);
8471 }
8472 
8473 bool DecisionStrategyProto::IsInitialized() const {
8474  return true;
8475 }
8476 
8477 void DecisionStrategyProto::InternalSwap(DecisionStrategyProto* other) {
8478  using std::swap;
8479  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8480  variables_.InternalSwap(&other->variables_);
8481  transformations_.InternalSwap(&other->transformations_);
8482  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8483  PROTOBUF_FIELD_OFFSET(DecisionStrategyProto, domain_reduction_strategy_)
8484  + sizeof(DecisionStrategyProto::domain_reduction_strategy_)
8485  - PROTOBUF_FIELD_OFFSET(DecisionStrategyProto, variable_selection_strategy_)>(
8486  reinterpret_cast<char*>(&variable_selection_strategy_),
8487  reinterpret_cast<char*>(&other->variable_selection_strategy_));
8488 }
8489 
8490 ::PROTOBUF_NAMESPACE_ID::Metadata DecisionStrategyProto::GetMetadata() const {
8491  return GetMetadataStatic();
8492 }
8493 
8494 
8495 // ===================================================================
8496 
8498  public:
8499 };
8500 
8501 PartialVariableAssignment::PartialVariableAssignment(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8502  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
8503  vars_(arena),
8504  values_(arena) {
8505  SharedCtor();
8506  RegisterArenaDtor(arena);
8507  // @@protoc_insertion_point(arena_constructor:operations_research.sat.PartialVariableAssignment)
8508 }
8509 PartialVariableAssignment::PartialVariableAssignment(const PartialVariableAssignment& from)
8510  : ::PROTOBUF_NAMESPACE_ID::Message(),
8511  vars_(from.vars_),
8512  values_(from.values_) {
8513  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8514  // @@protoc_insertion_point(copy_constructor:operations_research.sat.PartialVariableAssignment)
8515 }
8516 
8517 void PartialVariableAssignment::SharedCtor() {
8518 }
8519 
8520 PartialVariableAssignment::~PartialVariableAssignment() {
8521  // @@protoc_insertion_point(destructor:operations_research.sat.PartialVariableAssignment)
8522  SharedDtor();
8523  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8524 }
8525 
8526 void PartialVariableAssignment::SharedDtor() {
8527  GOOGLE_DCHECK(GetArena() == nullptr);
8528 }
8529 
8530 void PartialVariableAssignment::ArenaDtor(void* object) {
8531  PartialVariableAssignment* _this = reinterpret_cast< PartialVariableAssignment* >(object);
8532  (void)_this;
8533 }
8534 void PartialVariableAssignment::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8535 }
8536 void PartialVariableAssignment::SetCachedSize(int size) const {
8537  _cached_size_.Set(size);
8538 }
8539 
8540 void PartialVariableAssignment::Clear() {
8541 // @@protoc_insertion_point(message_clear_start:operations_research.sat.PartialVariableAssignment)
8542  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8543  // Prevent compiler warnings about cached_has_bits being unused
8544  (void) cached_has_bits;
8545 
8546  vars_.Clear();
8547  values_.Clear();
8548  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8549 }
8550 
8551 const char* PartialVariableAssignment::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8552 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8553  while (!ctx->Done(&ptr)) {
8554  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
8555  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8556  CHK_(ptr);
8557  switch (tag >> 3) {
8558  // repeated int32 vars = 1;
8559  case 1:
8560  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
8561  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
8562  CHK_(ptr);
8563  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
8564  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8565  CHK_(ptr);
8566  } else goto handle_unusual;
8567  continue;
8568  // repeated int64 values = 2;
8569  case 2:
8570  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
8571  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_values(), ptr, ctx);
8572  CHK_(ptr);
8573  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
8574  _internal_add_values(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8575  CHK_(ptr);
8576  } else goto handle_unusual;
8577  continue;
8578  default: {
8579  handle_unusual:
8580  if ((tag & 7) == 4 || tag == 0) {
8581  ctx->SetLastTag(tag);
8582  goto success;
8583  }
8584  ptr = UnknownFieldParse(tag,
8585  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8586  ptr, ctx);
8587  CHK_(ptr != nullptr);
8588  continue;
8589  }
8590  } // switch
8591  } // while
8592 success:
8593  return ptr;
8594 failure:
8595  ptr = nullptr;
8596  goto success;
8597 #undef CHK_
8598 }
8599 
8600 ::PROTOBUF_NAMESPACE_ID::uint8* PartialVariableAssignment::_InternalSerialize(
8601  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8602  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.PartialVariableAssignment)
8603  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8604  (void) cached_has_bits;
8605 
8606  // repeated int32 vars = 1;
8607  {
8608  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
8609  if (byte_size > 0) {
8610  target = stream->WriteInt32Packed(
8611  1, _internal_vars(), byte_size, target);
8612  }
8613  }
8614 
8615  // repeated int64 values = 2;
8616  {
8617  int byte_size = _values_cached_byte_size_.load(std::memory_order_relaxed);
8618  if (byte_size > 0) {
8619  target = stream->WriteInt64Packed(
8620  2, _internal_values(), byte_size, target);
8621  }
8622  }
8623 
8624  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8625  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8626  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8627  }
8628  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.PartialVariableAssignment)
8629  return target;
8630 }
8631 
8632 size_t PartialVariableAssignment::ByteSizeLong() const {
8633 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.PartialVariableAssignment)
8634  size_t total_size = 0;
8635 
8636  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8637  // Prevent compiler warnings about cached_has_bits being unused
8638  (void) cached_has_bits;
8639 
8640  // repeated int32 vars = 1;
8641  {
8642  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8643  Int32Size(this->vars_);
8644  if (data_size > 0) {
8645  total_size += 1 +
8646  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8647  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8648  }
8649  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8650  _vars_cached_byte_size_.store(cached_size,
8651  std::memory_order_relaxed);
8652  total_size += data_size;
8653  }
8654 
8655  // repeated int64 values = 2;
8656  {
8657  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8658  Int64Size(this->values_);
8659  if (data_size > 0) {
8660  total_size += 1 +
8661  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8662  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8663  }
8664  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8665  _values_cached_byte_size_.store(cached_size,
8666  std::memory_order_relaxed);
8667  total_size += data_size;
8668  }
8669 
8670  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8671  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8672  _internal_metadata_, total_size, &_cached_size_);
8673  }
8674  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8675  SetCachedSize(cached_size);
8676  return total_size;
8677 }
8678 
8679 void PartialVariableAssignment::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8680 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.PartialVariableAssignment)
8681  GOOGLE_DCHECK_NE(&from, this);
8682  const PartialVariableAssignment* source =
8683  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PartialVariableAssignment>(
8684  &from);
8685  if (source == nullptr) {
8686  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.PartialVariableAssignment)
8687  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8688  } else {
8689  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.PartialVariableAssignment)
8690  MergeFrom(*source);
8691  }
8692 }
8693 
8694 void PartialVariableAssignment::MergeFrom(const PartialVariableAssignment& from) {
8695 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.PartialVariableAssignment)
8696  GOOGLE_DCHECK_NE(&from, this);
8697  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8698  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8699  (void) cached_has_bits;
8700 
8701  vars_.MergeFrom(from.vars_);
8702  values_.MergeFrom(from.values_);
8703 }
8704 
8705 void PartialVariableAssignment::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8706 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.PartialVariableAssignment)
8707  if (&from == this) return;
8708  Clear();
8709  MergeFrom(from);
8710 }
8711 
8712 void PartialVariableAssignment::CopyFrom(const PartialVariableAssignment& from) {
8713 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.PartialVariableAssignment)
8714  if (&from == this) return;
8715  Clear();
8716  MergeFrom(from);
8717 }
8718 
8719 bool PartialVariableAssignment::IsInitialized() const {
8720  return true;
8721 }
8722 
8723 void PartialVariableAssignment::InternalSwap(PartialVariableAssignment* other) {
8724  using std::swap;
8725  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8726  vars_.InternalSwap(&other->vars_);
8727  values_.InternalSwap(&other->values_);
8728 }
8729 
8730 ::PROTOBUF_NAMESPACE_ID::Metadata PartialVariableAssignment::GetMetadata() const {
8731  return GetMetadataStatic();
8732 }
8733 
8734 
8735 // ===================================================================
8736 
8738  public:
8739 };
8740 
8741 SparsePermutationProto::SparsePermutationProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8742  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
8743  support_(arena),
8744  cycle_sizes_(arena) {
8745  SharedCtor();
8746  RegisterArenaDtor(arena);
8747  // @@protoc_insertion_point(arena_constructor:operations_research.sat.SparsePermutationProto)
8748 }
8749 SparsePermutationProto::SparsePermutationProto(const SparsePermutationProto& from)
8750  : ::PROTOBUF_NAMESPACE_ID::Message(),
8751  support_(from.support_),
8752  cycle_sizes_(from.cycle_sizes_) {
8753  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8754  // @@protoc_insertion_point(copy_constructor:operations_research.sat.SparsePermutationProto)
8755 }
8756 
8757 void SparsePermutationProto::SharedCtor() {
8758 }
8759 
8760 SparsePermutationProto::~SparsePermutationProto() {
8761  // @@protoc_insertion_point(destructor:operations_research.sat.SparsePermutationProto)
8762  SharedDtor();
8763  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8764 }
8765 
8766 void SparsePermutationProto::SharedDtor() {
8767  GOOGLE_DCHECK(GetArena() == nullptr);
8768 }
8769 
8770 void SparsePermutationProto::ArenaDtor(void* object) {
8771  SparsePermutationProto* _this = reinterpret_cast< SparsePermutationProto* >(object);
8772  (void)_this;
8773 }
8774 void SparsePermutationProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8775 }
8776 void SparsePermutationProto::SetCachedSize(int size) const {
8777  _cached_size_.Set(size);
8778 }
8779 
8780 void SparsePermutationProto::Clear() {
8781 // @@protoc_insertion_point(message_clear_start:operations_research.sat.SparsePermutationProto)
8782  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8783  // Prevent compiler warnings about cached_has_bits being unused
8784  (void) cached_has_bits;
8785 
8786  support_.Clear();
8787  cycle_sizes_.Clear();
8788  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8789 }
8790 
8791 const char* SparsePermutationProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8792 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8793  while (!ctx->Done(&ptr)) {
8794  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
8795  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8796  CHK_(ptr);
8797  switch (tag >> 3) {
8798  // repeated int32 support = 1;
8799  case 1:
8800  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
8801  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_support(), ptr, ctx);
8802  CHK_(ptr);
8803  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
8804  _internal_add_support(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8805  CHK_(ptr);
8806  } else goto handle_unusual;
8807  continue;
8808  // repeated int32 cycle_sizes = 2;
8809  case 2:
8810  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
8811  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_cycle_sizes(), ptr, ctx);
8812  CHK_(ptr);
8813  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
8814  _internal_add_cycle_sizes(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8815  CHK_(ptr);
8816  } else goto handle_unusual;
8817  continue;
8818  default: {
8819  handle_unusual:
8820  if ((tag & 7) == 4 || tag == 0) {
8821  ctx->SetLastTag(tag);
8822  goto success;
8823  }
8824  ptr = UnknownFieldParse(tag,
8825  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8826  ptr, ctx);
8827  CHK_(ptr != nullptr);
8828  continue;
8829  }
8830  } // switch
8831  } // while
8832 success:
8833  return ptr;
8834 failure:
8835  ptr = nullptr;
8836  goto success;
8837 #undef CHK_
8838 }
8839 
8840 ::PROTOBUF_NAMESPACE_ID::uint8* SparsePermutationProto::_InternalSerialize(
8841  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8842  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.SparsePermutationProto)
8843  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8844  (void) cached_has_bits;
8845 
8846  // repeated int32 support = 1;
8847  {
8848  int byte_size = _support_cached_byte_size_.load(std::memory_order_relaxed);
8849  if (byte_size > 0) {
8850  target = stream->WriteInt32Packed(
8851  1, _internal_support(), byte_size, target);
8852  }
8853  }
8854 
8855  // repeated int32 cycle_sizes = 2;
8856  {
8857  int byte_size = _cycle_sizes_cached_byte_size_.load(std::memory_order_relaxed);
8858  if (byte_size > 0) {
8859  target = stream->WriteInt32Packed(
8860  2, _internal_cycle_sizes(), byte_size, target);
8861  }
8862  }
8863 
8864  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8865  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8866  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8867  }
8868  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.SparsePermutationProto)
8869  return target;
8870 }
8871 
8872 size_t SparsePermutationProto::ByteSizeLong() const {
8873 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.SparsePermutationProto)
8874  size_t total_size = 0;
8875 
8876  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8877  // Prevent compiler warnings about cached_has_bits being unused
8878  (void) cached_has_bits;
8879 
8880  // repeated int32 support = 1;
8881  {
8882  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8883  Int32Size(this->support_);
8884  if (data_size > 0) {
8885  total_size += 1 +
8886  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8887  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8888  }
8889  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8890  _support_cached_byte_size_.store(cached_size,
8891  std::memory_order_relaxed);
8892  total_size += data_size;
8893  }
8894 
8895  // repeated int32 cycle_sizes = 2;
8896  {
8897  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8898  Int32Size(this->cycle_sizes_);
8899  if (data_size > 0) {
8900  total_size += 1 +
8901  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8902  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8903  }
8904  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8905  _cycle_sizes_cached_byte_size_.store(cached_size,
8906  std::memory_order_relaxed);
8907  total_size += data_size;
8908  }
8909 
8910  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8911  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8912  _internal_metadata_, total_size, &_cached_size_);
8913  }
8914  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8915  SetCachedSize(cached_size);
8916  return total_size;
8917 }
8918 
8919 void SparsePermutationProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8920 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.SparsePermutationProto)
8921  GOOGLE_DCHECK_NE(&from, this);
8922  const SparsePermutationProto* source =
8923  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SparsePermutationProto>(
8924  &from);
8925  if (source == nullptr) {
8926  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.SparsePermutationProto)
8927  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8928  } else {
8929  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.SparsePermutationProto)
8930  MergeFrom(*source);
8931  }
8932 }
8933 
8934 void SparsePermutationProto::MergeFrom(const SparsePermutationProto& from) {
8935 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.SparsePermutationProto)
8936  GOOGLE_DCHECK_NE(&from, this);
8937  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8938  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8939  (void) cached_has_bits;
8940 
8941  support_.MergeFrom(from.support_);
8942  cycle_sizes_.MergeFrom(from.cycle_sizes_);
8943 }
8944 
8945 void SparsePermutationProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8946 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.SparsePermutationProto)
8947  if (&from == this) return;
8948  Clear();
8949  MergeFrom(from);
8950 }
8951 
8952 void SparsePermutationProto::CopyFrom(const SparsePermutationProto& from) {
8953 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.SparsePermutationProto)
8954  if (&from == this) return;
8955  Clear();
8956  MergeFrom(from);
8957 }
8958 
8959 bool SparsePermutationProto::IsInitialized() const {
8960  return true;
8961 }
8962 
8963 void SparsePermutationProto::InternalSwap(SparsePermutationProto* other) {
8964  using std::swap;
8965  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8966  support_.InternalSwap(&other->support_);
8967  cycle_sizes_.InternalSwap(&other->cycle_sizes_);
8968 }
8969 
8970 ::PROTOBUF_NAMESPACE_ID::Metadata SparsePermutationProto::GetMetadata() const {
8971  return GetMetadataStatic();
8972 }
8973 
8974 
8975 // ===================================================================
8976 
8978  public:
8979 };
8980 
8981 DenseMatrixProto::DenseMatrixProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8982  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
8983  entries_(arena) {
8984  SharedCtor();
8985  RegisterArenaDtor(arena);
8986  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DenseMatrixProto)
8987 }
8988 DenseMatrixProto::DenseMatrixProto(const DenseMatrixProto& from)
8989  : ::PROTOBUF_NAMESPACE_ID::Message(),
8990  entries_(from.entries_) {
8991  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8992  ::memcpy(&num_rows_, &from.num_rows_,
8993  static_cast<size_t>(reinterpret_cast<char*>(&num_cols_) -
8994  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
8995  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DenseMatrixProto)
8996 }
8997 
8998 void DenseMatrixProto::SharedCtor() {
8999 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
9000  reinterpret_cast<char*>(&num_rows_) - reinterpret_cast<char*>(this)),
9001  0, static_cast<size_t>(reinterpret_cast<char*>(&num_cols_) -
9002  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
9003 }
9004 
9005 DenseMatrixProto::~DenseMatrixProto() {
9006  // @@protoc_insertion_point(destructor:operations_research.sat.DenseMatrixProto)
9007  SharedDtor();
9008  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9009 }
9010 
9011 void DenseMatrixProto::SharedDtor() {
9012  GOOGLE_DCHECK(GetArena() == nullptr);
9013 }
9014 
9015 void DenseMatrixProto::ArenaDtor(void* object) {
9016  DenseMatrixProto* _this = reinterpret_cast< DenseMatrixProto* >(object);
9017  (void)_this;
9018 }
9019 void DenseMatrixProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9020 }
9021 void DenseMatrixProto::SetCachedSize(int size) const {
9022  _cached_size_.Set(size);
9023 }
9024 
9025 void DenseMatrixProto::Clear() {
9026 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DenseMatrixProto)
9027  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9028  // Prevent compiler warnings about cached_has_bits being unused
9029  (void) cached_has_bits;
9030 
9031  entries_.Clear();
9032  ::memset(&num_rows_, 0, static_cast<size_t>(
9033  reinterpret_cast<char*>(&num_cols_) -
9034  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
9035  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9036 }
9037 
9038 const char* DenseMatrixProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9039 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9040  while (!ctx->Done(&ptr)) {
9041  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
9042  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9043  CHK_(ptr);
9044  switch (tag >> 3) {
9045  // int32 num_rows = 1;
9046  case 1:
9047  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
9048  num_rows_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9049  CHK_(ptr);
9050  } else goto handle_unusual;
9051  continue;
9052  // int32 num_cols = 2;
9053  case 2:
9054  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
9055  num_cols_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9056  CHK_(ptr);
9057  } else goto handle_unusual;
9058  continue;
9059  // repeated int32 entries = 3;
9060  case 3:
9061  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
9062  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_entries(), ptr, ctx);
9063  CHK_(ptr);
9064  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
9065  _internal_add_entries(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9066  CHK_(ptr);
9067  } else goto handle_unusual;
9068  continue;
9069  default: {
9070  handle_unusual:
9071  if ((tag & 7) == 4 || tag == 0) {
9072  ctx->SetLastTag(tag);
9073  goto success;
9074  }
9075  ptr = UnknownFieldParse(tag,
9076  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9077  ptr, ctx);
9078  CHK_(ptr != nullptr);
9079  continue;
9080  }
9081  } // switch
9082  } // while
9083 success:
9084  return ptr;
9085 failure:
9086  ptr = nullptr;
9087  goto success;
9088 #undef CHK_
9089 }
9090 
9091 ::PROTOBUF_NAMESPACE_ID::uint8* DenseMatrixProto::_InternalSerialize(
9092  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9093  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DenseMatrixProto)
9094  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9095  (void) cached_has_bits;
9096 
9097  // int32 num_rows = 1;
9098  if (this->num_rows() != 0) {
9099  target = stream->EnsureSpace(target);
9100  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_num_rows(), target);
9101  }
9102 
9103  // int32 num_cols = 2;
9104  if (this->num_cols() != 0) {
9105  target = stream->EnsureSpace(target);
9106  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_num_cols(), target);
9107  }
9108 
9109  // repeated int32 entries = 3;
9110  {
9111  int byte_size = _entries_cached_byte_size_.load(std::memory_order_relaxed);
9112  if (byte_size > 0) {
9113  target = stream->WriteInt32Packed(
9114  3, _internal_entries(), byte_size, target);
9115  }
9116  }
9117 
9118  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9119  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9120  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9121  }
9122  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DenseMatrixProto)
9123  return target;
9124 }
9125 
9126 size_t DenseMatrixProto::ByteSizeLong() const {
9127 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DenseMatrixProto)
9128  size_t total_size = 0;
9129 
9130  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9131  // Prevent compiler warnings about cached_has_bits being unused
9132  (void) cached_has_bits;
9133 
9134  // repeated int32 entries = 3;
9135  {
9136  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9137  Int32Size(this->entries_);
9138  if (data_size > 0) {
9139  total_size += 1 +
9140  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9141  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9142  }
9143  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9144  _entries_cached_byte_size_.store(cached_size,
9145  std::memory_order_relaxed);
9146  total_size += data_size;
9147  }
9148 
9149  // int32 num_rows = 1;
9150  if (this->num_rows() != 0) {
9151  total_size += 1 +
9152  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9153  this->_internal_num_rows());
9154  }
9155 
9156  // int32 num_cols = 2;
9157  if (this->num_cols() != 0) {
9158  total_size += 1 +
9159  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9160  this->_internal_num_cols());
9161  }
9162 
9163  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9164  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
9165  _internal_metadata_, total_size, &_cached_size_);
9166  }
9167  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
9168  SetCachedSize(cached_size);
9169  return total_size;
9170 }
9171 
9172 void DenseMatrixProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9173 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.DenseMatrixProto)
9174  GOOGLE_DCHECK_NE(&from, this);
9175  const DenseMatrixProto* source =
9176  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DenseMatrixProto>(
9177  &from);
9178  if (source == nullptr) {
9179  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.DenseMatrixProto)
9180  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
9181  } else {
9182  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.DenseMatrixProto)
9183  MergeFrom(*source);
9184  }
9185 }
9186 
9187 void DenseMatrixProto::MergeFrom(const DenseMatrixProto& from) {
9188 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DenseMatrixProto)
9189  GOOGLE_DCHECK_NE(&from, this);
9190  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9191  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9192  (void) cached_has_bits;
9193 
9194  entries_.MergeFrom(from.entries_);
9195  if (from.num_rows() != 0) {
9196  _internal_set_num_rows(from._internal_num_rows());
9197  }
9198  if (from.num_cols() != 0) {
9199  _internal_set_num_cols(from._internal_num_cols());
9200  }
9201 }
9202 
9203 void DenseMatrixProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9204 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.DenseMatrixProto)
9205  if (&from == this) return;
9206  Clear();
9207  MergeFrom(from);
9208 }
9209 
9210 void DenseMatrixProto::CopyFrom(const DenseMatrixProto& from) {
9211 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DenseMatrixProto)
9212  if (&from == this) return;
9213  Clear();
9214  MergeFrom(from);
9215 }
9216 
9217 bool DenseMatrixProto::IsInitialized() const {
9218  return true;
9219 }
9220 
9221 void DenseMatrixProto::InternalSwap(DenseMatrixProto* other) {
9222  using std::swap;
9223  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
9224  entries_.InternalSwap(&other->entries_);
9225  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
9226  PROTOBUF_FIELD_OFFSET(DenseMatrixProto, num_cols_)
9227  + sizeof(DenseMatrixProto::num_cols_)
9228  - PROTOBUF_FIELD_OFFSET(DenseMatrixProto, num_rows_)>(
9229  reinterpret_cast<char*>(&num_rows_),
9230  reinterpret_cast<char*>(&other->num_rows_));
9231 }
9232 
9233 ::PROTOBUF_NAMESPACE_ID::Metadata DenseMatrixProto::GetMetadata() const {
9234  return GetMetadataStatic();
9235 }
9236 
9237 
9238 // ===================================================================
9239 
9241  public:
9242 };
9243 
9244 SymmetryProto::SymmetryProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
9245  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
9246  permutations_(arena),
9247  orbitopes_(arena) {
9248  SharedCtor();
9249  RegisterArenaDtor(arena);
9250  // @@protoc_insertion_point(arena_constructor:operations_research.sat.SymmetryProto)
9251 }
9252 SymmetryProto::SymmetryProto(const SymmetryProto& from)
9253  : ::PROTOBUF_NAMESPACE_ID::Message(),
9254  permutations_(from.permutations_),
9255  orbitopes_(from.orbitopes_) {
9256  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9257  // @@protoc_insertion_point(copy_constructor:operations_research.sat.SymmetryProto)
9258 }
9259 
9260 void SymmetryProto::SharedCtor() {
9261 }
9262 
9263 SymmetryProto::~SymmetryProto() {
9264  // @@protoc_insertion_point(destructor:operations_research.sat.SymmetryProto)
9265  SharedDtor();
9266  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9267 }
9268 
9269 void SymmetryProto::SharedDtor() {
9270  GOOGLE_DCHECK(GetArena() == nullptr);
9271 }
9272 
9273 void SymmetryProto::ArenaDtor(void* object) {
9274  SymmetryProto* _this = reinterpret_cast< SymmetryProto* >(object);
9275  (void)_this;
9276 }
9277 void SymmetryProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9278 }
9279 void SymmetryProto::SetCachedSize(int size) const {
9280  _cached_size_.Set(size);
9281 }
9282 
9283 void SymmetryProto::Clear() {
9284 // @@protoc_insertion_point(message_clear_start:operations_research.sat.SymmetryProto)
9285  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9286  // Prevent compiler warnings about cached_has_bits being unused
9287  (void) cached_has_bits;
9288 
9289  permutations_.Clear();
9290  orbitopes_.Clear();
9291  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9292 }
9293 
9294 const char* SymmetryProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9295 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9296  while (!ctx->Done(&ptr)) {
9297  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
9298  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9299  CHK_(ptr);
9300  switch (tag >> 3) {
9301  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9302  case 1:
9303  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
9304  ptr -= 1;
9305  do {
9306  ptr += 1;
9307  ptr = ctx->ParseMessage(_internal_add_permutations(), ptr);
9308  CHK_(ptr);
9309  if (!ctx->DataAvailable(ptr)) break;
9310  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
9311  } else goto handle_unusual;
9312  continue;
9313  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9314  case 2:
9315  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
9316  ptr -= 1;
9317  do {
9318  ptr += 1;
9319  ptr = ctx->ParseMessage(_internal_add_orbitopes(), ptr);
9320  CHK_(ptr);
9321  if (!ctx->DataAvailable(ptr)) break;
9322  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
9323  } else goto handle_unusual;
9324  continue;
9325  default: {
9326  handle_unusual:
9327  if ((tag & 7) == 4 || tag == 0) {
9328  ctx->SetLastTag(tag);
9329  goto success;
9330  }
9331  ptr = UnknownFieldParse(tag,
9332  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9333  ptr, ctx);
9334  CHK_(ptr != nullptr);
9335  continue;
9336  }
9337  } // switch
9338  } // while
9339 success:
9340  return ptr;
9341 failure:
9342  ptr = nullptr;
9343  goto success;
9344 #undef CHK_
9345 }
9346 
9347 ::PROTOBUF_NAMESPACE_ID::uint8* SymmetryProto::_InternalSerialize(
9348  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9349  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.SymmetryProto)
9350  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9351  (void) cached_has_bits;
9352 
9353  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9354  for (unsigned int i = 0,
9355  n = static_cast<unsigned int>(this->_internal_permutations_size()); i < n; i++) {
9356  target = stream->EnsureSpace(target);
9357  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9358  InternalWriteMessage(1, this->_internal_permutations(i), target, stream);
9359  }
9360 
9361  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9362  for (unsigned int i = 0,
9363  n = static_cast<unsigned int>(this->_internal_orbitopes_size()); i < n; i++) {
9364  target = stream->EnsureSpace(target);
9365  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9366  InternalWriteMessage(2, this->_internal_orbitopes(i), target, stream);
9367  }
9368 
9369  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9370  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9371  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9372  }
9373  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.SymmetryProto)
9374  return target;
9375 }
9376 
9377 size_t SymmetryProto::ByteSizeLong() const {
9378 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.SymmetryProto)
9379  size_t total_size = 0;
9380 
9381  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9382  // Prevent compiler warnings about cached_has_bits being unused
9383  (void) cached_has_bits;
9384 
9385  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9386  total_size += 1UL * this->_internal_permutations_size();
9387  for (const auto& msg : this->permutations_) {
9388  total_size +=
9389  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9390  }
9391 
9392  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9393  total_size += 1UL * this->_internal_orbitopes_size();
9394  for (const auto& msg : this->orbitopes_) {
9395  total_size +=
9396  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9397  }
9398 
9399  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9400  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
9401  _internal_metadata_, total_size, &_cached_size_);
9402  }
9403  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
9404  SetCachedSize(cached_size);
9405  return total_size;
9406 }
9407 
9408 void SymmetryProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9409 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.SymmetryProto)
9410  GOOGLE_DCHECK_NE(&from, this);
9411  const SymmetryProto* source =
9412  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SymmetryProto>(
9413  &from);
9414  if (source == nullptr) {
9415  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.SymmetryProto)
9416  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
9417  } else {
9418  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.SymmetryProto)
9419  MergeFrom(*source);
9420  }
9421 }
9422 
9423 void SymmetryProto::MergeFrom(const SymmetryProto& from) {
9424 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.SymmetryProto)
9425  GOOGLE_DCHECK_NE(&from, this);
9426  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9427  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9428  (void) cached_has_bits;
9429 
9430  permutations_.MergeFrom(from.permutations_);
9431  orbitopes_.MergeFrom(from.orbitopes_);
9432 }
9433 
9434 void SymmetryProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9435 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.SymmetryProto)
9436  if (&from == this) return;
9437  Clear();
9438  MergeFrom(from);
9439 }
9440 
9441 void SymmetryProto::CopyFrom(const SymmetryProto& from) {
9442 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.SymmetryProto)
9443  if (&from == this) return;
9444  Clear();
9445  MergeFrom(from);
9446 }
9447 
9448 bool SymmetryProto::IsInitialized() const {
9449  return true;
9450 }
9451 
9452 void SymmetryProto::InternalSwap(SymmetryProto* other) {
9453  using std::swap;
9454  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
9455  permutations_.InternalSwap(&other->permutations_);
9456  orbitopes_.InternalSwap(&other->orbitopes_);
9457 }
9458 
9459 ::PROTOBUF_NAMESPACE_ID::Metadata SymmetryProto::GetMetadata() const {
9460  return GetMetadataStatic();
9461 }
9462 
9463 
9464 // ===================================================================
9465 
9467  public:
9468  static const ::operations_research::sat::CpObjectiveProto& objective(const CpModelProto* msg);
9469  static const ::operations_research::sat::PartialVariableAssignment& solution_hint(const CpModelProto* msg);
9470  static const ::operations_research::sat::SymmetryProto& symmetry(const CpModelProto* msg);
9471 };
9472 
9473 const ::operations_research::sat::CpObjectiveProto&
9474 CpModelProto::_Internal::objective(const CpModelProto* msg) {
9475  return *msg->objective_;
9476 }
9477 const ::operations_research::sat::PartialVariableAssignment&
9478 CpModelProto::_Internal::solution_hint(const CpModelProto* msg) {
9479  return *msg->solution_hint_;
9480 }
9481 const ::operations_research::sat::SymmetryProto&
9482 CpModelProto::_Internal::symmetry(const CpModelProto* msg) {
9483  return *msg->symmetry_;
9484 }
9485 CpModelProto::CpModelProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
9486  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
9487  variables_(arena),
9488  constraints_(arena),
9489  search_strategy_(arena),
9490  assumptions_(arena) {
9491  SharedCtor();
9492  RegisterArenaDtor(arena);
9493  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpModelProto)
9494 }
9495 CpModelProto::CpModelProto(const CpModelProto& from)
9496  : ::PROTOBUF_NAMESPACE_ID::Message(),
9497  variables_(from.variables_),
9498  constraints_(from.constraints_),
9499  search_strategy_(from.search_strategy_),
9500  assumptions_(from.assumptions_) {
9501  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9502  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9503  if (!from._internal_name().empty()) {
9504  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
9505  GetArena());
9506  }
9507  if (from._internal_has_objective()) {
9508  objective_ = new ::operations_research::sat::CpObjectiveProto(*from.objective_);
9509  } else {
9510  objective_ = nullptr;
9511  }
9512  if (from._internal_has_solution_hint()) {
9513  solution_hint_ = new ::operations_research::sat::PartialVariableAssignment(*from.solution_hint_);
9514  } else {
9515  solution_hint_ = nullptr;
9516  }
9517  if (from._internal_has_symmetry()) {
9518  symmetry_ = new ::operations_research::sat::SymmetryProto(*from.symmetry_);
9519  } else {
9520  symmetry_ = nullptr;
9521  }
9522  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpModelProto)
9523 }
9524 
9525 void CpModelProto::SharedCtor() {
9526 name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9527 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
9528  reinterpret_cast<char*>(&objective_) - reinterpret_cast<char*>(this)),
9529  0, static_cast<size_t>(reinterpret_cast<char*>(&symmetry_) -
9530  reinterpret_cast<char*>(&objective_)) + sizeof(symmetry_));
9531 }
9532 
9533 CpModelProto::~CpModelProto() {
9534  // @@protoc_insertion_point(destructor:operations_research.sat.CpModelProto)
9535  SharedDtor();
9536  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9537 }
9538 
9539 void CpModelProto::SharedDtor() {
9540  GOOGLE_DCHECK(GetArena() == nullptr);
9541  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9542  if (this != internal_default_instance()) delete objective_;
9543  if (this != internal_default_instance()) delete solution_hint_;
9544  if (this != internal_default_instance()) delete symmetry_;
9545 }
9546 
9547 void CpModelProto::ArenaDtor(void* object) {
9548  CpModelProto* _this = reinterpret_cast< CpModelProto* >(object);
9549  (void)_this;
9550 }
9551 void CpModelProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9552 }
9553 void CpModelProto::SetCachedSize(int size) const {
9554  _cached_size_.Set(size);
9555 }
9556 
9557 void CpModelProto::Clear() {
9558 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpModelProto)
9559  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9560  // Prevent compiler warnings about cached_has_bits being unused
9561  (void) cached_has_bits;
9562 
9563  variables_.Clear();
9564  constraints_.Clear();
9565  search_strategy_.Clear();
9566  assumptions_.Clear();
9567  name_.ClearToEmpty();
9568  if (GetArena() == nullptr && objective_ != nullptr) {
9569  delete objective_;
9570  }
9571  objective_ = nullptr;
9572  if (GetArena() == nullptr && solution_hint_ != nullptr) {
9573  delete solution_hint_;
9574  }
9575  solution_hint_ = nullptr;
9576  if (GetArena() == nullptr && symmetry_ != nullptr) {
9577  delete symmetry_;
9578  }
9579  symmetry_ = nullptr;
9580  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9581 }
9582 
9583 const char* CpModelProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9584 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9585  while (!ctx->Done(&ptr)) {
9586  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
9587  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9588  CHK_(ptr);
9589  switch (tag >> 3) {
9590  // string name = 1;
9591  case 1:
9592  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
9593  auto str = _internal_mutable_name();
9594  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
9595  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpModelProto.name"));
9596  CHK_(ptr);
9597  } else goto handle_unusual;
9598  continue;
9599  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9600  case 2:
9601  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
9602  ptr -= 1;
9603  do {
9604  ptr += 1;
9605  ptr = ctx->ParseMessage(_internal_add_variables(), ptr);
9606  CHK_(ptr);
9607  if (!ctx->DataAvailable(ptr)) break;
9608  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
9609  } else goto handle_unusual;
9610  continue;
9611  // repeated .operations_research.sat.ConstraintProto constraints = 3;
9612  case 3:
9613  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
9614  ptr -= 1;
9615  do {
9616  ptr += 1;
9617  ptr = ctx->ParseMessage(_internal_add_constraints(), ptr);
9618  CHK_(ptr);
9619  if (!ctx->DataAvailable(ptr)) break;
9620  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
9621  } else goto handle_unusual;
9622  continue;
9623  // .operations_research.sat.CpObjectiveProto objective = 4;
9624  case 4:
9625  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
9626  ptr = ctx->ParseMessage(_internal_mutable_objective(), ptr);
9627  CHK_(ptr);
9628  } else goto handle_unusual;
9629  continue;
9630  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9631  case 5:
9632  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
9633  ptr -= 1;
9634  do {
9635  ptr += 1;
9636  ptr = ctx->ParseMessage(_internal_add_search_strategy(), ptr);
9637  CHK_(ptr);
9638  if (!ctx->DataAvailable(ptr)) break;
9639  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
9640  } else goto handle_unusual;
9641  continue;
9642  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9643  case 6:
9644  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
9645  ptr = ctx->ParseMessage(_internal_mutable_solution_hint(), ptr);
9646  CHK_(ptr);
9647  } else goto handle_unusual;
9648  continue;
9649  // repeated int32 assumptions = 7;
9650  case 7:
9651  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
9652  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_assumptions(), ptr, ctx);
9653  CHK_(ptr);
9654  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56) {
9655  _internal_add_assumptions(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9656  CHK_(ptr);
9657  } else goto handle_unusual;
9658  continue;
9659  // .operations_research.sat.SymmetryProto symmetry = 8;
9660  case 8:
9661  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
9662  ptr = ctx->ParseMessage(_internal_mutable_symmetry(), ptr);
9663  CHK_(ptr);
9664  } else goto handle_unusual;
9665  continue;
9666  default: {
9667  handle_unusual:
9668  if ((tag & 7) == 4 || tag == 0) {
9669  ctx->SetLastTag(tag);
9670  goto success;
9671  }
9672  ptr = UnknownFieldParse(tag,
9673  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9674  ptr, ctx);
9675  CHK_(ptr != nullptr);
9676  continue;
9677  }
9678  } // switch
9679  } // while
9680 success:
9681  return ptr;
9682 failure:
9683  ptr = nullptr;
9684  goto success;
9685 #undef CHK_
9686 }
9687 
9688 ::PROTOBUF_NAMESPACE_ID::uint8* CpModelProto::_InternalSerialize(
9689  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9690  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpModelProto)
9691  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9692  (void) cached_has_bits;
9693 
9694  // string name = 1;
9695  if (this->name().size() > 0) {
9696  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
9697  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
9698  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
9699  "operations_research.sat.CpModelProto.name");
9700  target = stream->WriteStringMaybeAliased(
9701  1, this->_internal_name(), target);
9702  }
9703 
9704  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9705  for (unsigned int i = 0,
9706  n = static_cast<unsigned int>(this->_internal_variables_size()); i < n; i++) {
9707  target = stream->EnsureSpace(target);
9708  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9709  InternalWriteMessage(2, this->_internal_variables(i), target, stream);
9710  }
9711 
9712  // repeated .operations_research.sat.ConstraintProto constraints = 3;
9713  for (unsigned int i = 0,
9714  n = static_cast<unsigned int>(this->_internal_constraints_size()); i < n; i++) {
9715  target = stream->EnsureSpace(target);
9716  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9717  InternalWriteMessage(3, this->_internal_constraints(i), target, stream);
9718  }
9719 
9720  // .operations_research.sat.CpObjectiveProto objective = 4;
9721  if (this->has_objective()) {
9722  target = stream->EnsureSpace(target);
9723  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9724  InternalWriteMessage(
9725  4, _Internal::objective(this), target, stream);
9726  }
9727 
9728  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9729  for (unsigned int i = 0,
9730  n = static_cast<unsigned int>(this->_internal_search_strategy_size()); i < n; i++) {
9731  target = stream->EnsureSpace(target);
9732  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9733  InternalWriteMessage(5, this->_internal_search_strategy(i), target, stream);
9734  }
9735 
9736  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9737  if (this->has_solution_hint()) {
9738  target = stream->EnsureSpace(target);
9739  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9740  InternalWriteMessage(
9741  6, _Internal::solution_hint(this), target, stream);
9742  }
9743 
9744  // repeated int32 assumptions = 7;
9745  {
9746  int byte_size = _assumptions_cached_byte_size_.load(std::memory_order_relaxed);
9747  if (byte_size > 0) {
9748  target = stream->WriteInt32Packed(
9749  7, _internal_assumptions(), byte_size, target);
9750  }
9751  }
9752 
9753  // .operations_research.sat.SymmetryProto symmetry = 8;
9754  if (this->has_symmetry()) {
9755  target = stream->EnsureSpace(target);
9756  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9757  InternalWriteMessage(
9758  8, _Internal::symmetry(this), target, stream);
9759  }
9760 
9761  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9762  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9763  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9764  }
9765  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpModelProto)
9766  return target;
9767 }
9768 
9769 size_t CpModelProto::ByteSizeLong() const {
9770 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpModelProto)
9771  size_t total_size = 0;
9772 
9773  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9774  // Prevent compiler warnings about cached_has_bits being unused
9775  (void) cached_has_bits;
9776 
9777  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9778  total_size += 1UL * this->_internal_variables_size();
9779  for (const auto& msg : this->variables_) {
9780  total_size +=
9781  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9782  }
9783 
9784  // repeated .operations_research.sat.ConstraintProto constraints = 3;
9785  total_size += 1UL * this->_internal_constraints_size();
9786  for (const auto& msg : this->constraints_) {
9787  total_size +=
9788  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9789  }
9790 
9791  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9792  total_size += 1UL * this->_internal_search_strategy_size();
9793  for (const auto& msg : this->search_strategy_) {
9794  total_size +=
9795  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9796  }
9797 
9798  // repeated int32 assumptions = 7;
9799  {
9800  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9801  Int32Size(this->assumptions_);
9802  if (data_size > 0) {
9803  total_size += 1 +
9804  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9805  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9806  }
9807  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9808  _assumptions_cached_byte_size_.store(cached_size,
9809  std::memory_order_relaxed);
9810  total_size += data_size;
9811  }
9812 
9813  // string name = 1;
9814  if (this->name().size() > 0) {
9815  total_size += 1 +
9816  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
9817  this->_internal_name());
9818  }
9819 
9820  // .operations_research.sat.CpObjectiveProto objective = 4;
9821  if (this->has_objective()) {
9822  total_size += 1 +
9823  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
9824  *objective_);
9825  }
9826 
9827  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9828  if (this->has_solution_hint()) {
9829  total_size += 1 +
9830  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
9831  *solution_hint_);
9832  }
9833 
9834  // .operations_research.sat.SymmetryProto symmetry = 8;
9835  if (this->has_symmetry()) {
9836  total_size += 1 +
9837  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
9838  *symmetry_);
9839  }
9840 
9841  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9842  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
9843  _internal_metadata_, total_size, &_cached_size_);
9844  }
9845  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
9846  SetCachedSize(cached_size);
9847  return total_size;
9848 }
9849 
9850 void CpModelProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9851 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CpModelProto)
9852  GOOGLE_DCHECK_NE(&from, this);
9853  const CpModelProto* source =
9854  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CpModelProto>(
9855  &from);
9856  if (source == nullptr) {
9857  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CpModelProto)
9858  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
9859  } else {
9860  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CpModelProto)
9861  MergeFrom(*source);
9862  }
9863 }
9864 
9865 void CpModelProto::MergeFrom(const CpModelProto& from) {
9866 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpModelProto)
9867  GOOGLE_DCHECK_NE(&from, this);
9868  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9869  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9870  (void) cached_has_bits;
9871 
9872  variables_.MergeFrom(from.variables_);
9873  constraints_.MergeFrom(from.constraints_);
9874  search_strategy_.MergeFrom(from.search_strategy_);
9875  assumptions_.MergeFrom(from.assumptions_);
9876  if (from.name().size() > 0) {
9877  _internal_set_name(from._internal_name());
9878  }
9879  if (from.has_objective()) {
9880  _internal_mutable_objective()->::operations_research::sat::CpObjectiveProto::MergeFrom(from._internal_objective());
9881  }
9882  if (from.has_solution_hint()) {
9883  _internal_mutable_solution_hint()->::operations_research::sat::PartialVariableAssignment::MergeFrom(from._internal_solution_hint());
9884  }
9885  if (from.has_symmetry()) {
9886  _internal_mutable_symmetry()->::operations_research::sat::SymmetryProto::MergeFrom(from._internal_symmetry());
9887  }
9888 }
9889 
9890 void CpModelProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9891 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CpModelProto)
9892  if (&from == this) return;
9893  Clear();
9894  MergeFrom(from);
9895 }
9896 
9897 void CpModelProto::CopyFrom(const CpModelProto& from) {
9898 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpModelProto)
9899  if (&from == this) return;
9900  Clear();
9901  MergeFrom(from);
9902 }
9903 
9904 bool CpModelProto::IsInitialized() const {
9905  return true;
9906 }
9907 
9908 void CpModelProto::InternalSwap(CpModelProto* other) {
9909  using std::swap;
9910  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
9911  variables_.InternalSwap(&other->variables_);
9912  constraints_.InternalSwap(&other->constraints_);
9913  search_strategy_.InternalSwap(&other->search_strategy_);
9914  assumptions_.InternalSwap(&other->assumptions_);
9915  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
9916  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
9917  PROTOBUF_FIELD_OFFSET(CpModelProto, symmetry_)
9918  + sizeof(CpModelProto::symmetry_)
9919  - PROTOBUF_FIELD_OFFSET(CpModelProto, objective_)>(
9920  reinterpret_cast<char*>(&objective_),
9921  reinterpret_cast<char*>(&other->objective_));
9922 }
9923 
9924 ::PROTOBUF_NAMESPACE_ID::Metadata CpModelProto::GetMetadata() const {
9925  return GetMetadataStatic();
9926 }
9927 
9928 
9929 // ===================================================================
9930 
9932  public:
9933 };
9934 
9935 CpSolverResponse::CpSolverResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
9936  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
9937  solution_(arena),
9938  solution_lower_bounds_(arena),
9939  solution_upper_bounds_(arena),
9940  tightened_variables_(arena),
9941  sufficient_assumptions_for_infeasibility_(arena) {
9942  SharedCtor();
9943  RegisterArenaDtor(arena);
9944  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpSolverResponse)
9945 }
9946 CpSolverResponse::CpSolverResponse(const CpSolverResponse& from)
9947  : ::PROTOBUF_NAMESPACE_ID::Message(),
9948  solution_(from.solution_),
9949  solution_lower_bounds_(from.solution_lower_bounds_),
9950  solution_upper_bounds_(from.solution_upper_bounds_),
9951  tightened_variables_(from.tightened_variables_),
9952  sufficient_assumptions_for_infeasibility_(from.sufficient_assumptions_for_infeasibility_) {
9953  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9954  solution_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9955  if (!from._internal_solution_info().empty()) {
9956  solution_info_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_solution_info(),
9957  GetArena());
9958  }
9959  solve_log_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9960  if (!from._internal_solve_log().empty()) {
9961  solve_log_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_solve_log(),
9962  GetArena());
9963  }
9964  ::memcpy(&objective_value_, &from.objective_value_,
9965  static_cast<size_t>(reinterpret_cast<char*>(&num_lp_iterations_) -
9966  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
9967  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpSolverResponse)
9968 }
9969 
9970 void CpSolverResponse::SharedCtor() {
9971 solution_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9972 solve_log_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9973 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
9974  reinterpret_cast<char*>(&objective_value_) - reinterpret_cast<char*>(this)),
9975  0, static_cast<size_t>(reinterpret_cast<char*>(&num_lp_iterations_) -
9976  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
9977 }
9978 
9979 CpSolverResponse::~CpSolverResponse() {
9980  // @@protoc_insertion_point(destructor:operations_research.sat.CpSolverResponse)
9981  SharedDtor();
9982  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9983 }
9984 
9985 void CpSolverResponse::SharedDtor() {
9986  GOOGLE_DCHECK(GetArena() == nullptr);
9987  solution_info_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9988  solve_log_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9989 }
9990 
9991 void CpSolverResponse::ArenaDtor(void* object) {
9992  CpSolverResponse* _this = reinterpret_cast< CpSolverResponse* >(object);
9993  (void)_this;
9994 }
9995 void CpSolverResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9996 }
9997 void CpSolverResponse::SetCachedSize(int size) const {
9998  _cached_size_.Set(size);
9999 }
10000 
10001 void CpSolverResponse::Clear() {
10002 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpSolverResponse)
10003  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10004  // Prevent compiler warnings about cached_has_bits being unused
10005  (void) cached_has_bits;
10006 
10007  solution_.Clear();
10008  solution_lower_bounds_.Clear();
10009  solution_upper_bounds_.Clear();
10010  tightened_variables_.Clear();
10011  sufficient_assumptions_for_infeasibility_.Clear();
10012  solution_info_.ClearToEmpty();
10013  solve_log_.ClearToEmpty();
10014  ::memset(&objective_value_, 0, static_cast<size_t>(
10015  reinterpret_cast<char*>(&num_lp_iterations_) -
10016  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
10017  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
10018 }
10019 
10020 const char* CpSolverResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
10021 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
10022  while (!ctx->Done(&ptr)) {
10023  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
10024  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
10025  CHK_(ptr);
10026  switch (tag >> 3) {
10027  // .operations_research.sat.CpSolverStatus status = 1;
10028  case 1:
10029  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
10030  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10031  CHK_(ptr);
10032  _internal_set_status(static_cast<::operations_research::sat::CpSolverStatus>(val));
10033  } else goto handle_unusual;
10034  continue;
10035  // repeated int64 solution = 2;
10036  case 2:
10037  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
10038  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution(), ptr, ctx);
10039  CHK_(ptr);
10040  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
10041  _internal_add_solution(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10042  CHK_(ptr);
10043  } else goto handle_unusual;
10044  continue;
10045  // double objective_value = 3;
10046  case 3:
10047  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 25)) {
10048  objective_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10049  ptr += sizeof(double);
10050  } else goto handle_unusual;
10051  continue;
10052  // double best_objective_bound = 4;
10053  case 4:
10054  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 33)) {
10055  best_objective_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10056  ptr += sizeof(double);
10057  } else goto handle_unusual;
10058  continue;
10059  // bool all_solutions_were_found = 5;
10060  case 5:
10061  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
10062  all_solutions_were_found_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10063  CHK_(ptr);
10064  } else goto handle_unusual;
10065  continue;
10066  // int64 num_booleans = 10;
10067  case 10:
10068  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
10069  num_booleans_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10070  CHK_(ptr);
10071  } else goto handle_unusual;
10072  continue;
10073  // int64 num_conflicts = 11;
10074  case 11:
10075  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
10076  num_conflicts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10077  CHK_(ptr);
10078  } else goto handle_unusual;
10079  continue;
10080  // int64 num_branches = 12;
10081  case 12:
10082  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
10083  num_branches_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10084  CHK_(ptr);
10085  } else goto handle_unusual;
10086  continue;
10087  // int64 num_binary_propagations = 13;
10088  case 13:
10089  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
10090  num_binary_propagations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10091  CHK_(ptr);
10092  } else goto handle_unusual;
10093  continue;
10094  // int64 num_integer_propagations = 14;
10095  case 14:
10096  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
10097  num_integer_propagations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10098  CHK_(ptr);
10099  } else goto handle_unusual;
10100  continue;
10101  // double wall_time = 15;
10102  case 15:
10103  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 121)) {
10104  wall_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10105  ptr += sizeof(double);
10106  } else goto handle_unusual;
10107  continue;
10108  // double user_time = 16;
10109  case 16:
10110  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 129)) {
10111  user_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10112  ptr += sizeof(double);
10113  } else goto handle_unusual;
10114  continue;
10115  // double deterministic_time = 17;
10116  case 17:
10117  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 137)) {
10118  deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10119  ptr += sizeof(double);
10120  } else goto handle_unusual;
10121  continue;
10122  // repeated int64 solution_lower_bounds = 18;
10123  case 18:
10124  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
10125  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution_lower_bounds(), ptr, ctx);
10126  CHK_(ptr);
10127  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 144) {
10128  _internal_add_solution_lower_bounds(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10129  CHK_(ptr);
10130  } else goto handle_unusual;
10131  continue;
10132  // repeated int64 solution_upper_bounds = 19;
10133  case 19:
10134  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
10135  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution_upper_bounds(), ptr, ctx);
10136  CHK_(ptr);
10137  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152) {
10138  _internal_add_solution_upper_bounds(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10139  CHK_(ptr);
10140  } else goto handle_unusual;
10141  continue;
10142  // string solution_info = 20;
10143  case 20:
10144  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
10145  auto str = _internal_mutable_solution_info();
10146  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
10147  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpSolverResponse.solution_info"));
10148  CHK_(ptr);
10149  } else goto handle_unusual;
10150  continue;
10151  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10152  case 21:
10153  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
10154  ptr -= 2;
10155  do {
10156  ptr += 2;
10157  ptr = ctx->ParseMessage(_internal_add_tightened_variables(), ptr);
10158  CHK_(ptr);
10159  if (!ctx->DataAvailable(ptr)) break;
10160  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<170>(ptr));
10161  } else goto handle_unusual;
10162  continue;
10163  // double primal_integral = 22;
10164  case 22:
10165  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 177)) {
10166  primal_integral_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10167  ptr += sizeof(double);
10168  } else goto handle_unusual;
10169  continue;
10170  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10171  case 23:
10172  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
10173  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_sufficient_assumptions_for_infeasibility(), ptr, ctx);
10174  CHK_(ptr);
10175  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184) {
10176  _internal_add_sufficient_assumptions_for_infeasibility(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10177  CHK_(ptr);
10178  } else goto handle_unusual;
10179  continue;
10180  // int64 num_restarts = 24;
10181  case 24:
10182  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
10183  num_restarts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10184  CHK_(ptr);
10185  } else goto handle_unusual;
10186  continue;
10187  // int64 num_lp_iterations = 25;
10188  case 25:
10189  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
10190  num_lp_iterations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10191  CHK_(ptr);
10192  } else goto handle_unusual;
10193  continue;
10194  // string solve_log = 26;
10195  case 26:
10196  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 210)) {
10197  auto str = _internal_mutable_solve_log();
10198  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
10199  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpSolverResponse.solve_log"));
10200  CHK_(ptr);
10201  } else goto handle_unusual;
10202  continue;
10203  default: {
10204  handle_unusual:
10205  if ((tag & 7) == 4 || tag == 0) {
10206  ctx->SetLastTag(tag);
10207  goto success;
10208  }
10209  ptr = UnknownFieldParse(tag,
10210  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
10211  ptr, ctx);
10212  CHK_(ptr != nullptr);
10213  continue;
10214  }
10215  } // switch
10216  } // while
10217 success:
10218  return ptr;
10219 failure:
10220  ptr = nullptr;
10221  goto success;
10222 #undef CHK_
10223 }
10224 
10225 ::PROTOBUF_NAMESPACE_ID::uint8* CpSolverResponse::_InternalSerialize(
10226  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
10227  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpSolverResponse)
10228  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10229  (void) cached_has_bits;
10230 
10231  // .operations_research.sat.CpSolverStatus status = 1;
10232  if (this->status() != 0) {
10233  target = stream->EnsureSpace(target);
10234  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
10235  1, this->_internal_status(), target);
10236  }
10237 
10238  // repeated int64 solution = 2;
10239  {
10240  int byte_size = _solution_cached_byte_size_.load(std::memory_order_relaxed);
10241  if (byte_size > 0) {
10242  target = stream->WriteInt64Packed(
10243  2, _internal_solution(), byte_size, target);
10244  }
10245  }
10246 
10247  // double objective_value = 3;
10248  if (!(this->objective_value() <= 0 && this->objective_value() >= 0)) {
10249  target = stream->EnsureSpace(target);
10250  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(3, this->_internal_objective_value(), target);
10251  }
10252 
10253  // double best_objective_bound = 4;
10254  if (!(this->best_objective_bound() <= 0 && this->best_objective_bound() >= 0)) {
10255  target = stream->EnsureSpace(target);
10256  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(4, this->_internal_best_objective_bound(), target);
10257  }
10258 
10259  // bool all_solutions_were_found = 5;
10260  if (this->all_solutions_were_found() != 0) {
10261  target = stream->EnsureSpace(target);
10262  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_all_solutions_were_found(), target);
10263  }
10264 
10265  // int64 num_booleans = 10;
10266  if (this->num_booleans() != 0) {
10267  target = stream->EnsureSpace(target);
10268  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(10, this->_internal_num_booleans(), target);
10269  }
10270 
10271  // int64 num_conflicts = 11;
10272  if (this->num_conflicts() != 0) {
10273  target = stream->EnsureSpace(target);
10274  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(11, this->_internal_num_conflicts(), target);
10275  }
10276 
10277  // int64 num_branches = 12;
10278  if (this->num_branches() != 0) {
10279  target = stream->EnsureSpace(target);
10280  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(12, this->_internal_num_branches(), target);
10281  }
10282 
10283  // int64 num_binary_propagations = 13;
10284  if (this->num_binary_propagations() != 0) {
10285  target = stream->EnsureSpace(target);
10286  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(13, this->_internal_num_binary_propagations(), target);
10287  }
10288 
10289  // int64 num_integer_propagations = 14;
10290  if (this->num_integer_propagations() != 0) {
10291  target = stream->EnsureSpace(target);
10292  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(14, this->_internal_num_integer_propagations(), target);
10293  }
10294 
10295  // double wall_time = 15;
10296  if (!(this->wall_time() <= 0 && this->wall_time() >= 0)) {
10297  target = stream->EnsureSpace(target);
10298  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(15, this->_internal_wall_time(), target);
10299  }
10300 
10301  // double user_time = 16;
10302  if (!(this->user_time() <= 0 && this->user_time() >= 0)) {
10303  target = stream->EnsureSpace(target);
10304  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(16, this->_internal_user_time(), target);
10305  }
10306 
10307  // double deterministic_time = 17;
10308  if (!(this->deterministic_time() <= 0 && this->deterministic_time() >= 0)) {
10309  target = stream->EnsureSpace(target);
10310  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(17, this->_internal_deterministic_time(), target);
10311  }
10312 
10313  // repeated int64 solution_lower_bounds = 18;
10314  {
10315  int byte_size = _solution_lower_bounds_cached_byte_size_.load(std::memory_order_relaxed);
10316  if (byte_size > 0) {
10317  target = stream->WriteInt64Packed(
10318  18, _internal_solution_lower_bounds(), byte_size, target);
10319  }
10320  }
10321 
10322  // repeated int64 solution_upper_bounds = 19;
10323  {
10324  int byte_size = _solution_upper_bounds_cached_byte_size_.load(std::memory_order_relaxed);
10325  if (byte_size > 0) {
10326  target = stream->WriteInt64Packed(
10327  19, _internal_solution_upper_bounds(), byte_size, target);
10328  }
10329  }
10330 
10331  // string solution_info = 20;
10332  if (this->solution_info().size() > 0) {
10333  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
10334  this->_internal_solution_info().data(), static_cast<int>(this->_internal_solution_info().length()),
10335  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
10336  "operations_research.sat.CpSolverResponse.solution_info");
10337  target = stream->WriteStringMaybeAliased(
10338  20, this->_internal_solution_info(), target);
10339  }
10340 
10341  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10342  for (unsigned int i = 0,
10343  n = static_cast<unsigned int>(this->_internal_tightened_variables_size()); i < n; i++) {
10344  target = stream->EnsureSpace(target);
10345  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10346  InternalWriteMessage(21, this->_internal_tightened_variables(i), target, stream);
10347  }
10348 
10349  // double primal_integral = 22;
10350  if (!(this->primal_integral() <= 0 && this->primal_integral() >= 0)) {
10351  target = stream->EnsureSpace(target);
10352  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_primal_integral(), target);
10353  }
10354 
10355  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10356  {
10357  int byte_size = _sufficient_assumptions_for_infeasibility_cached_byte_size_.load(std::memory_order_relaxed);
10358  if (byte_size > 0) {
10359  target = stream->WriteInt32Packed(
10360  23, _internal_sufficient_assumptions_for_infeasibility(), byte_size, target);
10361  }
10362  }
10363 
10364  // int64 num_restarts = 24;
10365  if (this->num_restarts() != 0) {
10366  target = stream->EnsureSpace(target);
10367  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(24, this->_internal_num_restarts(), target);
10368  }
10369 
10370  // int64 num_lp_iterations = 25;
10371  if (this->num_lp_iterations() != 0) {
10372  target = stream->EnsureSpace(target);
10373  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(25, this->_internal_num_lp_iterations(), target);
10374  }
10375 
10376  // string solve_log = 26;
10377  if (this->solve_log().size() > 0) {
10378  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
10379  this->_internal_solve_log().data(), static_cast<int>(this->_internal_solve_log().length()),
10380  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
10381  "operations_research.sat.CpSolverResponse.solve_log");
10382  target = stream->WriteStringMaybeAliased(
10383  26, this->_internal_solve_log(), target);
10384  }
10385 
10386  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
10387  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
10388  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
10389  }
10390  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpSolverResponse)
10391  return target;
10392 }
10393 
10394 size_t CpSolverResponse::ByteSizeLong() const {
10395 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpSolverResponse)
10396  size_t total_size = 0;
10397 
10398  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10399  // Prevent compiler warnings about cached_has_bits being unused
10400  (void) cached_has_bits;
10401 
10402  // repeated int64 solution = 2;
10403  {
10404  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10405  Int64Size(this->solution_);
10406  if (data_size > 0) {
10407  total_size += 1 +
10408  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10409  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10410  }
10411  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10412  _solution_cached_byte_size_.store(cached_size,
10413  std::memory_order_relaxed);
10414  total_size += data_size;
10415  }
10416 
10417  // repeated int64 solution_lower_bounds = 18;
10418  {
10419  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10420  Int64Size(this->solution_lower_bounds_);
10421  if (data_size > 0) {
10422  total_size += 2 +
10423  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10424  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10425  }
10426  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10427  _solution_lower_bounds_cached_byte_size_.store(cached_size,
10428  std::memory_order_relaxed);
10429  total_size += data_size;
10430  }
10431 
10432  // repeated int64 solution_upper_bounds = 19;
10433  {
10434  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10435  Int64Size(this->solution_upper_bounds_);
10436  if (data_size > 0) {
10437  total_size += 2 +
10438  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10439  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10440  }
10441  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10442  _solution_upper_bounds_cached_byte_size_.store(cached_size,
10443  std::memory_order_relaxed);
10444  total_size += data_size;
10445  }
10446 
10447  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10448  total_size += 2UL * this->_internal_tightened_variables_size();
10449  for (const auto& msg : this->tightened_variables_) {
10450  total_size +=
10451  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10452  }
10453 
10454  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10455  {
10456  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10457  Int32Size(this->sufficient_assumptions_for_infeasibility_);
10458  if (data_size > 0) {
10459  total_size += 2 +
10460  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10461  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10462  }
10463  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10464  _sufficient_assumptions_for_infeasibility_cached_byte_size_.store(cached_size,
10465  std::memory_order_relaxed);
10466  total_size += data_size;
10467  }
10468 
10469  // string solution_info = 20;
10470  if (this->solution_info().size() > 0) {
10471  total_size += 2 +
10472  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
10473  this->_internal_solution_info());
10474  }
10475 
10476  // string solve_log = 26;
10477  if (this->solve_log().size() > 0) {
10478  total_size += 2 +
10479  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
10480  this->_internal_solve_log());
10481  }
10482 
10483  // double objective_value = 3;
10484  if (!(this->objective_value() <= 0 && this->objective_value() >= 0)) {
10485  total_size += 1 + 8;
10486  }
10487 
10488  // .operations_research.sat.CpSolverStatus status = 1;
10489  if (this->status() != 0) {
10490  total_size += 1 +
10491  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_status());
10492  }
10493 
10494  // bool all_solutions_were_found = 5;
10495  if (this->all_solutions_were_found() != 0) {
10496  total_size += 1 + 1;
10497  }
10498 
10499  // double best_objective_bound = 4;
10500  if (!(this->best_objective_bound() <= 0 && this->best_objective_bound() >= 0)) {
10501  total_size += 1 + 8;
10502  }
10503 
10504  // int64 num_booleans = 10;
10505  if (this->num_booleans() != 0) {
10506  total_size += 1 +
10507  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10508  this->_internal_num_booleans());
10509  }
10510 
10511  // int64 num_conflicts = 11;
10512  if (this->num_conflicts() != 0) {
10513  total_size += 1 +
10514  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10515  this->_internal_num_conflicts());
10516  }
10517 
10518  // int64 num_branches = 12;
10519  if (this->num_branches() != 0) {
10520  total_size += 1 +
10521  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10522  this->_internal_num_branches());
10523  }
10524 
10525  // int64 num_binary_propagations = 13;
10526  if (this->num_binary_propagations() != 0) {
10527  total_size += 1 +
10528  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10529  this->_internal_num_binary_propagations());
10530  }
10531 
10532  // int64 num_integer_propagations = 14;
10533  if (this->num_integer_propagations() != 0) {
10534  total_size += 1 +
10535  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10536  this->_internal_num_integer_propagations());
10537  }
10538 
10539  // double wall_time = 15;
10540  if (!(this->wall_time() <= 0 && this->wall_time() >= 0)) {
10541  total_size += 1 + 8;
10542  }
10543 
10544  // double user_time = 16;
10545  if (!(this->user_time() <= 0 && this->user_time() >= 0)) {
10546  total_size += 2 + 8;
10547  }
10548 
10549  // double deterministic_time = 17;
10550  if (!(this->deterministic_time() <= 0 && this->deterministic_time() >= 0)) {
10551  total_size += 2 + 8;
10552  }
10553 
10554  // double primal_integral = 22;
10555  if (!(this->primal_integral() <= 0 && this->primal_integral() >= 0)) {
10556  total_size += 2 + 8;
10557  }
10558 
10559  // int64 num_restarts = 24;
10560  if (this->num_restarts() != 0) {
10561  total_size += 2 +
10562  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10563  this->_internal_num_restarts());
10564  }
10565 
10566  // int64 num_lp_iterations = 25;
10567  if (this->num_lp_iterations() != 0) {
10568  total_size += 2 +
10569  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10570  this->_internal_num_lp_iterations());
10571  }
10572 
10573  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
10574  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
10575  _internal_metadata_, total_size, &_cached_size_);
10576  }
10577  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
10578  SetCachedSize(cached_size);
10579  return total_size;
10580 }
10581 
10582 void CpSolverResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
10583 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CpSolverResponse)
10584  GOOGLE_DCHECK_NE(&from, this);
10585  const CpSolverResponse* source =
10586  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CpSolverResponse>(
10587  &from);
10588  if (source == nullptr) {
10589  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CpSolverResponse)
10590  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
10591  } else {
10592  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CpSolverResponse)
10593  MergeFrom(*source);
10594  }
10595 }
10596 
10597 void CpSolverResponse::MergeFrom(const CpSolverResponse& from) {
10598 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpSolverResponse)
10599  GOOGLE_DCHECK_NE(&from, this);
10600  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
10601  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10602  (void) cached_has_bits;
10603 
10604  solution_.MergeFrom(from.solution_);
10605  solution_lower_bounds_.MergeFrom(from.solution_lower_bounds_);
10606  solution_upper_bounds_.MergeFrom(from.solution_upper_bounds_);
10607  tightened_variables_.MergeFrom(from.tightened_variables_);
10608  sufficient_assumptions_for_infeasibility_.MergeFrom(from.sufficient_assumptions_for_infeasibility_);
10609  if (from.solution_info().size() > 0) {
10610  _internal_set_solution_info(from._internal_solution_info());
10611  }
10612  if (from.solve_log().size() > 0) {
10613  _internal_set_solve_log(from._internal_solve_log());
10614  }
10615  if (!(from.objective_value() <= 0 && from.objective_value() >= 0)) {
10616  _internal_set_objective_value(from._internal_objective_value());
10617  }
10618  if (from.status() != 0) {
10619  _internal_set_status(from._internal_status());
10620  }
10621  if (from.all_solutions_were_found() != 0) {
10622  _internal_set_all_solutions_were_found(from._internal_all_solutions_were_found());
10623  }
10624  if (!(from.best_objective_bound() <= 0 && from.best_objective_bound() >= 0)) {
10625  _internal_set_best_objective_bound(from._internal_best_objective_bound());
10626  }
10627  if (from.num_booleans() != 0) {
10628  _internal_set_num_booleans(from._internal_num_booleans());
10629  }
10630  if (from.num_conflicts() != 0) {
10631  _internal_set_num_conflicts(from._internal_num_conflicts());
10632  }
10633  if (from.num_branches() != 0) {
10634  _internal_set_num_branches(from._internal_num_branches());
10635  }
10636  if (from.num_binary_propagations() != 0) {
10637  _internal_set_num_binary_propagations(from._internal_num_binary_propagations());
10638  }
10639  if (from.num_integer_propagations() != 0) {
10640  _internal_set_num_integer_propagations(from._internal_num_integer_propagations());
10641  }
10642  if (!(from.wall_time() <= 0 && from.wall_time() >= 0)) {
10643  _internal_set_wall_time(from._internal_wall_time());
10644  }
10645  if (!(from.user_time() <= 0 && from.user_time() >= 0)) {
10646  _internal_set_user_time(from._internal_user_time());
10647  }
10648  if (!(from.deterministic_time() <= 0 && from.deterministic_time() >= 0)) {
10649  _internal_set_deterministic_time(from._internal_deterministic_time());
10650  }
10651  if (!(from.primal_integral() <= 0 && from.primal_integral() >= 0)) {
10652  _internal_set_primal_integral(from._internal_primal_integral());
10653  }
10654  if (from.num_restarts() != 0) {
10655  _internal_set_num_restarts(from._internal_num_restarts());
10656  }
10657  if (from.num_lp_iterations() != 0) {
10658  _internal_set_num_lp_iterations(from._internal_num_lp_iterations());
10659  }
10660 }
10661 
10662 void CpSolverResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
10663 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CpSolverResponse)
10664  if (&from == this) return;
10665  Clear();
10666  MergeFrom(from);
10667 }
10668 
10669 void CpSolverResponse::CopyFrom(const CpSolverResponse& from) {
10670 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpSolverResponse)
10671  if (&from == this) return;
10672  Clear();
10673  MergeFrom(from);
10674 }
10675 
10676 bool CpSolverResponse::IsInitialized() const {
10677  return true;
10678 }
10679 
10680 void CpSolverResponse::InternalSwap(CpSolverResponse* other) {
10681  using std::swap;
10682  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
10683  solution_.InternalSwap(&other->solution_);
10684  solution_lower_bounds_.InternalSwap(&other->solution_lower_bounds_);
10685  solution_upper_bounds_.InternalSwap(&other->solution_upper_bounds_);
10686  tightened_variables_.InternalSwap(&other->tightened_variables_);
10687  sufficient_assumptions_for_infeasibility_.InternalSwap(&other->sufficient_assumptions_for_infeasibility_);
10688  solution_info_.Swap(&other->solution_info_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
10689  solve_log_.Swap(&other->solve_log_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
10690  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
10691  PROTOBUF_FIELD_OFFSET(CpSolverResponse, num_lp_iterations_)
10692  + sizeof(CpSolverResponse::num_lp_iterations_)
10693  - PROTOBUF_FIELD_OFFSET(CpSolverResponse, objective_value_)>(
10694  reinterpret_cast<char*>(&objective_value_),
10695  reinterpret_cast<char*>(&other->objective_value_));
10696 }
10697 
10698 ::PROTOBUF_NAMESPACE_ID::Metadata CpSolverResponse::GetMetadata() const {
10699  return GetMetadataStatic();
10700 }
10701 
10702 
10703 // @@protoc_insertion_point(namespace_scope)
10704 } // namespace sat
10705 } // namespace operations_research
10706 PROTOBUF_NAMESPACE_OPEN
10707 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntegerVariableProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntegerVariableProto >(Arena* arena) {
10708  return Arena::CreateMessageInternal< ::operations_research::sat::IntegerVariableProto >(arena);
10709 }
10710 template<> PROTOBUF_NOINLINE ::operations_research::sat::BoolArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::BoolArgumentProto >(Arena* arena) {
10711  return Arena::CreateMessageInternal< ::operations_research::sat::BoolArgumentProto >(arena);
10712 }
10713 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntegerArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntegerArgumentProto >(Arena* arena) {
10714  return Arena::CreateMessageInternal< ::operations_research::sat::IntegerArgumentProto >(arena);
10715 }
10716 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearExpressionProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearExpressionProto >(Arena* arena) {
10717  return Arena::CreateMessageInternal< ::operations_research::sat::LinearExpressionProto >(arena);
10718 }
10719 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearArgumentProto >(Arena* arena) {
10720  return Arena::CreateMessageInternal< ::operations_research::sat::LinearArgumentProto >(arena);
10721 }
10722 template<> PROTOBUF_NOINLINE ::operations_research::sat::AllDifferentConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::AllDifferentConstraintProto >(Arena* arena) {
10723  return Arena::CreateMessageInternal< ::operations_research::sat::AllDifferentConstraintProto >(arena);
10724 }
10725 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearConstraintProto >(Arena* arena) {
10726  return Arena::CreateMessageInternal< ::operations_research::sat::LinearConstraintProto >(arena);
10727 }
10728 template<> PROTOBUF_NOINLINE ::operations_research::sat::ElementConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ElementConstraintProto >(Arena* arena) {
10729  return Arena::CreateMessageInternal< ::operations_research::sat::ElementConstraintProto >(arena);
10730 }
10731 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntervalConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntervalConstraintProto >(Arena* arena) {
10732  return Arena::CreateMessageInternal< ::operations_research::sat::IntervalConstraintProto >(arena);
10733 }
10734 template<> PROTOBUF_NOINLINE ::operations_research::sat::NoOverlapConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlapConstraintProto >(Arena* arena) {
10735  return Arena::CreateMessageInternal< ::operations_research::sat::NoOverlapConstraintProto >(arena);
10736 }
10737 template<> PROTOBUF_NOINLINE ::operations_research::sat::NoOverlap2DConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlap2DConstraintProto >(Arena* arena) {
10738  return Arena::CreateMessageInternal< ::operations_research::sat::NoOverlap2DConstraintProto >(arena);
10739 }
10740 template<> PROTOBUF_NOINLINE ::operations_research::sat::CumulativeConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::CumulativeConstraintProto >(Arena* arena) {
10741  return Arena::CreateMessageInternal< ::operations_research::sat::CumulativeConstraintProto >(arena);
10742 }
10743 template<> PROTOBUF_NOINLINE ::operations_research::sat::ReservoirConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ReservoirConstraintProto >(Arena* arena) {
10744  return Arena::CreateMessageInternal< ::operations_research::sat::ReservoirConstraintProto >(arena);
10745 }
10746 template<> PROTOBUF_NOINLINE ::operations_research::sat::CircuitConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::CircuitConstraintProto >(Arena* arena) {
10747  return Arena::CreateMessageInternal< ::operations_research::sat::CircuitConstraintProto >(arena);
10748 }
10749 template<> PROTOBUF_NOINLINE ::operations_research::sat::RoutesConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::RoutesConstraintProto >(Arena* arena) {
10750  return Arena::CreateMessageInternal< ::operations_research::sat::RoutesConstraintProto >(arena);
10751 }
10752 template<> PROTOBUF_NOINLINE ::operations_research::sat::TableConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::TableConstraintProto >(Arena* arena) {
10753  return Arena::CreateMessageInternal< ::operations_research::sat::TableConstraintProto >(arena);
10754 }
10755 template<> PROTOBUF_NOINLINE ::operations_research::sat::InverseConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::InverseConstraintProto >(Arena* arena) {
10756  return Arena::CreateMessageInternal< ::operations_research::sat::InverseConstraintProto >(arena);
10757 }
10758 template<> PROTOBUF_NOINLINE ::operations_research::sat::AutomatonConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::AutomatonConstraintProto >(Arena* arena) {
10759  return Arena::CreateMessageInternal< ::operations_research::sat::AutomatonConstraintProto >(arena);
10760 }
10761 template<> PROTOBUF_NOINLINE ::operations_research::sat::ConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ConstraintProto >(Arena* arena) {
10762  return Arena::CreateMessageInternal< ::operations_research::sat::ConstraintProto >(arena);
10763 }
10764 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpObjectiveProto* Arena::CreateMaybeMessage< ::operations_research::sat::CpObjectiveProto >(Arena* arena) {
10765  return Arena::CreateMessageInternal< ::operations_research::sat::CpObjectiveProto >(arena);
10766 }
10767 template<> PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto_AffineTransformation* Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(Arena* arena) {
10768  return Arena::CreateMessageInternal< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(arena);
10769 }
10770 template<> PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto* Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto >(Arena* arena) {
10771  return Arena::CreateMessageInternal< ::operations_research::sat::DecisionStrategyProto >(arena);
10772 }
10773 template<> PROTOBUF_NOINLINE ::operations_research::sat::PartialVariableAssignment* Arena::CreateMaybeMessage< ::operations_research::sat::PartialVariableAssignment >(Arena* arena) {
10774  return Arena::CreateMessageInternal< ::operations_research::sat::PartialVariableAssignment >(arena);
10775 }
10776 template<> PROTOBUF_NOINLINE ::operations_research::sat::SparsePermutationProto* Arena::CreateMaybeMessage< ::operations_research::sat::SparsePermutationProto >(Arena* arena) {
10777  return Arena::CreateMessageInternal< ::operations_research::sat::SparsePermutationProto >(arena);
10778 }
10779 template<> PROTOBUF_NOINLINE ::operations_research::sat::DenseMatrixProto* Arena::CreateMaybeMessage< ::operations_research::sat::DenseMatrixProto >(Arena* arena) {
10780  return Arena::CreateMessageInternal< ::operations_research::sat::DenseMatrixProto >(arena);
10781 }
10782 template<> PROTOBUF_NOINLINE ::operations_research::sat::SymmetryProto* Arena::CreateMaybeMessage< ::operations_research::sat::SymmetryProto >(Arena* arena) {
10783  return Arena::CreateMessageInternal< ::operations_research::sat::SymmetryProto >(arena);
10784 }
10785 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpModelProto* Arena::CreateMaybeMessage< ::operations_research::sat::CpModelProto >(Arena* arena) {
10786  return Arena::CreateMessageInternal< ::operations_research::sat::CpModelProto >(arena);
10787 }
10788 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpSolverResponse* Arena::CreateMaybeMessage< ::operations_research::sat::CpSolverResponse >(Arena* arena) {
10789  return Arena::CreateMessageInternal< ::operations_research::sat::CpSolverResponse >(arena);
10790 }
10791 PROTOBUF_NAMESPACE_CLOSE
10792 
10793 // @@protoc_insertion_point(global_scope)
10794 #include <google/protobuf/port_undef.inc>
const std::vector< IntVar * > vars_
Definition: alldiff_cst.cc:44
static const ::operations_research::sat::IntegerArgumentProto & int_mod(const ConstraintProto *msg)
static const ::operations_research::sat::CumulativeConstraintProto & cumulative(const ConstraintProto *msg)
static const ::operations_research::sat::TableConstraintProto & table(const ConstraintProto *msg)
static const ::operations_research::sat::LinearArgumentProto & lin_max(const ConstraintProto *msg)
static const ::operations_research::sat::IntegerArgumentProto & int_min(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & bool_and(const ConstraintProto *msg)
static const ::operations_research::sat::IntegerArgumentProto & int_prod(const ConstraintProto *msg)
static const ::operations_research::sat::InverseConstraintProto & inverse(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & exactly_one(const ConstraintProto *msg)
static const ::operations_research::sat::IntegerArgumentProto & int_div(const ConstraintProto *msg)
static const ::operations_research::sat::LinearConstraintProto & linear(const ConstraintProto *msg)
static const ::operations_research::sat::RoutesConstraintProto & routes(const ConstraintProto *msg)
static const ::operations_research::sat::ElementConstraintProto & element(const ConstraintProto *msg)
static const ::operations_research::sat::ReservoirConstraintProto & reservoir(const ConstraintProto *msg)
static const ::operations_research::sat::AutomatonConstraintProto & automaton(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & bool_or(const ConstraintProto *msg)
static const ::operations_research::sat::CircuitConstraintProto & circuit(const ConstraintProto *msg)
static const ::operations_research::sat::NoOverlap2DConstraintProto & no_overlap_2d(const ConstraintProto *msg)
static const ::operations_research::sat::NoOverlapConstraintProto & no_overlap(const ConstraintProto *msg)
static const ::operations_research::sat::IntegerArgumentProto & int_max(const ConstraintProto *msg)
static const ::operations_research::sat::AllDifferentConstraintProto & all_diff(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & bool_xor(const ConstraintProto *msg)
static const ::operations_research::sat::LinearArgumentProto & lin_min(const ConstraintProto *msg)
static const ::operations_research::sat::IntervalConstraintProto & interval(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & at_most_one(const ConstraintProto *msg)
static const ::operations_research::sat::SymmetryProto & symmetry(const CpModelProto *msg)
static const ::operations_research::sat::PartialVariableAssignment & solution_hint(const CpModelProto *msg)
static const ::operations_research::sat::CpObjectiveProto & objective(const CpModelProto *msg)
static const ::operations_research::sat::LinearExpressionProto & start_view(const IntervalConstraintProto *msg)
static const ::operations_research::sat::LinearExpressionProto & end_view(const IntervalConstraintProto *msg)
static const ::operations_research::sat::LinearExpressionProto & size_view(const IntervalConstraintProto *msg)
static const ::operations_research::sat::LinearExpressionProto & target(const LinearArgumentProto *msg)
PROTOBUF_NOINLINE ::operations_research::sat::CpSolverResponse * Arena::CreateMaybeMessage< ::operations_research::sat::CpSolverResponse >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto_AffineTransformation * Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(Arena *arena)
#define CHK_(x)
PROTOBUF_NOINLINE ::operations_research::sat::InverseConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::InverseConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::LinearConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::BoolArgumentProto * Arena::CreateMaybeMessage< ::operations_research::sat::BoolArgumentProto >(Arena *arena)
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fsat_2fcp_5fmodel_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
PROTOBUF_NOINLINE ::operations_research::sat::ConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::IntervalConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::IntervalConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::SymmetryProto * Arena::CreateMaybeMessage< ::operations_research::sat::SymmetryProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::IntegerArgumentProto * Arena::CreateMaybeMessage< ::operations_research::sat::IntegerArgumentProto >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fcp_5fmodel_2eproto[28]
Definition: cp_model.pb.cc:491
PROTOBUF_NOINLINE ::operations_research::sat::LinearArgumentProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearArgumentProto >(Arena *arena)
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:493
PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto * Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::LinearExpressionProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearExpressionProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::PartialVariableAssignment * Arena::CreateMaybeMessage< ::operations_research::sat::PartialVariableAssignment >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
Definition: cp_model.pb.cc:801
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_once
Definition: cp_model.pb.cc:984
PROTOBUF_NOINLINE ::operations_research::sat::CumulativeConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::CumulativeConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::RoutesConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::RoutesConstraintProto >(Arena *arena)
PROTOBUF_ATTRIBUTE_WEAK ::PROTOBUF_NAMESPACE_ID::Metadata descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_metadata_getter(int index)
Definition: cp_model.pb.cc:992
PROTOBUF_NOINLINE ::operations_research::sat::ReservoirConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ReservoirConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::NoOverlap2DConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlap2DConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::AllDifferentConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::AllDifferentConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::ElementConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ElementConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::CpModelProto * Arena::CreateMaybeMessage< ::operations_research::sat::CpModelProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::TableConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::TableConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::DenseMatrixProto * Arena::CreateMaybeMessage< ::operations_research::sat::DenseMatrixProto >(Arena *arena)
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:985
PROTOBUF_NOINLINE ::operations_research::sat::NoOverlapConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlapConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::AutomatonConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::AutomatonConstraintProto >(Arena *arena)
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::sat::IntegerVariableProto * Arena::CreateMaybeMessage< ::operations_research::sat::IntegerVariableProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::CircuitConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::CircuitConstraintProto >(Arena *arena)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto[3]
Definition: cp_model.pb.cc:492
PROTOBUF_NOINLINE ::operations_research::sat::CpObjectiveProto * Arena::CreateMaybeMessage< ::operations_research::sat::CpObjectiveProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::SparsePermutationProto * Arena::CreateMaybeMessage< ::operations_research::sat::SparsePermutationProto >(Arena *arena)
const std::string name
int64_t value
const int64_t offset_
Definition: interval.cc:2108
void swap(IdMap< K, V > &a, IdMap< K, V > &b)
Definition: id_map.h:263
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SparsePermutationProtoDefaultTypeInternal _SparsePermutationProto_default_instance_
Definition: cp_model.pb.cc:402
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * CpSolverStatus_descriptor()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT InverseConstraintProtoDefaultTypeInternal _InverseConstraintProto_default_instance_
Definition: cp_model.pb.cc:284
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpObjectiveProtoDefaultTypeInternal _CpObjectiveProto_default_instance_
Definition: cp_model.pb.cc:340
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * DecisionStrategyProto_DomainReductionStrategy_descriptor()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearArgumentProtoDefaultTypeInternal _LinearArgumentProto_default_instance_
Definition: cp_model.pb.cc:90
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT IntegerArgumentProtoDefaultTypeInternal _IntegerArgumentProto_default_instance_
Definition: cp_model.pb.cc:61
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT IntegerVariableProtoDefaultTypeInternal _IntegerVariableProto_default_instance_
Definition: cp_model.pb.cc:34
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpModelProtoDefaultTypeInternal _CpModelProto_default_instance_
Definition: cp_model.pb.cc:450
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT DecisionStrategyProto_AffineTransformationDefaultTypeInternal _DecisionStrategyProto_AffineTransformation_default_instance_
Definition: cp_model.pb.cc:354
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT AllDifferentConstraintProtoDefaultTypeInternal _AllDifferentConstraintProto_default_instance_
Definition: cp_model.pb.cc:103
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT NoOverlap2DConstraintProtoDefaultTypeInternal _NoOverlap2DConstraintProto_default_instance_
Definition: cp_model.pb.cc:181
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT IntervalConstraintProtoDefaultTypeInternal _IntervalConstraintProto_default_instance_
Definition: cp_model.pb.cc:152
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutesConstraintProtoDefaultTypeInternal _RoutesConstraintProto_default_instance_
Definition: cp_model.pb.cc:253
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BoolArgumentProtoDefaultTypeInternal _BoolArgumentProto_default_instance_
Definition: cp_model.pb.cc:47
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT DecisionStrategyProtoDefaultTypeInternal _DecisionStrategyProto_default_instance_
Definition: cp_model.pb.cc:372
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearConstraintProtoDefaultTypeInternal _LinearConstraintProto_default_instance_
Definition: cp_model.pb.cc:120
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpSolverResponseDefaultTypeInternal _CpSolverResponse_default_instance_
Definition: cp_model.pb.cc:488
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * DecisionStrategyProto_VariableSelectionStrategy_descriptor()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT NoOverlapConstraintProtoDefaultTypeInternal _NoOverlapConstraintProto_default_instance_
Definition: cp_model.pb.cc:165
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ElementConstraintProtoDefaultTypeInternal _ElementConstraintProto_default_instance_
Definition: cp_model.pb.cc:135
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SymmetryProtoDefaultTypeInternal _SymmetryProto_default_instance_
Definition: cp_model.pb.cc:430
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT AutomatonConstraintProtoDefaultTypeInternal _AutomatonConstraintProto_default_instance_
Definition: cp_model.pb.cc:306
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearExpressionProtoDefaultTypeInternal _LinearExpressionProto_default_instance_
Definition: cp_model.pb.cc:77
bool DecisionStrategyProto_VariableSelectionStrategy_IsValid(int value)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT DenseMatrixProtoDefaultTypeInternal _DenseMatrixProto_default_instance_
Definition: cp_model.pb.cc:417
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PartialVariableAssignmentDefaultTypeInternal _PartialVariableAssignment_default_instance_
Definition: cp_model.pb.cc:387
bool CpSolverStatus_IsValid(int value)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CircuitConstraintProtoDefaultTypeInternal _CircuitConstraintProto_default_instance_
Definition: cp_model.pb.cc:233
bool DecisionStrategyProto_DomainReductionStrategy_IsValid(int value)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT TableConstraintProtoDefaultTypeInternal _TableConstraintProto_default_instance_
Definition: cp_model.pb.cc:269
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CumulativeConstraintProtoDefaultTypeInternal _CumulativeConstraintProto_default_instance_
Definition: cp_model.pb.cc:197
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ConstraintProtoDefaultTypeInternal _ConstraintProto_default_instance_
Definition: cp_model.pb.cc:321
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ReservoirConstraintProtoDefaultTypeInternal _ReservoirConstraintProto_default_instance_
Definition: cp_model.pb.cc:216
Collection of objects used to extend the Constraint Solver library.
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PartialVariableAssignmentDefaultTypeInternal _PartialVariableAssignment_default_instance_
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
int index
Definition: pack.cc:509
IntervalVar * interval
Definition: resource.cc:100
int64_t capacity
IntVar *const objective_
Definition: search.cc:2966
static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]
Definition: cp_model.pb.h:54