0001558370-24-010882.txt : 20240806 0001558370-24-010882.hdr.sgml : 20240806 20240805173535 ACCESSION NUMBER: 0001558370-24-010882 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 79 CONFORMED PERIOD OF REPORT: 20240630 FILED AS OF DATE: 20240806 DATE AS OF CHANGE: 20240805 FILER: COMPANY DATA: COMPANY CONFORMED NAME: Primoris Services Corp CENTRAL INDEX KEY: 0001361538 STANDARD INDUSTRIAL CLASSIFICATION: WATER, SEWER, PIPELINE, COMM AND POWER LINE CONSTRUCTION [1623] ORGANIZATION NAME: 05 Real Estate & Construction IRS NUMBER: 204743916 STATE OF INCORPORATION: DE FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 001-34145 FILM NUMBER: 241176231 BUSINESS ADDRESS: STREET 1: 2300 N. FIELD STREET, SUITE 1900 CITY: DALLAS STATE: TX ZIP: 75201 BUSINESS PHONE: 214-740-5600 MAIL ADDRESS: STREET 1: 2300 N. FIELD STREET, SUITE 1900 CITY: DALLAS STATE: TX ZIP: 75201 FORMER COMPANY: FORMER CONFORMED NAME: Primoris Services CORP DATE OF NAME CHANGE: 20080821 FORMER COMPANY: FORMER CONFORMED NAME: Rhapsody Acquisition Corp. DATE OF NAME CHANGE: 20060503 10-Q 1 prim-20240630x10q.htm 10-Q
http://fasb.org/us-gaap/2024#AccruedLiabilitiesCurrenthttp://fasb.org/us-gaap/2024#InterestIncomeExpenseNonoperatingNethttp://fasb.org/us-gaap/2024#InterestIncomeExpenseNonoperatingNethttp://fasb.org/us-gaap/2024#InterestIncomeExpenseNonoperatingNethttp://fasb.org/us-gaap/2024#PrepaidExpenseAndOtherAssetsCurrent0001361538--12-312024Q2falsehttp://fasb.org/us-gaap/2024#PrepaidExpenseAndOtherAssetsCurrenthttp://fasb.org/us-gaap/2024#PrepaidExpenseAndOtherAssetsCurrenthttp://fasb.org/us-gaap/2024#PrepaidExpenseAndOtherAssetsCurrenthttp://fasb.org/us-gaap/2024#PrepaidExpenseAndOtherAssetsCurrenthttp://fasb.org/us-gaap/2024#OtherAssetsNoncurrenthttp://fasb.org/us-gaap/2024#InterestIncomeExpenseNonoperatingNethttp://fasb.org/us-gaap/2024#AccruedLiabilitiesCurrent0001361538us-gaap:ShareBasedPaymentArrangementNonemployeeMemberprim:EquityIncentivePlan2013Member2024-04-012024-06-300001361538us-gaap:ShareBasedPaymentArrangementNonemployeeMemberprim:EquityIncentivePlan2013Member2024-01-012024-06-300001361538us-gaap:ShareBasedPaymentArrangementNonemployeeMemberprim:EquityIncentivePlan2013Member2023-04-012023-06-300001361538us-gaap:ShareBasedPaymentArrangementNonemployeeMemberprim:EquityIncentivePlan2013Member2023-01-012023-06-300001361538prim:LongTermRetentionPlanMember2024-04-012024-06-300001361538prim:LongTermRetentionPlanMember2023-04-012023-06-300001361538us-gaap:CommonStockMember2024-04-012024-06-300001361538us-gaap:CommonStockMember2024-01-012024-06-300001361538us-gaap:CommonStockMember2023-04-012023-06-300001361538us-gaap:CommonStockMember2023-01-012023-06-300001361538us-gaap:RetainedEarningsMember2024-06-300001361538us-gaap:AdditionalPaidInCapitalMember2024-06-300001361538us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-06-300001361538us-gaap:RetainedEarningsMember2024-03-310001361538us-gaap:AdditionalPaidInCapitalMember2024-03-310001361538us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-03-3100013615382024-03-310001361538us-gaap:RetainedEarningsMember2023-12-310001361538us-gaap:AdditionalPaidInCapitalMember2023-12-310001361538us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-12-310001361538us-gaap:RetainedEarningsMember2023-06-300001361538us-gaap:AdditionalPaidInCapitalMember2023-06-300001361538us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-06-300001361538us-gaap:RetainedEarningsMember2023-03-310001361538us-gaap:AdditionalPaidInCapitalMember2023-03-310001361538us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-03-3100013615382023-03-310001361538us-gaap:RetainedEarningsMember2022-12-310001361538us-gaap:AdditionalPaidInCapitalMember2022-12-310001361538us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-12-310001361538us-gaap:CommonStockMember2024-06-300001361538us-gaap:CommonStockMember2024-03-310001361538us-gaap:CommonStockMember2023-12-310001361538us-gaap:CommonStockMember2023-06-300001361538us-gaap:CommonStockMember2023-03-310001361538us-gaap:CommonStockMember2022-12-310001361538prim:RestrictedAndPerformanceStockUnitsMember2024-04-012024-06-300001361538prim:RestrictedAndPerformanceStockUnitsMember2024-01-012024-06-300001361538prim:RestrictedAndPerformanceStockUnitsMember2023-04-012023-06-300001361538prim:RestrictedAndPerformanceStockUnitsMember2023-01-012023-06-300001361538srt:MinimumMember2025-04-012024-06-300001361538srt:MaximumMember2025-04-012024-06-3000013615382024-07-012024-06-300001361538us-gaap:OperatingSegmentsMemberus-gaap:FixedPriceContractMemberprim:UAndDSegmentMember2024-04-012024-06-300001361538us-gaap:OperatingSegmentsMemberus-gaap:FixedPriceContractMemberprim:EnergySegmentMember2024-04-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:UnitPriceContractsMemberprim:UAndDSegmentMember2024-04-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:UnitPriceContractsMemberprim:EnergySegmentMember2024-04-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:NonMasterServiceAgreementCustomersMemberprim:UAndDSegmentMember2024-04-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:NonMasterServiceAgreementCustomersMemberprim:EnergySegmentMember2024-04-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:MasterServiceAgreementCustomersMemberprim:UAndDSegmentMember2024-04-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:MasterServiceAgreementCustomersMemberprim:EnergySegmentMember2024-04-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:CostReimbursableContractsMemberprim:UAndDSegmentMember2024-04-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:CostReimbursableContractsMemberprim:EnergySegmentMember2024-04-012024-06-300001361538us-gaap:IntersegmentEliminationMemberus-gaap:FixedPriceContractMember2024-04-012024-06-300001361538us-gaap:IntersegmentEliminationMemberprim:UnitPriceContractsMember2024-04-012024-06-300001361538us-gaap:IntersegmentEliminationMemberprim:NonMasterServiceAgreementCustomersMember2024-04-012024-06-300001361538us-gaap:IntersegmentEliminationMemberprim:MasterServiceAgreementCustomersMember2024-04-012024-06-300001361538us-gaap:IntersegmentEliminationMemberprim:CostReimbursableContractsMember2024-04-012024-06-300001361538us-gaap:IntersegmentEliminationMember2024-04-012024-06-300001361538us-gaap:FixedPriceContractMember2024-04-012024-06-300001361538prim:UnitPriceContractsMember2024-04-012024-06-300001361538prim:NonMasterServiceAgreementCustomersMember2024-04-012024-06-300001361538prim:MasterServiceAgreementCustomersMember2024-04-012024-06-300001361538prim:CostReimbursableContractsMember2024-04-012024-06-300001361538us-gaap:OperatingSegmentsMemberus-gaap:FixedPriceContractMemberprim:UAndDSegmentMember2024-01-012024-06-300001361538us-gaap:OperatingSegmentsMemberus-gaap:FixedPriceContractMemberprim:EnergySegmentMember2024-01-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:UnitPriceContractsMemberprim:UAndDSegmentMember2024-01-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:UnitPriceContractsMemberprim:EnergySegmentMember2024-01-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:NonMasterServiceAgreementCustomersMemberprim:UAndDSegmentMember2024-01-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:NonMasterServiceAgreementCustomersMemberprim:EnergySegmentMember2024-01-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:MasterServiceAgreementCustomersMemberprim:UAndDSegmentMember2024-01-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:MasterServiceAgreementCustomersMemberprim:EnergySegmentMember2024-01-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:CostReimbursableContractsMemberprim:UAndDSegmentMember2024-01-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:CostReimbursableContractsMemberprim:EnergySegmentMember2024-01-012024-06-300001361538us-gaap:IntersegmentEliminationMemberus-gaap:FixedPriceContractMember2024-01-012024-06-300001361538us-gaap:IntersegmentEliminationMemberprim:UnitPriceContractsMember2024-01-012024-06-300001361538us-gaap:IntersegmentEliminationMemberprim:NonMasterServiceAgreementCustomersMember2024-01-012024-06-300001361538us-gaap:IntersegmentEliminationMemberprim:MasterServiceAgreementCustomersMember2024-01-012024-06-300001361538us-gaap:IntersegmentEliminationMemberprim:CostReimbursableContractsMember2024-01-012024-06-300001361538us-gaap:TimeAndMaterialsContractMember2024-01-012024-06-300001361538us-gaap:IntersegmentEliminationMember2024-01-012024-06-300001361538us-gaap:FixedPriceContractMember2024-01-012024-06-300001361538prim:UnitPriceContractsMember2024-01-012024-06-300001361538prim:NonMasterServiceAgreementCustomersMember2024-01-012024-06-300001361538prim:MasterServiceAgreementCustomersMember2024-01-012024-06-300001361538prim:CostReimbursableContractsMember2024-01-012024-06-300001361538us-gaap:OperatingSegmentsMemberus-gaap:FixedPriceContractMemberprim:UAndDSegmentMember2023-04-012023-06-300001361538us-gaap:OperatingSegmentsMemberus-gaap:FixedPriceContractMemberprim:EnergySegmentMember2023-04-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:UnitPriceContractsMemberprim:UAndDSegmentMember2023-04-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:UnitPriceContractsMemberprim:EnergySegmentMember2023-04-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:NonMasterServiceAgreementCustomersMemberprim:UAndDSegmentMember2023-04-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:NonMasterServiceAgreementCustomersMemberprim:EnergySegmentMember2023-04-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:MasterServiceAgreementCustomersMemberprim:UAndDSegmentMember2023-04-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:MasterServiceAgreementCustomersMemberprim:EnergySegmentMember2023-04-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:CostReimbursableContractsMemberprim:UAndDSegmentMember2023-04-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:CostReimbursableContractsMemberprim:EnergySegmentMember2023-04-012023-06-300001361538us-gaap:IntersegmentEliminationMemberus-gaap:FixedPriceContractMember2023-04-012023-06-300001361538us-gaap:IntersegmentEliminationMemberprim:UnitPriceContractsMember2023-04-012023-06-300001361538us-gaap:IntersegmentEliminationMemberprim:NonMasterServiceAgreementCustomersMember2023-04-012023-06-300001361538us-gaap:IntersegmentEliminationMemberprim:MasterServiceAgreementCustomersMember2023-04-012023-06-300001361538us-gaap:IntersegmentEliminationMemberprim:CostReimbursableContractsMember2023-04-012023-06-300001361538us-gaap:IntersegmentEliminationMember2023-04-012023-06-300001361538us-gaap:FixedPriceContractMember2023-04-012023-06-300001361538prim:UnitPriceContractsMember2023-04-012023-06-300001361538prim:NonMasterServiceAgreementCustomersMember2023-04-012023-06-300001361538prim:MasterServiceAgreementCustomersMember2023-04-012023-06-300001361538prim:CostReimbursableContractsMember2023-04-012023-06-300001361538us-gaap:OperatingSegmentsMemberus-gaap:FixedPriceContractMemberprim:UAndDSegmentMember2023-01-012023-06-300001361538us-gaap:OperatingSegmentsMemberus-gaap:FixedPriceContractMemberprim:EnergySegmentMember2023-01-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:UnitPriceContractsMemberprim:UAndDSegmentMember2023-01-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:UnitPriceContractsMemberprim:EnergySegmentMember2023-01-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:NonMasterServiceAgreementCustomersMemberprim:UAndDSegmentMember2023-01-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:NonMasterServiceAgreementCustomersMemberprim:EnergySegmentMember2023-01-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:MasterServiceAgreementCustomersMemberprim:UAndDSegmentMember2023-01-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:MasterServiceAgreementCustomersMemberprim:EnergySegmentMember2023-01-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:CostReimbursableContractsMemberprim:UAndDSegmentMember2023-01-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:CostReimbursableContractsMemberprim:EnergySegmentMember2023-01-012023-06-300001361538us-gaap:IntersegmentEliminationMemberus-gaap:FixedPriceContractMember2023-01-012023-06-300001361538us-gaap:IntersegmentEliminationMemberprim:UnitPriceContractsMember2023-01-012023-06-300001361538us-gaap:IntersegmentEliminationMemberprim:NonMasterServiceAgreementCustomersMember2023-01-012023-06-300001361538us-gaap:IntersegmentEliminationMemberprim:MasterServiceAgreementCustomersMember2023-01-012023-06-300001361538us-gaap:IntersegmentEliminationMemberprim:CostReimbursableContractsMember2023-01-012023-06-300001361538us-gaap:TimeAndMaterialsContractMember2023-01-012023-06-300001361538us-gaap:IntersegmentEliminationMember2023-01-012023-06-300001361538us-gaap:FixedPriceContractMember2023-01-012023-06-300001361538prim:UnitPriceContractsMember2023-01-012023-06-300001361538prim:NonMasterServiceAgreementCustomersMember2023-01-012023-06-300001361538prim:MasterServiceAgreementCustomersMember2023-01-012023-06-300001361538prim:CostReimbursableContractsMember2023-01-012023-06-300001361538us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-04-012024-06-300001361538us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-01-012024-06-300001361538us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-04-012023-06-300001361538us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-01-012023-06-300001361538us-gaap:RevolvingCreditFacilityMember2022-08-010001361538us-gaap:LetterOfCreditMember2022-08-010001361538us-gaap:RevolvingCreditFacilityMember2024-06-300001361538us-gaap:LetterOfCreditMember2024-06-300001361538prim:CreditFacilityWithCanadianBankMember2024-06-300001361538prim:ForeignLettersOfCreditMember2024-06-300001361538srt:MaximumMember2024-06-300001361538prim:UAndDSegmentMember2024-06-300001361538prim:EnergySegmentMember2024-06-300001361538prim:UAndDSegmentMember2023-12-310001361538prim:EnergySegmentMember2023-12-310001361538us-gaap:TradeNamesMember2024-06-300001361538us-gaap:CustomerRelationshipsMember2024-06-300001361538us-gaap:TradeNamesMember2023-12-310001361538us-gaap:CustomerRelationshipsMember2023-12-310001361538us-gaap:EmployeeStockMember2024-01-012024-06-300001361538us-gaap:EmployeeStockMember2023-01-012023-06-300001361538us-gaap:RetainedEarningsMember2024-04-012024-06-300001361538us-gaap:RetainedEarningsMember2024-01-012024-06-300001361538us-gaap:RetainedEarningsMember2023-04-012023-06-300001361538us-gaap:RetainedEarningsMember2023-01-012023-06-300001361538prim:SecondAgreementMemberus-gaap:InterestRateSwapMember2023-01-310001361538us-gaap:InterestRateSwapMember2024-04-012024-06-300001361538us-gaap:InterestRateSwapMember2024-01-012024-06-300001361538us-gaap:InterestRateSwapMember2023-04-012023-06-300001361538us-gaap:InterestRateSwapMember2023-01-012023-06-300001361538us-gaap:InterestRateSwapMemberus-gaap:LoansPayableMember2023-01-310001361538us-gaap:InterestRateSwapMemberus-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMember2024-06-300001361538us-gaap:InterestRateSwapMemberus-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMember2023-12-310001361538us-gaap:InterestRateSwapMember2023-12-310001361538us-gaap:InterestRateSwapMember2024-06-300001361538us-gaap:LoansPayableMember2022-08-010001361538us-gaap:MortgagesMember2024-06-300001361538us-gaap:LoansPayableMember2024-06-300001361538prim:CommercialEquipmentFinancingDueJune2018ToAugust2022Member2024-06-300001361538us-gaap:MortgagesMember2023-12-310001361538us-gaap:LoansPayableMember2023-12-310001361538prim:CommercialEquipmentFinancingDueJune2018ToAugust2022Member2023-12-310001361538us-gaap:InterestRateSwapMemberus-gaap:LoansPayableMember2024-01-012024-06-300001361538prim:O2024Q2DividendsMember2024-04-012024-06-300001361538prim:O2024Q1DividendsMember2024-01-012024-03-310001361538prim:O2023Q4DividendsMember2023-10-012023-12-310001361538prim:O2023Q3DividendsMember2023-07-012023-09-300001361538prim:O2023Q2DividendsMember2023-04-012023-06-300001361538prim:O2023Q1DividendsMember2023-01-012023-03-310001361538us-gaap:FairValueInputsLevel1Memberus-gaap:FairValueMeasurementsRecurringMember2024-06-300001361538us-gaap:FairValueInputsLevel1Memberus-gaap:FairValueMeasurementsRecurringMember2023-12-3100013615382023-06-3000013615382022-12-310001361538us-gaap:AdditionalPaidInCapitalMember2024-04-012024-06-300001361538us-gaap:AdditionalPaidInCapitalMember2024-01-012024-06-300001361538us-gaap:AdditionalPaidInCapitalMember2023-04-012023-06-300001361538us-gaap:AdditionalPaidInCapitalMember2023-01-012023-06-300001361538prim:SpecialPurposeEntityMemberus-gaap:AccountsReceivableMember2024-06-300001361538srt:MaximumMember2024-07-3100013615382023-11-3000013615382021-11-300001361538prim:NonUnitedStatesMember2023-01-012023-12-310001361538us-gaap:EmployeeStockMember2022-05-012022-05-3100013615382024-07-012024-01-012024-06-300001361538prim:NonUnitedStatesMember2024-01-012024-06-300001361538prim:NonUnitedStatesMember2023-01-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:UAndDSegmentMember2024-04-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:EnergySegmentMember2024-04-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:UAndDSegmentMember2024-01-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:EnergySegmentMember2024-01-012024-06-300001361538us-gaap:OperatingSegmentsMemberprim:UAndDSegmentMember2023-04-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:EnergySegmentMember2023-04-012023-06-3000013615382023-04-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:UAndDSegmentMember2023-01-012023-06-300001361538us-gaap:OperatingSegmentsMemberprim:EnergySegmentMember2023-01-012023-06-300001361538prim:LongTermRetentionPlanMember2024-01-012024-06-300001361538prim:LongTermRetentionPlanMember2023-01-012023-06-300001361538prim:CreditFacilityWithPrivateBankBankOfWestAndIBERIABANKCorporationMember2022-08-012022-08-0100013615382023-01-012023-06-300001361538prim:TopTenCustomersMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2024-04-012024-06-300001361538prim:TopTenCustomersMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2024-01-012024-06-300001361538prim:TopTenCustomersMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2023-04-012023-06-300001361538prim:TopTenCustomersMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2023-01-012023-06-300001361538prim:TopTenCustomersMembersrt:MinimumMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2024-01-012024-06-300001361538prim:TopTenCustomersMembersrt:MaximumMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2024-01-012024-06-3000013615382024-06-3000013615382023-12-3100013615382024-07-012024-07-3100013615382024-04-012024-06-3000013615382024-07-2900013615382024-01-012024-06-30xbrli:sharesiso4217:USDxbrli:pureprim:customerprim:instrumentiso4217:USDxbrli:sharesiso4217:CAD

UNITED STATES

SECURITIES AND EXCHANGE COMMISSION

Washington, D.C. 20549

FORM 10-Q

(Mark One)

QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934.

For the quarterly period ended June 30, 2024

OR

TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934.

For the transition period from                    to                      .

Commission file number 001-34145

Primoris Services Corporation

(Exact name of registrant as specified in its charter)

Delaware

    

20-4743916

(State or Other Jurisdiction of

(I.R.S. Employer

Incorporation or Organization)

Identification No.)

2300 N. Field Street, Suite 1900

Dallas, Texas

75201

(Address of Principal Executive Offices)

(Zip Code)

Registrant’s telephone number, including area code: (214740-5600

Securities registered pursuant to Section 12(b) of the Act:

Title of each class

Trading symbol(s)

Name of each exchange on which registered

Common Stock, $0.0001 par value

PRIM

New York Stock Exchange

Indicate by check mark whether the registrant (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days.  Yes   No 

Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T (Section 232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).  Yes   No 

Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or an emerging growth company. See the definitions of “large accelerated filer”, “accelerated filer”, “smaller reporting company”, and “emerging growth company” in Rule 12b-2 of the Exchange Act.:

Large accelerated filer  

    

Accelerated filer  

Non-accelerated filer  

Smaller reporting company  

Emerging growth company  

If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act.

Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act).  Yes    No 

As of July 29, 2024, 53,672,740 shares of the registrant’s common stock, par value $0.0001 per share, were outstanding.

PRIMORIS SERVICES CORPORATION

INDEX

    

Page No.

Part I. Financial Information

Item 1. Financial Statements:

—Condensed Consolidated Balance Sheets as of June 30, 2024 and December 31, 2023 (Unaudited)

3

—Condensed Consolidated Statements of Income for the three and six months ended June 30, 2024 and 2023 (Unaudited)

4

—Condensed Consolidated Statements of Comprehensive Income for the three and six months ended June 30, 2024 and 2023 (Unaudited)

5

—Condensed Consolidated Statements of Stockholders’ Equity for the three and six months ended June 30, 2024 and 2023 (Unaudited)

6

—Condensed Consolidated Statements of Cash Flows for the six months ended June 30, 2024 and 2023 (Unaudited)

8

—Notes to Condensed Consolidated Financial Statements (Unaudited)

10

Item 2. Management’s Discussion and Analysis of Financial Condition and Results of Operations

25

Item 3. Quantitative and Qualitative Disclosures About Market Risk

36

Item 4. Controls and Procedures

36

Part II. Other Information

Item 1. Legal Proceedings

37

Item 5. Other Information

37

Item 6. Exhibits

37

Signatures

38

2

PART I.  FINANCIAL INFORMATION

ITEM 1.  FINANCIAL STATEMENTS

PRIMORIS SERVICES CORPORATION

CONDENSED CONSOLIDATED BALANCE SHEETS

(In Thousands, Except Share Amounts)

(Unaudited)

June 30,

December 31,

    

2024

    

2023

ASSETS

Current assets:

Cash and cash equivalents

$

207,363

$

217,778

Accounts receivable, net

 

888,267

 

685,439

Contract assets

 

873,008

 

846,176

Prepaid expenses and other current assets

 

122,583

 

135,840

Total current assets

 

2,091,221

 

1,885,233

Property and equipment, net

 

446,314

 

475,929

Operating lease assets

421,024

360,507

Intangible assets, net

 

217,283

 

227,561

Goodwill

 

857,650

 

857,650

Other long-term assets

 

16,396

 

20,547

Total assets

$

4,049,888

$

3,827,427

LIABILITIES AND STOCKHOLDERS’ EQUITY

Current liabilities:

Accounts payable

$

583,664

$

628,962

Contract liabilities

 

483,878

 

366,476

Accrued liabilities

 

324,732

 

263,492

Dividends payable

 

3,217

 

3,202

Current portion of long-term debt

 

89,270

 

72,903

Total current liabilities

 

1,484,761

 

1,335,035

Long-term debt, net of current portion

 

843,758

 

885,369

Noncurrent operating lease liabilities, net of current portion

308,114

263,454

Deferred tax liabilities

 

59,444

 

59,565

Other long-term liabilities

 

54,580

 

47,912

Total liabilities

 

2,750,657

 

2,591,335

Commitments and contingencies (See Note 13)

Stockholders’ equity

Common stock—$0.0001 par value; 90,000,000 shares authorized; 53,672,740 and 53,366,327 issued and outstanding as of June 30, 2024, and December 31, 2023, respectively

 

6

 

6

Additional paid-in capital

 

278,830

 

275,846

Retained earnings

 

1,023,075

 

961,028

Accumulated other comprehensive income

(2,680)

(788)

Total stockholders’ equity

 

1,299,231

 

1,236,092

Total liabilities and stockholders’ equity

$

4,049,888

$

3,827,427

See Accompanying Notes to Condensed Consolidated Financial Statements

3

PRIMORIS SERVICES CORPORATION

CONDENSED CONSOLIDATED STATEMENTS OF INCOME

(In Thousands, Except Per Share Amounts)

(Unaudited)

Three Months Ended

Six Months Ended

June 30, 

June 30, 

    

2024

    

2023

    

2024

    

2023

Revenue

$

1,563,715

$

1,413,377

$

2,976,422

$

2,670,273

Cost of revenue

 

1,377,005

 

1,256,113

 

2,656,336

 

2,413,276

Gross profit

 

186,710

 

157,264

 

320,086

 

256,997

Selling, general and administrative expenses

 

100,118

 

85,571

 

188,706

 

163,581

Transaction and related costs

522

 

898

1,072

 

3,593

Operating income

 

86,070

 

70,795

 

130,308

 

89,823

Other income (expense):

Foreign exchange gain, net

761

376

1,321

1,302

Other income (expense), net

 

81

 

713

 

(45)

 

1,044

Interest expense, net

 

(17,133)

 

(16,884)

 

(35,125)

 

(35,349)

Income before provision for income taxes

 

69,779

 

55,000

 

96,459

 

56,820

Provision for income taxes

 

(20,236)

 

(15,968)

 

(27,973)

 

(16,478)

Net income

49,543

39,032

68,486

40,342

Dividends per common share

$

0.06

$

0.06

$

0.12

$

0.12

Earnings per share:

Basic

$

0.92

$

0.73

$

1.28

$

0.76

Diluted

$

0.91

$

0.72

$

1.26

$

0.75

Weighted average common shares outstanding:

Basic

 

53,640

 

53,301

 

53,565

 

53,243

Diluted

 

54,653

 

54,324

 

54,522

 

54,083

See Accompanying Notes to Condensed Consolidated Financial Statements

4

PRIMORIS SERVICES CORPORATION

CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME

(In Thousands)

(Unaudited)

Three Months Ended

Six Months Ended

June 30, 

June 30, 

    

2024

    

2023

    

2024

    

2023

Net income

$

49,543

$

39,032

$

68,486

$

40,342

Other comprehensive income (loss), net of tax:

Foreign currency translation adjustments

(619)

 

1,378

(1,892)

1,493

Comprehensive income

$

48,924

$

40,410

$

66,594

$

41,835

See Accompanying Notes to Condensed Consolidated Financial Statements

5

PRIMORIS SERVICES CORPORATION

CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS’ EQUITY

(In Thousands, Except Share and Per Share Amounts)

(Unaudited)

Accumulated

Additional

Other

Total

Common Stock

Paid-in

Retained

Comprehensive

Stockholders’

    

Shares

    

Amount

    

Capital

    

Earnings

0

Income

    

Equity

Balance, March 31, 2024

 

53,630,490

$

6

$

274,711

$

976,749

$

(2,061)

$

1,249,405

Net income

 

 

 

 

49,543

 

49,543

Foreign currency translation adjustments, net of tax

(619)

(619)

Issuance of shares

6,400

 

 

298

 

 

298

Conversion of stock based awards, net of shares withheld for taxes

35,850

(133)

(133)

Stock-based compensation

 

 

 

3,954

 

 

3,954

Dividends declared ($0.06 per share)

 

 

 

 

(3,217)

 

(3,217)

Balance, June 30, 2024

 

53,672,740

$

6

$

278,830

$

1,023,075

$

(2,680)

$

1,299,231

Accumulated

Additional

Other

Total

Common Stock

Paid-in

Retained

Comprehensive

Stockholders’

    

Shares

    

Amount

    

Capital

    

Earnings

0

Income

    

Equity

Balance, December 31, 2023

 

53,366,327

$

6

$

275,846

$

961,028

$

(788)

$

1,236,092

Net income

 

 

 

 

68,486

 

68,486

Foreign currency translation adjustments, net of tax

(1,892)

(1,892)

Issuance of shares

 

34,844

1,396

 

1,396

Conversion of stock based awards, net of shares withheld for taxes

271,569

(4,772)

(4,772)

Stock-based compensation

6,360

6,360

Dividends declared ($0.12 per share)

 

(6,439)

 

(6,439)

Balance, June 30, 2024

 

53,672,740

$

6

$

278,830

$

1,023,075

$

(2,680)

$

1,299,231

6

PRIMORIS SERVICES CORPORATION

CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS’ EQUITY

(In Thousands, Except Share and Per Share Amounts)

(Unaudited)

Accumulated

Additional

Other

Total

Common Stock

Paid-in

Retained

Comprehensive

Stockholders’

    

Shares

    

Amount

    

Capital

    

Earnings

0

Income

0

Equity

Balance, March 31, 2023

 

53,282,636

$

6

$

265,817

$

845,795

$

(2,505)

$

1,109,113

Net income

 

 

 

 

39,032

 

 

39,032

Foreign currency translation adjustments, net of tax

1,378

1,378

Issuance of shares

 

10,264

 

 

257

 

 

 

257

Conversion of stock based awards, net of shares withheld for taxes

35,973

(52)

(52)

Stock-based compensation

3,009

3,009

Dividends declared ($0.06 per share)

 

 

 

 

(3,199)

 

 

(3,199)

Balance, June 30, 2023

 

53,328,873

$

6

$

269,031

$

881,628

$

(1,127)

$

1,149,538

Accumulated

Additional

Other

Total

Common Stock

Paid-in

Retained

Comprehensive

Stockholders’

    

Shares

    

Amount

    

Capital

    

Earnings

0

Income

0

Equity

Balance, December 31, 2022

 

53,124,899

$

6

$

263,771

$

847,681

$

(2,620)

$

1,108,838

Net income

 

 

 

 

40,342

 

 

40,342

Foreign currency translation adjustments, net of tax

1,493

1,493

Issuance of shares

 

49,949

 

 

1,263

 

 

 

1,263

Conversion of Restricted Stock Units, net of shares withheld for taxes

154,025

(1,391)

(1,391)

Stock-based compensation

5,388

5,388

Dividends declared ($0.12 per share)

 

 

 

 

(6,395)

 

 

(6,395)

Balance, June 30, 2023

 

53,328,873

$

6

$

269,031

$

881,628

$

(1,127)

$

1,149,538

See Accompanying Notes to Condensed Consolidated Financial Statements

7

PRIMORIS SERVICES CORPORATION

CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS

(In Thousands)

(Unaudited)

Six Months Ended

June 30, 

    

2024

    

2023

Cash flows from operating activities:

Net income

$

68,486

$

40,342

Adjustments to reconcile net income to net cash used in operating activities (net of effect of acquisitions):

Depreciation and amortization

 

50,274

 

54,754

Stock-based compensation expense

 

6,360

 

5,388

Gain on sale of property and equipment

 

(26,237)

 

(14,735)

Unrealized gain on interest rate swap

(231)

(2,745)

Other non-cash items

2,749

982

Changes in assets and liabilities:

Accounts receivable

 

(208,407)

 

(154,016)

Contract assets

 

(27,953)

 

(170,479)

Other current assets

 

(5,183)

 

27,291

Other long-term assets

(2,240)

(1,230)

Accounts payable

(44,520)

(21,959)

Contract liabilities

 

117,410

 

136,202

Operating lease assets and liabilities, net

 

(4,788)

 

2,354

Accrued liabilities

 

52,521

 

16,037

Other long-term liabilities

 

9,362

 

982

Net cash used in operating activities

 

(12,397)

 

(80,832)

Cash flows from investing activities:

Purchase of property and equipment

 

(34,637)

 

(42,392)

Proceeds from sale of assets

 

73,930

 

23,465

Cash paid for acquisitions, net of cash and restricted cash acquired

 

 

9,300

Net cash provided by (used in) investing activities

 

39,293

 

(9,627)

Cash flows from financing activities:

Borrowings under revolving lines of credit

390,000

Payments on revolving lines of credit

 

 

(370,000)

Payments on long-term debt

 

(26,148)

 

(51,234)

Payments related to tax withholding for stock-based compensation

(4,772)

(1,391)

Dividends paid

 

(6,424)

 

(6,383)

Other

(1,760)

 

(2,106)

Net cash used in financing activities

 

(39,104)

 

(41,114)

Effect of exchange rate changes on cash, cash equivalents and restricted cash

1,654

946

Net change in cash, cash equivalents and restricted cash

 

(10,554)

 

(130,627)

Cash, cash equivalents and restricted cash at beginning of the period

 

223,542

 

258,991

Cash, cash equivalents and restricted cash at end of the period

$

212,988

$

128,364

See Accompanying Notes to Condensed Consolidated Financial Statements

8

PRIMORIS SERVICES CORPORATION

CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (Continued)

(In Thousands)

(Unaudited)

SUPPLEMENTAL DISCLOSURES OF CASH FLOW INFORMATION

Six Months Ended June 30, 

    

2024

    

2023

Cash paid for interest

$

34,090

$

36,956

Cash paid for income taxes, net of refunds received

9,192

(16,293)

Leased assets obtained in exchange for new operating leases

120,228

92,555

SUPPLEMENTAL DISCLOSURES OF NONCASH INVESTING AND FINANCING ACTIVITIES

Six Months Ended June 30, 

    

2024

    

2023

Dividends declared and not yet paid

$

3,217

$

3,199

See Accompanying Notes to Condensed Consolidated Financial Statements

9

PRIMORIS SERVICES CORPORATION

NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS

(Dollars in Thousands, Except Share and Per Share Amounts)

(Unaudited)

Note 1—Nature of Business

Organization and operationsPrimoris Services Corporation is one of the leading providers of infrastructure services operating mainly in the United States and Canada. We provide a wide range of construction, maintenance, replacement, fabrication and engineering services to a diversified base of customers through our two segments.

We have longstanding customer relationships with utility, refining, petrochemical, power, midstream, and engineering companies, and state departments of transportation. We provide our services to a diversified base of customers, under a range of contracting options. A portion of our services are provided under Master Service Agreements (“MSA”), which are generally multi-year agreements. The remainder of our services are generated from contracts for specific construction or installation projects.

We are incorporated in the State of Delaware, and our corporate headquarters are located at 2300 N. Field Street, Suite 1900, Dallas, Texas 75201. Unless specifically noted otherwise, as used throughout these consolidated financial statements, “Primoris”, “the Company”, “we”, “our”, “us” or “its” refers to the business, operations and financial results of the Company and its wholly-owned subsidiaries.

Reportable Segments — The current reportable segments include the Utilities segment and the Energy segment. See Note 14 – “Reportable Segments” for a brief description of the reportable segments and their operations.

The classification of revenue and gross profit for segment reporting purposes can at times require judgment on the part of management. Our segments may perform services across industries or perform joint services for customers in multiple industries. To determine reportable segment gross profit, certain allocations, including allocations of shared and indirect costs, such as facility costs, equipment costs and indirect operating expenses, were made.

Note 2—Basis of Presentation

Interim condensed consolidated financial statements The interim condensed consolidated financial statements for the three and six months ended June 30, 2024 and 2023 have been prepared in accordance with Rule 10-01 of Regulation S-X of the Securities Exchange Act of 1934, as amended. As such, certain disclosures, which would substantially duplicate the disclosures contained in our Annual Report on Form 10-K, filed on February 27, 2024, which contains our audited consolidated financial statements for the year ended December 31, 2023, have been omitted.

This Form 10-Q should be read in conjunction with our most recent Annual Report on Form 10-K. The interim financial information is unaudited.  In the opinion of management, the interim information includes all adjustments (consisting of normal recurring adjustments) necessary for the fair presentation of the interim financial information. 

Reclassification Certain previously reported amounts have been reclassified to conform to the current year

presentation.

10

Restricted cash Restricted cash consists primarily of cash balances that are restricted as to withdrawal or usage and contract retention payments made by customers into escrow bank accounts and are included in prepaid expenses and other current assets in our Condensed Consolidated Balance Sheets. Escrow cash accounts are released to us by customers as projects are completed in accordance with contract terms. The following tables provide a reconciliation of cash, cash equivalents and restricted cash reported within the Condensed Consolidated Balance Sheets to the totals of such amounts shown in the Condensed Consolidated Statements of Cash Flows (in thousands):

June 30,

    

2024

    

2023

Cash and cash equivalents

$

207,363

$

122,692

Restricted cash included in prepaid expenses and other current assets

5,625

5,672

Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows

$

212,988

$

128,364

    

    

December 31,

    

2023

    

2022

Cash and cash equivalents

$

217,778

$

248,692

Restricted cash included in prepaid expense and other current assets

5,764

10,299

Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows

$

223,542

$

258,991

Accounts Receivable Securitization Facility — In June 2023, we entered into an Accounts Receivable Securitization Facility (“the Facility”) with PNC Bank, National Association ("PNC") to improve cash flows from trade accounts receivable. In July 2024, we renewed the Facility for a two-year term, added Regions Bank (“Regions”) to the Facility, and increased the maximum purchase commitment to $150.0 million, at any one time. Fees associated with the Facility for the six months ended June 30, 2024, were $2.7 million and are included in interest expense in the Condensed Consolidated Statements of Income.

Under the Facility, certain of our designated subsidiaries may sell their trade accounts receivable as they are originated to a wholly owned bankruptcy remote Special Purpose Entity (“SPE”) created specifically for this purpose. We control and, therefore, consolidate the SPE in our consolidated financial statements. The SPE transfers ownership and control of qualifying accounts receivable to PNC and Regions up to the maximum purchase commitment. We and our related subsidiaries have no continuing involvement in the transferred accounts receivable, other than collection and administrative responsibilities, and, once sold, the accounts receivable are no longer available to satisfy our creditors or our related subsidiaries. We account for accounts receivable sold to the banking counterparty as a sale of financial assets and derecognize the trade accounts receivable from our Condensed Consolidated Balance Sheets.

The total outstanding balance of trade accounts receivable that have been sold and derecognized is $75.0 million as of June 30, 2024. The SPE owned $266.4 million of trade accounts receivable as of June 30, 2024, which are included in Accounts receivable, net on the Condensed Consolidated Balance Sheets. For the six months ended June 30, 2024 and 2023, we received $10.0 million and $25.0 million, respectively, in cash proceeds from the Facility, and repaid $10.0 million and $0, respectively to the Facility, which are included in cash from operating activities in the Condensed Consolidated Statements of Cash Flows. As of June 30, 2024, we had $25.0 million available capacity under the Facility prior to the July renewal.

Customer concentration — We operate in multiple industry sectors encompassing the construction of commercial, industrial and public works infrastructure assets primarily throughout the United States. Typically, the top ten customers in any one calendar year generate revenue that is approximately 35% to 45% of total revenue; however, the companies that comprise the top ten customers vary from year to year.

For the three and six months ended June 30, 2024, approximately 39.7% and 42.3%, respectively, of total revenue was generated from our top ten customers and no one customer accounted for more than 10% of our total revenue.

For the three and six months ended June 30, 2023, approximately 39.5% and 38.1%, respectively, of total revenue was generated from our top ten customers and no one customer accounted for more than 10% of our total revenue.

11

Recently Issued Accounting Pronouncements

In November 2023, the FASB issued ASU No. 2023-07, “Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures” which changes the accounting and reporting of segment disclosure requirements primarily through enhanced disclosure about significant segment expenses in accordance with FASB Accounting Standards Codification 280, Segment Reporting. This ASU is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The amendments should be applied prospectively on or after the effective date. We adopted the new standard on January 1, 2024, on a prospective basis. This ASU will likely result in us including additional required disclosures in the financial statement footnotes in our annual report on form 10-K commencing with the year ending December 31, 2024, but is not expected to have an effect on our consolidated financial position, results of operations or cash flows.

In December 2023, the FASB issued ASU No. 2023-09, “Income Taxes (Topic 740): Improvements to Income Tax Disclosures” that requires presentation of specific categories of reconciling items, as well reconciling items that meet a quantitative threshold, in the reconciliation between the income tax provision and the income tax provision using statutory tax rates. The standard also requires disclosure of income taxes paid disaggregated by jurisdiction with separate disclosure of income taxes paid to individual jurisdictions that meet a quantitative threshold. ASU No. 2023-09 is effective for fiscal years beginning after December 15, 2024, with early adoption permitted. The amendments should be applied prospectively; however, entities have the option to apply retrospectively for each period presented. We do not expect the adoption of this new standard in 2025 to have an impact on our consolidated financial position, results of operations or cash flows.

Note 3—Fair Value Measurements

ASC Topic 820, “Fair Value Measurements and Disclosures” (“ASC Topic 820”), defines fair value, establishes a framework for measuring fair value in U.S. generally accepted accounting principles (“GAAP”) and requires certain disclosures about fair value measurements. ASC Topic 820 addresses fair value GAAP for financial assets and financial liabilities that are re-measured and reported at fair value at each reporting period and for non-financial assets and liabilities that are re-measured and reported at fair value on a non-recurring basis.

In general, fair values determined by Level 1 inputs use quoted prices (unadjusted) in active markets for identical assets or liabilities. Fair values determined by Level 2 inputs use data points that are observable such as quoted prices, interest rates and yield curves. Fair values determined by Level 3 inputs are “unobservable data points” for the asset or liability and include situations where there is little, if any, market activity for the asset or liability.

The following table presents, for each of the fair value hierarchy levels identified under ASC Topic 820, our financial assets and liabilities that are required to be measured at fair value as of June 30, 2024 and December 31, 2023 (in thousands):

Fair Value Measurements at Reporting Date

    

    

Significant

    

Quoted Prices

Other

Significant

in Active Markets

Observable

Unobservable

for Identical Assets

Inputs

Inputs

    

(Level 1)

    

(Level 2)

    

(Level 3)

Assets as of June 30, 2024:

Cash and cash equivalents

$

207,363

 

$

 

$

Interest rate swap

1,864

Assets as of December 31, 2023:

Cash and cash equivalents

217,778

 

 

Interest rate swap

1,633

Other financial instruments not listed in the table consist of accounts receivable, accounts payable and certain accrued liabilities. These financial instruments generally approximate fair value based on their short-term nature. The carrying value of our long-term debt approximates fair value based on comparison with current prevailing market rates for loans of similar risks and maturities.

12

The interest rate swap is measured at fair value using the income approach, which discounts the future net cash settlements expected under the derivative contracts to a present value. These valuations primarily utilize indirectly observable inputs, including contractual terms, interest rates and yield curves observable at commonly quoted intervals. See Note 8 – “Derivative Instruments” for additional information.

Note 4—Revenue

We generate revenue under a range of contracting types, including fixed-price, unit-price, time and material, and cost reimbursable plus fee contracts, each of which has a different risk profile. For the six months ended June 30, 2024 and 2023, $2,116.8 million, and $1,777.6 million, respectively, of our revenue is derived from contracts where scope is adequately defined, and therefore we can reasonably estimate total contract value. For these contracts, revenue is recognized over time as work is completed because of the continuous transfer of control to the customer (typically using an input measure such as costs incurred to date relative to total estimated costs at completion to measure progress). For certain contracts, where scope is not adequately defined and we cannot reasonably estimate total contract value, revenue is recognized either on an input basis, based on contract costs incurred as defined within the respective contracts, or an output basis, based on units completed. Costs to obtain contracts are generally not significant and are expensed in the period incurred.

We evaluate whether two or more contracts should be combined and accounted for as one single performance obligation and whether a single contract should be accounted for as more than one performance obligation. ASC 606, Revenue from Contracts with Customers, defines a performance obligation as a contractual promise to transfer a distinct good or service to a customer. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. Our evaluation requires significant judgment and the decision to combine a group of contracts or separate a contract into multiple performance obligations could change the amount of revenue and profit recorded in a given period. The majority of our contracts have a single performance obligation, as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contract and, therefore, is not distinct. However, occasionally we have contracts with multiple performance obligations. For contracts with multiple performance obligations, we allocate the contract’s transaction price to each performance obligation using the observable standalone selling price, if available, or alternatively our best estimate of the standalone selling price of each distinct performance obligation in the contract. The primary method used to estimate standalone selling price is the expected cost plus a margin approach for each performance obligation.

As of June 30, 2024, we had $5.1 billion of remaining performance obligations. We expect to recognize 49.3% of our remaining performance obligations as revenue during the next 12 months and substantially all of the remaining balance in the 12 to 18 months thereafter.

Accounting for long-term contracts involves the use of various techniques to estimate total transaction price and costs. For long-term contracts, transaction price, estimated cost at completion and total costs incurred to date are used to calculate revenue earned. Unforeseen events and circumstances can alter the estimate of the costs and potential profit associated with a particular contract. Total estimated costs, and thus contract revenue and income, can be impacted by changes in productivity, scheduling, the unit cost of labor, subcontracts, materials and equipment. Additionally, external factors such as weather, client needs, client delays in providing permits and approvals, labor availability, governmental regulation, politics and pandemics may affect the progress of a project’s completion, and thus the timing of revenue recognition. To the extent that original cost estimates are modified, estimated costs to complete increase, delivery schedules are delayed, or progress under a contract is otherwise impeded, cash flow, revenue recognition and profitability from a particular contract may be adversely affected.

The nature of our contracts gives rise to several types of variable consideration, including contract modifications (change orders and claims), liquidated damages, volume discounts, performance bonuses, incentive fees, and other terms that can either increase or decrease the transaction price. We estimate variable consideration as the most likely amount to which we expect to be entitled. We include estimated amounts in the transaction price to the extent we believe we have an enforceable right, and it is probable that a significant reversal of cumulative revenue recognized will not occur. Our estimates of variable consideration and the determination of whether to include estimated amounts in the transaction price are based largely on an assessment of our anticipated performance and all information (historical, current and forecasted) that is reasonably available to us at this time.

13

Contract modifications result from changes in contract specifications or requirements. We consider unapproved change orders to be contract modifications for which customers have not agreed to both scope and price. We consider claims to be contract modifications for which we seek, or will seek, to collect from customers, or others, for customer-caused changes in contract specifications or design, or other customer-related causes of unanticipated additional contract costs on which there is no agreement with customers. Claims can also be caused by non-customer-caused changes, such as rain or other weather delays. Costs associated with contract modifications are included in the estimated costs to complete the contracts and are treated as project costs when incurred. In most instances, contract modifications are for goods or services that are not distinct, and, therefore, are accounted for as part of the existing contract. The effect of a contract modification on the transaction price, and our measure of progress for the performance obligation to which it relates, is recognized as an adjustment to revenue on a cumulative catch-up basis. In some cases, settlement of contract modifications may not occur until after completion of work under the contract.

As a significant change in one or more of these estimates could affect the profitability of our contracts, we review and update our contract-related estimates regularly. We recognize adjustments in estimated profit on contracts under the cumulative catch-up method. Under this method, the cumulative impact of the profit adjustment is recognized in the period the adjustment is identified. Revenue and profit in future periods of contract performance are recognized using the adjusted estimate. In the three months ended June 30, 2024, revenue was positively impacted by $3.9 million as a result of changes in estimates associated with performance obligations satisfied prior to March 31, 2024. In the six months ended June 30, 2024, revenue was negatively impacted by $0.7 million as a result of changes in estimates associated with performance obligations satisfied prior to December 31, 2023. If at any time the estimate of contract profitability indicates an anticipated loss on a contract, the projected loss is recognized in full, including the reversal of any previously recognized profit, in the period it is identified and recognized as an “accrued loss provision” which is included in “Contract liabilities” on the Condensed Consolidated Balance Sheets. For contract revenue recognized over time, the accrued loss provision is adjusted so that the gross profit for the contract remains zero in future periods.

As of June 30, 2024, we had approximately $191.9 million of unapproved contract modifications included in the aggregate transaction prices. These contract modifications were in the process of being negotiated in the normal course of business. Approximately $177.9 million of the contract modifications had been recognized as revenue on a cumulative catch-up basis through June 30, 2024.

In all forms of contracts, we estimate the collectability of contract amounts at the same time that we estimate project costs. If we anticipate that there may be issues associated with the collectability of the full amount calculated as the transaction price, we may reduce the amount recognized as revenue to reflect the uncertainty associated with realization of the eventual cash collection. For example, when a cost reimbursable project exceeds the client’s expected budget amount, the client frequently requests an adjustment to the final amount. Similarly, some utility clients reserve the right to audit costs for significant periods after performance of the work.

The timing of when we bill our customers is generally dependent upon agreed-upon contractual terms, milestone billings based on the completion of certain phases of the work, or when services are provided. Sometimes, billing occurs subsequent to revenue recognition, resulting in unbilled revenue, which is a contract asset. Also, we sometimes receive advances or deposits from our customers before revenue is recognized, resulting in deferred revenue, which is a contract liability.

The caption “Contract assets” in the Condensed Consolidated Balance Sheets represents the following:

unbilled revenue, which arises when revenue has been recorded but the amount will not be billed until a later date;

retainage amounts for the portion of the contract price earned by us for work performed, but held for payment by the customer as a form of security until we reach certain construction milestones; and

contract materials for certain job specific materials not yet installed, which are valued using the specific identification method relating to the cost incurred to a specific project.

14

Contract assets consist of the following (in thousands):

June 30, 

December 31, 

    

2024

    

2023

Unbilled revenue

$

609,247

$

604,166

Retention receivable

217,971

202,358

Contract materials (not yet installed)

 

45,790

 

39,652

$

873,008

$

846,176

Contract assets increased by $26.8 million compared to December 31, 2023, primarily due to higher retention receivable.

The caption “Contract liabilities” in the Condensed Consolidated Balance Sheets represents the following:

deferred revenue, which arises when billings are in excess of revenue recognized to date; and

the accrued loss provision.

Contract liabilities consist of the following (in thousands):

June 30, 

December 31, 

    

2024

    

2023

Deferred revenue

$

482,014

$

363,159

Accrued loss provision

 

1,864

 

3,317

$

483,878

$

366,476

Contract liabilities increased by $117.4 million compared to December 31, 2023, due to higher deferred revenue.

Revenue recognized for the six months ended June 30, 2024, that was included in the contract liability balance as of December 31, 2023, was approximately $304.1 million.

The following tables present our revenue disaggregated into various categories.

MSA and Non-MSA revenue was as follows (in thousands):

For the three months ended June 30, 2024

Segment

    

MSA

    

Non-MSA

    

Total

Utilities

$

496,458

 

$

124,340

 

 

620,798

Energy

77,952

895,540

973,492

Intersegment Eliminations

(44)

(30,531)

(30,575)

Total

$

574,366

 

$

989,349

 

$

1,563,715

For the six months ended June 30, 2024

Segment

    

MSA

    

Non-MSA

    

Total

Utilities

$

877,956

$

230,766

$

1,108,722

Energy

170,718

1,750,352

1,921,070

Intersegment Eliminations

(238)

(53,132)

(53,370)

Total

$

1,048,436

 

$

1,927,986

 

$

2,976,422

For the three months ended June 30, 2023

Segment

MSA

    

Non-MSA

    

Total

Utilities

$

480,131

 

$

169,107

 

$

649,238

Energy

67,206

711,509

778,715

Intersegment Eliminations

(2,950)

(11,626)

(14,576)

Total

$

544,387

 

$

868,990

 

$

1,413,377

15

For the six months ended June 30, 2023

Segment

MSA

Non-MSA

Total

Utilities

$

853,767

$

329,234

$

1,183,001

Energy

144,356

1,362,015

1,506,371

Intersegment Eliminations

(4,617)

(14,482)

(19,099)

Total

$

993,506

 

$

1,676,767

 

$

2,670,273

Revenue by contract type was as follows (in thousands):

For the three months ended June 30, 2024

Segment

    

Fixed-price

    

Unit-price

    

Cost reimbursable (1)

    

Total

Utilities

$

93,571

 

$

387,980

 

$

139,247

 

$

620,798

Energy

539,406

164,600

269,486

973,492

Intersegment Eliminations

(30,536)

(12)

(27)

(30,575)

Total

$

602,441

 

$

552,568

 

$

408,706

 

$

1,563,715

(1)Includes time and material and cost reimbursable plus fee contracts.

For the six months ended June 30, 2024

Segment

    

Fixed-price

    

Unit-price

    

Cost reimbursable (1)

    

Total

Utilities

$

180,571

$

685,405

$

242,746

$

1,108,722

Energy

1,142,706

307,389

470,975

1,921,070

Intersegment Eliminations

(51,485)

(1,765)

(120)

(53,370)

Total

$

1,271,792

 

$

991,029

 

$

713,601

 

$

2,976,422

(1)Includes time and material and cost reimbursable plus fee contracts.

For the three months ended June 30, 2023

Segment

Fixed-price

    

Unit-price

    

Cost reimbursable (1)

    

Total

Utilities

$

101,738

 

$

411,594

 

$

135,906

 

$

649,238

Energy

484,996

153,892

139,827

778,715

Intersegment Eliminations

(3,310)

(11,008)

(258)

(14,576)

Total

$

583,424

 

$

554,478

 

$

275,475

 

$

1,413,377

(1)Includes time and material and cost reimbursable plus fee contracts.

For the six months ended June 30, 2023

Segment

Fixed-price

Unit-price

Cost reimbursable (1)

Total

Utilities

$

187,685

734,965

$

260,351

$

1,183,001

Energy

1,014,560

280,219

211,592

1,506,371

Intersegment Eliminations

(6,059)

(11,866)

(1,174)

(19,099)

Total

$

1,196,186

 

$

1,003,318

 

$

470,769

 

$

2,670,273

(1)Includes time and material and cost reimbursable plus fee contracts.

Each of these contract types has a different risk profile. Typically, we assume more risk with fixed-price contracts. Unforeseen events and circumstances can alter the estimate of the costs and potential profit associated with a particular fixed-price contract. However, these types of contracts offer additional profits when we complete the work for less cost than originally estimated. Unit-price and cost reimbursable contracts generally subject us to lower risk. Accordingly, the associated fees are usually lower than fees earned on fixed-price contracts. Under these contracts, our profit may vary if actual costs vary significantly from the negotiated rates.

16

Note 5—Goodwill and Intangible Assets

The carrying amount of goodwill by reportable segment was as follows (in thousands):

June 30, 

December 31, 

Reporting Segment

    

2024

    

2023

Utilities

 

$

703,462

$

703,462

Energy

 

 

154,188

 

154,188

Total Goodwill

$

857,650

$

857,650

The table below summarizes the intangible asset categories and amounts, which are amortized on a straight-line basis (in thousands):

June 30, 2024

December 31, 2023

Gross Carrying
Amount

    

Accumulated
Amortization

    

Intangible assets, net

    

Gross Carrying
Amount

    

Accumulated
Amortization

    

Intangible assets, net

Tradenames

$

19,220

$

(17,164)

$

2,056

$

19,220

$

(15,799)

$

3,421

Customer relationships

 

295,977

 

(80,750)

 

215,227

 

295,977

 

(71,837)

 

224,140

Total

$

315,197

$

(97,914)

$

217,283

$

315,197

$

(87,636)

$

227,561

Amortization expense of intangible assets was $5.1 million and $5.3 million for the three months ended June 30, 2024, and 2023, respectively, and $10.3 million and $11.4 million for the six months ended June 30, 2024 and 2023, respectively. Estimated future amortization expense for intangible assets is as follows (in thousands):

Estimated

Intangible

Amortization

For the Years Ending December 31, 

    

Expense

2024 (remaining six months)

$

9,396

2025

17,661

2026

 

16,141

2027

 

15,604

2028

 

14,381

Thereafter

 

144,100

$

217,283

Note 6—Accounts Payable and Accrued Liabilities

As of June 30, 2024, and December 31, 2023, accounts payable included retention amounts of approximately $35.3 million and $24.7 million, respectively. These amounts owed to subcontractors have been retained pending contract completion and customer acceptance of jobs.

The following is a summary of accrued liabilities (in thousands):

June 30, 

December 31, 

    

2024

    

2023

Payroll and related employee benefits

$

144,759

$

108,618

Current operating lease liability

107,476

96,411

Casualty insurance reserves

 

13,502

 

18,015

Corporate income taxes and other taxes

 

33,674

 

14,203

Other

 

25,321

 

26,245

$

324,732

$

263,492

17

Note 7—Credit Arrangements

Long-term debt and credit facilities consist of the following (in thousands):

June 30, 

December 31, 

    

2024

    

2023

Term loan

$

862,316

$

874,128

Revolving credit facility

Commercial equipment notes

57,114

71,004

Mortgage notes

 

19,170

 

19,615

Total debt

938,600

964,747

Unamortized debt issuance costs

(5,572)

(6,475)

Total debt, net

$

933,028

$

958,272

Less: current portion

 

(89,270)

 

(72,903)

Long-term debt, net of current portion

$

843,758

$

885,369

The weighted average interest rate on total debt outstanding as of June 30, 2024 and December 31, 2023 was 6.6% and 6.8%, respectively.

On August 1, 2022, we entered into the Third Amended and Restated Credit Agreement (the “Amended Credit Agreement”), which increased our term loan to an aggregate principal amount of $945.0 million (the “Term Loan”) and increased our revolving credit facility to $325.0 million (the “Revolving Credit Facility”), under which the lenders agreed to make loans on a revolving basis from time to time and to issue letters of credit for up to the $325.0 million committed amount. The maturity date of the Amended Credit Agreement is August 1, 2027. As of June 30, 2024, commercial letters of credit outstanding were $51.6 million. There were no outstanding borrowings under the Revolving Credit Facility, and available borrowing capacity was $273.4 million as of June 30, 2024.

The Amended Credit Agreement contains various restrictive and financial covenants including, among others, a net senior debt/EBITDA ratio and minimum EBITDA to cash interest ratio. In addition, the Amended Credit Agreement includes restrictions on investments, change of control provisions and provisions in the event we dispose of more than 20% of our total assets. We were in compliance with the covenants for the Amended Credit Agreement as of June 30, 2024.

On January 31, 2023, we entered into an interest rate swap agreement to manage our exposure to the fluctuations in variable interest rates. The swap effectively exchanged the interest rate on $300.0 million of the debt outstanding under our Term Loan from variable to a fixed rate of 4.095% per annum, plus an applicable margin, which was 2.00% as of June 30, 2024. The interest rate swap matures on January 31, 2025. See Note 8 – “Derivative Instruments”.

Canadian Credit Facilities

We have credit facilities totaling $14.0 million in Canadian dollars for the purposes of issuing commercial letters of credit and providing funding for working capital. As of June 30, 2024, commercial letters of credit outstanding were $0.9 million in Canadian dollars and there were no outstanding borrowings. Available capacity as of June 30, 2024 was $13.1 million in Canadian dollars.

Note 8—Derivative Instruments

We are exposed to certain market risks related to changes in interest rates. To monitor and manage these market risks, we have established risk management policies and procedures. We do not enter into derivative instruments for any purpose other than hedging interest rate risk. None of our derivative instruments are used for trading purposes.

18

Interest Rate Risk. We are exposed to variable interest rate risk as a result of variable-rate borrowings under our Amended Credit Agreement. To manage fluctuations in cash flows resulting from changes in interest rates on a portion of our variable-rate debt, we entered into an interest rate swap agreement on January 31, 2023, with a notional amount of $300.0 million. The swap was not designated as a hedge for accounting purposes. The swap effectively changes the variable-rate cash flow exposure on the debt obligations to fixed rates. The fair value of outstanding interest rate swap derivatives can vary significantly from period to period depending on the total notional amount of swap derivatives outstanding and fluctuations in market interest rates compared to the interest rates fixed by the swap. As of June 30, 2024, and December 31, 2023, our outstanding interest rate swap agreement contained a notional amount of $300.0 million maturing on January 31, 2025.

Credit Risk. By using derivative instruments to economically hedge exposures to changes in interest rates, we are exposed to counterparty credit risk. Credit risk is the failure of a counterparty to perform under the terms of a derivative contract. When the fair value of a derivative contract is positive, the counterparty owes us, which creates credit risk for us. When the fair value of a derivative contract is negative, we owe the counterparty and, therefore, we do not possess credit risk. We minimize the credit risk in derivative instruments by entering into transactions with high quality counterparties. We have entered into netting agreements, including International Swap Dealers Association (“ISDA”) Agreements, which allow for netting of contract receivables and payables in the event of default by either party.

The following table summarizes the fair value of our derivative contracts included in the Condensed Consolidated Balance Sheets (in thousands):

    

    

    

June 30, 

    

December 31, 

Balance Sheet Location

2024

2023

Interest rate swap

 

Other current assets

$

1,864

$

Interest rate swap

Other long-term assets

1,633

The following table summarizes the amounts recognized with respect to our derivative instruments within the Condensed Consolidated Statements of Income (in thousands):

Three Months Ended

Six Months Ended

Location of Gain

June 30, 

June 30, 

    

Recognized on Derivatives

    

2024

    

2023

2024

    

2023

Interest rate swap

 

Interest expense, net

$

578

$

4,630

$

2,251

$

5,597

Cash flows from derivatives settled are reported as cash flows from operating activities.

Note 9—Income Taxes

We are subject to tax liabilities imposed by multiple jurisdictions. We determine our best estimate of the annual effective tax rate at each interim period using expected annual pre-tax earnings, statutory tax rates and available tax planning opportunities. Certain significant or unusual items are separately recognized in the quarter in which they occur, which can cause variability in the effective tax rate from quarter to quarter. We recognize interest and penalties related to uncertain tax positions, if any, as an income tax expense.

The effective tax rate on income for the six months ended June 30, 2024, and 2023 is 29.0%. For the first six months of 2024 and 2023, our tax rate differed from the U.S. federal statutory rate of 21.0% primarily due to the impact of state income taxes and nondeductible components of per diem expenses.

Our U.S. federal income tax returns are generally no longer subject to examination for tax years before 2020. The statutes of limitation of state and foreign jurisdictions generally vary between 3 to 5 years. Accordingly, our state and foreign income tax returns are generally no longer subject to examination for tax years before 2018.

Income taxes are accounted for under the asset and liability method. Deferred tax assets and liabilities are recognized for temporary differences between the financial reporting bases and tax bases of assets and liabilities based on enacted tax rates expected to be in effect when such amounts are realized or settled. However, deferred tax assets are recognized only to the extent that it is more likely than not that they will be realized based upon consideration of available evidence, including future reversals of existing taxable temporary differences, future projected taxable income, the length

19

of the tax asset carryforward periods and tax planning strategies. The effects of remeasurement of deferred tax assets and liabilities resulting from changes in tax rates are recognized in income in the period of enactment.

Note 10—Dividends and Earnings Per Share

We paid cash dividends during 2024 and 2023 as follows:

Declaration Date

    

Record Date

    

Date Paid

    

Amount Per Share

February 22, 2023

March 31, 2023

April 14, 2023

0.06

May 3, 2023

June 30, 2023

July 14, 2023

0.06

August 2, 2023

September 29, 2023

October 13, 2023

0.06

November 2, 2023

December 29, 2023

January 12, 2024

0.06

February 21, 2024

March 28, 2024

April 15, 2024

0.06

May 1, 2024

June 28, 2024

July 15, 2024

0.06

The payment of future dividends is contingent upon our revenue and earnings, capital requirements and our general financial condition, as well as contractual restrictions and other considerations deemed relevant by the Board of Directors.

The table below presents the computation of basic and diluted earnings per share for the three and six months ended June 30, 2024 and 2023 (in thousands, except per share amounts).

Three Months Ended June 30, 

Six Months Ended June 30, 

2024

    

2023

    

2024

    

2023

Numerator:

Net income

$

49,543

$

39,032

$

68,486

$

40,342

Denominator:

Weighted average shares for computation of basic earnings per share:

 

53,640

 

53,301

 

53,565

 

53,243

Dilutive effect of stock-based awards

 

1,013

 

1,023

 

957

 

840

Weighted average shares for computation of diluted earnings per share

 

54,653

 

54,324

 

54,522

 

54,083

Earnings per share:

Basic

$

0.92

$

0.73

$

1.28

$

0.76

Diluted

$

0.91

$

0.72

$

1.26

$

0.75

Note 11—Stockholders’ Equity

Common stock

We issued 11,359 and 21,245 shares of common stock in the six months ended June 30, 2024, and 2023, respectively, under our long-term retention plan (“LTR Plan”). The shares were purchased by the participants in the LTR Plan with payment made to us of $0.3 million in both the six months ended June 30, 2024, and 2023. Our LTR Plan for certain managers and executives allows participants to use a portion of their annual bonus amount to purchase our common stock at a discount from the market price. The shares purchased in the six months ended June 30, 2024, were a portion of bonus amounts earned in 2023, and the number of shares purchased was calculated based on 75% of the average daily closing market price of our common stock during December 2023. The shares purchased in the six months ended June 30, 2023, were for bonus amounts earned in 2022, and the number of shares was calculated based on 75% of the average daily closing market price during December 2022.

During the three months ended June 30, 2024, and 2023, we issued 6,400 and 10,264 shares of common stock, respectively, as part of the quarterly compensation of the non-employee members of the Board of Directors. During the six months ended June 30, 2024, and 2023, we issued 14,384 and 22,384 shares of common stock, respectively, as part of the quarterly compensation of the non-employee members of the Board of Directors.

20

During the three and six months ended June 30, 2024, a total of 35,850 and 271,569 restricted and performance stock units, net of forfeitures for tax withholdings, respectively, were converted to common stock. There were 35,973 and 154,025 restricted stock units, net of forfeitures for tax withholdings, converted to common stock during the three and six months ended June 30, 2023, respectively.

Employee Stock Purchase Plan

In May 2022, our shareholders approved the 2022 Primoris Services Corporation Employee Stock Purchase Plan (the “ESPP”), for which eligible full-time employees can purchase shares of our common stock at a discount. The purchase price of the stock is 90% of the lower of the market price at the beginning of the offering period or the end of the offering period. Purchases occur semi-annually, approximately 30 days following the filing of our Annual Report on Form 10-K for the fiscal year ended December 31 of each year, but in no cases can extend beyond March 31 of the period or year, and approximately 30 days following the filing of our Quarterly Report on Form 10-Q for the fiscal quarter ended June 30 of each year. For the six months ended June 30, 2024, 9,101 shares were purchased at an average discounted purchase price of $35.52 per share. For the six months ended June 30, 2023, 6,320 shares were purchased at an average discounted purchase price of $21.83 per share.

Share Purchase Plan

In November 2021, our Board of Directors authorized a $25.0 million share purchase program. Under the share purchase program, we can, depending on market conditions, share price and other factors, acquire shares of our common stock on the open market or in privately negotiated transactions. In November 2023, our Board of Directors replenished the limit to $25.0 million and extended the program to December 31, 2024. During the six months ended June 30, 2024 and 2023, we did not purchase any shares of common stock.

Note 12—Leases

We lease administrative and operational facilities, which are generally longer-term, project specific facilities or yards, and construction equipment under non-cancelable operating leases. We determine if an arrangement is a lease at inception. We have lease agreements with lease and non-lease components, which are generally accounted for separately. Operating leases are included in “Operating lease assets”, “Accrued liabilities”, and “Noncurrent operating lease liabilities, net of current portion” on our Condensed Consolidated Balance Sheets. We also made an accounting policy election in which leases with an initial term of 12 months or less are not recorded on the balance sheet and lease payments are recognized in the Condensed Consolidated Statements of Income on a straight-line basis over the lease term.

Operating lease assets and operating lease liabilities are recognized at commencement date based on the present value of the future minimum lease payments over the lease term. In determining our lease term, we include options to extend or terminate the lease when it is reasonably certain that we will exercise that option. For our leases that do not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date to determine the present value of future payments. Lease expense from minimum lease payments is recognized on a straight-line basis over the lease term.

Our leases have remaining lease terms that expire at various dates through 2034, some of which may include options to extend the leases for up to 5 years. The exercise of lease extensions is at our sole discretion. Periodically, we sublease excess facility space, but any sublease income is generally not significant. Our lease agreements do not contain any material residual value guarantees or material restrictive covenants.

21

The components of lease expense are as follows (in thousands):

Three Months Ended June 30, 

Six Months Ended June 30, 

2024

2023

    

2024

2023

Operating lease expense (1)

$

37,145

$

25,110

$

71,770

$

47,982

________________________________________

(1)Includes short-term leases which are immaterial.

Our operating lease liabilities are reported on the Condensed Consolidated Balance Sheets as follows (in thousands):

June 30, 

December 31, 

    

2024

2023

Accrued liabilities

$

107,476

$

96,411

Noncurrent operating lease liabilities, net of current portion

 

308,114

 

263,454

$

415,590

$

359,865

Note 13—Commitments and Contingencies

Legal proceedings We are subject to claims and legal proceedings from time to time arising out of our business. We accrue for loss contingencies when we conclude that a loss from such claims or legal proceedings is probable and the amount is reasonably estimable. When only a range of amounts is reasonably estimable and no amount within the range is more likely than another, the low end of the range is recorded. While the ultimate amount of liability incurred in any of these matters is dependent on future developments, in our opinion, the recorded liability is adequate to cover the future payment of such liability and claims. Any adjustments to the recorded liability will be reflected in earnings in the periods in which such adjustments become known. In determining whether it is possible to provide a reasonably estimable amount of possible loss, or range of possible loss, we review and evaluate our litigation and regulatory matters on a quarterly basis in light of potentially relevant factual and legal developments. If we determine an unfavorable outcome is not probable, or probable but not reasonably estimable, we do not accrue for a potential loss contingency, but the matter, if potentially material, is disclosed below.

Management is unable to ascertain the ultimate outcome of claims and legal proceedings, and unfavorable or unexpected outcomes could result in additional expense that could be significant to results of operations in a particular year or quarter. However, after taking into consideration relevant factors concerning these matters, management believes that the reasonably possible outcome of such claims will not, individually or in the aggregate, have a material adverse effect on our consolidated results of operations, financial condition or cash flow.

Bonding — As of June 30, 2024 and December 31, 2023, we had bid and completion bonds issued and outstanding totaling approximately $6.9 billion and $5.9 billion, respectively. The remaining performance obligation on those bonded projects totaled approximately $2.7 billion as of June 30, 2024, and December 31, 2023.

Note 14—Reportable Segments

The current reportable segments include the Utilities segment and the Energy segment.

Each of our reportable segments is composed of similar business units that specialize in services unique to the segment. Driving the end-user focused segments are differences in the economic characteristics of each segment, the nature of the services provided by each segment; the production processes of each segment, the type or class of customer using the segment’s services, the methods used by the segment to provide the services, and the regulatory environment of each segment’s customers.

The classification of revenue and gross profit for segment reporting purposes can at times require judgment on the part of management. Our segments may perform services across industries or perform joint services for customers in multiple industries. To determine reportable segment gross profit, certain allocations, including allocations of shared and indirect costs, such as facility costs, equipment costs and indirect operating expenses, were made.

The following is a brief description of the reportable segments:

22

The Utilities segment operates throughout the United States and specializes in a range of services, including the installation and maintenance of new and existing natural gas and electric utility distribution and transmission systems, and communications systems.

The Energy segment operates throughout the United States and Canada and specializes in a range of services that include engineering, procurement, construction, refining, site development services for data centers, liquified natural gas plant construction, highway and bridge construction, demolition, site work, soil stabilization, mass excavation, flood control, upgrades, repairs, outages, pipeline construction and maintenance, pipeline integrity services, and maintenance services for entities in the renewable energy and energy storage, renewable fuels, and petroleum and petrochemical industries, as well as state departments of transportation.

Total assets by segment is not presented as our Chief Operating Decision Maker as defined by ASC 280, Segment Reporting, does not review or allocate resources based on segment assets.

Segment Revenue

Revenue by segment was as follows (in thousands):

For the three months ended June 30, 

2024

2023

Segment

    

Revenue

    

Revenue

Utilities

$

620,798

 

$

649,238

Energy

973,492

778,715

Intersegment Eliminations

(30,575)

(14,576)

Total

$

1,563,715

 

$

1,413,377

For the six months ended June 30, 

2024

2023

Segment

    

Revenue

    

Revenue

Utilities

$

1,108,722

 

$

1,183,001

Energy

1,921,070

1,506,371

Intersegment Eliminations

(53,370)

(19,099)

Total

$

2,976,422

 

$

2,670,273

Segment Gross Profit

Gross profit by segment was as follows (in thousands):

For the three months ended June 30, 

2024

2023

    

    

% of

    

    

% of

Segment

Segment

Segment

Gross Profit

Revenue

Gross Profit

Revenue

Utilities

$

64,066

 

10.3%

$

66,510

 

10.2%

Energy

122,644

12.6%

90,754

11.7%

Total

$

186,710

 

11.9%

$

157,264

 

11.1%

For the six months ended June 30, 

2024

2023

% of

% of

Segment

Segment

Segment

    

Gross Profit

    

Revenue

    

Gross Profit

    

Revenue

Utilities

$

93,545

 

8.4%

$

100,081

 

8.5%

Energy

226,541

11.8%

156,916

10.4%

Total

$

320,086

 

10.8%

$

256,997

 

9.6%

23

Segment Goodwill

The amount of goodwill recorded by each segment as of June 30, 2024 and December 31, 2023 is presented in Note 5 – “Goodwill and Intangible Assets”.

Geographic Region — Revenue and Total Assets

The majority of our revenue is derived from customers in the United States with approximately 5.4% and 5.6% generated from sources outside of the United States during the six months ended June 30, 2024 and 2023, respectively, principally in Canada. As of June 30, 2024 and December 31, 2023, approximately 3.4% and 3.9%, respectively, of total assets were located outside of the United States, principally in Canada.

24

PRIMORIS SERVICES CORPORATION

MANAGEMENT’S DISCUSSION AND ANALYSIS

Item 2. Management’s Discussion and Analysis of Financial Condition and Results of Operations

Forward Looking Statements

This Quarterly Report on Form 10-Q for the quarterly period ended June 30, 2024 (“Second Quarter 2024 Report”) contains forward-looking statements within the meaning of Section 27A of the Securities Act of 1933, as amended, and Section 21E of the Securities Exchange Act of 1934, as amended (the “Exchange Act”), which are subject to the “safe harbor” created by those sections. Forward-looking statements include information concerning our possible or assumed future results of operations, business strategies, financing plans, competitive position, industry environment, growth opportunities, the effects of regulation and the economy, generally. Forward-looking statements include all statements that are not historical facts and usually can be identified by terms such as “anticipates,” “believes,” “could,” “estimates,” “expects,” “intends,” “may,” “plans,” “potential,” “predicts,” “projects,” “should,” “will,” “would” or similar expressions.

Forward-looking statements include information concerning our possible or assumed future results of operations, business strategies, financing plans, competitive position, industry environment, potential growth opportunities, the effects of regulation and the economy, generally. Forward-looking statements involve known and unknown risks, uncertainties and other factors which may cause our actual results, performance or achievements to be materially different from any future results, performance or achievements expressed or implied by the forward-looking statements. Actual results may differ materially as a result of a number of factors, including, among other things, customer timing, project duration, weather, and general economic conditions; changes in our mix of customers, projects, contracts and business; regional or national and/or general economic conditions and demand for our services; price, volatility, and expectations of future prices of oil, natural gas, and natural gas liquids; variations and changes in the margins of projects performed during any particular quarter; increases in the costs to perform services caused by changing conditions; the termination, or expiration of existing agreements or contracts; the budgetary spending patterns of customers; inflation and other increases in construction costs that we may be unable to pass through to our customers; cost or schedule overruns on fixed-price contracts; availability of qualified labor for specific projects; changes in bonding requirements and bonding availability for existing and new agreements; the need and availability of letters of credit; increases in interest rates and slowing economic growth or recession; the instability in the banking system; costs we incur to support growth, whether organic or through acquisitions; the timing and volume of work under contract; losses experienced in our operations; the results of the review of prior period accounting on certain projects and the impact of adjustments to accounting estimates; developments in governmental investigations and/or inquiries; intense competition in the industries in which we operate; failure to obtain favorable results in existing or future litigation or regulatory proceedings, dispute resolution proceedings or claims, including claims for additional costs; failure of our partners, suppliers or subcontractors to perform their obligations; cyber-security breaches; failure to maintain safe worksites; risks or uncertainties associated with events outside of our control, including conflicts in the Middle East and between Russia and Ukraine, severe weather conditions, public health crises and pandemics, political crises or other catastrophic events; client delays or defaults in making payments; the cost and availability of credit and restrictions imposed by credit facilities; failure to implement strategic and operational initiatives; risks or uncertainties associated with acquisitions, dispositions and investments; possible information technology interruptions, cybersecurity threats or inability to protect intellectual property; the Company’s failure, or the failure of our agents or partners, to comply with laws; the Company's ability to secure appropriate insurance; new or changing political conditions and legal requirements, including those relating to environmental, health and safety matters; the loss of one or a few clients that account for a significant portion of the Company's revenues; asset impairments; and risks arising from the inability to successfully integrate acquired businesses.

We discuss many of these risks in detail in Part I, Item 1A “Risk Factors” of our Annual Report on Form 10-K for the year ended December 31, 2023 and our other filings with the Securities and Exchange Commission (“SEC”). You should read this Second Quarter 2024 Report, our Annual Report on Form 10-K for the year ended December 31, 2023 and our other filings with the SEC completely and with the understanding that our actual future results may be materially different from what we expect.

Given these uncertainties, you should not place undue reliance on these forward-looking statements. Also, forward-looking statements represent our management’s beliefs and assumptions only as of the date of this Second Quarter 2024 Report. We assume no obligation to update these forward-looking statements publicly, or to update the reasons actual

25

results could differ materially from those anticipated in any forward-looking statements, even if new information becomes available.

The following discussion and analysis should be read in conjunction with the unaudited financial statements and the accompanying notes included in Part 1, Item 1 of this Second Quarter 2024 Report and our Annual Report on Form 10-K for the year ended December 31, 2023.

Introduction

We are one of the leading providers of infrastructure services operating mainly in the United States and Canada. We provide a wide range of construction, maintenance, replacement, fabrication, and engineering services to a diversified base of customers through our two segments: Utilities and Energy. The structure of our reportable segments is generally focused on broad end-user markets for our services.

The Utilities segment operates throughout the United States and specializes in a range of services, including the installation and maintenance of new and existing natural gas and electric utility distribution and transmission systems, and communications systems.

The Energy segment operates throughout the United States and Canada and specializes in a range of services that include engineering, procurement, construction, refining, site development services for data centers, liquified natural gas plant construction, highway and bridge construction, demolition, site work, soil stabilization, mass excavation, flood control, upgrades, repairs, outages, pipeline construction and maintenance, pipeline integrity services, and maintenance services for entities in the renewable energy and energy storage, renewable fuels, and petroleum and petrochemical industries, as well as state departments of transportation.

We have completed major underground and industrial projects for a number of large natural gas transmission and petrochemical companies in the United States, major electrical and gas projects for a number of large utility companies in the United States, significant renewable energy projects for energy companies, as well as projects for our engineering customers. We enter into a large number of contracts each year, and the projects can vary in length from daily work orders to as long as 36 months, and occasionally longer, for completion on larger projects. Although we have not been dependent upon any one customer in any year, a small number of customers tend to constitute a substantial portion of our total revenue in any given year.

We generate revenue under a range of contracting types, including fixed-price, unit-price, time and material, and cost reimbursable plus fee contracts, each of which has a different risk profile. A portion of our revenue is derived from contracts where scope is adequately defined, and therefore we can reasonably estimate total contract value. For these contracts, revenue is recognized over time as work is completed because of the continuous transfer of control to the customer (typically using an input measure such as costs incurred to date relative to total estimated costs at completion to measure progress). For certain contracts, where scope is not adequately defined and we can’t reasonably estimate total contract value, revenue is recognized either on an input basis, based on contract costs incurred as defined within the respective contracts, or an output basis based on units completed. Costs to obtain contracts are generally not significant and are expensed in the period incurred.

The classification of revenue and gross profit for segment reporting purposes can at times require judgment on the part of management. Our segments may perform services across industries or perform joint services for customers in multiple industries. To determine reportable segment gross profit, certain allocations, including allocations of shared and indirect costs, such as facility costs, equipment costs and indirect operating expenses were made.

Material trends and uncertainties

We generate our revenue from construction and engineering projects, as well as from providing a variety of infrastructure services. We depend in part on spending by companies in the communications, gas and electric utilities, energy, chemical, and pipeline industries, as well as state departments of transportation. Over the past several years, each segment has benefited from demand for more efficient and more environmentally friendly energy and power facilities, more reliable gas and electric utility infrastructure, upgraded and expanded local highway and bridge needs, and from the activity level in the pipeline industry. However, periodically, each of these industries and government agencies is adversely affected by macroeconomic conditions. Economic and other factors outside of our control may affect the amount and size of contracts we are awarded in any particular period.

26

We actively monitor the impact of the dynamic macroeconomic environment, including the impact of inflation and volatility in the commodities markets, on all aspects of our business. We have experienced increased fuel and labor costs and anticipate that elevated levels of cost inflation could persist in 2024. In an effort to mitigate the impacts of inflation on our operations, we attempt to recover increases in the cost of labor, equipment, fuel and materials through price escalation provisions that allow us to adjust billing rates for certain major contracts annually; by considering the estimated effect of such increases when bidding or pricing new work; or by entering into back-to-back contracts with suppliers and subcontractors. However, the annual adjustment provided by certain contracts is typically subject to a cap and there can be an extended period of time between the impact of inflation on our costs and when billing rates are adjusted. In some cases, our actual cost increases have exceeded the contractual caps, and therefore negatively impacted our operations. We have been successful in renegotiating some of our major contracts to address the increased costs on future work and will continue to address this with our customers going forward.

Fluctuations in the market prices of oil, gas and other fuel sources have affected demand for our services. Volatility in the prices of oil, gas, and liquid natural gas that has occurred in the past few years could create uncertainty with respect to demand for our pipeline services, both in the near term and for future projects. While the construction of gathering lines within the oil shale formations may remain at lower levels for an extended period, we believe that over time, the need for pipeline infrastructure for mid-stream and gas utility companies will result in a continuing need for our services.

The continuing changes in the regulatory environment have affected the demand for our services, either by increasing our work, delaying projects, or cancelling projects. For example, environmental laws and regulations have provided challenges to pipeline projects, resulting in delays or cancellations that impact the timing of revenue recognition. However, environmental laws and new pipeline regulations could increase the demand for our pipeline maintenance and integrity services. In addition, the regulatory environment in certain states has resulted in delays for the construction of gas-fired power plants. However, the increased demand for renewable resources is also creating demand for our infrastructure services and additional opportunities for our Energy segment, such as the need for battery storage and the construction of utility scale solar facilities.

We are exposed to certain market risks related to changes in interest rates. To monitor and manage these market risks, we have established risk management policies and procedures. Our Revolving Credit Facility and Term Loan bear interest at a variable rate which exposes us to interest rate risk. From time to time, we may use certain derivative instruments to hedge our exposure to variable interest rates. As of June 30, 2024, $300.0 million of our variable rate debt outstanding was economically hedged. Based on our variable rate debt outstanding as of June 30, 2024, a 1.0% increase or decrease in interest rates would change annual interest expense by approximately $5.6 million.

Seasonality, cyclicality and variability

Our results of operations are subject to quarterly variations. Some of the variation is the result of weather, particularly rain, ice, snow, and named storms, which can impact our ability to perform infrastructure services. These seasonal impacts can affect revenue and profitability in all of our businesses. Any quarter can be affected either negatively, or positively by atypical weather patterns in any part of the country. In addition, demand for new projects in our Utilities segment tends to be lower during the early part of the calendar year due to clients’ internal budget cycles. As a result, we usually experience higher revenue and earnings in the second, third and fourth quarters of the year as compared to the first quarter.

Our project values range in size from several hundred dollars to several hundred million dollars. The bulk of our work is comprised of project sizes that average less than $3.0 million. We also perform construction projects which tend not to be seasonal, but can fluctuate from year to year based on customer timing, project duration, weather, and general economic conditions. Our business may be affected by declines, or delays in new projects, or by client project schedules. Because of the cyclical nature of our business, the financial results for any period may fluctuate from prior periods, and our financial condition and operating results may vary from quarter to quarter. Results from one quarter may not be indicative of our financial condition, or operating results for any other quarter, or for an entire year.

Critical Accounting Policies and Estimates

The preparation of financial statements in conformity with accounting principles generally accepted in the United States requires us to make estimates and assumptions that affect the reported amounts of assets and liabilities and the

27

disclosure of contingent assets and liabilities as of the date of the financial statements and that affect the amounts of revenue and expenses reported for each period. These estimates and assumptions must be made because certain information that is used in the preparation of our financial statements cannot be calculated with a high degree of precision from data available, is dependent on future events, or is not capable of being readily calculated based on generally accepted methodologies. Often, these estimates are particularly difficult to determine, and we must exercise significant judgment. Actual results could differ significantly from our estimates, and our estimates could change if they were made under different assumptions or conditions. Our critical accounting policies and estimates are described in Item 7 of our Annual Report on Form 10-K for the year ended December 31, 2023. There have been no material changes to our critical accounting policies and estimates since December 31, 2023.

Results of Operations

Consolidated Results

The following discussion compares the results of the three and six months ended June 30, 2024, to the three and six months ended June 30, 2023.

Revenue

Revenue was $1,563.7 million for the three months ended June 30, 2024, an increase of $150.3 million, or 10.6%, compared to the same period in 2023. The increase was primarily due to growth in our Energy segment partially offset by a decrease in our Utilities segment.

Revenue was $2,976.4 million for the six months ended June 30, 2024, an increase of $306.1 million, or 11.5%,

compared to the same period in 2023. The increase was primarily due to growth in our Energy segment partially offset by a decrease in our Utilities segment.

Gross Profit

Gross profit was $186.7 million for the three months ended June 30, 2024, an increase of $29.4 million, or 18.7%, compared to the same period in 2023. The increase was primarily due to an increase in revenue in our Energy segment and improved margins in both segments. Gross profit as a percentage of revenue increased to 11.9% for the three months ended June 30, 2024, compared to 11.1% for the same period in 2023 primarily driven by an increase in margins in both segments.

Gross profit was $320.1 million for the six months ended June 30, 2024, an increase of $63.1 million, or 24.5%,

compared to the same period in 2023. The increase was primarily due to an increase in revenue in our Energy segment and improved margins in both segments. Gross profit as a percentage of revenue increased to 10.8% for the six months ended June 30, 2024, compared to 9.6% for the same period in 2023, primarily driven by improved margins in both segments.

Selling, general and administrative expenses

Selling, general and administrative (“SG&A”) expenses were $100.1 million during the three months ended June 30, 2024, an increase of $14.5 million, or 17.0%, compared to 2023 primarily due to increased people costs to support revenue growth as well as higher technology costs associated with ongoing initiatives. SG&A expenses as a percentage of revenue increased to 6.4% compared to 6.1% for the corresponding period in 2023.

SG&A expenses were $188.7 million during the six months ended June 30, 2024, an increase of $25.1 million, or 15.4%, compared to 2023 primarily due to increased people costs to support revenue growth as well as higher technology costs associated with ongoing initiatives. SG&A expenses as a percentage of revenue increased slightly to 6.3% compared to 6.1% for the corresponding period in 2023.

28

Other income and expense

Non-operating income and expense items for the three and six months ended June 30, 2024, and 2023 were as follows (in thousands):

Three Months Ended

Six Months Ended

June 30, 

June 30, 

    

2024

    

2023

    

2024

    

2023

Foreign exchange gain, net

$

761

$

376

$

1,321

$

1,302

Other income (expense), net

 

81

 

713

 

(45)

 

1,044

Interest expense, net

 

(17,133)

 

(16,884)

 

(35,125)

 

(35,349)

Total other expense

$

(16,291)

$

(15,795)

$

(33,849)

$

(33,003)

Interest expense, net for the three months ended June 30, 2024, increased $0.3 million compared to the same period in 2023 primarily due to a $0.4 million unrealized loss on our interest rate swap in 2024 compared to a $3.2 million unrealized gain in 2023, mostly offset by lower average debt balances.

Interest expense, net for the six months ended June 30, 2024, decreased $0.2 million compared to the same period in 2023 primarily due to lower average debt balances mostly offset by a $0.2 million unrealized gain on our interest rate swap in 2024 compared to a $2.7 million unrealized gain in 2023.

Provision for income taxes

We are subject to tax liabilities imposed by multiple jurisdictions. We determine our best estimate of the annual effective tax rate at each interim period using expected annual pre-tax earnings, statutory tax rates and available tax planning opportunities. Certain significant or unusual items are separately recognized in the quarter in which they occur, which can cause variability in the effective tax rate from quarter to quarter. We recognize interest and penalties related to uncertain tax positions, if any, as income tax expense.

The effective tax rate for the six-month periods ended June 30, 2024 and 2023, of 29.0% differs from the U.S. federal statutory rate of 21.0% primarily due to the impact of state income taxes and nondeductible components of per diem expenses.

We recorded income tax expense for the six months ended June 30, 2024, of $28.0 million compared to income tax expense of $16.5 million for the six months ended June 30, 2023. The $11.5 million increase in income tax expense is driven by a $39.6 million increase in pretax income.

29

Segment results

Revenue and gross profit by segment for the three months ended June 30, 2024, and 2023 were as follows:

Revenue

Gross Profit

For the three months ended June 30, 

For the three months ended June 30, 

2024

2023

2024

2023

Segment

    

(Thousands)

    

(Thousands)

a

(Thousands)

% of Segment Revenue

    

(Thousands)

% of Segment Revenue

Utilities

$

620,798

 

$

649,238

$

64,066

10.3%

$

66,510

10.2%

Energy

973,492

778,715

122,644

12.6%

90,754

11.7%

Intersegment Eliminations

(30,575)

(14,576)

Total

$

1,563,715

 

$

1,413,377

$

186,710

11.9%

$

157,264

11.1%

Utilities Segment

Revenue decreased by $28.4 million, or 4.4%, for the three months ended June 30, 2024, compared to the same period in 2023, primarily due to the substantial completion of a major substation project in our power delivery market in the second half of 2023 and lower activity in our gas operations market. These impacts are partially offset by increased renewable energy substation projects in our power delivery market and increased activity in our communications market.

Gross profit for the three months ended June 30, 2024, decreased by $2.4 million, or 3.7%, compared to the same period in 2023, primarily due to improved margins offset by lower revenue. Gross profit as a percentage of revenue remained consistent at 10.3% during the three months ended June 30, 2024, compared to 10.2% in the same period in 2023.

Energy Segment

Revenue increased by $194.8 million, or 25.0%, for the three months ended June 30, 2024, compared to the same period in 2023, primarily due to increased renewable energy and industrial activity partially offset by decreased activity in our pipeline market.

Gross profit for the three months ended June 30, 2024, increased by $31.9 million, or 35.1%, compared to the same period in 2023, due to higher revenue and margins. Gross profit as a percentage of revenue increased to 12.6% during the three months ended June 30, 2024, compared to 11.7% in the same period in 2023, primarily due to revenue growth in higher margin renewable energy work and strong performance by our industrial group in 2024, partially offset by lower pipeline margins due to strong performance on a pipeline project in the mid-Atlantic in 2023 that did not repeat in 2024.

30

Revenue and gross profit by segment for the six months ended June 30, 2024, and 2023 were as follows:

Revenue

Gross Profit

For the six months ended June 30, 

For the six months ended June 30, 

    

2024

2023

2024

2023

Segment

    

(Thousands)

    

(Thousands)

a

(Thousands)

% of Segment Revenue

    

(Thousands)

% of Segment Revenue

Utilities

$

1,108,722

$

1,183,001

$

93,545

8.4%

$

100,081

8.5%

Energy

1,921,070

1,506,371

226,541

11.8%

156,916

10.4%

Intersegment Eliminations

(53,370)

(19,099)

Total

$

2,976,422

 

$

2,670,273

$

320,086

10.8%

$

256,997

9.6%

Utilities Segment

Revenue decreased by $74.3 million, or 6.3%, for the six months ended June 30, 2024, compared to the same period in 2023, primarily due to the substantial completion of a major substation project in our power delivery market in the second half of 2023 and lower activity in our gas operations market, partially offset by increased renewable energy substation projects in our power delivery market.

Gross profit for the six months ended June 30, 2024, decreased by $6.5 million, or 6.5%, compared to the same period in 2023, primarily due to a decrease in revenue, partially offset by increased margins. Gross profit as a percentage of revenue remained consistent at 8.4% during the six months ended June 30, 2024, compared to 8.5% in the same period in 2023.

Energy Segment

Revenue increased by $414.7 million, or 27.5%, for the six months ended June 30, 2024, compared to the same period in 2023, primarily due to increased renewable energy and industrial activity partially offset by decreased activity in our pipeline market.

Gross profit for the six months ended June 30, 2024, increased by $69.6 million, or 44.4%, compared to the same period in 2023, due to higher revenue and margins. Gross profit as a percentage of revenue increased to 11.8% during the six months ended June 30, 2024, compared to 10.4% in the same period in 2023, primarily due to revenue growth in higher margin renewable energy work and strong performance by our industrial group in 2024, partially offset by lower pipeline margins due to strong performance on a pipeline project in the mid-Atlantic in 2023 that did not repeat in 2024.

31

Geographic area financial information

The majority of our revenue is derived from customers in the United States with approximately 5.4% generated from sources outside of the United States during the six months ended June 30, 2024, principally in Canada.

Backlog

For infrastructure services contractors, backlog can be an indicator of future revenue streams. Different companies define and calculate backlog in different manners. We define backlog as anticipated revenue from the uncompleted portions of existing contracts where scope is adequately defined, and therefore we can reasonably estimate total contract value (“Fixed Backlog”), and the estimated revenue on Master Service Agreements (“MSA”) work (“MSA Backlog”). We present two measures of backlog; one that includes Fixed Backlog and MSA Backlog for the next twelve months, and total backlog that includes all Fixed Backlog and MSA Backlog to the end of the MSA agreement. We do not consider renewals when estimating MSA Backlog. We do not include certain contracts in the calculation of fixed backlog where scope, and therefore contract value, is not adequately defined. We estimate MSA Backlog based on historical trends, anticipated seasonal impacts and estimates of customer demand based on information from our customers.

Fixed and MSA Backlog by reporting segment for the periods ending June 30, 2024, and December 31, 2023, were as follows (in millions):

June 30, 2024

December 31, 2023

Next 12 Months

Total

Next 12 Months

Total

Utilities

Fixed Backlog

$

68.7

$

68.7

$

96.3

$

96.3

MSA Backlog

1,821.4

5,171.9

1,776.5

5,093.6

Backlog

$

1,890.1

$

5,240.6

$

1,872.8

$

5,189.9

Energy

Fixed Backlog

$

2,207.6

$

4,798.4

$

2,599.0

$

5,102.6

MSA Backlog

159.1

414.8

308.2

602.4

Backlog

$

2,366.7

$

5,213.2

$

2,907.2

$

5,705.0

Total

Fixed Backlog

$

2,276.3

$

4,867.1

$

2,695.3

$

5,198.9

MSA Backlog

1,980.5

5,586.7

2,084.7

5,696.0

Backlog

$

4,256.8

$

10,453.8

$

4,780.0

$

10,894.9

Backlog should not be considered a comprehensive indicator of future revenue, as a percentage of our revenue is derived from projects that are not part of a backlog calculation. The backlog estimates include amounts from estimated MSAs, but our customers are not contractually obligated to purchase an amount of services from us under the MSAs. Any of our contracts may be terminated by our customers on relatively short notice. In the event of a project cancellation, we are typically reimbursed for all of our costs through a specific date, as well as all reasonable costs associated with demobilizing from the jobsite, but typically we have no contractual right to the total revenue reflected in backlog. Projects may remain in backlog for extended periods of time as a result of customer delays, regulatory requirements or project specific issues. Future revenue from projects where scope, and therefore contract value, is not adequately defined may not be included in our estimated backlog amount.

Liquidity and Capital Resources

Liquidity represents our ability to pay our liabilities when they become due, fund business operations, and meet our contractual obligations and execute our business plan. Our primary sources of liquidity are our cash balances at the beginning of each period and our cash flows from operating activities. If needed, we have availability under our lines of credit to augment liquidity needs, and we have a current shelf registration statement filed with the SEC that allows for the issuance of an indeterminate amount of debt and equity securities. Our short-term and long-term cash requirements consist primarily of working capital, investments to support revenue growth and maintain our equipment and facilities, general corporate needs, and to service our debt obligations. As of June 30, 2024, there were no outstanding borrowings under the

32

Revolving Credit Facility, commercial letters of credit outstanding were $51.6 million, and available borrowing capacity was $273.4 million.

In June 2023, we entered into an Accounts Receivable Securitization Facility (“the Facility”) with PNC Bank, National Association ("PNC") to improve cash flows from trade accounts receivable. In July 2024 we renewed the Facility for a two-year term, added Regions Bank (“Regions”) to the Facility, and increased the maximum purchase commitment to $150.0 million, at any one time. Under the Facility, certain of our designated subsidiaries may sell their trade accounts receivable as they are originated to a wholly owned bankruptcy remote Special Purpose Entity created specifically for this purpose. The total outstanding balance of trade accounts receivable that have been sold and derecognized is $75.0 million as of June 30, 2024. As of June 30, 2024, we had $25.0 million in available capacity under the Facility, prior to the July renewal.

In order to maintain sufficient liquidity, we evaluate our working capital requirements on a regular basis. We may elect to raise additional capital by issuing common stock, convertible notes, term debt or increasing the borrowing capacity under our credit facilities as necessary to fund our operations or to fund the acquisition of new businesses.

Our cash and cash equivalents totaled $207.4 million as of June 30, 2024, compared to $217.8 million as of December 31, 2023. We anticipate that our cash and investments on hand, existing borrowing capacity under our credit facilities, access to and capacity under a shelf registration statement, and our future cash flows from operations will provide sufficient funds to enable us to meet our operating needs, our planned capital expenditures, and settle our commitments and contingencies for the next twelve months and the foreseeable future.

The construction industry is capital intensive, and we expect to continue to make capital expenditures to meet anticipated needs for our services. During the six months ended June 30, 2024, we spent approximately $34.6 million for capital expenditures, which included $14.5 million for construction equipment. Capital expenditures for the remaining six months of 2024 are expected to total between $45.0 million and $65.0 million, which includes $5.0 million to $25.0 million for equipment.

Cash Flows

Cash flows during the six months ended June 30, 2024 and 2023 are summarized as follows (in thousands):

Six months ended

June 30, 

    

2024

    

2023

Change in cash:

Net cash used in operating activities

$

(12,397)

$

(80,832)

Net cash provided by (used in) investing activities

 

39,293

 

(9,627)

Net cash used in financing activities

 

(39,104)

 

(41,114)

Effect of exchange rate changes

1,654

946

Net change in cash, cash equivalents and restricted cash

$

(10,554)

$

(130,627)

Operating Activities

The cash flows used in operating activities for the six months ended June 30, 2024 and 2023 were as follows (in thousands):

Six months ended

June 30, 

    

2024

    

2023

    

Change

Operating Activities:

Net income

$

68,486

$

40,342

$

28,144

Depreciation and amortization

 

50,274

 

54,754

 

(4,480)

Changes in assets and liabilities

(113,798)

(164,818)

51,020

Gain on sale of property and equipment

(26,237)

(14,735)

(11,502)

Other

 

8,878

 

3,625

 

5,253

Net cash used in operating activities

$

(12,397)

$

(80,832)

$

68,435

33

Net cash used in operating activities for the six months ended June 30, 2024 was $12.4 million compared to $80.8 million for the six months ended June 30, 2023. The change year-over-year was primarily due to improvement in the impact from the changes in assets and liabilities and an increase in net income.

The significant components of the $113.8 million change in assets and liabilities for the six months ended June 30, 2024 are summarized as follows:

Accounts receivable increased by $208.4 million, primarily due to increased revenue and the timing of collecting from our customers;
Contract assets increased by $28.0 million, primarily due to increased revenue and the timing of billing our customers; and
Contract liabilities increased $117.4 million, primarily due to higher deferred revenue.

The significant components of the $164.8 million change in assets and liabilities for the six months ended June 30, 2023, are summarized as follows:

Contract assets increased by $170.5 million, primarily due to increased revenue and the timing of billing our customers;
Accounts receivable increased by $154.0 million, primarily due to increased revenue and the timing of collecting from our customers;
Contract liabilities increased by $136.2 million, primarily due to higher deferred revenue; and
Other current assets decreased by $27.3 million primarily due to receipt of an income tax refund.

Investing activities

For the six months ended June 30, 2024, cash provided by investing activities was $39.3 million compared to $9.6 million used in the six months ended June 30, 2023.

During the six months ended June 30, 2024, we purchased property and equipment for $34.6 million compared to $42.4 million during the same period in the prior year. We believe the ownership or long-term leasing of equipment is generally preferable to renting equipment on a project-by-project basis, as this strategy helps to ensure the equipment is available for our projects when needed. In addition, this approach has historically resulted in lower overall equipment costs.

We periodically sell assets, typically to update our fleet. We received proceeds from the sale of assets of $73.9 million during the six months ended June 30, 2024, compared to $23.5 million during the same period in the prior year.

Financing activities

Financing activities used cash of $39.1 million for the six months ended June 30, 2024, which was primarily due to the following:

Payments of long-term debt of $26.1 million;
Dividend payments to our stockholders of $6.4 million; and
Payments related to tax withholding for stock-based compensation of $4.8 million.

Financing activities used cash of $41.1 million for the six months ended June 30, 2023, which was primarily due to the following:

Payment of long-term debt of $51.2 million;
Dividend payments to our stockholders of $6.4 million; and
Net borrowings on our credit facilities of $20.0 million.

34

Credit Agreements

For a description of our credit agreements, see Note 7— “Credit Arrangements” in Item 1, Financial Statements of this Second Quarter 2024 Report.

Common stock

For a discussion of items affecting our common stock, please see Note 11 — “Stockholders’ Equity” in Item 1, Financial Statements of this Second Quarter 2024 Report.

Off-balance sheet transactions

We enter into certain off-balance sheet arrangements in the ordinary course of business that result in risks not directly reflected on our balance sheet. We have no off-balance sheet financing arrangement with VIEs. The following represents transactions, obligations or relationships that could be considered material off-balance sheet arrangements.

As of June 30, 2024, we had letters of credit outstanding of $52.3 million under the terms of our credit agreements. These letters of credit are used by our insurance carriers to ensure reimbursement for amounts that they are disbursing on our behalf, such as beneficiaries under our self-funded insurance program. In addition, from time to time, certain customers require us to post a letter of credit to ensure payments to our subcontractors or guarantee performance under our contracts. Letters of credit reduce our borrowing availability under our Amended Credit Agreement and our Canadian credit facilities. If these letters of credit were drawn on by the beneficiary, we would be required to reimburse the issuer of the letter of credit, and we may be required to record a charge to earnings for the reimbursement. As of the date of this Second Quarter 2024 Report, we do not believe that it is likely that any material claims will be made under a letter of credit;

In the ordinary course of our business, we may be required by our customers to post surety bid or completion bonds in connection with services that we provide. As of June 30, 2024, we had bid and completion bonds issued and outstanding totaling approximately $6.9 billion. The remaining performance obligation on those bonded projects totaled approximately $2.7 billion as of June 30, 2024. As of the date of this Second Quarter 2024 Report, we do not anticipate that we would have to fund any material claim under our surety arrangements;

Certain of our subsidiaries are parties to collective bargaining agreements with unions. In most instances, these agreements require that we contribute to multi-employer pension and health and welfare plans. For many plans, the contributions are determined annually and required future contributions cannot be determined since contribution rates depend on the total number of union employees and actuarial calculations based on the demographics of all participants. The Employee Retirement Income Security Act of 1974, as amended by the Multi-Employer Pension Amendments Act of 1980, subjects employers to potential liabilities in the event of an employer’s complete or partial withdrawal of an underfunded multi-employer pension plan. The Pension Protection Act of 2006 added new funding rules for multi-employer plans that are classified as “endangered”, “seriously endangered”, or “critical”. We do not currently anticipate withdrawal from any multi-employer pension plans. Withdrawal liabilities or requirements for increased future contributions could negatively impact our results of operations and liquidity;

We enter into employment agreements with certain employees which provide for compensation and benefits under certain circumstances and which may contain a change of control clause. We may be obligated to make payments under the terms of these agreements; and

From time to time, we make other guarantees, such as guaranteeing the obligations of our subsidiaries.

Effects of Inflation and Changing Prices

Our operations are affected by increases in prices, whether caused by inflation or other economic factors. We attempt to recover anticipated increases in the cost of labor, equipment, fuel and materials through price escalation provisions that allow us to adjust billing rates for certain major contracts annually; by considering the estimated effect of

35

such increases when bidding or pricing new work; or by entering into back-to-back contracts with suppliers and subcontractors. However, the annual adjustment provided by certain contracts is typically subject to a cap and there can be an extended period of time between the impact of inflation on our costs and when billing rates are adjusted. In some cases, our actual cost increases have exceeded the contractual caps, and therefore negatively impacted our operations. We have been able to renegotiate some of our major contracts to address the increased costs on future work and will continue to address this with our customers going forward.

Item 3. Quantitative and Qualitative Disclosures About Market Risk

In the ordinary course of business, we are exposed to risks related to market conditions. These risks primarily include fluctuations in foreign currency exchange rates, interest rates and commodity prices. We may seek to manage these risks through the use of financial derivative instruments. These instruments have in the past included interest rate swaps and may in the future include foreign currency exchange contracts, interest rate swaps and hedges against commodity price fluctuations.

The carrying amounts for cash and cash equivalents, accounts receivable, short-term investments, short-term debt, accounts payable and accrued liabilities shown in the Condensed Consolidated Balance Sheets approximate fair value as of June 30, 2024, due to the generally short maturities of these items.

Our Revolving Credit Facility and Term Loan bear interest at a variable rate which exposes us to interest rate risk. From time to time, we may use certain derivative instruments to hedge our exposure to variable interest rates. As of June 30, 2024, $300.0 million of our variable rate debt outstanding was economically hedged. Based on our variable rate debt outstanding as of June 30, 2024, a 1.0% increase or decrease in interest rates would change annual interest expense by approximately $5.6 million.

We do not execute transactions or use financial derivative instruments for trading or speculative purposes. We generally enter into transactions with counter-parties that are financial institutions as a means to limit significant exposure with any one party.

Item 4. Controls and Procedures

Disclosure Controls and Procedures

As of June 30, 2024, we carried out an evaluation, under the supervision and with the participation of our management, including our Chief Executive Officer (“CEO”) and Chief Financial Officer (“CFO”), of the effectiveness of the design and operation of our “disclosure controls and procedures”, as such term is defined under Exchange Act Rules 13a-15(e) and 15d-15(e).

Based on this evaluation, our CEO and CFO concluded that, as of June 30, 2024, the disclosure controls and procedures were effective at the reasonable assurance level to ensure that information required to be disclosed by us in the reports we file or submit under the Exchange Act is recorded, processed, summarized and reported within the time periods specified in the rules and forms of the SEC, and accumulated and communicated to our management, including our CEO and CFO, as appropriate to allow timely decisions regarding required disclosure.

In designing and evaluating the disclosure controls and procedures, our management recognized that any controls and procedures, no matter how well designed and operated, can provide only reasonable assurance of achieving the desired control objectives. In reaching a reasonable level of assurance, our management necessarily was required to apply its judgment in evaluating the cost-benefit relationship of possible controls and procedures. Our disclosure controls and procedures are designed to provide reasonable assurance of achieving their stated objectives.

Changes in Internal Control Over Financial Reporting

There were no changes to our internal control over financial reporting practices or processes that occurred during the quarter ended June 30, 2024 that materially affected, or are reasonably likely to materially affect, our internal control over financial reporting.

36

Part II. Other Information

Item 1. Legal Proceedings

See Note 13 — “Commitments and Contingencies”, included in the unaudited notes to our condensed consolidated financial statements included in item 1. Financial Statements of this Second Quarter 2024 Report.

Item 5. Other Information

None of our directors or officers (as defined in Rule 16a-1(f) under the Exchange Act) adopted or terminated a Rule 10b5-1 trading arrangement or a non-Rule 10b5-1 trading arrangement (as defined in Item 408(c) of Regulation S-K) during the quarterly period covered by this report.

Item 6. Exhibits

The following exhibits are filed as part of this Quarterly Report on Form 10-Q.

Exhibit
Number

    

Description

31.1

Rule 13a-14(a)/15d-14(a) Certification by the Registrant’s Chief Executive Officer (*)

31.2

Rule 13a-14(a)/15d-14(a) Certification by the Registrant’s Chief Financial Officer (*)

32.1

Section 1350 Certification by the Registrant’s Chief Executive Officer (**)

32.2

Section 1350 Certification by the Registrant’s Chief Financial Officer (**)

101 INS

Inline XBRL Instance Document – The instance document does not appear in the Interactive Data File because its XBRL tags are embedded within the Inline XBRL document (*)

101 SCH

Inline XBRL Taxonomy Extension Schema Document (*)

101 CAL

Inline XBRL Taxonomy Extension Calculation Linkbase Document (*)

101 LAB

Inline XBRL Taxonomy Extension Label Linkbase Document (*)

101 PRE

Inline XBRL Taxonomy Extension Presentation Linkbase Document (*)

101 DEF

Inline XBRL Taxonomy Extension Definition Linkbase Document (*)

104

Cover Page Interactive Data File (formatted as Inline XBRL and contained in Exhibit 101)

(*)

Filed herewith.

(**)

Furnished herewith.

37

SIGNATURES

Pursuant to the requirements of the Securities Exchange Act of 1934, the Registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized.

PRIMORIS SERVICES CORPORATION

Date: August 5, 2024

/s/ Kenneth M. Dodgen

Kenneth M. Dodgen

Executive Vice President, Chief Financial Officer

(Principal Financial Officer)

38

EX-31.1 2 prim-20240630xex31d1.htm EX-31.1

Exhibit 31.1

RULE 13a-14(a)/15d-14(a) CERTIFICATION PURSUANT TO

SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002

I, Thomas E. McCormick, certify that:

1.I have reviewed this Quarterly Report on Form 10-Q for the period ended June 30, 2024, of Primoris Services Corporation;

2.Based on my knowledge, this Quarterly Report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this Quarterly Report;

3.Based on my knowledge, the financial statements, and other financial information included in this Quarterly Report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this Quarterly Report;

4.The registrant’s other certifying officer and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:

(a)Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this Quarterly Report is being prepared;

(b)Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;

(c)Evaluated the effectiveness of the registrant’s disclosure controls and procedures and presented in this Quarterly Report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this Quarterly Report based on such evaluation; and

(d)Disclosed in this Quarterly Report any change in the registrant’s internal control over financial reporting that occurred during the registrant’s most recent fiscal quarter that has materially affected, or is reasonably likely to materially affect, the registrant’s internal control over financial reporting; and

5.The registrant’s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of the registrant’s board of directors (or persons performing the equivalent functions):

(a)All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and

(b)Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting.

Date: August 5, 2024

/s/ Thomas E. McCormick

Thomas E. McCormick

President, Chief Executive Officer and Director

(Principal Executive Officer)

1


EX-31.2 3 prim-20240630xex31d2.htm EX-31.2

Exhibit 31.2

RULE 13a-14(a)/15d-14(a) CERTIFICATION PURSUANT TO

SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002

I, Kenneth M. Dodgen, certify that:

1.I have reviewed this Quarterly Report on Form 10-Q for the period ended June 30, 2024, of Primoris Services Corporation;

2.Based on my knowledge, this Quarterly Report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this Quarterly Report;

3.Based on my knowledge, the financial statements, and other financial information included in this Quarterly Report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this Quarterly Report;

4.The registrant’s other certifying officer and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:

(a)Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this Quarterly Report is being prepared;

(b)Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;

(c)Evaluated the effectiveness of the registrant’s disclosure controls and procedures and presented in this Quarterly Report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this Quarterly Report based on such evaluation; and

(d)Disclosed in this Quarterly Report any change in the registrant’s internal control over financial reporting that occurred during the registrant’s most recent fiscal quarter that has materially affected, or is reasonably likely to materially affect, the registrant’s internal control over financial reporting; and

5.The registrant’s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of the registrant’s board of directors (or persons performing the equivalent functions):

(a)All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and

(b)Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting.

Date: August 5, 2024

/s/ Kenneth M. Dodgen

Kenneth M. Dodgen

Executive Vice President, Chief Financial Officer

(Principal Financial Officer)

1


EX-32.1 4 prim-20240630xex32d1.htm EX-32.1

Exhibit 32.1

Certification Pursuant to Section 906

of the Sarbanes-Oxley Act of 2002 (18 U.S.C. Section 1350)

In connection with the Quarterly Report of Primoris Services Corporation (the “Company”) on Form 10-Q for the period ended June 30, 2024, as filed with the Securities and Exchange Commission on the date hereof (the “Report”), I, Thomas E. McCormick, Chief Executive Officer of the Company, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that, to my knowledge:

1.

The Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and

2.

The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.

In witness whereof, the undersigned has executed and delivered this certificate as of the date set forth opposite his signature below.

Date: August 5, 2024

/s/ Thomas E. McCormick

Thomas E. McCormick

President, Chief Executive Officer and Director

(Principal Executive Officer)

1


EX-32.2 5 prim-20240630xex32d2.htm EX-32.2

Exhibit 32.2

Certification Pursuant to Section 906

of the Sarbanes-Oxley Act of 2002 (18 U.S.C. Section 1350)

In connection with the Quarterly Report of Primoris Services Corporation (the “Company”) on Form 10-Q for the period ended June 30, 2024, as filed with the Securities and Exchange Commission on the date hereof (the “Report”), I, Kenneth M. Dodgen, Executive Vice President, Chief Financial Officer of the Company, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that, to my knowledge:

1.

The Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and

2.

The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.

In witness whereof, the undersigned has executed and delivered this certificate as of the date set forth opposite his signature below.

Date: August 5, 2024

/s/ Kenneth M. Dodgen

Kenneth M. Dodgen

Executive Vice President, Chief Financial Officer

(Principal Financial Officer)

1


EX-101.SCH 6 prim-20240630.xsd EX-101.SCH 99900 - Disclosure - Standard And Custom Axis Domain Defaults link:presentationLink link:calculationLink link:definitionLink 995200100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS link:presentationLink link:calculationLink link:definitionLink 995200200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF INCOME link:presentationLink link:calculationLink link:definitionLink 995200300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME link:presentationLink link:calculationLink link:definitionLink 995200500 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS link:presentationLink link:calculationLink link:definitionLink 99940201 - Disclosure - Basis of Presentation - Restricted Cash (Details) link:presentationLink link:calculationLink link:definitionLink 40401 - Disclosure - Acquisition - PLH (Details) link:presentationLink link:calculationLink link:definitionLink 99940403 - Disclosure - Revenue - Contract assets (Details) link:presentationLink link:calculationLink link:definitionLink 99940404 - Disclosure - Revenue - Contract liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 99940503 - Disclosure - Goodwill and Intangible Assets - Future Amortization (Details) link:presentationLink link:calculationLink link:definitionLink 99940601 - Disclosure - Accounts Payable and Accrued Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 99940701 - Disclosure - Credit Arrangements (Details) link:presentationLink link:calculationLink link:definitionLink 40901 - Disclosure - Credit Arrangements (Details) - Cal2 link:presentationLink link:calculationLink link:definitionLink 99941001 - Disclosure - Dividends and Earnings Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 99941201 - Disclosure - Leases - Components of Lease Expense and Operating Lease Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 995200105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 995200400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY link:presentationLink link:calculationLink link:definitionLink 995210101 - Disclosure - Nature of Business link:presentationLink link:calculationLink link:definitionLink 995210301 - Disclosure - Fair Value Measurements link:presentationLink link:calculationLink link:definitionLink 995210501 - Disclosure - Goodwill and Intangible Assets link:presentationLink link:calculationLink link:definitionLink 995210601 - Disclosure - Accounts Payable and Accrued Liabilities link:presentationLink link:calculationLink link:definitionLink 995210701 - Disclosure - Credit Arrangements link:presentationLink link:calculationLink link:definitionLink 995210901 - Disclosure - Income Taxes link:presentationLink link:calculationLink link:definitionLink 995211001 - Disclosure - Dividends and Earnings Per Share link:presentationLink link:calculationLink link:definitionLink 995211101 - Disclosure - Stockholders' Equity link:presentationLink link:calculationLink link:definitionLink 995211301 - Disclosure - Commitments and Contingencies link:presentationLink link:calculationLink link:definitionLink 995211401 - Disclosure - Reportable Segments link:presentationLink link:calculationLink link:definitionLink 99920202 - Disclosure - Basis of Presentation (Policies) link:presentationLink link:calculationLink link:definitionLink 99930303 - Disclosure - Fair Value Measurements (Tables) link:presentationLink link:calculationLink link:definitionLink 99930503 - Disclosure - Goodwill and Intangible Assets (Tables) link:presentationLink link:calculationLink link:definitionLink 99930603 - Disclosure - Accounts Payable and Accrued Liabilities (Tables) link:presentationLink link:calculationLink link:definitionLink 99930703 - Disclosure - Credit Arrangements (Tables) link:presentationLink link:calculationLink link:definitionLink 99931003 - Disclosure - Dividends and Earnings Per Share (Tables) link:presentationLink link:calculationLink link:definitionLink 99931403 - Disclosure - Reportable Segments (Tables) link:presentationLink link:calculationLink link:definitionLink 99940202 - Disclosure - Basis of Presentation - Accounts Receivable Securitization Facility (Details) link:presentationLink link:calculationLink link:definitionLink 99940203 - Disclosure - Basis of Presentation - Customer concentration (Details) link:presentationLink link:calculationLink link:definitionLink 99940301 - Disclosure - Fair Value Measurements (Details) link:presentationLink link:calculationLink link:definitionLink 99940401 - Disclosure - Revenue - Performance obligations (Details) link:presentationLink link:calculationLink link:definitionLink 99940402 - Disclosure - Revenue - Performance obligations - Details (Details) link:presentationLink link:calculationLink link:definitionLink 40402 - Disclosure - Revenue - Performance obligations - Details Default (Details) link:presentationLink link:calculationLink link:definitionLink 99940405 - Disclosure - Revenue - Disaggregation of revenue by customer type and contract type (Details) link:presentationLink link:calculationLink link:definitionLink 99940501 - Disclosure - Goodwill and Intangible Assets - Goodwill (Details) link:presentationLink link:calculationLink link:definitionLink 99940502 - Disclosure - Goodwill and Intangible Assets - Intangible Assets (Details) link:presentationLink link:calculationLink link:definitionLink 99940702 - Disclosure - Credit Arrangements - Narratives (Details) link:presentationLink link:calculationLink link:definitionLink 99940703 - Disclosure - Credit Arrangements- Canadian Credit Facilities (Details) link:presentationLink link:calculationLink link:definitionLink 99940801 - Disclosure - Derivative Instruments (Details) link:presentationLink link:calculationLink link:definitionLink 99940802 - Disclosure - Derivative Instruments - Derivative contract and instruments (Details) link:presentationLink link:calculationLink link:definitionLink 99940901 - Disclosure - Income Taxes (Details) link:presentationLink link:calculationLink link:definitionLink 99941101 - Disclosure - Stockholders' Equity (Details) link:presentationLink link:calculationLink link:definitionLink 99941102 - Disclosure - Stockholders' Equity - Employee Stock Purchase Plan, Secondary Offering & Share Purchase Plan (Details) link:presentationLink link:calculationLink link:definitionLink 99941301 - Disclosure - Commitments and Contingencies - Legal (Details) link:presentationLink link:calculationLink link:definitionLink 99941401 - Disclosure - Reportable Segments (Details) link:presentationLink link:calculationLink link:definitionLink 99941402 - Disclosure - Reportable Segments - Revenue and Total Assets by Geographic Area (Details) link:presentationLink link:calculationLink link:definitionLink 995200090 - Document - Document and Entity Information link:presentationLink link:calculationLink link:definitionLink 995200405 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 995210201 - Disclosure - Basis of Presentation link:presentationLink link:calculationLink link:definitionLink 995210401 - Disclosure - Revenue link:presentationLink link:calculationLink link:definitionLink 995210801 - Disclosure - Derivative Instruments link:presentationLink link:calculationLink link:definitionLink 995211201 - Disclosure - Leases link:presentationLink link:calculationLink link:definitionLink 99930203 - Disclosure - Basis of Presentation (Tables) link:presentationLink link:calculationLink link:definitionLink 99930403 - Disclosure - Revenue (Tables) link:presentationLink link:calculationLink link:definitionLink 99930803 - Disclosure - Derivative Instruments (Tables) link:presentationLink link:calculationLink link:definitionLink 99931203 - Disclosure - Leases (Tables) link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 7 prim-20240630_cal.xml EX-101.CAL EX-101.DEF 8 prim-20240630_def.xml EX-101.DEF EX-101.LAB 9 prim-20240630_lab.xml EX-101.LAB EX-101.PRE 10 prim-20240630_pre.xml EX-101.PRE XML 12 R1.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Document and Entity Information - shares
6 Months Ended
Jun. 30, 2024
Jul. 29, 2024
Document and Entity Information    
Document Type 10-Q  
Document Quarterly Report true  
Document Period End Date Jun. 30, 2024  
Document Transition Report false  
Entity File Number 001-34145  
Entity Registrant Name Primoris Services Corporation  
Entity Incorporation, State or Country Code DE  
Entity Tax Identification Number 20-4743916  
Entity Address, Address Line One 2300 N. Field Street, Suite 1900  
Entity Address, City or Town Dallas  
Entity Address, State or Province TX  
Entity Address, Postal Zip Code 75201  
City Area Code 214  
Local Phone Number 740-5600  
Title of 12(b) Security Common Stock, $0.0001 par value  
Trading Symbol PRIM  
Security Exchange Name NYSE  
Entity Current Reporting Status Yes  
Entity Interactive Data Current Yes  
Entity Filer Category Large Accelerated Filer  
Entity Small Business false  
Entity Emerging Growth Company false  
Entity Shell Company false  
Entity Common Stock, Shares Outstanding   53,672,740
Entity Central Index Key 0001361538  
Current Fiscal Year End Date --12-31  
Document Fiscal Year Focus 2024  
Document Fiscal Period Focus Q2  
Amendment Flag false  
XML 13 R2.htm IDEA: XBRL DOCUMENT v3.24.2.u1
CONDENSED CONSOLIDATED BALANCE SHEETS - USD ($)
$ in Thousands
Jun. 30, 2024
Dec. 31, 2023
Current assets:    
Cash and cash equivalents $ 207,363 $ 217,778
Accounts receivable, net 888,267 685,439
Contract assets 873,008 846,176
Prepaid expenses and other current assets 122,583 135,840
Total current assets 2,091,221 1,885,233
Property and equipment, net 446,314 475,929
Operating lease assets 421,024 360,507
Intangible assets, net 217,283 227,561
Goodwill 857,650 857,650
Other long-term assets 16,396 20,547
Total assets 4,049,888 3,827,427
Current liabilities:    
Accounts payable 583,664 628,962
Contract liabilities 483,878 366,476
Accrued liabilities 324,732 263,492
Dividends payable 3,217 3,202
Current portion of long-term debt 89,270 72,903
Total current liabilities 1,484,761 1,335,035
Long-term debt, net of current portion 843,758 885,369
Noncurrent operating lease liabilities, net of current portion 308,114 263,454
Deferred tax liabilities 59,444 59,565
Other long-term liabilities 54,580 47,912
Total liabilities 2,750,657 2,591,335
Commitments and contingencies (See Note 13)
Stockholders' equity    
Common stock-$0.0001 par value; 90,000,000 shares authorized; 53,672,740 and 53,366,327 issued and outstanding as of June 30, 2024, and December 31, 2023, respectively 6 6
Additional paid-in capital 278,830 275,846
Retained earnings 1,023,075 961,028
Accumulated other comprehensive income (2,680) (788)
Total stockholders' equity 1,299,231 1,236,092
Total liabilities and stockholders' equity $ 4,049,888 $ 3,827,427
XML 14 R3.htm IDEA: XBRL DOCUMENT v3.24.2.u1
CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical) - $ / shares
Jun. 30, 2024
Dec. 31, 2023
Stockholders' equity    
Common stock, par value (in dollars per share) $ 0.0001 $ 0.0001
Common stock, shares authorized 90,000,000 90,000,000
Common stock, shares issued 53,672,740 53,366,327
Common stock, shares outstanding 53,672,740 53,366,327
XML 15 R4.htm IDEA: XBRL DOCUMENT v3.24.2.u1
CONDENSED CONSOLIDATED STATEMENTS OF INCOME - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
CONDENSED CONSOLIDATED STATEMENTS OF INCOME        
Revenue $ 1,563,715 $ 1,413,377 $ 2,976,422 $ 2,670,273
Cost of revenue 1,377,005 1,256,113 2,656,336 2,413,276
Gross profit 186,710 157,264 320,086 256,997
Selling, general and administrative expenses 100,118 85,571 188,706 163,581
Transaction and related costs 522 898 1,072 3,593
Operating income 86,070 70,795 130,308 89,823
Other income (expense):        
Foreign exchange gain, net 761 376 1,321 1,302
Other income (expense), net 81 713 (45) 1,044
Interest expense, net (17,133) (16,884) (35,125) (35,349)
Income before provision for income taxes 69,779 55,000 96,459 56,820
Provision for income taxes (20,236) (15,968) (27,973) (16,478)
Net income $ 49,543 $ 39,032 $ 68,486 $ 40,342
Dividends per common share (in dollars per share) $ 0.06 $ 0.06 $ 0.12 $ 0.12
Earnings per share:        
Basic (in dollars per share) 0.92 0.73 1.28 0.76
Diluted (in dollars per share) $ 0.91 $ 0.72 $ 1.26 $ 0.75
Weighted average common shares outstanding:        
Basic (in shares) 53,640 53,301 53,565 53,243
Diluted (in shares) 54,653 54,324 54,522 54,083
XML 16 R5.htm IDEA: XBRL DOCUMENT v3.24.2.u1
CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME        
Net Income (Loss) $ 49,543 $ 39,032 $ 68,486 $ 40,342
Other comprehensive income (loss), net of tax:        
Foreign currency translation adjustments (619) 1,378 (1,892) 1,493
Comprehensive income $ 48,924 $ 40,410 $ 66,594 $ 41,835
XML 17 R6.htm IDEA: XBRL DOCUMENT v3.24.2.u1
CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($)
$ in Thousands
Common Stock
Additional Paid-in Capital
Retained Earnings
Accumulated Other Comprehensive Income
Total
Balance at Dec. 31, 2022 $ 6 $ 263,771 $ 847,681 $ (2,620) $ 1,108,838
Balance (in shares) at Dec. 31, 2022 53,124,899        
Increase (Decrease) in Stockholders' Equity Roll Forward          
Net income     40,342   40,342
Foreign currency translation adjustments, net of tax       1,493 1,493
Issuance of shares, net of issuance costs   1,263     1,263
Issuance of shares, net of issuance costs (in shares) 49,949        
Conversion of stock based awards, net of shares withheld for taxes   (1,391)     (1,391)
Conversion of stock based awards, net of shares withheld for taxes (in shares) 154,025        
Stock-based compensation   5,388     5,388
Dividends declared     (6,395)   (6,395)
Balance at Jun. 30, 2023 $ 6 269,031 881,628 (1,127) 1,149,538
Balance (in shares) at Jun. 30, 2023 53,328,873        
Balance at Mar. 31, 2023 $ 6 265,817 845,795 (2,505) 1,109,113
Balance (in shares) at Mar. 31, 2023 53,282,636        
Increase (Decrease) in Stockholders' Equity Roll Forward          
Net income     39,032   39,032
Foreign currency translation adjustments, net of tax       1,378 1,378
Issuance of shares, net of issuance costs   257     257
Issuance of shares, net of issuance costs (in shares) 10,264        
Conversion of stock based awards, net of shares withheld for taxes   (52)     (52)
Conversion of stock based awards, net of shares withheld for taxes (in shares) 35,973        
Stock-based compensation   3,009     3,009
Dividends declared     (3,199)   (3,199)
Balance at Jun. 30, 2023 $ 6 269,031 881,628 (1,127) 1,149,538
Balance (in shares) at Jun. 30, 2023 53,328,873        
Balance at Dec. 31, 2023 $ 6 275,846 961,028 (788) 1,236,092
Balance (in shares) at Dec. 31, 2023 53,366,327        
Increase (Decrease) in Stockholders' Equity Roll Forward          
Net income     68,486   68,486
Foreign currency translation adjustments, net of tax       (1,892) (1,892)
Issuance of shares, net of issuance costs   1,396     1,396
Issuance of shares, net of issuance costs (in shares) 34,844        
Conversion of stock based awards, net of shares withheld for taxes   (4,772)     (4,772)
Conversion of stock based awards, net of shares withheld for taxes (in shares) 271,569        
Stock-based compensation   6,360     6,360
Dividends declared     (6,439)   (6,439)
Balance at Jun. 30, 2024 $ 6 278,830 1,023,075 (2,680) 1,299,231
Balance (in shares) at Jun. 30, 2024 53,672,740        
Balance at Mar. 31, 2024 $ 6 274,711 976,749 (2,061) 1,249,405
Balance (in shares) at Mar. 31, 2024 53,630,490        
Increase (Decrease) in Stockholders' Equity Roll Forward          
Net income     49,543   49,543
Foreign currency translation adjustments, net of tax       (619) (619)
Issuance of shares, net of issuance costs   298     298
Issuance of shares, net of issuance costs (in shares) 6,400        
Conversion of stock based awards, net of shares withheld for taxes   (133)     (133)
Conversion of stock based awards, net of shares withheld for taxes (in shares) 35,850        
Stock-based compensation   3,954     3,954
Dividends declared     (3,217)   (3,217)
Balance at Jun. 30, 2024 $ 6 $ 278,830 $ 1,023,075 $ (2,680) $ 1,299,231
Balance (in shares) at Jun. 30, 2024 53,672,740        
XML 18 R7.htm IDEA: XBRL DOCUMENT v3.24.2.u1
CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical) - $ / shares
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY        
Cash dividend declared (in dollars per share) $ 0.06 $ 0.06 $ 0.12 $ 0.12
XML 19 R8.htm IDEA: XBRL DOCUMENT v3.24.2.u1
CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)
$ in Thousands
6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Cash flows from operating activities:    
Net income $ 68,486 $ 40,342
Adjustments to reconcile net income to net cash used in operating activities (net of effect of acquisitions):    
Depreciation and amortization 50,274 54,754
Stock-based compensation expense 6,360 5,388
Gain on sale of property and equipment (26,237) (14,735)
Unrealized (gain) loss on interest rate swap (231) (2,745)
Other non-cash items 2,749 982
Changes in assets and liabilities:    
Accounts receivable (208,407) (154,016)
Contract assets (27,953) (170,479)
Other current assets (5,183) 27,291
Other long-term assets (2,240) (1,230)
Accounts payable (44,520) (21,959)
Contract liabilities 117,410 136,202
Operating lease assets and liabilities, net (4,788) 2,354
Accrued liabilities 52,521 16,037
Other long-term liabilities 9,362 982
Net cash used in operating activities (12,397) (80,832)
Cash flows from investing activities:    
Purchase of property and equipment (34,637) (42,392)
Proceeds from sale of assets 73,930 23,465
Cash paid for acquisitions, net of cash and restricted cash acquired   9,300
Net cash provided by (used in) investing activities 39,293 (9,627)
Cash flows from financing activities:    
Borrowings under revolving lines of credit   390,000
Payments on revolving lines of credit   (370,000)
Payments on long-term debt (26,148) (51,234)
Payments related to tax withholding for stock-based compensation (4,772) (1,391)
Dividends paid (6,424) (6,383)
Other (1,760) (2,106)
Net cash used in financing activities (39,104) (41,114)
Effect of exchange rate changes on cash, cash equivalents and restricted cash 1,654 946
Net change in cash, cash equivalents and restricted cash (10,554) (130,627)
Cash, cash equivalents and restricted cash at beginning of the period 223,542 258,991
Cash, cash equivalents and restricted cash at end of the period 212,988 128,364
SUPPLEMENTAL DISCLOSURES OF CASH FLOW INFORMATION    
Cash paid for interest 34,090 36,956
Cash paid for income taxes, net of refunds received 9,192 (16,293)
Leased assets obtained in exchange for new operating leases 120,228 92,555
SUPPLEMENTAL DISCLOSURES OF NONCASH INVESTING AND FINANCING ACTIVITIES    
Dividends declared and not yet paid $ 3,217 $ 3,199
XML 20 R9.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Nature of Business
6 Months Ended
Jun. 30, 2024
Nature of Business  
Nature of Business

Note 1—Nature of Business

Organization and operationsPrimoris Services Corporation is one of the leading providers of infrastructure services operating mainly in the United States and Canada. We provide a wide range of construction, maintenance, replacement, fabrication and engineering services to a diversified base of customers through our two segments.

We have longstanding customer relationships with utility, refining, petrochemical, power, midstream, and engineering companies, and state departments of transportation. We provide our services to a diversified base of customers, under a range of contracting options. A portion of our services are provided under Master Service Agreements (“MSA”), which are generally multi-year agreements. The remainder of our services are generated from contracts for specific construction or installation projects.

We are incorporated in the State of Delaware, and our corporate headquarters are located at 2300 N. Field Street, Suite 1900, Dallas, Texas 75201. Unless specifically noted otherwise, as used throughout these consolidated financial statements, “Primoris”, “the Company”, “we”, “our”, “us” or “its” refers to the business, operations and financial results of the Company and its wholly-owned subsidiaries.

Reportable Segments — The current reportable segments include the Utilities segment and the Energy segment. See Note 14 – “Reportable Segments” for a brief description of the reportable segments and their operations.

The classification of revenue and gross profit for segment reporting purposes can at times require judgment on the part of management. Our segments may perform services across industries or perform joint services for customers in multiple industries. To determine reportable segment gross profit, certain allocations, including allocations of shared and indirect costs, such as facility costs, equipment costs and indirect operating expenses, were made.

XML 21 R10.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Basis of Presentation
6 Months Ended
Jun. 30, 2024
Basis of Presentation  
Basis of Presentation

Note 2—Basis of Presentation

Interim condensed consolidated financial statements The interim condensed consolidated financial statements for the three and six months ended June 30, 2024 and 2023 have been prepared in accordance with Rule 10-01 of Regulation S-X of the Securities Exchange Act of 1934, as amended. As such, certain disclosures, which would substantially duplicate the disclosures contained in our Annual Report on Form 10-K, filed on February 27, 2024, which contains our audited consolidated financial statements for the year ended December 31, 2023, have been omitted.

This Form 10-Q should be read in conjunction with our most recent Annual Report on Form 10-K. The interim financial information is unaudited.  In the opinion of management, the interim information includes all adjustments (consisting of normal recurring adjustments) necessary for the fair presentation of the interim financial information. 

Reclassification Certain previously reported amounts have been reclassified to conform to the current year

presentation.

Restricted cash Restricted cash consists primarily of cash balances that are restricted as to withdrawal or usage and contract retention payments made by customers into escrow bank accounts and are included in prepaid expenses and other current assets in our Condensed Consolidated Balance Sheets. Escrow cash accounts are released to us by customers as projects are completed in accordance with contract terms. The following tables provide a reconciliation of cash, cash equivalents and restricted cash reported within the Condensed Consolidated Balance Sheets to the totals of such amounts shown in the Condensed Consolidated Statements of Cash Flows (in thousands):

June 30,

    

2024

    

2023

Cash and cash equivalents

$

207,363

$

122,692

Restricted cash included in prepaid expenses and other current assets

5,625

5,672

Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows

$

212,988

$

128,364

    

    

December 31,

    

2023

    

2022

Cash and cash equivalents

$

217,778

$

248,692

Restricted cash included in prepaid expense and other current assets

5,764

10,299

Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows

$

223,542

$

258,991

Accounts Receivable Securitization Facility — In June 2023, we entered into an Accounts Receivable Securitization Facility (“the Facility”) with PNC Bank, National Association ("PNC") to improve cash flows from trade accounts receivable. In July 2024, we renewed the Facility for a two-year term, added Regions Bank (“Regions”) to the Facility, and increased the maximum purchase commitment to $150.0 million, at any one time. Fees associated with the Facility for the six months ended June 30, 2024, were $2.7 million and are included in interest expense in the Condensed Consolidated Statements of Income.

Under the Facility, certain of our designated subsidiaries may sell their trade accounts receivable as they are originated to a wholly owned bankruptcy remote Special Purpose Entity (“SPE”) created specifically for this purpose. We control and, therefore, consolidate the SPE in our consolidated financial statements. The SPE transfers ownership and control of qualifying accounts receivable to PNC and Regions up to the maximum purchase commitment. We and our related subsidiaries have no continuing involvement in the transferred accounts receivable, other than collection and administrative responsibilities, and, once sold, the accounts receivable are no longer available to satisfy our creditors or our related subsidiaries. We account for accounts receivable sold to the banking counterparty as a sale of financial assets and derecognize the trade accounts receivable from our Condensed Consolidated Balance Sheets.

The total outstanding balance of trade accounts receivable that have been sold and derecognized is $75.0 million as of June 30, 2024. The SPE owned $266.4 million of trade accounts receivable as of June 30, 2024, which are included in Accounts receivable, net on the Condensed Consolidated Balance Sheets. For the six months ended June 30, 2024 and 2023, we received $10.0 million and $25.0 million, respectively, in cash proceeds from the Facility, and repaid $10.0 million and $0, respectively to the Facility, which are included in cash from operating activities in the Condensed Consolidated Statements of Cash Flows. As of June 30, 2024, we had $25.0 million available capacity under the Facility prior to the July renewal.

Customer concentration — We operate in multiple industry sectors encompassing the construction of commercial, industrial and public works infrastructure assets primarily throughout the United States. Typically, the top ten customers in any one calendar year generate revenue that is approximately 35% to 45% of total revenue; however, the companies that comprise the top ten customers vary from year to year.

For the three and six months ended June 30, 2024, approximately 39.7% and 42.3%, respectively, of total revenue was generated from our top ten customers and no one customer accounted for more than 10% of our total revenue.

For the three and six months ended June 30, 2023, approximately 39.5% and 38.1%, respectively, of total revenue was generated from our top ten customers and no one customer accounted for more than 10% of our total revenue.

Recently Issued Accounting Pronouncements

In November 2023, the FASB issued ASU No. 2023-07, “Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures” which changes the accounting and reporting of segment disclosure requirements primarily through enhanced disclosure about significant segment expenses in accordance with FASB Accounting Standards Codification 280, Segment Reporting. This ASU is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The amendments should be applied prospectively on or after the effective date. We adopted the new standard on January 1, 2024, on a prospective basis. This ASU will likely result in us including additional required disclosures in the financial statement footnotes in our annual report on form 10-K commencing with the year ending December 31, 2024, but is not expected to have an effect on our consolidated financial position, results of operations or cash flows.

In December 2023, the FASB issued ASU No. 2023-09, “Income Taxes (Topic 740): Improvements to Income Tax Disclosures” that requires presentation of specific categories of reconciling items, as well reconciling items that meet a quantitative threshold, in the reconciliation between the income tax provision and the income tax provision using statutory tax rates. The standard also requires disclosure of income taxes paid disaggregated by jurisdiction with separate disclosure of income taxes paid to individual jurisdictions that meet a quantitative threshold. ASU No. 2023-09 is effective for fiscal years beginning after December 15, 2024, with early adoption permitted. The amendments should be applied prospectively; however, entities have the option to apply retrospectively for each period presented. We do not expect the adoption of this new standard in 2025 to have an impact on our consolidated financial position, results of operations or cash flows.

XML 22 R11.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Fair Value Measurements
6 Months Ended
Jun. 30, 2024
Fair Value Measurements  
Fair Value Measurements

Note 3—Fair Value Measurements

ASC Topic 820, “Fair Value Measurements and Disclosures” (“ASC Topic 820”), defines fair value, establishes a framework for measuring fair value in U.S. generally accepted accounting principles (“GAAP”) and requires certain disclosures about fair value measurements. ASC Topic 820 addresses fair value GAAP for financial assets and financial liabilities that are re-measured and reported at fair value at each reporting period and for non-financial assets and liabilities that are re-measured and reported at fair value on a non-recurring basis.

In general, fair values determined by Level 1 inputs use quoted prices (unadjusted) in active markets for identical assets or liabilities. Fair values determined by Level 2 inputs use data points that are observable such as quoted prices, interest rates and yield curves. Fair values determined by Level 3 inputs are “unobservable data points” for the asset or liability and include situations where there is little, if any, market activity for the asset or liability.

The following table presents, for each of the fair value hierarchy levels identified under ASC Topic 820, our financial assets and liabilities that are required to be measured at fair value as of June 30, 2024 and December 31, 2023 (in thousands):

Fair Value Measurements at Reporting Date

    

    

Significant

    

Quoted Prices

Other

Significant

in Active Markets

Observable

Unobservable

for Identical Assets

Inputs

Inputs

    

(Level 1)

    

(Level 2)

    

(Level 3)

Assets as of June 30, 2024:

Cash and cash equivalents

$

207,363

 

$

 

$

Interest rate swap

1,864

Assets as of December 31, 2023:

Cash and cash equivalents

217,778

 

 

Interest rate swap

1,633

Other financial instruments not listed in the table consist of accounts receivable, accounts payable and certain accrued liabilities. These financial instruments generally approximate fair value based on their short-term nature. The carrying value of our long-term debt approximates fair value based on comparison with current prevailing market rates for loans of similar risks and maturities.

The interest rate swap is measured at fair value using the income approach, which discounts the future net cash settlements expected under the derivative contracts to a present value. These valuations primarily utilize indirectly observable inputs, including contractual terms, interest rates and yield curves observable at commonly quoted intervals. See Note 8 – “Derivative Instruments” for additional information.

XML 23 R12.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Revenue
6 Months Ended
Jun. 30, 2024
Revenue  
Revenue

Note 4—Revenue

We generate revenue under a range of contracting types, including fixed-price, unit-price, time and material, and cost reimbursable plus fee contracts, each of which has a different risk profile. For the six months ended June 30, 2024 and 2023, $2,116.8 million, and $1,777.6 million, respectively, of our revenue is derived from contracts where scope is adequately defined, and therefore we can reasonably estimate total contract value. For these contracts, revenue is recognized over time as work is completed because of the continuous transfer of control to the customer (typically using an input measure such as costs incurred to date relative to total estimated costs at completion to measure progress). For certain contracts, where scope is not adequately defined and we cannot reasonably estimate total contract value, revenue is recognized either on an input basis, based on contract costs incurred as defined within the respective contracts, or an output basis, based on units completed. Costs to obtain contracts are generally not significant and are expensed in the period incurred.

We evaluate whether two or more contracts should be combined and accounted for as one single performance obligation and whether a single contract should be accounted for as more than one performance obligation. ASC 606, Revenue from Contracts with Customers, defines a performance obligation as a contractual promise to transfer a distinct good or service to a customer. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. Our evaluation requires significant judgment and the decision to combine a group of contracts or separate a contract into multiple performance obligations could change the amount of revenue and profit recorded in a given period. The majority of our contracts have a single performance obligation, as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contract and, therefore, is not distinct. However, occasionally we have contracts with multiple performance obligations. For contracts with multiple performance obligations, we allocate the contract’s transaction price to each performance obligation using the observable standalone selling price, if available, or alternatively our best estimate of the standalone selling price of each distinct performance obligation in the contract. The primary method used to estimate standalone selling price is the expected cost plus a margin approach for each performance obligation.

As of June 30, 2024, we had $5.1 billion of remaining performance obligations. We expect to recognize 49.3% of our remaining performance obligations as revenue during the next 12 months and substantially all of the remaining balance in the 12 to 18 months thereafter.

Accounting for long-term contracts involves the use of various techniques to estimate total transaction price and costs. For long-term contracts, transaction price, estimated cost at completion and total costs incurred to date are used to calculate revenue earned. Unforeseen events and circumstances can alter the estimate of the costs and potential profit associated with a particular contract. Total estimated costs, and thus contract revenue and income, can be impacted by changes in productivity, scheduling, the unit cost of labor, subcontracts, materials and equipment. Additionally, external factors such as weather, client needs, client delays in providing permits and approvals, labor availability, governmental regulation, politics and pandemics may affect the progress of a project’s completion, and thus the timing of revenue recognition. To the extent that original cost estimates are modified, estimated costs to complete increase, delivery schedules are delayed, or progress under a contract is otherwise impeded, cash flow, revenue recognition and profitability from a particular contract may be adversely affected.

The nature of our contracts gives rise to several types of variable consideration, including contract modifications (change orders and claims), liquidated damages, volume discounts, performance bonuses, incentive fees, and other terms that can either increase or decrease the transaction price. We estimate variable consideration as the most likely amount to which we expect to be entitled. We include estimated amounts in the transaction price to the extent we believe we have an enforceable right, and it is probable that a significant reversal of cumulative revenue recognized will not occur. Our estimates of variable consideration and the determination of whether to include estimated amounts in the transaction price are based largely on an assessment of our anticipated performance and all information (historical, current and forecasted) that is reasonably available to us at this time.

Contract modifications result from changes in contract specifications or requirements. We consider unapproved change orders to be contract modifications for which customers have not agreed to both scope and price. We consider claims to be contract modifications for which we seek, or will seek, to collect from customers, or others, for customer-caused changes in contract specifications or design, or other customer-related causes of unanticipated additional contract costs on which there is no agreement with customers. Claims can also be caused by non-customer-caused changes, such as rain or other weather delays. Costs associated with contract modifications are included in the estimated costs to complete the contracts and are treated as project costs when incurred. In most instances, contract modifications are for goods or services that are not distinct, and, therefore, are accounted for as part of the existing contract. The effect of a contract modification on the transaction price, and our measure of progress for the performance obligation to which it relates, is recognized as an adjustment to revenue on a cumulative catch-up basis. In some cases, settlement of contract modifications may not occur until after completion of work under the contract.

As a significant change in one or more of these estimates could affect the profitability of our contracts, we review and update our contract-related estimates regularly. We recognize adjustments in estimated profit on contracts under the cumulative catch-up method. Under this method, the cumulative impact of the profit adjustment is recognized in the period the adjustment is identified. Revenue and profit in future periods of contract performance are recognized using the adjusted estimate. In the three months ended June 30, 2024, revenue was positively impacted by $3.9 million as a result of changes in estimates associated with performance obligations satisfied prior to March 31, 2024. In the six months ended June 30, 2024, revenue was negatively impacted by $0.7 million as a result of changes in estimates associated with performance obligations satisfied prior to December 31, 2023. If at any time the estimate of contract profitability indicates an anticipated loss on a contract, the projected loss is recognized in full, including the reversal of any previously recognized profit, in the period it is identified and recognized as an “accrued loss provision” which is included in “Contract liabilities” on the Condensed Consolidated Balance Sheets. For contract revenue recognized over time, the accrued loss provision is adjusted so that the gross profit for the contract remains zero in future periods.

As of June 30, 2024, we had approximately $191.9 million of unapproved contract modifications included in the aggregate transaction prices. These contract modifications were in the process of being negotiated in the normal course of business. Approximately $177.9 million of the contract modifications had been recognized as revenue on a cumulative catch-up basis through June 30, 2024.

In all forms of contracts, we estimate the collectability of contract amounts at the same time that we estimate project costs. If we anticipate that there may be issues associated with the collectability of the full amount calculated as the transaction price, we may reduce the amount recognized as revenue to reflect the uncertainty associated with realization of the eventual cash collection. For example, when a cost reimbursable project exceeds the client’s expected budget amount, the client frequently requests an adjustment to the final amount. Similarly, some utility clients reserve the right to audit costs for significant periods after performance of the work.

The timing of when we bill our customers is generally dependent upon agreed-upon contractual terms, milestone billings based on the completion of certain phases of the work, or when services are provided. Sometimes, billing occurs subsequent to revenue recognition, resulting in unbilled revenue, which is a contract asset. Also, we sometimes receive advances or deposits from our customers before revenue is recognized, resulting in deferred revenue, which is a contract liability.

The caption “Contract assets” in the Condensed Consolidated Balance Sheets represents the following:

unbilled revenue, which arises when revenue has been recorded but the amount will not be billed until a later date;

retainage amounts for the portion of the contract price earned by us for work performed, but held for payment by the customer as a form of security until we reach certain construction milestones; and

contract materials for certain job specific materials not yet installed, which are valued using the specific identification method relating to the cost incurred to a specific project.

Contract assets consist of the following (in thousands):

June 30, 

December 31, 

    

2024

    

2023

Unbilled revenue

$

609,247

$

604,166

Retention receivable

217,971

202,358

Contract materials (not yet installed)

 

45,790

 

39,652

$

873,008

$

846,176

Contract assets increased by $26.8 million compared to December 31, 2023, primarily due to higher retention receivable.

The caption “Contract liabilities” in the Condensed Consolidated Balance Sheets represents the following:

deferred revenue, which arises when billings are in excess of revenue recognized to date; and

the accrued loss provision.

Contract liabilities consist of the following (in thousands):

June 30, 

December 31, 

    

2024

    

2023

Deferred revenue

$

482,014

$

363,159

Accrued loss provision

 

1,864

 

3,317

$

483,878

$

366,476

Contract liabilities increased by $117.4 million compared to December 31, 2023, due to higher deferred revenue.

Revenue recognized for the six months ended June 30, 2024, that was included in the contract liability balance as of December 31, 2023, was approximately $304.1 million.

The following tables present our revenue disaggregated into various categories.

MSA and Non-MSA revenue was as follows (in thousands):

For the three months ended June 30, 2024

Segment

    

MSA

    

Non-MSA

    

Total

Utilities

$

496,458

 

$

124,340

 

 

620,798

Energy

77,952

895,540

973,492

Intersegment Eliminations

(44)

(30,531)

(30,575)

Total

$

574,366

 

$

989,349

 

$

1,563,715

For the six months ended June 30, 2024

Segment

    

MSA

    

Non-MSA

    

Total

Utilities

$

877,956

$

230,766

$

1,108,722

Energy

170,718

1,750,352

1,921,070

Intersegment Eliminations

(238)

(53,132)

(53,370)

Total

$

1,048,436

 

$

1,927,986

 

$

2,976,422

For the three months ended June 30, 2023

Segment

MSA

    

Non-MSA

    

Total

Utilities

$

480,131

 

$

169,107

 

$

649,238

Energy

67,206

711,509

778,715

Intersegment Eliminations

(2,950)

(11,626)

(14,576)

Total

$

544,387

 

$

868,990

 

$

1,413,377

For the six months ended June 30, 2023

Segment

MSA

Non-MSA

Total

Utilities

$

853,767

$

329,234

$

1,183,001

Energy

144,356

1,362,015

1,506,371

Intersegment Eliminations

(4,617)

(14,482)

(19,099)

Total

$

993,506

 

$

1,676,767

 

$

2,670,273

Revenue by contract type was as follows (in thousands):

For the three months ended June 30, 2024

Segment

    

Fixed-price

    

Unit-price

    

Cost reimbursable (1)

    

Total

Utilities

$

93,571

 

$

387,980

 

$

139,247

 

$

620,798

Energy

539,406

164,600

269,486

973,492

Intersegment Eliminations

(30,536)

(12)

(27)

(30,575)

Total

$

602,441

 

$

552,568

 

$

408,706

 

$

1,563,715

(1)Includes time and material and cost reimbursable plus fee contracts.

For the six months ended June 30, 2024

Segment

    

Fixed-price

    

Unit-price

    

Cost reimbursable (1)

    

Total

Utilities

$

180,571

$

685,405

$

242,746

$

1,108,722

Energy

1,142,706

307,389

470,975

1,921,070

Intersegment Eliminations

(51,485)

(1,765)

(120)

(53,370)

Total

$

1,271,792

 

$

991,029

 

$

713,601

 

$

2,976,422

(1)Includes time and material and cost reimbursable plus fee contracts.

For the three months ended June 30, 2023

Segment

Fixed-price

    

Unit-price

    

Cost reimbursable (1)

    

Total

Utilities

$

101,738

 

$

411,594

 

$

135,906

 

$

649,238

Energy

484,996

153,892

139,827

778,715

Intersegment Eliminations

(3,310)

(11,008)

(258)

(14,576)

Total

$

583,424

 

$

554,478

 

$

275,475

 

$

1,413,377

(1)Includes time and material and cost reimbursable plus fee contracts.

For the six months ended June 30, 2023

Segment

Fixed-price

Unit-price

Cost reimbursable (1)

Total

Utilities

$

187,685

734,965

$

260,351

$

1,183,001

Energy

1,014,560

280,219

211,592

1,506,371

Intersegment Eliminations

(6,059)

(11,866)

(1,174)

(19,099)

Total

$

1,196,186

 

$

1,003,318

 

$

470,769

 

$

2,670,273

(1)Includes time and material and cost reimbursable plus fee contracts.

Each of these contract types has a different risk profile. Typically, we assume more risk with fixed-price contracts. Unforeseen events and circumstances can alter the estimate of the costs and potential profit associated with a particular fixed-price contract. However, these types of contracts offer additional profits when we complete the work for less cost than originally estimated. Unit-price and cost reimbursable contracts generally subject us to lower risk. Accordingly, the associated fees are usually lower than fees earned on fixed-price contracts. Under these contracts, our profit may vary if actual costs vary significantly from the negotiated rates.

XML 24 R13.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Goodwill and Intangible Assets
6 Months Ended
Jun. 30, 2024
Goodwill and Intangible Assets  
Goodwill and Intangible Assets

Note 5—Goodwill and Intangible Assets

The carrying amount of goodwill by reportable segment was as follows (in thousands):

June 30, 

December 31, 

Reporting Segment

    

2024

    

2023

Utilities

 

$

703,462

$

703,462

Energy

 

 

154,188

 

154,188

Total Goodwill

$

857,650

$

857,650

The table below summarizes the intangible asset categories and amounts, which are amortized on a straight-line basis (in thousands):

June 30, 2024

December 31, 2023

Gross Carrying
Amount

    

Accumulated
Amortization

    

Intangible assets, net

    

Gross Carrying
Amount

    

Accumulated
Amortization

    

Intangible assets, net

Tradenames

$

19,220

$

(17,164)

$

2,056

$

19,220

$

(15,799)

$

3,421

Customer relationships

 

295,977

 

(80,750)

 

215,227

 

295,977

 

(71,837)

 

224,140

Total

$

315,197

$

(97,914)

$

217,283

$

315,197

$

(87,636)

$

227,561

Amortization expense of intangible assets was $5.1 million and $5.3 million for the three months ended June 30, 2024, and 2023, respectively, and $10.3 million and $11.4 million for the six months ended June 30, 2024 and 2023, respectively. Estimated future amortization expense for intangible assets is as follows (in thousands):

Estimated

Intangible

Amortization

For the Years Ending December 31, 

    

Expense

2024 (remaining six months)

$

9,396

2025

17,661

2026

 

16,141

2027

 

15,604

2028

 

14,381

Thereafter

 

144,100

$

217,283

XML 25 R14.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Accounts Payable and Accrued Liabilities
6 Months Ended
Jun. 30, 2024
Accounts Payable and Accrued Liabilities  
Accounts Payable and Accrued Liabilities

Note 6—Accounts Payable and Accrued Liabilities

As of June 30, 2024, and December 31, 2023, accounts payable included retention amounts of approximately $35.3 million and $24.7 million, respectively. These amounts owed to subcontractors have been retained pending contract completion and customer acceptance of jobs.

The following is a summary of accrued liabilities (in thousands):

June 30, 

December 31, 

    

2024

    

2023

Payroll and related employee benefits

$

144,759

$

108,618

Current operating lease liability

107,476

96,411

Casualty insurance reserves

 

13,502

 

18,015

Corporate income taxes and other taxes

 

33,674

 

14,203

Other

 

25,321

 

26,245

$

324,732

$

263,492

XML 26 R15.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Credit Arrangements
6 Months Ended
Jun. 30, 2024
Credit Arrangements  
Credit Arrangements

Note 7—Credit Arrangements

Long-term debt and credit facilities consist of the following (in thousands):

June 30, 

December 31, 

    

2024

    

2023

Term loan

$

862,316

$

874,128

Revolving credit facility

Commercial equipment notes

57,114

71,004

Mortgage notes

 

19,170

 

19,615

Total debt

938,600

964,747

Unamortized debt issuance costs

(5,572)

(6,475)

Total debt, net

$

933,028

$

958,272

Less: current portion

 

(89,270)

 

(72,903)

Long-term debt, net of current portion

$

843,758

$

885,369

The weighted average interest rate on total debt outstanding as of June 30, 2024 and December 31, 2023 was 6.6% and 6.8%, respectively.

On August 1, 2022, we entered into the Third Amended and Restated Credit Agreement (the “Amended Credit Agreement”), which increased our term loan to an aggregate principal amount of $945.0 million (the “Term Loan”) and increased our revolving credit facility to $325.0 million (the “Revolving Credit Facility”), under which the lenders agreed to make loans on a revolving basis from time to time and to issue letters of credit for up to the $325.0 million committed amount. The maturity date of the Amended Credit Agreement is August 1, 2027. As of June 30, 2024, commercial letters of credit outstanding were $51.6 million. There were no outstanding borrowings under the Revolving Credit Facility, and available borrowing capacity was $273.4 million as of June 30, 2024.

The Amended Credit Agreement contains various restrictive and financial covenants including, among others, a net senior debt/EBITDA ratio and minimum EBITDA to cash interest ratio. In addition, the Amended Credit Agreement includes restrictions on investments, change of control provisions and provisions in the event we dispose of more than 20% of our total assets. We were in compliance with the covenants for the Amended Credit Agreement as of June 30, 2024.

On January 31, 2023, we entered into an interest rate swap agreement to manage our exposure to the fluctuations in variable interest rates. The swap effectively exchanged the interest rate on $300.0 million of the debt outstanding under our Term Loan from variable to a fixed rate of 4.095% per annum, plus an applicable margin, which was 2.00% as of June 30, 2024. The interest rate swap matures on January 31, 2025. See Note 8 – “Derivative Instruments”.

Canadian Credit Facilities

We have credit facilities totaling $14.0 million in Canadian dollars for the purposes of issuing commercial letters of credit and providing funding for working capital. As of June 30, 2024, commercial letters of credit outstanding were $0.9 million in Canadian dollars and there were no outstanding borrowings. Available capacity as of June 30, 2024 was $13.1 million in Canadian dollars.

XML 27 R16.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Derivative Instruments
6 Months Ended
Jun. 30, 2024
Derivative Instruments  
Derivative Instruments

Note 8—Derivative Instruments

We are exposed to certain market risks related to changes in interest rates. To monitor and manage these market risks, we have established risk management policies and procedures. We do not enter into derivative instruments for any purpose other than hedging interest rate risk. None of our derivative instruments are used for trading purposes.

Interest Rate Risk. We are exposed to variable interest rate risk as a result of variable-rate borrowings under our Amended Credit Agreement. To manage fluctuations in cash flows resulting from changes in interest rates on a portion of our variable-rate debt, we entered into an interest rate swap agreement on January 31, 2023, with a notional amount of $300.0 million. The swap was not designated as a hedge for accounting purposes. The swap effectively changes the variable-rate cash flow exposure on the debt obligations to fixed rates. The fair value of outstanding interest rate swap derivatives can vary significantly from period to period depending on the total notional amount of swap derivatives outstanding and fluctuations in market interest rates compared to the interest rates fixed by the swap. As of June 30, 2024, and December 31, 2023, our outstanding interest rate swap agreement contained a notional amount of $300.0 million maturing on January 31, 2025.

Credit Risk. By using derivative instruments to economically hedge exposures to changes in interest rates, we are exposed to counterparty credit risk. Credit risk is the failure of a counterparty to perform under the terms of a derivative contract. When the fair value of a derivative contract is positive, the counterparty owes us, which creates credit risk for us. When the fair value of a derivative contract is negative, we owe the counterparty and, therefore, we do not possess credit risk. We minimize the credit risk in derivative instruments by entering into transactions with high quality counterparties. We have entered into netting agreements, including International Swap Dealers Association (“ISDA”) Agreements, which allow for netting of contract receivables and payables in the event of default by either party.

The following table summarizes the fair value of our derivative contracts included in the Condensed Consolidated Balance Sheets (in thousands):

    

    

    

June 30, 

    

December 31, 

Balance Sheet Location

2024

2023

Interest rate swap

 

Other current assets

$

1,864

$

Interest rate swap

Other long-term assets

1,633

The following table summarizes the amounts recognized with respect to our derivative instruments within the Condensed Consolidated Statements of Income (in thousands):

Three Months Ended

Six Months Ended

Location of Gain

June 30, 

June 30, 

    

Recognized on Derivatives

    

2024

    

2023

2024

    

2023

Interest rate swap

 

Interest expense, net

$

578

$

4,630

$

2,251

$

5,597

Cash flows from derivatives settled are reported as cash flows from operating activities.

XML 28 R17.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Income Taxes
6 Months Ended
Jun. 30, 2024
Income Taxes  
Income Taxes

Note 9—Income Taxes

We are subject to tax liabilities imposed by multiple jurisdictions. We determine our best estimate of the annual effective tax rate at each interim period using expected annual pre-tax earnings, statutory tax rates and available tax planning opportunities. Certain significant or unusual items are separately recognized in the quarter in which they occur, which can cause variability in the effective tax rate from quarter to quarter. We recognize interest and penalties related to uncertain tax positions, if any, as an income tax expense.

The effective tax rate on income for the six months ended June 30, 2024, and 2023 is 29.0%. For the first six months of 2024 and 2023, our tax rate differed from the U.S. federal statutory rate of 21.0% primarily due to the impact of state income taxes and nondeductible components of per diem expenses.

Our U.S. federal income tax returns are generally no longer subject to examination for tax years before 2020. The statutes of limitation of state and foreign jurisdictions generally vary between 3 to 5 years. Accordingly, our state and foreign income tax returns are generally no longer subject to examination for tax years before 2018.

Income taxes are accounted for under the asset and liability method. Deferred tax assets and liabilities are recognized for temporary differences between the financial reporting bases and tax bases of assets and liabilities based on enacted tax rates expected to be in effect when such amounts are realized or settled. However, deferred tax assets are recognized only to the extent that it is more likely than not that they will be realized based upon consideration of available evidence, including future reversals of existing taxable temporary differences, future projected taxable income, the length

of the tax asset carryforward periods and tax planning strategies. The effects of remeasurement of deferred tax assets and liabilities resulting from changes in tax rates are recognized in income in the period of enactment.

XML 29 R18.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Dividends and Earnings Per Share
6 Months Ended
Jun. 30, 2024
Dividends and Earnings Per Share  
Dividends and Earnings Per Share

Note 10—Dividends and Earnings Per Share

We paid cash dividends during 2024 and 2023 as follows:

Declaration Date

    

Record Date

    

Date Paid

    

Amount Per Share

February 22, 2023

March 31, 2023

April 14, 2023

0.06

May 3, 2023

June 30, 2023

July 14, 2023

0.06

August 2, 2023

September 29, 2023

October 13, 2023

0.06

November 2, 2023

December 29, 2023

January 12, 2024

0.06

February 21, 2024

March 28, 2024

April 15, 2024

0.06

May 1, 2024

June 28, 2024

July 15, 2024

0.06

The payment of future dividends is contingent upon our revenue and earnings, capital requirements and our general financial condition, as well as contractual restrictions and other considerations deemed relevant by the Board of Directors.

The table below presents the computation of basic and diluted earnings per share for the three and six months ended June 30, 2024 and 2023 (in thousands, except per share amounts).

Three Months Ended June 30, 

Six Months Ended June 30, 

2024

    

2023

    

2024

    

2023

Numerator:

Net income

$

49,543

$

39,032

$

68,486

$

40,342

Denominator:

Weighted average shares for computation of basic earnings per share:

 

53,640

 

53,301

 

53,565

 

53,243

Dilutive effect of stock-based awards

 

1,013

 

1,023

 

957

 

840

Weighted average shares for computation of diluted earnings per share

 

54,653

 

54,324

 

54,522

 

54,083

Earnings per share:

Basic

$

0.92

$

0.73

$

1.28

$

0.76

Diluted

$

0.91

$

0.72

$

1.26

$

0.75

XML 30 R19.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Stockholders' Equity
6 Months Ended
Jun. 30, 2024
Stockholders' Equity  
Stockholders' Equity

Note 11—Stockholders’ Equity

Common stock

We issued 11,359 and 21,245 shares of common stock in the six months ended June 30, 2024, and 2023, respectively, under our long-term retention plan (“LTR Plan”). The shares were purchased by the participants in the LTR Plan with payment made to us of $0.3 million in both the six months ended June 30, 2024, and 2023. Our LTR Plan for certain managers and executives allows participants to use a portion of their annual bonus amount to purchase our common stock at a discount from the market price. The shares purchased in the six months ended June 30, 2024, were a portion of bonus amounts earned in 2023, and the number of shares purchased was calculated based on 75% of the average daily closing market price of our common stock during December 2023. The shares purchased in the six months ended June 30, 2023, were for bonus amounts earned in 2022, and the number of shares was calculated based on 75% of the average daily closing market price during December 2022.

During the three months ended June 30, 2024, and 2023, we issued 6,400 and 10,264 shares of common stock, respectively, as part of the quarterly compensation of the non-employee members of the Board of Directors. During the six months ended June 30, 2024, and 2023, we issued 14,384 and 22,384 shares of common stock, respectively, as part of the quarterly compensation of the non-employee members of the Board of Directors.

During the three and six months ended June 30, 2024, a total of 35,850 and 271,569 restricted and performance stock units, net of forfeitures for tax withholdings, respectively, were converted to common stock. There were 35,973 and 154,025 restricted stock units, net of forfeitures for tax withholdings, converted to common stock during the three and six months ended June 30, 2023, respectively.

Employee Stock Purchase Plan

In May 2022, our shareholders approved the 2022 Primoris Services Corporation Employee Stock Purchase Plan (the “ESPP”), for which eligible full-time employees can purchase shares of our common stock at a discount. The purchase price of the stock is 90% of the lower of the market price at the beginning of the offering period or the end of the offering period. Purchases occur semi-annually, approximately 30 days following the filing of our Annual Report on Form 10-K for the fiscal year ended December 31 of each year, but in no cases can extend beyond March 31 of the period or year, and approximately 30 days following the filing of our Quarterly Report on Form 10-Q for the fiscal quarter ended June 30 of each year. For the six months ended June 30, 2024, 9,101 shares were purchased at an average discounted purchase price of $35.52 per share. For the six months ended June 30, 2023, 6,320 shares were purchased at an average discounted purchase price of $21.83 per share.

Share Purchase Plan

In November 2021, our Board of Directors authorized a $25.0 million share purchase program. Under the share purchase program, we can, depending on market conditions, share price and other factors, acquire shares of our common stock on the open market or in privately negotiated transactions. In November 2023, our Board of Directors replenished the limit to $25.0 million and extended the program to December 31, 2024. During the six months ended June 30, 2024 and 2023, we did not purchase any shares of common stock.

XML 31 R20.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Leases
6 Months Ended
Jun. 30, 2024
Leases  
Leases

Note 12—Leases

We lease administrative and operational facilities, which are generally longer-term, project specific facilities or yards, and construction equipment under non-cancelable operating leases. We determine if an arrangement is a lease at inception. We have lease agreements with lease and non-lease components, which are generally accounted for separately. Operating leases are included in “Operating lease assets”, “Accrued liabilities”, and “Noncurrent operating lease liabilities, net of current portion” on our Condensed Consolidated Balance Sheets. We also made an accounting policy election in which leases with an initial term of 12 months or less are not recorded on the balance sheet and lease payments are recognized in the Condensed Consolidated Statements of Income on a straight-line basis over the lease term.

Operating lease assets and operating lease liabilities are recognized at commencement date based on the present value of the future minimum lease payments over the lease term. In determining our lease term, we include options to extend or terminate the lease when it is reasonably certain that we will exercise that option. For our leases that do not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date to determine the present value of future payments. Lease expense from minimum lease payments is recognized on a straight-line basis over the lease term.

Our leases have remaining lease terms that expire at various dates through 2034, some of which may include options to extend the leases for up to 5 years. The exercise of lease extensions is at our sole discretion. Periodically, we sublease excess facility space, but any sublease income is generally not significant. Our lease agreements do not contain any material residual value guarantees or material restrictive covenants.

The components of lease expense are as follows (in thousands):

Three Months Ended June 30, 

Six Months Ended June 30, 

2024

2023

    

2024

2023

Operating lease expense (1)

$

37,145

$

25,110

$

71,770

$

47,982

________________________________________

(1)Includes short-term leases which are immaterial.

Our operating lease liabilities are reported on the Condensed Consolidated Balance Sheets as follows (in thousands):

June 30, 

December 31, 

    

2024

2023

Accrued liabilities

$

107,476

$

96,411

Noncurrent operating lease liabilities, net of current portion

 

308,114

 

263,454

$

415,590

$

359,865

XML 32 R21.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Commitments and Contingencies
6 Months Ended
Jun. 30, 2024
Commitments and Contingencies.  
Commitments and Contingencies

Note 13—Commitments and Contingencies

Legal proceedings We are subject to claims and legal proceedings from time to time arising out of our business. We accrue for loss contingencies when we conclude that a loss from such claims or legal proceedings is probable and the amount is reasonably estimable. When only a range of amounts is reasonably estimable and no amount within the range is more likely than another, the low end of the range is recorded. While the ultimate amount of liability incurred in any of these matters is dependent on future developments, in our opinion, the recorded liability is adequate to cover the future payment of such liability and claims. Any adjustments to the recorded liability will be reflected in earnings in the periods in which such adjustments become known. In determining whether it is possible to provide a reasonably estimable amount of possible loss, or range of possible loss, we review and evaluate our litigation and regulatory matters on a quarterly basis in light of potentially relevant factual and legal developments. If we determine an unfavorable outcome is not probable, or probable but not reasonably estimable, we do not accrue for a potential loss contingency, but the matter, if potentially material, is disclosed below.

Management is unable to ascertain the ultimate outcome of claims and legal proceedings, and unfavorable or unexpected outcomes could result in additional expense that could be significant to results of operations in a particular year or quarter. However, after taking into consideration relevant factors concerning these matters, management believes that the reasonably possible outcome of such claims will not, individually or in the aggregate, have a material adverse effect on our consolidated results of operations, financial condition or cash flow.

Bonding — As of June 30, 2024 and December 31, 2023, we had bid and completion bonds issued and outstanding totaling approximately $6.9 billion and $5.9 billion, respectively. The remaining performance obligation on those bonded projects totaled approximately $2.7 billion as of June 30, 2024, and December 31, 2023.

XML 33 R22.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Reportable Segments
6 Months Ended
Jun. 30, 2024
Reportable Segments  
Reportable Segments

Note 14—Reportable Segments

The current reportable segments include the Utilities segment and the Energy segment.

Each of our reportable segments is composed of similar business units that specialize in services unique to the segment. Driving the end-user focused segments are differences in the economic characteristics of each segment, the nature of the services provided by each segment; the production processes of each segment, the type or class of customer using the segment’s services, the methods used by the segment to provide the services, and the regulatory environment of each segment’s customers.

The classification of revenue and gross profit for segment reporting purposes can at times require judgment on the part of management. Our segments may perform services across industries or perform joint services for customers in multiple industries. To determine reportable segment gross profit, certain allocations, including allocations of shared and indirect costs, such as facility costs, equipment costs and indirect operating expenses, were made.

The following is a brief description of the reportable segments:

The Utilities segment operates throughout the United States and specializes in a range of services, including the installation and maintenance of new and existing natural gas and electric utility distribution and transmission systems, and communications systems.

The Energy segment operates throughout the United States and Canada and specializes in a range of services that include engineering, procurement, construction, refining, site development services for data centers, liquified natural gas plant construction, highway and bridge construction, demolition, site work, soil stabilization, mass excavation, flood control, upgrades, repairs, outages, pipeline construction and maintenance, pipeline integrity services, and maintenance services for entities in the renewable energy and energy storage, renewable fuels, and petroleum and petrochemical industries, as well as state departments of transportation.

Total assets by segment is not presented as our Chief Operating Decision Maker as defined by ASC 280, Segment Reporting, does not review or allocate resources based on segment assets.

Segment Revenue

Revenue by segment was as follows (in thousands):

For the three months ended June 30, 

2024

2023

Segment

    

Revenue

    

Revenue

Utilities

$

620,798

 

$

649,238

Energy

973,492

778,715

Intersegment Eliminations

(30,575)

(14,576)

Total

$

1,563,715

 

$

1,413,377

For the six months ended June 30, 

2024

2023

Segment

    

Revenue

    

Revenue

Utilities

$

1,108,722

 

$

1,183,001

Energy

1,921,070

1,506,371

Intersegment Eliminations

(53,370)

(19,099)

Total

$

2,976,422

 

$

2,670,273

Segment Gross Profit

Gross profit by segment was as follows (in thousands):

For the three months ended June 30, 

2024

2023

    

    

% of

    

    

% of

Segment

Segment

Segment

Gross Profit

Revenue

Gross Profit

Revenue

Utilities

$

64,066

 

10.3%

$

66,510

 

10.2%

Energy

122,644

12.6%

90,754

11.7%

Total

$

186,710

 

11.9%

$

157,264

 

11.1%

For the six months ended June 30, 

2024

2023

% of

% of

Segment

Segment

Segment

    

Gross Profit

    

Revenue

    

Gross Profit

    

Revenue

Utilities

$

93,545

 

8.4%

$

100,081

 

8.5%

Energy

226,541

11.8%

156,916

10.4%

Total

$

320,086

 

10.8%

$

256,997

 

9.6%

Segment Goodwill

The amount of goodwill recorded by each segment as of June 30, 2024 and December 31, 2023 is presented in Note 5 – “Goodwill and Intangible Assets”.

Geographic Region — Revenue and Total Assets

The majority of our revenue is derived from customers in the United States with approximately 5.4% and 5.6% generated from sources outside of the United States during the six months ended June 30, 2024 and 2023, respectively, principally in Canada. As of June 30, 2024 and December 31, 2023, approximately 3.4% and 3.9%, respectively, of total assets were located outside of the United States, principally in Canada.

XML 34 R23.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Pay vs Performance Disclosure - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Pay vs Performance Disclosure        
Net Income (Loss) $ 49,543 $ 39,032 $ 68,486 $ 40,342
XML 35 R24.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Insider Trading Arrangements
3 Months Ended
Jun. 30, 2024
Trading Arrangements, by Individual  
Rule 10b5-1 Arrangement Adopted false
Non-Rule 10b5-1 Arrangement Adopted false
Rule 10b5-1 Arrangement Terminated false
Non-Rule 10b5-1 Arrangement Terminated false
XML 36 R25.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Basis of Presentation (Policies)
6 Months Ended
Jun. 30, 2024
Basis of Presentation  
Reclassification

Reclassification Certain previously reported amounts have been reclassified to conform to the current year

presentation.

Restricted cash

Restricted cash Restricted cash consists primarily of cash balances that are restricted as to withdrawal or usage and contract retention payments made by customers into escrow bank accounts and are included in prepaid expenses and other current assets in our Condensed Consolidated Balance Sheets. Escrow cash accounts are released to us by customers as projects are completed in accordance with contract terms. The following tables provide a reconciliation of cash, cash equivalents and restricted cash reported within the Condensed Consolidated Balance Sheets to the totals of such amounts shown in the Condensed Consolidated Statements of Cash Flows (in thousands):

June 30,

    

2024

    

2023

Cash and cash equivalents

$

207,363

$

122,692

Restricted cash included in prepaid expenses and other current assets

5,625

5,672

Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows

$

212,988

$

128,364

    

    

December 31,

    

2023

    

2022

Cash and cash equivalents

$

217,778

$

248,692

Restricted cash included in prepaid expense and other current assets

5,764

10,299

Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows

$

223,542

$

258,991

Accounts Receivable Securitization Facility

Accounts Receivable Securitization Facility — In June 2023, we entered into an Accounts Receivable Securitization Facility (“the Facility”) with PNC Bank, National Association ("PNC") to improve cash flows from trade accounts receivable. In July 2024, we renewed the Facility for a two-year term, added Regions Bank (“Regions”) to the Facility, and increased the maximum purchase commitment to $150.0 million, at any one time. Fees associated with the Facility for the six months ended June 30, 2024, were $2.7 million and are included in interest expense in the Condensed Consolidated Statements of Income.

Under the Facility, certain of our designated subsidiaries may sell their trade accounts receivable as they are originated to a wholly owned bankruptcy remote Special Purpose Entity (“SPE”) created specifically for this purpose. We control and, therefore, consolidate the SPE in our consolidated financial statements. The SPE transfers ownership and control of qualifying accounts receivable to PNC and Regions up to the maximum purchase commitment. We and our related subsidiaries have no continuing involvement in the transferred accounts receivable, other than collection and administrative responsibilities, and, once sold, the accounts receivable are no longer available to satisfy our creditors or our related subsidiaries. We account for accounts receivable sold to the banking counterparty as a sale of financial assets and derecognize the trade accounts receivable from our Condensed Consolidated Balance Sheets.

The total outstanding balance of trade accounts receivable that have been sold and derecognized is $75.0 million as of June 30, 2024. The SPE owned $266.4 million of trade accounts receivable as of June 30, 2024, which are included in Accounts receivable, net on the Condensed Consolidated Balance Sheets. For the six months ended June 30, 2024 and 2023, we received $10.0 million and $25.0 million, respectively, in cash proceeds from the Facility, and repaid $10.0 million and $0, respectively to the Facility, which are included in cash from operating activities in the Condensed Consolidated Statements of Cash Flows. As of June 30, 2024, we had $25.0 million available capacity under the Facility prior to the July renewal.

Customer concentration

Customer concentration — We operate in multiple industry sectors encompassing the construction of commercial, industrial and public works infrastructure assets primarily throughout the United States. Typically, the top ten customers in any one calendar year generate revenue that is approximately 35% to 45% of total revenue; however, the companies that comprise the top ten customers vary from year to year.

For the three and six months ended June 30, 2024, approximately 39.7% and 42.3%, respectively, of total revenue was generated from our top ten customers and no one customer accounted for more than 10% of our total revenue.

For the three and six months ended June 30, 2023, approximately 39.5% and 38.1%, respectively, of total revenue was generated from our top ten customers and no one customer accounted for more than 10% of our total revenue.

Recently Issued Accounting Pronouncements

Recently Issued Accounting Pronouncements

In November 2023, the FASB issued ASU No. 2023-07, “Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures” which changes the accounting and reporting of segment disclosure requirements primarily through enhanced disclosure about significant segment expenses in accordance with FASB Accounting Standards Codification 280, Segment Reporting. This ASU is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The amendments should be applied prospectively on or after the effective date. We adopted the new standard on January 1, 2024, on a prospective basis. This ASU will likely result in us including additional required disclosures in the financial statement footnotes in our annual report on form 10-K commencing with the year ending December 31, 2024, but is not expected to have an effect on our consolidated financial position, results of operations or cash flows.

In December 2023, the FASB issued ASU No. 2023-09, “Income Taxes (Topic 740): Improvements to Income Tax Disclosures” that requires presentation of specific categories of reconciling items, as well reconciling items that meet a quantitative threshold, in the reconciliation between the income tax provision and the income tax provision using statutory tax rates. The standard also requires disclosure of income taxes paid disaggregated by jurisdiction with separate disclosure of income taxes paid to individual jurisdictions that meet a quantitative threshold. ASU No. 2023-09 is effective for fiscal years beginning after December 15, 2024, with early adoption permitted. The amendments should be applied prospectively; however, entities have the option to apply retrospectively for each period presented. We do not expect the adoption of this new standard in 2025 to have an impact on our consolidated financial position, results of operations or cash flows.

XML 37 R26.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Basis of Presentation (Tables)
6 Months Ended
Jun. 30, 2024
Basis of Presentation  
Schedule of reconciliation of cash, cash equivalents and restricted cash The following tables provide a reconciliation of cash, cash equivalents and restricted cash reported within the Condensed Consolidated Balance Sheets to the totals of such amounts shown in the Condensed Consolidated Statements of Cash Flows (in thousands):

June 30,

    

2024

    

2023

Cash and cash equivalents

$

207,363

$

122,692

Restricted cash included in prepaid expenses and other current assets

5,625

5,672

Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows

$

212,988

$

128,364

    

    

December 31,

    

2023

    

2022

Cash and cash equivalents

$

217,778

$

248,692

Restricted cash included in prepaid expense and other current assets

5,764

10,299

Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows

$

223,542

$

258,991

XML 38 R27.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Fair Value Measurements (Tables)
6 Months Ended
Jun. 30, 2024
Fair Value Measurements  
Schedule of financial assets and liabilities which are required to be measured at fair value

The following table presents, for each of the fair value hierarchy levels identified under ASC Topic 820, our financial assets and liabilities that are required to be measured at fair value as of June 30, 2024 and December 31, 2023 (in thousands):

Fair Value Measurements at Reporting Date

    

    

Significant

    

Quoted Prices

Other

Significant

in Active Markets

Observable

Unobservable

for Identical Assets

Inputs

Inputs

    

(Level 1)

    

(Level 2)

    

(Level 3)

Assets as of June 30, 2024:

Cash and cash equivalents

$

207,363

 

$

 

$

Interest rate swap

1,864

Assets as of December 31, 2023:

Cash and cash equivalents

217,778

 

 

Interest rate swap

1,633

XML 39 R28.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Revenue (Tables)
6 Months Ended
Jun. 30, 2024
Revenue  
Schedule of contract assets

Contract assets consist of the following (in thousands):

June 30, 

December 31, 

    

2024

    

2023

Unbilled revenue

$

609,247

$

604,166

Retention receivable

217,971

202,358

Contract materials (not yet installed)

 

45,790

 

39,652

$

873,008

$

846,176

Schedule of contract liabilities

Contract liabilities consist of the following (in thousands):

June 30, 

December 31, 

    

2024

    

2023

Deferred revenue

$

482,014

$

363,159

Accrued loss provision

 

1,864

 

3,317

$

483,878

$

366,476

Schedule of revenue disaggregation by various categories

MSA and Non-MSA revenue was as follows (in thousands):

For the three months ended June 30, 2024

Segment

    

MSA

    

Non-MSA

    

Total

Utilities

$

496,458

 

$

124,340

 

 

620,798

Energy

77,952

895,540

973,492

Intersegment Eliminations

(44)

(30,531)

(30,575)

Total

$

574,366

 

$

989,349

 

$

1,563,715

For the six months ended June 30, 2024

Segment

    

MSA

    

Non-MSA

    

Total

Utilities

$

877,956

$

230,766

$

1,108,722

Energy

170,718

1,750,352

1,921,070

Intersegment Eliminations

(238)

(53,132)

(53,370)

Total

$

1,048,436

 

$

1,927,986

 

$

2,976,422

For the three months ended June 30, 2023

Segment

MSA

    

Non-MSA

    

Total

Utilities

$

480,131

 

$

169,107

 

$

649,238

Energy

67,206

711,509

778,715

Intersegment Eliminations

(2,950)

(11,626)

(14,576)

Total

$

544,387

 

$

868,990

 

$

1,413,377

For the six months ended June 30, 2023

Segment

MSA

Non-MSA

Total

Utilities

$

853,767

$

329,234

$

1,183,001

Energy

144,356

1,362,015

1,506,371

Intersegment Eliminations

(4,617)

(14,482)

(19,099)

Total

$

993,506

 

$

1,676,767

 

$

2,670,273

Revenue by contract type was as follows (in thousands):

For the three months ended June 30, 2024

Segment

    

Fixed-price

    

Unit-price

    

Cost reimbursable (1)

    

Total

Utilities

$

93,571

 

$

387,980

 

$

139,247

 

$

620,798

Energy

539,406

164,600

269,486

973,492

Intersegment Eliminations

(30,536)

(12)

(27)

(30,575)

Total

$

602,441

 

$

552,568

 

$

408,706

 

$

1,563,715

(1)Includes time and material and cost reimbursable plus fee contracts.

For the six months ended June 30, 2024

Segment

    

Fixed-price

    

Unit-price

    

Cost reimbursable (1)

    

Total

Utilities

$

180,571

$

685,405

$

242,746

$

1,108,722

Energy

1,142,706

307,389

470,975

1,921,070

Intersegment Eliminations

(51,485)

(1,765)

(120)

(53,370)

Total

$

1,271,792

 

$

991,029

 

$

713,601

 

$

2,976,422

(1)Includes time and material and cost reimbursable plus fee contracts.

For the three months ended June 30, 2023

Segment

Fixed-price

    

Unit-price

    

Cost reimbursable (1)

    

Total

Utilities

$

101,738

 

$

411,594

 

$

135,906

 

$

649,238

Energy

484,996

153,892

139,827

778,715

Intersegment Eliminations

(3,310)

(11,008)

(258)

(14,576)

Total

$

583,424

 

$

554,478

 

$

275,475

 

$

1,413,377

(1)Includes time and material and cost reimbursable plus fee contracts.

For the six months ended June 30, 2023

Segment

Fixed-price

Unit-price

Cost reimbursable (1)

Total

Utilities

$

187,685

734,965

$

260,351

$

1,183,001

Energy

1,014,560

280,219

211,592

1,506,371

Intersegment Eliminations

(6,059)

(11,866)

(1,174)

(19,099)

Total

$

1,196,186

 

$

1,003,318

 

$

470,769

 

$

2,670,273

(1)Includes time and material and cost reimbursable plus fee contracts.
XML 40 R29.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Goodwill and Intangible Assets (Tables)
6 Months Ended
Jun. 30, 2024
Goodwill and Intangible Assets  
Schedule of goodwill by reporting unit

The carrying amount of goodwill by reportable segment was as follows (in thousands):

June 30, 

December 31, 

Reporting Segment

    

2024

    

2023

Utilities

 

$

703,462

$

703,462

Energy

 

 

154,188

 

154,188

Total Goodwill

$

857,650

$

857,650

Summary of intangible asset categories, amounts and the average amortization periods

The table below summarizes the intangible asset categories and amounts, which are amortized on a straight-line basis (in thousands):

June 30, 2024

December 31, 2023

Gross Carrying
Amount

    

Accumulated
Amortization

    

Intangible assets, net

    

Gross Carrying
Amount

    

Accumulated
Amortization

    

Intangible assets, net

Tradenames

$

19,220

$

(17,164)

$

2,056

$

19,220

$

(15,799)

$

3,421

Customer relationships

 

295,977

 

(80,750)

 

215,227

 

295,977

 

(71,837)

 

224,140

Total

$

315,197

$

(97,914)

$

217,283

$

315,197

$

(87,636)

$

227,561

Schedule of estimated future amortization expense for intangible assets Estimated future amortization expense for intangible assets is as follows (in thousands):

Estimated

Intangible

Amortization

For the Years Ending December 31, 

    

Expense

2024 (remaining six months)

$

9,396

2025

17,661

2026

 

16,141

2027

 

15,604

2028

 

14,381

Thereafter

 

144,100

$

217,283

XML 41 R30.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Accounts Payable and Accrued Liabilities (Tables)
6 Months Ended
Jun. 30, 2024
Accounts Payable and Accrued Liabilities  
Summary of accrued liabilities

The following is a summary of accrued liabilities (in thousands):

June 30, 

December 31, 

    

2024

    

2023

Payroll and related employee benefits

$

144,759

$

108,618

Current operating lease liability

107,476

96,411

Casualty insurance reserves

 

13,502

 

18,015

Corporate income taxes and other taxes

 

33,674

 

14,203

Other

 

25,321

 

26,245

$

324,732

$

263,492

XML 42 R31.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Credit Arrangements (Tables)
6 Months Ended
Jun. 30, 2024
Credit Arrangements  
Schedule of long-term debt and credit facilities

Long-term debt and credit facilities consist of the following (in thousands):

June 30, 

December 31, 

    

2024

    

2023

Term loan

$

862,316

$

874,128

Revolving credit facility

Commercial equipment notes

57,114

71,004

Mortgage notes

 

19,170

 

19,615

Total debt

938,600

964,747

Unamortized debt issuance costs

(5,572)

(6,475)

Total debt, net

$

933,028

$

958,272

Less: current portion

 

(89,270)

 

(72,903)

Long-term debt, net of current portion

$

843,758

$

885,369

XML 43 R32.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Derivative Instruments (Tables)
6 Months Ended
Jun. 30, 2024
Derivative Instruments  
Schedule of fair values of our derivative contracts included in the Condensed Consolidated Balance Sheets

The following table summarizes the fair value of our derivative contracts included in the Condensed Consolidated Balance Sheets (in thousands):

    

    

    

June 30, 

    

December 31, 

Balance Sheet Location

2024

2023

Interest rate swap

 

Other current assets

$

1,864

$

Interest rate swap

Other long-term assets

1,633

Schedule of derivative instruments within the Condensed Consolidated Statements of Income

The following table summarizes the amounts recognized with respect to our derivative instruments within the Condensed Consolidated Statements of Income (in thousands):

Three Months Ended

Six Months Ended

Location of Gain

June 30, 

June 30, 

    

Recognized on Derivatives

    

2024

    

2023

2024

    

2023

Interest rate swap

 

Interest expense, net

$

578

$

4,630

$

2,251

$

5,597

XML 44 R33.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Dividends and Earnings Per Share (Tables)
6 Months Ended
Jun. 30, 2024
Dividends and Earnings Per Share  
Schedule of cash dividends paid or declared

We paid cash dividends during 2024 and 2023 as follows:

Declaration Date

    

Record Date

    

Date Paid

    

Amount Per Share

February 22, 2023

March 31, 2023

April 14, 2023

0.06

May 3, 2023

June 30, 2023

July 14, 2023

0.06

August 2, 2023

September 29, 2023

October 13, 2023

0.06

November 2, 2023

December 29, 2023

January 12, 2024

0.06

February 21, 2024

March 28, 2024

April 15, 2024

0.06

May 1, 2024

June 28, 2024

July 15, 2024

0.06

Schedule of computation of basic and diluted earnings per share

The table below presents the computation of basic and diluted earnings per share for the three and six months ended June 30, 2024 and 2023 (in thousands, except per share amounts).

Three Months Ended June 30, 

Six Months Ended June 30, 

2024

    

2023

    

2024

    

2023

Numerator:

Net income

$

49,543

$

39,032

$

68,486

$

40,342

Denominator:

Weighted average shares for computation of basic earnings per share:

 

53,640

 

53,301

 

53,565

 

53,243

Dilutive effect of stock-based awards

 

1,013

 

1,023

 

957

 

840

Weighted average shares for computation of diluted earnings per share

 

54,653

 

54,324

 

54,522

 

54,083

Earnings per share:

Basic

$

0.92

$

0.73

$

1.28

$

0.76

Diluted

$

0.91

$

0.72

$

1.26

$

0.75

XML 45 R34.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Leases (Tables)
6 Months Ended
Jun. 30, 2024
Leases  
Summary of components of lease expense

The components of lease expense are as follows (in thousands):

Three Months Ended June 30, 

Six Months Ended June 30, 

2024

2023

    

2024

2023

Operating lease expense (1)

$

37,145

$

25,110

$

71,770

$

47,982

________________________________________

(1)Includes short-term leases which are immaterial.
Summary of operating lease liabilities

Our operating lease liabilities are reported on the Condensed Consolidated Balance Sheets as follows (in thousands):

June 30, 

December 31, 

    

2024

2023

Accrued liabilities

$

107,476

$

96,411

Noncurrent operating lease liabilities, net of current portion

 

308,114

 

263,454

$

415,590

$

359,865

XML 46 R35.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Reportable Segments (Tables)
6 Months Ended
Jun. 30, 2024
Reportable Segments  
Schedule of revenue and gross profit by segment

Segment Revenue

Revenue by segment was as follows (in thousands):

For the three months ended June 30, 

2024

2023

Segment

    

Revenue

    

Revenue

Utilities

$

620,798

 

$

649,238

Energy

973,492

778,715

Intersegment Eliminations

(30,575)

(14,576)

Total

$

1,563,715

 

$

1,413,377

For the six months ended June 30, 

2024

2023

Segment

    

Revenue

    

Revenue

Utilities

$

1,108,722

 

$

1,183,001

Energy

1,921,070

1,506,371

Intersegment Eliminations

(53,370)

(19,099)

Total

$

2,976,422

 

$

2,670,273

Segment Gross Profit

Gross profit by segment was as follows (in thousands):

For the three months ended June 30, 

2024

2023

    

    

% of

    

    

% of

Segment

Segment

Segment

Gross Profit

Revenue

Gross Profit

Revenue

Utilities

$

64,066

 

10.3%

$

66,510

 

10.2%

Energy

122,644

12.6%

90,754

11.7%

Total

$

186,710

 

11.9%

$

157,264

 

11.1%

For the six months ended June 30, 

2024

2023

% of

% of

Segment

Segment

Segment

    

Gross Profit

    

Revenue

    

Gross Profit

    

Revenue

Utilities

$

93,545

 

8.4%

$

100,081

 

8.5%

Energy

226,541

11.8%

156,916

10.4%

Total

$

320,086

 

10.8%

$

256,997

 

9.6%

XML 47 R36.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Basis of Presentation - Restricted Cash (Details) - USD ($)
$ in Thousands
Jun. 30, 2024
Dec. 31, 2023
Jun. 30, 2023
Dec. 31, 2022
Basis of Presentation        
Cash and cash equivalents $ 207,363 $ 217,778 $ 122,692 $ 248,692
Restricted cash included in prepaid expense and other current assets $ 5,625 $ 5,764 $ 5,672 $ 10,299
Restricted Cash, Statement of Financial Position Prepaid Expense and Other Assets, Current Prepaid Expense and Other Assets, Current Prepaid Expense and Other Assets, Current Prepaid Expense and Other Assets, Current
Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows $ 212,988 $ 223,542 $ 128,364 $ 258,991
XML 48 R37.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Basis of Presentation - Accounts Receivable Securitization Facility (Details) - USD ($)
$ in Millions
1 Months Ended 6 Months Ended
Jul. 31, 2024
Jun. 30, 2024
Jun. 30, 2023
Accounts, Notes, Loans and Financing Receivable [Line Items]      
Facility term 2 years    
Accounts receivable from securitization   $ 25.0  
Sale of accounts receivable   75.0  
Cash proceeds from facility   10.0 $ 25.0
Repayments to the facility   10.0 $ 0.0
Accounts receivable securitization facility fee   2.7  
Special Purpose Entity | Accounts receivable, net      
Accounts, Notes, Loans and Financing Receivable [Line Items]      
Trade accounts receivables   $ 266.4  
Maximum      
Accounts, Notes, Loans and Financing Receivable [Line Items]      
Accounts receivable from securitization $ 150.0    
XML 49 R38.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Basis of Presentation - Customer concentration (Details)
3 Months Ended 6 Months Ended
Jun. 30, 2024
customer
Jun. 30, 2023
USD ($)
Jun. 30, 2024
customer
Jun. 30, 2023
USD ($)
customer
Customer concentration        
Number of top customers     10 10
Revenues | Customer concentration | Top ten customers        
Customer concentration        
Percentage of concentration risk 39.70% 39.50% 42.30% 38.10%
Number of customers 10 10 10 10
Revenues | Customer concentration | Top ten customers | Minimum        
Customer concentration        
Minimum percentage of revenues generated by top ten customers     35.00%  
Revenues | Customer concentration | Top ten customers | Maximum        
Customer concentration        
Minimum percentage of revenues generated by top ten customers     45.00%  
XML 50 R39.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Fair Value Measurements (Details) - Recurring - USD ($)
$ in Thousands
Jun. 30, 2024
Dec. 31, 2023
Quoted Prices in Active Markets for Identical Assets (Level 1)    
Assets    
Cash and cash equivalents $ 207,363 $ 217,778
Interest rate swap | Significant Other Observable Inputs (Level2)    
Assets    
Derivative asset $ 1,864 $ 1,633
XML 51 R40.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Revenue - Performance obligations (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Revenue expected timing        
Revenue $ 1,563,715 $ 1,413,377 $ 2,976,422 $ 2,670,273
Remaining performance obligations 5,100,000   5,100,000  
Revenue recognized from performance obligations satisfied in previous periods 3,900   (700)  
Amount of contract modifications included in the expected contract value. $ 191,900   191,900  
Amount of unapproved contract modifications recognized as revenue on a cumulative catch-up basis     177,900  
Revenue recognized over time        
Revenue expected timing        
Revenue     $ 2,116,800 $ 1,777,600
XML 52 R41.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Revenue - Performance obligations - Details (Details)
6 Months Ended
Jun. 30, 2024
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-07-01  
Revenue expected timing  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction 12 months
Percentage of remaining performance obligation expected to be recognized in period 49.30%
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-04-01 | Minimum  
Revenue expected timing  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction 12 months
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-04-01 | Maximum  
Revenue expected timing  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction 18 months
XML 53 R42.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Revenue - Contract assets (Details) - USD ($)
$ in Thousands
6 Months Ended
Jun. 30, 2024
Dec. 31, 2023
Revenue    
Unbilled revenue $ 609,247 $ 604,166
Retention receivable 217,971 202,358
Contract materials (not yet installed) 45,790 39,652
Contract assets 873,008 $ 846,176
Increase (decrease) in contract assets $ 26,800  
XML 54 R43.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Revenue - Contract liabilities (Details) - USD ($)
$ in Thousands
6 Months Ended
Jun. 30, 2024
Dec. 31, 2023
Revenue    
Deferred revenue $ 482,014 $ 363,159
Accrued loss provision 1,864 3,317
Contract liabilities 483,878 $ 366,476
Increase in contract liabilities 117,400  
Revenue recognized included in contract liability at beginning of period $ 304,100  
XML 55 R44.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Revenue - Disaggregation of revenue by customer type and contract type (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Disaggregation of Revenue        
Revenue $ 1,563,715 $ 1,413,377 $ 2,976,422 $ 2,670,273
Fixed price        
Disaggregation of Revenue        
Revenue 602,441 583,424 1,271,792 1,196,186
Unit price        
Disaggregation of Revenue        
Revenue 552,568 554,478 991,029 1,003,318
Cost reimbursable        
Disaggregation of Revenue        
Revenue 408,706 275,475 713,601 470,769
MSA        
Disaggregation of Revenue        
Revenue 574,366 544,387 1,048,436 993,506
Non-MSA        
Disaggregation of Revenue        
Revenue 989,349 868,990 1,927,986 1,676,767
Intersegment Eliminations        
Disaggregation of Revenue        
Revenue (30,575) (14,576) (53,370) (19,099)
Intersegment Eliminations | Fixed price        
Disaggregation of Revenue        
Revenue (30,536) (3,310) (51,485) (6,059)
Intersegment Eliminations | Unit price        
Disaggregation of Revenue        
Revenue (12) (11,008) (1,765) (11,866)
Intersegment Eliminations | Cost reimbursable        
Disaggregation of Revenue        
Revenue (27) (258) (120) (1,174)
Intersegment Eliminations | MSA        
Disaggregation of Revenue        
Revenue (44) (2,950) (238) (4,617)
Intersegment Eliminations | Non-MSA        
Disaggregation of Revenue        
Revenue (30,531) (11,626) (53,132) (14,482)
Utilities | Operating Segment        
Disaggregation of Revenue        
Revenue 620,798 649,238 1,108,722 1,183,001
Utilities | Operating Segment | Fixed price        
Disaggregation of Revenue        
Revenue 93,571 101,738 180,571 187,685
Utilities | Operating Segment | Unit price        
Disaggregation of Revenue        
Revenue 387,980 411,594 685,405 734,965
Utilities | Operating Segment | Cost reimbursable        
Disaggregation of Revenue        
Revenue 139,247 135,906 242,746 260,351
Utilities | Operating Segment | MSA        
Disaggregation of Revenue        
Revenue 496,458 480,131 877,956 853,767
Utilities | Operating Segment | Non-MSA        
Disaggregation of Revenue        
Revenue 124,340 169,107 230,766 329,234
Energy | Operating Segment        
Disaggregation of Revenue        
Revenue 973,492 778,715 1,921,070 1,506,371
Energy | Operating Segment | Fixed price        
Disaggregation of Revenue        
Revenue 539,406 484,996 1,142,706 1,014,560
Energy | Operating Segment | Unit price        
Disaggregation of Revenue        
Revenue 164,600 153,892 307,389 280,219
Energy | Operating Segment | Cost reimbursable        
Disaggregation of Revenue        
Revenue 269,486 139,827 470,975 211,592
Energy | Operating Segment | MSA        
Disaggregation of Revenue        
Revenue 77,952 67,206 170,718 144,356
Energy | Operating Segment | Non-MSA        
Disaggregation of Revenue        
Revenue $ 895,540 $ 711,509 $ 1,750,352 $ 1,362,015
XML 56 R45.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Goodwill and Intangible Assets - Goodwill (Details) - USD ($)
$ in Thousands
Jun. 30, 2024
Dec. 31, 2023
Goodwill    
Goodwill $ 857,650 $ 857,650
Utilities    
Goodwill    
Goodwill 703,462 703,462
Energy    
Goodwill    
Goodwill $ 154,188 $ 154,188
XML 57 R46.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Goodwill and Intangible Assets - Intangible Assets (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Dec. 31, 2023
Intangible assets          
Gross Carrying Amount $ 315,197   $ 315,197   $ 315,197
Accumulated Amortization (97,914)   (97,914)   (87,636)
Intangible assets, net 217,283   217,283   227,561
Amortization expense of intangible assets 5,100 $ 5,300 10,300 $ 11,400  
Tradenames          
Intangible assets          
Gross Carrying Amount 19,220   19,220   19,220
Accumulated Amortization (17,164)   (17,164)   (15,799)
Intangible assets, net 2,056   2,056   3,421
Customer relationships          
Intangible assets          
Gross Carrying Amount 295,977   295,977   295,977
Accumulated Amortization (80,750)   (80,750)   (71,837)
Intangible assets, net $ 215,227   $ 215,227   $ 224,140
XML 58 R47.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Goodwill and Intangible Assets - Future Amortization (Details) - USD ($)
$ in Thousands
Jun. 30, 2024
Dec. 31, 2023
Estimated future amortization expense for intangible assets    
2024 (remaining six months) $ 9,396  
2025 17,661  
2026 16,141  
2027 15,604  
2028 14,381  
Thereafter 144,100  
Intangible assets, net $ 217,283 $ 227,561
XML 59 R48.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Accounts Payable and Accrued Liabilities (Details) - USD ($)
$ in Thousands
Jun. 30, 2024
Dec. 31, 2023
Accounts Payable and Accrued Liabilities    
Retention amounts included in accounts payable $ 35,300 $ 24,700
Accrued liabilities    
Payroll and related employee benefits 144,759 108,618
Current operating lease liability 107,476 96,411
Casualty insurance reserves 13,502 18,015
Corporate income taxes and other taxes 33,674 14,203
Other 25,321 26,245
Total accrued liabilities $ 324,732 $ 263,492
XML 60 R49.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Credit Arrangements (Details) - USD ($)
$ in Thousands
Jun. 30, 2024
Dec. 31, 2023
Credit Agreements    
Total debt $ 938,600 $ 964,747
Unamortized debt issuance costs (5,572) (6,475)
Total debt, net 933,028 958,272
Less: current portion (89,270) (72,903)
Long-term debt, net of current portion 843,758 885,369
Term loan    
Credit Agreements    
Total debt 862,316 874,128
Commercial equipment notes    
Credit Agreements    
Total debt 57,114 71,004
Mortgage notes    
Credit Agreements    
Total debt $ 19,170 $ 19,615
XML 61 R50.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Credit Arrangements - Narratives (Details) - USD ($)
$ in Thousands
6 Months Ended
Aug. 01, 2022
Jun. 30, 2024
Jun. 30, 2023
Dec. 31, 2023
Jan. 31, 2023
Credit Agreements          
Weighted average interest rate (as a percent)   6.60%   6.80%  
Payments on long-term debt   $ (26,148) $ (51,234)    
Aggregate principal amount   933,028   $ 958,272  
Unamortized debt issuance costs   (5,572)   (6,475)  
Interest rate swap          
Credit Agreements          
Notional Amount   300,000   $ 300,000  
Credit Agreement.          
Credit Agreements          
Percentage of credit agreement, threshold restriction of total assets 20.00%        
Revolving credit facility          
Credit Agreements          
Maximum borrowing capacity $ 325,000        
Borrowings outstanding   0      
Available borrowing capacity   $ 273,400      
Term loan          
Credit Agreements          
Principal amount 945,000        
Term loan | Interest rate swap          
Credit Agreements          
Notional Amount         $ 300,000
Derivative fixed interest rate (as a percent)         4.095%
Basis spread on variable rate (as a percent)   2.00%      
Commercial letters of credit          
Credit Agreements          
Maximum borrowing capacity $ 325,000        
Borrowings outstanding   $ 51,600      
XML 62 R51.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Credit Arrangements- Canadian Credit Facilities (Details)
$ in Millions
Jun. 30, 2024
CAD ($)
Canadian Credit Facility  
Credit Agreements  
Maximum borrowing capacity $ 14.0
Available borrowing capacity 13.1
Borrowings outstanding 0.0
Foreign letters of credit  
Credit Agreements  
Letters of credit outstanding $ 0.9
XML 63 R52.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Derivative Instruments (Details)
$ in Millions
6 Months Ended
Jun. 30, 2024
USD ($)
instrument
Dec. 31, 2023
USD ($)
Jan. 31, 2023
USD ($)
Derivative Instruments      
Number of instruments used for trading | instrument 0    
Interest rate swap      
Derivative Instruments      
Notional Amount $ 300.0 $ 300.0  
Interest rate swap | Second agreement      
Derivative Instruments      
Notional Amount     $ 300.0
XML 64 R53.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Derivative Instruments - Derivative contract and instruments (Details) - Interest rate swap - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Dec. 31, 2023
Derivative Instruments          
Derivative assets, current $ 1,864   $ 1,864    
Derivative Asset, Current, Statement of Financial Position [Extensible Enumeration] Prepaid Expense and Other Assets, Current   Prepaid Expense and Other Assets, Current    
Derivative assets, noncurrent         $ 1,633
Derivative Asset, Noncurrent, Statement of Financial Position [Extensible Enumeration]         Other Assets, Noncurrent
Amount of (gain) loss recognized on derivatives, net $ (578) $ (4,630) $ (2,251) $ (5,597)  
Derivative, Gain (Loss), Statement of Income or Comprehensive Income [Extensible Enumeration] Interest Income (Expense), Nonoperating, Net Interest Income (Expense), Nonoperating, Net Interest Income (Expense), Nonoperating, Net Interest Income (Expense), Nonoperating, Net  
XML 65 R54.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Income Taxes (Details)
6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Income Taxes    
Effective income tax rate reconciliation (in percent) 29.00% 29.00%
U.S. federal statutory income tax rate (as a percent) 21.00% 21.00%
XML 66 R55.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Dividends and Earnings Per Share (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Mar. 31, 2024
Dec. 31, 2023
Sep. 30, 2023
Jun. 30, 2023
Mar. 31, 2023
Jun. 30, 2024
Jun. 30, 2023
Cash dividend declared (in dollars per share) $ 0.06       $ 0.06   $ 0.12 $ 0.12
Numerator:                
Net Income (Loss) $ 49,543       $ 39,032   $ 68,486 $ 40,342
Denominator:                
Weighted average shares for computation of basic earnings per share 53,640       53,301   53,565 53,243
Dilutive effect of stock-based awards 1,013       1,023   957 840
Weighted average shares for computation of diluted earnings per share 54,653       54,324   54,522 54,083
Earnings per share:                
Basic earnings per share (in dollars per share) $ 0.92       $ 0.73   $ 1.28 $ 0.76
Diluted earnings per share (in dollars per share) $ 0.91       $ 0.72   $ 1.26 $ 0.75
Q1 2023 Dividends                
Declaration Date           Feb. 22, 2023    
Record Date           Mar. 31, 2023    
Date Paid           Apr. 14, 2023    
Cash dividend declared (in dollars per share)           $ 0.06    
Q2 2023 Dividends                
Declaration Date         May 03, 2023      
Record Date         Jun. 30, 2023      
Date Paid         Jul. 14, 2023      
Cash dividend declared (in dollars per share)         $ 0.06      
Q3 2023 Dividends                
Declaration Date       Aug. 02, 2023        
Record Date       Sep. 29, 2023        
Date Paid       Oct. 13, 2023        
Cash dividend declared (in dollars per share)       $ 0.06        
Q4 2023 Dividends                
Declaration Date     Nov. 02, 2023          
Record Date     Dec. 29, 2023          
Date Paid     Jan. 12, 2024          
Cash dividend declared (in dollars per share)     $ 0.06          
Q1 2024 Dividends                
Declaration Date   Feb. 21, 2024            
Record Date   Mar. 28, 2024            
Date Paid   Apr. 15, 2024            
Cash dividend declared (in dollars per share)   $ 0.06            
Q2 2024 Dividends                
Declaration Date May 01, 2024              
Record Date Jun. 28, 2024              
Date Paid Jul. 15, 2024              
Cash dividend declared (in dollars per share) $ 0.06              
XML 67 R56.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Stockholders' Equity (Details) - USD ($)
$ in Millions
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Restricted and Performance Stock Units        
Common Stock        
Conversion of restricted and performance stock units, net of shares withheld for taxes (in shares) 35,850 35,973 271,569 154,025
LTR Plan        
Common Stock        
Shares of common stock issued under the long-term incentive plan 11,359 21,245    
Amount received in exchange for shares of common stock under a long term incentive plan     $ 0.3 $ 0.3
Percentage of average market closing prices used in determining number of common stock that could be purchased by participants     75.00% 75.00%
Equity Plan | Independent Directors        
Common Stock        
Shares of common stock issued as a part of quarterly compensation of non-employee members of the Board of Directors 6,400 10,264 14,384 22,384
XML 68 R57.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Stockholders' Equity - Employee Stock Purchase Plan, Secondary Offering & Share Purchase Plan (Details) - USD ($)
$ / shares in Units, $ in Millions
1 Months Ended 6 Months Ended
May 31, 2022
Jun. 30, 2024
Jun. 30, 2023
Dec. 31, 2023
Nov. 30, 2023
Nov. 30, 2021
Secondary Offering            
Common stock, par value (in dollars per share)   $ 0.0001   $ 0.0001    
Treasury Stock, Value [Abstract]            
Aggregate purchase price up to which shares can be acquired under share purchase program         $ 25.0 $ 25.0
Employee Stock Purchase Plan            
Employee Stock Purchase Plan            
Purchase price of stock 90.00%          
Purchase in annual report period 30 days          
Purchase of quarterly report period 30 days          
Shares of common stock issued under the long-term incentive plan   9,101 6,320      
Stock purchase price   $ 35,520 $ 21,830      
XML 69 R58.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Leases - Components of Lease Expense and Operating Lease Liabilities (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Dec. 31, 2023
Aggregate sales price, net of closing costs     $ 73,930 $ 23,465  
Components of lease expense          
Operating lease expense $ 37,145 $ 25,110 71,770 $ 47,982  
Operating lease liabilities          
Accrued liabilities $ 107,476   $ 107,476   $ 96,411
Operating Lease, Liability, Current, Statement of Financial Position [Extensible List] Accrued Liabilities, Current   Accrued Liabilities, Current   Accrued Liabilities, Current
Noncurrent operating lease liabilities, net of current portion $ 308,114   $ 308,114   $ 263,454
Operating lease liabilities $ 415,590   $ 415,590   $ 359,865
Maximum          
Renewal term 5 years   5 years    
XML 70 R59.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Commitments and Contingencies - Legal (Details) - USD ($)
$ in Billions
Jun. 30, 2024
Dec. 31, 2023
Commitments and Contingencies.    
Bid and completion bonds issued and outstanding $ 6.9 $ 5.9
Remaining performance obligation on the bonded projects. $ 2.7 $ 2.7
XML 71 R60.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Reportable Segments (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Segment reporting information        
Revenue $ 1,563,715 $ 1,413,377 $ 2,976,422 $ 2,670,273
Gross Profit $ 186,710 $ 157,264 $ 320,086 $ 256,997
% of Segment Revenue 11.90% 11.10% 10.80% 9.60%
Intersegment Eliminations        
Segment reporting information        
Revenue $ (30,575) $ (14,576) $ (53,370) $ (19,099)
Utilities | Operating Segment        
Segment reporting information        
Revenue 620,798 649,238 1,108,722 1,183,001
Gross Profit $ 64,066 $ 66,510 $ 93,545 $ 100,081
% of Segment Revenue 10.30% 10.20% 8.40% 8.50%
Energy | Operating Segment        
Segment reporting information        
Revenue $ 973,492 $ 778,715 $ 1,921,070 $ 1,506,371
Gross Profit $ 122,644 $ 90,754 $ 226,541 $ 156,916
% of Segment Revenue 12.60% 11.70% 11.80% 10.40%
XML 72 R61.htm IDEA: XBRL DOCUMENT v3.24.2.u1
Reportable Segments - Revenue and Total Assets by Geographic Area (Details) - Non-United States
6 Months Ended 12 Months Ended
Jun. 30, 2024
Jun. 30, 2023
Dec. 31, 2023
Revenues and total assets by geographic area      
% of Revenue 5.40% 5.60%  
% of total assets 3.40%   3.90%
EXCEL 73 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( &Z,!5D'04UB@0 +$ 0 9&]C4')O<',O87!P+GAM M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGDK7A.YNJQ<&4GPZ4A!0W_J=0U[R;UEA_6\#MI7E!+ P04 M " !NC 5982S[&^\ K @ $0 &1O8U!R;W!S+V-O&ULS9+/ M3L,P#(=?!>7>NG_8A**N%Q GD)"8!.(6.=X6K6FCQ*C=VY.&K1."!^ 8^Y?/ MGR4WZ"0.GE[\X,BSH7 SV:X/$MU&')B=! AX(*M"'A-];.X&;Q7'I]^#4WA4 M>X*J*-9@B956K& &9FXABK;1*-&3XL&?\1H7O/OT78)I!.K(4L\!RKP$T1H(RZ3W^K[A^VC:*NBNLV*NZQ8;:M2UBM9KC]FUQ]^5V$[:+,S M_]CX(M@V\.LNVB]02P,$% @ ;HP%69E&UL[5I;<]HX%'[OK]!X9_9M"\8V@;:T$W-I=MNTF83M M3A^%$5B-;'EDD81_OTV23;J;/ 0LZ?O.14?GZ#AY\^XN8NB&B)3R M> +]O6N[!3+ MUES@6QHO(];JM-O=5H1I;*$81V1@?5XL:$#05%%:;U\@M.4?,_@5RU2-9:,! M$U=!)KF(M/+Y;,7\VMX^9<_I.ATR@6XP&U@@?\YOI^1.6HCA5,+$P&IG/U9K MQ]'22(""R7V4!;I)]J/3%0@R#3LZG5C.=GSVQ.V?C,K:=#1M&N#C\7@XMLO2 MBW A(5M>5 TR M6'!VULS2 Y9>*?IUE!K9';O=05SP6.XYB1'^QL4$UFG2&98T1G*=D 4. #?$ MT4Q0?*]!MHK@PI+27)#6SRFU4!H(FLB!]4>"(<7K;YH] M5Z%82=J$^!!&&N*<<^9ST6S[!Z5&T?95O-RCEU@5 9<8WS2J-2S%UGB5P/&M MG#P=$Q+-E L&08:7)"82J3E^34@3_BNEVOZKR2.FJW"$2M"/F(9 M-AIRM1:!MG&IA&!:$L;1>$[2M!'\6:PUDSY@R.S-D77.UI$.$9)>-T(^8LZ+ MD!&_'H8X2IKMHG%8!/V>7L-)P>B"RV;]N'Z&U3-L+([W1]072N0/)J<_Z3(T M!Z.:60F]A%9JGZJ'-#ZH'C(*!?&Y'C[E>G@*-Y;&O%"N@GL!_]':-\*K^(+ M.7\N?<^E[[GT/:'2MSAD6R4)RU3393>* M$IY"&V[I4_5*E=?EK[DHN#Q;Y.FOH70^+,_Y/%_GM,T+,T.WF)&Y M"M-2D&_#^>G%>!KB.=D$N7V85VWGV-'1^^?!4;"C[SR6'<>(\J(A[J&&F,_# M0X=Y>U^89Y7&4#04;6RL)"Q&MV"XU_$L%.!D8"V@!X.O40+R4E5@,5O& RN0 MHGQ,C$7H<.>77%_CT9+CVZ9EM6ZO*7<9;2)2.<)IF!-GJ\K>9;'!51W/55OR ML+YJ/;053L_^6:W(GPP13A8+$DACE!>F2J+S&5.^YRM)Q%4XOT4SMA*7&+SC MYL=Q3E.X$G:V#P(RN;LYJ7IE,6>F\M\M# DL6XA9$N)-7>W5YYNTB42%(JP# 4A M%W+C[^^3:G>,U_HL@6V$5#)DU1?*0XG!/3-R0]A4)?.NVB8+A=OB5,V[&KXF M8$O#>FZ=+2?_VU[4/;07/4;SHYG@'K.' MYA,L0Z1^P7V*BH 1JV*^NJ]/^26<.[1[\8$@F_S6VZ3VW> ,?-2K6J5D*Q$_ M2P=\'Y(&8XQ;]#1?CQ1BK::QK<;:,0QY@%CS#*%F.-^'19H:,]6+K#F-"F]! MU4#E/]O4#6CV#30,9FV-J/D3@H\W/[O#;#"Q([A[8N_ 5!+ P04 M" !NC 59$_CWM\\% #_'@ & 'AL+W=O<->PJ.T,S[+K\W4^$QF)HY2,5-$9TG" MU?.EB.7FO$,[NPMWT7)E[(7>^&S-EV(NS._KF8*S7JD21HE(=213HL3BO'-! MWTU\9@/R)_Z(Q$:_.";6RH.47^W)-#SO>+9$(A:!L1(<_A[%1,2Q58)R_+,5 M[93OM($OCW?J-[EY,// M9C(^,\H-*OSSDF'A&+!L]CO\ MEVR*9_O]#@DR;62R#882)%%:_/.G;46\"/#]F@"V#6!O FC=&_QM@)\;+4J6 MV[KBAH_/E-P099\&-7N0UTT>#6ZBU*9Q;A3L%6^;)09C7*0_)1IF:E0344X>OX'I2R+"K; M%?62H8*_9NDQ\;TCPCS6=Y1GTA0>'Q-VZ@I_51R_K#D_U_/;U9RKP@K!OEO0 M=MAW>LT#<=Z!'JF%>A2=\0_?T:'WL\OM-Q)[Y;U?>N]CZI7W^^>U<#G%PZG7 M_>RRA$:UM#0H+0WVL_0YX\H(%3^3.[&6RKCLX5)&9:Y*F:!1+>T-2WO#_>S- MA(JD;; A@0'#F3QR&M?T0C6_I*R=B43# M6AH\*0V>H(7:CC0W42S(;98\".4RAFMX'NWZ?=H?N,RAH2W-G9;F3O6 MD3:00$-N>>)LH[C.3$6)5)$FH7$O3U*OF8&\?V],T MJ$IY1.8&^B>1"LJ>I48]PW_HK(L&]:MKEV,\J*WE%]A!][%\SY_(-(3^&BVB MH"".^D;=(,F\;G_4]T_IT.D7#6[KEU5^V3Y^+\(0U/71[H!\@.?(I]2=5UR2 M^9Y';H]A*!!Q"*U% 0-"J\DB(XJ"TU//*?D8I8$[Y[CF_5].HX< )UJ1 M$\5YYZW1F=2&Q^3O:%T_9.&*HP'SJ-/I(1B*5A!%$ MLA\??@(H"#(%F72:Q)4F,DE@CIH;&7P](M][QQZP%%ES11YY[*9^7+&M]XJH M*(Y"P,%AE"[)_#EYD+'3<@-+W4T_.GT=@IE8Q4P,IYI=$LGU4[#BZ5+4HF*# MT.V7N1.0\+"V_BI 8GL!TB13RG[.%-\P>2)A&LF0CJ817UL+VHQWZW =$#"2RE)4$O;,=^#@ED!&21KGKI3BPO6&ST$];"*>A@.+;M$K@0D$K.'R]3; M.P3]L(I^& XNNY'VU=0^SU>]R:?, ,NF=@9U.OY&7+.MAT)MD*O9_9?'\< ? MCAB0U5GOT>6Q(B"VUZK1!$94!:@W34/Q1'X3[C0V+1YYU!_2@7_B]' (VF$5 M[3 <5G;3Y4VD+=)^$4!FV%)G@URW2UG7=WZ)X)$MC?H5_O@-BSJ[=&PO=V]R:W-H965T M&ULK5EM;]LV$/XKA%=L*^#$%*G7-#&0QMG:HDN".MT^,Q)M M"Y5$5Z*<9+]^1]F1;)&B4ZP?VDCRP]-S1]X]1^K\493?JA7G$CWE65%=C%92 MKL\FDRI>\9Q5IV+-"_AE(GGP)5VNI'HPF9ZOV9+/N?RZOBOA;M): M2=*<%U4J"E3RQ<7HTCF[HE0-:!!_I_RQVKM&RI4'(;ZIFX_)Q0@K1CSCL50F M&/S9\"N>96 5OQ+9/VDB5Q>C<(02OF!U M)K^(QP]\YY"G[,4BJYK_T>,.BT]H%8F^ XPX,(+L! MY+4#Z&Y $[G)EEGCUHQ)-CTOQ2,J%1JLJ8LF-LUH\"8MU#3.90F_IC!.3J]N M;V;7-_/K&8*K^>WGC[/+>[AY?_GY\N;J<_7%_?S]$)^CJ?H=_?O$5O4%J@ M^Y6H*U8DU?E$ @=E:1+OWO=^^SXR\+Y/=7&**!XC@HEK&'YE'S[C,0QWFN'T M":#:@L.ZO6+.87(TBCBI<; M/IK^^HOCXWLKM5F?7K%JA6#64*PN^/8$01"VL .F;LO4M3*]C&-1 S&H$S$'E@\9'Z."2Q/1 MK25OCT$8AL0/>D1UF!]Z+HW,1+V6J&2):]@F2@O9W@"'@Z/98ZS@E#CU!JIAFV-,,C 09!+>5S M$UB54FN0.#FX6$.-A>OZU'%[9 VPP(O(P&*-6JZ1E>LM,&4R+98HXR!\EJ!& M^ON)T]3K YHZC/K8PX&9IH,[2<)6HA\+R8IE"EF_XS@8SYTA[[#^$&V-FG D M\'QG@.J>>CI6JG\*D3RF668DY^@Y[06^A_ODCN(.R77:YECE9'K;)'HFBN6) MY&5NF?"=H8/T\&GD]YGJ,((]=VC".V%R[,JT378+/:HO2.Q&4.C[!'4@#4G@ MDB&*G2(Y[JL:A2QE#VF6RI2;NP7'JFP_VB[\+&N'3G?JYMCEK=7A-7M6(FQT M6%23@9GI),ZQ:URKP7M38R2J"Y4;TC#0UI".4^X,2;'3 M*9ICES2(9EGSY"A/7:HH<0-*^CP-TN=3-QH*:"=ICEW39NDF33AT]]9IUS6* M0NGM4"SVJES"'\Q:HA M-Y(WZ)E+ Z^?:"9WLZN^[=B.*%INCU/'MQ_R&7=.&C.'2TQLV M4SGIN0,N=0I)[ HYXPL.+!,DV=/1Q:.+H!>YKL;5!//\H873*26Q;][Z7<CDDP36#FPN1?QM);*$E]5OS5Y+/AM=M:KP#Q_8_"1KATYW6DSL6JRF'02N M4KZ?O,&G&&,'9+E$&Y;5_!V*\!@>J7^H6K%2[?!KN1)E^B]/WB&/COV C ,7 M-VL&;J&3&5,2H+2J5"O2' ?4LH+]5J**)*M40?Q4%[P]HQLWH!F/>?X >?UR M]C9&\+(U;PYA,_,\Z-K?WT]8(8<1ZWH#8N\-+I,D564:$[0)=V;0&UMP5?N&3P*$&1SMN@%J[P:@=ZWS.F.2M^='(H<5OU('^AN.T@+NC8TBU57^A/A: M?3?!@G"(=]<*4'LKL"WOU2M+!S5L@TD4$=IONXQ ZN.AYIONG=&^9BN\IT=- M^KW: ?T\UKQ1-@#-&^7)WJ<%]5WG+U8NTZ*"=FH!(_%I #$HMY]*MC=2K)NO M#0]"2I$WERO.@+@"P.\+ 3*UNU$?,-H/5M/_ %!+ P04 " !NC 59<*OW M39X" X!P & 'AL+W=OW[/X'.TY>)&%@ *W964R:E3*%4=N:[,"BBQ'/ *F)Y9<5%BI5.Q=F4E .<6 M5%+7][S0+3%A3AS9L:6((UXK2A@L!9)U66)Q?PR4;Z?.T'D8N"3K0ID!-XXJ MO(84U(]J*73F=BPY*8%)PAD2L)HZL^%1$IIZ6_"3P%;NQ,@XN>;\QB2G^=3Q MC""@D"G#@/5C PE0:HBTC-N6T^F6-,#=^(']J_6NO5QC"0FGOTBNBJGSR4$Y MK'!-U27?GD#K9VSX,DZE_4?;IC:<."BKI>)E"]8*2L*:)[YK]V$',!P] ?!; M@/]20- " FNT469MS;'"<23X%@E3K=E,8/?&HK4;PLQ;3)70LT3C5)QG-F3?^)-;_5;( "[Q#YGC_J@2?/P^>0:?C0PH-]N*O==UO@ M=UO@6[[@";Y4\>RFX#0'(=\CN*V)NN\SU;",^EG,:3N2%=XP[)O]9MB=_U,D?O4)^\Q$B7*N""_(;\CZ] M#>%X1\AGK_D]4OR"PCW-XT[S^/6:B91UO][Q7S+&03CQ)Z/'>OL*@S ,_$F_ MWK#3&[Y>K[X$I,(L)VS=)SI\J>B^PE[1[DY?,W?*=RS6A$E$8:6AWF"B.433 MIYM$\F>W649_P%02P,$% @ ;HP% M6;8VF04:!@ /AP !@ !X;"]W;W)K3+5OQ.9??MO>%NANW+'&RX9E(\@P4?'DY^H0N(DS* M@ KQ5\*?Q,$U**4\YOF/\N8ZOAS!LD8\Y0M94C#UM^6X+; M!%32Q[7V*G$ADVPZ*?(G4)1HQ59>5-FOHE6^DJSL*'-9J+>)BI/3V=UM&-W. MHQ"HJ_G=G]?AIP=U,W]0?S?1[<,SNYL(? 3?YB%X_^X#$&M6< &2 M##RL\YU@62S.P+NC^\E8JNJ5A8P7356NZJK@GJH0<)-G[;@M^W4@K0++I6,_12XE'G(GX_UA8BTX!Q'B><>XT,3A MP*,.QL>XR(*C'L0>:7%'2MU6J3NH=)8+"?*E6JAZ%=<$[J$2)0-"7;$%AUV* M$-$4FSA,50H)U11;<"J#V*-VQ;153 <5?RER(<"VR)>)M,FEI@R?>@AJ:BTP MU\/4T<2:,**,AZ]K-6$J=4'@V:5ZK51O4.I@1VTBH-!Q7=;7K9PME)68I%OK",[, 50Z.D]W41YT NTT1^:*$0@@5H^ M(DN1@8][M"+862\XN*3>R34O&J7@?=.G/UQ8G1,\Y?IY4K;PI&S1J=B.V^3 M#J/!'JAV'VIOD:D99K%FV8J#E=ILG8&,6Z?=ANRHFU%M#IE90,339I#0 E++ MAD8565$0]W1$W(G&P\/.VA'[56-S/!BB38QG+*H6T$?'U36;( 0=IT=S9V?1 MH!>;7F>2JPXD7]:2?K7$K"126HBNV(:COJ\OKC8<<97KT'5;<<0)>I1W-A$- M^\3KNIT?^5+U]=)3[)-JVZ]N7_J 9,_VQ;6A/JP4#3POT'-APEP70JBGPH0% MU'$#/1,6-NICV).(SD6B81MY_S;IIK7[6.ZMJ*[=@D-N0/5%ULKG!1[1U=OX MJ./Y/?([2XF&/>4MEP/+;!-\Z-V=P'6,7F_"2 )UL6:,.H[AJ.T%0J)TS?! M=982#7O*,-DG,<]B9:'51*IJRH7U9//U@S4I?A'U0. MGNM6LZ8*C;A'H1M^*TF>7T()"YU@WP':NGCTM[@PP M'C1S:EBFNW)#\WKI#>'QB AT\V%%Z1N8T()2TO4IR<[E]DCO?"9&@V/P>_4% M6VEG>[7E43[S<%(2(-])(=6>3PU3Z]C$@R[VK6/SI&SA2=FB4[$=MU-GC?&P M->[&9MTR]EYI6E274$??DUIA!.K?'*PPE^K^T K#3L^N%'?&& \;X\-!.:39 MM*>N0UW='UAA!.NFV HS/EY$5ACT=A^@BJH^R.OKZ9.V&%:LD$R#E2U54.5.,0%$?5M4W,M]6 MIS&/N93YIKI<'T7U!+ P04 " !NC 59?#G7 M[T8# "+"P & 'AL+W=OYZ[ MYWSD;K!E_*=("9'HN=V; D64&HR!A%G"R&QJ7=CSO*OC3XEI&MV%DCI>2)L9]J M,TZ&AJ4"(CF92\6 X;$A(Y+GB@C"^%5S&HU+!=Q=O[!?E]I!RQ,69,3R[UDB MTZ'1-5!"%GB=RP>VO2&U'E_QS5DNRE^TK6TM \W70K*B!D,$14:K)WZN\[ # M !X]P*D!3AO@_07@U@#WK1Z\&N"]U8-? TKI9J6]3%R$)0X'G&T15]; IA9E M]DLTY"NCJDYFDL/;#' R'-U-HW@ZBR,$J]G=[3BZ?(3-[!$>DWCZ.$-WU_!J M4[86F"9B8$J(2[&;\SJ&JRH& MYR\QN&C"J$P%BFE"$@T^.HX/CN!-R$>3%.CODZ$!'SU!^(88 MX?MW=F!]UMW"*8RIG-6$/3AE@GQ47N?:T^HU6_VAM MWLF4< 1:(8^I:EX; M^B2GNNM']"%-+!%DCBY[XN$?XI"_*49-$IR>(3D>U= M4M!<4G"T(*&A0[NFT,TX)W3^&TF.J AM8VC8O9WJN8\L'NM M,CTTLMU.MU6E&B:[VVO5B(#45Z2M]61=EW#J]FL6:RR==J\K!ZR4OSGOJK7:2O> MUI]FS4.=IU][S6:]3NNO;[*B M>CJ?H,FW/]SDGU9M]X?9Q=E#^BF[S=H/#^]K\6ZV5UGFZZQL\JKTZNS^?/(: MO>(!Z2KT)?[(LZ?FX+77=>5C57WNWEPMSR=^UZ*LR!9M)Y&*7X_99584G9)H MQY\[TE=9M&"=E]O?Z9?=0!Q40.1(!;RK@+4*.#I2 M@>PJ$#U"?*0"W56@6@62'*D0["H$I_8AW%4(^['?#E8_TO.T32_.ZNK)J[O2 M0JU[T=O5UQ8#G)?=S+IM:_'?7-1K+RZOW\W9NULV]\2KV^O?K^:O[\2;VSOQ MZRU[=W?K77/Q[OKR7[]=_SYG-[=_]]B_/US=_=>;>A]NY]XO/[WP?O+RTKM; M59LF+9?-V:P5[>K49XM=&]YLVX"/M:%:K\4DNVVKQ6=+[4MW[=?+9=Y-TK3P MWJ?Y>@3]ZF$?8YMM6Z6P5^HN48\7X=GL\= :LP0.210AM=C<+!;3*(RU M8LPL-L4A]M52W"R%D!_')-Z74P:&[ >&G#0POX@)U*S2.FM>G#1(6]7@H#D! M09C&2:*-E3-\=P=YU3RDB^Q\(F9+D]6/V>3BY[^AT/^';1Y#BC%(,0XDIGA( M]Q[27IT<\5 L+G%[;82)PK;^U8ONVM1?6595L!8K MYL1[N4U U!JK& MH=14RP]@"'):WB<*TZW)8B?Y('+V?O]B-<\I-78-[M34-#*.M34(&I.!JO&A M'JB62%R!W+QBGC_FRZQ<-MXR6Q1B*5F3-;?(:#,@U>8[->7Z%))$6^0,-"@? M#*K:(2$).HV2I*WWSTWYTB-^3T:(U10RR(^024]PF/A$O_E8RL4Q"G&L#Z)9 M;HH0CK1]M:48$COKX!A#0A) (&>.>XPB#8\5M:P>@N,X(OJ0@;($4#4&JL:A MU%0K)4] ;J!P,-7?IO4> MKM"X:GNIEUXS"(4:1/=;-<3(/(O%Z8Y:8X\ -] MJIO%$/(3A(YD*DCF^\B=\!^9ZL-C96:U@9CI(G;"LH=D,DZB-A"Z 05 M-"@?#*K:(&D!NQ.Z<&(*C;S6^3CD.J?B$,FU7-0 M-0:JQJ'45&,/SC&XP<#S@%5WT-%KTI*%!UA?DY A&:@:'^B :IV$"-@-$9Z? MK&(SP2=!8N32[G:.7JR@AS) U3B4FNJXQ"+8C47&@%6WU.@E:((5XON)O@9! M,0BH&A_J@6J)Q!O8C3=. ZMND=%F@)Z(0QC;7+*@,-R@>#JC9(6D#"%" 6A\9TWT!,AR9@ M"44>K"]#4!P"JL:'>J!:(C$'<6..TP"K6V2T&: G*XB%A(24Z( 5-"@?#*K: M(;$*.0VK:-"06DU)!JD3,6D+CN*8&!/?CA) M,#GR?0NNH..7I*6+!P1_>$F+4+0F Q4C0_U0+5$ M\HW S3=.0ZMND=%F@!ZN""P(A&#]R\ ,-"@?#*K:(7%*FYT&H@(47PEYXM.3Q8MH=+6M&JNP&C9RJ;:MU_W*5 MI WOTSHB_^#U!+ P04 " !NC 5904I=$:@" 3 M" & 'AL+W=O<36T4JV+OFVK.(6*6+5)M%'8P*.@"IJ#O MBHE$R6Y8$I8#5TQP(F$^M$Z[_<@W]J7!-P9KM;4G)I-[(1Z,<)D,+<<$!!G$ MVC!07%8P@BPS1!C&SYK3:EP:X/9^PWY>YHZYW%,%(Y%]9XE.A]:)11*8TV6F M;\7Z NI\C@U?+#)5_I)U;>M8)%XJ+?(:C!'DC%-SE,:C+Q?CJS"ZG;XE MT=>[R]D/\FY")7"=@F8QS8[(!_*:V$2EJ%4#6V-LQH,=UW&<57&X+\3AD6N! M9(I$/(&D!1_NQO=VX&VL25,8=U.8,W4]W]2#*]Y)5[)YQWZE;0]A,J5W^[*],6^*F@,0PL;GP*Y BMX\ZK;SX70&\$X:/X'!+\!4$L#!!0 ( M &Z,!5E=(V_N:0@ !DE 8 >&PO=V]R:W-H965T&UL MK5KO4Z-($_Y7IO)>O;5;M6Z8'T#PU53%J'>YGN[IIWN8LR>5_LR64N;D>14GV7EOF>?KTWX_"Y9RY6=? MU5HF\)^%2E=^#K?I8S];I](/BT&KN,\LR^FO_"CI#<^*9[?I\$QM\CA*Y&U* MLLUJY:T5[U3#]R_?M5^71@/QCSXF1RK^*\HS)?GO4&/A'+A;^+\NWKZ0^X, MLK6^0,59\9<\[62M'@DV6:Y6N\& 8!4EY:__O)N(O0&@!Q_ =@-82*JE09N^*.:F& W61(EVXSQ/X;\1C,N'X]GT\FHZ MO[HD<#6?W4PN1W=P,[^#GV]7T[LYF5V3\6C^![F^F?TU)R?D?GY)/OWVF?Q& MHH3<+=4F\Y,P.^OG@$;K[ >[-U^4;V8=;W;(-Y7DRXQ<):$,#\?WP8K*%/9J MR@4S*OQSDWPEW/I"F,4$@F?\_N'< (=7,\L+?;QK9OUL21:P3#*R2-6*P,I+ M_3Q*'LO0C?)(9J?8M)5J!:Y6+^O3;.T'\KP'ZS:3Z5;VAO_]#W6L_V$V'TG9 MP0R(:@:$2?MP"EDH2@*UDIB9Y5BG&*N3S7;H#,3 .>MO]_&WI83%!:ND#H#9 M%3#;Z)I1^']869",\HSD"K)1H)(@BB5)*L3ZN;X+M!:Z"GRSOOHZWA&0^A"7$U#K5P9>_%),L M(;[6.GPQR(,6FA/F,.XV0"-B5+C0\!SVH".";FB SFU:B:TC-AG^5*F)%')2;'H MHURN<%JS6N^'UWL-D(B4-^C(6W2/K:F95)9^\@A)!X+#SS()^4O'0QSY#U'< MS2@[I4?*-\?2=C@%K)X"9G33* C41F=N2#PRVOH/,;IR=UH.H\0:"*NY$#!! M:@N+.AW.J@L :F37X1CJFQ288N1,D(D==2[A>!\B:HZF9I,NH M#S9I"OG$A%2T$=ATT +:%F,N\V@'S)JQJ9'&=C!CE3R>0!Y9F8#:R)0RT4S: MF!AEW.H 6A,B-3-B%9YK_Z4S-MO\=B*$S5H8$3E&/;O+Z3434C,55I&YESE0 MH&UJH]05M 44D>,.%-(=0&L6I&8:G%455RR!N#N2WA==JJ'X$983[AXW[^"W MQ1CO*C=HS8743(80"NE&AF].S4!,B,Q/B[28-EGH9?ZB@90CW<>&T*EI,3H"3 MNYQ74R0S4^1MJ@(IPYWK7BOR;@9B;0YTN<>;21,18V!71QW+:JID9JHL8FWM M1R%9J/2@&2WRI,9>+"(]\;HB3Z,@URU1\4Q+I\WMF)U91^U:69M_88HZZ)?5 M],O,]%NE"(BO;12"70\OY-,N7WQ&UQUJ:YMY(9"\9K6#B)UX#NO*R34_,_=# MZ6(1)7X2O"==&'G_PSXZDK;#6:C)GYG)_T*E, :LSL@F"8&D4KE5\;:H!D T M*R(9@C7"TX91^8>GHETB<,^R.@.V+A*8N4BX]5_*C:AB6_PC]AGU?M@^I*GF M;K>!O*XON+F^V#>PKC)"^8!:Q=N%PPESJ&B6;)B<#93>4;3QNL;@YAJC@IO* MV-=Y,5E,F(19P0HH0*0'=@1K;LNA8GRO!SP$N+=3;JX+BA(4Q86VO:T-.$R,4:NC M@>T;E MOENPVS^"M:@-^U*:I\NO+90UR:ZU:E0%J(5M^J:.W;(/(7G1Y9::X_D[.+XT M*OK7=B ,3BV[;0DFQZU.KNO%WXR=^3A[D8Y0D.@+!M[!L"!31D<(7 M=;LI9[JM;:4=1,X>>)UYI^9O;N;OCUD&">H=-B&=.F5>JZ-'Y"@;<*=K8=5T MS3UC93:_O[V]*;Z,CF[(Y60^OIG-[[]?'7XF)9/I]>S[M]'=9#9%K3@J=1]+ MV^$WOIK?A9G?#]N-UVU^](M?F[.YL+QF-L?$',_N2!NB9G9A9O8FT/(SG_\L MZ[XHE8N-YLER:QEO@T2;I3WJ-1<5(G5"G?T.XM"*FLR%F:"0N0\9ML=S:JHJ5^8OY*;UM-T M-BV6U&3ZXVI^-YG^3D;32W(]F8ZFX^)N?#?Y,;F;7,U1RX[Z'?U8V@ZG:>]+ MNKD2J4NX4 :QG^H(@'R9J)R\0.AVU76B_?F<,]K<.,&DJ-?<9.[O'3)9R?2Q M.'N3D6*WNSRD43VMSO>,BE,MC><7]'15)ZK57&YE#ZTAEH _K]0*G^]T2^H3D,-_P%02P,$% M @ ;HP%6?D?@4/7! PPH !@ !X;"]W;W)KG2;,"^V!)Y]_CN[MV)QQOKOOF.*(B;7AM_4G0A#*\6"U]WU$L_MP,9 M[*RMZV7 JVL7?G DF^34ZT55EL\7O52F6!VGM0NW.K8Q:&7HP@D?^UZZVS/2 M=G-2+(OMPD?5=H$7%JOC0;9T2>'S<.'PMIA0&M63\8O^ M-L6.6*ZDI]=6?U%-Z$Z*PT(TM)91AX]V\X[&> X8K[;:IU^QR;;+EX6HHP^V M'YW!H%4;&>3JV-F-<&P--'Y(H29OD%.& MBW(9''85_,+JO0S1D;!K<18]]KP_7@3@\NZB'C'.,D;U$XSGXMR:T'GQFVFH MN>^_ )^)5+4E=58]"OA'-'.Q5\Y$55;[C^#M34'N);R]_Q5DQMA_&(.;XY4? M9$TG!=3OR5U3L7KZ9/F\/'J$X?[$81J##77K+-O">;+^0Z.0U"6U-ZP.,E6E'69)#4^KLUZG! M0[BA$S$HK<+MC!M6&5C/Q$#!61XFJI8:KW9#;@8M-SY@C/2SQ(%,"Y;D$K[M M!S DG[=P+@)K:) N8!P$SU$%)XT?K N)P)R)#LY>JP8Q1PP=U$?5Y$6P0HH& MC>^\6BMJ4@LSP#8('!(A6PH9(@ +FMG^RD8+S#"A1^H1B)J7D;^8YZ-V%!X MQ;E9%8CF*\8FCML1 F,K4UN'/"1X940 F\M4'S!Y SEL8)7+QKPF8]'A@_$] MHH+(>$+2MDX@,HAJKRS%^[EXJT@W@$.P828NHV(]ORPQ!]XP,U3J$]U(+UX< M5.5R+CX;S;+>1I229BQC6M!R&^69B1?18RETSL:VPV>).4,"'+_5JLF)4D:: M6DF=Q992/1-CI2ZU9BS4*XU/^M[WAZ)I,I'1PZRQ*!#FM5HZ94[ZU^FH5\"=;9CD-!]9X:L1!TXX[VM!B(D', M^"33&$S*T3:^W6.3;?H4&:7#A,7(=.A%P] M2])'GA,@*>LT9[?KG*TA'9P6[ON.BL%!=(/+G.?!BAE,R%5#4_4?^HHM=BX6 M2$>;KD^HE(TFY#O&M#K=T$[SQ>3./%_OSJ7#A/="TQJNY?S%02%&ULO5AI<]LV$/TK MIM#.J#DJV[/B8L=UDFG32<>T>GR%R):(A 08 K;B_OF\!DJ)LV4F/Z1>) M!W;W[?46X.G&V \N)_+B4UEH=S;(O:]>C<GE5S3+?E?JVN+NW&G)5,E::>,%I969X.+Z:O+.:\/"WY3M'&]:\&> M+(WYP#=OL[/!A %10:EG#1)_=W1%1<&* .-CHW/0F63!_G6K_4WP';XLI:,K M4_RN,I^?#8X&(J.5K M_8S8_4.// >M+3>'"K]C$M4DR$&GMO"D;82 HE8[_ M\E,3AY[ T>0)@:012 +N:"B@_%YZ>7YJS4987@UM?!%<#=( IS0GY=9;O%60 M\^>7TBDGS$I<6W*DO>18G8X]5/."<=JHN8QJDB?4'(KW1OO1/+U5T?)-#G9:TCPR\GL M1+S5GJPJ16J03.THXRMG"I5)CYN5TE*G2A;"09#0H=Z)1G&GXY<O2+%$P[MI:?M9;^ZW0<,>\,986-\R6#8&<[#/)^,5XI).-#1]#9@OV M 21TS(9+,.:BWW^]KD/=A,4KS-8=SZ?)\/CH:,?S(\1B_I^GZ'/_WZ/ZRR5B M-YONI''&/\F7I7&Z&"X6?6>2^='?3>/?R>)B3YRFDV%R?/Q_IS&9#0_F2?_) MP='P^'C:/;E(T]C6X 0"D&5!XI9Y2'GU9R2'-S)5A?+WG4;=5A2H[[JVE4'B7FO/Z+]A^,GD MY/;Z=;B:GGPK4@R3@)%%F U9;V19\'\5%8S$[R'RWF)SA10%OL?6SU@:]C,2 M(@+MG"R.P6=G7AQ#+($X:+IRSPO0[LCGE5 M,P"E[TQQ%YQH*[/UP/*D>(QOV+2.SR5/[J+;4\.RS+ MQ3"TDO?7W 53\IV55?]"KN4A>08W?)6WFV'/=>8#ZR#(Q6*3V<,<]FLYHW#DR:1 M+=^;]\'=!Z SWBB]6!R,)CA<%$7(:>"C;O3RR-U6>FS:%\GAX6C>23P+8H^Z M(2A I7E(>)^R+_85GJ:P^>/@?F'DWC3;+*<^84,93B7$IY)=$"$2/(B AAJ+ M[-ITTH^%9F=[T1F&^J9PE"S F[R19>:NK$F),A?3O,NM<2R$8;1'^V1795N/ M6_']L8KS(M141=QZ@5B@(S1=V]9/1.QV9_2$&?R&1\](7.S-%J&*'@2BUY^I MQ%F#*;I^-%@0%\79B#Z]J\.&5--&%ML"OPJ'7 J$RQM_NWL8:;/I[/CT>)ED)LGH]G+APGDV@W=A2TSZ9K$!@6[!D8;>;_M6F] MQVBBM$$;VQ]T931U#]L&8$'#IQE+D3*GDY?M:-VQ-OJG;LX>NOEPOW(3#E%X M\=:Y&L)-;W&97%NC<9WV3FY]R7WGV''O P/\7(?/*"Z29?S6T#WMOM1(-+A<\72> 0U7.8X,Y+E!7B_,M@E M-#=LH/M^=?X74$L#!!0 ( &Z,!5GZ*2HK8 4 "L/ 9 >&PO=V]R M:W-H965T0)*N:(9U MRYJV^TQ+UQ87B51)*H[WZW^R=.EL7>N(/+BH2JU M.QL4WM?'HY'+"JJDVS>P-%XBT#2"B2!=]PHL'PE MO3P_M68I+*\&&@^"JD$:Y)1FI]QZB[\*1@?+*#YK2C.=V% M_D]H[@;ZU7@2Z?-G1\DD.=F"*OCW.#T1%[=7XKVI52;P/0S3R?A$;!.3.A>O ME,M*PW,;F&LM%J3)RG(HYBQ[S[(.:>+)(GHI%[.5^(7NJ103H73= *QQ)#XU M8)N+VJH,RU\T6N9_(O@IW\.J-G41]O:.((!2)%0.(BJ3I9#.\23F2B5GJE1> MD=N/U'=LG_2WSY$ZHC:*=?.%]$):$F;&OI6SDE"RL@(;/:8Y! )PR7EAI:=H ME96B,D?B(BB^@42Z)L'[M49O=&_C'K'P>W(2M/<%1;W[:J\" :6SLLE!6?E& MU\2V,\AL!JV9HU&9I3M&^QWCGZ/_W-3HJ0KO1 ^< W) M *+#@$ 2)C/S@+0)!5$H1(?-BI4HV0*N=>1##214S1MVV*=AB;4%Y/?>C']^=('#G776I?1&]OJDO(E2V?+]JR MLK<>)=THW5M#/>'Y?\^I5](5(8XR'G D(MP>E=D?L./A,#U(,6HK16O/3S^YJ(I05:@MGAB*-:3:FS#+3\%H+JZJ0(\/-9"U7 M02"8A*R7H3=FMJ'\497>YI%VZ!+M(NZMN9!56R*7G7D0VXN3&"(25>@ MW/S(O4MHZ5&) CQ<8NV*JU 4 G>NU*71B[@VIYGO[^">W"(S52VMXNVZ[A;R77_C"S6/N2/MHWCU %;*#BN\3#-7\PO1[/+/*9Z M-34>*8;M28!U66_4(!38.5\_NO3Q8!V8H3(:V[0'H" -:C#S+9$(1\V8?)/) M27=Z?+51]7H3@$^=D4>]"TQ%=A&N:4X$*\>[3#?;W00OX@5HLSQ>(]&!%@AW M'"_F$!WO'[X<($#"U2Q^>%.'Z]#,>%RNPK# ;98L+\#_N8$V[0=OT-V/S_\& M4$L#!!0 ( &Z,!5D&PO=V]R:W-H965TA\L>?TY! M2L)&()/P%O_Z/O?F0B*A5\NX/8[^4@]!+C?OB*6\F^B%V]>=>U=T%%KC$87O%3N#>&JAHSRON_P MM$*__LT/\E8V@WSUHL=@=.M%83I^K3LF5SIFP7=MTQ]4\$U3RG+:_P6$<)(D M5I*ODT<'_.^A603+* R2*$D?&6_I5K;D\9:?OC+=,9WO2&'PE3J)0KZ^@9\K MV=W*FS=??A%GTQE(SN!-IUY-L P72""3C1[&;2[H(#!.@J#9A_T#R>IPJ!JBGHHZ<:NNI?E M\U-7%3)$UZJWUSUB,!!-":_K95>).N1?1:MZ3%4=MT.GQ+:6P:D>5+"3TLV# M\:4H#C3UW:'"Q4$HR%-6NYWL9(/NE?HU.'7MKJKE(D"4!?U!!JJZ#X[:MR3Y M5@#/D,XS>')<+,/@21+&<;98(R[J&B&N!7L2AWF>+[+Q+HQXDAS]]4-(TK1# MY[14*01QAV=EL.O:XR@\9(:4@2H @-1*E/*W 2JH'RCJ89Q2S]=3,Z"C#.ZP M=$%0)53;0"4/@530'MFD;WM1N[U$/XXK51&6>8)TLVGU3_0[9VEO84IM" M,=#1\Z(]GFK9X_%6%F)0;&52(0U7-4,+@V#81D'?S@$ ,7VK6S&\X-%3>$-5 MB!H2#XJ< :NHFM/0!T>L92 M##"?4&QU15XS=!VFQ4"E=KE:D'YY9%ZJ77EI MNHC>2DM8C&9V9)A_#P.I9UH=A>QZI!)?(6=V:-I^QA9L"FT :O"Q-KBF;EF1 M60-*&U85P/X*TE **.F!&^A,)T(YF>XP"M9"NAY]T%\:%HSQD2OG)J @]&R\ M"-[Q1-!=NYWJ*!"=C7^R(2E 55C)#D9%F)%JJ(6\1RJGP8U,)_A]6SK)%SZ: M2%(/:0W:9U7T=RV)>R1''R=6AW:HR?U(SJTSA"B*=FC(^CM:HL)R**Z;? MDQ^0%9V[!>EFL?RO$9@^, PMVGIM.72,YK!F(^_[($XL=)(^U;!5/3R@8K? M/Q8?QCFVHN;QC4N@/R2+UW84!C>Q _"/WO%66X"3!DQ0M\W^.1KXT%DUMVU] M*[E_8'#I5L#;")!D<6BJWP;)KGP6G8Q60A,VSC\NURB-#S.SA9>]PC/\.8,? MAFV#!K-X1M$R*'T#N%@,M9]8I>@:"I>?&H)])643T)->*[VHNF(XDMX++)$2 M@JA[J5.;6ZW#:65ZG9#=V5 Z'T)BI=JBXA6P;XK@)+J^(E$ZM_9%\.,0B* [$%4@D)4@X$656/M$GE0#F E.Q# M;56@D]8MUE*+;=N%Y&^>52Q?T L$8%24L=8]FN YVZ-8B M]FRNN9."W ]BUA6QA4;*4KE?)5+.@Y7SMBI-P!PKHU!QHON8/=32!>)65+BJ M:E[.GA)J0_)@YD[NR<),%DXM&E2%L0K^D4?Z=10((/ 6"MW#F+5H\8)^_8(G MS,WRE\IS-<\2U U6(CD9++0Y# AHD/I1YV722$/SP&O;KMI7C?%49V>-^,<6 M5*HB'G*>;G?\@/[9DCKM* ML8KD^E$\&0DSV)N\[AM1^CE8H C7E0S#LR0Z:= +_ M$8<$4-;5*9$7U8F']5V*T0YKJAJ]1T-C/SU4H#(=D7H$*24WPP,I8R%H,<8S MK4;FO8XL&Y"LV5H#TW906,65QQB&[^8C!< QU+TIH\8\,I(X.)/7O"6N@_@! M&:'DR6YE50[\T0!.D#:)/^V+5V*5^(AVWL)1.78M+AJ ;#JE;Q%HIJ#0"&6C MQDVO(_QC)X,#@P7\R@C*[J5_,0K7M/]D=&)EXH8<[+BD8>R3YUS%E1^IO5)2 M!(R#C<-P/4;CT'#LU-"GYS["9>#S,@:^H]?$S$_76UIS[(I,1=PZ4))H/6F6 MH[2V]!*V5(>,52]\V&CVKQG"]\#&YR,K[MBW9<+2G5!72@#P] M)O]$Q@"I+C3DA>.^0L@M+NH>2J&61\I[[KOWB2'=UH2%.[!CL7UD,9JPC\?PR%J M<7@^G'2!S(I7<"GB'NQ(LD=6LD!YQ03$+1SF!U2]U &7-7Y90%A..RN:^_C> ML? +PFGB,>A4Z?+35LC:+DIZF:7@"G;*(3UB=,YGN,R$2FACFVPQG+@R\=NX M,!\GT4RVJQ\8SL8*<]0T@\H8%:;::/W=!&_],U8X(MNU7/WH5C"LOA6>=]%U MA?516]>,-I^ZQ'13@BZG38'+,!OQW84KXD=^2=UW S-#/8*:>,,D7W83/J!W MO,;Y/'VRKW%\' " CVQ*CNSWCB*S597>;9R45D^6BXW=E.0 L F3!!T!W^/X M9[!W;3] X:\BQ5#LMDQ$OA,=XF\9:_'<.A[?6IVNHI%[,;>*:)'_6:OXFRSD M<0LO,PM98B$[XB2B>=";H>=%]6CP27!534E0(#7J>(FP;I4R@&-ZAM99?^': M0[>X\-3=4-=^[: W548*2@*>*'K;04&!7FWUK:$8>BT"-Z>+2O/I\N:Z'$J M!&EE2WM94[?[N*Q,"-D.^\-4VZ,IOFVX1*' GP"S3G/C)B"+QY39RXM.8%M, M&2]1XB@M#(A^,M"$N3%JW$DO\)VGT2Z*WG:HE!IFT&I>(KI+$&!K9K='6-K" M>H91W>FY0!Z'0B_5])Y7.#.B76W9PM"8HQ%(<"XD&&M=_>X*4@9%VI 9*'+EO2#6$VI.*^8.\XP"Y7U!VVY:#[SSYG:Y].8 986AW$MKG=!K MBK('!1XN& )IR[>?X7VL3-[CTB,L@O<57)983*B9WM!KS>M1N="D4UF-NK1+ M0,,((+&EZ@09/DFSE$!3ODD&TNHBWC?=9AJWZEA'M%U!E1WS+U=;PO''8Y=2 MGBBI8KKA1-'"Y>9SOK8>3 ;A[9V0@A+J(,[(1PC-7HTG/]KI?%YJC\5.!V$* M.BNU+CI)1%=5"'VL=HMT J[T'J)2D-#1DIY)LV#%QP/:/C[]]O;O0I/;J4]% M!U(T@"QMTW#,-5Y]01L7M,F+0]2LW\9=?;+)\\_*J4@7M9)JBTVJ SL\=1'LF$Z7Q= MWM:R/8K8>6?,O[1;MZOB-2']/4A3V),.1Y-(?6KL%PUN $O>3&6M:R)S,DYM M6W?B,SEO$N,(!G-G]MFT)^KM*>4J*N=5P5-V3G!-:$$]\YWL__;797-[8\+( M[4U^+8/H.6K"J3.[)D^"+-J$29I/[J1AG&4HYOCHBU_R(H#@_',N"5).N,GC MR_M1$BY7:V]+TMGQZ84AG[ENZ2K,-Y'[N=R$V2JY&/Q)L,Z7812M_3MI%L9Y M=M5&=I]>%TN)]WH*0[HP9K\H;4**J2.BGC*)3O\'I#9)FZ27^ODX )MA^?\F M%+N&OSZ*N3RG]^F86FBB.U,_F)/8^;B^7E',Q(ZGA+]^ /WM3(^>XZ7K)(SB MU+NSS)9AO-K0@?Q<<64;QN$Z&[LMPV6UW[]]R//RS M;9[3M;]=(Y294OW;G/E#?^T+?!_:+0O>RSTS 5J#78M^D>&GWCJ6YYD;^"$@ M_DD0PZ;+- JR) )\KX-O0+WW#Q=RY$@5,VB^WJS"51I=W-\ X]--@AJUIX-G M+=HW=67/^-1%CZ=I^NSR)I:W6L97'N2K9V:)X\)6.9:#!/@DV*PW6-B&EABN M$-5YO/K3K'9NO0^\?OEIMENS+3+O3H*1\LR_$X=QM [S)+EFSSA'EWA]>3_, M5Q&R_Z6IXW"3Q&&41Y]BU&2YGC'>"AB[3.8?+//HTJJ8-UV'Z3+CZTT"!:SI M.@%_@2,GE]+^1>)RZ6SKX\U'Q.9A$V<7M M/(;[1YN9@%YS2'R*,>%VT8S5,$.69',/4@1I-A.D*8)T36M:9^MP ])(9DUC MLOYE'OU+!.F\(>VU-:A+5M>#%RZ>9SYE7R9D5I^#('C71)'CJ\%+^EM=VCH& M]!&AN00Z\H$,VHT_"9'#+,[GS0KB-/=@$T:;S:6]-YLES<]+RQ"PI *W@P@ ME.3+BX$L.Z%WYRRIH)>._BI)^0]+UG\?/Q! G6>_#^ 3^NG6X=/XV2-.1>K- M"2P05$!&#J>E+@V??"BQK] PG<&-.(/YH\O,G@"/TO5E^\_(^)S<9W%CSKF2 M.5>\1@,RE+!I2BI9K1*D?V(Z*65$XX66$)!>O]4\5EU^E?'1'V4L_G17^RP0 M^\,=+UY'['F>XM1SN/<9 MI&6%7+1>S?DED&OV?C*7%J^3F23'2(@50D9(EQ!)S9']LBB>D)K_.._\9+;T M1_EI!(4O&02(#FU21LA5N&$X^ "Q2M\_S M1GMKWBOMT\=0- ^!FY<.LX3C91,LS:@V\_'VPUR1-KB0[V8R.< [B2^Q-.$0 MF2L /X-#9F&TVLQ[\#J;S?UAG,_M!%SCEFB_R: $G=>CB$*& YT*W&PSX9E_ MN!]_8S[%G'YP:%Z0?_S+S!_MYX%\H">4HA?<^3TW;L=GT-[WH_[L_W_?R,P) MM C^T=[1:SJA48/[/&!\^ZTE'?AOR.K)E#L'GKP_RB=>_!D4[66S1?2W:.:[ M#>\#1'YGS@7BO &]SQGE_PEU@=O7]$EN%-\5$A M]%6!^8YIX&%T1Q:.GYG#N[:Y;CKS&N#T^U3:OS3ZI]<9;D7W$%2[P)QN:VOQ M3>\ OC8??NCOU-S[+/2YLEK,?53]PONB_0BLX._V^1W*IM*N_ MB!^;Z_]7X#O1[>EMH5KNT#5:Y*L;_=* _=&W)_X^?MOV?7ODRX,46#LUP/-= M"[\S/V@"]Q\FO/D74$L#!!0 ( &Z,!5EN;4G:+@0 ,8+ 9 >&PO M=V]R:W-H965T\O3FP#29JV M&= A2-(-^TA+9XNH)'HD52?]]3M2LB3'B3\,WA=;/-X]]WZ\V9:+'[( 4.2I M*FLYMPJE-N>.([,"*BHG? ,UWJRXJ*C"HU@[0'W?W D\.3U* MSBJH)>,U$;":6Y?>^56H^0W#GPRV\G M7$-9:B TXY\.T^I5:L'Q]P[]L_$=?5E2"=>\_(OEJIA;J45R6-&F5/=\^Q4Z M?R*-E_%2FE^R;7D#U)@U4O&J$\9SQ>KVGSYU<1@)I.X; GXGX!N[6T7&RD]4 MT<5,\"T1FAO1](=QU4BC<:S627E0 F\9RJG%%\[S+2M+0NN_P9>3+[Q6A62W-0YY/OR#MK6&^CO#+SRCP+^WM03 M$K@V\5T_/((7] X'!B\XF<,M7O@ZGFZ:<[FA&Q_N#*R#1AW>I[_D7Q\&)YG*#BY/_8T;!9'1'^ 095$L0)/!L M<@\;+A2KU^0!UMC]RB1>_P3DNV(E4PPD>4\2-[##V.]!!LI-#6+]3+PHM+TT M[1EVYT>N:$EZWP?Y-$KL.'*/4!X+((KJ$"WU-.LF&?N%!BF\8D,(J0XAR:B" M-1?:8!UB6O&F5M(FVX)E!:$"- F=_04YT1.*2"6H'B._Z;SI:<,D.6,UHO-& M(H3\>/Z_I>7DZ35Y>S7')IF[FR^"2TFNJ1#/.NN7)DCD,LN:JBDQ@+DFZ2!1 M,\9O7P09PUECJ$^#\BAH#C6M3(5Y4]OWQ^5PYB6V%X^3:S'8,B(#2V"0+MI'$GT;V-$EZ]K/4M9/('>1]!/3]@>% (/'L M-$A& C[6?>AV=8_J$<";)F,;IXD]]?;]0E?]-!A;?2B68G<$\9Z8G]A1[/64 MO9C#$VX2$@A?'72*)%N*(8\F'KYQ96F>:VP8) 0] 1<0TV6J$ "D:E\9T*_, M?LG91E27F(VQE1LP[W[YW-+?>^X(LZ5XD_! BV1/1W2\H6)";J1BE2FW5:.: MH<'W(Z"5'(8 >QV#L.(ECI;3M?U@T9=UPVVU\\W MG5\F-&<"]#*HF88@CHMD:@?36/-&!WJQZF(L'[P;FLJ+L7P-;2@^K,78-8_" M:+Z'=I!Z>D;CU6V*YKLT%*DNGYTJY9/;5? M4B_;W6Q@;S?<;U2L62U)"2L4=2=)9!'1;HWM0?&-V=267.%L,)\%+MH@- /> MKS@^W]U!*^A7]\6_4$L#!!0 ( &Z,!5F2U!?]= , $P( 9 >&PO M=V]R:W-H965T:5&1&D<%U'#N PV*\][ MU)N5ZJS@$A\UF*YIF#[>HU"'=9 $(^,CW]?6,:+-JF5[_(3VM_91$Q5-*!5O M4!JN)&CX'>.!W-V!Q?)5JG/COBI6@>Q\ &% M<$#DQE\#9C"9=(KG]Q']1Q\[Q;)E!A^4^(-7MEX'RP JW+%.V(_J\!:'>.8. MKU3"^%\X]+(Y62P[8U4S*!/=<-F?['G(PYG",OZ&0CHHI-[OWI#W\@VS;+/2 MZ@#:21.:N_A0O38YQZ4KRB>KZ2LG/;NY*TO526O@D1W95B P60$Q=8<5_,+9 ME@MN.9I59,F:TXG* ?F^1TZ_@5S .R5M;> '66'UI7Y$7DZNIJ.K]^E%P)\[ M.8,L#B&-T_P"7C:%GGF\['\(O4?.OX[L&NG&M*S$=4"=8E _8;!Y_2HIXML+ M?N>3W_DE]'_E]V7D]\HB%*]?+=,DO?VG9L#)Q]DMW!E0.Z JX52ET"N]P1*; M+6K($L_.B#V"MP,XEZ7HZ)U0HUN4?<,VO0B!LK;5ZIE3$Z(XPE4VGV74#$)X M,;)PE>:SQ<@)"<.TZ-M='&?P:TTE.*$=R(A5-(6V);U/36-!:0,U>T+8(KI) M8VF6D1#-O8K+/8QB=&E:@78TVG@17D.1YN)A?GW/B95@D2WCHM*;: FT4S:S+AT : MJ%/TQQ>^)O$BS!?%"_YU$>9) @_,=$R0'I>FT[X 0[N='$JR<,C8/LS0YD468 MYO,7GE]!1FVQR-(S3EID87X]<;XV(J*S"4]/;N_WF '?1/VPG[C3JKSK-\1) MO-^S[YC>4[XH]SM2C6>+>0"ZWUT]857K]\5667K?_EK3ND?M!.C[3M&8& AG M8/H#L?D;4$L#!!0 ( &Z,!5G&L@MC?P8 - 0 9 >&PO=V]R:W-H M965TMN MGU5;2839DB?)27>__DC:<9S7&W#[TMBR2#XD'Y)2KY;:?+=S(1Q[*7)EKWMS MY\J+?M^FCX)@V"^X5+V;*UK[;&ZN M=.5RJ<1GPVQ5%-S\O!.Y7E[WPMYJX5'.Y@X7^C=7)9^)+\)]+3\;>.NW6C)9 M"&6E5LR(Z77O-KRX2W _;?A;BJ7M/#/TY%GK[_CRD%WW @0DOA>- M/P/4E^KH[4(R? M^VFCY*Y6$AU0,F2?M')SR]ZJ3&2;\GT U***5JCNHJ,*/U3*9W'@L2B(DB/Z MXM;+F/3%_\_+6DFR7PF6QX4M>2JN>\!_*\Q"]&Y>OPJ'P>41B$D+,3FF_5#'K@E'$Z\+ M^FS@#4;1^>[ZT$M&@_,.%(\IX3K!GL2Q%T"P.RN#L1>-(O916'L!KP*UB;/1I$W">+S+,-4LPY(C^3A%LVW5"4V8AUM<)7HN82M M0W]X2I^'_OC4@W%F2T$#*?_IMWC^4NRVFD'39[5HY $\)@A0AL T%>+37)J, MW0+;,L0-2A\!+TGH.UN4SG8 @* R9= M!OX:YMKB O/PE\] ;H:Q*0WLE"4$!UA5*4K'R209^ %,JCS';'3-4Y5^!$4K M>P1]TY@Y6)M@_"2.#NE>UW3CW+M&;NU;!;Z;QD.4S#$8QH(_$(8,]1?\NR!/ M+::==\# W)>638TNF(,C"6ZF7W0 GK&*4*%SJ!!)V8#7AE4E:]*V!3^%YB$= M,8^BYQ,=X9Q1&?0W(_;5G?=0XL#P)F%&/KO=I:5'MII&M8NR2^HE,(V=#$)_ MN,))L(RHORB]L?M9&T,3P3;11; '4^%1N/B"RYP_YV(MS5(.8Q6=QDHYB4:Q MG[1AVE-F_D8!'PP.C"\'IU++%MQ(&%98=,Y(JCJ",I4*>A\&)=4+ <_0 8&. M>87.>9@6P*;!)V/AC1J.%4I"4K$9]-_>/3R]N<4V(37I@^.9+*J"-1\@[2FW M\XV&(K7/'L"I#*""=]Y_I)? B YR77-3J@6LT$B'Y,YQOE-"P6,#1\C2Z(6T MM!EQ=5YI<$-+6:!ZZ"V9M*6V) R# 8@-NB#&I[A Q4^]CULKX.C/OC4TD,3> M,INML(N=KJU';)R[J8R0+5L\*& MCGZ(%W"S,F)5B].\2EW%W2HH2!$BY89.6]*= 5*7#*)K.V/=8EHPZ":P] 4,F:8=)'XP&9RR$B2Y4E7AL3*O+/7E M$A*2DAQ98-VP+AG(TK>IYX)#O> & M^#[5P+[F!0VT_\2X^1=02P,$% @ ;HP%61Y&ULM59M;],P$/XKIX 02&5)D[8K6UN) M;KP,,9@Z7CZ[R;6QYMC!=M;!K^?LI%FV=940\*7G>WMRY[OS=;)1^LKDB!9N M"B'--,BM+8_"T*0Y%LPA*36RS#L5(HRC:!06C,M@-O&R M"SV;J,H*+O%"@ZF*@NF?&WSCN#&=,[A,EDI=.>8LFP:1"P@%IM8A,"+7>()" M." *XT>#&;2?=([=\Q;]K<^=9S:?!.( ,5ZP2=J$V[[')9^CP M4B6,_X5-;1LG :25L:IHG"F"@LN:LIOF'CH.X^@1A[AQB'W<]8=\E*?,LME$ MJPUH9TUH[N!3]=X4')>N*)=6DY:3GYV=HN;7S-T,G$EC=447;LTDM(3M+,*T MP9G7./$C.",X5]+F!M[(#+.[_B'%U 86;P.;QWL!/U3R )*H!W$4#_;@)6VB MB<=+_CK1&F>P&\<-R9$I68K3@*; H+[&8/;L27\4'>^)#@M-&R7%+SZ1%RLC"@I'S@INK@U9WHC'C]I[P2XZP4H+F MFLLU6+84V PW_X4&K%,SKN&:B0I!K4!5FB:F#2:ECM$TE@:X3$5%?4,'[W:B MJ(ND(0&=C!(\HY RF#/!9(IPZ=K=P'-OK2K#9&9>'#U(Z%]1:D7TK7B**19+ MU)#T>P^L[@0''U7*_+.S5;LV[C+)[7UK=]]FPTKX3,EK&GNMJ4+ C,%.G9Y" MOS<>#3I\4]]=2%NC&E$HN7Y)-L5]S"YU2/?E_=XH2?[;Q?YK^B77B'<>HE9U MR6]V*[:T+1CUZ3M:9@^K_ZA@@:E:2^KY#,C_=MI,771?[#MM\%CY6Q'>E*[] M>R"IE6[K/3P<=[@!U2;J\'$O'O:[UKWAJ\,MO^MM"CMKHT"]]LO1T%A6TM8; MI)6V^_=UO79NS>OE?<[TFDL# E?D&AT<#@/0]4*L&:M*OX26RM)*\\><_D.@ M=@:D7REZL1K&?:#]5S+[#5!+ P04 " !NC 598NL"2$\% "%# &0 M 'AL+W=O+Z]<%XVV_-Y3Z)I&^?T-&[>]'LU&AX$/>KV),C!97K5JS1\Y M?F[?>[Q-!B^5;M@&[2QYKJ]'SV=/;RYD?5KPA^9M.'DFB63EW#=Y>5-=CZ8" MB V743PH_-SR"S9&' '&]][G:-A2#$^?#]Y?I=@1RTH%?N',%UW%S?7H5+%=7RRKLM>5D-;_*00DW6 *>M).5C])C5L(O+-[9T#=,GM>-P M-8GP*..3LK>^R=;S'U@_IG?.QDV@7VW%U5W["9 ,<.8'.#?S>QV^[6Q!B^F8 MYM/YQ3W^%D-XB^1O\1_#R]87YZVE()Z&5I5\/8+B _M;'BT?/I@]GCZ[!]O% M@.WB/N__BNU^Z]]<9'KR\,'E?#9_=NJ*9&RZ>$9?F)1GE-OJ*TJ HJ.H=F2T M6FFCH\9*W;0N<$6K/350L6X-T]?.ZU#I5#.A$"<51_:0'I/K4 (<(N&C41$8 MJ2ENL(^UG3+$=T71/O6JP'@-X>)/\L MEJR\Q7P84X@J=M'Y_> Q8#$,;I4V:F7R3JV! W'HVM;YV-D47D$OV$?T)0IZ M;76M2V4C.4^=[8)LIR,W(7/$K1+G9H]&4SJL_A.H8"G!?>^4!WAYW6XT8L'@ MGEQ9=G[M-:>T1QX@"R$:/!9IRD-6Q> M:0#RV"+Q)!X^%Q\+JKEBC[P=1>%[#80F-H_/+(C'C M$RYZ*5DGT72(7^2$R=99MC&!A%H!AIL#;>'(V^\ ? ?5"8^=MEM::K4P# ME'5DG%VS/RU)WBF4EDHG5&(:YGOH/Z#0\,Y"S[1(671V+?W$D0 MIA6 =5847Z?BK3BK2H7 N3;,4'(-QXVK"GK)$) H2#9+"\.=E;KW?5+M"1HC M^UXXZB6(^@H#7UG*5ME2(]^>I==(UY%;078ON^4W9.4'V\I\)?6%@D[-[]C9 MAGX(UE8BU;XRT66P?>C0:50C7!S *Y.@ SFVBH81^6NWY5M&9ZK.47 W9&>1 ML[Y.>!>A>CRB8^LH1=Q(;HS^)ET1PQ;9[>=3 ]QJ8P3E@"('UJ%\4$6XM4E9 M'!1Z[-=\BPG0.A8UF4X$1W4',8DG _*)/9XIT-B%_!SHS^7F_'!MO7N*Q_H M3.NS6,'TVH@!#W;^ST2OU6^ZH^F8R*'4R5$2<\Z'2G'=IE0>FY8 MA4Y^;&HR9UG_FP+0T^6TE<"EOY7@=BVGL3T]Y.YF2@_%UQ\J_3DJ1(F,9/OB MW)UD< W3:?'+HQ'Y M?.G-+]&UZ:*Y[!.GJ9! ?0X !D !X;"]W;W)K&UL MO5=M;]LV$/XKA#H4&Z!9KW:=Q#80URVV LV"I%L^T]+9(B*1*DG9R;_?D91E MV4E<=$O[1>21=P_OCO;N%&[8NM%D(9I.:KN$6]-_UM40JZ%!R5@%73' B837U+J/S>6KX+<,_#+:J M-R?&DJ40]X;X,Y]ZH5$(2LBT0: X;. ]E*4!0C6^MIA>=Z01[,]WZ!^M[6C+ MDBIX+\H[ENMBZHT]DL.*-J6^$=L_H+5G:/ R42K[)5O'FR0>R1JE1=4*HP85 MXVZD#ZT?>@+C\ 6!N!6(K=[N(*OE@FHZFTBQ)=)P(YJ96%.M-"K'N+F46RUQ MEZ&I&.]4G,OHE&X<4)?=-.W_04^G_2]S3BE=! HO#MFW$&+TPNR!V0FK*<9%05).^D\D:B@+T=BX"3A%!%5J+$E%?GG?S_'1>0E512 MF\T8[$!N(!,R=W/[N3;J75:BX;JG_T=8R@8K#HECWVFW0_Q,95:0)#I:OJPE M*TF4'BWOQG 08I#31Y(<,6"DPBY2^ZOEXS? +ILUICHY5N\6:@W5$@V)SXZV M_LJT,!O1L0X'N%=BT\H?<:$K7P#^1+GU5>1$TN>!]RZ-CMB<2^/QT7+KTN$I M4./28SCKTB=HSJ4GP7;$E\)$[2/V$4W$BJP:W6!([*.7*9)AO<((-AQ-C;$E M&HG]9@.\ 1O0T*:$CY%?,TU+W/W:, D&U&6-$4$ D+BY8ISRC.$,@7-FPM4W M^;#%UF-&,!ZD&!V9KNBR!+$WC);8N&6V-8":JNM$ND5 XM)CIBXGT>K3'+O1>L%Z8#^[:BISJT*^7E5\:;S" M/SK&\:KW!?P7DI[YPS3I+21G?IC$O871V$_'H[Y(Z"=I_-/N8 %WSX;ONOD8U?@.TTYD?:=N MZH^&29],>H47R6$<]\EP_+0C_:CQPXD[^5'CW$;#/DG"P5E\0+[K)UDTB,>' MNR-W\^CT XSHD"L^Q!@=[G;!]-P_9M![$F#)6=N'C^D]6&K=ZZ!;[=Y6E^Y) ML6=W#S/LZ&N&7:B$%8J:@STBW6/'$5K4]H&Q%!J?*W9:X/L0I&' _97 _\V6 M, =T+\[9OU!+ P04 " !NC 59@P<>O6,& N$@ &0 'AL+W=O++4YK,M 1R[K:2R MIX/2N?KE:&3S$BINA[H&A2MS;2KN<&@6(UL;X(7?5,E1&L?[HXH+-3@[\7-3 M%@JEAMJDJ;E;G(/7R=) ,NHDKL2@=38S.3FJ^@&MP'^NIP=&HUU*( M"I056C$#\]/!J^3E^9CDO*WE)U&X\G1P.& %S'DCW95>_@JM M/1/2EVMI_5^V#+(IGI@WUNFJW8SC2JCPG]^V?EC;7:&5P5N,^=73N=?RZU+,#8G]CEET:XU[6\DX[8$GR_(?#-$F/UW7ZJ8/C5C.C89P=L]>ZJK \+$GVDY^ "6L; M*%!5E$V.&%<%2Y,H'4^8+3D:S_2M;A6*N!&;%+:M",@ E \-00A_**"B* MTRS"DK8U^**4JX@U*&R8;@R36BWV')@*)1PH7[RUY(J]('1I?/S'ARLVQ0D_ M3(Y_'K(/='" M00#K&Y,7F*M%FRV\JAJ;IS(19EAV4A((W#?3*/H4,X?L3S2I/PI9E.5@'+(EGJ20]HSULG + M>4.^P*%$IK2;D#T@8)S5VGB'(#:$(0QN5@V7"$PA8E[I!FU Z(. MU13"YEYT;G3E#4)*_HP]H#8BAPV'WOGRD1'V$=A N@X.-W&C@K:0!V0^Z55- M-:,4F#\\>,VP?"VWF=)J#ZI:ZA4! M]&;8;NU<D(I*1U)_H20P$OA>".#K*039-Q%*>3 M=7#?!F;KR5UE/,&5]WK5750NNTCZ-LNF'>=ZJN^$WBCVEJ_:JB?^\6G5]F3& MZ]KH&PA<0#)L:D2EC;#L&N\76,H6.[1!,@UYM//(%Z2D;9*7U]-IUR C[Z1E M*?*2@10+,9-(48V4>PXOV*Q+2.(===BS5T!]C?B8'@7(?GN_ MAPST&RP2-ULAU;=9U--OEI >X!@ 6H[8K''4"Q0FIT=)GH=;1R;-8*7QWUN. M%K0;_16FMSUHH+1]NAGO>WIZ:,G[^Y:T7+99$AN&#&GSHRCW*$KB9,LEC=)) MW76U-J]PX6%2/#5D'_W-V757E@<2OLEA M?D7X6L6&5/AL4%WE(5$6@J@%2;/='VJ1B@N5&C;G'AIF7(XO![.3&'2X(]$W M@^X # \F.BJ]"5FJ8*&=\'<;9SCV1_\\QUYWST?95A\9J"4H@8_>0)M25,)? M>C?]%:[5+B2#KZ#@#Y)<*\R0H$^X/FS>'@I18!6[.Z]SM=IR<^A3Y6N/Q=': M&[X"L_!?*I 7*!'#<[Z?[3^&O K? .[$PY<49 XD4,LDS'%K/#R8#)@)7R?" MP.G:?Q' UXS3E?]9 KY[# G@^ESC([(=T '])Z*S?P!02P,$% @ ;HP% M64@L!:0V!0 5@T !D !X;"]W;W)K&ULO5?; MCMLV$/V5@5,$*:#8EGS;.Y!-6C1%DRRR:?-8T-+88D.1"DG9ZWY]9TA+UFXV M;HH"V8<5+W.&9ZZD+[;&?G(EHH>[2FEW.2B]K\]&(Y>76 DW-#5JVED96PE/ M4[L>N=JB* *H4J-L/)Z/*B'UX.HBK-W8JPO3>"4UWEAP354)N[M&9;:7@W30 M+KR7Z]+SPNCJHA9KO$7_>WUC:3;JM!2R0NVDT6!Q=3EXD9Y=3UD^"/PA<>MZ M8V!+EL9\XLGKXG(P9D*H,/>L0=!G@R]1*59$-#[O=0ZZ(QG8'[?:?PZVDRU+ MX?"E41]EXH"3\5< V1Z0!=[QH,#RE?#BZL*:+5B6)FT\"*8&-)&3FH-RZRWM M2L+YJ]^03'(7(T^Z>&64[W'7$9=]!3>'-T;[TL%/NL#B/GY$'#HB64OD.CNJ M\-=&#V$R3B ;9],C^B:=89.@;_*?#8NXZ>,X+H(S5XL<+P>4Y0[M!@=73Y^D M\_'Y$5;3CM7TF/8CK([CWAJ/D&9/GYQD:78>M0#/QI-S^(B@> 5$01DBG;>" M4QV$+H"JEV=&"P4KD4LEO427P+:4>0G"(JQ1DXA2.U!&K]$^]VBK!&IK_J+* M 5=C+E&DH,"]KHY[G0.2JQ5-C2 MT>O(V V9?(%\)%D,"H?GS9 MKA([)A!GN:EJHUGFRR >ATXK 511;4;PKL'K .0N*B&6,M.>."U/C(!39W; MK*"5K8UE!^TU H7$-!9>&HJ&=G0JC9Q1LA!LZ+50'!NXY?X1@R&4,]1@"@R1 MB"[ADVL"Y3OHVBE9'9VX=TEPN^!UXD7)QB%E7FD&5>P4Y%2%+CI/&T\M/3>6 M'4C:?(G47".9>!FQ)Z*UM=C%R#*006LM_XY^9]A73+OU](DX8O%:4_213Q+ M]<&]^CD7&;=TRC&SH5QE;?%()C_LZJO]OFML:VU(/8M\ZQW"PBA'6BA1\:Z6 M-J3L1EAI&@?,BC>M:=8E-;G)- $7.*WVCJS$KDTJBC@[F>0-J?)(ONC(N9"> M31#*I"+J.2DRRW&2KI!8EC(G(N M*H,"T"Q;?,X!VU?^#D)?3 <'AV!SD9O4MG'*J)(^PDA8IZA]!^>/!>OU@+ M$P2IA7AR9=!*-RT1H@RB[BN+A@8;H1HJU(;JD3^ROW=A[VL-91S](?.\$?8+)(TNFLMY#-DC0=]Q86 M:;)8]!>FB^3T)(,_O_$O'/@ZEH.CGD!M+=Q,7;_I.KBLVF08WBO5(UUSWTJX M5Q[ZSS?UR.^1+%_$\17F6"VI0TW2Y/&@W@OA(Q=,+P[I>)%,%_/>RND\F:8I M_+\+I],W&9]0*O3R;3Y)IK,OJ5)&I+-D=MK/D"/L6E)O5+@BZ'BXF W QE=\G'A3AY?S MTGAZAX=A23]\T+( [:\,/&ULG55A;]LV$/TK M!Q7H)\.R93<+$MM G6WHAF4(6FS[3(LGB0A%JB1E)_^^CY2L9$5J8/LBZ=FJU\=NL":&[R7-?-MP*/[<=&^Q4UK4BP'1U[CO'0J:@ M5N?%8G&5MT*9;+=):P]NM[%]T,KP@R/?MZUPSWO6]K3-EMEYX;.JFQ 7\MVF M$S5_X?!7]^!@Y1.*5"T;KZPAQ]4V^[B\V:^C?W+X6_')O_JF6,G!VL=H_":W MV2(28LUEB @"KR/?L=81"#2^CIC9E#(&OOX^H_^::DAT^V],G'NOY$/%*JWUZTFGP72%CV?M@VS$8=JO,\!9/HPZO JX7/P@H MQH B\1X2)98_BR!V&V=/Y*(WT.)'*C5%@YPR\5"^!(==A;BPN[-MJP)4#IZ$ MD71G35"F9E,J]IL\($5TS,L1;C_ %3^ NZ)[ #2>?C&2Y;_CUA!^&3Q[TP:-^(0\I3;\1!,P5+PI?L N8"A88)7:+01$R8#*5M\:ZH MU$*U0W+]?9I96NY-)8[6)4CK8/)3AWYF>8;Q5-I>2\P'CPR$9$)*%1L><-'9 M>)!I1!C]#DQ>U495JA0@#)I#I(]\,.JP1IA0"P!H.0(!7S-QYBKP@2R+A(V$,9$=P@#>I %$*BX M?5'RP%H!WP_:(2! M_G@8HJX=! \\HT8<84<.[!0T$Q)5@117%80F%&![ETJR6DD1I7]3L1E5R@C\ M.\" ]W &,64I?$,5AO]\^F/V<1_E?_F. M^#B,QA?WX8*Y%ZY6.%K-%4(7\Y\^9.2&H3T8P79I4!YLP-A-GPWN.7;1 ?N5 M1?^,1DPPW9R[;U!+ P04 " !NC 59K.,J[34( !^& &0 'AL+W=O M;W_]/4-*6NV;X:)WN?OBI/"-OW%DY=O+&?\U*+V1R6@BEQVM3\41<#X!_(_2C&-Q\_UTT M"R^?47'2J3AY3OI+57Q>R"_*"A9-OO]N$4?QY0F1C);"\27[;2T +ZTQB=SJ MZ$Q+)\LDKU/!+.A^MS*75@K3+C->IF[E?2ETMFVGAYWT]SQ9,[5BJM:GI1N6 MJ*)21J1$9F0A:?DHR\Q-BC+]>PT&ME)().S4;<^U8*EBQ#]EO"@<#X(-Z+4[@?\_P@"4"RQ#%\UQY1R$./O_(!;UIERO )N))_L.6 M\$)BD4O&@L?4B R'DCRAA-VV\^2MRFWL)O9Y<;QK[GPMGG#2&P+!!HD!7Z5B M/YHK!54V1(K\Y>P!QJY@J$FTK-KX>NP<9?SK/4''!<5K(2CGM:JS-=H'7WI0 M"&#MO76+I/BN'CC_VC;]V65I^2D C! M=,#?KJD._-K5D7= HDN$C_P+CBM0I00B?PB]N;]E\0*=7=.1L+NNUK?[[U;\ M4='.M]\]E3:4H:8I3(;]X'RK:@/'F%>[FO.__L7]P9_I:RU06'VO+*A79NAT MA>MT#WFH\^U_C(_\TO[NJFE+_C7TO?/*-6KOXH=^] M_?_FY'\F]\Y)OZ!"^J+)<[^MCU]*=TA_,C:'I?-9HI/U8Q*$LQF+PN'XHC\] M"Z912-/QQ5E(QP#29-+['LXNCJB6J$_3'E$TG%\<%XC%#.4AI-5E7XUH.@_B MV83FHV/1WPI1?Z6@O'2O%T'IF^!M#T(M=$Y.GL+3SMGR%%([ M!Z"7W,A\)X]:=UZHVE^+LW89MRJE3SP N'9IM0.) P5U<.B71/& 3FDO"L$),:[S$O8L[3@GY7K=[MG'<\DJ;W3\A&:KK0J]F_'Q]>6C;2X MHU8X-IYD@9E\RZ84*MI[2N[/J ?FMA5GL!>UT&C4#;U6-%?,?:%IK;LGD;-) MV?F;7$RM-5V9Z$DXW](-"!&:N"6]_<5J"#^\,&3!@4WCUJ8Q*M?A9F1# MO\=VUVUWR:?GL&<,/:?GJ>?'4>]-&.'(W,LW/;L!K_YYN)OM'M??^#?E';E_ MF?_(-2Z+AN5B!=9P.)\.F/:OW?[#JLJ],#\HB]B[X5K@IJ6) .LK!0 W'[1! M]R^'FW\#4$L#!!0 ( &Z,!5F+1&PO=V]R:W-H M965T5K6^0<<&Q 66J[CM.W,TRH%8R,;9_/N=K9#4M,,J"",(HXK,;6 M57:+RLJW MU[-05 C)LAJL;I 16OWQ8YV''4#W$,"M >Y+@'\ X-4 [U0%OP;XIRKT:H ) MW:YB-XD+L<3!B+,2<>VMV/3"9-^@5;X(U76RD%R=$H63P1P_H8U <^"FYF@$ M*"0B2IDH.*#/Z'X1HO.S"W2&"$6_$E8(3&,QLJ72U@QV5.M,*AWW@(Z';AF5 MB4 S&D/<@@^/X_M'\+:*N0G&PO=V]R:W-H965T(% M5@@89-H2L+GMX0X8LR"C\;MC>OV6-O%T?*1_=;6;6G98P9U@ORC19>)]\!"! M'#=,;\7A&W3U3"TO$TRY*SJTL=%'#V6-TJ+JDHU!17E[QR_=.9PD&,[YA+!+ M")UWNY&S_(PU3F,I#DC::$.S U>JRS9RE-N7\JBE>4I-GD[7YG@)2/0D,:&\ M0$LI,2_ '+M6L:_-#C;.SSK:JJ6%%V@1>A!OUPJ/>*AP$ MWC=\A*+@!H5!.!G@17VYD>-%%WCGRKQ!NU>TYH3N*6DP.U=U"YV;AL&:!SLIK?C4VVT)*+6_Q]RJSL, MS#%3," V[<6F@YSO@M]>(3<,?4MNULO-KCJU)Y#F*\(7W(:9;[G->[?YU0CGG_2'"F3ANJ!"F6BX;EM%O]HWVF7;7_Z&MUWZ &UL MO5C;;MLX$/T5PML6+2#X(E_37( D;; MT(61M-MG6AI;1"E2)2D[[M?O#"DI M=B*[35'LBR53Y,R9,U?I;*/--YL!.':?2V7/.YESQ=M>SR89Y-QV=0$*GRRU MR;G#OV;5LX4!GOI#N>S%_?ZDEW.A.A=G?FUN+LYTZ:10,#?,EGG.S?8*I-Z< M=P:=>N%6K#)'"[V+LX*OX [#MU8SV^PW_ M"MC8G7M&EBRT_D9_/J3GG3X! @F)(PD<+VNX!BE)$,+X7LGL-"KIX.Y]+?W& MVXZV++B%:RV_BM1EYYU9AZ6PY*5TMWKS-U3VC$E>HJ7UOVP3]HY&'9:4UNF\ M.HP(,Y=7'$K+--+-C=@03GNN7H]UU(D NR;LYY#+;2WEU02KX+$^(#$ M"?NDEZ]22/?/]Q!= S&N(5[%1P5^+%67#?L1B_OQZ(B\86/RT,L;/L?D M-CN#F%&[&,J6M[;@"9QW"A)DUM"Y>/778-(_/0)RU( <'9-^<0N)Y-:*I4@. MXGN>!/;JKUD\B$_9-1B'VAC8.4\5R7REF6\36P!0 E7BT& M'SO-$JVH%-"MRP!#U!CDD&V!&U;L$-H]0L*X(6'\$Q.L,R(A8 FW61L'SQ+0 M4$#7_O#/73%$P8=HO4"A2C]#=DUZN:H P/=2K+D$XKC>^P(W3J/A9+BS,HCC M:'(2L\<&")7($M.*!?\57*0,[K%"6[!>BT:GF,8KZ#C8T51?Q]$D'K>M3F/V M63LNO;+H*6328!Y!LIG>*,+CPT$KBZ4CY?388B1 [@]BMOG-2VP">Y8/XNAD M-MNS?(9!KTH_CDY/]V8SR,QJ-X=V4\BTY.!D>*P*0I I.C.7R9)*$F84$#-&$A@=T! M,IZE^A!17-14)TJ7!L<"*E0KLE0LK M4L$-=E-LW%N&$XFDTP)E&)ZBPVL,Y@$#M[1ER[@!IHU8B2 ,BRYGFTQ+K-GH M+EQ9?J!/*@[!*,]489FXDBY%JE%5G]7G(IEENA5JU\(3'S?Z[] MH5M8H=LL*XNZ1^&X)/(R)X.2#"^$RO<])U1) M (1::[GV1M0)4UM@J(<^Q1=5&>TRKE"2;&92U,Q3'.L$)B.G^93RLD#X8D&1 MA0"BP+E6"3#D,]#?'C/& Y5:K5 57W,A:VXLRK;+;? +8A1.$]GFH-F!EZ#$ M1T2;0H)3#V3$ MTNCXBP*RXY<71'HS#BK[.58LSY8HBO)!A\*B68BVHWXCJL M$KWE=B8A;^XCT%C!+7LQ'7?[.)Q+Z7WJRV0S$= D\!#I(6E?Q)-)=]2<. JB M15R$)4 DF7?X;B>Y; L\A2]V.@3I+S)WHT-UL^*>Y6&4!QKE]T%X)J@_(AJH M-))I@_XN%XJ,W6$G\O$-_E5,8MU$U+ZA%$8G *D-;MZOK:%;^1[9(KV_+[*. MQX?C[5R%-N9CJ@!*/5]84(9/NCJM#S!VM]<1_6AP0QVQRRY;O04818^(V,G/ MA.-;!)7H\DEC05X$>2/8]+'TH[J"#9?'QNMITUFG1YO?M7^]!%^J$[3&''S3 M^!TY30;6\>0R Z'8'H\L]'B!\8 U&UE&BXE+?VX4=X#W!'_SAK_SG[V!HC>0-$?K"U1?54?*-3G1BN\3T(4M[G\ MJ.CVE]]?UO=D:&TSMK?S40,]L_*?;FQH,.'[1K/:?!VZ#!]%'K:'3TN?N,$) MRC()2SS:[T[QK=&$SS7A#\:&_T2RT [#P-]F@!79T 9\OM0X655_2$'SS>SB M/U!+ P04 " !NC 59W2)"=T$# S"0 &0 'AL+W=OO25J++(4!"6FT7[K.;3!L+ MQPZVLUW^/6.G[:5WI; Z=%]B>S+SS#/SV'%F.VV^V K1P6,ME9U'E7/-=9+8 MHL*:VRO=H*(W&VUJ[FAIMHEM#/(R!-4R86DZ2FHN5+28!=NM6&O MMG7-S;6\(5G,&K[%%;I/S:VA57)$*46-R@JMP.!F'KW. MKI<#[Q\$$HLG$?@-#S@#4KI@8C&USUF=$SI M _OS _K;4#O5LN86;[3\2Y2NFD>3"$K<\%:Z.[U[A_MZAAZOT-*&)^PZWW$> M0=%:I^M],#&HA>I&_KCO0R]@DOX@@.T#6.#=)0HLWW#'%S.C=V"\-Z'Y22@U M1!,YH;PH*V?HK: XMUAR*RSH#=P:M*@<#[UZ<<_7$NW+6>(HA_=,BCW>LL-C M/\ ;P4>M7&7A3U5B>1J?$+.!S -&B^?/LE'ZZ@+)P9'DX!+Z8D5GKVPE>IX& M"ZT*(44G#5D*;JLX/ &_MN*!2ZK# E-M'\Q[-^#P>]C_\@[%KY1_^K>P?IL,XC$=L>,XZ M9G#OV_\4P4^$*?IRV!,Y@O,FR-&K/&/Q=#(YJ7Q"O1C\=HE^-K[! NLU]2[/ M3F3,_8/]FHS9.!Z/^\6PP>2I,CY%Q?&9/F5IS*;3_UM&EL?# >M;AI-X.LW. M?2:3WD56H]F&Z]I23CKGW9UVM![_"%YW%^'?[MWOQ$=NMD)9D+BAT/1J/(S M=%=TMW"Z"=?B6CNZ9,.THK\:--Z!WF^T=H>%3W#\3UI\!U!+ P04 " !N MC 59IID]?V(# #Q"0 &0 'AL+W=OV4[I_O[-#,KH" M[;27+_A\OGO\W!OQ>*7TKA27(LF#E2)4HZR90NF*6M M7H:FU,A2[U2(,.IV!V'!N RF8Z^[U-.QJJS@$B\UF*HHF/Y^BD*M)D$O:!17 M?)E;IPBGXY(M<8[VIKS4M M;E)07* U7$C1FDV#6.S[M.WMO\(7CRFS(X")9 M*'7K-N?I).@Z0B@PL0Z!T7*'9RB$ R(:W]:807NE<]R4&_1W/G:*9<$,GBGQ ME:HH3QO[!:VW8#2"IC5;%V)@8%E_7*[M=Y M>(Y#M':(/._Z(L_R#;-L.M9J!=I9$YH3?*C>F\AQZ8HRMYI..?G9Z3O&-7QA MHD*X0&8JC91Q:^#@FBT$FL-Q:.D69QLF:\33&C':@3B "R5M;N"M3#%]Z!\2 MNY9BU% \C?8"?JCD$<3=#D3=J+\'+VY#CCU>_'LA;XNT!NIO!W+SA$ S)B0%RMLVQO@IRC9CK)OX/ .Q0&>$H^/./$J:(.T3"; MG\&U*GD"HXBJK"K]=+PVIWB>'2ZA.&;42-@VDH=\@PD6"^(0][PVA@,N"5Q5 MAH[-X3&\>D&DXI-_ONZ:0XKC"DNEK4L[33CN1)CSI:2T)DS:)V_[7"E+2;K4 M/*%D-MI/5#K]+#Q*TLS_G<(%T[>N0"W&PLV!;X]&=2/58V6SNLXY]QV14+5G M=;6;PW-95KNW!Q]=0T'OL)&B5HH/&Z@ME?][13UC)O=]E#C!=2*UFR];8_&2 M;AQVXD%,DM/UHI,-Z5Q:I!FRH%UAS8J56Z]RIK_J>YW1H/]LZS]='R3ST=#\ MSX0V:]0;=H;#T=[(_SC%@SC>9;WM#S[<^ P7J)?^L6$@496T]1>YU;;OF5G] M&?]I7C^&:*R67!KZS\S(M7LT?!V KA\8]<:JTG_4%\K2$\&+.;W)4#L#.L\4 M3?AZXRYH7WG3'U!+ P04 " !NC 59VHSG((H& #:&@ &0 'AL+W=O MK%(^F\_/L=:YNT?2\4UCOMNY MU@[=5F5M3P9SYQ9'PZ$=SW65V\-FH6NX,FU,E3LX-;.A71B=3\*DJAPR0L2P MRHMZ<'H<;%_,Z7&S=&51ZR\&V655Y>;N7)?-SA,T&1+1/8>@(+ZU[=**SR?>[RTV/3W"#C1X,W?Q!"#;-A<47M0;ER!JX6 M,,^=7NIK72\UVO^:CTIM#XZ'#KSZ:\/QVL/YR@/;XD&@STWMYA9]J"=Z\G#^ M$%:S61)KEW3.=CK\;5D?HH1@Q CC._PEFQ"3X"_9'6(LLM5$'I_H\^'(+O*Q M/AD X:TVUWIP^N87*LB['*_'NAII@Q)Z;_2(^I\$?:M'15GJ"23VBH#MD#TD2(89EP\L'%,AT*5V MNG:K/0'53 HK8N]\LZ MV$SC*989V9PF&18IZSG?0THFF!#5M7"!J10[J))NJ)(^G2IED<,6%J[04;[L M]G@1\?+Z2?->3[4Q4=)PQ3"AO&-)1()IFJ&S\=@L84[96(L6IKDN0D-I!U*L MQ/VT!"=41M#E*L%*J@?N!>8[T14;=,4/H]L&-BEL/IL9/5K YF+OKF6S!WL,D *$G\/4<9QP@D2C$!2 M*^A8VLSN>NN04$ B.:ZR%*><].P99#[/&/I40SVQZZ5]* OHU@$]VYNQS_E! MWPCAI0G=T(>:XHQ13"1Y"J@L41'P4JA" M"8M?2"3IHPKWY0KS1(3CC,$&*'_,H*L!D5E_M:\D+Y,-MNW$'\Q/16"+J ]7 M9("E]!V?@P9(MF:HD)@1T3-+"O0G622A54B)IX )M",1U. .@HG8!0Y)*B)) MRB%)E8])"84SD!(>5DX]^OU.\RJ2- YD>]P"VI[O2%Z@N!1=(935-^L6;]L;C5D[<+4XPUJ/_" MK0\O&E"<1A?5:&EL$/3[]& 'J?SV2E\L(*F@,H9T2E8/#'N/-?84!O)(W: " MX"?]SLZ@'G'5'_^,CA^:>[1NQ,C%8E3<)@,$/-AP[K$59<<= HD0H) *LL(I2AHBK6US'/4%S^T7N+XB(DIJQ9&K-N MU6$@,SCCH4I"3Y=^@YB$!(9,ZBJRGXZ'3Y1Z71:VM@X;6U.W575548JB; M?<(D0#SQH)8*_VS6K;>/:T7_"@CZ7:230_%FM%]+64B1V /@,S2DP"3-X@Q6 M(MK[,96Q-P';M"6,SP1LPJJO$^)3)B2Z?\ 5V0.=^5(\CKW@&G:^-U2 1/BJ MXM\?+FNW^O2PL6X^W)RMOE?<#U]]]?FN$ MR2 Q! +0P !D !X;"]W;W)K&ULM5=M;]LV M$/XKA#H4":!%;Y9DI[:!)$V[#"@0).F&?:2ELT14(CV2BI/^^AUI65)B5RB* M[(LEOMS#YWCWG,[SK9#?5 F@R5-=<;5P2JTWYYZGLA)JJL[$!CBNK(6LJ<:A M+#RUD4!S:U177NC[B5=3QIWEW,[=RN5<-+IB'&XE44U=4_E\"978+IS V4_< ML:+49L);SC>T@'O07S>W$D=>AY*S&KAB@A,)ZX5S$9Q?)F:_W? 7@ZT:O!/C MR4J(;V9PDR\?L8@; U"RWMWD&7YD6JZG$NQ)=+L1C3S8EVUUDB.<1.4>RUQE:&=7GX6 M(M^RJB*4Y^2&:\H+MJJ 7"@%6I&3!XHC=3KW-!YF3+RL!;[< 8<_ $[(%\%U MJ<@USR%_:>\AR8YIN&=Z&8X"_MGP,Q+Y+@G]<#*"%W6>1Q8O^B7/CSF\PYL< MQS/J.5<;FL'"07DHD(_@+-^_"Q+_PPC;2<=V,H:^O$*)&TRGW8;]^$%H6I$NM+W] M-$[=)/9_/#,2H[B+43P>HUUA,R%B?3Y1DT\DHQH*(=$]E]!:-!S%91)/E[CC M$2060#./E_.=VG*U OUDZ_5_/+DUM_AW- M59N4^Y7/4BA%KJB4SR9[+^PED8LL:^JFP@O,S50?O)M7EXS7R?&JWP;E0=(< M.*VM4H*9&X;#M#X)4C=()J>#J=#UXV0P/F(3N^EL-K1!M84!N;(?(+P0"97E MI$JV422XL3;OM)U/?36._MP\1, S[#0<&:>!.HW1@$*)^)WZK7SP> 8)9 M.N0X2]U9\-(O=#6<1D/6AV935'F4O# +4S=.@A'!)YW@DY\NRJ TJVT,UXUN MY"LUPQ-V40H(=E$'"CRJ\?&#KW_],()JI0K7*BP.;R?W8 M9-D"]0]0:;L&(Y$7BKQN_;*:/9%@>DZS2;$G4MMF8QCFF1O-$K,W/C@7\R9) M K/6RR)(, 'M7)\^F$V);S]/@R_-Q(VF <$JBSWP6B.U?@5SV/R%US MNAMHL;$-X4IH5+=]+;&?!VDVX/I:"+T?F .Z?PC+_P!02P,$% @ ;HP% M6?>[XJ#N @ ^ 8 !D !X;"]W;W)K&ULK57; M;MLP#/T5PBN&#C#J:YRT2P*TV89M6+%BW>59L9E8J"QYDMRT?S]*3IP,;?.R MO5@BI7-X2$GT=*/TG:D1+3PT0II94%O;7D21*6MLF#E3+4I:62G=,$NF7D>F MU<@J#VI$E,9Q$36,RV ^];X;/9^JS@HN\4:#Z9J&Z<%*@L;5++A,+JYRM]]O^,EQ8P[FX#)9*G7G MC$_5+(B=(!186L? :+C'!0KAB$C&[RUG,(1TP,/YCOV#SYUR63*#"R5^\,KE3#^"YM^[R@.H.R,597OF&7SJ58;T&XWL;F)3]6C21R7[E!NK:953C@[ORQ+U4EK MX(8]LJ5 8+("UEA]3<^(KF#YG2G^2H]2OBYDV>0Q2&D<9H?X+_O'&CR7>L^< M/\_L7M2%:5F)LX">C$%]C\'\]:NDB-\>T9T/NO-C[//;_B&!6M'E[M6*XVJ/ M\WVO$59*T#OE<@W< -N]U1="P"F78&O5&:J8>7,!KU]-TCA[^]]&.FGT)[US MO,,2FR5JR)*]TUT#]\G< 6I*P!^@1L$LZ<6F%>H1$98H<<7IF'>X$TCR/!R/ MS@\]\20LD@DL.JU16J#NIYEU]1!(CW_(_O&)UB0>A_FX>.(_+\(\26#!3,<$ MX;@TG6:R1-C>B+V@) M'<;HW)V&GN' MRK*P&.=[DCRD$;[ZG4/%1F&6)GNS"--\]$3Y"60IU2=+#SQID87Y^>!Y[A9' M!]VH0;WV/=> ?V-]8QJ\0UN_[+O9?GO_3[AF>DWUHMJO"!J?C4]M2V6I4_II3;\FU&X#K:^4LCO#!1A^=O,_4$L#!!0 ( &Z,!5GB0@&' M+P, *H' 9 >&PO=V]R:W-H965TVG89!*;<0\/,A6I!XLE.Z899W.HZ,*T& M5O5&C0@B2K.@85QZFU4ON]&;E>JLX!)N-#%=TS#]XPJ$.JR]T'L4W/)Z;YT@ MV*Q:5L,=V"_MC<9=,*)4O %IN))$PV[M78;+J\3I]PI_Z-(93M>/Z+_WL6,L6V;@6HE_>&7W M:Z_P2 4[U@E[JPY_P#&>U.&52IC^2PZ#;K+P2-D9JYJC,3)HN!S^[/OQ'B8& M!7W#(#H:1#WOP5'/\B.S;+/2ZD"TTT8TM^A#[:V1');068^2JPZ,'I!>41[6I B]Y R\AG)>W>D-]D!=5S^P"9 MC?2B1WI7T5G OSIY06+JDXA&R1F\> PW[O'BGP_W5)0#2'(:Q-7)TK2LA+6' MA6! /X"W>?\NS.B',Q23D6)R#GUSAW57=0*(VA&A9/VK!=W@0]M:PF1%RB&" M'2NYX);#2?[G/7SZ"512*BP\8QT+NP>R4P+KE\N:S+A$B>H,VIGYDKQ_5T0T M_O"__3'ET*?\4? 12FBVH$DW"?F-R[0(1B7!S/0_YQDD\8G>;IY->J:4"7G D"WSK>NL=$I+)X=R]-TMP/P^25 M. ]]2A,L&6UK;( OC,.%'^9TNLW"E-PKBP[[O+V$6\2%GU'Z6IXE?I[DY(MD M#;KB_T(U '!C.B9+P%P;^YKU+/73/)J_EF=^DJ?S"16?2+"3RU[$L4_QLB>2 MM/"C/"*?P)@E]C6MW6VUCHYZ2MRL6* 6?7(YRR-_0>,Y>?YD!W_X,M\"PGPG ML9^G4PI%D?IQMCA5H<&D?V).ZWY*N!+HI!U:Z2@=!]'ET'^?U([Q2^@N/&.1C'\^8_4$L# M!!0 ( &Z,!5DK%U6$.P, %T) 9 >&PO=V]R:W-H965TQ+[+/O'C_G/&=[O%;ZVN2(%FX+( MX3O'M>GTP66R4.K:&6?9)(@<(1286H? J+G!$Q3" 1&-GQO,H%W2!7;[#?H' MGSOELF &3Y3XP3.;3X+# #)._L-[X1@&DE;&JV 03 M@X++NF6WFWWXFX!X$Q![WO5"GN4ILVPZUFH-VGD3FNOX5'TTD>/2_92YU33+ M*),D_9;PMT1IGL!W' M5%X MOS=*DL;:H>9AJ^;A7ZNYHP3>.7'6W.:[93"WU-3.!',F4U7@-O7NIO*_U/)< M[56N$>^=H>W4G-]NGVC:5GVT/Q_I0GXLY2<'+C%5*TD%G '%WYV1IE:P5^X] M33^EY78(;TOW$WL@J2[NQ#L\..Q8 Q):U+'C7CSL=[U[P[<'VP08=JZ\ O7* M7^R&SI9*VOKV:T?;M\.[^LJ\&PO=V]R:W-H965T^JD]H&DB9%5Z!9D&3+9UHZ6T0D4B,I._GW.U*V+"N.MF5MOXB\X]W# MN^/=B9QNA'Q0.8 FCV7!UE.914C44%'%>60I94(RE7KJHDT,PJ ME84;>%[BEI1Q9SZUO&LYGXI:%XS#M22J+DLJG\ZA$)N9XSL[Q@U;Y=HPW/FT MHBNX!?U'=2V10;9H;Z+9K:V!CM;SX-!P*\U'Y/0&Y' "Z(!O+#U/;1XX2M]/^9R@Q@=1S05 M=*HJFL+,P1)1(-?@S-^^\1/OXX"]46MO-(0^O\6*S.H"B%B2E*J<9*T#%649 M$1+S,2W0\NR8Z8/@QTV_AP:YMUM62XR4/08;.IR$A"JR% 46N3HE;]], B_\ M^+_'"^L.M?6+Z0WD!E(ALV9N/]?&O+-2U%QWDO8S+&2-/88$P:BQ;H?XCB-/87&3OGFW4&DH M%^A(<-);^CW5PBSX?1L.<*_$>JO?D\)0O@#\E7(;*[]1B8X#[T/J]\2:D :3 M'GL;TG@(U(2T#V=#^@RM">D@V$"%Q6V%Q?^^PD19U;K)/22Q];/49GO&BEI# M1F#7,"J,JGJI80QO>)<#T:;!DH7Y/Q);>EPKHG'A%19@"4JKJW,)8(45>R1E MTXC!-.*#G.W4[SO&44O4"CEJ1. QQ5SL(%-;9.K]^+M5]VO'.^M;]^>R]ZDM M)/1Z6&(WVBC8".QG5W4)V':$_'ZM[*7Q"B]>C.-10\OZA40GHS@*.XSP9.2% M08>13$;1).FJ>*,P"G[:&5P %W@=^3DQNK=W*SQ$NL9C64&3D5X8 M>R/C<)1$7I<,/;]+QDG<)0,\B M3<'A[)+!..3X(#\T"TR?QQ,#E>3YN0QZ <8_J%4<(B1'*ZVR73L M_^1V;N[8O'D_X6]XQ;@B!2Q1U6SL$-F\ M21I"B\J^ Q9"XZO"3G-\QH$T KB^%$+O"+-!^S"<_PU02P,$% @ ;HP% M6=P-!IDQ P [@@ !D !X;"]W;W)K&ULO59M M;],P$/XK5D"(26%Y[\MH*ZT#! C81 =\1&YR;2P<.]C..OX]9Z?-4BB!3TSJ M8I_O'C]G/Y?+;"?5-UT"&')?<:'G7FE,?1$$.B^AHOI3:_2>[UC>9>B1OM)'5/A@95$RT3WJ_/X=> MP"3\0T"\#X@=[W8CQ_(%-70Q4W)'E/5&-#MPJ;IH),>$O9254;C*,,XLW@&F MI,G36[KFH,]F@4%0NQ3D>X!E"Q#_ 6!$WDMA2DU>B@**X_@ R72,X@.C93P( M^+81YR0)?1*'<3J EW09)@XO&/(H M&H7/!UBE':MT"'VQ:HN R W)955+ <)H.^.6+H%[K#H-IU@/XIYF?5O"T"Z$ M*OQILI$<:Q3%P 0QI6PT%84^NR!/'DWB,'G^WY^WI0(XDA=!<8 3Q\%GQ>[_ MXG%X6CGU)\FQY6CEN@9%#1/;7P[J:736.3XFR=B/TJQGB#,_BL*>81SYXW'? MD([]Z20F7__QSVWX1N2\*;!(=2F5>69 52TM378ERTMW?0SEA"N,\G,R(,^L MDV?VK_*4OYP%9W3-.#/L=%$-XUXW:@C0I:*@QCSQ*J65(9 KB1>+IU_8D9:< M%=2N+BFG(@>RLN\^_3_T^YNT7D .U1H422+_M,Z.5'69YZI!YOV$'Z01A6,_ M'8]ZENG(3Z.(?) B;Y3"TATZ.I\(;.'V=;+WM8=H^]X!+PDGJ,Y>"8P2/\U^ MIXHBC3(_F_9EFV13?S+JI'Y*8$&O!U6@MJ[3:GSM-,*T[:BS=LW\LNUA#^[M ME\![JK9,:,QQ@Z'A^1@UI=KNVDZ,K%U'6TN#_=$-2_P@ 64=<'TCI3E,[ ;= M)\[B)U!+ P04 " !NC 598_[=W,,# Z#0 &0 'AL+W=OWEX?(Z@1ENIOND5@"'W15[JL;,R M9GWINGJV@B+50[F&$E<64A6I05$M7;U6D,XKIR)W!6.A6Z19Z4Q&E>Y:349R M8_*LA&M%]*8H4O5P!;G%5#J M3)9$P6+LO.675[ZUKPS^RF"K.W-B=S*5\IL5/L['#K. ((>9L1%2'.[@'>2Y M#80P_M[%=-J4UK$[;Z+_7NT=]S)--;R3^==L;E9C)W;('!;I)COJ/]G6MCX:SS;:R&+GC B*K*S']'Y7AXY#S(XXB)V#J'#7B2J4OZ4F MG8R4W!)EK3&:G51;K;P17%;:0[DU"E>UVO2J>=_YV^W99!_'[@]@^N=3K= 9C!QM!@[H#9_+J!0_9FQ,0 M_1:B?RKZY!;[;KY!@'*!K+^#<@,D+>=DJ:369*WD(C-D^D!TC;\/_G<2U([D M9A?\U8M8,.]-*S_&)MM4$_Q;R!R;%XF1E<2LY$8C'GUQV7K^UR/V)^("_"D M4M04!$M!@@2"BD#[/I907<$C^W5IQB\FRS.3@6[-7Y)0,!HEL9WY"15>C(P' MM7PX2)-$'O43<:"/HIA&/" ?2P.J*??[/,,63^UUI0\\7N,N@BBX.%S@/BZ$ M%^2S-&G> ]*/IEQ=?9_;.4GE/.L'9"U//8HXSQ8^7G-!&< MLHCUK 0LQ(+P?W,$@2TAZSN"A+(D.3P"09,HI'X%5M P8E1$7KO>;/M#U=K7 M=6LWBQ_Z^_W_UI,_I_>.11_86_ LY;&QJ?&Y=OOVO6>S?W6>-.J]/WS*PI!P M-O0&775( \ZL6@R.4EH@D7R_(P_#P8%5@O=3T#'BPVAP>$'$(5X/S*XF71@\ MB*@(?:OGAZ&?BU$_,N#F&]DX@D/4SM>S&Y MG?=L@:BK5[LF,[DI3?VT;;7MA\';^CW\:%Y_57Q*U3+#JSR'!;JR810X1-4O M]5HP&ULM59A M;]LV$/TKA%8,+9!%$B7+=F8+:&P7VX!A1M)NGQGI'!&52)6D[>S?[T@K@JTP MA@.]^Z.N=E>JN^Z C#DJ:F%G@>5,>U-&.JB@H;I:]F"P).-5 TS MN%6/H6X5L-*!FCJD492%#>,BR&?NVUKE,[DU-1>P5D1OFX:I?V^AEOMY$ ?/ M'^[X8V7LAS"?M>P1[L%\:]<*=V'/4O(&A.92$ 6;>? YOEEEUMX9_,UAKX_6 MQ$;R(.5WN_F]G >1O1#44!C+P/!G!PNH:TN$U_C1<0:]2PL\7C^S?W&Q8RP/ M3,-"UO_PTE3S8!*0$C9L6YL[N?\-NGA&EJ^0M79_R;ZSC0)2;+6130?&&S1< M''[94Z?#$2"EKP!H!Z"7 I(.D%P*2#M >BE@U %ODWB@\Y8@S^2W37!.Y(6L%&H1A+GV_D#O01O'"0$D63%?D MXQ(,X[7^A&??[I?DXX=/Y /A@GRMY%8S4>I9:/ ^EC4L.M^W!]_T%=]_;,4U M2:(K0B.:>N"+\_ E% B/'3SQP)>7>_?!5Y=[IZ?P$'/0)X+VB:".+_D_B?!I M>J!)_33V6;G1+2M@'K262.T@R'_^*;$6^,'JLQ1V5=YE]-HG&184KMCI3UF\7@\GIR:+5^: MQ91F4WIJMO*PI9-CLY.XTS[N]&S<1TWO(N>BJ+:6\9+ $_Z+TN#D MD:8"A:^44B@.85J#7Z+TQ6U'&1T-!/(8C;-T((^/:3P4YZ51'-'IU*_-J-=F M=*DVMCRNR#VV*#0V<&S:+UPP47!6D[74_+76/>]AW2F\.E+X+Z?P9Z?L%5D< ME/8U\OM1+]^/>O4NU"?IS?KT9F=]?94&DU>XS Z[WCE6@][0E=P+VQAX(5)( MH67-2V:/]7-AN.?<&6]P'/-V1N9Y%>AT,G@5%AXSFHS20>$O7YK%=)(,FVCE M81M-IM-XT"#AT51A9\8_F7KD0I,:-@B,KL>8/768PPX;(ULW:#Q(@V.+6U8X MNH*R!GB^D=(\;^SLT@_#^7]02P,$% @ ;HP%60$GB#\"! ?Q0 !D M !X;"]W;W)K&ULO9AK;]LV%(;_"J$50PMDUL7R MI:DM(+$7K$,S&/&Z?2CZ@9&.;:(2J9&TG0S[\2,I198[XSM.+.[+=2?W"C68Y MWL(:Y,=\Q=636[DD) ,J"*.(PV;N7/F72W^D!:;%7P2.HG:/="KWC'W1#^^3 MN>/I'D$*L=066%T.L( TU4ZJ'_^4IDX54POK]T_N-R9YE"8I$0^HM=+D)BDXHW2?5POT>M7;] K1"BZ)6FJ6HJ9*U57=4 W+KMU770K M>*%;/KIE5.X$^I4FD+3H%W;]V*)W%:**4_#$Z3JP&OZ^3P=HZ%^@P O"MOY\ M34Z5W'M1OOQV^="2S; :]:'Q&[[@]S2Z%^@/)D%=/C!,!<(T03>$8AH3NJV/ M_*M2Y#B&N9/K6<8/X$0__^2/O7=M)/LT6_9D MUJ <5I1#FWM4+1 )/&O#9I<'Z!$P;UL\"ZNP*Z*>S!J(1A6BD37':IOAI\FV MX2Q#HK'7M,&S&G>=U2>/G MN-K06,VZHBG,1C4TDW,T/<5KH)E4:"96- LL=BCG+ 9(1#%W-N6Z:T-C->N* M9O(,C>^=H9G8)E8CX6F5\-2:\!WD^%%57FH62(;D#JSY6KVZYCO]>K[39_EZ M[>F^K=)]VWF':&X.5?YH ZW+P1J@*X/"S/?J(SJ8G%'H*6(#F.^=2CK/OEOD M$!.YTR JH&DIO,?:F%Y@2C(UOK,&J,KM5[=EGVY-?G62F;_AU9/9;B^ M4/?IMNS+K8DZ.*$.K%/Y3XX3:/O9:_^?PFK6&63AYOOUI3X>#\*SQ=Y7U":B M4RGO6VO8Z!8_D&S?6E_:E9UY]%J8]^76I'8JS?WPQZ[A/DOR1:]NR[[&PO=V]R:W-H965TS!=26AK5 !B-IN]>T=;:%2*1&4G8*],.7I&39\B0E'K@WL43Q?L>[OW@1 M;WJ@[)GO 1ZR3/"9]9.B.+>MOEZ!SGF-[0 (I]L*,NQD+=L:_." 4ZT49[9 MGN.,[1RGQ JG>FS)PBDM19826#+$RSS'[-L<,GJ86:YU''A,MSNA!NQP6N M M/('X4BR9O+,;2I+F0'A*"6*PF5D?W/O8#92!GO$UA0,_NT8JE!6ES^KF8S*S M'+4BR& M% ++GSTL(,L42:[CGQIJ-3Z5X?GUD?Z'#EX&L\(<%C3[.TW$;F9- M+)3 !I>9>*2'/Z$.:*1X:YIQ_1<=JKGCP$+KD@N:U\9R!7E*JE_\4B?BS,#S M>PR\VL"[-/!Z#/S:P'^KAZ V""X,?+?'8%0;Z-#M*G:=N @+'$X9/2"F9DN: MNM#9U]8R7RE1+\J38/)I*NU$.,<\Y8ANT)(!!R*PEN\WM-"N@:$U)6LYSJH' M[R(0.,WXKU-;2.^*8:]K3_/*D]?CR4/[<$*?_G)'3N_=XE@$A:9 MA,6&8"TQ@D:,8(@>_E7F*RF%W,""%HW*O$N-0="U:IB$115LI&'J/]L^=)VI MO3_/\>"45N9&3>9&@YE[A#V0$CCZWE?LOJ//,J<"R'!>!]U3L,@D+#8$ M:VDU;K0:&RHY8Y-BF(1%)F&Q(5A+C-M&C-O!C;,$IC20GY&J[+2W#$OY2Q/M_JAM^Z:MNPQZO%L4D+3)* MBTW1VMJ=3IZNJ:.G:_3L:906&:7%IFAM24[G3W?X &J^PAD]IQJE137MHL(% M_ZIPAIQ6DMAGW3V9M*UNJW*Y!4HBJJY-,]JT;C_HAN7%^-R]7[@=XY%J]>IN MX@E?]8D?,-NFA*,,-M*5XHD(JJB]W@!-@:H)\OJ%4 M'&^4@Z8!'OX 4$L#!!0 ( &Z,!5FOK;K;U@( +D( 9 >&PO=V]R M:W-H965TLFEII:R"A2=4!4@NJQK2J M75F[SR82(%EX*(4TO MR*TM+\+09#D6S)RJ$B5]F2E=,$M=/0]-J9%-/:@08=1J)6'!N SZ73]VI_M= M55G!)=YI,%51,/WS"H5:]H)V\#IPS^>Y=0-AOUNR.8[1/I1WFGIAS3+E!4K# ME02-LUYPV;X8I"[>!SQR7)J--C@E$Z6>7&U#QN =F<'(%H#HK\%Q&M [(6N9N9E#9EE M_:Y62] NFMA*8ZOI*R><[5\SKN&1B0KA!IFI--(260/'0[2, M"W,"'^$>LTIK+N?4?A@/X?CH!(Z 2_B>J\HP.37=T-)<'&.8K?->K?)&._)^ MJ>0IQ*T/$+6B3@-\L!\^Q(S@;0^/M^$A.5#;$-4V1)ZOLX/O6Z4L3N%.\PR- MDW;IRPMNF'Y"LH.V"XRFY S/F(!+8]S@\5=4>""R+8F=6F)G[^H/ MF,F!ZA@RU\#GBB^8<-N@2?6**O%4[HQ<]*-6&B=4A8M-/0UA[31-S^NPK9F> MU3,]VSO3D;1(^BUH9A',DI7P"\9\+OF,*E-:N+4Y:KB=.(O81"",9%G5M1HU MENK>E/^ZC@+N]3I.)QS:4#@C&"MTY166Z\NRE7'JM+?-1-E MZ>;RS9S^+5"[ /H^4W3.KCON^JK_5OJ_ 5!+ P04 " !NC 59YZ@08>8# M .$@ &0 'AL+W=O=@*% B2=?O,2+1%5"(UDK*S_?I=2K(J18QJ=_('2Z3N M.9<\E[Q\K(Y$P9<=%SE64!1[6Q:" MX*0"Y9GM.4Y@YY@R:[.JZA[$9L5+E5%&'@2299YC\<\=R?AQ;;G6J>*1[E.E M*^S-JL![\D34E^)!0,EN61*:$R8I9TB0W=JZ=6^V;@6H+/ZDY"@[[TAWY9GS MK[KP>[*V'-TBDI%8:0H,CP.Y)UFFF: =?S>D5NM3 [OO)_9?J\Y#9YZQ)/<\ M^XLF*EU;"PLE9(?+3#WRXV^DZ=!<\\4\D]4_.C:VCH7B4BJ>-V!H04Y9_<0O MC1 = /"8 5X#\%X#9F\ _ ;@G^MAU@!FYWJ8-X"JZW;=]TJX""N\60E^1$); M YM^J=2OT* 797J@/"D!7RG@U.:1' @K";I"#T14XX[%!/'GC.ZQCJ1$[R.B M,,WD![#Y\A2A]^\^H'>(,O1'RDN)62)7MH*6:#X[;KS>U5Z]-[SZZ#-G*I5H MRQ*2&/#1.#X8P=N@0"N#=Y+ASALE_%2R:^0['Y'G>#-#>^[/A_NF[OP_[]L? M]MX3PV_'A%_Q^=\9$^2E@.E,$J0HC+R]*V\91C,/*]OMS78!:'CA7YKU^OIO.WI_#L]U2L;C#14 MF'.128.:,H=!3/([="> X7TKJTI-Z?X8"""OQS(/MK&2V4?>KP*!YI/Y+&G M>=AJ'HYJ?IOSDBG$=RB&]4G +@CE/*$[&C#A0W.1S.Y'/GN:+5O/%F9J7#!>%X(>NG'WY.W,!ZU(] M0_1^%?9:>9EAO6M%8!VG5V6A=Z#4./1'6W3ILCL&BT$2,AA"L@J#CF&MG-TYW^9$ M[*N+!0E)'A)_?:QI:]O+B]OJR/ZJ_LZ]N7<-]9&^[*C.T]_HZYN2SUCL*:P< M&=F!*^$ \;>Y*L:N^: MW742$!_/[-IQ4\EU4=527NR]S9ES9F?L&>^$O%8; $WV:<+5Q-EHG8U<5T4; M2*EJBPPX[JR$3*G&J5R[*I- 8VN4)F[@>7TWI8P[X=BNS60X%KE.&(>9)"I/ M4RI_3B$1NXGC.X>%.5MOM%EPPW%&U[ _3F;29RY%4K,4N"*"4XDK";.F3^: M^H$QL">^,-BIHS$Q4I9"7)O)^WCB>(81)!!I T'QM85S2!*#A#Q^E*!.Y=,8 M'H\/Z&^M>!2SI K.1?*5Q7HS<88.B6%%\T3/Q>X=E()Z!B\2B;)/LBO/>@Z) MYPTR=7@NN-(I<\AOBVO8N4*][!@?IXI#Q^)UF^-P0N9@ MFP;AW4IXUZ)W[DD .*C25E4=S>X3T.Q5-'O_Z'[JE#7[]@.2VNQMT-&O=/0; ML9!T!%SC!\_PDI68K+;ZCFY%D"7@^4BL.?N%"XP;&R;B.CT%![\H'O-AWH9> MNWO:&;O;&NZ#BOO@F6NDU_*P3'SRFUPA?IJG=>(:23XP#8=5"(:/52W#)Z!Y M6M$\?<9J:?;]-]7B>S>_)^__R3FZOROGFED^\#;]HY^T_UAI5R(],M/@AFGP MC)EWCW-_V)!Z[E&3E()9 Z@R'-5,CFQ M++FHJ,*M6-ER+8!F!E25MN=+G71X. ,C3#?!V .\8$)P!^#N ;P)ME)FP9E319"SXE@AMC6QZ87)C MT!A-P?1;?% ";PO$J60.&V UD/=DRID2F%5"I00ER>4,%"U*.<"[QX<9N;P8 MD M2,/(MY[6D+)-C6Z$"S6.G.V\WC3?OC+>0W*&77))/+(/L-=Y&Y:U\;R__ MQNLE_%JS*^([[XCG>$&'GFD_? 8IPET#]WOD^&TV?S*S$-,.@&ZEJ] MEFN:PL3"8I0@-F E;]^XH?.A*ZK_1/8JQJ"-,>AC3Q[9HBA+R+"&SP;;,(2& M0?>131(Z(R^(QO;F,(PNL\ -P];LED6VU82<"4= 2"XYQ15ZP<1=,*JI3/.B2 M'9[H"8;1R#E2?6KEC\*AURTZ:D5'?R>Z:1%=ZJ(3OW'D.TY\)"\Z>?-Q$+K1 MF3*6>8X\D%H [Q?&ULK5;O;YLP$/U7+%9- MG;25GP'6)9':9-,ZJ5+5KMMG!R[!*MC,-DF[OWYGD[ TH6B;]@5L<^_=>V?, M,=X(^: * $T>JY*KB5-H79^[KLH*J*@Z$S5P?+(4LJ(:IW+EJEH"S2VH*MW M\V*WHHP[T[%=NY'3L6ATR3C<2**:JJ+RZ1)*L9DXOK-;N&6K0IL%=SJNZ0KN M0-_7-Q)G;L>2LPJX8H(3":3L=2;(@TT[>*O3,AN%SR!#N6W@X("?L2AI:OG"XI'V%:8%1/] #_*+9EB&V#.9CLIY&:>#YN$/K?1O' M86$<^J/W7=@S@:-.X&A0X$66R0;UE4(I4DNQ9N:[TR>SY1GMY??3^%#D<5 8 M^DF_Q+B3& ]*[#MP?0+CH]Q1&J9)>B Q[JEC'"5QO\BD$YD,BKSB&38'!>;, M9W\H.#FNJ)]$GG<@>##Q/[Z_:6E4UN!\=.GPC5 M9 $KQCGC*R*6I ;)1-YG/SW>""_RC^P/"OQ;^^Y>!ZA KFQC5.BCX;IM!MUJ MUWLO;,MQ?X>WC?N:2K2I2 E+A'IG"6ZD;)MA.]&BMOUD(31V)SLL\/\!I G MYTLA]&YB$G1_)--?4$L#!!0 ( &Z,!5GME\>YA0H 'MF 9 >&PO M=V]R:W-H965T%#V_\VWU-NJE59KZNFSMKR]GSVEKZQ MF@\#-HI_5>73^N#G;-B5JZ;Y8_CEUYOS&1G>4;DLK[L!L>C_^5)>ELOE0.K? MQW]VT-E^F\/ PY^_TW_>['R_,U>+=7G9+/]=W73WY[-\EMV4MXO'9?>Q>?JE MW.V0''C7S7*]^7_VM-.267;]N.Z:U6YP_PY65;W]=_%U=R .!O2<^ "V&\#" M 6)B -\-X"_=@M@-$"_=@MP-V.SZ?+OOFP-G%MWBXJQMGK)V4/>TX8?-T=^, M[H]750\3Y5/7]G^M^G'=Q5'4W:+:KG^J0=]_F2R'W_X*?LAJ^KLG_?- MX[K7K\_F7?]VAXW.KW=O[=WVK;&)M\:S]_TV[M>9K6_*F\AXDQZO$N/G_6': M'ROV_5B]8TG@/Q[KUQDG?\L882+R?BY?/IS'=N?_V[H]>>O>P>#[B<,W/#[! M&T^7W52*!7J+$G'4D O?K!\6U^7YK$]VZ[+]4LXN_OH7JLC?8T<9"3-(F 7! MO'B(?3Q$BGZ1./K;@6HS*:RK/YE\,#&]$)RKG6OLZ,=:S02C#F MZVQ$IS1AFN]UWI[*_9[*Y)[^7'TM;[*'MKJ.[FUR\+%S#0DS2)@%P;P(J'T$ M%&[M*V0\D#"#A%D0S(N'WL=#G[KVMP/EP1I4_<>'H,'2'\MDSL7P.>.M_+&, M,DUU$:[\B(X6BN8JOO+S_7[FR?W\7%?=],)/CCUVHB%A!@FS()@7@&(?@ *W M\ MD/) P@X19$,R+!R7NZSLY=>GO1GJ+6C*I\F#M1W5"Z$!G(KJBH(05P>*/ MZ"@AG-,\OOKI@5>AR9V];-9=[TJJU=5CNUY<+>.[G60<.^^@- .E613-CP9S MT6"X9+!CH:*"I!DHS:)H?E2<+:-)EY%,"'RT, 7)-5%A0ACKF)9"RS AC'6: MY_VGM]']3(XZ>JXA:09*LRB:?_R=$:,2F &@ MQ@Q*,U":1='\J#AS1I->(YD!U/BC7@NN1AD@HA."Y^&9@(B.$I'WQ# %C(5% MP269, 34.1^:MCZ_-?6KJ320''GTA$/2#)1F430_!LZ5T1R8!J V#4HS4)I% MT?RH.*M&D\XCF0:*\6K,"RZ*, V,=;G*BX*$:6"LHP7313Y* Q&ATL-_\3S MG ]B:1_T:]V5[;J\6Y5UE]EEM:KJS6R,UAW2K&/G()1FH#2+HOE1<8:-45QF M8%#C!J49*,VB:'Y4G'%C20N2R@R[D8<+]!4G,OSJ?QG342%UL.!-3"08H)B\"<'6)I.S29%[+_9L\4$M+DH^T\ 4 35^4)J!TBR*YD?%&3^6KL>E M8I!'/M!9F!]B(DI(6'F(ZK0:Y8)%-8DT_^@9"2V& M06D61?-[DIP-Y 27)SC4!D)I!DJS*)H?%6<#>;INEXH!':]9%IQFO(R*9)@E M8BK*0J<155$MXCF".U/%TZ8JE2,F3E"FB4?//VA-#$JS*)H?FX-6162O(K99 M$=NMB&U7_#-L'W>VCY_9@68EM4=.*\)'K1DQ!:+(/2+(KFQ\=Y/PYL9>10NP>E&2C-HFA^5)S=XR(8RINMI/&QIC/*$R-E$AG FBC_3U-A5RZJKRB$C M_/Y0MOU$K.^R3]N4$3T"T H:E&:@-(NB^9%QMH\#NQTYU.)!:09*LRB:?YF# MLWCBY(Y',>X\5(SH(NQXC.E$,?I28"(Z2DFNQUM4/[>.NLDTM8I MF1V>KV&DZ!2AU\C(C)*J!ZGBH@N)R.>C>JT.JAU^+MZ?]5PH2)HJQ3E J MB_ 2JHBN7_V"A,6,B$YS4:BI1.&\E4A[J^<2Q8L*&NEM'#TSH24V*,VB:'ZT MG#L4P-Y* 76&4)J!TBR*YD?%.4-Q2PEU@U":@=(LBN9'Y>!. M)B?W6,IQLR-E@HO0=\1TJJ DO%0KHF.NR MO?OVTB)'&G;T%(26VJ TBZ+Y87%V4 ([*R74]D%I!DJS*)H?%6?[Y,F=E7+< MY5@,9P;"YLJ(3NM\=-KW"D MT4=/26C=#4JS*)I_RR?G Q6PM5)!W1^49J TBZ+Y47'N3YW<6JG&G8Z2%V)T MNX>(3N2B*,(S$1$=I8*-[A]A8T)"A50DGBB4TEB;R;Y9WA"Y3RA.KG]4HW;()DJ1'BGA\N(CO(B#R_M,!&= MT*0(+SBWL>T.Y=6)]DOEG)9*.ZUDLI@X:YE&'CT1H74V*,VB:'YPG#%4P Y, M!76"4)J!TBR*YM]LUCE!?7('IAXW0@ZEB/#<1$2F-!O5/B,RJHFFX<4;,9T0 M7$Y<^*F=N])I=Y5,#HFR1AI[[%2$T@R49E$T/T#.$&I@VZ6&6D HS4!I%D7S MH^(LH#ZY[7(W\O"F\'DAY:BL$='I_O.>%&&*&.NHEH2'*;IX/$KS^CKZYI)'7#7UCM\]!+]J[JEYGR_*VWQ1YK?N,UFZ?=++]I6L>-H_RN&JZKEEM?KPO%S=E.PCZ MO]\V3??]EV$#^^?-7/P/4$L#!!0 ( &Z,!5FPJMXMD ( +P) 9 M>&PO=V]R:W-H965T9 RCT M6% F)TZN5'GANC++H<#RG)? ],R2BP(KW14K5Y8"\,*""NH&GA>[!2;,2<=V M[$:D8[Y6E#"X$4BNBP*+IRN@O)HXOO,\<$M6N3(#;CHN\0KN0-V7-T+WW(9E M00I@DG"&!"PGSJ5_,1V9>!OPBT E=]K(.)ES_F ZUXN)XQE!0"%3A@'KUP:F M0*DATC+^;#F=9DD#W&T_LW^QWK67.98PY?0W6:A\X@P=M( E7E-URZMOL/43 M&;Z,4VF?J*ICD\1!V5HJ7FS!6D%!6/W&C]L\[ #\P2N 8 L(_A<0;@&A-5HK ML[9F6.%T+'B%A(G6;*9A*:%GB<:I]"OGBXI0BC!;H&NF,%N1 M.05T*24HB3ZB)N!T!@H3*L_TX/W=#)V>G*$31!CZF?.UU' Y=I569'C=;+OZ M5;UZ\,KJW]?L'(7>!Q1XP6 /?-H-GT&FX;Z%AVVXJ_/0)"-HDA%8OO! ,O89 MJ9&#_4BSURYDB3.8.'HS21 ;<-+W[_S8^[3/5D]D+9-A8S+L8N\T62-CBS3[ M?Y,.HR2.O+&[V95_,*PE;- (&W0*NU>$$D5@;QUU0M^:_I[(6BZCQF5T=(U% M?9KLB:QE,FY,QD?76(V,=HHG\<)!'+RHL8-A+6%)(RSI%/:9@5@][9/5B7MK M[GLB:UD<-A:'1Q?8L$^3/9&U3(X:DZ.C"VSTS]_)CP;^W;>;Z>@7"!.CY)>?JN6-. M\.;"EOX%4$L#!!0 ( &Z,!5DLD%&=D@0 !\= 9 >&PO=V]R:W-H M965T=F8;2"RIZX "0=-N MGQF+MH5*HD?2<=I?/^H1V9)H1E[X)98HGG.H%6QN M;#G?W9@F6VUQCM@UV>%"/%D3FB,N;NG&9#N*45*!\LRT+986^)X"ML]S1'_>X8PRKNS)8E M27-@,4(\K2H?]%S8\0)0/#( 78#L/L M]PS :0#.6 6W ;AC%;P&X(T%^ W K[ROS:J<#A%'BQDE!T#+WH*MO*C"5:&% MP6E1SJP'3L735.#XXA,AR2'-,H"*!'PN."HVZ6.&P2UCF#-P)6E['V*.THQ] M$$^_/X3@_;L/X!U("_!M2_9,\+"9R<702@%SU0SCKAZ&?688#OA""KYE("H2 MG$CPH1KO*_"FL*3UQ7[QYN\33UZFWJL MAH=X)>!0!N]XZ;1SS*GXG#-\)U,(55-(-C]J"E=.4:ZO-VR'5GANB 648?J$ MC<7OOT'?^D,6')UDH4ZR2"=9K(FL$U2W#:JK8E]\HH0QL$24_DR+#;C-R;[@ MLL#6-'Y%4^YS3PL'>G :S,RGTY IU2X-V3C-2*=F_*IFQV:OM=E3VGR[6NWS M?88X3DJ/*4]_H7)+ECE=,WDG([B:!E/H]IQ6"E[J]#C-2*=F+-&HC*+!T1OL#?1L&]L3I^:R4N]3G<9J13LU8HFD'G@_E/@>MSX%Z M1I_,8H"?18K,,"!KD4",V"6"P9 \:%D]XX/!?Z+G]#N%0R9H#7I%0RH(W7ZO M6/G"_W,=GK1V3I1V?J,HP07*L=0O)?;2754G6:B3+-))%FLBZT1SVD9S^O94 M::HSJ#K)0IUDD4ZR6!-9)ZC0.A99EIYDJ>'I+$M3V^ZO<&JY2Z,V3C32*AJ_ M*MJU^J2>A=H2IH:JDTG /K]C$DM>;'=XU0CK:JQ5-4+IM,SAMM'PVU->5-# MU$DH+,_OFZV4N]CL,9J15LU8HNFX]IFT"1ZK:*BLYQ;+ZFL0IH#BK)K2;)ON MY-]:M!;36ME"K6R15K98%ULWP,>*&KIOW_RASJ)UJ94MU,H6:66+=;%U8WLL MXZ&ZCA^? 0RK6WOJ38/^]Q*UWL61&Z<::56-7U?MNGTLY:&ZEK\H"1B6N5<3 M*_ &.9?6>GZD:J15-9:I!G#BG#/\6--#=5%_01(P+*EMZ-GV8'YK*JH;N\>I M1EI58YFJ[4*WG^2:)^V2;+]^MF&(II0,D7[$FSL<_R<2XP9;1A_$1F M1-LBIV)L95*N+FU;S#,HL+A@*Z!J9,%X@:7J\J4M5AQP:D1%;GN.$]D%)M1* M1N;>/4]&K)0YH7#/D2B+ O/?UY"SS=ARK=<;#V2927W#3D8KO(1'D,^K>ZYZ M=N.2D@*H((PB#HNQ=>5>3H9ZOIGP@\!&M-I()YDQ]J([=^G8P?D6TDOD.^<(\_Q@@[YI%\^A;F2NT;NOY7;JB1- M7;RF+I[Q\]_Q^R(D47\22-&B*@!N%P"V:A<)0&H7J=A-T; I6E?V:K&@>S&] M4R_%"L]A;*FM*("OP4H^?G CYW-7)?Z3V9NZ^$U=_#[W1#\==,I!OR (72)! MMJA@5&;BK"MW9189,_U"62=#?QB-['4[3^^*1^8)FCS!H3QA%WBE"EO@;AQ% M[@YYK_>1Y&%#'AXBC[K(PWWRR UVR7N]CR2/&O+H$'G<11[MDX>1$^R0]WH? M21XWY/$A\D$7>;Q/'OB#W9KW>A])/FC(![WD3QFH0WXA@7?Q#SKX ]=Q=@+T M+G%D@&$38-@;X&[W-7N.*,BN,,.]=X[GQM[ WPG3,IIFISRO@>H(:7S F7SOZ!&\^ MV)*_4$L#!!0 ( &Z,!5GT7*M4/P, #,* 9 >&PO=V]R:W-H965T M"7M505-=A5&U_7"NBJ!57"&;;;&#OC%K*8;N 7SM;Y6V/,'EA6K0&@F!5&PGGOO MPLM%&%A &_&-P4X?M(E-92GE#]OYM)I[@54$'$IC*2C^W<$".+=,J.-G3^H- MQ./K&!-&VYNY.XC] FEEJ^47+>_9-?% MYIE'RD8;6?5@5% QT?W3^]Z( T"8/ *(>D#TIX"X!\1MHIVR-JTK:F@Q4W)' ME(U&-MMHO6G1F T3MHRW1N%7ACA3O"M+V0BCR37=TR4'0L6*X*!J8$7^973) M.#,,-'EY!88RKE^1-^3K[15Y^?P5>4Z8(%^VLM&(TC/?H"!+ZY?]Y.^[R:-' M)O^G$1S MW8N7NJ8ES#W<;!K4'7C%BV=A%KQUI?U$9$ MK- "9G==;U'=6>2RHN//6GY[BMP5<1H'P+A0M52<[;A:J 4X.Y0U5SN0<@2Q"P9L;I0$>; M'K@?)DF>3D^*Y @+)EDX<518H:)C:$ Y[$0]7V+L69 M0TJ>Y-F)XO.P:9:$H5MP/@C.QP53W5!N]K@#=*.H*('TM72:FY]+C=,@.E'J MB)H$8>I6.AF43L:52E5+-!7LKI45$$/O\?"VZT.:+:BN[Q(].9,3QUF>G(@^ MCPJ3*(C=HJ>#Z.FHZ/^L,I>FZ=EL41I'X8DF1U06)8\8&0;_7XS!J*HOTE!N M#[P_.5%ZKJ-##\^S^+3HCK@HBY-I=*+6/[C1[7/J,U4;7'RX4=8(#"YR3%=U M+Y2N8V3=7O)+:?#)T#:W^*H#90/P^UI*\]"Q[X;AG5C\ E!+ P04 " !N MC 59<&R$\(8# 3#P &0 'AL+W=OT0- TVS,C7]M$)5(EZ;C;KQ\IJ;)D M,VJ"Z,46I7L.SR$O>@T(^J9'+I[)2JKUQ7%CNHB+SD-3#]9<-% M191NBJTK:P%DW8"JTO4]+W8K0IF3+YIW-R)?\+TJ*8,;@>2^JHCX]SV4_+!T ML//SQ1>ZW2GSPLT7-=G"+:B[^D;HEMNSK&D%3%+.D(#-TGF'KU8X-H FXF\* M!SEX1L;*/>??3..O]=+QC"(HH5"&@NB_!UA!61HFK>-[1^KT?1K@\/DG^Y^- M>6WFGDA8\?(?NE:[I9,Z: T;LB_5%W[X )VAR/ 5O)3-+SJTL5'DH&(O%:\Z ML%904=;^DQ_=0 P .'P$X'< _ZF H ,$C=%666/KFBB2+P0_(&&B-9MY:,:F M06LWE)EIO%5"?Z4:I_*5@#55Z)T0A&U!SX^2Z/4U*$)+^09=H+O;:_3ZU1OT M"E&&ON[X7A*VE@M7Z;X-@UMT_;QO^_$?Z>?CGEVBP'N+?,\/+?#5-/P:"@W' M#3P8PUWMN+?M][;]AB_XA>VM@-:TS5%+$=HIS/JZDC4I8.GH!21!/("3__X; MCKT_;/YF(ANY#7JWP11[_I4K4NKDOEL %1P:9^6EC :"+F(HL0_D6N) MTG(CN]JH5QL]<2#?(@;6T8S.^LV"P//3$WF6L"CU!RY&^N)>7SRI[Q-(>:6W M#2%T3J/:#"QG-I7Q^>BDF9^QT>O*-XI(3J[))Z'/WBIG(1BZSWF7V\ITQ MF]/M3&0CM]@[UC_O!7MC!QZE4NP'.#[).%M<$N+!LA_+&Y1G/"EOQ:L*1$&U M1OB^I[69$L2X GL-GB1[[L3,Q3:V?BS1>(8:C6%CV3BL5#CZ4K]66_+6WVRG\B^28)GS\5,;&.[QTJ/HQFR M;_*X\&S',[&-'1_/#GCZ\/"+[(O/SG\XPV[@QF*NBY^)V%(F M40D;C?,N$ST4HKV!M0W%Z^82<\^5OA(UCSM]:P5A O3W#==9V37,O:B_!^?_ M U!+ P04 " !NC 59;"GG>XT& E-P &0 'AL+W=OP& M ]8D,1L;Z*SVQZ]S@6 (+M&&> M,N,9RR47.2K8_'[PX-X1SRD#JB/^YFPK#[ZC\E*>A?A1;GR8W0^<\HQ8RA)5 M(JC^V+ I2].2I,_CGP8ZV.?]*7IB . ES_3 !N M O!Q0' FP&L"O$LS^$V ?VE T 0$EP:$34!8E7U=6%5)1U31R;@06U241VM: M^:62JXK6!ALQ M17DJW^G=W[Y$Z.V;=^@-XCGZNA1K2?.9' ^5/I$2-TR:I-,Z*3Z3-$0?1:Z6 M$L7YC,W,^*&^@/U5X-U5/&(K\&&]N$:.^QYA!^.N\[&'_[7.KY'G5.%^1WAT M>;C7$1[;PR.6Z'#W;#AY)3O-SX4;9>GM[PBOXGFOW!&+@M7W0\1&A8>%,X5#EW_J'2BCL,"%WN^>5@,>6H$"&8H$NX5":V*/"QT*[@H M:\BJX'G"5S1%-!/KO%,1*ZNO(C4L."CJ6\]S\+$BD#GC\$3>V^ &C_!1'0'* M:2@RVBLRLBKR+=?E7RC^KV[+RIJ!N)1KFB<,)4)V]U568%]91B>R7 7!<0E% MD"GCCI2A/PJ.1 %*:8ARLQ?EQBK*!Z,SD5NZZM+!RNBK R0L@H3%D# "!#-4 MO=VK>OOK#X*WD*)"PB)(6 P)(T P0U37:0=\CK6R?A+ED%YW9 ]G.S([H:^J M#>VP ?.<\N^HT03-&C>T\)6L!"JKJ<;!\-NUJG%NL!28M :3$H MC4#13&UQJRW^]0:T84!I"TF+0&DQ*(U T4QM6Y/$M0[7)T_U6+D<2HLY2FJE MZ4[I]T@M==:E2&>H?# J>.VCZD.54.4@0DIVYGZH\[J>,5 ]>L"?V4:D&YXO=AK/:<)3KGYV:@?JDH#2(E!:#$HC4#13 MX]9V<0. =AK4;P&E1:"T&)1&H&BFMJV!X]H=G(_TA6?K##V+0L=6]9CJ=.41J!HIGRMV^/:[9['G6P2B;62BN8SO=$I':C- MXYZ:+B?#%5"3!Y1&H&BF:JT=Y-K]H(<-Y2E]3MFEU0[4&FIHAY48CSS_=+P) M:ON T@@4S12P=7Y$@%S3O5 O5\0&D1*"T&I1$HFOF&O/5]L//K M3SD8U/D!I46@M!B41J!HIK:MBX3M+M+3!6^G&H3Q1LGO>+:QI^HM&J@]!$HC M4#13M-8>PE:+HFUDT7_HLC$0:848-!I]2 MTB)06@Q*(U T4]O6'\)V?^B"MREV0F]E05TA4%H,2B,-S?(&Q]2L]7NP?9Y- MQ J^J:8WHCE_8;/>DZ'L_-Z*@GI!H+08E$8:FNN;D[!\YS8XHVGK\V"[S_-( M)9>HGEU=SI_:T()7(]!+)06=O-/0CDQ\YWB:"&C2&)1&H&BFGJWQ@^W&SU1D MF9:+ZY8U94I73]F^9^G4#]3^ :5%H+08E$:@:*;,K5.$;P >C4#M(5!:!$J+ M06D$BF9JVYI(V&XB];/>&]BKUKL]:6_Y0/TB4!J!HIFK %J_R+//$[K<>K># M>J\&.)VX$^ACC]U;T*0Q*(U T6KEA@>K>W2?N*C684F4E..->HG,?N]^K==# MM<+I:/_4O8OJ%5LMIEY ]I$6"YY+W=7.-=*Y'ND'M:)>DU5O*+&JUA ]"Z5$ M5GU=ZB&ULM55K:]LP%/TKPBNC MA2U^Y-TYAB2E;&.%TK+MLV+?.**RE$G*H_]^5[)CO.*X8Z-?8EU)]YQS'[F* M#U(]Z0V (<>""SWS-L9LKWU?IQLHJ.[)+0@\64M54(.FRGV]54 SYU1P/PJ" MD5]0)KPD=GOW*HGESG FX%X1O2L*JIX7P.5AYH7>:>.!Y1MC-_PDWM(<'L%\ MW]XKM/P:)6,%",VD( K6,V\>7B^F]KZ[\(/!03?6Q$:RDO+)&E^RF1=80< A M-1:!XF*(X)6Y1'H_"4H9])E@HR9LA<*2IRP&P;_9$L MJ: 9HX)4I[,$O%91H M8="4T.^%[2)&M8A1IXC%B5H3G&C:4)&AT49?X@P;[$$[];BF'G=2X]#!D2(( M!V- (?^:I*YGVM@[H?ZQ42:UT,G_=_+D#01.:X'3SDQ^>YG!UVI9PH5ALYB] MZ8MR^HVA:]^O.ZIR)C36:XU>06^,O:#*-Z$TC-RZ.;R2!J>Z6V[P&05E+^#Y M6DIS,NQHKQ_FY#=02P,$% @ ;HP%63?M%3T. P ] T !D !X;"]W M;W)K&ULK9=M;]HP$,>_BI554RM-34B /@PBE693 M.ZE35=3MM4D.L.K8F>U )^W#SW9"2BI(R^8WQ'9\/]_]G3/GT9J+)[D$4.@Y MITR.O:52Q:7ORW0).9:GO "FW\RYR+'27;'P92$ 9]8HIWX8!$,_QX1Y\M@9EC"-:<_2::68^_<0QG,<4G5 U_?0!W0 MP/!23J7]1>MJ[B#T4%I*Q?/:6'N0$U8]\7,MQ)9!%.TQ"&N#\)5!N&^%J#:( MWFO0KPWZ5IDJ%*M#@A6.1X*OD3"S-8*.$&'HCE"J=TF.?*77-)9^6O,G%3_]K7QN'PXW#D[ 3^*UDIR@*/J$P"/OH<9J@XZ,3[>/&]QTN7G<3 M$T@UL6>)T8:X Y.\X1AF;V%: 4?-#D66&QVT0[MVHN+T=W/, 7(I"YS"V-,G MA 2Q B_^^*$W##[OTLPE+'$$:^G7;_3K=]'C[V4^ X'X?.LCD:B4D"%];"(E M<$;8 OWI_H8FU2(#NX@Y3%=Q,/)7VXIUNG&H8HY@+<4&C6*#3L5NF0)-54A@ M!4BN<;%+D$[&H5^;2UCB"-;2;MAH-W24K4.7^KF$)8Y@+?W.&OW.NK.5FW( M4W25\W)W)E: X58F1L'K7'S'G*33D7\,\[P)\_S %-,'T!12SC*$%P)@WS'4 MB3WTJW$)2QS!6G)>-')>.,JZ"Y?ZN80ECF M_7K!2QD8_&_>=1,.U&ULM5A1D]HV$/XK&C?3X6;(&6PP' 5F[K#=7J=)F5S3/G3ZH+,7\,26'$G M-;\^*]GG O%YH/&]@"7K^[3:;W=E:;KGXI/< "CRE*5,SJR-4OG$MF6T@8S* M:YX#PSCW/SFC"K/G4]"W%?,JW*DT8+ 61VRRC MXM\[2/E^9O6MYXX/R7JC=(<]G^9T#0^@/N9+@2V[8HF3#)A,.","5C/KMC\) M;_1X,^#/!/;RX)GHE3QR_DDW[N.9U=,&00J1T@P4_W:P@#351&C&YY+3JJ;4 MP,/G9_;0K!W7\D@E+'CZ5Q*KSH::+^*I-+]D7X[M M623:2L6S$HP69 DK_NE3Z8<#P&#X L I 87C[YD" 5(10140N:X=+[X6[> M'WL8WKM#U1HGO%2U_2!&:<->1P(]VE M%;I-,K]-LJ!-LM#[M@IYKEM5H2/A1I5PHPMS_7VE6[OIWFC'I8JW2>:W21:T M218V:W=<9MZ_D&]'83&NPF+<2'V;\6VA>F>-A\XKDG(I\7P8\35+OD!,4/RX M"AV=[5";YN-O0O;M<#0^V:IK!@T\MW<\RJ\9Y3C#_LDF7#?A\&9T/"IL7/S_ M+)4WE6MOSLRX+OD9?4LZOZ%OKTZ2[9Y%/ /"!5GP#*W8Z#0S'[ZF_Y+$:S:G M.HZ5S)UR([LR$<5SP\S6V*I5>/&J[/ZKL@>ORAXVLE\:9/;!R1W57IL[%HDG M;DS3X@15]5;7.+?F]N*D_ZX_6?1K^OW^)"AN:?ZC+^Z,WE&QQL,\26&%4_6N M1_BA(8I[F**A>&[N#1ZY4CPSCQN@6![T 'R_XEP]-_0$U678_"M02P,$% M @ ;HP%69;C81=D @ 6 8 !D !X;"]W;W)K&ULK55=;]HP%/TK5B9-G321D$"W=2%2H9W6296J=MV>37)#K#IV9M\ _??U M1\@H2VD?]D)LYY[C[L1F6I;)$S 3>*Z+:NJ7J< Y>;63 . M=@>W;%6A/0BSM*$KN .\;VZ4V84]2\%J$)I)0124L^!\?+:8VGI7\(O!1N^M MB76RE/+!;JZ*61!90< A1\M S6,-"^#<$AD9?SK.H+_2 O?7._9OSKOQLJ0: M%I+_9@56L^!S0 HH:84#< >)#P$LW)!T@<4:],F?K@B+-4B4W1-EJPV87KC<.;=PP8;_% M.U3F+3,XS*Y$+FL@/^D6-#FY *2,ZP]IB(;;5H1YQS/W//$+/*?D6@JL-+D4 M!13/\:'1U N+=\+F\5'"'ZT8D23Z2.(HG@SH6;P=GAR1D_1]2AQ?\H8^#77' MHR?#:#N*9[JA.#@[\5?,_8-M6&RSJ)1_"4-U_M67ZMZ MYF':>Y@>]7 _NAN1$@I0E!.-%%N4ZO$?0R=4$WK4PW10W?C PVM5WD.X-Z0U MJ)7++DURV0KT8]&?]O%X[E+AX'QN8M.GW%\:G[G75*V8T(1#:2BCT2>C3/D< M\QN4C8N"I403+&Y9F>@'90O,^U)*W&WL!?V?2?8$4$L#!!0 ( &Z,!5D, MD7BW<0D ,MP 9 >&PO=V]R:W-H965T.G4TRTQ@)J;/MYC;;O:^IK<1,;? "3N[]]BNP Q;! M M9/WR0VYOS.07X02(^!ZY;(%-ODZ=ANDUDL"R"-NNA/1I-AIL@C :WU\6R^^3V.MYEZS"2]PE) M=YM-D/QU)]?QR\W &KPN^!8^K;)\P?#V>AL\R0>9?=_>)^K=L*0LPXV,TC". M2"(?;P:?K"OAVGE L<9_0OF2'KTF^:;\B..?^1NQO!F,\HKD6BZR'!&H?\]R M+M?KG*3J^.\!.BASYH''KU_IK-AXM3$_@E3.X_4?X3);W0RF [*4C\%NG7V+ M7[@\;- XYRWB=5K\)2^'=4<#LMBE6;PY!*L*-F&T_Q_\>6B(HP#%:0ZP#P%V MUP#G$.#4 R8G MQ#@-LU8'P(&'IBIDO/$P\6AO+M]>?:)\ASR)8ZR54IH MM)3+AGANCI\8XH>JJV2[#?7,S>%?@D2%6R?# M/7.X)Q=EN-,03LWA#W);%M\4SKIO>U.XWWW;F\+Y>2TO_N_B-2$XY8[C%#SW M!&\>I"NR/.P]JGM=K)7\E^2]TOLR7JLW*=FJG:C8*SXT"7^/GQ;X_)#T?#NZ M&$VNA\_':C+6D!\(K])ML) W W6D2V7R+ >W?_^;-1G]HTE;2!A%PEB7MO"1 M&7E31LO6,XJ6E33=N*5NW"+*.:&;K[N-3((L3JZ:1.$"MW&.A'E(&$7"&!+F M(V$<"1,@F";:<2G:L;&S^ZK.ND6TB#?J?."?<9HV=FA[Q.1H;W%G8]>I]6C& M1'U%B811)(R];0QG-G)J'8R/3,G?IIQ,W6FM%Q4-W]+(<4]T:I-2'Q-CI^;) M*%8GIR>[M0FR6T/"/"2,(F$,"?.1,(Z$"1!,D^UE*=M+8[?V1S$45F=MP;,Z M)C_)US',8YP0U=EM=UE0C,CCQWQ '2Z(?!T?E:=V36K?)QT?[6)C9^*.:AVA ML;2^,D;"*!+&FAK#&5FUCA"9DC>E'$_&M8ZP:2W[Z'"E*6I:*FIJ5)07KG?Y M[ V1CX]RD>7*44/XQ<_?\@D9I;.7(&D>!D_?5&.-K/JQTYB[KV20,(J$L::V ML&MMX2,S\K<99^/+FE[>KC,]VJE_5#*S0G;\AI7=C36E_87-GD1%]H5QJRV\_'&@^; M?51D-ZG(JJO(6$EO%2%I%$ICC>UQ69_;@.;D#3F5BNJ3&\V5C4^HJ)KJM\QS M_;];A6M 2K.L427(^>DYE.9!:11*8U":#Z5Q*$V@:+J**^/!,DX1Y^:AZNSV M(PHOR!H'#F9$;Q%#'0@HC4)I#$KS6[Y()G]<$-O^2$XZJ=!R!(JFZ[;R'BRS M^?!-+N)D>5JRR$GT.93F06D42F-0FM_R'9;>_VG)(LL1*)HNVY M5LE]$#;]8N7.'-M;L% [!$JC4!J#TOR6;_#35@G6XL::HY :11*8U":?Z"9?TC#H3D%BJ8KMS)<++/C\KO=96R&= OF M4)H'I5$HC4%I/I3&H32!HNDJKHP@R^P$=1J;(2V*.93F06D42F,M3?\E^(N0 MD7/Z2.]#R^%0FD#1]!]#5UZ3;?0 VL9FYNB^DH72/"B-0FFLI=7+WS*?_B4V MU%:"T@2*IDNVLI5LLZUD')N98WL+%FHL06D42F,M;?YYMS:/IGQH.1Q*$RB: M+MC*P[+-'M;98S,SO[>HH3X7E$:A-&8WN4EO+DN YN10FD#1=.56OIG=XILY M'<9F9D9O=4)],RB-0FD,2O.A- ZE"11-5W'EF]GG^V9F1&\10WTS*(VV--:G MW=.%&DX9S"D&K<>'TCB4)E T7;B5<6:?99R9HWMK%FJ<06FTI9V*RV+MF4FR M4*\,2N-0FD#1=,E6QIE]AG%FCNTM6*AQ!J71EE;ZUR)3PRG#E!6#EN-#:1Q* M$RB:+MC*.+-_L7%FYO<6-=0X@]*HW<6<8M"HL8:IRU;-[7^+EE.$6A M]3 HS8?2.)0F4#3][C&5<^:4P*,V'TCB4 M)E T7;*5<^:[,Y[-WFH,X9E,:A-(&BZ2JNG#/G?.?,C.@M8G-!^RNGK--'>@]: M#H72&)3F0VD<2A,HFJ[;RCASSC+.S-&])=OARBE[:I(LU"N#TAB4YD-I'$H3 M*)HNV[Y ME6_FGN6;M4075TZ91E-S,Z"O9*$T"J4Q*,V'TCB4)E T7;*5;^:>X9NUQ.ZO MG#*,IN9F0&_!0B\R@](8E.9#:1Q*$RB:+MC*-W-_L6_F=O&FYN8J>BL7>B49 ME,:@-!]*XU":0-'VRAT>/=AL(Y.GXJEX*5G$NRC;/ZJI7%H^>>]3\;RYVO([ MZ\JW&I9SZTKLGZM7X?>/^?L2)$]AE)*U?%2I\KM(#DBR?W+>_DT6;XO'JOV( MLRS>%"]7,EC*)%]!??X8Q]GKFSQ!^?S"V_\!4$L#!!0 ( &Z,!5D>I/U$ MJP0 +$5 9 >&PO=V]R:W-H965TI(1(]%3D5,RM5,KRW+9%G)("BU-6$@IOUHP76$*3;VQ1 M;/ER1GV[GE6B\=-]DF ME:K#7LQ*O"&W1-Z5UQQ:=HN29 6A(F,4<;*>6Q?N>>3ZRD%;_)V1K=AY1FHI M*\;N5>-;,K<<-2.2DU@J" Q_CV1)\EPAP3P>&E"K'5,Y[CZ_H/^A%P^+66%! MEBS_)TMD.K>F%DK(&E>YO&';/TFSH)'"BUDN]"_:-K:.A>)*2%8TSC"#(J/U M/WYJB-AQ )Q^!Z]Q\/8=@C<<_,;!?^\(0>,0O'>$4>.@EV[7:]?$A5CBQ8RS M+>+*&M#4@V9?>P-?&54?RJWD\#8#/[FXE2R^3UF>$"Y^0]%#E3 7*08/R.LR34F>(#!&$C]!UQ&DU/KM<9^P]9Q&>DZJX#\N_-%TY,SLQUW% M^JS.)G[7*CRT\B;N:'S6-8L.S=Q1X'BCUJQ#W[BE;SQ(WX^_;M!UCFG?(@<] M/_KUF@0+38)%AL Z]$]:^B>?2B 3DQ*8! M-@D6&P#H23%L)IH,1<%OG ,@& M<2U&G2@R(2K((A7L:2 GI 3EC&Y.).$%[+9B0M4F&I5O1,[T,%9="/V]]'!H MY;E>,-I+#X.S_RC1AL Z1)^U1)\-$GU1L(I*2-$Q >X2M6DE3W&*Z8;HQ"OZ MA:@5P)I_]$[^!R?RT; Q"1;68*Z[([ISNE<1HI\8==AWG=?CA#/(/VP=%6]P MQE0<8ZB:ZA'.H/=0#../RM3"">! M97-LH(R>D*+,V3.!C$A4GM.0JNY?,LP3U1@.//^@F(\#9_] T&/E.MXXV"OY M?6:!/PWV<\^AF>?MFM64VCM74 7A&WWW)U3*IK*^AVA[V_O%"WVKMM=_Z9XO MW9[^4-U'ZBNO5_CZ,O,*\TU&!=%"O+X?K!N2E?H";,6D9(5^3 F& M@J\,X/V:,?G24 .TM[2+_P!02P,$% @ ;HP%6?'*0;+/! 5!T !D M !X;"]W;W)K&ULK9G9;N,V%(9?A5 'TP3(1)NW M9&P#B;5,"Z0UQLWTHN@%(]&6$$E42,H>OWVIQ8J5**P-G)M$"_^/I,[OHR-R MNJ/LF4>$"/0S33(^TR(A\EM=YT%$4LRO:4XR>6=-68J%/&4;G>>,X+ 2I8EN M&<9(3W&<:?-I=6W)YE-:B"3.R)(A7J0I9OM[DM#=3#.UPX7O\282Y05]/LWQ MAJR(>,R73)[I+26,4Y+QF&:(D?5,NS-O?=,N!56+'S'9\:-C5$[EB=+G\N2W M<*89Y8A(0@)1(K#\MR4+DB0E28[CI8%J;9^E\/CX0/>JR)^$YWWT@SH6')"VC"J[]HU[0U-!047-"T$Y+$8L] M^H+<-$_HGA!4W4?+@@61##A:)CB[0BL2T"R4SD5_KM>$Q=D&?<9I_A6M(LQ( MMS6Z<(C <<(O)?9QY:"+3Y?H$](1+]MR%&?H,8L%OY(7Y?%#G"32HGRJ"SF[ M]%=HULHY(/>N3.Z7*[1^ZJY0X)K@^#[Y-[:OD?=*OLW3]= M;BHB8;_9')W_FUSUXU8]#/*%\)MSS' 9EI,N=SPK9$FW_^Q1P97_N" M"PES(&$N),R#A/E L(Y%!JU%!BKZ?$'35+X9>9GNKE".&=KBI"#H0N:DD"8) M9ASEA-59Z[+//DK^N?:I8>,*5E83V[EQ;1B&_#%LCXT!V:=[6I\>9)\^$*P3 M\F$;\J$R*_PE2S=>R*2PJH/^HPKX/W=/7#!9(?W;%^0A9) A80XDS(6$>9 P M'PC6,NZ.NWS20TR[4[M=M/-?0ME;^?&'Q+F M0L(\2)@/!.O$WS1>UV:,TQP@/T)PEA4X08SDE(GR4R2F?8L<]_^#M T4XGW? M\LI"K3S7(* T%Y3F@=)\*%K7)$<+>.9I)I$)XJ7 3!"6[$_PB9JJ\HE2>;9/ M(&DN*,T#I?E0M*Y/K%>?6,J(KNH/$^F2X&BM \6<%^WWB8@(2FBV^2)-E,JL M$Y"LW"E ^0?UB;K+HO=F._6/'I:C6S+Z+9R04?F@=)\*%K7"*^+ MH:9R(:U>\G_S"=L;7- %T89V_.EE#X=OX^;T-+/,B?TNO*"KF* T'XI6AU<_ MVMM)"=M4VW9<_H:+3-1[$>W5=FOPKMH0>W-]8=XZ]0;?*Z;>;WS ;!-G'"5D M+9'&]5C^MEB]A5>?")I7.TA/5 B:5H<1P3)AE WD_36EXG!2=M!NI,[_ U!+ M P04 " !NC 5906=M.F $ "%%@ &0 'AL+W=O;?U[E,(! RL.L72!Q_WSD^WSF^37:,?Q4;C"5XR5(JIL9&RGQLFB+9 MX R)&Y9CJKZL&,^05*]\;8J<8[0L05EJVI;EFQDBU)A-RK8'/INPK4P)Q0\< MB&V6(?YZAU.VFQK0>&MX).N-+!K,V21':_R$Y9?\@:LWLV%9D@Q301@%'*^F MQBTB8-G4 QEP=C7XN77Y=2P"H]PBA-94"#U]XSG.$T+)N7' M?S6IT=@L@(?/;^QQ.7@UF 42>,[2O\E2;J;&T !+O$+;5#ZRW2^X'I!7\"4L M%>4OV-5]+0,D6R%95H.5!QFAU3]ZJ0-Q +!'9P!V#;"/ - ] W!J@'.I!;<& MN)=:\&J =ZD%OP;X9>RK8)61#I%$LPEG.\"+WHJM>"CE*M$JP(06F?4DN?I* M%$[./F,EBP _@3G+0O#QPR?P 1 *_MRPK5!H,3&E58_89QQQP MSZC<"!#1)5YVX,-^O-^#-U60FDC9;Y&ZLWL)?]O2&^!8 V!;MMOAS_QRN-,U MG.^S'GV?];@?'N)$P6$7O!5+I\DZI^1SS_#=KM<BQPE>&JHR59@_HR-V8\_0-_ZN4LVG61A1>:7 M9,6D_CP+G)%C3]F.ZWOM7K$FQUH"N8U ;LGNG!&H/1ND9<7C:C;H M$L35*8A.LE G6:23+-9$UI+7:^3U>NMO/YF_*ZUWDJM. -VC7)V?]K(]"(_R M/JQZ>8?5 8/@N#I.N=Q@-+2/JJ-W@-\8/K\)G]];'8/^U2E)^!8OWY,U.,E3: 5NX!^51J^M:P6[S&:DTV9\ M:G/DNQ V)ELQ'C8Q'EXX Y7;R4&SGWP=@/F6<[7T#,"35%L$=8PI=P4QH8@F M!*7@06T/RF/)/]&++ XYB[38CPKY;Y=,_7Z\:7VPG6TJE_YW1I"(#[/Q4N]\OUGUSQHNTZ$J"T>DJ9@TA=(]JM=>M M:]6]S&:DTV9\:M/V'==SNXL56OM3HG75AN&=J;%F:ZWAT/-&1TO]O-_JM0&_ MT&JDU6K<8=7Q1L.#[7P[Y@ MW))EF*_+^TP!$K:ELKJZ:%J;.]/;\J;PJ/T.CN>PHSV$XZBZ$=W35Q>T]XBO M"15J\EPI4]9-H$XOO+KSK%XDR\L[N@63DF7EXP:C)>9%!_5]Q9A\>RD,-#?/ ML_\!4$L#!!0 ( &Z,!5ECL'A49@( / % 9 >&PO=V]R:W-H965T MK(M@98%4!21$D/\1E3D+:OA&MQ-NS:XB@:6BDM0EFM%#&SG].WTL7'ZHYC7U"(*!TGH'A9P]+$,(381K?>TXZA/3 8_N> M_5W0CEHVS,)2BZ^\E#^^AUW/N^4HM;'B30^=[D5!2[JS3 ML@=C!I*K[LON^CH< :;9(X"D!R1_"TA[0!J$=ID%62OF6)$;?2#&>R.;-T)M M AK5<.5O\=H9/.6(<\522\D=7HNSA*F*++5R7-6@2@Z6O"2?H&:"G*[ ,2[L M&>[<7*_(Z-\OODN;9U'^V.-(T[G1TX/G3D1TU(]^%GYFIN;* M$@%;1,63BW-*3#=?NH73;6C1C7;8\,%L<"2#\0YXOM7:W2]\UP]#OO@)4$L# M!!0 ( &Z,!5D>X821PP0 -,9 9 >&PO=V]R:W-H965T7Y.S(RB]\2ZD 7_.LX'-K*\3NVK;Y M)^6W&YJQX]Q"UG/#?;K9BJK!7LQVR88^4/&XNROEG=VQK-*<%CQE M!2CI>FY]0-W-; O=0#:0UJZ7:CO>ZX*!')8E:R(R@KM&2K+NK>KZUE?Z5%-5 >1"F? MIM).+.[ICI4B>* ;.0($!V\C*I(TX^_ >_#X$(&W;]Z!-R MP)];MN=) ML>(S6TC?%8.];/W<-'[PB!\'?&:%V'(0%RNZTMA'T_;>A+TM-7?"\;/P&SQ) M^/N^N (._!E@B%W-^]Q>;N[HY/P_[_&KO?CEEU^-AK38 MR&@W24A^S+I@-W2NGJY*;M=\ERSIW)+9B]/R0*W%3S\@#_ZBZVF39)%)LM@0 M62\F;A<3=XI=?ID'6NRIKO<;0Z\VK&:"PP(1S_$1F=F'\X[5X%SD.+[?QT5# M' Y]S\6XCXLU.,^'V'R=2IT02&%,EZ& P4R5H8##V]9+^3[$]*_E0(6O)6FE>,4D6 MF22+#9'UXA%T\0C,YOK 9$Q,DD4FR6)#9+V8A%U,PM?F^G"0A]X[D/AJJM? MD$M\):M%&AB1$X*22F,=6PC#4)\)$#P5FW!2YZ-(LU2DE(-_P1\[6B;U^&M' MI+:HG.1[Z> SRA8998M-L?4C<[8,0&:S0LMG*C(FV2*C;+$IMGYD\"DR^+6Y MH;4D9]^IAZ$?*A/[K0[GAMA1<)$&AV29X \*02TP<"!$(QGBM!!!DS7U=VO! MUMSK28&>IRK6P#RBEHR1!A8ZQ"6JW"$,05DSCJD]E?AHNL:_M!QL:085G*/* M'L%A5;<6!P,7GO\AM1M&K,B(5;]33JL!-+T(X(M;D?#Z9&/0ZIFT)C.'77 M8 0'746X?;9)G=U?:;]#U+=*T1]6)1;TI M?J)OCCL^)^4F+3C(Z%JZ@E>^S*1E6@.\=9_ =02P,$% @ ;HP%67KN\4^I @ $ @ !D !X;"]W M;W)K&ULK59IC]HP$/TK5JI6K=0E)[2E$(FCI[05 M@F[[V21#8JUCI[8#N_^^MA.R+ KIH?U"?,Q[GCCH_L'ZUVK66+)2PX_4E2E4^=MPY*88<*4S23$O36]AY] IX)7.8D03/]HJ&72U"84/E*X[YQ=G7# MB((4;116(">NTDF:H]RD26A>)Q1<2&B$KCE3N40?6 II!W[9C_>#'@)75ZIF-TUJ+$N]*_V7SCS77MF+=<]Z94%B,S>.1(E MO&*J[@GM:GNMS6PW/UN?^^-%?3L]T-1WY346&6$24=AI2F_P1J MVHZ\Y4KW=SO,]94-P@3H_1WGZC@Q![1_ N+?4$L#!!0 ( &Z,!5E_,CW* M4P, + 5 - >&POW#"@MJ8]_C<^ZQ?4/<]BNU MY/1N1JGR%CD7U<"?*55^"8)J,J,YJ:Z*D@J-9(7,B=)=.0VJ4E*25D#*>=!N MM>(@)TSXP[Z8YS>YJKQ),1=JX/>:D&=OW].!'\:??<_*C8J4#OR'BX]_YH6Z M_N#9^]FGL[/6P^7U;OS" )=^X!3M'"!ZU=(7JFQ03#X^3'Z?.";=W9:NAVNE M%1,C]@[RM,<2)IPX';7.-SRUSA%RM^4@KYDH+73GW$Y:TX.ZSH;]K!#K(^$#?T0X&TL&K(SDC"]MN V!2<$+Z2E=YSIA")'JR<*A[<$C4.OD M3!32Y+89[.]Q/7P'6/7 (..\,=CV;6#8+XE25(H;W3? %Y-7M^V6I'4XE M68;MCK\FF)M.,BYD2F63)O17H6&?TPSL2#:=P5T590"@4D6N&RDCTT(0XV'% MJ!M:=D(YOX/OA]_9EO8BV]@YL]VB:6I#==/*V [H;ZI9[4W9SIMTO9(]%NK; M7$]'F#Z4-[V5-&,+TU]DC0%,/<3525GRY5?.IB*G=O(')QSVR8KGS0K)GG0V M*)6)#E#I>X]4*C;9C/R5I+RG"[4JIT6&>VZ?H.=_N\Y3*J@D?-.TKOUC7N4W M.XZZ[V79?*OL&G9ZK%_ZQVZR!V[R=XIF#R%[>Z^VS?[ M:TR&1VDRJ(]K&V?"K1-A$_7@Y#WP?\%)GJ^3>N,YXXJ)NC=C:4K%BX.AEE=D MK/\RO VQ/]U4(-E.\$K&9XFL-B'O=@)$D[MW&\@ #VP6L=B"_.P_4 ME)L31;"KF#?L"<:1),$0J$5WC<8QLCHQ?-S[@STE490D;@0PMX,HPA!X&G$$ M

,"2*S'MPYWT4K-Y3P?I_M,-G4$L#!!0 ( &Z,!5F7BKL

-8?20$3;8T.P6BP^0"X99K>]9!:GC7EB+X72;MS;>K^[[/==MA4%=W^;G=!P9FULP3T^?#[:ET5!8%3Q(\>S>SU>';"^=?)1*^M=Q MK_ZN1(\54LM"_A#YN#?H,;X-FQ,/PGJ9'14O*\@5 M?W1UB>>/]QQ QKW1 &ZXEM;Y^HKZ_AP8]P(N;HY*;[Y*Y86=<2^^65/NI-Y4 MMX&GZ >/4@L2N=7,KN+9Z4OCKZ[QY:@^X00SMI803]CJOP>D@I[>+V7RQG,\8 M?%O>WES/)BLXN)K<3!;3.0L@(P0R.B/DOU$ &2.0\5D@EROX^#Y?!) ) IF< M$;(5R12!3,\)&0>0(P1R=$[()(#\@$!^."=D&D!^1" _TD(NN"^M8&;-KDHG MM7 NX/J$<'VBY;KB3KH*Z\X*!Y<>C=H#;-@>T,)]Y=*R!ZY*P;X+[B" U0_" MR U1JQ!KY5[LA2Y%B(/Y8T@LD&_&Y,]2J5K%UU"5>E,1L(ESHATT3"!#8H-, MLLR44(GLCK_R"J^BA4);BIS=R! 34\B0VB%6Y-*SB;40QN-FAXEC2&R.F;!R MSZM\$&K9>5L>T6'&&!(KXUIGIA!LQ5]$BPD3Q)#8$#.YE[G0N6NR5&XUI,O0 M H5ERRVW(2:FB"&Q(Y;>9$];HW)AW1]L_E\)R73(AFEB2.R)&QA_6Q4:86*( MB,4P-44A?=WNZRJ=PK0+JE3H3+8A,3U$Y'K8&>OK,6XI-K]VT@B=:A"K L9> MMJ\[0/USG0DVDRY3IG)L"(F9(B(V!0QNT&LM6UF>0^6>&HLC3!,1L28ZTR?V MYYU1\M>FB"DC(E;&"-:^J-<*]YJ/<3$ M')123WNZ,6&LKT^$F)B#4O)EMO<%^\Z>DV+J28G5@\\=PU$H13?SB=73M73? M'4S,/"FQ>3HI+]B\V"GS*EK#$&:>E-@\;Q/Q*G<_'>L''2USA)EG1#[[.8:LE@^:]#@<*T>8>4;-&W"' MU]YRL99:Y OX"P?E&5?9G6751[-9GZ35GMJZ5&H*9;?ZQO#\\!;=X0W +S\! M4$L#!!0 ( &Z,!5GU29+, 0( %XD : >&PO7W)E;',O=V]R:V)O M;VLN>&UL+G)E;'/-VDMNHT 4A>&M6"P@Y?LB22O.J">91MD @'O0DJC-"!>+RB\$G!#P\YT,W[?M3V>V'LO@X'DYEU>RF:?B54EGO M\K$K-_V03^5\WX M]"I-JAVD$*3U@PR"K'Z00Y#7#PH(BOI!+02U]8-N(>BV?M =!-W5#[J'H/OZ M0;)$&9<$23.L";06Y%H(O!8$6PC$%B1;",P61%L(U!9D6PC<%H1;".06I%L( M[!;$6PCT5M1;"?16U%L)]-;9PS:!WHIZ*X'>BGHK@=Z*>BN!WHIZ*X'>BGHK M@=Z*>BN!WHIZ*X'>AGH;@=Z&>AN!WH9Z&X'>-GM90J"WH=Y&H+>AWD:@MZ'> M1J"WH=Y&H+>AWD:@MZ'>1J"WH]Y.H+>CWDZ@MZ/>3J"WH]Y.H+?/7G83Z.VH MMQ/H[:BW$^CMJ+<3Z.VHMQ/H[:BW$^@=J'<0Z!VH=Q#H':AW$.@=J'<0Z!VH M=Q#H';./E01Z!^H=!'H'ZAT$>@?J'01Z!^H=!'JWJ'=+H'>+>K<_J7>9/@^Y M7'N^UGC]GZ1Z.I^;KY>_++]VSF["!><$OQ,]_@502P,$% @ ;HP%6=9, MP)+@ 0 XR, !, !;0V]N=&5N=%]4>7!E&ULS=K+3L,P$ 707XFR M18WK5WF(L@&VT 4_8)()C9K$EFV@_#U."I5 I:(J$G?3J+4]=^*1SJJ7#V^. M0K;NVC[,\V6,[H*Q4"ZI,Z&PCOJT4EO?F9B^^B?F3+DR3\3$=#ICI>TC]7$2 MAQKYU>4-U>:YC=GM.OT<&MO/^^I8R^4@H MTLEQ3U@V+IRD#3G;F3"L_!SP<>[^A;QO*LH6QL<[TZ5=;-VR$-]:"L7^$CMZ MM'7=E%39\KE+1XK@/)DJ+(EBUQ:;HB?[DV.Z8=I\\J/SQS+[ M/.A;@8V/X^_XZXRW M]0_L0X#T(4'Z4"!]:) ^9B!]G(+T<0;2QSE('WR*T@B*J!R%5(YB*D=!E:.H MRE%8Y2BNNC MM:L_CA^?16>:_C.?C?_MN7H'4$L! A0#% @ ;HP%60=!36*! L0 M ! ( ! &1O8U!R;W!S+V%P<"YX;6Q02P$"% ,4 M" !NC 5982S[&^\ K @ $0 @ &O 9&]C4')O<',O M8V]R92YX;6Q02P$"% ,4 " !NC 59F5R<(Q & "<)P $P M @ '- 0 >&PO=&AE;64O=&AE;64Q+GAM;%!+ 0(4 Q0 ( &Z,!5D3 M^/>WSP4 /\> 8 " @0X( !X;"]W;W)K&PO=V]R:W-H965T&UL4$L! A0#% @ M;HP%67"K]TV> @ . < !@ ("!VA0 'AL+W=O&PO=V]R M:W-H965T&UL4$L! A0#% @ ;HP%6B$ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ;HP%6?D?@4/7! PPH !@ ("! M6#< 'AL+W=O&UL4$L! A0#% @ ;HP%6?HI*BM@!0 *P\ !D M ("!B4, 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ ;HP%69+4%_UT P 3 @ !D ("!%&$ 'AL M+W=O&PO=V]R:W-H965T7) 4(@, *$( 9 " M@75K !X;"]W;W)K&UL4$L! A0#% @ ;HP% M66+K DA/!0 A0P !D ("!SFX 'AL+W=OID$ !]#@ &0 M @(%4= >&PO=V]R:W-H965T&UL4$L! A0#% @ ;HP%64@L!:0V!0 5@T M !D ("!OG\ 'AL+W=OF'R#T# !%!P &0 @($KA0 M>&PO=V]R:W-H965T&UL4$L! A0#% @ ;HP%68M%SJF$ @ OP< !D M ("!"Y$ 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ ;HP%6=TB0G=! P ,PD !D ("!^IP 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ ;HP%6>N$ MR2 Q! +0P !D ("!S*H 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ;HP%62L7580[ P 70D !D M ("!O[4 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ ;HP%66/^W=S# P .@T !D ("! M!L$ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ ;HP%6?2Y,G?+ P #!< !D ("!KLP 'AL+W=O&PO=V]R:W-H965T !X;"]W;W)K&UL4$L! A0#% @ ;HP%6>V7Q[F%"@ >V8 !D M ("!.>$ 'AL+W=O+9 " "\"0 &0 @('UZP >&PO=V]R M:W-H965T&UL M4$L! A0#% @ ;HP%6>A4U';F @ O D !D ("!A?, M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ M;HP%66PIYWN-!@ )3< !D ("!U?T 'AL+W=O&UL4$L! A0#% @ ;HP%6:D.,YX!! M&!, !D ("!H@H! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ;HP%61ZD_42K! L14 !D M ("!'1L! 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ ;HP%66.P>%1F @ \ 4 !D ("!G"D! 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ;HP% M67\R/6QE&PO=V]R:V)O;VLN>&UL4$L! A0#% @ ;HP%6?5) MDLP! @ 7B0 !H ( !HST! 'AL+U]R96QS+W=O XML 74 Show.js IDEA: XBRL DOCUMENT // Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission. Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105. var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0); e.removeAttribute('id');a.parentNode.appendChild(e)}} if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'} e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}} XML 75 report.css IDEA: XBRL DOCUMENT /* Updated 2009-11-04 */ /* v2.2.0.24 */ /* DefRef Styles */ ..report table.authRefData{ background-color: #def; border: 2px solid #2F4497; font-size: 1em; position: absolute; } ..report table.authRefData a { display: block; font-weight: bold; } ..report table.authRefData p { margin-top: 0px; } ..report table.authRefData .hide { background-color: #2F4497; padding: 1px 3px 0px 0px; text-align: right; } ..report table.authRefData .hide a:hover { background-color: #2F4497; } ..report table.authRefData .body { height: 150px; overflow: auto; width: 400px; } ..report table.authRefData table{ font-size: 1em; } /* Report Styles */ ..pl a, .pl a:visited { color: black; text-decoration: none; } /* table */ ..report { background-color: white; border: 2px solid #acf; clear: both; color: black; font: normal 8pt Helvetica, Arial, san-serif; margin-bottom: 2em; } ..report hr { border: 1px solid #acf; } /* Top labels */ ..report th { background-color: #acf; color: black; font-weight: bold; text-align: center; } ..report th.void { background-color: transparent; color: #000000; font: bold 10pt Helvetica, Arial, san-serif; text-align: left; } ..report .pl { text-align: left; vertical-align: top; white-space: normal; width: 200px; white-space: normal; /* word-wrap: break-word; */ } ..report td.pl a.a { cursor: pointer; display: block; width: 200px; overflow: hidden; } ..report td.pl div.a { width: 200px; } ..report td.pl a:hover { background-color: #ffc; } /* Header rows... */ ..report tr.rh { background-color: #acf; color: black; font-weight: bold; } /* Calendars... */ ..report .rc { background-color: #f0f0f0; } /* Even rows... */ ..report .re, .report .reu { background-color: #def; } ..report .reu td { border-bottom: 1px solid black; } /* Odd rows... */ ..report .ro, .report .rou { background-color: white; } ..report .rou td { border-bottom: 1px solid black; } ..report .rou table td, .report .reu table td { border-bottom: 0px solid black; } /* styles for footnote marker */ ..report .fn { white-space: nowrap; } /* styles for numeric types */ ..report .num, .report .nump { text-align: right; white-space: nowrap; } ..report .nump { padding-left: 2em; } ..report .nump { padding: 0px 0.4em 0px 2em; } /* styles for text types */ ..report .text { text-align: left; white-space: normal; } ..report .text .big { margin-bottom: 1em; width: 17em; } ..report .text .more { display: none; } ..report .text .note { font-style: italic; font-weight: bold; } ..report .text .small { width: 10em; } ..report sup { font-style: italic; } ..report .outerFootnotes { font-size: 1em; } XML 77 FilingSummary.xml IDEA: XBRL DOCUMENT 3.24.2.u1 html 220 251 1 false 49 0 false 7 false false R1.htm 995200090 - Document - Document and Entity Information Sheet http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation Document and Entity Information Cover 1 false false R2.htm 995200100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS Sheet http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets CONDENSED CONSOLIDATED BALANCE SHEETS Statements 2 false false R3.htm 995200105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical) Sheet http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical) Statements 3 false false R4.htm 995200200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF INCOME Sheet http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome CONDENSED CONSOLIDATED STATEMENTS OF INCOME Statements 4 false false R5.htm 995200300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME Sheet http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME Statements 5 false false R6.htm 995200400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY Sheet http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY Statements 6 false false R7.htm 995200405 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical) Sheet http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityParenthetical CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical) Statements 7 false false R8.htm 995200500 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS Sheet http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS Statements 8 false false R9.htm 995210101 - Disclosure - Nature of Business Sheet http://www.primoriscorp.com/role/DisclosureNatureOfBusiness Nature of Business Notes 9 false false R10.htm 995210201 - Disclosure - Basis of Presentation Sheet http://www.primoriscorp.com/role/DisclosureBasisOfPresentation Basis of Presentation Notes 10 false false R11.htm 995210301 - Disclosure - Fair Value Measurements Sheet http://www.primoriscorp.com/role/DisclosureFairValueMeasurements Fair Value Measurements Notes 11 false false R12.htm 995210401 - Disclosure - Revenue Sheet http://www.primoriscorp.com/role/DisclosureRevenue Revenue Notes 12 false false R13.htm 995210501 - Disclosure - Goodwill and Intangible Assets Sheet http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssets Goodwill and Intangible Assets Notes 13 false false R14.htm 995210601 - Disclosure - Accounts Payable and Accrued Liabilities Sheet http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilities Accounts Payable and Accrued Liabilities Notes 14 false false R15.htm 995210701 - Disclosure - Credit Arrangements Sheet http://www.primoriscorp.com/role/DisclosureCreditArrangements Credit Arrangements Notes 15 false false R16.htm 995210801 - Disclosure - Derivative Instruments Sheet http://www.primoriscorp.com/role/DisclosureDerivativeInstruments Derivative Instruments Notes 16 false false R17.htm 995210901 - Disclosure - Income Taxes Sheet http://www.primoriscorp.com/role/DisclosureIncomeTaxes Income Taxes Notes 17 false false R18.htm 995211001 - Disclosure - Dividends and Earnings Per Share Sheet http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShare Dividends and Earnings Per Share Notes 18 false false R19.htm 995211101 - Disclosure - Stockholders' Equity Sheet http://www.primoriscorp.com/role/DisclosureStockholdersEquity Stockholders' Equity Notes 19 false false R20.htm 995211201 - Disclosure - Leases Sheet http://www.primoriscorp.com/role/DisclosureLeases Leases Notes 20 false false R21.htm 995211301 - Disclosure - Commitments and Contingencies Sheet http://www.primoriscorp.com/role/DisclosureCommitmentsAndContingencies Commitments and Contingencies Notes 21 false false R22.htm 995211401 - Disclosure - Reportable Segments Sheet http://www.primoriscorp.com/role/DisclosureReportableSegments Reportable Segments Notes 22 false false R23.htm 995410 - Disclosure - Pay vs Performance Disclosure Sheet http://xbrl.sec.gov/ecd/role/PvpDisclosure Pay vs Performance Disclosure Notes 23 false false R24.htm 995445 - Disclosure - Insider Trading Arrangements Sheet http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements Insider Trading Arrangements Notes 24 false false R25.htm 99920202 - Disclosure - Basis of Presentation (Policies) Sheet http://www.primoriscorp.com/role/DisclosureBasisOfPresentationPolicies Basis of Presentation (Policies) Policies 25 false false R26.htm 99930203 - Disclosure - Basis of Presentation (Tables) Sheet http://www.primoriscorp.com/role/DisclosureBasisOfPresentationTables Basis of Presentation (Tables) Tables http://www.primoriscorp.com/role/DisclosureBasisOfPresentation 26 false false R27.htm 99930303 - Disclosure - Fair Value Measurements (Tables) Sheet http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsTables Fair Value Measurements (Tables) Tables http://www.primoriscorp.com/role/DisclosureFairValueMeasurements 27 false false R28.htm 99930403 - Disclosure - Revenue (Tables) Sheet http://www.primoriscorp.com/role/DisclosureRevenueTables Revenue (Tables) Tables http://www.primoriscorp.com/role/DisclosureRevenue 28 false false R29.htm 99930503 - Disclosure - Goodwill and Intangible Assets (Tables) Sheet http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsTables Goodwill and Intangible Assets (Tables) Tables http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssets 29 false false R30.htm 99930603 - Disclosure - Accounts Payable and Accrued Liabilities (Tables) Sheet http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilitiesTables Accounts Payable and Accrued Liabilities (Tables) Tables http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilities 30 false false R31.htm 99930703 - Disclosure - Credit Arrangements (Tables) Sheet http://www.primoriscorp.com/role/DisclosureCreditArrangementsTables Credit Arrangements (Tables) Tables http://www.primoriscorp.com/role/DisclosureCreditArrangements 31 false false R32.htm 99930803 - Disclosure - Derivative Instruments (Tables) Sheet http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsTables Derivative Instruments (Tables) Tables http://www.primoriscorp.com/role/DisclosureDerivativeInstruments 32 false false R33.htm 99931003 - Disclosure - Dividends and Earnings Per Share (Tables) Sheet http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareTables Dividends and Earnings Per Share (Tables) Tables http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShare 33 false false R34.htm 99931203 - Disclosure - Leases (Tables) Sheet http://www.primoriscorp.com/role/DisclosureLeasesTables Leases (Tables) Tables http://www.primoriscorp.com/role/DisclosureLeases 34 false false R35.htm 99931403 - Disclosure - Reportable Segments (Tables) Sheet http://www.primoriscorp.com/role/DisclosureReportableSegmentsTables Reportable Segments (Tables) Tables http://www.primoriscorp.com/role/DisclosureReportableSegments 35 false false R36.htm 99940201 - Disclosure - Basis of Presentation - Restricted Cash (Details) Sheet http://www.primoriscorp.com/role/DisclosureBasisOfPresentationRestrictedCashDetails Basis of Presentation - Restricted Cash (Details) Details 36 false false R37.htm 99940202 - Disclosure - Basis of Presentation - Accounts Receivable Securitization Facility (Details) Sheet http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails Basis of Presentation - Accounts Receivable Securitization Facility (Details) Details 37 false false R38.htm 99940203 - Disclosure - Basis of Presentation - Customer concentration (Details) Sheet http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails Basis of Presentation - Customer concentration (Details) Details 38 false false R39.htm 99940301 - Disclosure - Fair Value Measurements (Details) Sheet http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails Fair Value Measurements (Details) Details http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsTables 39 false false R40.htm 99940401 - Disclosure - Revenue - Performance obligations (Details) Sheet http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetails Revenue - Performance obligations (Details) Details 40 false false R41.htm 99940402 - Disclosure - Revenue - Performance obligations - Details (Details) Sheet http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetailsDetails Revenue - Performance obligations - Details (Details) Details 41 false false R42.htm 99940403 - Disclosure - Revenue - Contract assets (Details) Sheet http://www.primoriscorp.com/role/DisclosureRevenueContractAssetsDetails Revenue - Contract assets (Details) Details 42 false false R43.htm 99940404 - Disclosure - Revenue - Contract liabilities (Details) Sheet http://www.primoriscorp.com/role/DisclosureRevenueContractLiabilitiesDetails Revenue - Contract liabilities (Details) Details 43 false false R44.htm 99940405 - Disclosure - Revenue - Disaggregation of revenue by customer type and contract type (Details) Sheet http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails Revenue - Disaggregation of revenue by customer type and contract type (Details) Details 44 false false R45.htm 99940501 - Disclosure - Goodwill and Intangible Assets - Goodwill (Details) Sheet http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsGoodwillDetails Goodwill and Intangible Assets - Goodwill (Details) Details 45 false false R46.htm 99940502 - Disclosure - Goodwill and Intangible Assets - Intangible Assets (Details) Sheet http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails Goodwill and Intangible Assets - Intangible Assets (Details) Details 46 false false R47.htm 99940503 - Disclosure - Goodwill and Intangible Assets - Future Amortization (Details) Sheet http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsFutureAmortizationDetails Goodwill and Intangible Assets - Future Amortization (Details) Details 47 false false R48.htm 99940601 - Disclosure - Accounts Payable and Accrued Liabilities (Details) Sheet http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilitiesDetails Accounts Payable and Accrued Liabilities (Details) Details http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilitiesTables 48 false false R49.htm 99940701 - Disclosure - Credit Arrangements (Details) Sheet http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails Credit Arrangements (Details) Details http://www.primoriscorp.com/role/DisclosureCreditArrangementsTables 49 false false R50.htm 99940702 - Disclosure - Credit Arrangements - Narratives (Details) Sheet http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails Credit Arrangements - Narratives (Details) Details 50 false false R51.htm 99940703 - Disclosure - Credit Arrangements- Canadian Credit Facilities (Details) Sheet http://www.primoriscorp.com/role/DisclosureCreditArrangementsCanadianCreditFacilitiesDetails Credit Arrangements- Canadian Credit Facilities (Details) Details 51 false false R52.htm 99940801 - Disclosure - Derivative Instruments (Details) Sheet http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDetails Derivative Instruments (Details) Details http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsTables 52 false false R53.htm 99940802 - Disclosure - Derivative Instruments - Derivative contract and instruments (Details) Sheet http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDerivativeContractAndInstrumentsDetails Derivative Instruments - Derivative contract and instruments (Details) Details 53 false false R54.htm 99940901 - Disclosure - Income Taxes (Details) Sheet http://www.primoriscorp.com/role/DisclosureIncomeTaxesDetails Income Taxes (Details) Details http://www.primoriscorp.com/role/DisclosureIncomeTaxes 54 false false R55.htm 99941001 - Disclosure - Dividends and Earnings Per Share (Details) Sheet http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails Dividends and Earnings Per Share (Details) Details http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareTables 55 false false R56.htm 99941101 - Disclosure - Stockholders' Equity (Details) Sheet http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails Stockholders' Equity (Details) Details http://www.primoriscorp.com/role/DisclosureStockholdersEquity 56 false false R57.htm 99941102 - Disclosure - Stockholders' Equity - Employee Stock Purchase Plan, Secondary Offering & Share Purchase Plan (Details) Sheet http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails Stockholders' Equity - Employee Stock Purchase Plan, Secondary Offering & Share Purchase Plan (Details) Details 57 false false R58.htm 99941201 - Disclosure - Leases - Components of Lease Expense and Operating Lease Liabilities (Details) Sheet http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails Leases - Components of Lease Expense and Operating Lease Liabilities (Details) Details 58 false false R59.htm 99941301 - Disclosure - Commitments and Contingencies - Legal (Details) Sheet http://www.primoriscorp.com/role/DisclosureCommitmentsAndContingenciesLegalDetails Commitments and Contingencies - Legal (Details) Details 59 false false R60.htm 99941401 - Disclosure - Reportable Segments (Details) Sheet http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails Reportable Segments (Details) Details http://www.primoriscorp.com/role/DisclosureReportableSegmentsTables 60 false false R61.htm 99941402 - Disclosure - Reportable Segments - Revenue and Total Assets by Geographic Area (Details) Sheet http://www.primoriscorp.com/role/DisclosureReportableSegmentsRevenueAndTotalAssetsByGeographicAreaDetails Reportable Segments - Revenue and Total Assets by Geographic Area (Details) Details 61 false false All Reports Book All Reports prim-20240630.xsd prim-20240630_cal.xml prim-20240630_def.xml prim-20240630_lab.xml prim-20240630_pre.xml prim-20240630x10q.htm http://fasb.org/srt/2024 http://fasb.org/us-gaap/2024 http://xbrl.sec.gov/dei/2024 http://xbrl.sec.gov/ecd/2024 true true JSON 80 MetaLinks.json IDEA: XBRL DOCUMENT { "version": "2.2", "instance": { "prim-20240630x10q.htm": { "nsprefix": "prim", "nsuri": "http://www.primoriscorp.com/20240630", "dts": { "schema": { "local": [ "prim-20240630.xsd" ], "remote": [ "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd", "http://www.xbrl.org/2003/xl-2003-12-31.xsd", "http://www.xbrl.org/2003/xlink-2003-12-31.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd", "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd", "https://www.xbrl.org/2023/calculation-1.1.xsd", "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd", "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd", "https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd", "https://xbrl.fasb.org/srt/2024/elts/srt-roles-2024.xsd", "https://xbrl.fasb.org/srt/2024/elts/srt-types-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-types-2024.xsd", "https://xbrl.sec.gov/country/2024/country-2024.xsd", "https://xbrl.sec.gov/dei/2024/dei-2024.xsd", "https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd", "https://xbrl.sec.gov/ecd/2024/ecd-sub-2024.xsd", "https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd" ] }, "calculationLink": { "local": [ "prim-20240630_cal.xml" ] }, "definitionLink": { "local": [ "prim-20240630_def.xml" ] }, "labelLink": { "local": [ "prim-20240630_lab.xml" ] }, "presentationLink": { "local": [ "prim-20240630_pre.xml" ] }, "inline": { "local": [ "prim-20240630x10q.htm" ] } }, "keyStandard": 220, "keyCustom": 31, "axisStandard": 22, "axisCustom": 0, "memberStandard": 26, "memberCustom": 23, "hidden": { "total": 19, "http://fasb.org/us-gaap/2024": 14, "http://xbrl.sec.gov/dei/2024": 5 }, "contextCount": 220, "entityCount": 1, "segmentCount": 49, "elementCount": 517, "unitCount": 7, "baseTaxonomies": { "http://fasb.org/us-gaap/2024": 712, "http://xbrl.sec.gov/dei/2024": 29, "http://xbrl.sec.gov/ecd/2024": 4, "http://fasb.org/srt/2024": 2 }, "report": { "R1": { "role": "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation", "longName": "995200090 - Document - Document and Entity Information", "shortName": "Document and Entity Information", "isDefault": "true", "groupType": "document", "subGroupType": "", "menuCat": "Cover", "order": "1", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R2": { "role": "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets", "longName": "995200100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS", "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "2", "firstAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:ReceivablesNetCurrent", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R3": { "role": "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical", "longName": "995200105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)", "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)", "isDefault": "false", "groupType": "statement", "subGroupType": "parenthetical", "menuCat": "Statements", "order": "3", "firstAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:CommonStockParOrStatedValuePerShare", "unitRef": "Unit_Divide_USD_shares_val5JkjZNkmAsLaNdhrEEg", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:CommonStockSharesAuthorized", "unitRef": "Unit_Standard_shares_KSptvEhGvkyh36I5TGkeRQ", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R4": { "role": "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome", "longName": "995200200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF INCOME", "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF INCOME", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "4", "firstAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "us-gaap:CostOfGoodsAndServicesSold", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R5": { "role": "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome", "longName": "995200300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME", "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "5", "firstAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "us-gaap:NetIncomeLoss", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "us-gaap:ComprehensiveIncomeNetOfTax", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R6": { "role": "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity", "longName": "995200400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY", "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "6", "firstAnchor": { "contextRef": "As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_k0Lphtc7b0ivAfSgyToepQ", "name": "us-gaap:StockholdersEquity", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2022_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_k0Lphtc7b0ivAfSgyToepQ", "name": "us-gaap:StockholdersEquity", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R7": { "role": "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityParenthetical", "longName": "995200405 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical)", "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (Parenthetical)", "isDefault": "false", "groupType": "statement", "subGroupType": "parenthetical", "menuCat": "Statements", "order": "7", "firstAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "us-gaap:CommonStockDividendsPerShareDeclared", "unitRef": "Unit_Divide_USD_shares_val5JkjZNkmAsLaNdhrEEg", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": null }, "R8": { "role": "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows", "longName": "995200500 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS", "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "8", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ProfitLoss", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:DepreciationDepletionAndAmortization", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R9": { "role": "http://www.primoriscorp.com/role/DisclosureNatureOfBusiness", "longName": "995210101 - Disclosure - Nature of Business", "shortName": "Nature of Business", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "9", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:NatureOfOperations", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:NatureOfOperations", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R10": { "role": "http://www.primoriscorp.com/role/DisclosureBasisOfPresentation", "longName": "995210201 - Disclosure - Basis of Presentation", "shortName": "Basis of Presentation", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "10", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R11": { "role": "http://www.primoriscorp.com/role/DisclosureFairValueMeasurements", "longName": "995210301 - Disclosure - Fair Value Measurements", "shortName": "Fair Value Measurements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "11", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:FairValueDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:FairValueDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R12": { "role": "http://www.primoriscorp.com/role/DisclosureRevenue", "longName": "995210401 - Disclosure - Revenue", "shortName": "Revenue", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "12", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R13": { "role": "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssets", "longName": "995210501 - Disclosure - Goodwill and Intangible Assets", "shortName": "Goodwill and Intangible Assets", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "13", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R14": { "role": "http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilities", "longName": "995210601 - Disclosure - Accounts Payable and Accrued Liabilities", "shortName": "Accounts Payable and Accrued Liabilities", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "14", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R15": { "role": "http://www.primoriscorp.com/role/DisclosureCreditArrangements", "longName": "995210701 - Disclosure - Credit Arrangements", "shortName": "Credit Arrangements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "15", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:DebtDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:DebtDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R16": { "role": "http://www.primoriscorp.com/role/DisclosureDerivativeInstruments", "longName": "995210801 - Disclosure - Derivative Instruments", "shortName": "Derivative Instruments", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "16", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R17": { "role": "http://www.primoriscorp.com/role/DisclosureIncomeTaxes", "longName": "995210901 - Disclosure - Income Taxes", "shortName": "Income Taxes", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "17", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R18": { "role": "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShare", "longName": "995211001 - Disclosure - Dividends and Earnings Per Share", "shortName": "Dividends and Earnings Per Share", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "18", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "prim:DividendsAndEarningsPerShareDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "prim:DividendsAndEarningsPerShareDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R19": { "role": "http://www.primoriscorp.com/role/DisclosureStockholdersEquity", "longName": "995211101 - Disclosure - Stockholders' Equity", "shortName": "Stockholders' Equity", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "19", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R20": { "role": "http://www.primoriscorp.com/role/DisclosureLeases", "longName": "995211201 - Disclosure - Leases", "shortName": "Leases", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "20", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R21": { "role": "http://www.primoriscorp.com/role/DisclosureCommitmentsAndContingencies", "longName": "995211301 - Disclosure - Commitments and Contingencies", "shortName": "Commitments and Contingencies", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "21", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R22": { "role": "http://www.primoriscorp.com/role/DisclosureReportableSegments", "longName": "995211401 - Disclosure - Reportable Segments", "shortName": "Reportable Segments", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "22", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R23": { "role": "http://xbrl.sec.gov/ecd/role/PvpDisclosure", "longName": "995410 - Disclosure - Pay vs Performance Disclosure", "shortName": "Pay vs Performance Disclosure", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "23", "firstAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "us-gaap:NetIncomeLoss", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": null }, "R24": { "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "longName": "995445 - Disclosure - Insider Trading Arrangements", "shortName": "Insider Trading Arrangements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "24", "firstAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "ecd:Rule10b51ArrAdoptedFlag", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ecd:NonRule10b51ArrAdoptedFlag", "p", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "ecd:Rule10b51ArrAdoptedFlag", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ecd:NonRule10b51ArrAdoptedFlag", "p", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R25": { "role": "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationPolicies", "longName": "99920202 - Disclosure - Basis of Presentation (Policies)", "shortName": "Basis of Presentation (Policies)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "policies", "menuCat": "Policies", "order": "25", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:PriorPeriodReclassificationAdjustmentDescription", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:PriorPeriodReclassificationAdjustmentDescription", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R26": { "role": "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationTables", "longName": "99930203 - Disclosure - Basis of Presentation (Tables)", "shortName": "Basis of Presentation (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "26", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ScheduleOfRestrictedCashAndCashEquivalentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ScheduleOfRestrictedCashAndCashEquivalentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R27": { "role": "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsTables", "longName": "99930303 - Disclosure - Fair Value Measurements (Tables)", "shortName": "Fair Value Measurements (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "27", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R28": { "role": "http://www.primoriscorp.com/role/DisclosureRevenueTables", "longName": "99930403 - Disclosure - Revenue (Tables)", "shortName": "Revenue (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "28", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "prim:ContractWithCustomerAssetTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "prim:ContractWithCustomerAssetTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R29": { "role": "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsTables", "longName": "99930503 - Disclosure - Goodwill and Intangible Assets (Tables)", "shortName": "Goodwill and Intangible Assets (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "29", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R30": { "role": "http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilitiesTables", "longName": "99930603 - Disclosure - Accounts Payable and Accrued Liabilities (Tables)", "shortName": "Accounts Payable and Accrued Liabilities (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "30", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R31": { "role": "http://www.primoriscorp.com/role/DisclosureCreditArrangementsTables", "longName": "99930703 - Disclosure - Credit Arrangements (Tables)", "shortName": "Credit Arrangements (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "31", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ScheduleOfDebtInstrumentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ScheduleOfDebtInstrumentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R32": { "role": "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsTables", "longName": "99930803 - Disclosure - Derivative Instruments (Tables)", "shortName": "Derivative Instruments (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "32", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R33": { "role": "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareTables", "longName": "99931003 - Disclosure - Dividends and Earnings Per Share (Tables)", "shortName": "Dividends and Earnings Per Share (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "33", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:DividendsDeclaredTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "prim:DividendsAndEarningsPerShareDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:DividendsDeclaredTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "prim:DividendsAndEarningsPerShareDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R34": { "role": "http://www.primoriscorp.com/role/DisclosureLeasesTables", "longName": "99931203 - Disclosure - Leases (Tables)", "shortName": "Leases (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "34", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:LeaseCostTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:LeaseCostTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R35": { "role": "http://www.primoriscorp.com/role/DisclosureReportableSegmentsTables", "longName": "99931403 - Disclosure - Reportable Segments (Tables)", "shortName": "Reportable Segments (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "35", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R36": { "role": "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationRestrictedCashDetails", "longName": "99940201 - Disclosure - Basis of Presentation - Restricted Cash (Details)", "shortName": "Basis of Presentation - Restricted Cash (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "36", "firstAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_6_30_2023_FGF3cg3u60SeomMFGAlLeA", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "ix:continuation", "us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R37": { "role": "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails", "longName": "99940202 - Disclosure - Basis of Presentation - Accounts Receivable Securitization Facility (Details)", "shortName": "Basis of Presentation - Accounts Receivable Securitization Facility (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "37", "firstAnchor": { "contextRef": "Duration_7_1_2024_To_7_31_2024_Z-KkX3phSEm7kAdQHRzx1Q", "name": "prim:AccountsReceivableSecuritizationTerm", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "prim:AccountsReceivableSecuritizationFacilityPolicyPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_7_1_2024_To_7_31_2024_Z-KkX3phSEm7kAdQHRzx1Q", "name": "prim:AccountsReceivableSecuritizationTerm", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "prim:AccountsReceivableSecuritizationFacilityPolicyPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R38": { "role": "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails", "longName": "99940203 - Disclosure - Basis of Presentation - Customer concentration (Details)", "shortName": "Basis of Presentation - Customer concentration (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "38", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "prim:ConcentrationRiskNumberOfTopCustomers", "unitRef": "Unit_Standard_customer_8R4aSleUxUS4faEz2zqj-A", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "prim:ConcentrationRiskNumberOfTopCustomers", "p", "us-gaap:ConcentrationRiskCreditRisk", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "prim:ConcentrationRiskNumberOfTopCustomers", "unitRef": "Unit_Standard_customer_8R4aSleUxUS4faEz2zqj-A", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "prim:ConcentrationRiskNumberOfTopCustomers", "p", "us-gaap:ConcentrationRiskCreditRisk", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R39": { "role": "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails", "longName": "99940301 - Disclosure - Fair Value Measurements (Details)", "shortName": "Fair Value Measurements (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "39", "firstAnchor": { "contextRef": "As_Of_6_30_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_G_vCYk3ALkGeyiCPVw4XXQ", "name": "us-gaap:CashAndCashEquivalentsFairValueDisclosure", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_6_30_2024_us-gaap_FairValueByFairValueHierarchyLevelAxis_us-gaap_FairValueInputsLevel1Member_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_G_vCYk3ALkGeyiCPVw4XXQ", "name": "us-gaap:CashAndCashEquivalentsFairValueDisclosure", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R40": { "role": "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetails", "longName": "99940401 - Disclosure - Revenue - Performance obligations (Details)", "shortName": "Revenue - Performance obligations (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "40", "firstAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "us-gaap:ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R41": { "role": "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetailsDetails", "longName": "99940402 - Disclosure - Revenue - Performance obligations - Details (Details)", "shortName": "Revenue - Performance obligations - Details (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "41", "firstAnchor": { "contextRef": "As_Of_6_30_2024_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_prim_cnst_date_20240701_ZmxPhqhAK02UOjIoRBmjWg", "name": "us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_6_30_2024_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_prim_cnst_date_20240701_ZmxPhqhAK02UOjIoRBmjWg", "name": "us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R42": { "role": "http://www.primoriscorp.com/role/DisclosureRevenueContractAssetsDetails", "longName": "99940403 - Disclosure - Revenue - Contract assets (Details)", "shortName": "Revenue - Contract assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "42", "firstAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:UnbilledReceivablesCurrent", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "prim:ContractWithCustomerAssetTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:UnbilledReceivablesCurrent", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "prim:ContractWithCustomerAssetTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R43": { "role": "http://www.primoriscorp.com/role/DisclosureRevenueContractLiabilitiesDetails", "longName": "99940404 - Disclosure - Revenue - Contract liabilities (Details)", "shortName": "Revenue - Contract liabilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "43", "firstAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "prim:ContractWithCustomerLiabilityDeferredRevenueCurrent", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "prim:ContractWithCustomerLiabilityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "prim:ContractWithCustomerLiabilityDeferredRevenueCurrent", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "prim:ContractWithCustomerLiabilityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R44": { "role": "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails", "longName": "99940405 - Disclosure - Revenue - Disaggregation of revenue by customer type and contract type (Details)", "shortName": "Revenue - Disaggregation of revenue by customer type and contract type (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "44", "firstAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_us-gaap_ContractWithCustomerBasisOfPricingAxis_us-gaap_FixedPriceContractMember_WrZetw_OqEaaYPyEWDguSw", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R45": { "role": "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsGoodwillDetails", "longName": "99940501 - Disclosure - Goodwill and Intangible Assets - Goodwill (Details)", "shortName": "Goodwill and Intangible Assets - Goodwill (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "45", "firstAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:Goodwill", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_6_30_2024_us-gaap_StatementBusinessSegmentsAxis_prim_UAndDSegmentMember_O37cw4cjC0iuT-21rZdHmw", "name": "us-gaap:Goodwill", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfGoodwillTextBlock", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R46": { "role": "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails", "longName": "99940502 - Disclosure - Goodwill and Intangible Assets - Intangible Assets (Details)", "shortName": "Goodwill and Intangible Assets - Intangible Assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "46", "firstAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_okQm4ChenUqMp3XxbZgXiw", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R47": { "role": "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsFutureAmortizationDetails", "longName": "99940503 - Disclosure - Goodwill and Intangible Assets - Future Amortization (Details)", "shortName": "Goodwill and Intangible Assets - Future Amortization (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "47", "firstAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "ix:continuation", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "ix:continuation", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R48": { "role": "http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilitiesDetails", "longName": "99940601 - Disclosure - Accounts Payable and Accrued Liabilities (Details)", "shortName": "Accounts Payable and Accrued Liabilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "48", "firstAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "prim:ContractWithCustomerAccountsPayableDueToSubcontractors", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "prim:ContractWithCustomerAccountsPayableDueToSubcontractors", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R49": { "role": "http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails", "longName": "99940701 - Disclosure - Credit Arrangements (Details)", "shortName": "Credit Arrangements (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "49", "firstAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:DebtInstrumentCarryingAmount", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtInstrumentsTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:DebtInstrumentCarryingAmount", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtInstrumentsTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R50": { "role": "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails", "longName": "99940702 - Disclosure - Credit Arrangements - Narratives (Details)", "shortName": "Credit Arrangements - Narratives (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "50", "firstAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:DebtWeightedAverageInterestRate", "unitRef": "Unit_Standard_pure_b9E33fOAZkGR6_X7AlZOCw", "xsiNil": "false", "lang": null, "decimals": "3", "ancestors": [ "p", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:DebtWeightedAverageInterestRate", "unitRef": "Unit_Standard_pure_b9E33fOAZkGR6_X7AlZOCw", "xsiNil": "false", "lang": null, "decimals": "3", "ancestors": [ "p", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R51": { "role": "http://www.primoriscorp.com/role/DisclosureCreditArrangementsCanadianCreditFacilitiesDetails", "longName": "99940703 - Disclosure - Credit Arrangements- Canadian Credit Facilities (Details)", "shortName": "Credit Arrangements- Canadian Credit Facilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "51", "firstAnchor": { "contextRef": "As_Of_6_30_2024_us-gaap_LongtermDebtTypeAxis_prim_CreditFacilityWithCanadianBankMember__yVuiI_wP0egXilIGEt0dw", "name": "us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity", "unitRef": "Unit_Standard_CAD_drCe4DThkEqvycjhIheQCw", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_6_30_2024_us-gaap_LongtermDebtTypeAxis_prim_CreditFacilityWithCanadianBankMember__yVuiI_wP0egXilIGEt0dw", "name": "us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity", "unitRef": "Unit_Standard_CAD_drCe4DThkEqvycjhIheQCw", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R52": { "role": "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDetails", "longName": "99940801 - Disclosure - Derivative Instruments (Details)", "shortName": "Derivative Instruments (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "52", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "prim:NumberOfInstrumentsUsedForTrading", "unitRef": "Unit_Standard_instrument_fVFp_8oMNk-WO-lKXdl35Q", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "prim:NumberOfInstrumentsUsedForTrading", "unitRef": "Unit_Standard_instrument_fVFp_8oMNk-WO-lKXdl35Q", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R53": { "role": "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDerivativeContractAndInstrumentsDetails", "longName": "99940802 - Disclosure - Derivative Instruments - Derivative contract and instruments (Details)", "shortName": "Derivative Instruments - Derivative contract and instruments (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "53", "firstAnchor": { "contextRef": "As_Of_6_30_2024_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_yDueAwpYNUKielaJQBcuMw", "name": "us-gaap:DerivativeAssetsCurrent", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2023_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_LpSQVDfFek2kXl9HXd7PMA", "name": "us-gaap:DerivativeAssetsNoncurrent", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDerivativeAssetsAtFairValueTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R54": { "role": "http://www.primoriscorp.com/role/DisclosureIncomeTaxesDetails", "longName": "99940901 - Disclosure - Income Taxes (Details)", "shortName": "Income Taxes (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "54", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "unitRef": "Unit_Standard_pure_b9E33fOAZkGR6_X7AlZOCw", "xsiNil": "false", "lang": null, "decimals": "3", "ancestors": [ "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "unitRef": "Unit_Standard_pure_b9E33fOAZkGR6_X7AlZOCw", "xsiNil": "false", "lang": null, "decimals": "3", "ancestors": [ "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R55": { "role": "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails", "longName": "99941001 - Disclosure - Dividends and Earnings Per Share (Details)", "shortName": "Dividends and Earnings Per Share (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "55", "firstAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "us-gaap:CommonStockDividendsPerShareDeclared", "unitRef": "Unit_Divide_USD_shares_val5JkjZNkmAsLaNdhrEEg", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "unitRef": "Unit_Standard_shares_KSptvEhGvkyh36I5TGkeRQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "prim:DividendsAndEarningsPerShareDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R56": { "role": "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails", "longName": "99941101 - Disclosure - Stockholders' Equity (Details)", "shortName": "Stockholders' Equity (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "56", "firstAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_us-gaap_AwardTypeAxis_prim_RestrictedAndPerformanceStockUnitsMember_C5tp4JvhbUGmJWbSvXnF6Q", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised", "unitRef": "Unit_Standard_shares_KSptvEhGvkyh36I5TGkeRQ", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_us-gaap_AwardTypeAxis_prim_RestrictedAndPerformanceStockUnitsMember_C5tp4JvhbUGmJWbSvXnF6Q", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised", "unitRef": "Unit_Standard_shares_KSptvEhGvkyh36I5TGkeRQ", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R57": { "role": "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails", "longName": "99941102 - Disclosure - Stockholders' Equity - Employee Stock Purchase Plan, Secondary Offering & Share Purchase Plan (Details)", "shortName": "Stockholders' Equity - Employee Stock Purchase Plan, Secondary Offering & Share Purchase Plan (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "57", "firstAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "us-gaap:CommonStockParOrStatedValuePerShare", "unitRef": "Unit_Divide_USD_shares_val5JkjZNkmAsLaNdhrEEg", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_11_30_2023_zo3HZQF7vE2XK_iymGhDnA", "name": "srt:StockRepurchaseProgramAuthorizedAmount1", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R58": { "role": "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails", "longName": "99941201 - Disclosure - Leases - Components of Lease Expense and Operating Lease Liabilities (Details)", "shortName": "Leases - Components of Lease Expense and Operating Lease Liabilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "58", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_5xhpeCfKr0mfStjPqHA9rQ", "name": "us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "us-gaap:OperatingLeaseCost", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R59": { "role": "http://www.primoriscorp.com/role/DisclosureCommitmentsAndContingenciesLegalDetails", "longName": "99941301 - Disclosure - Commitments and Contingencies - Legal (Details)", "shortName": "Commitments and Contingencies - Legal (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "59", "firstAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "prim:BondsIssuedAndOutstanding", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-8", "ancestors": [ "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_6_30_2024_NemaRWfeeU22mjChIro0jw", "name": "prim:BondsIssuedAndOutstanding", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-8", "ancestors": [ "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } }, "R60": { "role": "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails", "longName": "99941401 - Disclosure - Reportable Segments (Details)", "shortName": "Reportable Segments (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "60", "firstAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "unitRef": "Unit_Standard_USD_F5w9nHxLB06O-4qOBW1YVQ", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_4_1_2024_To_6_30_2024_KmJ5RrNAtUWIcZCN8cVnTw", "name": "prim:GrossProfitAsPercentageOfSegmentRevenue", "unitRef": "Unit_Standard_pure_b9E33fOAZkGR6_X7AlZOCw", "xsiNil": "false", "lang": null, "decimals": "3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "unique": true } }, "R61": { "role": "http://www.primoriscorp.com/role/DisclosureReportableSegmentsRevenueAndTotalAssetsByGeographicAreaDetails", "longName": "99941402 - Disclosure - Reportable Segments - Revenue and Total Assets by Geographic Area (Details)", "shortName": "Reportable Segments - Revenue and Total Assets by Geographic Area (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "61", "firstAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_srt_StatementGeographicalAxis_prim_NonUnitedStatesMember_LOS6jNGPBEeGY0UCupoE0g", "name": "prim:RevenuePercentage", "unitRef": "Unit_Standard_pure_b9E33fOAZkGR6_X7AlZOCw", "xsiNil": "false", "lang": null, "decimals": "3", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2024_To_6_30_2024_srt_StatementGeographicalAxis_prim_NonUnitedStatesMember_LOS6jNGPBEeGY0UCupoE0g", "name": "prim:RevenuePercentage", "unitRef": "Unit_Standard_pure_b9E33fOAZkGR6_X7AlZOCw", "xsiNil": "false", "lang": null, "decimals": "3", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "prim-20240630x10q.htm", "first": true, "unique": true } } }, "tag": { "us-gaap_AccountingPoliciesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountingPoliciesAbstract", "lang": { "en-us": { "role": { "label": "Basis of Presentation" } } }, "auth_ref": [] }, "us-gaap_AccountsNotesAndLoansReceivableLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsNotesAndLoansReceivableLineItems", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Accounts, Notes, Loans and Financing Receivable [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r252", "r882" ] }, "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilities" ], "lang": { "en-us": { "role": { "label": "Accounts Payable and Accrued Liabilities Disclosure [Text Block]", "terseLabel": "Accounts Payable and Accrued Liabilities", "documentation": "The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period." } } }, "auth_ref": [ "r48", "r51", "r55", "r949" ] }, "us-gaap_AccountsPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsPayableCurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accounts Payable, Current", "terseLabel": "Accounts payable", "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r48", "r731" ] }, "us-gaap_AccountsReceivableFromSecuritization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsReceivableFromSecuritization", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable from Securitization", "terseLabel": "Accounts receivable from securitization", "documentation": "The amount owed to the reporting entity by counterparties in securitized loan transactions." } } }, "auth_ref": [] }, "us-gaap_AccountsReceivableMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsReceivableMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Accounts receivable", "verboseLabel": "Accounts receivable, net", "documentation": "Due from customers or clients for goods or services that have been delivered or sold." } } }, "auth_ref": [ "r668" ] }, "us-gaap_AccountsReceivableNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsReceivableNetCurrent", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, after Allowance for Credit Loss, Current", "terseLabel": "Trade accounts receivables", "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current." } } }, "auth_ref": [ "r881" ] }, "us-gaap_AccountsReceivableSale": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsReceivableSale", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, Sale", "terseLabel": "Sale of accounts receivable", "documentation": "Amount of decrease from sale of accounts receivable." } } }, "auth_ref": [ "r256" ] }, "prim_AccountsReceivableSecuritizationFacilityPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "AccountsReceivableSecuritizationFacilityPolicyPolicyTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationPolicies" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for accounts receivable securitization facility.", "label": "Accounts Receivable Securitization Facility Policy [Policy Text Block]", "terseLabel": "Accounts Receivable Securitization Facility" } } }, "auth_ref": [] }, "prim_AccountsReceivableSecuritizationFee": { "xbrltype": "monetaryItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "AccountsReceivableSecuritizationFee", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of fees from accounts receivable securitization.", "label": "Accounts Receivable Securitization, Fee", "terseLabel": "Accounts receivable securitization facility fee" } } }, "auth_ref": [] }, "prim_AccountsReceivableSecuritizationTerm": { "xbrltype": "durationItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "AccountsReceivableSecuritizationTerm", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "documentation": "The period over which the entity entered for securitization of accounts receivable.", "label": "Accounts Receivable Securitization Term", "terseLabel": "Facility term" } } }, "auth_ref": [] }, "us-gaap_AccruedInsuranceCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccruedInsuranceCurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Accrued Insurance, Current", "terseLabel": "Casualty insurance reserves", "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable to insurance entities to mitigate potential loss from various risks or to satisfy a promise to provide certain coverage's to employees. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r51" ] }, "us-gaap_AccruedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccruedLiabilitiesCurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilitiesDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accrued Liabilities, Current", "terseLabel": "Accrued liabilities", "totalLabel": "Total accrued liabilities", "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r51" ] }, "us-gaap_AccruedLiabilitiesCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccruedLiabilitiesCurrentAbstract", "presentation": [ "http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Accrued Liabilities, Current [Abstract]", "terseLabel": "Accrued liabilities" } } }, "auth_ref": [] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax", "terseLabel": "Accumulated other comprehensive income", "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source." } } }, "auth_ref": [ "r12", "r13", "r68", "r163", "r549", "r578", "r579" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedOtherComprehensiveIncomeMember", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Accumulated Other Comprehensive Income", "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r1", "r6", "r13", "r449", "r452", "r497", "r574", "r575", "r860", "r861", "r862", "r870", "r871", "r872", "r874" ] }, "ecd_Additional402vDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "Additional402vDisclosureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Additional 402(v) Disclosure [Text Block]", "terseLabel": "Additional 402(v) Disclosure" } } }, "auth_ref": [ "r795" ] }, "us-gaap_AdditionalPaidInCapitalCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdditionalPaidInCapitalCommonStock", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Additional Paid in Capital, Common Stock", "terseLabel": "Additional paid-in capital", "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital." } } }, "auth_ref": [ "r61" ] }, "us-gaap_AdditionalPaidInCapitalMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdditionalPaidInCapitalMember", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Additional Paid-in Capital", "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders." } } }, "auth_ref": [ "r588", "r870", "r871", "r872", "r874", "r954", "r1019" ] }, "ecd_AdjToCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AdjToCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Compensation Amount", "terseLabel": "Adjustment to Compensation, Amount" } } }, "auth_ref": [ "r808" ] }, "ecd_AdjToCompAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AdjToCompAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Compensation [Axis]", "terseLabel": "Adjustment to Compensation:" } } }, "auth_ref": [ "r808" ] }, "ecd_AdjToNonPeoNeoCompFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AdjToNonPeoNeoCompFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]", "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote" } } }, "auth_ref": [ "r808" ] }, "ecd_AdjToPeoCompFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AdjToPeoCompFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment To PEO Compensation, Footnote [Text Block]", "terseLabel": "Adjustment To PEO Compensation, Footnote" } } }, "auth_ref": [ "r808" ] }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "APIC, Share-based Payment Arrangement, Increase for Cost Recognition", "verboseLabel": "Stock-based compensation", "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement." } } }, "auth_ref": [ "r32", "r33", "r380" ] }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]", "terseLabel": "Adjustments to reconcile net income to net cash used in operating activities (net of effect of acquisitions):" } } }, "auth_ref": [] }, "ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AggtChngPnsnValInSummryCompstnTblForAplblYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]", "terseLabel": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table" } } }, "auth_ref": [ "r841" ] }, "ecd_AggtErrCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AggtErrCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Erroneous Compensation Amount", "terseLabel": "Aggregate Erroneous Compensation Amount" } } }, "auth_ref": [ "r767", "r777", "r787", "r819" ] }, "ecd_AggtErrCompNotYetDeterminedTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AggtErrCompNotYetDeterminedTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]", "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined" } } }, "auth_ref": [ "r770", "r780", "r790", "r822" ] }, "ecd_AggtPnsnAdjsSvcCstMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AggtPnsnAdjsSvcCstMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Pension Adjustments Service Cost [Member]", "terseLabel": "Aggregate Pension Adjustments Service Cost" } } }, "auth_ref": [ "r842" ] }, "ecd_AllAdjToCompMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AllAdjToCompMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Adjustments to Compensation [Member]", "terseLabel": "All Adjustments to Compensation" } } }, "auth_ref": [ "r808" ] }, "ecd_AllExecutiveCategoriesMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AllExecutiveCategoriesMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Executive Categories [Member]", "terseLabel": "All Executive Categories" } } }, "auth_ref": [ "r815" ] }, "ecd_AllIndividualsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AllIndividualsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure", "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure", "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Individuals [Member]", "terseLabel": "All Individuals" } } }, "auth_ref": [ "r771", "r781", "r791", "r815", "r823", "r827", "r835" ] }, "ecd_AllTradingArrangementsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AllTradingArrangementsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "All Trading Arrangements [Member]", "terseLabel": "All Trading Arrangements" } } }, "auth_ref": [ "r833" ] }, "dei_AmendmentFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "AmendmentFlag", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Amendment Flag", "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission." } } }, "auth_ref": [] }, "us-gaap_AmortizationOfIntangibleAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AmortizationOfIntangibleAssets", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Amortization of Intangible Assets", "terseLabel": "Amortization expense of intangible assets", "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method." } } }, "auth_ref": [ "r4", "r271", "r277", "r701" ] }, "us-gaap_Assets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Assets", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Assets", "totalLabel": "Total assets", "documentation": "Amount of asset recognized for present right to economic benefit." } } }, "auth_ref": [ "r99", "r109", "r160", "r186", "r215", "r221", "r239", "r243", "r253", "r300", "r301", "r303", "r304", "r305", "r306", "r307", "r309", "r310", "r439", "r443", "r475", "r545", "r616", "r694", "r695", "r731", "r758", "r916", "r917", "r975" ] }, "us-gaap_AssetsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Assets [Abstract]", "terseLabel": "ASSETS" } } }, "auth_ref": [] }, "us-gaap_AssetsAndLiabilitiesLesseeAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsAndLiabilitiesLesseeAbstract", "presentation": [ "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Assets and Liabilities, Lessee [Abstract]", "terseLabel": "Operating lease liabilities" } } }, "auth_ref": [] }, "us-gaap_AssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsCurrent", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Assets, Current", "totalLabel": "Total current assets", "documentation": "Amount of asset recognized for present right to economic benefit, classified as current." } } }, "auth_ref": [ "r154", "r164", "r186", "r253", "r300", "r301", "r303", "r304", "r305", "r306", "r307", "r309", "r310", "r439", "r443", "r475", "r731", "r916", "r917", "r975" ] }, "us-gaap_AssetsCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsCurrentAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Assets, Current [Abstract]", "terseLabel": "Current assets:" } } }, "auth_ref": [] }, "us-gaap_AssetsFairValueDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsFairValueDisclosureAbstract", "presentation": [ "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Assets, Fair Value Disclosure [Abstract]", "terseLabel": "Assets" } } }, "auth_ref": [] }, "ecd_AwardExrcPrice": { "xbrltype": "perShareItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardExrcPrice", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Exercise Price", "terseLabel": "Exercise Price" } } }, "auth_ref": [ "r830" ] }, "ecd_AwardGrantDateFairValue": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardGrantDateFairValue", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Grant Date Fair Value", "terseLabel": "Fair Value as of Grant Date" } } }, "auth_ref": [ "r831" ] }, "ecd_AwardTmgDiscLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgDiscLineItems", "lang": { "en-us": { "role": { "label": "Award Timing Disclosures [Line Items]", "terseLabel": "Award Timing Disclosures" } } }, "auth_ref": [ "r826" ] }, "ecd_AwardTmgHowMnpiCnsdrdTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgHowMnpiCnsdrdTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing, How MNPI Considered [Text Block]", "terseLabel": "Award Timing, How MNPI Considered" } } }, "auth_ref": [ "r826" ] }, "ecd_AwardTmgMethodTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgMethodTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing Method [Text Block]", "terseLabel": "Award Timing Method" } } }, "auth_ref": [ "r826" ] }, "ecd_AwardTmgMnpiCnsdrdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgMnpiCnsdrdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing MNPI Considered [Flag]", "terseLabel": "Award Timing MNPI Considered" } } }, "auth_ref": [ "r826" ] }, "ecd_AwardTmgMnpiDiscTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgMnpiDiscTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing MNPI Disclosure [Text Block]", "terseLabel": "Award Timing MNPI Disclosure" } } }, "auth_ref": [ "r826" ] }, "ecd_AwardTmgPredtrmndFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardTmgPredtrmndFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing Predetermined [Flag]", "terseLabel": "Award Timing Predetermined" } } }, "auth_ref": [ "r826" ] }, "us-gaap_AwardTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AwardTypeAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails", "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Type [Axis]", "terseLabel": "Award Type", "documentation": "Information by type of award under share-based payment arrangement." } } }, "auth_ref": [ "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r402", "r403", "r404", "r405", "r406", "r407", "r408" ] }, "ecd_AwardUndrlygSecuritiesAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardUndrlygSecuritiesAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Underlying Securities Amount", "terseLabel": "Underlying Securities" } } }, "auth_ref": [ "r829" ] }, "ecd_AwardsCloseToMnpiDiscIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardsCloseToMnpiDiscIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r828" ] }, "ecd_AwardsCloseToMnpiDiscTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardsCloseToMnpiDiscTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures [Table]", "terseLabel": "Awards Close in Time to MNPI Disclosures" } } }, "auth_ref": [ "r827" ] }, "ecd_AwardsCloseToMnpiDiscTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "AwardsCloseToMnpiDiscTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]", "terseLabel": "Awards Close in Time to MNPI Disclosures, Table" } } }, "auth_ref": [ "r827" ] }, "us-gaap_BalanceSheetLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BalanceSheetLocationAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Balance Sheet Location [Axis]", "documentation": "Information by location in statement of financial position where disaggregated cumulative balance has been reported." } } }, "auth_ref": [ "r289", "r988", "r989" ] }, "us-gaap_BalanceSheetLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BalanceSheetLocationDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Balance Sheet Location [Domain]", "documentation": "Location in statement of financial position where disaggregated cumulative balance has been reported." } } }, "auth_ref": [ "r39", "r41", "r289", "r988", "r989" ] }, "us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentation" ], "lang": { "en-us": { "role": { "label": "Basis of Presentation and Significant Accounting Policies [Text Block]", "terseLabel": "Basis of Presentation", "documentation": "The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity." } } }, "auth_ref": [ "r84" ] }, "prim_BondsIssuedAndOutstanding": { "xbrltype": "monetaryItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "BondsIssuedAndOutstanding", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCommitmentsAndContingenciesLegalDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the amount of bonds issued and outstanding.", "label": "Bonds, Issued and Outstanding", "terseLabel": "Bid and completion bonds issued and outstanding" } } }, "auth_ref": [] }, "us-gaap_BusinessCombinationAcquisitionRelatedCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationAcquisitionRelatedCosts", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Business Combination, Acquisition Related Costs", "verboseLabel": "Transaction and related costs", "documentation": "This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities." } } }, "auth_ref": [ "r34" ] }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashAndCashEquivalentsAtCarryingValue", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationRestrictedCashDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents, at Carrying Value", "terseLabel": "Cash and cash equivalents", "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation." } } }, "auth_ref": [ "r17", "r156", "r685" ] }, "us-gaap_CashAndCashEquivalentsFairValueDisclosure": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashAndCashEquivalentsFairValueDisclosure", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents, Fair Value Disclosure", "terseLabel": "Cash and cash equivalents", "documentation": "Fair value portion of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r955", "r956" ] }, "us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationPolicies" ], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents, Restricted Cash and Cash Equivalents, Policy [Policy Text Block]", "terseLabel": "Restricted cash", "documentation": "Entity's cash and cash equivalents accounting policy with respect to restricted balances. Restrictions may include legally restricted deposits held as compensating balances against short-term borrowing arrangements, contracts entered into with others, or company statements of intention with regard to particular deposits; however, time deposits and short-term certificates of deposit are not generally included in legally restricted deposits." } } }, "auth_ref": [ "r18", "r98" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationRestrictedCashDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents", "periodEndLabel": "Cash, cash equivalents and restricted cash at end of the period", "periodStartLabel": "Cash, cash equivalents and restricted cash at beginning of the period", "totalLabel": "Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows", "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r17", "r81", "r183" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect", "totalLabel": "Net change in cash, cash equivalents and restricted cash", "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r0", "r81" ] }, "ecd_ChangedPeerGroupFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ChangedPeerGroupFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Changed Peer Group, Footnote [Text Block]", "terseLabel": "Changed Peer Group, Footnote" } } }, "auth_ref": [ "r806" ] }, "ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]", "terseLabel": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year" } } }, "auth_ref": [ "r803" ] }, "ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]", "terseLabel": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested" } } }, "auth_ref": [ "r801" ] }, "dei_CityAreaCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "CityAreaCode", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "City Area Code", "documentation": "Area code of city" } } }, "auth_ref": [] }, "ecd_CoSelectedMeasureAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CoSelectedMeasureAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Company Selected Measure Amount", "terseLabel": "Company Selected Measure Amount" } } }, "auth_ref": [ "r807" ] }, "ecd_CoSelectedMeasureName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CoSelectedMeasureName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Company Selected Measure Name", "terseLabel": "Company Selected Measure Name" } } }, "auth_ref": [ "r807" ] }, "prim_CommercialEquipmentFinancingDueJune2018ToAugust2022Member": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "CommercialEquipmentFinancingDueJune2018ToAugust2022Member", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the written promise to pay a note to a commercial equipment finance entity, maturing range from June 15, 2018 to August 22, 2022.", "label": "Commercial equipment notes" } } }, "auth_ref": [] }, "us-gaap_CommitmentsAndContingencies": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommitmentsAndContingencies", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Commitments and Contingencies", "terseLabel": "Commitments and contingencies (See Note 13)", "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur." } } }, "auth_ref": [ "r56", "r102", "r547", "r603" ] }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommitmentsAndContingenciesDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Commitments and Contingencies." } } }, "auth_ref": [] }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCommitmentsAndContingencies" ], "lang": { "en-us": { "role": { "label": "Commitments and Contingencies Disclosure [Text Block]", "terseLabel": "Commitments and Contingencies", "documentation": "The entire disclosure for commitments and contingencies." } } }, "auth_ref": [ "r87", "r292", "r293", "r669", "r909", "r914" ] }, "us-gaap_CommonStockDividendsPerShareDeclared": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockDividendsPerShareDeclared", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityParenthetical" ], "lang": { "en-us": { "role": { "label": "Common Stock, Dividends, Per Share, Declared", "terseLabel": "Dividends per common share (in dollars per share)", "verboseLabel": "Cash dividend declared (in dollars per share)", "documentation": "Aggregate dividends declared during the period for each share of common stock outstanding." } } }, "auth_ref": [ "r92" ] }, "us-gaap_CommonStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockMember", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Common Stock", "documentation": "Stock that is subordinate to all other stock of the issuer." } } }, "auth_ref": [ "r745", "r746", "r747", "r749", "r750", "r751", "r754", "r870", "r871", "r874", "r954", "r1018", "r1019" ] }, "us-gaap_CommonStockNumberOfSharesParValueAndOtherDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockNumberOfSharesParValueAndOtherDisclosuresAbstract", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails", "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails" ], "lang": { "en-us": { "role": { "label": "Common Stock, Number of Shares, Par Value and Other Disclosures [Abstract]", "terseLabel": "Common Stock", "verboseLabel": "Secondary Offering" } } }, "auth_ref": [] }, "us-gaap_CommonStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockParOrStatedValuePerShare", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Common Stock, Par or Stated Value Per Share", "terseLabel": "Common stock, par value (in dollars per share)", "documentation": "Face amount or stated value per share of common stock." } } }, "auth_ref": [ "r59" ] }, "us-gaap_CommonStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesAuthorized", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Common Stock, Shares Authorized", "terseLabel": "Common stock, shares authorized", "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r59", "r604" ] }, "us-gaap_CommonStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesIssued", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Common Stock, Shares, Issued", "terseLabel": "Common stock, shares issued", "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury." } } }, "auth_ref": [ "r59" ] }, "us-gaap_CommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesOutstanding", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Common Stock, Shares, Outstanding", "terseLabel": "Common stock, shares outstanding", "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation." } } }, "auth_ref": [ "r7", "r59", "r604", "r622", "r1019", "r1020" ] }, "us-gaap_CommonStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockValue", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Common Stock, Value, Issued", "terseLabel": "Common stock-$0.0001 par value; 90,000,000 shares authorized; 53,672,740 and 53,366,327 issued and outstanding as of June 30, 2024, and December 31, 2023, respectively", "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r59", "r548", "r731" ] }, "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]", "terseLabel": "Compensation Actually Paid vs. Company Selected Measure" } } }, "auth_ref": [ "r812" ] }, "ecd_CompActuallyPaidVsNetIncomeTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CompActuallyPaidVsNetIncomeTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Net Income [Text Block]", "terseLabel": "Compensation Actually Paid vs. Net Income" } } }, "auth_ref": [ "r811" ] }, "ecd_CompActuallyPaidVsOtherMeasureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CompActuallyPaidVsOtherMeasureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Other Measure [Text Block]", "terseLabel": "Compensation Actually Paid vs. Other Measure" } } }, "auth_ref": [ "r813" ] }, "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]", "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return" } } }, "auth_ref": [ "r810" ] }, "us-gaap_ComprehensiveIncomeNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ComprehensiveIncomeNetOfTax", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent", "totalLabel": "Comprehensive income", "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r14", "r168", "r170", "r174", "r541", "r557", "r558" ] }, "us-gaap_ComprehensiveIncomeNetOfTaxAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ComprehensiveIncomeNetOfTaxAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" ], "lang": { "en-us": { "role": { "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent [Abstract]", "terseLabel": "Other comprehensive income (loss), net of tax:" } } }, "auth_ref": [] }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskBenchmarkDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Benchmark [Domain]", "documentation": "The denominator in a calculation of a disclosed concentration risk percentage." } } }, "auth_ref": [ "r22", "r23", "r44", "r45", "r250", "r668" ] }, "us-gaap_ConcentrationRiskByBenchmarkAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskByBenchmarkAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Benchmark [Axis]", "documentation": "Information by benchmark of concentration risk." } } }, "auth_ref": [ "r22", "r23", "r44", "r45", "r250", "r581", "r668" ] }, "us-gaap_ConcentrationRiskByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskByTypeAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Type [Axis]", "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender." } } }, "auth_ref": [ "r22", "r23", "r44", "r45", "r250", "r668", "r849" ] }, "us-gaap_ConcentrationRiskCreditRisk": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskCreditRisk", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationPolicies" ], "lang": { "en-us": { "role": { "label": "Concentration Risk, Credit Risk, Policy [Policy Text Block]", "terseLabel": "Customer concentration", "documentation": "Disclosure of accounting policy for credit risk." } } }, "auth_ref": [ "r47", "r112" ] }, "us-gaap_ConcentrationRiskLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskLineItems", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk [Line Items]", "terseLabel": "Customer concentration", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r668" ] }, "prim_ConcentrationRiskMinimumPercentageOfRevenuesGeneratedBySpecifiedNumberOfTopCustomers": { "xbrltype": "percentItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "ConcentrationRiskMinimumPercentageOfRevenuesGeneratedBySpecifiedNumberOfTopCustomers", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the minimum percentage of revenue typically generated by specified number of customers in any one calendar year.", "label": "Concentration Risk, Minimum Percentage of Revenues Generated by Specified Number of Top Customers", "terseLabel": "Minimum percentage of revenues generated by top ten customers" } } }, "auth_ref": [] }, "prim_ConcentrationRiskNumberOfCustomers": { "xbrltype": "integerItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "ConcentrationRiskNumberOfCustomers", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the number of customers who typically contribute accounts receivable in excess of a specified percentage.", "label": "Concentration Risk, Number of Customers", "terseLabel": "Number of customers" } } }, "auth_ref": [] }, "prim_ConcentrationRiskNumberOfTopCustomers": { "xbrltype": "integerItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "ConcentrationRiskNumberOfTopCustomers", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the number of top customers who typically generate revenue in excess of a specified percentage of total revenues for the entity and consist of a different group of customers in each year.", "label": "Concentration Risk, Number of Top Customers", "terseLabel": "Number of top customers" } } }, "auth_ref": [] }, "us-gaap_ConcentrationRiskPercentage1": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskPercentage1", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk, Percentage", "terseLabel": "Percentage of concentration risk", "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division." } } }, "auth_ref": [ "r22", "r23", "r44", "r45", "r250" ] }, "us-gaap_ConcentrationRiskTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskTable", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk [Table]", "documentation": "Disclosure of information about concentration risk. Includes, but is not limited to, percentage of concentration risk and benchmark serving as denominator in calculation of percentage of concentration risk." } } }, "auth_ref": [ "r21", "r22", "r23", "r24", "r44", "r97", "r668" ] }, "us-gaap_ConcentrationRiskTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskTypeDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Type [Domain]", "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration." } } }, "auth_ref": [ "r22", "r23", "r44", "r45", "r250", "r668" ] }, "srt_ConsolidatedEntitiesAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ConsolidatedEntitiesAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Consolidated Entities [Axis]", "documentation": "Information by consolidated entity or group of entities." } } }, "auth_ref": [ "r118", "r132", "r188", "r439", "r440", "r443", "r444", "r498", "r674", "r850", "r853", "r854", "r915", "r918", "r919" ] }, "srt_ConsolidatedEntitiesDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ConsolidatedEntitiesDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Variable Interest Entity, Classification [Domain]", "documentation": "Entity or group of entities consolidated into reporting entity." } } }, "auth_ref": [ "r118", "r132", "r188", "r439", "r440", "r443", "r444", "r498", "r674", "r850", "r853", "r854", "r915", "r918", "r919" ] }, "srt_ConsolidationItemsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ConsolidationItemsAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails", "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "label": "Consolidation Items [Axis]", "documentation": "Information by components, eliminations, non-segment corporate-level activity and reconciling items used in consolidating a parent entity and its subsidiaries or its operating segments." } } }, "auth_ref": [ "r107", "r118", "r139", "r140", "r141", "r142", "r143", "r144", "r145", "r146", "r147", "r188", "r215", "r223", "r237", "r238", "r239", "r240", "r241", "r243", "r244", "r245", "r300", "r301", "r302", "r303", "r305", "r306", "r307", "r308", "r309", "r694", "r695", "r851", "r852", "r916", "r917" ] }, "srt_ConsolidationItemsDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ConsolidationItemsDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails", "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "label": "Consolidation Items [Domain]", "documentation": "Components, elimination, non-segment corporate-level activity and reconciling items used in consolidating a parent entity and its subsidiaries or its operating segments." } } }, "auth_ref": [ "r107", "r118", "r139", "r140", "r141", "r142", "r143", "r144", "r145", "r146", "r147", "r188", "r215", "r223", "r237", "r238", "r239", "r240", "r241", "r243", "r244", "r245", "r300", "r301", "r302", "r303", "r305", "r306", "r307", "r308", "r309", "r694", "r695", "r851", "r852", "r916", "r917" ] }, "prim_ContractWithCustomerAccountsPayableDueToSubcontractors": { "xbrltype": "monetaryItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "ContractWithCustomerAccountsPayableDueToSubcontractors", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount due to subcontractors and retained pending contract completion and customer acceptance of jobs included in accounts payable.", "label": "Contract with Customer, Accounts Payable, Due to Subcontractors", "terseLabel": "Retention amounts included in accounts payable" } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerAssetCumulativeCatchUpAdjustmentToRevenueModificationOfContract": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerAssetCumulativeCatchUpAdjustmentToRevenueModificationOfContract", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Asset, Cumulative Catch-up Adjustment to Revenue, Modification of Contract", "terseLabel": "Amount of unapproved contract modifications recognized as revenue on a cumulative catch-up basis", "documentation": "Amount of increase (decrease) in revenue recognized for cumulative catch-up adjustment from contract modification which increases (decreases) right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time." } } }, "auth_ref": [ "r708" ] }, "us-gaap_ContractWithCustomerAssetNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerAssetNetCurrent", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueContractAssetsDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Asset, Net, Current", "terseLabel": "Contract assets", "totalLabel": "Contract assets", "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current." } } }, "auth_ref": [ "r353", "r355", "r367" ] }, "prim_ContractWithCustomerAssetTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "ContractWithCustomerAssetTableTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueTables" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of contract assets balances and changes in contract assets balances.", "label": "Contract with Customer, Asset [Table Text Block]", "terseLabel": "Schedule of contract assets" } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerBasisOfPricingAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerBasisOfPricingAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails", "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Basis of Pricing [Axis]", "documentation": "Information by basis of pricing for contract representing right to consideration in exchange for good or service transferred to customer." } } }, "auth_ref": [ "r712", "r922" ] }, "us-gaap_ContractWithCustomerBasisOfPricingDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerBasisOfPricingDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails", "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Basis of Pricing [Domain]", "documentation": "Basis of pricing for contract with customer. Includes, but is not limited to, fixed-price and time-and-materials contracts." } } }, "auth_ref": [ "r712", "r922" ] }, "prim_ContractWithCustomerLiabilityAccruedLossProvisionCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "ContractWithCustomerLiabilityAccruedLossProvisionCurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueContractLiabilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Accrued loss provision component of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.", "label": "Contract with Customer Liability Accrued Loss Provision Current", "terseLabel": "Accrued loss provision" } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerLiabilityCurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueContractLiabilitiesDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Liability, Current", "terseLabel": "Contract liabilities", "totalLabel": "Contract liabilities", "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current." } } }, "auth_ref": [ "r353", "r354", "r367" ] }, "prim_ContractWithCustomerLiabilityDeferredRevenueCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "ContractWithCustomerLiabilityDeferredRevenueCurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueContractLiabilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of obligation before accrued loss provision on transfer good or service to customer for which consideration has been received or is receivable, classified as current.", "label": "Contract with Customer, Liability, Deferred Revenue, Current", "terseLabel": "Deferred revenue" } } }, "auth_ref": [] }, "prim_ContractWithCustomerLiabilityModificationOfContract": { "xbrltype": "monetaryItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "ContractWithCustomerLiabilityModificationOfContract", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetails" ], "lang": { "en-us": { "role": { "documentation": "The amount of contract modifications included in the expected contract value.", "label": "Contract with Customer, Liability, Modification of Contract", "terseLabel": "Amount of contract modifications included in the expected contract value." } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerLiabilityRevenueRecognized", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueContractLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Liability, Revenue Recognized", "terseLabel": "Revenue recognized included in contract liability at beginning of period", "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due." } } }, "auth_ref": [ "r368" ] }, "prim_ContractWithCustomerLiabilityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "ContractWithCustomerLiabilityTableTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueTables" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of contract liabilities balances and changes in contract liabilities balances.", "label": "Contract with Customer, Liability [Table Text Block]", "terseLabel": "Schedule of contract liabilities" } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Performance Obligation Satisfied in Previous Period", "terseLabel": "Revenue recognized from performance obligations satisfied in previous periods", "documentation": "Amount of revenue recognized from performance obligation satisfied or partially satisfied in previous reporting periods. Includes, but is not limited to, change in transaction price." } } }, "auth_ref": [ "r362" ] }, "us-gaap_CostOfGoodsAndServicesSold": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CostOfGoodsAndServicesSold", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Cost of Services, Excluding Depreciation, Depletion, and Amortization", "terseLabel": "Cost of revenue", "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities." } } }, "auth_ref": [ "r71", "r72", "r506" ] }, "prim_CostReimbursableContractsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "CostReimbursableContractsMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "documentation": "This member stands for cost reimbursable contract.", "label": "Cost reimbursable" } } }, "auth_ref": [] }, "dei_CoverAbstract": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "CoverAbstract", "lang": { "en-us": { "role": { "label": "Document and Entity Information", "documentation": "Cover page." } } }, "auth_ref": [] }, "prim_CreditAgreementThresholdRestrictionPercentageOfDisposalOfTotalAssets": { "xbrltype": "percentItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "CreditAgreementThresholdRestrictionPercentageOfDisposalOfTotalAssets", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the threshold restriction percentage of disposal of total assets.", "label": "Credit Agreement, Threshold Restriction Percentage Of Disposal Of Total Assets", "terseLabel": "Percentage of credit agreement, threshold restriction of total assets" } } }, "auth_ref": [] }, "prim_CreditFacilityWithCanadianBankMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "CreditFacilityWithCanadianBankMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsCanadianCreditFacilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to credit facility with a Canadian bank.", "label": "Canadian Credit Facility" } } }, "auth_ref": [] }, "prim_CreditFacilityWithPrivateBankBankOfWestAndIBERIABANKCorporationMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "CreditFacilityWithPrivateBankBankOfWestAndIBERIABANKCorporationMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to the credit agreement with Private Bank, Bank of the West and IBERIABANK Corporation.", "label": "Credit Agreement." } } }, "auth_ref": [] }, "dei_CurrentFiscalYearEndDate": { "xbrltype": "gMonthDayItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "CurrentFiscalYearEndDate", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Current Fiscal Year End Date", "documentation": "End date of current fiscal year in the format --MM-DD." } } }, "auth_ref": [] }, "us-gaap_CustomerConcentrationRiskMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CustomerConcentrationRiskMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails" ], "lang": { "en-us": { "role": { "label": "Customer concentration", "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer." } } }, "auth_ref": [ "r85", "r250" ] }, "us-gaap_CustomerRelationshipsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CustomerRelationshipsMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Customer relationships", "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships." } } }, "auth_ref": [ "r38", "r897", "r898", "r899", "r900", "r902", "r904", "r907", "r908" ] }, "us-gaap_DebtDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Credit Arrangements" } } }, "auth_ref": [] }, "us-gaap_DebtDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtDisclosureTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangements" ], "lang": { "en-us": { "role": { "label": "Debt Disclosure [Text Block]", "terseLabel": "Credit Arrangements", "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants." } } }, "auth_ref": [ "r88", "r184", "r284", "r285", "r286", "r287", "r288", "r298", "r299", "r311", "r317", "r318", "r319", "r320", "r321", "r322", "r327", "r334", "r335", "r337", "r486" ] }, "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentBasisSpreadOnVariableRate1", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Debt Instrument, Basis Spread on Variable Rate", "terseLabel": "Basis spread on variable rate (as a percent)", "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument." } } }, "auth_ref": [] }, "us-gaap_DebtInstrumentCarryingAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentCarryingAmount", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails" ], "lang": { "en-us": { "role": { "label": "Long-term Debt, Gross", "terseLabel": "Total debt", "documentation": "Amount, before unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but is not limited to, notes payable, bonds payable, commercial loans, mortgage loans, convertible debt, subordinated debt and other types of debt." } } }, "auth_ref": [ "r11", "r101", "r338" ] }, "us-gaap_DebtInstrumentFaceAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentFaceAmount", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Debt Instrument, Face Amount", "terseLabel": "Principal amount", "documentation": "Face (par) amount of debt instrument at time of issuance." } } }, "auth_ref": [ "r312", "r486", "r487", "r703", "r704", "r729" ] }, "us-gaap_DebtInstrumentLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentLineItems", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsCanadianCreditFacilitiesDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Debt Instrument [Line Items]", "terseLabel": "Credit Agreements", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r188", "r312", "r313", "r314", "r315", "r316", "r318", "r323", "r324", "r325", "r326", "r328", "r329", "r330", "r331", "r332", "r333", "r336", "r702", "r703", "r704", "r705", "r706", "r729", "r867", "r971", "r972" ] }, "us-gaap_DebtInstrumentTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentTable", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsCanadianCreditFacilitiesDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Long-term Debt Instruments [Table]", "documentation": "Disclosure of information about long-term debt instrument or arrangement." } } }, "auth_ref": [ "r11", "r30", "r31", "r46", "r90", "r91", "r188", "r312", "r313", "r314", "r315", "r316", "r318", "r323", "r324", "r325", "r326", "r328", "r329", "r330", "r331", "r332", "r333", "r336", "r702", "r703", "r704", "r705", "r706", "r729", "r867", "r971", "r972" ] }, "us-gaap_DebtWeightedAverageInterestRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtWeightedAverageInterestRate", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Debt, Weighted Average Interest Rate", "terseLabel": "Weighted average interest rate (as a percent)", "documentation": "Weighted average interest rate of debt outstanding." } } }, "auth_ref": [] }, "prim_DeferredCompensationArrangementPercentageOfAverageMarketClosingPricesUsedInDeterminingNumberOfCommonStockThatCouldBePurchasedByParticipants": { "xbrltype": "percentItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "DeferredCompensationArrangementPercentageOfAverageMarketClosingPricesUsedInDeterminingNumberOfCommonStockThatCouldBePurchasedByParticipants", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents percentage of average market closing prices used in determining number of common stock that could be purchased by participants.", "label": "Deferred Compensation Arrangement Percentage of Average Market Closing Prices used in Determining Number of Common Stock that Could be Purchased by Participants", "terseLabel": "Percentage of average market closing prices used in determining number of common stock that could be purchased by participants" } } }, "auth_ref": [] }, "us-gaap_DeferredIncomeTaxLiabilitiesNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredIncomeTaxLiabilitiesNet", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Deferred Tax Liabilities, Net, Noncurrent", "verboseLabel": "Deferred tax liabilities", "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting." } } }, "auth_ref": [ "r411", "r412", "r546" ] }, "us-gaap_DepreciationDepletionAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DepreciationDepletionAndAmortization", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Depreciation, Depletion and Amortization", "terseLabel": "Depreciation and amortization", "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets." } } }, "auth_ref": [ "r4", "r215", "r226", "r243", "r694", "r695" ] }, "us-gaap_DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeAssetCurrentStatementOfFinancialPositionExtensibleEnumeration", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDerivativeContractAndInstrumentsDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Asset, Current, Statement of Financial Position [Extensible Enumeration]", "documentation": "Indicates line item in statement of financial position that includes derivative asset classified as current." } } }, "auth_ref": [ "r445" ] }, "us-gaap_DerivativeAssetNoncurrentStatementOfFinancialPositionExtensibleEnumeration": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeAssetNoncurrentStatementOfFinancialPositionExtensibleEnumeration", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDerivativeContractAndInstrumentsDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Asset, Noncurrent, Statement of Financial Position [Extensible Enumeration]", "documentation": "Indicates line item in statement of financial position that includes derivative asset classified as noncurrent." } } }, "auth_ref": [ "r445" ] }, "us-gaap_DerivativeAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeAssetsCurrent", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDerivativeContractAndInstrumentsDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Asset, Current", "terseLabel": "Derivative assets, current", "documentation": "Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset, expected to be settled within one year or normal operating cycle, if longer. Includes assets not subject to a master netting arrangement and not elected to be offset." } } }, "auth_ref": [ "r166" ] }, "us-gaap_DerivativeAssetsNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeAssetsNoncurrent", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDerivativeContractAndInstrumentsDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Asset, Noncurrent", "terseLabel": "Derivative assets, noncurrent", "documentation": "Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset, expected to be settled after one year or the normal operating cycle, if longer. Includes assets not subject to a master netting arrangement and not elected to be offset." } } }, "auth_ref": [ "r166" ] }, "us-gaap_DerivativeContractTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeContractTypeDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails", "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDerivativeContractAndInstrumentsDetails", "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDetails", "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Contract [Domain]", "documentation": "Financial instrument or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset." } } }, "auth_ref": [ "r593", "r595", "r609", "r610", "r611", "r612", "r613", "r614", "r615", "r617", "r618", "r619", "r620", "r629", "r630", "r631", "r632", "r635", "r636", "r637", "r638", "r654", "r656", "r660", "r662", "r745", "r747", "r960", "r961", "r962", "r963", "r964", "r965", "r966", "r967" ] }, "us-gaap_DerivativeFairValueOfDerivativeAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeFairValueOfDerivativeAsset", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Asset, Fair Value, Gross Asset", "terseLabel": "Derivative asset", "documentation": "Fair value, before effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets elected not to be offset. Excludes assets not subject to a master netting arrangement." } } }, "auth_ref": [ "r9", "r67", "r94", "r95", "r165", "r686" ] }, "us-gaap_DerivativeFixedInterestRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeFixedInterestRate", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Derivative, Fixed Interest Rate", "terseLabel": "Derivative fixed interest rate (as a percent)", "documentation": "Fixed interest rate related to the interest rate derivative." } } }, "auth_ref": [] }, "us-gaap_DerivativeGainLossOnDerivativeNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeGainLossOnDerivativeNet", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDerivativeContractAndInstrumentsDetails" ], "lang": { "en-us": { "role": { "label": "Derivative, Gain (Loss) on Derivative, Net", "negatedLabel": "Amount of (gain) loss recognized on derivatives, net", "documentation": "Amount of increase (decrease) in the fair value of derivatives recognized in the income statement." } } }, "auth_ref": [ "r953" ] }, "us-gaap_DerivativeGainLossStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeGainLossStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDerivativeContractAndInstrumentsDetails" ], "lang": { "en-us": { "role": { "label": "Derivative, Gain (Loss), Statement of Income or Comprehensive Income [Extensible Enumeration]", "documentation": "Indicates line item in statement of income or comprehensive income that includes gain (loss) from derivative." } } }, "auth_ref": [ "r953" ] }, "us-gaap_DerivativeInstrumentRiskAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeInstrumentRiskAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails", "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDerivativeContractAndInstrumentsDetails", "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDetails", "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Instrument [Axis]", "documentation": "Information by type of derivative contract." } } }, "auth_ref": [ "r40", "r42", "r43", "r96", "r593", "r595", "r609", "r610", "r611", "r612", "r613", "r614", "r615", "r617", "r618", "r619", "r620", "r629", "r630", "r631", "r632", "r635", "r636", "r637", "r638", "r654", "r656", "r660", "r662", "r686", "r745", "r747", "r960", "r961", "r962", "r963", "r964", "r965", "r966", "r967" ] }, "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Derivative Instruments" } } }, "auth_ref": [] }, "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstruments" ], "lang": { "en-us": { "role": { "label": "Derivative Instruments and Hedging Activities Disclosure [Text Block]", "terseLabel": "Derivative Instruments", "documentation": "The entire disclosure for derivative instruments and hedging activities including, but not limited to, risk management strategies, non-hedging derivative instruments, assets, liabilities, revenue and expenses, and methodologies and assumptions used in determining the amounts." } } }, "auth_ref": [ "r93", "r447", "r454" ] }, "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosuresLineItems", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDerivativeContractAndInstrumentsDetails", "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Instruments and Hedging Activities Disclosures [Line Items]", "terseLabel": "Derivative Instruments", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosuresTable", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDerivativeContractAndInstrumentsDetails", "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Instruments and Hedging Activities Disclosures [Table]", "documentation": "Disclosure of information about derivatives and hedging activities." } } }, "auth_ref": [] }, "us-gaap_DerivativeLiabilityNotionalAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeLiabilityNotionalAmount", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails", "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDetails" ], "lang": { "en-us": { "role": { "label": "Derivative Liability, Notional Amount", "terseLabel": "Notional Amount", "documentation": "Nominal or face amount used to calculate payments on the derivative liability." } } }, "auth_ref": [ "r655", "r657", "r659", "r661", "r950", "r951", "r952" ] }, "us-gaap_DisaggregationOfRevenueLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DisaggregationOfRevenueLineItems", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "label": "Disaggregation of Revenue [Line Items]", "terseLabel": "Disaggregation of Revenue", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r366", "r709", "r710", "r711", "r712", "r713", "r714", "r715" ] }, "us-gaap_DisaggregationOfRevenueTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DisaggregationOfRevenueTable", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "label": "Disaggregation of Revenue [Table]", "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor." } } }, "auth_ref": [ "r366", "r709", "r710", "r711", "r712", "r713", "r714", "r715" ] }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DisaggregationOfRevenueTableTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueTables" ], "lang": { "en-us": { "role": { "label": "Disaggregation of Revenue [Table Text Block]", "terseLabel": "Schedule of revenue disaggregation by various categories", "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor." } } }, "auth_ref": [ "r922" ] }, "us-gaap_DividendPayableDateToBePaidDayMonthAndYear": { "xbrltype": "dateItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DividendPayableDateToBePaidDayMonthAndYear", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "label": "Dividends Payable, Date to be Paid", "terseLabel": "Date Paid", "documentation": "Date the declared dividend will be paid, in YYYY-MM-DD format." } } }, "auth_ref": [ "r20" ] }, "prim_DividendsAndEarningsPerShareAbstract": { "xbrltype": "stringItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "DividendsAndEarningsPerShareAbstract", "lang": { "en-us": { "role": { "documentation": "No definition available.", "label": "Dividends and Earnings Per Share" } } }, "auth_ref": [] }, "prim_DividendsAndEarningsPerShareDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "DividendsAndEarningsPerShareDisclosureTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShare" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for dividends paid or declared and earnings per share.", "label": "Dividends and Earnings Per Share Disclosure [Text Block]", "terseLabel": "Dividends and Earnings Per Share" } } }, "auth_ref": [] }, "us-gaap_DividendsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DividendsAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "label": "Dividends [Axis]", "documentation": "Information by distribution of earnings to shareholder. Includes, but is not limited to, distribution paid and declared." } } }, "auth_ref": [] }, "us-gaap_DividendsCommonStockCash": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DividendsCommonStockCash", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Dividends, Common Stock, Cash", "negatedLabel": "Dividends declared", "documentation": "Amount of paid and unpaid common stock dividends declared with the form of settlement in cash." } } }, "auth_ref": [ "r92" ] }, "us-gaap_DividendsDeclaredTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DividendsDeclaredTableTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareTables" ], "lang": { "en-us": { "role": { "label": "Dividends Declared [Table Text Block]", "terseLabel": "Schedule of cash dividends paid or declared", "documentation": "Tabular disclosure of information related to dividends declared, including paid and unpaid dividends." } } }, "auth_ref": [] }, "us-gaap_DividendsDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DividendsDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "label": "Dividends [Domain]", "documentation": "Distributions of earnings to shareholders including but not limited to cash, property or capital stock." } } }, "auth_ref": [] }, "us-gaap_DividendsPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DividendsPayableCurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Dividends Payable, Current", "terseLabel": "Dividends payable", "documentation": "Carrying value as of the balance sheet date of dividends declared but unpaid on equity securities issued by the entity and outstanding. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r51" ] }, "us-gaap_DividendsPayableCurrentAndNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DividendsPayableCurrentAndNoncurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Dividends Payable", "terseLabel": "Dividends declared and not yet paid", "documentation": "Carrying value as of the balance sheet date of dividends declared but unpaid on equity securities issued by the entity and outstanding." } } }, "auth_ref": [ "r51", "r55", "r100", "r755", "r984" ] }, "us-gaap_DividendsPayableDateDeclaredDayMonthAndYear": { "xbrltype": "dateItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DividendsPayableDateDeclaredDayMonthAndYear", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "label": "Dividends Payable, Date Declared", "terseLabel": "Declaration Date", "documentation": "Date the dividend to be paid was declared, in YYYY-MM-DD format." } } }, "auth_ref": [ "r20" ] }, "us-gaap_DividendsPayableDateOfRecordDayMonthAndYear": { "xbrltype": "dateItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DividendsPayableDateOfRecordDayMonthAndYear", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "label": "Dividends Payable, Date of Record", "terseLabel": "Record Date", "documentation": "Date the holder must own the stock to be entitled to the dividend, in YYYY-MM-DD format." } } }, "auth_ref": [] }, "dei_DocumentFiscalPeriodFocus": { "xbrltype": "fiscalPeriodItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentFiscalPeriodFocus", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Period Focus", "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY." } } }, "auth_ref": [] }, "dei_DocumentFiscalYearFocus": { "xbrltype": "gYearItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentFiscalYearFocus", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Year Focus", "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006." } } }, "auth_ref": [] }, "dei_DocumentPeriodEndDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentPeriodEndDate", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Period End Date", "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD." } } }, "auth_ref": [] }, "dei_DocumentQuarterlyReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentQuarterlyReport", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Quarterly Report", "documentation": "Boolean flag that is true only for a form used as an quarterly report." } } }, "auth_ref": [ "r762" ] }, "dei_DocumentTransitionReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentTransitionReport", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Transition Report", "documentation": "Boolean flag that is true only for a form used as a transition report." } } }, "auth_ref": [ "r794" ] }, "dei_DocumentType": { "xbrltype": "submissionTypeItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentType", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Type", "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'." } } }, "auth_ref": [] }, "ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]", "terseLabel": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year" } } }, "auth_ref": [ "r805" ] }, "us-gaap_EarningsPerShareAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Dividends and Earnings Per Share.", "verboseLabel": "Earnings per share:" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareBasic": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareBasic", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Basic", "terseLabel": "Basic (in dollars per share)", "verboseLabel": "Basic earnings per share (in dollars per share)", "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period." } } }, "auth_ref": [ "r175", "r194", "r195", "r196", "r197", "r198", "r199", "r204", "r206", "r211", "r212", "r213", "r214", "r433", "r437", "r457", "r458", "r542", "r559", "r687" ] }, "us-gaap_EarningsPerShareDiluted": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareDiluted", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Diluted", "terseLabel": "Diluted (in dollars per share)", "verboseLabel": "Diluted earnings per share (in dollars per share)", "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period." } } }, "auth_ref": [ "r175", "r194", "r195", "r196", "r197", "r198", "r199", "r206", "r211", "r212", "r213", "r214", "r433", "r437", "r457", "r458", "r542", "r559", "r687" ] }, "us-gaap_EarningsPerShareReconciliationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareReconciliationAbstract", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Basic and Diluted [Abstract]", "verboseLabel": "Earnings per share:" } } }, "auth_ref": [] }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents", "terseLabel": "Effect of exchange rate changes on cash, cash equivalents and restricted cash", "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r970" ] }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EffectiveIncomeTaxRateContinuingOperations", "presentation": [ "http://www.primoriscorp.com/role/DisclosureIncomeTaxesDetails" ], "lang": { "en-us": { "role": { "label": "Effective Income Tax Rate Reconciliation, Percent", "terseLabel": "Effective income tax rate reconciliation (in percent)", "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r414", "r720" ] }, "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "presentation": [ "http://www.primoriscorp.com/role/DisclosureIncomeTaxesDetails" ], "lang": { "en-us": { "role": { "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent", "terseLabel": "U.S. federal statutory income tax rate (as a percent)", "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss)." } } }, "auth_ref": [ "r187", "r414", "r424", "r720" ] }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeRelatedLiabilitiesCurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Employee-related Liabilities, Current", "terseLabel": "Payroll and related employee benefits", "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r51" ] }, "us-gaap_EmployeeStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeStockMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails" ], "lang": { "en-us": { "role": { "label": "Employee Stock [Member]", "terseLabel": "Employee Stock Purchase Plan", "documentation": "An Employee Stock Purchase Plan is a tax-efficient means by which employees of a corporation can purchase the corporation's stock." } } }, "auth_ref": [] }, "us-gaap_EmployeeStockOptionMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeStockOptionMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Employee Stock Option [Member]", "terseLabel": "Employee Stock Option", "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time." } } }, "auth_ref": [] }, "us-gaap_EmployeeStockOwnershipPlanESOPWeightedAveragePurchasePriceOfSharesPurchased": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeStockOwnershipPlanESOPWeightedAveragePurchasePriceOfSharesPurchased", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails" ], "lang": { "en-us": { "role": { "label": "Employee Stock Ownership Plan (ESOP), Weighted Average Purchase Price of Shares Purchased", "terseLabel": "Stock purchase price", "documentation": "Weighted average purchase price of capital shares purchased through an employee stock ownership plan." } } }, "auth_ref": [] }, "prim_EnergySegmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "EnergySegmentMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsGoodwillDetails", "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails", "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to Energy, a reportable segment of the entity.", "label": "Energy", "terseLabel": "Energy" } } }, "auth_ref": [] }, "dei_EntityAddressAddressLine1": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressAddressLine1", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, Address Line One", "documentation": "Address Line 1 such as Attn, Building Name, Street Name" } } }, "auth_ref": [] }, "dei_EntityAddressCityOrTown": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressCityOrTown", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, City or Town", "documentation": "Name of the City or Town" } } }, "auth_ref": [] }, "dei_EntityAddressPostalZipCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressPostalZipCode", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, Postal Zip Code", "documentation": "Code for the postal or zip code" } } }, "auth_ref": [] }, "dei_EntityAddressStateOrProvince": { "xbrltype": "stateOrProvinceItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressStateOrProvince", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, State or Province", "documentation": "Name of the state or province." } } }, "auth_ref": [] }, "dei_EntityCentralIndexKey": { "xbrltype": "centralIndexKeyItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCentralIndexKey", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Central Index Key", "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK." } } }, "auth_ref": [ "r760" ] }, "dei_EntityCommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCommonStockSharesOutstanding", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Common Stock, Shares Outstanding", "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument." } } }, "auth_ref": [] }, "dei_EntityCurrentReportingStatus": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCurrentReportingStatus", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Current Reporting Status", "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [] }, "dei_EntityEmergingGrowthCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityEmergingGrowthCompany", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Emerging Growth Company", "documentation": "Indicate if registrant meets the emerging growth company criteria." } } }, "auth_ref": [ "r760" ] }, "dei_EntityFileNumber": { "xbrltype": "fileNumberItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityFileNumber", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity File Number", "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen." } } }, "auth_ref": [] }, "dei_EntityFilerCategory": { "xbrltype": "filerCategoryItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityFilerCategory", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Filer Category", "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [ "r760" ] }, "dei_EntityIncorporationStateCountryCode": { "xbrltype": "edgarStateCountryItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityIncorporationStateCountryCode", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Incorporation, State or Country Code", "documentation": "Two-character EDGAR code representing the state or country of incorporation." } } }, "auth_ref": [] }, "dei_EntityInteractiveDataCurrent": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityInteractiveDataCurrent", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Interactive Data Current", "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)." } } }, "auth_ref": [ "r844" ] }, "dei_EntityRegistrantName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityRegistrantName", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Registrant Name", "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC." } } }, "auth_ref": [ "r760" ] }, "dei_EntityShellCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityShellCompany", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Shell Company", "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act." } } }, "auth_ref": [ "r760" ] }, "dei_EntitySmallBusiness": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntitySmallBusiness", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Small Business", "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)." } } }, "auth_ref": [ "r760" ] }, "dei_EntityTaxIdentificationNumber": { "xbrltype": "employerIdItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityTaxIdentificationNumber", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Tax Identification Number", "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS." } } }, "auth_ref": [ "r760" ] }, "ecd_EqtyAwrdsAdjFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EqtyAwrdsAdjFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Awards Adjustments, Footnote [Text Block]", "terseLabel": "Equity Awards Adjustments, Footnote" } } }, "auth_ref": [ "r799" ] }, "ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]", "terseLabel": "Equity Awards Adjustments, Excluding Value Reported in Compensation Table" } } }, "auth_ref": [ "r840" ] }, "ecd_EqtyAwrdsAdjsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EqtyAwrdsAdjsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Awards Adjustments [Member]", "terseLabel": "Equity Awards Adjustments" } } }, "auth_ref": [ "r840" ] }, "ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EqtyAwrdsInSummryCompstnTblForAplblYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]", "terseLabel": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table" } } }, "auth_ref": [ "r840" ] }, "us-gaap_EquityComponentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EquityComponentDomain", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Equity Component [Domain]", "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc." } } }, "auth_ref": [ "r7", "r151", "r171", "r172", "r173", "r189", "r190", "r191", "r193", "r198", "r200", "r202", "r216", "r254", "r255", "r282", "r352", "r422", "r423", "r430", "r431", "r432", "r434", "r436", "r437", "r448", "r449", "r450", "r451", "r452", "r453", "r456", "r480", "r481", "r482", "r483", "r484", "r485", "r488", "r490", "r497", "r556", "r574", "r575", "r576", "r588", "r642" ] }, "prim_EquityIncentivePlan2013Member": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "EquityIncentivePlan2013Member", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "documentation": "This element represents the 2013 Equity Incentive Plan of the entity.", "label": "Equity Plan" } } }, "auth_ref": [] }, "ecd_EquityValuationAssumptionDifferenceFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "EquityValuationAssumptionDifferenceFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Valuation Assumption Difference, Footnote [Text Block]", "terseLabel": "Equity Valuation Assumption Difference, Footnote" } } }, "auth_ref": [ "r809" ] }, "ecd_ErrCompAnalysisTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ErrCompAnalysisTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Erroneous Compensation Analysis [Text Block]", "terseLabel": "Erroneous Compensation Analysis" } } }, "auth_ref": [ "r767", "r777", "r787", "r819" ] }, "ecd_ErrCompRecoveryTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ErrCompRecoveryTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Erroneously Awarded Compensation Recovery [Table]", "terseLabel": "Erroneously Awarded Compensation Recovery" } } }, "auth_ref": [ "r764", "r774", "r784", "r816" ] }, "ecd_ExecutiveCategoryAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ExecutiveCategoryAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Executive Category [Axis]", "terseLabel": "Executive Category:" } } }, "auth_ref": [ "r815" ] }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems", "presentation": [ "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]", "terseLabel": "Fair value measurements", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r460", "r461", "r469", "r723" ] }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable", "presentation": [ "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Fair Value Measurements, Recurring and Nonrecurring [Table]", "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis." } } }, "auth_ref": [ "r460", "r461", "r469", "r723" ] }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueByFairValueHierarchyLevelAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Fair Value, Hierarchy [Axis]", "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient." } } }, "auth_ref": [ "r325", "r371", "r372", "r373", "r374", "r375", "r376", "r459", "r461", "r462", "r463", "r464", "r468", "r469", "r470", "r499", "r500", "r501", "r703", "r704", "r716", "r717", "r718", "r723", "r725" ] }, "us-gaap_FairValueByMeasurementFrequencyAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueByMeasurementFrequencyAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Measurement Frequency [Axis]", "documentation": "Information by measurement frequency." } } }, "auth_ref": [ "r460", "r461", "r462", "r464", "r723", "r958", "r968" ] }, "us-gaap_FairValueDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueDisclosuresAbstract", "lang": { "en-us": { "role": { "label": "Fair Value Measurements" } } }, "auth_ref": [] }, "us-gaap_FairValueDisclosuresTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueDisclosuresTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureFairValueMeasurements" ], "lang": { "en-us": { "role": { "label": "Fair Value Disclosures [Text Block]", "terseLabel": "Fair Value Measurements", "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information." } } }, "auth_ref": [ "r465", "r466", "r467", "r468", "r470", "r471", "r472", "r473", "r474", "r539", "r723", "r726" ] }, "us-gaap_FairValueInputsLevel1Member": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueInputsLevel1Member", "presentation": [ "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Quoted Prices in Active Markets for Identical Assets (Level 1)", "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date." } } }, "auth_ref": [ "r325", "r371", "r376", "r461", "r469", "r499", "r716", "r717", "r718", "r723" ] }, "us-gaap_FairValueInputsLevel2Member": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueInputsLevel2Member", "presentation": [ "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Significant Other Observable Inputs (Level2)", "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets." } } }, "auth_ref": [ "r325", "r371", "r376", "r461", "r462", "r469", "r500", "r703", "r704", "r716", "r717", "r718", "r723" ] }, "us-gaap_FairValueMeasurementFrequencyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueMeasurementFrequencyDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Fair Value, Measurement Frequency [Domain]", "documentation": "Measurement frequency." } } }, "auth_ref": [ "r460", "r461", "r462", "r464", "r723", "r958", "r968" ] }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueMeasurementsFairValueHierarchyDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Fair Value Hierarchy [Domain]", "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value." } } }, "auth_ref": [ "r325", "r371", "r372", "r373", "r374", "r375", "r376", "r459", "r461", "r462", "r463", "r464", "r468", "r469", "r470", "r499", "r500", "r501", "r703", "r704", "r716", "r717", "r718", "r723", "r725" ] }, "us-gaap_FairValueMeasurementsRecurringMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueMeasurementsRecurringMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Recurring", "documentation": "Frequent fair value measurement. Includes, but is not limited to, fair value adjustment for impairment of asset, liability or equity, frequently measured at fair value." } } }, "auth_ref": [ "r723", "r955", "r956", "r957", "r958", "r959", "r968" ] }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Accumulated Amortization", "negatedLabel": "Accumulated Amortization", "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r158", "r257", "r276", "r701" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsFutureAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Amortization Expense, Next Twelve Months", "terseLabel": "2025", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r278", "r682", "r701" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsFutureAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Amortization Expense, Remainder of Fiscal Year", "terseLabel": "2024 (remaining six months)", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year." } } }, "auth_ref": [ "r1021" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsFutureAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Four", "terseLabel": "2028", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r278", "r682", "r701" ] }, "prim_FiniteLivedIntangibleAssetsAmortizationExpenseYearFourAndAfter": { "xbrltype": "monetaryItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFourAndAfter", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsFutureAmortizationDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized year four and after following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite Lived Intangible Assets Amortization Expense Year Four and After", "terseLabel": "Thereafter" } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsFutureAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Three", "terseLabel": "2027", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r278", "r682", "r701" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsFutureAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Amortization Expense, Year Two", "terseLabel": "2026", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r278", "r682", "r701" ] }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets by Major Class [Axis]", "documentation": "Information by major type or class of finite-lived intangible assets." } } }, "auth_ref": [ "r270", "r272", "r273", "r274", "r275", "r276", "r279", "r280", "r507", "r508", "r682" ] }, "us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsFutureAmortizationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]", "terseLabel": "Estimated future amortization expense for intangible assets" } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsGross", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Gross", "terseLabel": "Gross Carrying Amount", "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r257", "r276", "r508", "r701" ] }, "us-gaap_FiniteLivedIntangibleAssetsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsLineItems", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets [Line Items]", "terseLabel": "Intangible assets", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r270", "r276", "r279", "r280", "r281", "r507", "r682", "r701" ] }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]", "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company." } } }, "auth_ref": [ "r270", "r272", "r273", "r274", "r275", "r276", "r279", "r280", "r682" ] }, "us-gaap_FixedPriceContractMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FixedPriceContractMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "label": "Fixed price", "documentation": "Contract with customer in which amount of consideration is fixed." } } }, "auth_ref": [ "r712" ] }, "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ForeignCurrencyTransactionGainLossBeforeTax", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Foreign Currency Transaction Gain (Loss), before Tax", "terseLabel": "Foreign exchange gain, net", "documentation": "Amount, before tax, of realized and unrealized gain (loss) from foreign currency transaction." } } }, "auth_ref": [ "r476", "r477", "r478", "r479", "r639" ] }, "prim_ForeignLettersOfCreditMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "ForeignLettersOfCreditMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsCanadianCreditFacilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "A document typically issued by a financial institution outside the USA which acts as a guarantee of payment to a beneficiary, or as the source of payment for a specific transaction (for example, wiring funds to a foreign exporter if and when specified merchandise is accepted pursuant to the terms of the letter of credit).", "label": "Foreign letters of credit [Member]", "terseLabel": "Foreign letters of credit" } } }, "auth_ref": [] }, "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount", "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount" } } }, "auth_ref": [ "r771", "r781", "r791", "r823" ] }, "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Expense of Enforcement, Amount", "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount" } } }, "auth_ref": [ "r771", "r781", "r791", "r823" ] }, "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Violation of Home Country Law, Amount", "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount" } } }, "auth_ref": [ "r771", "r781", "r791", "r823" ] }, "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery, Explanation of Impracticability [Text Block]", "terseLabel": "Forgone Recovery, Explanation of Impracticability" } } }, "auth_ref": [ "r771", "r781", "r791", "r823" ] }, "ecd_ForgoneRecoveryIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "ForgoneRecoveryIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r771", "r781", "r791", "r823" ] }, "ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]", "terseLabel": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year" } } }, "auth_ref": [ "r804" ] }, "us-gaap_GainLossOnSaleOfPropertyPlantEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GainLossOnSaleOfPropertyPlantEquipment", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Gain (Loss) on Disposition of Property Plant Equipment", "negatedLabel": "Gain on sale of property and equipment", "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property." } } }, "auth_ref": [ "r4" ] }, "us-gaap_Goodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Goodwill", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsGoodwillDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Goodwill", "terseLabel": "Goodwill", "documentation": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized." } } }, "auth_ref": [ "r157", "r258", "r540", "r695", "r700", "r724", "r731", "r886", "r893" ] }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Goodwill and Intangible Assets" } } }, "auth_ref": [] }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssets" ], "lang": { "en-us": { "role": { "label": "Goodwill and Intangible Assets Disclosure [Text Block]", "verboseLabel": "Goodwill and Intangible Assets", "documentation": "The entire disclosure for goodwill and intangible assets." } } }, "auth_ref": [ "r884", "r896" ] }, "us-gaap_GoodwillLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GoodwillLineItems", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsGoodwillDetails" ], "lang": { "en-us": { "role": { "label": "Goodwill [Line Items]", "terseLabel": "Goodwill", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r259", "r260", "r261", "r262", "r263", "r264", "r265", "r266", "r267", "r268", "r269", "r700" ] }, "us-gaap_GranteeStatusAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GranteeStatusAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Grantee Status [Axis]", "documentation": "Information by status of recipient to whom award is granted." } } }, "auth_ref": [ "r379", "r381", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r402", "r403", "r404", "r405", "r406", "r407", "r408" ] }, "us-gaap_GranteeStatusDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GranteeStatusDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Grantee Status [Domain]", "documentation": "Status of recipient to whom award is granted." } } }, "auth_ref": [ "r379", "r381", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r402", "r403", "r404", "r405", "r406", "r407", "r408" ] }, "us-gaap_GrossProfit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GrossProfit", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Gross Profit", "terseLabel": "Gross Profit", "totalLabel": "Gross profit", "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity." } } }, "auth_ref": [ "r69", "r73", "r108", "r186", "r253", "r300", "r301", "r303", "r304", "r305", "r306", "r307", "r309", "r310", "r475", "r689", "r694", "r876", "r877", "r878", "r879", "r880", "r916" ] }, "prim_GrossProfitAsPercentageOfSegmentRevenue": { "xbrltype": "percentItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "GrossProfitAsPercentageOfSegmentRevenue", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the gross profit represented as a percentage of total segment revenue.", "label": "Gross Profit as Percentage of Segment Revenue", "terseLabel": "% of Segment Revenue" } } }, "auth_ref": [] }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Income (Loss) from Continuing Operations before Income Taxes, Extraordinary Items, Noncontrolling Interest", "totalLabel": "Income before provision for income taxes", "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest." } } }, "auth_ref": [ "r70", "r104", "r108", "r543", "r553", "r689", "r694", "r876", "r877", "r878", "r879", "r880" ] }, "us-gaap_IncomeStatementAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeStatementAbstract", "lang": { "en-us": { "role": { "label": "CONDENSED CONSOLIDATED STATEMENTS OF INCOME" } } }, "auth_ref": [] }, "us-gaap_IncomeTaxDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Income Taxes" } } }, "auth_ref": [] }, "us-gaap_IncomeTaxDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxDisclosureTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureIncomeTaxes" ], "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Text Block]", "terseLabel": "Income Taxes", "documentation": "The entire disclosure for income tax." } } }, "auth_ref": [ "r187", "r410", "r414", "r415", "r416", "r417", "r418", "r419", "r425", "r427", "r428", "r429", "r586", "r720" ] }, "us-gaap_IncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxExpenseBenefit", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Income Tax Expense (Benefit)", "negatedLabel": "Provision for income taxes", "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r110", "r115", "r201", "r202", "r215", "r229", "r243", "r413", "r414", "r426", "r560", "r720" ] }, "us-gaap_IncomeTaxesPaidNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxesPaidNet", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Income Taxes Paid", "terseLabel": "Cash paid for income taxes, net of refunds received", "documentation": "Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax." } } }, "auth_ref": [ "r19", "r182", "r420", "r421" ] }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInAccountsPayable", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Accounts Payable", "terseLabel": "Accounts payable", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business." } } }, "auth_ref": [ "r3" ] }, "us-gaap_IncreaseDecreaseInAccruedLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInAccruedLiabilities", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Accrued Liabilities", "verboseLabel": "Accrued liabilities", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid." } } }, "auth_ref": [ "r3" ] }, "us-gaap_IncreaseDecreaseInContractWithCustomerAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInContractWithCustomerAsset", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Contract with Customer, Asset", "negatedLabel": "Contract assets", "documentation": "Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time." } } }, "auth_ref": [ "r865" ] }, "prim_IncreaseDecreaseInContractWithCustomerAssetNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "IncreaseDecreaseInContractWithCustomerAssetNetCurrent", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueContractAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in contract with customer asset net current.", "label": "Increase (Decrease) in Contract with Customer Asset Net Current", "terseLabel": "Increase (decrease) in contract assets" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInContractWithCustomerLiability", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Contract with Customer, Liability", "terseLabel": "Contract liabilities", "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable." } } }, "auth_ref": [ "r505", "r865" ] }, "prim_IncreaseDecreaseInContractWithCustomerLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "IncreaseDecreaseInContractWithCustomerLiabilityCurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueContractLiabilitiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in contract with customers liability current.", "label": "Increase (Decrease) in Contract with Customer Liability Current", "terseLabel": "Increase in contract liabilities" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Capital [Abstract]", "terseLabel": "Changes in assets and liabilities:" } } }, "auth_ref": [] }, "prim_IncreaseDecreaseInOperatingLeaseAssetsAndLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "IncreaseDecreaseInOperatingLeaseAssetsAndLiabilities", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in operating lease assets and liabilities.", "label": "Increase Decrease in Operating Lease Assets and Liabilities", "negatedLabel": "Operating lease assets and liabilities, net" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInOtherCurrentAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOtherCurrentAssets", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Other Current Assets", "negatedLabel": "Other current assets", "documentation": "Amount of increase (decrease) in current assets classified as other." } } }, "auth_ref": [ "r865" ] }, "us-gaap_IncreaseDecreaseInOtherNoncurrentAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOtherNoncurrentAssets", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Other Noncurrent Assets", "negatedLabel": "Other long-term assets", "documentation": "Amount of increase (decrease) in noncurrent assets classified as other." } } }, "auth_ref": [ "r865" ] }, "us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOtherNoncurrentLiabilities", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Other Noncurrent Liabilities", "terseLabel": "Other long-term liabilities", "documentation": "Amount of increase (decrease) in noncurrent operating liabilities classified as other." } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInReceivables": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInReceivables", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Receivables", "negatedLabel": "Accounts receivable", "documentation": "The increase (decrease) during the reporting period in the total amount due within one year (or one operating cycle) from all parties, associated with underlying transactions that are classified as operating activities." } } }, "auth_ref": [ "r3" ] }, "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInStockholdersEquityRollForward", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]", "terseLabel": "Increase (Decrease) in Stockholders' Equity Roll Forward", "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period." } } }, "auth_ref": [] }, "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-based Payment Arrangements", "terseLabel": "Dilutive effect of stock-based awards", "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method." } } }, "auth_ref": [ "r207", "r208", "r209", "r213", "r382" ] }, "ecd_IndividualAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "IndividualAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure", "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure", "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Individual [Axis]", "terseLabel": "Individual:" } } }, "auth_ref": [ "r771", "r781", "r791", "r815", "r823", "r827", "r835" ] }, "ecd_InsiderTradingArrLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "InsiderTradingArrLineItems", "lang": { "en-us": { "role": { "label": "Insider Trading Arrangements [Line Items]", "terseLabel": "Insider Trading Arrangements:" } } }, "auth_ref": [ "r833" ] }, "ecd_InsiderTradingPoliciesProcLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "InsiderTradingPoliciesProcLineItems", "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures [Line Items]", "terseLabel": "Insider Trading Policies and Procedures:" } } }, "auth_ref": [ "r763", "r839" ] }, "ecd_InsiderTrdPoliciesProcAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "InsiderTrdPoliciesProcAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" ], "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures Adopted [Flag]", "terseLabel": "Insider Trading Policies and Procedures Adopted" } } }, "auth_ref": [ "r763", "r839" ] }, "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" ], "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]", "terseLabel": "Insider Trading Policies and Procedures Not Adopted" } } }, "auth_ref": [ "r763", "r839" ] }, "us-gaap_IntangibleAssetsNetExcludingGoodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IntangibleAssetsNetExcludingGoodwill", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsFutureAmortizationDetails", "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Intangible Assets, Net (Excluding Goodwill)", "terseLabel": "Intangible assets, net", "totalLabel": "Intangible assets, net", "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges." } } }, "auth_ref": [ "r270", "r904", "r906" ] }, "us-gaap_InterestIncomeExpenseNonoperatingNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InterestIncomeExpenseNonoperatingNet", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Interest Income (Expense), Nonoperating, Net", "terseLabel": "Interest expense, net", "documentation": "Amount of interest income (expense) classified as nonoperating." } } }, "auth_ref": [ "r694", "r863", "r877" ] }, "us-gaap_InterestPaidNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InterestPaidNet", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Interest Paid", "terseLabel": "Cash paid for interest", "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount." } } }, "auth_ref": [ "r177", "r180", "r181" ] }, "us-gaap_InterestRateSwapMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InterestRateSwapMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails", "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDerivativeContractAndInstrumentsDetails", "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDetails", "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsDetails" ], "lang": { "en-us": { "role": { "label": "Interest rate swap", "documentation": "Forward based contracts in which two parties agree to swap periodic payments that are fixed at the outset of the swap contract with variable payments based on a market interest rate (index rate) over a specified period." } } }, "auth_ref": [ "r683", "r752", "r753" ] }, "us-gaap_IntersegmentEliminationMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IntersegmentEliminationMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails", "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "label": "Intersegment Eliminations [Member]", "terseLabel": "Intersegment Eliminations", "documentation": "Eliminating entries used in operating segment consolidation." } } }, "auth_ref": [ "r107", "r215", "r223", "r237", "r238", "r239", "r240", "r241", "r243", "r244", "r694" ] }, "us-gaap_InventoryForLongTermContractsOrPrograms": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventoryForLongTermContractsOrPrograms", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueContractAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Inventory for Long-term Contracts or Programs, Gross", "terseLabel": "Contract materials (not yet installed)", "documentation": "Amount before valuation and LIFO reserves, and progress payments, of inventory associated with long-term contracts, expected to be sold, or consumed within one year or operating cycle, if longer." } } }, "auth_ref": [ "r858" ] }, "us-gaap_LeaseCostAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeaseCostAbstract", "presentation": [ "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Components of lease expense" } } }, "auth_ref": [] }, "us-gaap_LeaseCostTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeaseCostTableTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Lease, Cost [Table Text Block]", "terseLabel": "Summary of components of lease expense", "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income." } } }, "auth_ref": [ "r974" ] }, "us-gaap_LeasesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeasesAbstract", "lang": { "en-us": { "role": { "label": "Leases" } } }, "auth_ref": [] }, "prim_LesseeOperatingLeaseLiabilityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "LesseeOperatingLeaseLiabilityTableTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "documentation": "The tabular disclosure of operating lease liabilities.", "label": "Lessee Operating Lease Liability [Table Text Block]", "terseLabel": "Summary of operating lease liabilities" } } }, "auth_ref": [] }, "us-gaap_LesseeOperatingLeaseRenewalTerm": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseRenewalTerm", "presentation": [ "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Renewal Term", "terseLabel": "Renewal term", "documentation": "Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r973" ] }, "us-gaap_LesseeOperatingLeasesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeasesTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureLeases" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Leases [Text Block]", "terseLabel": "Leases", "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability." } } }, "auth_ref": [ "r489" ] }, "us-gaap_LetterOfCreditMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LetterOfCreditMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Commercial letters of credit", "documentation": "A document typically issued by a financial institution which acts as a guarantee of payment to a beneficiary, or as the source of payment for a specific transaction (for example, wiring funds to a foreign exporter if and when specified merchandise is accepted pursuant to the terms of the letter of credit)." } } }, "auth_ref": [] }, "us-gaap_LettersOfCreditOutstandingAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LettersOfCreditOutstandingAmount", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsCanadianCreditFacilitiesDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Letters of Credit Outstanding, Amount", "terseLabel": "Letters of credit outstanding", "documentation": "The total amount of the contingent obligation under letters of credit outstanding as of the reporting date." } } }, "auth_ref": [] }, "us-gaap_Liabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Liabilities", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Liabilities", "totalLabel": "Total liabilities", "documentation": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others." } } }, "auth_ref": [ "r11", "r50", "r51", "r52", "r54", "r55", "r56", "r57", "r186", "r253", "r300", "r301", "r303", "r304", "r305", "r306", "r307", "r309", "r310", "r440", "r443", "r444", "r475", "r602", "r688", "r758", "r916", "r975", "r976" ] }, "us-gaap_LiabilitiesAndStockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesAndStockholdersEquity", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Liabilities and Equity", "totalLabel": "Total liabilities and stockholders' equity", "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any." } } }, "auth_ref": [ "r65", "r103", "r551", "r731", "r868", "r883", "r969" ] }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesAndStockholdersEquityAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Liabilities and Equity [Abstract]", "terseLabel": "LIABILITIES AND STOCKHOLDERS' EQUITY" } } }, "auth_ref": [] }, "us-gaap_LiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesCurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Liabilities, Current", "totalLabel": "Total current liabilities", "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer." } } }, "auth_ref": [ "r52", "r155", "r186", "r253", "r300", "r301", "r303", "r304", "r305", "r306", "r307", "r309", "r310", "r440", "r443", "r444", "r475", "r731", "r916", "r975", "r976" ] }, "us-gaap_LiabilitiesCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesCurrentAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Liabilities, Current [Abstract]", "terseLabel": "Current liabilities:" } } }, "auth_ref": [] }, "us-gaap_LineOfCredit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCredit", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsCanadianCreditFacilitiesDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Line of Credit Facility, Amount Outstanding", "terseLabel": "Borrowings outstanding", "documentation": "The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement." } } }, "auth_ref": [ "r11", "r101", "r985" ] }, "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditFacilityMaximumBorrowingCapacity", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsCanadianCreditFacilitiesDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Line of Credit Facility, Maximum Borrowing Capacity", "terseLabel": "Maximum borrowing capacity", "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility." } } }, "auth_ref": [ "r49", "r53" ] }, "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditFacilityRemainingBorrowingCapacity", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsCanadianCreditFacilitiesDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Line of Credit Facility, Remaining Borrowing Capacity", "terseLabel": "Available borrowing capacity", "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding)." } } }, "auth_ref": [ "r49", "r53", "r299" ] }, "us-gaap_LoansPayableMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LoansPayableMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Term loan", "documentation": "Borrowing supported by a written promise to pay an obligation." } } }, "auth_ref": [] }, "dei_LocalPhoneNumber": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "LocalPhoneNumber", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Local Phone Number", "documentation": "Local phone number for entity." } } }, "auth_ref": [] }, "us-gaap_LongTermDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebt", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Long-term Debt", "totalLabel": "Total debt, net", "verboseLabel": "Aggregate principal amount", "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt. Excludes lease obligation." } } }, "auth_ref": [ "r11", "r101", "r324", "r339", "r703", "r704", "r729", "r985" ] }, "us-gaap_LongTermDebtCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebtCurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Long-term Debt, Current Maturities", "negatedLabel": "Less: current portion", "terseLabel": "Current portion of long-term debt", "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as current. Excludes lease obligation." } } }, "auth_ref": [ "r161" ] }, "us-gaap_LongTermDebtNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebtNoncurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Long-term Debt, Excluding Current Maturities", "terseLabel": "Long-term debt, net of current portion", "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation." } } }, "auth_ref": [ "r162" ] }, "prim_LongTermRetentionPlanMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "LongTermRetentionPlanMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "documentation": "This element represents the Long-Term Retention Plan of the entity.", "label": "LTR Plan" } } }, "auth_ref": [] }, "us-gaap_LongtermDebtTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongtermDebtTypeAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsCanadianCreditFacilitiesDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Long-term Debt, Type [Axis]", "documentation": "Information by type of long-term debt." } } }, "auth_ref": [ "r11", "r910", "r911", "r912" ] }, "us-gaap_LongtermDebtTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongtermDebtTypeDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsCanadianCreditFacilitiesDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Long-term Debt, Type [Domain]", "documentation": "Type of long-term debt arrangement, such as notes, line of credit, commercial paper, asset-based financing, project financing, letter of credit financing. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer." } } }, "auth_ref": [ "r11", "r29", "r910", "r911", "r912" ] }, "srt_MajorCustomersAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "MajorCustomersAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails", "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]", "documentation": "Information by name or description of a single external customer or a group of external customers." } } }, "auth_ref": [ "r250", "r711", "r740", "r744", "r922", "r987", "r990", "r991", "r993", "r994", "r995", "r996", "r997", "r998", "r999", "r1000", "r1001", "r1002", "r1003", "r1004", "r1005", "r1006", "r1007", "r1008", "r1009", "r1010", "r1011", "r1012", "r1013", "r1014", "r1015", "r1016", "r1017" ] }, "prim_MasterServiceAgreementCustomersMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "MasterServiceAgreementCustomersMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "documentation": "This member stands for MSA customers.", "label": "MSA" } } }, "auth_ref": [] }, "srt_MaximumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "MaximumMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails", "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails", "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails", "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetailsDetails" ], "lang": { "en-us": { "role": { "label": "Maximum", "documentation": "Upper limit of the provided range." } } }, "auth_ref": [ "r119", "r121", "r123", "r124", "r126", "r149", "r150", "r294", "r295", "r296", "r297", "r377", "r409", "r464", "r504", "r572", "r573", "r580", "r594", "r595", "r647", "r649", "r651", "r652", "r663", "r680", "r681", "r699", "r707", "r719", "r725", "r726", "r727", "r728", "r741", "r920", "r977", "r978", "r979", "r980", "r981", "r982" ] }, "ecd_MeasureAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "MeasureAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Measure [Axis]", "terseLabel": "Measure:" } } }, "auth_ref": [ "r807" ] }, "ecd_MeasureName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "MeasureName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Measure Name", "terseLabel": "Name" } } }, "auth_ref": [ "r807" ] }, "srt_MinimumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "MinimumMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails", "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetailsDetails" ], "lang": { "en-us": { "role": { "label": "Minimum", "documentation": "Lower limit of the provided range." } } }, "auth_ref": [ "r119", "r121", "r123", "r124", "r126", "r149", "r150", "r294", "r295", "r296", "r297", "r377", "r409", "r464", "r504", "r572", "r573", "r580", "r594", "r595", "r647", "r649", "r651", "r652", "r663", "r680", "r681", "r699", "r707", "r719", "r725", "r726", "r727", "r741", "r920", "r977", "r978", "r979", "r980", "r981", "r982" ] }, "ecd_MnpiDiscTimedForCompValFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "MnpiDiscTimedForCompValFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "MNPI Disclosure Timed for Compensation Value [Flag]", "terseLabel": "MNPI Disclosure Timed for Compensation Value" } } }, "auth_ref": [ "r826" ] }, "us-gaap_MortgagesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "MortgagesMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails" ], "lang": { "en-us": { "role": { "label": "Mortgage notes", "documentation": "A loan to finance the purchase of real estate where the lender has a lien on the property as collateral for the loan." } } }, "auth_ref": [] }, "ecd_MtrlTermsOfTrdArrTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "MtrlTermsOfTrdArrTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Material Terms of Trading Arrangement [Text Block]", "terseLabel": "Material Terms of Trading Arrangement" } } }, "auth_ref": [ "r834" ] }, "srt_NameOfMajorCustomerDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "NameOfMajorCustomerDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails", "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "label": "Customer [Domain]", "documentation": "Single external customer or group of external customers." } } }, "auth_ref": [ "r250", "r711", "r740", "r744", "r922", "r987", "r990", "r991", "r993", "r994", "r995", "r996", "r997", "r998", "r999", "r1000", "r1001", "r1002", "r1003", "r1004", "r1005", "r1006", "r1007", "r1008", "r1009", "r1010", "r1011", "r1012", "r1013", "r1014", "r1015", "r1016", "r1017" ] }, "ecd_NamedExecutiveOfficersFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NamedExecutiveOfficersFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Named Executive Officers, Footnote [Text Block]", "terseLabel": "Named Executive Officers, Footnote" } } }, "auth_ref": [ "r808" ] }, "us-gaap_NatureOfOperations": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NatureOfOperations", "presentation": [ "http://www.primoriscorp.com/role/DisclosureNatureOfBusiness" ], "lang": { "en-us": { "role": { "label": "Nature of Operations [Text Block]", "terseLabel": "Nature of Business", "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward." } } }, "auth_ref": [ "r111", "r116" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInFinancingActivities", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities, Continuing Operations", "totalLabel": "Net cash used in financing activities", "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit." } } }, "auth_ref": [ "r179" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInFinancingActivitiesContinuingOperationsAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities, Continuing Operations [Abstract]", "terseLabel": "Cash flows from financing activities:" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInInvestingActivities", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities, Continuing Operations", "totalLabel": "Net cash provided by (used in) investing activities", "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets." } } }, "auth_ref": [ "r179" ] }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInInvestingActivitiesContinuingOperationsAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities, Continuing Operations [Abstract]", "terseLabel": "Cash flows from investing activities:" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInOperatingActivities", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities, Continuing Operations", "totalLabel": "Net cash used in operating activities", "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities." } } }, "auth_ref": [ "r81", "r82", "r83" ] }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesContinuingOperationsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInOperatingActivitiesContinuingOperationsAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities, Continuing Operations [Abstract]", "terseLabel": "Cash flows from operating activities:" } } }, "auth_ref": [] }, "us-gaap_NetIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetIncomeLoss", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "totalLabel": "Net income", "label": "Net Income (Loss)", "terseLabel": "Net Income (Loss)", "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent." } } }, "auth_ref": [ "r74", "r83", "r105", "r153", "r167", "r169", "r173", "r186", "r192", "r194", "r195", "r196", "r197", "r198", "r201", "r202", "r210", "r253", "r300", "r301", "r303", "r304", "r305", "r306", "r307", "r309", "r310", "r433", "r437", "r458", "r475", "r555", "r624", "r640", "r641", "r756", "r916" ] }, "us-gaap_NetIncomeLossAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetIncomeLossAbstract", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "label": "Net Income (Loss) Attributable to Parent [Abstract]", "terseLabel": "Numerator:" } } }, "auth_ref": [] }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationPolicies" ], "lang": { "en-us": { "role": { "label": "New Accounting Pronouncements, Policy [Policy Text Block]", "terseLabel": "Recently Issued Accounting Pronouncements", "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact." } } }, "auth_ref": [] }, "ecd_NonGaapMeasureDescriptionTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonGaapMeasureDescriptionTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-GAAP Measure Description [Text Block]", "terseLabel": "Non-GAAP Measure Description" } } }, "auth_ref": [ "r807" ] }, "prim_NonMasterServiceAgreementCustomersMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "NonMasterServiceAgreementCustomersMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "documentation": "This member stands for Non-MSA customers.", "label": "Non-MSA" } } }, "auth_ref": [] }, "ecd_NonNeosMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonNeosMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-NEOs [Member]", "terseLabel": "Non-NEOs" } } }, "auth_ref": [ "r771", "r781", "r791", "r815", "r823" ] }, "ecd_NonPeoNeoAvgCompActuallyPaidAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonPeoNeoAvgCompActuallyPaidAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO Average Compensation Actually Paid Amount", "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount" } } }, "auth_ref": [ "r798" ] }, "ecd_NonPeoNeoAvgTotalCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonPeoNeoAvgTotalCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO Average Total Compensation Amount", "terseLabel": "Non-PEO NEO Average Total Compensation Amount" } } }, "auth_ref": [ "r797" ] }, "ecd_NonPeoNeoMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonPeoNeoMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO [Member]", "terseLabel": "Non-PEO NEO" } } }, "auth_ref": [ "r815" ] }, "ecd_NonRule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonRule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]", "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted" } } }, "auth_ref": [ "r834" ] }, "ecd_NonRule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonRule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]", "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated" } } }, "auth_ref": [ "r834" ] }, "prim_NonUnitedStatesMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "NonUnitedStatesMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsRevenueAndTotalAssetsByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents regions excluding the United States.", "label": "Non-United States" } } }, "auth_ref": [] }, "us-gaap_NoncashInvestingAndFinancingItemsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NoncashInvestingAndFinancingItemsAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Noncash Investing and Financing Items [Abstract]", "verboseLabel": "SUPPLEMENTAL DISCLOSURES OF NONCASH INVESTING AND FINANCING ACTIVITIES" } } }, "auth_ref": [] }, "us-gaap_NonoperatingIncomeExpenseAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NonoperatingIncomeExpenseAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Nonoperating Income (Expense) [Abstract]", "terseLabel": "Other income (expense):" } } }, "auth_ref": [] }, "prim_NumberOfInstrumentsUsedForTrading": { "xbrltype": "integerItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "NumberOfInstrumentsUsedForTrading", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the number of instruments used for trading.", "label": "Number Of Instruments Used For Trading", "terseLabel": "Number of instruments used for trading" } } }, "auth_ref": [] }, "prim_O2023Q1DividendsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "O2023Q1DividendsMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents ordinary dividends on common stock for the Q1 2023 period.", "label": "O 2023 Q1 Dividends [Member]", "terseLabel": "Q1 2023 Dividends" } } }, "auth_ref": [] }, "prim_O2023Q2DividendsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "O2023Q2DividendsMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents ordinary dividends on common stock for the Q2 2023 period.", "label": "O 2023 Q2 Dividends [Member]", "terseLabel": "Q2 2023 Dividends" } } }, "auth_ref": [] }, "prim_O2023Q3DividendsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "O2023Q3DividendsMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents ordinary dividends on common stock for the Q3 2023 period.", "label": "O 2023 Q3 Dividends [Member]", "terseLabel": "Q3 2023 Dividends" } } }, "auth_ref": [] }, "prim_O2023Q4DividendsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "O2023Q4DividendsMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents ordinary dividends on common stock for the Q4 2023 period.", "label": "O 2023 Q4 Dividends [Member]", "terseLabel": "Q4 2023 Dividends" } } }, "auth_ref": [] }, "prim_O2024Q1DividendsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "O2024Q1DividendsMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents ordinary dividends on common stock for the Q1 2024 period.", "label": "O 2024 Q1 Dividends [Member]", "terseLabel": "Q1 2024 Dividends" } } }, "auth_ref": [] }, "prim_O2024Q2DividendsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "O2024Q2DividendsMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents ordinary dividends on common stock for the Q2 2024 period.", "label": "O 2024 Q2 Dividends [Member]", "terseLabel": "Q2 2024 Dividends" } } }, "auth_ref": [] }, "us-gaap_OperatingIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingIncomeLoss", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Operating Income (Loss)", "totalLabel": "Operating income", "documentation": "The net result for the period of deducting operating expenses from operating revenues." } } }, "auth_ref": [ "r108", "r689", "r876", "r877", "r878", "r879", "r880" ] }, "us-gaap_OperatingLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseCost", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Cost", "terseLabel": "Operating lease expense", "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability." } } }, "auth_ref": [ "r494", "r730" ] }, "us-gaap_OperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiability", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability", "totalLabel": "Operating lease liabilities", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease." } } }, "auth_ref": [ "r492" ] }, "us-gaap_OperatingLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiabilityCurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilitiesDetails", "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability, Current", "terseLabel": "Accrued liabilities", "verboseLabel": "Current operating lease liability", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current." } } }, "auth_ref": [ "r492" ] }, "us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList", "presentation": [ "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability, Current, Statement of Financial Position [Extensible List]", "documentation": "Indicates line item in statement of financial position that includes current operating lease liability." } } }, "auth_ref": [ "r493" ] }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiabilityNoncurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability, Noncurrent", "terseLabel": "Noncurrent operating lease liabilities, net of current portion", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent." } } }, "auth_ref": [ "r492" ] }, "us-gaap_OperatingLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseRightOfUseAsset", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Right-of-Use Asset", "verboseLabel": "Operating lease assets", "documentation": "Amount of lessee's right to use underlying asset under operating lease." } } }, "auth_ref": [ "r491" ] }, "us-gaap_OperatingSegmentsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingSegmentsMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails", "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "label": "Operating Segments [Member]", "terseLabel": "Operating Segment", "documentation": "Identifies components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity." } } }, "auth_ref": [ "r237", "r238", "r239", "r240", "r241", "r244", "r694", "r695" ] }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract", "lang": { "en-us": { "role": { "label": "Nature of Business" } } }, "auth_ref": [] }, "us-gaap_OtherAccruedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherAccruedLiabilitiesCurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Other Accrued Liabilities, Current", "terseLabel": "Other", "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r51" ] }, "us-gaap_OtherAssetsNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherAssetsNoncurrent", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Other Assets, Noncurrent", "terseLabel": "Other long-term assets", "documentation": "Amount of noncurrent assets classified as other." } } }, "auth_ref": [ "r159" ] }, "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax", "terseLabel": "Foreign currency translation adjustments", "verboseLabel": "Foreign currency translation adjustments, net of tax", "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature." } } }, "auth_ref": [ "r2", "r556" ] }, "us-gaap_OtherLiabilitiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherLiabilitiesNoncurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Other Liabilities, Noncurrent", "terseLabel": "Other long-term liabilities", "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r55" ] }, "us-gaap_OtherNoncashExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherNoncashExpense", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Other Noncash Expense", "terseLabel": "Other non-cash items", "documentation": "Amount of expense or loss included in net income that result in no cash flow, classified as other." } } }, "auth_ref": [ "r83" ] }, "us-gaap_OtherNonoperatingIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherNonoperatingIncomeExpense", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Other Nonoperating Income (Expense)", "terseLabel": "Other income (expense), net", "documentation": "Amount of income (expense) related to nonoperating activities, classified as other." } } }, "auth_ref": [ "r76" ] }, "ecd_OtherPerfMeasureAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "OtherPerfMeasureAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Other Performance Measure, Amount", "terseLabel": "Other Performance Measure, Amount" } } }, "auth_ref": [ "r807" ] }, "ecd_OutstandingAggtErrCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "OutstandingAggtErrCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Aggregate Erroneous Compensation Amount", "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount" } } }, "auth_ref": [ "r769", "r779", "r789", "r821" ] }, "ecd_OutstandingRecoveryCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "OutstandingRecoveryCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Recovery Compensation Amount", "terseLabel": "Compensation Amount" } } }, "auth_ref": [ "r772", "r782", "r792", "r824" ] }, "ecd_OutstandingRecoveryIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "OutstandingRecoveryIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Recovery, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r772", "r782", "r792", "r824" ] }, "ecd_PayVsPerformanceDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PayVsPerformanceDisclosureLineItems", "lang": { "en-us": { "role": { "label": "Pay vs Performance Disclosure [Line Items]", "terseLabel": "Pay vs Performance Disclosure" } } }, "auth_ref": [ "r796" ] }, "us-gaap_PayablesAndAccrualsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PayablesAndAccrualsAbstract", "lang": { "en-us": { "role": { "label": "Accounts Payable and Accrued Liabilities" } } }, "auth_ref": [] }, "us-gaap_PaymentsOfDividendsCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsOfDividendsCommonStock", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments of Ordinary Dividends, Common Stock", "negatedLabel": "Dividends paid", "documentation": "Amount of cash outflow in the form of ordinary dividends to common shareholders of the parent entity." } } }, "auth_ref": [ "r79" ] }, "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payment, Tax Withholding, Share-based Payment Arrangement", "negatedLabel": "Payments related to tax withholding for stock-based compensation", "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement." } } }, "auth_ref": [ "r176" ] }, "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments to Acquire Businesses, Net of Cash Acquired", "negatedLabel": "Cash paid for acquisitions, net of cash and restricted cash acquired", "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase." } } }, "auth_ref": [ "r15" ] }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments to Acquire Property, Plant, and Equipment", "negatedLabel": "Purchase of property and equipment", "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets." } } }, "auth_ref": [ "r78" ] }, "ecd_PeerGroupIssuersFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeerGroupIssuersFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Peer Group Issuers, Footnote [Text Block]", "terseLabel": "Peer Group Issuers, Footnote" } } }, "auth_ref": [ "r806" ] }, "ecd_PeerGroupTotalShareholderRtnAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeerGroupTotalShareholderRtnAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Peer Group Total Shareholder Return Amount", "terseLabel": "Peer Group Total Shareholder Return Amount" } } }, "auth_ref": [ "r806" ] }, "ecd_PeoActuallyPaidCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeoActuallyPaidCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Actually Paid Compensation Amount", "terseLabel": "PEO Actually Paid Compensation Amount" } } }, "auth_ref": [ "r798" ] }, "ecd_PeoMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeoMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO [Member]", "terseLabel": "PEO" } } }, "auth_ref": [ "r815" ] }, "ecd_PeoName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeoName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Name", "terseLabel": "PEO Name" } } }, "auth_ref": [ "r808" ] }, "ecd_PeoTotalCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PeoTotalCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Total Compensation Amount", "terseLabel": "PEO Total Compensation Amount" } } }, "auth_ref": [ "r797" ] }, "us-gaap_PlanNameAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PlanNameAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Plan Name [Axis]", "documentation": "Information by plan name for share-based payment arrangement." } } }, "auth_ref": [ "r923", "r924", "r925", "r926", "r927", "r928", "r929", "r930", "r931", "r932", "r933", "r934", "r935", "r936", "r937", "r938", "r939", "r940", "r941", "r942", "r943", "r944", "r945", "r946", "r947", "r948" ] }, "us-gaap_PlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PlanNameDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Plan Name [Domain]", "documentation": "Plan name for share-based payment arrangement." } } }, "auth_ref": [ "r923", "r924", "r925", "r926", "r927", "r928", "r929", "r930", "r931", "r932", "r933", "r934", "r935", "r936", "r937", "r938", "r939", "r940", "r941", "r942", "r943", "r944", "r945", "r946", "r947", "r948" ] }, "ecd_PnsnAdjsPrrSvcCstMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PnsnAdjsPrrSvcCstMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pension Adjustments Prior Service Cost [Member]", "terseLabel": "Pension Adjustments Prior Service Cost" } } }, "auth_ref": [ "r799" ] }, "ecd_PnsnAdjsSvcCstMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PnsnAdjsSvcCstMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pension Adjustments Service Cost [Member]", "terseLabel": "Pension Adjustments Service Cost" } } }, "auth_ref": [ "r843" ] }, "ecd_PnsnBnftsAdjFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PnsnBnftsAdjFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pension Benefits Adjustments, Footnote [Text Block]", "terseLabel": "Pension Benefits Adjustments, Footnote" } } }, "auth_ref": [ "r798" ] }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PrepaidExpenseAndOtherAssetsCurrent", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Prepaid Expense and Other Assets, Current", "terseLabel": "Prepaid expenses and other current assets", "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r859" ] }, "us-gaap_PriorPeriodReclassificationAdjustmentDescription": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PriorPeriodReclassificationAdjustmentDescription", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationPolicies" ], "lang": { "en-us": { "role": { "label": "Reclassification, Policy [Policy Text Block]", "terseLabel": "Reclassification", "documentation": "Disclosure of accounting policy for reclassification affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error." } } }, "auth_ref": [ "r855" ] }, "prim_ProceedsFromAccountsReceivableSecuritizationOperatingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "ProceedsFromAccountsReceivableSecuritizationOperatingActivities", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "documentation": "Proceeds from securitizations of receivables treated as collateralized borrowings, which are classified as operating activities.", "label": "Proceeds From Accounts Receivable Securitization, Operating Activities", "terseLabel": "Cash proceeds from facility" } } }, "auth_ref": [] }, "us-gaap_ProceedsFromLinesOfCredit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromLinesOfCredit", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from Lines of Credit", "terseLabel": "Borrowings under revolving lines of credit", "documentation": "Amount of cash inflow from contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements." } } }, "auth_ref": [ "r16", "r867" ] }, "us-gaap_ProceedsFromPaymentsForOtherFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromPaymentsForOtherFinancingActivities", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from (Payments for) Other Financing Activities", "terseLabel": "Other", "documentation": "Amount of cash inflow (outflow) from financing activities classified as other." } } }, "auth_ref": [ "r847", "r864" ] }, "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from Sale of Property, Plant, and Equipment", "terseLabel": "Proceeds from sale of assets", "verboseLabel": "Aggregate sales price, net of closing costs", "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale." } } }, "auth_ref": [ "r77" ] }, "us-gaap_ProfitLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProfitLoss", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest", "verboseLabel": "Net income", "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest." } } }, "auth_ref": [ "r153", "r167", "r169", "r178", "r186", "r192", "r198", "r201", "r202", "r253", "r300", "r301", "r303", "r304", "r305", "r306", "r307", "r309", "r310", "r433", "r437", "r438", "r441", "r442", "r458", "r475", "r543", "r554", "r587", "r624", "r640", "r641", "r721", "r722", "r757", "r862", "r916" ] }, "us-gaap_PropertyPlantAndEquipmentNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentNet", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment, Net", "terseLabel": "Property and equipment, net", "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures." } } }, "auth_ref": [ "r5", "r496", "r544", "r552", "r731" ] }, "ecd_PvpTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PvpTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pay vs Performance Disclosure [Table]", "terseLabel": "Pay vs Performance Disclosure" } } }, "auth_ref": [ "r796" ] }, "ecd_PvpTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "PvpTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pay vs Performance [Table Text Block]", "terseLabel": "Pay vs Performance Disclosure, Table" } } }, "auth_ref": [ "r796" ] }, "srt_RangeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RangeAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails", "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails", "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails", "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetailsDetails" ], "lang": { "en-us": { "role": { "label": "Range [Axis]", "documentation": "Information by statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median." } } }, "auth_ref": [ "r119", "r121", "r123", "r124", "r126", "r149", "r150", "r294", "r295", "r296", "r297", "r370", "r377", "r405", "r406", "r407", "r409", "r464", "r502", "r503", "r504", "r572", "r573", "r580", "r594", "r595", "r647", "r649", "r651", "r652", "r663", "r680", "r681", "r699", "r707", "r719", "r725", "r726", "r727", "r728", "r741", "r747", "r913", "r920", "r958", "r978", "r979", "r980", "r981", "r982" ] }, "srt_RangeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RangeMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails", "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails", "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails", "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetailsDetails" ], "lang": { "en-us": { "role": { "label": "Range [Domain]", "documentation": "Statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median." } } }, "auth_ref": [ "r119", "r121", "r123", "r124", "r126", "r149", "r150", "r294", "r295", "r296", "r297", "r370", "r377", "r405", "r406", "r407", "r409", "r464", "r502", "r503", "r504", "r572", "r573", "r580", "r594", "r595", "r647", "r649", "r651", "r652", "r663", "r680", "r681", "r699", "r707", "r719", "r725", "r726", "r727", "r728", "r741", "r747", "r913", "r920", "r958", "r978", "r979", "r980", "r981", "r982" ] }, "us-gaap_ReceivablesLongTermContractsOrPrograms": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ReceivablesLongTermContractsOrPrograms", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueContractAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Receivables, Long-term Contracts or Programs", "terseLabel": "Retention receivable", "documentation": "Amount to be collected within one year of the balance sheet date (or one operating cycle, if longer) from customers in accordance with the contractual provisions of long-term contracts or programs including amounts billed and unbilled as of the balance sheet date." } } }, "auth_ref": [ "r857" ] }, "us-gaap_ReceivablesNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ReceivablesNetCurrent", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Receivables, Net, Current", "terseLabel": "Accounts receivable, net", "documentation": "The total amount due to the entity within one year of the balance sheet date (or one operating cycle, if longer) from outside sources, including trade accounts receivable, notes and loans receivable, as well as any other types of receivables, net of allowances established for the purpose of reducing such receivables to an amount that approximates their net realizable value." } } }, "auth_ref": [ "r731" ] }, "ecd_RecoveryOfErrCompDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "RecoveryOfErrCompDisclosureLineItems", "lang": { "en-us": { "role": { "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]", "terseLabel": "Recovery of Erroneously Awarded Compensation Disclosure" } } }, "auth_ref": [ "r764", "r774", "r784", "r816" ] }, "prim_RemainingPerformanceObligationOnBondedProjects": { "xbrltype": "monetaryItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "RemainingPerformanceObligationOnBondedProjects", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCommitmentsAndContingenciesLegalDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the remaining performance obligation on the bonded projects.", "label": "Remaining Performance Obligation on Bonded Projects", "terseLabel": "Remaining performance obligation on the bonded projects." } } }, "auth_ref": [] }, "prim_RepaymentOfAccountsReceivableSecuritizationOperatingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "RepaymentOfAccountsReceivableSecuritizationOperatingActivities", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "documentation": "Repayments of securitizations of receivables treated as collateralized borrowings, which are classified as operating activities.", "label": "Repayment Of Accounts Receivable Securitization, Operating Activities", "terseLabel": "Repayments to the facility" } } }, "auth_ref": [] }, "us-gaap_RepaymentsOfLinesOfCredit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RepaymentsOfLinesOfCredit", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Repayments of Lines of Credit", "negatedLabel": "Payments on revolving lines of credit", "documentation": "Amount of cash outflow for payment of an obligation from a lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements." } } }, "auth_ref": [ "r80", "r867" ] }, "us-gaap_RepaymentsOfLongTermDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RepaymentsOfLongTermDebt", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Repayments of Long-term Debt", "negatedLabel": "Payments on long-term debt", "documentation": "The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer." } } }, "auth_ref": [ "r80", "r584" ] }, "ecd_RestatementDateAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "RestatementDateAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Determination Date [Axis]", "terseLabel": "Restatement Determination Date:" } } }, "auth_ref": [ "r765", "r775", "r785", "r817" ] }, "ecd_RestatementDeterminationDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "RestatementDeterminationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Determination Date", "terseLabel": "Restatement Determination Date" } } }, "auth_ref": [ "r766", "r776", "r786", "r818" ] }, "ecd_RestatementDoesNotRequireRecoveryTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "RestatementDoesNotRequireRecoveryTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Does Not Require Recovery [Text Block]", "terseLabel": "Restatement does not require Recovery" } } }, "auth_ref": [ "r773", "r783", "r793", "r825" ] }, "prim_RestrictedAndPerformanceStockUnitsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "RestrictedAndPerformanceStockUnitsMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met.", "label": "Restricted and Performance Stock Units [Member]", "terseLabel": "Restricted and Performance Stock Units" } } }, "auth_ref": [] }, "us-gaap_RestrictedCash": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RestrictedCash", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationRestrictedCashDetails" ], "lang": { "en-us": { "role": { "label": "Restricted Cash", "verboseLabel": "Restricted cash included in prepaid expense and other current assets", "documentation": "Amount of cash restricted as to withdrawal or usage. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits." } } }, "auth_ref": [ "r856", "r866", "r983", "r986" ] }, "us-gaap_RestrictedCashAssetStatementOfFinancialPositionExtensibleList": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RestrictedCashAssetStatementOfFinancialPositionExtensibleList", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationRestrictedCashDetails" ], "lang": { "en-us": { "role": { "label": "Restricted Cash, Statement of Financial Position", "documentation": "Indicates line item in statement of financial position that includes cash restricted to withdrawal or usage." } } }, "auth_ref": [ "r866" ] }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RetainedEarningsAccumulatedDeficit", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Retained Earnings (Accumulated Deficit)", "terseLabel": "Retained earnings", "documentation": "Amount of accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r62", "r92", "r550", "r577", "r579", "r585", "r605", "r731" ] }, "us-gaap_RetainedEarningsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RetainedEarningsMember", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Retained Earnings", "documentation": "Accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r151", "r189", "r190", "r191", "r193", "r198", "r200", "r202", "r254", "r255", "r282", "r422", "r423", "r430", "r431", "r432", "r434", "r436", "r437", "r448", "r450", "r451", "r453", "r456", "r488", "r490", "r574", "r576", "r588", "r1019" ] }, "us-gaap_RevenueFromContractWithCustomerAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueFromContractWithCustomerAbstract", "lang": { "en-us": { "role": { "label": "Revenue" } } }, "auth_ref": [] }, "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueFromContractWithCustomerExcludingAssessedTax", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails", "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails", "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer, Excluding Assessed Tax", "terseLabel": "Revenue", "documentation": "Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise." } } }, "auth_ref": [ "r106", "r107", "r215", "r222", "r223", "r237", "r243", "r246", "r248", "r250", "r365", "r366", "r506" ] }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueFromContractWithCustomerTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenue" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer [Text Block]", "verboseLabel": "Revenue", "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts." } } }, "auth_ref": [ "r117", "r356", "r357", "r358", "r359", "r360", "r361", "r363", "r364", "r369" ] }, "prim_RevenuePercentage": { "xbrltype": "percentItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "RevenuePercentage", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails", "http://www.primoriscorp.com/role/DisclosureReportableSegmentsRevenueAndTotalAssetsByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "documentation": "The percentage of revenue to total revenue.", "label": "Revenue, Percentage", "terseLabel": "% of Total Revenue", "verboseLabel": "% of Revenue" } } }, "auth_ref": [] }, "us-gaap_RevenueRemainingPerformanceObligation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueRemainingPerformanceObligation", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Revenue, Remaining Performance Obligation", "terseLabel": "Remaining performance obligations", "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue." } } }, "auth_ref": [ "r113" ] }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetails", "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetailsDetails" ], "lang": { "en-us": { "role": { "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]", "terseLabel": "Revenue expected timing", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetailsDetails" ], "lang": { "en-us": { "role": { "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period 1", "terseLabel": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction", "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r114" ] }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetailsDetails" ], "lang": { "en-us": { "role": { "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]", "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format." } } }, "auth_ref": [ "r114" ] }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetails", "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetailsDetails" ], "lang": { "en-us": { "role": { "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]", "documentation": "Disclosure of information about expected timing for satisfying remaining performance obligation." } } }, "auth_ref": [] }, "prim_RevenueRemainingPerformanceObligationExpectedTimingPercentage": { "xbrltype": "percentItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "RevenueRemainingPerformanceObligationExpectedTimingPercentage", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetailsDetails" ], "lang": { "en-us": { "role": { "documentation": "Percentage of revenue to be recognized on performance obligations for the period.", "label": "Revenue Remaining Performance Obligation Expected Timing Percentage", "terseLabel": "Percentage of remaining performance obligation expected to be recognized in period" } } }, "auth_ref": [] }, "us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsRevenueAndTotalAssetsByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Revenues from External Customers and Long-Lived Assets [Line Items]", "terseLabel": "Revenues and total assets by geographic area", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "us-gaap_RevolvingCreditFacilityMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevolvingCreditFacilityMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Revolving credit facility", "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount." } } }, "auth_ref": [] }, "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Right-of-Use Asset Obtained in Exchange for Operating Lease Liability", "verboseLabel": "Leased assets obtained in exchange for new operating leases", "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability." } } }, "auth_ref": [ "r495", "r730" ] }, "ecd_Rule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "Rule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Rule 10b5-1 Arrangement Adopted [Flag]", "terseLabel": "Rule 10b5-1 Arrangement Adopted" } } }, "auth_ref": [ "r834" ] }, "ecd_Rule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "Rule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Rule 10b5-1 Arrangement Terminated [Flag]", "terseLabel": "Rule 10b5-1 Arrangement Terminated" } } }, "auth_ref": [ "r834" ] }, "us-gaap_SalesRevenueNetMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesRevenueNetMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails" ], "lang": { "en-us": { "role": { "label": "Revenues", "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation." } } }, "auth_ref": [ "r250", "r848" ] }, "srt_ScenarioUnspecifiedDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ScenarioUnspecifiedDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDetails" ], "lang": { "en-us": { "role": { "label": "Scenario, Unspecified [Domain]", "documentation": "Scenario reported, distinguishing information from actual fact. Includes, but is not limited to, pro forma and forecast. Excludes actual facts." } } }, "auth_ref": [ "r148", "r203", "r378", "r845", "r873" ] }, "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTable", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table]", "documentation": "Disclosure of information about accounts and financing receivables. Includes, but is not limited to, amount of receivable and allowance for credit loss." } } }, "auth_ref": [ "r60", "r66", "r252", "r882" ] }, "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilitiesTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Accrued Liabilities [Table Text Block]", "terseLabel": "Summary of accrued liabilities", "documentation": "Tabular disclosure of the components of accrued liabilities." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails", "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Business Acquisitions, by Acquisition [Table]", "documentation": "Disclosure of information about business combination. Includes, but is not limited to, recognized asset and liability." } } }, "auth_ref": [ "r35", "r36", "r435" ] }, "us-gaap_ScheduleOfDebtInstrumentsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfDebtInstrumentsTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Long-term Debt Instruments [Table Text Block]", "terseLabel": "Schedule of long-term debt and credit facilities", "documentation": "Tabular disclosure of long-debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the entity, if longer." } } }, "auth_ref": [ "r11", "r30", "r31", "r46", "r90", "r91", "r703", "r705", "r869", "r971" ] }, "us-gaap_ScheduleOfDerivativeAssetsAtFairValueTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfDerivativeAssetsAtFairValueTableTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Derivative Assets at Fair Value [Table Text Block]", "terseLabel": "Schedule of fair values of our derivative contracts included in the Condensed Consolidated Balance Sheets", "documentation": "Tabular disclosure of derivative assets at fair value." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsTables" ], "lang": { "en-us": { "role": { "label": "Derivative Instruments, Gain (Loss) [Table Text Block]", "terseLabel": "Schedule of derivative instruments within the Condensed Consolidated Statements of Income", "documentation": "Tabular disclosure of the location and amount of derivative instruments and nonderivative instruments designated as hedging instruments reported before netting adjustments, and the amount of gain (loss) on derivative instruments and nonderivative instruments designated and qualified as hedging instruments." } } }, "auth_ref": [ "r40", "r42", "r446" ] }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]", "terseLabel": "Schedule of computation of basic and diluted earnings per share", "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations." } } }, "auth_ref": [ "r875" ] }, "us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureFairValueMeasurementsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]", "terseLabel": "Schedule of financial assets and liabilities which are required to be measured at fair value", "documentation": "Tabular disclosure of assets and liabilities, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3)." } } }, "auth_ref": [ "r955", "r956" ] }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Finite-Lived Intangible Assets [Table]", "documentation": "Disclosure of information about finite-lived intangible asset. Excludes indefinite-lived intangible asset." } } }, "auth_ref": [ "r270", "r276", "r279", "r280", "r281", "r507", "r682", "r701" ] }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]", "terseLabel": "Summary of intangible asset categories, amounts and the average amortization periods", "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment." } } }, "auth_ref": [ "r701", "r903" ] }, "us-gaap_ScheduleOfGoodwillTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfGoodwillTable", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsGoodwillDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Goodwill [Table]", "documentation": "Disclosure of information about goodwill, including, but not limited to, change from acquisition, sale, impairment, and other reason." } } }, "auth_ref": [ "r259", "r260", "r261", "r262", "r263", "r264", "r265", "r266", "r267", "r268", "r269", "r700" ] }, "us-gaap_ScheduleOfGoodwillTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfGoodwillTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Goodwill by Reporting Unit [Table Text Block]", "terseLabel": "Schedule of goodwill by reporting unit", "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule." } } }, "auth_ref": [ "r700", "r885", "r886", "r887", "r888", "r889", "r890", "r891", "r892", "r893", "r894", "r895" ] }, "us-gaap_ScheduleOfRestrictedCashAndCashEquivalentsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfRestrictedCashAndCashEquivalentsTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationTables" ], "lang": { "en-us": { "role": { "label": "Restrictions on Cash and Cash Equivalents [Table Text Block]", "terseLabel": "Schedule of reconciliation of cash, cash equivalents and restricted cash", "documentation": "Tabular disclosure of cash and cash equivalents restricted as to withdrawal or usage." } } }, "auth_ref": [ "r10", "r98", "r986" ] }, "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsRevenueAndTotalAssetsByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]", "documentation": "Disclosure of information about revenue from external customer and long-lived asset by geographical area. Long-lived asset excludes financial instrument, customer relationship with financial institution, mortgage and other servicing right, deferred policy acquisition cost, and deferred tax asset." } } }, "auth_ref": [ "r28", "r69" ] }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfSegmentReportingInformationBySegmentTable", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Segment Reporting Information, by Segment [Table]", "documentation": "Disclosure of information about profit (loss) and total assets by reportable segment." } } }, "auth_ref": [ "r25", "r26", "r27" ] }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]", "terseLabel": "Schedule of revenue and gross profit by segment", "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss." } } }, "auth_ref": [ "r25", "r26", "r27" ] }, "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]", "terseLabel": "Schedule of estimated future amortization expense for intangible assets", "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets." } } }, "auth_ref": [ "r701", "r905" ] }, "prim_SecondAgreementMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "SecondAgreementMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents the second agreement.", "label": "Second Agreement [Member]", "terseLabel": "Second agreement" } } }, "auth_ref": [] }, "dei_Security12bTitle": { "xbrltype": "securityTitleItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "Security12bTitle", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Title of 12(b) Security", "documentation": "Title of a 12(b) registered security." } } }, "auth_ref": [ "r759" ] }, "dei_SecurityExchangeName": { "xbrltype": "edgarExchangeCodeItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "SecurityExchangeName", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Security Exchange Name", "documentation": "Name of the Exchange on which a security is registered." } } }, "auth_ref": [ "r761" ] }, "us-gaap_SegmentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SegmentDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsGoodwillDetails", "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails", "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "label": "Segments [Domain]", "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity." } } }, "auth_ref": [ "r106", "r107", "r108", "r109", "r215", "r218", "r221", "r222", "r223", "r224", "r225", "r226", "r227", "r228", "r229", "r230", "r231", "r232", "r234", "r235", "r236", "r237", "r238", "r239", "r240", "r241", "r243", "r244", "r245", "r250", "r259", "r260", "r261", "r262", "r263", "r264", "r265", "r266", "r267", "r281", "r290", "r291", "r561", "r562", "r563", "r564", "r565", "r566", "r567", "r568", "r569", "r570", "r571", "r691", "r694", "r695", "r700", "r743", "r987", "r990", "r991", "r992", "r993", "r994", "r995", "r996", "r997", "r998", "r999", "r1000", "r1001", "r1002", "r1003", "r1004", "r1005", "r1006", "r1007", "r1008", "r1009", "r1010", "r1011", "r1012", "r1013", "r1014", "r1015", "r1016", "r1017" ] }, "srt_SegmentGeographicalDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "SegmentGeographicalDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsRevenueAndTotalAssetsByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Geographical [Domain]", "documentation": "Geographical area." } } }, "auth_ref": [ "r120", "r122", "r125", "r127", "r128", "r129", "r130", "r131", "r133", "r134", "r135", "r136", "r137", "r138", "r248", "r249", "r509", "r510", "r511", "r512", "r513", "r514", "r515", "r516", "r517", "r518", "r519", "r520", "r521", "r522", "r523", "r524", "r525", "r526", "r527", "r528", "r529", "r530", "r531", "r532", "r533", "r534", "r535", "r536", "r537", "r538", "r590", "r591", "r592", "r648", "r650", "r653", "r664", "r667", "r670", "r671", "r672", "r673", "r675", "r676", "r677", "r678", "r679", "r684", "r710", "r732", "r733", "r734", "r735", "r736", "r737", "r738", "r739", "r742", "r747", "r922", "r987", "r990", "r991", "r993", "r994", "r995", "r996", "r997", "r998", "r999", "r1000", "r1001", "r1002", "r1003", "r1004", "r1005", "r1006", "r1007", "r1008", "r1009", "r1010", "r1011", "r1012", "r1013", "r1014", "r1015", "r1016", "r1017" ] }, "us-gaap_SegmentReportingAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SegmentReportingAbstract", "lang": { "en-us": { "role": { "label": "Reportable Segments" } } }, "auth_ref": [] }, "us-gaap_SegmentReportingDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SegmentReportingDisclosureTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegments" ], "lang": { "en-us": { "role": { "label": "Segment Reporting Disclosure [Text Block]", "terseLabel": "Reportable Segments", "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments." } } }, "auth_ref": [ "r109", "r215", "r217", "r218", "r219", "r220", "r221", "r233", "r235", "r236", "r241", "r242", "r243", "r244", "r245", "r246", "r247", "r250", "r690", "r692", "r693", "r694", "r696", "r697", "r698" ] }, "us-gaap_SegmentReportingInformationLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SegmentReportingInformationLineItems", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails" ], "lang": { "en-us": { "role": { "label": "Segment Reporting Information [Line Items]", "terseLabel": "Segment reporting information", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SellingGeneralAndAdministrativeExpense", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Selling, General and Administrative Expense", "terseLabel": "Selling, general and administrative expenses", "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc." } } }, "auth_ref": [ "r75" ] }, "us-gaap_ShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensation", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Share-based Compensation", "terseLabel": "Stock-based compensation expense", "documentation": "Amount of noncash expense for share-based payment arrangement." } } }, "auth_ref": [ "r3" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalGeneralDisclosuresAbstract", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Additional General Disclosures [Abstract]", "terseLabel": "Employee Stock Purchase Plan" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Exercised", "verboseLabel": "Conversion of restricted and performance stock units, net of shares withheld for taxes (in shares)", "documentation": "Number of non-option equity instruments exercised by participants." } } }, "auth_ref": [ "r8" ] }, "prim_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharePurchasePeriodAfterAnnualReport": { "xbrltype": "durationItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharePurchasePeriodAfterAnnualReport", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails" ], "lang": { "en-us": { "role": { "documentation": "The period following filing of annual report for purchase of shares under the equity-based payment award.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Share Purchase Period after Annual Report", "terseLabel": "Purchase in annual report period" } } }, "auth_ref": [] }, "prim_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharePurchasePeriodAfterQuarterlyReport": { "xbrltype": "durationItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharePurchasePeriodAfterQuarterlyReport", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails" ], "lang": { "en-us": { "role": { "documentation": "The period following filing of quarterly report for purchase of shares under the equity-based payment award.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Share Purchase Period after Quarterly Report", "terseLabel": "Purchase of quarterly report period" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails", "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "All Award Types", "terseLabel": "All Award Types", "documentation": "Award under share-based payment arrangement." } } }, "auth_ref": [ "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r402", "r403", "r404", "r405", "r406", "r407", "r408" ] }, "us-gaap_ShareBasedPaymentArrangementNonemployeeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedPaymentArrangementNonemployeeMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Independent Directors", "documentation": "Recipient, of award granted under share-based payment arrangement, over whom grantor does not exercise nor has right to exercise sufficient control to establish employer-employee relationship based on law of pertinent jurisdiction. Excludes nonemployee director treated as employee when acting as member of board of directors, if elected by grantor's shareholders or appointed to board position to be filled by shareholder election when existing term expires." } } }, "auth_ref": [ "r379", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r402", "r403", "r404", "r405", "r406", "r407", "r408" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Purchase Price of Common Stock, Percent", "terseLabel": "Purchase price of stock", "documentation": "Purchase price of common stock expressed as a percentage of its fair value." } } }, "auth_ref": [] }, "us-gaap_SharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharesIssued", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Shares, Issued", "periodEndLabel": "Balance (in shares)", "periodStartLabel": "Balance (in shares)", "documentation": "Number of shares of stock issued as of the balance sheet date, including shares that had been issued and were previously outstanding but which are now held in the treasury." } } }, "auth_ref": [ "r7" ] }, "prim_SpecialPurposeEntityMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "SpecialPurposeEntityMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationAccountsReceivableSecuritizationFacilityDetails" ], "lang": { "en-us": { "role": { "documentation": "This member stands for Special Purpose Entity.", "label": "Special Purpose Entity [Member]", "terseLabel": "Special Purpose Entity" } } }, "auth_ref": [] }, "us-gaap_StatementBusinessSegmentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementBusinessSegmentsAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsGoodwillDetails", "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails", "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "label": "Segments [Axis]", "documentation": "Information by business segments." } } }, "auth_ref": [ "r106", "r107", "r108", "r109", "r152", "r215", "r218", "r221", "r222", "r223", "r224", "r225", "r226", "r227", "r228", "r229", "r230", "r231", "r232", "r234", "r235", "r236", "r237", "r238", "r239", "r240", "r241", "r243", "r244", "r245", "r250", "r259", "r260", "r261", "r262", "r263", "r264", "r265", "r266", "r267", "r281", "r283", "r290", "r291", "r561", "r562", "r563", "r564", "r565", "r566", "r567", "r568", "r569", "r570", "r571", "r691", "r694", "r695", "r700", "r743", "r987", "r990", "r991", "r992", "r993", "r994", "r995", "r996", "r997", "r998", "r999", "r1000", "r1001", "r1002", "r1003", "r1004", "r1005", "r1006", "r1007", "r1008", "r1009", "r1010", "r1011", "r1012", "r1013", "r1014", "r1015", "r1016", "r1017" ] }, "us-gaap_StatementEquityComponentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementEquityComponentsAxis", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Equity Components [Axis]", "documentation": "Information by component of equity." } } }, "auth_ref": [ "r7", "r59", "r63", "r64", "r151", "r171", "r172", "r173", "r189", "r190", "r191", "r193", "r198", "r200", "r202", "r216", "r254", "r255", "r282", "r352", "r422", "r423", "r430", "r431", "r432", "r434", "r436", "r437", "r448", "r449", "r450", "r451", "r452", "r453", "r456", "r480", "r481", "r482", "r483", "r484", "r485", "r488", "r490", "r497", "r556", "r574", "r575", "r576", "r588", "r642" ] }, "srt_StatementGeographicalAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "StatementGeographicalAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsRevenueAndTotalAssetsByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Geographical [Axis]", "documentation": "Information by geographical components." } } }, "auth_ref": [ "r120", "r122", "r125", "r127", "r128", "r129", "r130", "r131", "r133", "r134", "r135", "r136", "r137", "r138", "r248", "r249", "r509", "r510", "r511", "r512", "r513", "r514", "r515", "r516", "r517", "r518", "r519", "r520", "r521", "r522", "r523", "r524", "r525", "r526", "r527", "r528", "r529", "r530", "r531", "r532", "r533", "r534", "r535", "r536", "r537", "r538", "r590", "r591", "r592", "r648", "r650", "r653", "r664", "r667", "r670", "r671", "r672", "r673", "r675", "r676", "r677", "r678", "r679", "r684", "r710", "r732", "r733", "r734", "r735", "r736", "r737", "r738", "r739", "r742", "r747", "r922", "r987", "r990", "r991", "r993", "r994", "r995", "r996", "r997", "r998", "r999", "r1000", "r1001", "r1002", "r1003", "r1004", "r1005", "r1006", "r1007", "r1008", "r1009", "r1010", "r1011", "r1012", "r1013", "r1014", "r1015", "r1016", "r1017" ] }, "us-gaap_StatementLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementLineItems", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails", "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Statement [Line Items]", "terseLabel": "Statement", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r189", "r190", "r191", "r216", "r490", "r506", "r582", "r589", "r596", "r597", "r598", "r599", "r600", "r601", "r604", "r607", "r608", "r609", "r610", "r611", "r612", "r613", "r614", "r615", "r617", "r618", "r619", "r620", "r621", "r623", "r625", "r626", "r627", "r628", "r629", "r630", "r631", "r632", "r633", "r634", "r635", "r636", "r637", "r638", "r642", "r748" ] }, "us-gaap_StatementOfCashFlowsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfCashFlowsAbstract", "lang": { "en-us": { "role": { "label": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS" } } }, "auth_ref": [] }, "us-gaap_StatementOfFinancialPositionAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfFinancialPositionAbstract", "lang": { "en-us": { "role": { "label": "CONDENSED CONSOLIDATED BALANCE SHEETS" } } }, "auth_ref": [] }, "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract", "lang": { "en-us": { "role": { "label": "CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME" } } }, "auth_ref": [] }, "us-gaap_StatementOfStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfStockholdersEquityAbstract", "lang": { "en-us": { "role": { "label": "CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY" } } }, "auth_ref": [] }, "srt_StatementScenarioAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "StatementScenarioAxis", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDerivativeInstrumentsDetails" ], "lang": { "en-us": { "role": { "label": "Scenario [Axis]", "documentation": "Information by scenario reported, distinguishing information from actual fact. Includes, but is not limited to, pro forma and forecast. Excludes actual facts." } } }, "auth_ref": [ "r148", "r203", "r378", "r845", "r846", "r873" ] }, "us-gaap_StatementTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementTable", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails", "http://www.primoriscorp.com/role/DisclosureLeasesComponentsOfLeaseExpenseAndOperatingLeaseLiabilitiesDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Statement [Table]", "documentation": "Disclosure of information about statement of comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity." } } }, "auth_ref": [ "r189", "r190", "r191", "r216", "r251", "r490", "r506", "r582", "r589", "r596", "r597", "r598", "r599", "r600", "r601", "r604", "r607", "r608", "r609", "r610", "r611", "r612", "r613", "r614", "r615", "r617", "r618", "r619", "r620", "r621", "r623", "r625", "r626", "r627", "r628", "r629", "r630", "r631", "r632", "r633", "r634", "r635", "r636", "r637", "r638", "r642", "r748" ] }, "ecd_StkPrcOrTsrEstimationMethodTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "StkPrcOrTsrEstimationMethodTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Stock Price or TSR Estimation Method [Text Block]", "terseLabel": "Stock Price or TSR Estimation Method" } } }, "auth_ref": [ "r768", "r778", "r788", "r820" ] }, "us-gaap_StockAppreciationRightsSARSMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockAppreciationRightsSARSMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Stock Appreciation Rights (SARs) [Member]", "terseLabel": "Stock Appreciation Rights (SARs)", "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period." } } }, "auth_ref": [] }, "us-gaap_StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, Conversion of Convertible Securities", "verboseLabel": "Conversion of stock based awards, net of shares withheld for taxes (in shares)", "documentation": "Number of shares issued during the period as a result of the conversion of convertible securities." } } }, "auth_ref": [ "r7", "r30", "r59", "r63", "r92", "r328" ] }, "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails", "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, Employee Stock Purchase Plans", "terseLabel": "Shares of common stock issued under the long-term incentive plan", "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan." } } }, "auth_ref": [ "r7", "r58", "r59", "r92" ] }, "us-gaap_StockIssuedDuringPeriodSharesNewIssues": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesNewIssues", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails", "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, New Issues", "verboseLabel": "Issuance of shares, net of issuance costs (in shares)", "documentation": "Number of new stock issued during the period." } } }, "auth_ref": [ "r7", "r58", "r59", "r92", "r583", "r642", "r665" ] }, "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesShareBasedCompensation", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Shares, Share-based Compensation, Net of Forfeitures", "terseLabel": "Shares of common stock issued as a part of quarterly compensation of non-employee members of the Board of Directors", "documentation": "Number, after forfeiture, of shares or units issued under share-based payment arrangement. Excludes shares or units issued under employee stock ownership plan (ESOP)." } } }, "auth_ref": [ "r7", "r58", "r59", "r92" ] }, "us-gaap_StockIssuedDuringPeriodValueConversionOfConvertibleSecurities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodValueConversionOfConvertibleSecurities", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Conversion of Convertible Securities", "verboseLabel": "Conversion of stock based awards, net of shares withheld for taxes", "documentation": "The gross value of stock issued during the period upon the conversion of convertible securities." } } }, "auth_ref": [ "r7", "r59", "r63", "r64", "r92" ] }, "us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodValueEmployeeStockPurchasePlan", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Employee Stock Purchase Plan", "terseLabel": "Amount received in exchange for shares of common stock under a long term incentive plan", "documentation": "Aggregate change in value for stock issued during the period as a result of employee stock purchase plan." } } }, "auth_ref": [ "r7", "r58", "r59", "r92" ] }, "us-gaap_StockIssuedDuringPeriodValueNewIssues": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodValueNewIssues", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, New Issues", "verboseLabel": "Issuance of shares, net of issuance costs", "documentation": "Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering." } } }, "auth_ref": [ "r7", "r58", "r59", "r92", "r588", "r642", "r665", "r757" ] }, "srt_StockRepurchaseProgramAuthorizedAmount1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "StockRepurchaseProgramAuthorizedAmount1", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails" ], "lang": { "en-us": { "role": { "label": "Stock Repurchase Program, Authorized Amount", "terseLabel": "Aggregate purchase price up to which shares can be acquired under share purchase program", "documentation": "Amount authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership." } } }, "auth_ref": [ "r921" ] }, "us-gaap_StockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquity", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stockholders' Equity, Including Portion Attributable to Noncontrolling Interest", "periodEndLabel": "Balance", "periodStartLabel": "Balance", "totalLabel": "Total stockholders' equity", "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest." } } }, "auth_ref": [ "r59", "r63", "r64", "r86", "r606", "r622", "r643", "r644", "r731", "r758", "r868", "r883", "r969", "r1019" ] }, "us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquityIncludingPortionAttributableToNoncontrollingInterestAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheets", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" ], "lang": { "en-us": { "role": { "label": "Stockholders' Equity, Including Portion Attributable to Noncontrolling Interest [Abstract]", "terseLabel": "Stockholders' equity" } } }, "auth_ref": [] }, "prim_StockholdersEquityLineItems": { "xbrltype": "stringItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "StockholdersEquityLineItems", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityDetails", "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails" ], "lang": { "en-us": { "role": { "label": "Stockholders Equity [Line Items]", "terseLabel": "Stockholders' equity" } } }, "auth_ref": [] }, "us-gaap_StockholdersEquityNoteAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquityNoteAbstract", "lang": { "en-us": { "role": { "label": "Stockholders' Equity" } } }, "auth_ref": [] }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquityNoteDisclosureTextBlock", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stockholders' Equity Note Disclosure [Text Block]", "terseLabel": "Stockholders' Equity", "documentation": "The entire disclosure for equity." } } }, "auth_ref": [ "r89", "r185", "r340", "r341", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r455", "r645", "r646", "r666" ] }, "us-gaap_SupplementalCashFlowInformationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SupplementalCashFlowInformationAbstract", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Supplemental Cash Flow Information [Abstract]", "terseLabel": "SUPPLEMENTAL DISCLOSURES OF CASH FLOW INFORMATION" } } }, "auth_ref": [] }, "ecd_TabularListTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TabularListTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Tabular List [Table Text Block]", "terseLabel": "Tabular List, Table" } } }, "auth_ref": [ "r814" ] }, "us-gaap_TaxesPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TaxesPayableCurrent", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureAccountsPayableAndAccruedLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Taxes Payable, Current", "terseLabel": "Corporate income taxes and other taxes", "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for statutory income, sales, use, payroll, excise, real, property and other taxes. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r50", "r51" ] }, "us-gaap_TimeAndMaterialsContractMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TimeAndMaterialsContractMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenuePerformanceObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Time-and-Materials Contract [Member]", "terseLabel": "Revenue recognized over time", "documentation": "Contract with customer in which amount of consideration is based on time and materials consumed." } } }, "auth_ref": [ "r712" ] }, "prim_TopTenCustomersMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "TopTenCustomersMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureBasisOfPresentationCustomerConcentrationDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to the top ten customers of the entity.", "label": "Top ten customers" } } }, "auth_ref": [] }, "prim_TotalAssetsPercentage": { "xbrltype": "percentItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "TotalAssetsPercentage", "presentation": [ "http://www.primoriscorp.com/role/DisclosureReportableSegmentsRevenueAndTotalAssetsByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "documentation": "The percentage of assets to total assets.", "label": "% of total assets" } } }, "auth_ref": [] }, "ecd_TotalShareholderRtnAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TotalShareholderRtnAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Total Shareholder Return Amount", "terseLabel": "Total Shareholder Return Amount" } } }, "auth_ref": [ "r806" ] }, "ecd_TotalShareholderRtnVsPeerGroupTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TotalShareholderRtnVsPeerGroupTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Total Shareholder Return Vs Peer Group [Text Block]", "terseLabel": "Total Shareholder Return Vs Peer Group" } } }, "auth_ref": [ "r813" ] }, "us-gaap_TradeNamesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TradeNamesMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Tradename", "terseLabel": "Tradenames", "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof." } } }, "auth_ref": [ "r37", "r897", "r898", "r899", "r900", "r901", "r902", "r904", "r906", "r907", "r908" ] }, "ecd_TradingArrAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TradingArrAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement [Axis]", "terseLabel": "Trading Arrangement:" } } }, "auth_ref": [ "r833" ] }, "ecd_TradingArrByIndTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TradingArrByIndTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangements, by Individual [Table]", "terseLabel": "Trading Arrangements, by Individual" } } }, "auth_ref": [ "r835" ] }, "dei_TradingSymbol": { "xbrltype": "tradingSymbolItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "TradingSymbol", "presentation": [ "http://www.primoriscorp.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Trading Symbol", "documentation": "Trading symbol of an instrument as listed on an exchange." } } }, "auth_ref": [] }, "ecd_TrdArrAdoptionDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrAdoptionDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Adoption Date", "terseLabel": "Adoption Date" } } }, "auth_ref": [ "r836" ] }, "ecd_TrdArrDuration": { "xbrltype": "durationItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrDuration", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Duration", "terseLabel": "Arrangement Duration" } } }, "auth_ref": [ "r837" ] }, "ecd_TrdArrExpirationDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrExpirationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Expiration Date", "terseLabel": "Expiration Date" } } }, "auth_ref": [ "r837" ] }, "ecd_TrdArrIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r835" ] }, "ecd_TrdArrIndTitle": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrIndTitle", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Individual Title", "terseLabel": "Title" } } }, "auth_ref": [ "r835" ] }, "ecd_TrdArrSecuritiesAggAvailAmt": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrSecuritiesAggAvailAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Securities Aggregate Available Amount", "terseLabel": "Aggregate Available" } } }, "auth_ref": [ "r838" ] }, "ecd_TrdArrTerminationDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "TrdArrTerminationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Termination Date", "terseLabel": "Termination Date" } } }, "auth_ref": [ "r836" ] }, "us-gaap_TreasuryStockValueAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TreasuryStockValueAbstract", "presentation": [ "http://www.primoriscorp.com/role/DisclosureStockholdersEquityEmployeeStockPurchasePlanSecondaryOfferingSharePurchasePlanDetails" ], "lang": { "en-us": { "role": { "label": "Treasury Stock, Value [Abstract]" } } }, "auth_ref": [] }, "prim_UAndDSegmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "UAndDSegmentMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureGoodwillAndIntangibleAssetsGoodwillDetails", "http://www.primoriscorp.com/role/DisclosureReportableSegmentsDetails", "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "documentation": "Pertaining to the Utilities segment.", "label": "Utilities" } } }, "auth_ref": [] }, "us-gaap_UnamortizedDebtIssuanceExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UnamortizedDebtIssuanceExpense", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureCreditArrangementsDetails", "http://www.primoriscorp.com/role/DisclosureCreditArrangementsNarrativesDetails" ], "lang": { "en-us": { "role": { "label": "Unamortized Debt Issuance Expense", "negatedLabel": "Unamortized debt issuance costs", "documentation": "The remaining balance of debt issuance expenses that were capitalized and are being amortized against income over the lives of the respective bond issues. This does not include the amounts capitalized as part of the cost of the utility plant or asset." } } }, "auth_ref": [] }, "us-gaap_UnbilledReceivablesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UnbilledReceivablesCurrent", "crdr": "debit", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueContractAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Unbilled Receivables, Current", "terseLabel": "Unbilled revenue", "documentation": "Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer." } } }, "auth_ref": [] }, "ecd_UndrlygSecurityMktPriceChngPct": { "xbrltype": "pureItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "UndrlygSecurityMktPriceChngPct", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Underlying Security Market Price Change, Percent", "terseLabel": "Underlying Security Market Price Change" } } }, "auth_ref": [ "r832" ] }, "prim_UnitPriceContractsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.primoriscorp.com/20240630", "localname": "UnitPriceContractsMember", "presentation": [ "http://www.primoriscorp.com/role/DisclosureRevenueDisaggregationOfRevenueByCustomerTypeAndContractTypeDetails" ], "lang": { "en-us": { "role": { "documentation": "This member stands for Unit-price contract.", "label": "Unit price" } } }, "auth_ref": [] }, "us-gaap_UnrealizedGainLossOnDerivatives": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UnrealizedGainLossOnDerivatives", "crdr": "credit", "presentation": [ "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Unrealized Gain (Loss) on Derivatives", "negatedLabel": "Unrealized (gain) loss on interest rate swap", "documentation": "The net change in the difference between the fair value and the carrying value, or in the comparative fair values, of derivative instruments, including options, swaps, futures, and forward contracts, held at each balance sheet date, that was included in earnings for the period." } } }, "auth_ref": [ "r4", "r635", "r636", "r637", "r638", "r658" ] }, "ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]", "terseLabel": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year" } } }, "auth_ref": [ "r802" ] }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Diluted", "terseLabel": "Diluted (in shares)", "totalLabel": "Weighted average shares for computation of diluted earnings per share", "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period." } } }, "auth_ref": [ "r205", "r213" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfSharesOutstandingAbstract", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]", "terseLabel": "Weighted average common shares outstanding:", "verboseLabel": "Denominator:" } } }, "auth_ref": [] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "presentation": [ "http://www.primoriscorp.com/role/DisclosureDividendsAndEarningsPerShareDetails", "http://www.primoriscorp.com/role/StatementCondensedConsolidatedStatementsOfIncome" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Basic", "terseLabel": "Basic (in shares)", "verboseLabel": "Weighted average shares for computation of basic earnings per share", "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period." } } }, "auth_ref": [ "r204", "r213" ] }, "ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]", "terseLabel": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested" } } }, "auth_ref": [ "r800" ] } } } }, "std_ref": { "r0": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "SubTopic": "230", "Topic": "830", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1" }, "r1": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r2": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r3": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r4": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r5": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "SubTopic": "10", "Topic": "360", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1" }, "r6": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(3)", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A" }, "r7": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "SubTopic": "10", "Topic": "505", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2" }, "r8": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(02)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r9": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4D", "Subparagraph": "(c)(2)", "SubTopic": "20", "Topic": "860", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4D" }, "r10": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8" }, "r11": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22))", "SubTopic": "10", "Topic": "210", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r12": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14" }, "r13": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14A" }, "r14": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-5" }, "r15": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "13", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13" }, "r16": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "14", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14" }, "r17": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-4" }, "r18": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-1" }, "r19": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2" }, "r20": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-3" }, "r21": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-16" }, "r22": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18" }, "r23": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20" }, "r24": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-21" }, "r25": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r26": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "25", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25" }, "r27": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "30", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r28": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "41", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r29": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "470", "SubTopic": "10", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-5" }, "r30": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-3" }, "r31": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "10", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-8" }, "r32": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "20", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-12" }, "r33": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "20", "Section": "55", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-13" }, "r34": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "25", "Paragraph": "23", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479405/805-10-25-23" }, "r35": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r36": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-3" }, "r37": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "14", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14" }, "r38": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20" }, "r39": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A" }, "r40": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A" }, "r41": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B" }, "r42": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4C" }, "r43": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4D", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4D" }, "r44": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "825", "SubTopic": "10", "Section": "50", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-20" }, "r45": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "825", "SubTopic": "10", "Section": "50", "Paragraph": "21", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21" }, "r46": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "942", "SubTopic": "470", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477734/942-470-50-3" }, "r47": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "942", "SubTopic": "825", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478898/942-825-50-1" }, "r48": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r49": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r50": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r51": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r52": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r53": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r54": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r55": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r56": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r57": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r58": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(28))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r59": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(29))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r60": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r61": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r62": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r63": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r64": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(31))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r65": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(32))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r66": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r67": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-7" }, "r68": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-11" }, "r69": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r70": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(10))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r71": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r72": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(2)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r73": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r74": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r75": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r76": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r77": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "12", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12" }, "r78": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13" }, "r79": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15" }, "r80": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15" }, "r81": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24" }, "r82": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25" }, "r83": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r84": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "235", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/235/tableOfContent" }, "r85": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "275", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18" }, "r86": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 4.E)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480418/310-10-S99-2" }, "r87": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "440", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/440/tableOfContent" }, "r88": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "470", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/470/tableOfContent" }, "r89": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/505/tableOfContent" }, "r90": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-6" }, "r91": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-7" }, "r92": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1" }, "r93": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "815", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/815/tableOfContent" }, "r94": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B" }, "r95": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B" }, "r96": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B" }, "r97": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21" }, "r98": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r99": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r100": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(15)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r101": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r102": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r103": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r104": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r105": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r106": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r107": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r108": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r109": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r110": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Subparagraph": "(a)", "SubTopic": "20", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482659/740-20-45-2" }, "r111": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1" }, "r112": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1" }, "r113": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13" }, "r114": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)(1)", "SubTopic": "10", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13" }, "r115": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h))", "SubTopic": "10", "Topic": "235", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r116": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org/275/tableOfContent" }, "r117": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org/606/tableOfContent" }, "r118": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "04", "Paragraph": "a", "Publisher": "SEC" }, "r119": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r120": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12", "Paragraph": "Column C", "Footnote": "5", "Publisher": "SEC" }, "r121": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12A", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r122": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12A", "Paragraph": "Column C", "Footnote": "4", "Publisher": "SEC" }, "r123": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12B", "Paragraph": "Column A", "Subparagraph": "(a)", "Footnote": "4", "Publisher": "SEC" }, "r124": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12B", "Paragraph": "Column A", "Subparagraph": "(b)", "Footnote": "4", "Publisher": "SEC" }, "r125": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12B", "Paragraph": "Column C", "Footnote": "2", "Publisher": "SEC" }, "r126": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "14", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r127": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "14", "Paragraph": "Column F", "Footnote": "7", "Publisher": "SEC" }, "r128": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r129": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column B", "Publisher": "SEC" }, "r130": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column C", "Publisher": "SEC" }, "r131": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column D", "Publisher": "SEC" }, "r132": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column E", "Footnote": "4", "Publisher": "SEC" }, "r133": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column E", "Publisher": "SEC" }, "r134": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column F", "Publisher": "SEC" }, "r135": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column G", "Publisher": "SEC" }, "r136": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column H", "Publisher": "SEC" }, "r137": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column I", "Publisher": "SEC" }, "r138": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "29", "Paragraph": "Column A", "Footnote": "4", "Publisher": "SEC" }, "r139": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(i)", "Publisher": "SEC" }, "r140": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(iii)(A)", "Publisher": "SEC" }, "r141": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(iii)(B)", "Publisher": "SEC" }, "r142": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(iv)", "Publisher": "SEC" }, "r143": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "02", "Paragraph": "a", "Subparagraph": "(4)(i)", "Publisher": "SEC" }, "r144": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "02", "Paragraph": "a", "Subparagraph": "(4)(iii)(A)", "Publisher": "SEC" }, "r145": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "02", "Paragraph": "a", "Subparagraph": "(4)(iii)(B)", "Publisher": "SEC" }, "r146": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "02", "Paragraph": "a", "Subparagraph": "(4)(iii)(C)", "Publisher": "SEC" }, "r147": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "02", "Paragraph": "a", "Subparagraph": "(4)(iv)", "Publisher": "SEC" }, "r148": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 11", "Section": "M", "Paragraph": "Question 2", "Publisher": "SEC" }, "r149": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 5", "Section": "Y", "Paragraph": "Question 2", "Publisher": "SEC" }, "r150": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 5", "Section": "Y", "Paragraph": "Question 4", "Publisher": "SEC" }, "r151": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6" }, "r152": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "205", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-1" }, "r153": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "205", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-7" }, "r154": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r155": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-5" }, "r156": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r157": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r158": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r159": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r160": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r161": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r162": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r163": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r164": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r165": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-3" }, "r166": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-3" }, "r167": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A" }, "r168": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A" }, "r169": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B" }, "r170": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B" }, "r171": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4" }, "r172": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5" }, "r173": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6" }, "r174": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r175": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r176": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15" }, "r177": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "17", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-17" }, "r178": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-2" }, "r179": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24" }, "r180": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25" }, "r181": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2" }, "r182": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2A" }, "r183": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8" }, "r184": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r185": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(e)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r186": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r187": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r188": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-04(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3" }, "r189": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23" }, "r190": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24" }, "r191": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5" }, "r192": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r193": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r194": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11" }, "r195": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11" }, "r196": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-3" }, "r197": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-4" }, "r198": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6" }, "r199": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7" }, "r200": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7" }, "r201": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-8" }, "r202": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-9" }, "r203": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SAB Topic 11.M.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480530/250-10-S99-5" }, "r204": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-10" }, "r205": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-16" }, "r206": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-2" }, "r207": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-22" }, "r208": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-23" }, "r209": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-28A" }, "r210": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B" }, "r211": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B" }, "r212": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-7" }, "r213": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r214": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-15" }, "r215": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "270", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1" }, "r216": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "272", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483014/272-10-45-1" }, "r217": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/280/tableOfContent" }, "r218": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-15" }, "r219": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21" }, "r220": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21" }, "r221": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r222": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r223": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r224": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r225": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r226": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r227": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r228": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r229": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r230": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(j)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r231": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "25", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25" }, "r232": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "25", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25" }, "r233": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26" }, "r234": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26A" }, "r235": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26B" }, "r236": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26C" }, "r237": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r238": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r239": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r240": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r241": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31" }, "r242": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r243": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(ee)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r244": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r245": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "34", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-34" }, "r246": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "40", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-40" }, "r247": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r248": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r249": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r250": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "42", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-42" }, "r251": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13" }, "r252": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-2" }, "r253": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r254": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4" }, "r255": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-5" }, "r256": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-11" }, "r257": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480265/350-10-S45-1" }, "r258": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482598/350-20-45-1" }, "r259": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r260": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r261": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r262": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r263": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r264": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r265": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r266": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r267": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r268": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1A" }, "r269": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-2" }, "r270": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1" }, "r271": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-2" }, "r272": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r273": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r274": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r275": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r276": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r277": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r278": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r279": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r280": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r281": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3" }, "r282": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1" }, "r283": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3" }, "r284": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r285": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r286": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r287": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r288": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r289": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r290": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1" }, "r291": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 5.P.4.d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2" }, "r292": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "440", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4" }, "r293": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "440", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4" }, "r294": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4" }, "r295": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9" }, "r296": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r297": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r298": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6" }, "r299": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6" }, "r300": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r301": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r302": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r303": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r304": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r305": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r306": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r307": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r308": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r309": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r310": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r311": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r312": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r313": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r314": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r315": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r316": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r317": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r318": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r319": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r320": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C" }, "r321": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C" }, "r322": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C" }, "r323": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D" }, "r324": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D" }, "r325": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D" }, "r326": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E" }, "r327": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E" }, "r328": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E" }, "r329": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E" }, "r330": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F" }, "r331": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F" }, "r332": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F" }, "r333": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F" }, "r334": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I" }, "r335": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I" }, "r336": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I" }, "r337": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I" }, "r338": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-4" }, "r339": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-4" }, "r340": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r341": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r342": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r343": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r344": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r345": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14" }, "r346": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14" }, "r347": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14" }, "r348": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "16", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-16" }, "r349": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18" }, "r350": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18" }, "r351": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18" }, "r352": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1" }, "r353": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-1" }, "r354": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-2" }, "r355": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-3" }, "r356": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10" }, "r357": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r358": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r359": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r360": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r361": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r362": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12A" }, "r363": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13" }, "r364": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-15" }, "r365": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-4" }, "r366": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5" }, "r367": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-8" }, "r368": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-8" }, "r369": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-9" }, "r370": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r371": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r372": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r373": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(A)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r374": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(B)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r375": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(C)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r376": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r377": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-5" }, "r378": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-5" }, "r379": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "1D", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-1D" }, "r380": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-2" }, "r381": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-3" }, "r382": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480454/718-10-45-1" }, "r383": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r384": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r385": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r386": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r387": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r388": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r389": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r390": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r391": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r392": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r393": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r394": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r395": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r396": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r397": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r398": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r399": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r400": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r401": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r402": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r403": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r404": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r405": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r406": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r407": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r408": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(v)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r409": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "720", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483359/720-20-50-1" }, "r410": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/740/tableOfContent" }, "r411": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-4" }, "r412": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-6" }, "r413": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-10" }, "r414": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12" }, "r415": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12B" }, "r416": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12C" }, "r417": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-14" }, "r418": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "17", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-17" }, "r419": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-21" }, "r420": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-22" }, "r421": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-23" }, "r422": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8" }, "r423": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8" }, "r424": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.1.Q1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1" }, "r425": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.5.Q1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1" }, "r426": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.7)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1" }, "r427": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 11.C)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-2" }, "r428": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "270", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477891/740-270-50-1" }, "r429": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482603/740-30-50-2" }, "r430": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r431": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r432": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r433": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r434": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r435": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-5" }, "r436": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1" }, "r437": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1" }, "r438": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-19" }, "r439": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25" }, "r440": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25" }, "r441": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A" }, "r442": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A" }, "r443": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3" }, "r444": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3" }, "r445": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A" }, "r446": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4E" }, "r447": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-5C" }, "r448": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r449": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r450": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r451": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r452": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r453": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(i)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r454": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-5" }, "r455": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-6" }, "r456": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r457": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r458": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r459": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "54B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482134/820-10-35-54B" }, "r460": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r461": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r462": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r463": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r464": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r465": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r466": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r467": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r468": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E" }, "r469": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3" }, "r470": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r471": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r472": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r473": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r474": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r475": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28" }, "r476": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481839/830-10-45-17" }, "r477": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482014/830-20-35-1" }, "r478": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481956/830-20-45-1" }, "r479": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481926/830-20-50-1" }, "r480": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-17" }, "r481": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r482": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r483": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r484": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r485": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-1" }, "r486": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2" }, "r487": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482900/835-30-50-1" }, "r488": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8" }, "r489": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/842-20/tableOfContent" }, "r490": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "12A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479165/842-20-35-12A" }, "r491": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1" }, "r492": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1" }, "r493": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-2" }, "r494": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r495": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r496": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A" }, "r497": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(a)(3)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2" }, "r498": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481435/852-10-45-14" }, "r499": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r500": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r501": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r502": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r503": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7" }, "r504": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "910", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482546/910-10-50-6" }, "r505": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "912", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478345/912-310-45-11" }, "r506": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "924", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 11.L)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479941/924-10-S99-1" }, "r507": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483154/926-20-50-5" }, "r508": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "928", "SubTopic": "340", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478859/928-340-50-1" }, "r509": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478934/932-220-50-1" }, "r510": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18" }, "r511": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18" }, "r512": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18" }, "r513": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-19" }, "r514": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r515": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r516": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r517": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r518": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r519": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r520": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r521": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r522": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r523": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r524": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r525": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r526": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r527": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r528": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r529": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r530": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r531": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r532": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-6" }, "r533": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-7" }, "r534": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8" }, "r535": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8" }, "r536": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8" }, "r537": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "280", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478657/932-280-50-1" }, "r538": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478988/932-323-50-1" }, "r539": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "940", "SubTopic": "820", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478119/940-820-50-1" }, "r540": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(10)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r541": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r542": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(27))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r543": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-05(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1" }, "r544": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478451/942-360-50-1" }, "r545": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(12))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r546": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(15)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r547": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r548": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r549": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r550": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r551": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r552": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r553": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r554": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r555": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r556": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r557": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r558": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r559": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r560": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r561": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r562": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r563": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r564": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r565": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r566": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r567": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column G))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r568": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column H))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r569": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column I))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r570": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column J))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r571": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column K))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r572": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r573": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r574": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r575": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r576": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r577": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r578": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r579": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r580": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.W.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479583/944-40-S99-1" }, "r581": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "825", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B" }, "r582": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3" }, "r583": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(i)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3" }, "r584": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(i)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3" }, "r585": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-11" }, "r586": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-13" }, "r587": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-3" }, "r588": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4" }, "r589": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-4" }, "r590": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1" }, "r591": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-2" }, "r592": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r593": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r594": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r595": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r596": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r597": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r598": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r599": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r600": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r601": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r602": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r603": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r604": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(16)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r605": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r606": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r607": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r608": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r609": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r610": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r611": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r612": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r613": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r614": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r615": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r616": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r617": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r618": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r619": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r620": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r621": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2" }, "r622": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2" }, "r623": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3" }, "r624": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-7" }, "r625": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r626": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r627": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r628": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r629": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r630": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r631": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r632": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r633": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r634": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r635": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r636": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r637": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r638": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r639": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r640": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r641": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(1)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r642": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r643": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r644": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r645": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2" }, "r646": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2" }, "r647": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r648": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column C)(Footnote 5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r649": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r650": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column C)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r651": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r652": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r653": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r654": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SX 210.12-13(Column A)(Footnote 3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5" }, "r655": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SX 210.12-13(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5" }, "r656": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SX 210.12-13(Column G)(Footnote 8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5" }, "r657": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5A", "Subparagraph": "(SX 210.12-13A(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5A" }, "r658": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5A", "Subparagraph": "(SX 210.12-13A(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5A" }, "r659": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5B", "Subparagraph": "(SX 210.12-13B(Column A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5B" }, "r660": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5B", "Subparagraph": "(SX 210.12-13B(Column E)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5B" }, "r661": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5C", "Subparagraph": "(SX 210.12-13C(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5C" }, "r662": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5C", "Subparagraph": "(SX 210.12-13C(Column H)(Footnote 7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5C" }, "r663": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r664": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column F)(Footnote 7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r665": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2" }, "r666": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-6" }, "r667": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "948", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-29(Column A)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1" }, "r668": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478785/954-310-50-2" }, "r669": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "440", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478522/954-440-50-1" }, "r670": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r671": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r672": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r673": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r674": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column E)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r675": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r676": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r677": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column G))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r678": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column H))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r679": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column I))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r680": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "976", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477332/976-310-50-1" }, "r681": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "978", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479230/978-310-50-1" }, "r682": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "985", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2" }, "r683": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4D", "Subparagraph": "(a)(1)", "SubTopic": "10", "Topic": "815", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4D" }, "r684": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(b)", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H" }, "r685": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r686": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-22" }, "r687": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "52", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-52" }, "r688": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r689": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31" }, "r690": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r691": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(bb)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r692": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r693": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r694": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "48", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-48" }, "r695": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "49", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-49" }, "r696": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r697": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r698": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r699": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481933/310-10-55-12A" }, "r700": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482548/350-20-55-24" }, "r701": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "40", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482640/350-30-55-40" }, "r702": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r703": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69B" }, "r704": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69C" }, "r705": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69E" }, "r706": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69F", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69F" }, "r707": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r708": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10" }, "r709": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r710": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r711": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r712": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r713": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r714": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r715": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r716": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r717": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r718": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480482/715-20-55-17" }, "r719": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480547/715-80-55-8" }, "r720": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "231", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-231" }, "r721": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4J", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481175/810-10-55-4J" }, "r722": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4K", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481175/810-10-55-4K" }, "r723": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "100", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100" }, "r724": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "100", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100" }, "r725": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "103", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-103" }, "r726": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r727": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r728": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r729": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482949/835-30-55-8" }, "r730": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "53", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479589/842-20-55-53" }, "r731": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481372/852-10-55-10" }, "r732": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-17" }, "r733": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-21" }, "r734": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "29", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-29" }, "r735": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-3" }, "r736": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-2" }, "r737": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-4" }, "r738": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-5" }, "r739": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-6" }, "r740": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H" }, "r741": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "29F", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-29F" }, "r742": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r743": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r744": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r745": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1" }, "r746": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r747": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477439/946-210-55-1" }, "r748": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1" }, "r749": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r750": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r751": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r752": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5C", "Subparagraph": "(SX 210.12-13C(Column A)(Footnote 1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5C" }, "r753": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5C", "Subparagraph": "(SX 210.12-13C(Column B)(Footnote 1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5C" }, "r754": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r755": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "405", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478790/946-405-45-2" }, "r756": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-10" }, "r757": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-11" }, "r758": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-12" }, "r759": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b" }, "r760": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b-2" }, "r761": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "d1-1" }, "r762": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 10-Q", "Number": "240", "Section": "308", "Subsection": "a" }, "r763": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "16", "Subsection": "J", "Paragraph": "a" }, "r764": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1" }, "r765": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i" }, "r766": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "A" }, "r767": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "B" }, "r768": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "C" }, "r769": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "D" }, "r770": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "E" }, "r771": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "ii" }, "r772": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "iii" }, "r773": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "2" }, "r774": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a" }, "r775": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1" }, "r776": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "i" }, "r777": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "ii" }, "r778": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iii" }, "r779": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iv" }, "r780": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "v" }, "r781": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "2" }, "r782": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "3" }, "r783": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "b" }, "r784": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a" }, "r785": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1" }, "r786": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "i" }, "r787": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "ii" }, "r788": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iii" }, "r789": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iv" }, "r790": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "v" }, "r791": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "2" }, "r792": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "3" }, "r793": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "b" }, "r794": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Section": "13", "Subsection": "a-1" }, "r795": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v" }, "r796": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "1" }, "r797": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "ii" }, "r798": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii" }, "r799": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "B", "Clause": "1", "Subclause": "ii" }, "r800": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "i" }, "r801": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "ii" }, "r802": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "iii" }, "r803": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "iv" }, "r804": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "v" }, "r805": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1", "Subclause": "vi" }, "r806": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iv" }, "r807": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "vi" }, "r808": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "3" }, "r809": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "4" }, "r810": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "i" }, "r811": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "ii" }, "r812": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "iii" }, "r813": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "iv" }, "r814": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "6" }, "r815": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "6", "Subparagraph": "i" }, "r816": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1" }, "r817": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i" }, "r818": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "A" }, "r819": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "B" }, "r820": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "C" }, "r821": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "D" }, "r822": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "E" }, "r823": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "ii" }, "r824": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "iii" }, "r825": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "2" }, "r826": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "1" }, "r827": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2" }, "r828": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "A" }, "r829": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "C" }, "r830": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "D" }, "r831": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "E" }, "r832": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "F" }, "r833": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a" }, "r834": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "1" }, "r835": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "A" }, "r836": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "B" }, "r837": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "C" }, "r838": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "D" }, "r839": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "b", "Paragraph": "1" }, "r840": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Number": "229", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "C", "Clause": "1" }, "r841": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "A", "Number": "229" }, "r842": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "B", "Clause": "1", "Number": "229" }, "r843": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii", "Sentence": "B", "Clause": "1", "Subclause": "i", "Number": "229" }, "r844": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-T", "Number": "232", "Section": "405" }, "r845": { "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-10" }, "r846": { "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef", "Topic": "855", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-3" }, "r847": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15" }, "r848": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18" }, "r849": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "SubTopic": "825", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B" }, "r850": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(i)", "Publisher": "SEC" }, "r851": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(ii)", "Publisher": "SEC" }, "r852": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(iii)", "Publisher": "SEC" }, "r853": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(iv)", "Publisher": "SEC" }, "r854": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "02", "Paragraph": "a", "Subparagraph": "(4)(iv)", "Publisher": "SEC" }, "r855": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "205", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483504/205-10-50-1" }, "r856": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r857": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(3)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r858": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r859": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r860": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4" }, "r861": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5" }, "r862": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6" }, "r863": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r864": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14" }, "r865": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r866": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8" }, "r867": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(f))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r868": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r869": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-04(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3" }, "r870": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23" }, "r871": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24" }, "r872": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5" }, "r873": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-4" }, "r874": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6" }, "r875": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r876": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "270", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1" }, "r877": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r878": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r879": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(ee)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r880": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r881": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-2" }, "r882": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "40", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481628/310-20-40-7" }, "r883": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r884": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/350-20/tableOfContent" }, "r885": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r886": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r887": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r888": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r889": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r890": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r891": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r892": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r893": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r894": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1A" }, "r895": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-2" }, "r896": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/350-30/tableOfContent" }, "r897": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1" }, "r898": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r899": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r900": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r901": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r902": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r903": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r904": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r905": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r906": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r907": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r908": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r909": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "30", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/405-30/tableOfContent" }, "r910": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r911": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r912": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r913": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "410", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481931/410-30-50-10" }, "r914": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/450/tableOfContent" }, "r915": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r916": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r917": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r918": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r919": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r920": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r921": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "505", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481520/505-30-50-4" }, "r922": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5" }, "r923": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r924": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r925": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r926": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r927": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r928": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r929": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r930": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r931": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r932": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r933": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r934": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r935": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r936": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r937": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r938": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r939": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r940": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r941": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r942": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r943": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r944": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r945": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r946": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r947": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r948": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(v)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r949": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "720", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483384/720-30-45-1" }, "r950": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-1A" }, "r951": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-1A" }, "r952": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-1B" }, "r953": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4A", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A" }, "r954": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r955": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r956": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r957": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r958": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r959": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r960": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r961": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r962": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r963": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r964": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r965": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r966": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3" }, "r967": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3" }, "r968": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r969": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28" }, "r970": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "830", "SubTopic": "230", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1" }, "r971": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2" }, "r972": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482900/835-30-50-1" }, "r973": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3" }, "r974": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r975": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7" }, "r976": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7" }, "r977": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r978": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r979": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r980": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r981": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r982": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r983": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r984": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(15)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r985": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(16)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r986": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r987": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479432/944-30-50-2B" }, "r988": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3" }, "r989": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3" }, "r990": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B" }, "r991": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B" }, "r992": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4C" }, "r993": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4D", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4D" }, "r994": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4G", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4G" }, "r995": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r996": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r997": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r998": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r999": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1000": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1001": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1002": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1003": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1004": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1005": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1006": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r1007": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1008": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1009": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1010": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1011": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1012": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r1013": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r1014": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r1015": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r1016": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2" }, "r1017": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2" }, "r1018": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4" }, "r1019": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r1020": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r1021": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "985", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2" } } } ZIP 81 0001558370-24-010882-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001558370-24-010882-xbrl.zip M4$L#!!0 ( &^,!5GF8+*&*!$ &FW 1 <')I;2TR,#(T,#8S,"YX MK)B0?7=ZV+;>EZN-I B(A&5,4 MJ09(ES6_?A,@0?$ "9!R=7%B^-!=,I&90.(#$HG$]>B:,T\!_?S Z M/#I Q'<"E_JK]P=1N!R\/?C;A__XRP]_'0Q^FSS>(C=PHC7Q0^0P@D/BHB\T M?$+S8+/!/KHCC%'/0Q-&W15!:'1T^/WAT>$(#08?I(@)YL 2^$C*.CX]3_G1+\LF'<8L!6( M/#H9BN0%5)TB9V192?UF"*F*4"2X84J;I3L;QHE94EI3!NKS$/M.6H87KX;X MMULH\8ZRJ-V7$TDZ>O?NW5"FIJ3)HD22,40\<$*XTW*L,1\(3-*$G+$/EF)=EQ9->^&+/#(,"%3 M7)R%@W"[(;R<29J4R\8-68$AEQ$D#T6RX#D>')T,3D:*4[399HV8^-'Z6->$ MCH^&Y"4D/J<+CPP$&6$X!#O"!\>'*;L3,086I:K"D]1BC8M:TM2&2LF1<^KH MA4-"46Y%+:N4O%RH^HIRI$EYAG##*DH"*?FBA*RFC4!J6OLOSI->IDC)MSU, M':ZGE4E%Y;1JY9L9V3#BV#3H'>6N)X3F7A#N77B'5W%2>M&]6: MOC>QZ:.%'CX@B^I>+A)S!2&.6X&+XQ8)!SQ:5!*+Q)CAPU\0DJ,7]OT@E%U) M?%(?-QOJ+X/X"WP3=O-;D(?!?L,''A!P\\ZHJ..,&>&/=F3X0H')LPU*)X M)@99B60J$GY?3.\OK^YG5Y?BUVQZ>W,YGL,?D_'M^/[B"LT^7EW-9SV*C5!, M4_ET>0..^9K80*GA,N)Y;(OG; [_W%W=SV=H>HUN[B^F=U<]JJU1O0C64"%/ MPH]Z)NT@UHDPXGW2#F] ^^'QZB/0W?QRU:._-_J8/UU[P1PCNKZ=_MK;[&H?:H(Y!30>,DH_$@[3?@?P$AA=DA!3K^1(6?/5>U.G8+9' M18=*RD;!$F6EP_==!DCD@+Y+\OCO'M]*?,?.'Q'E,O<'KPI,/5$-Z<346CQ+Y$OHD!W3;]_5&,%\PXM)P MS!ATG'@J4@%J-:$)PN_+$,;"4%9:C]8^:%U@[]@:,4EA/7*5 MR%W29^H2W^5@#:\P\ZF_X@^$S9XPI.E[G V+H>^-CLI IF*EW52"$4A&4G3? M$2W@O"68$R[B=($?QV_DEZN7C0CR C5P\]5?RNWG,W%^@J2EH @MQIM)5 M5OF*,(/\C)*L92M),T_2^E'VE==S'J#C^>$3"2GHUWAQ)\]ML=)SUF:E!WV7 MRZ?'NWV4>!8&SN>GP',)XU=_1#3<-@T7:R08<3]M%S>>S:<7/WV/<[^ M"UW]_.EF_GN/?>70<(_%A'.ZG$2<^H27+'TIW8#;"/IKR7+'0H2Q5F)Z1"H1 MN<:4_8*]B-S!X 5_RRY4A$5/9,3FI(R-D(2D*)25U0/4)N#4(*YD!NNL#%9] M_*C';*_X4)O D!G%/4)"/9X-0@OF>((9*[O83P]+)2SQ[H\Y?BGWIFR2$0A- M1"?F1U) CT"KR$V3D(T1HS;!FAZWFMVP^CE6+841(XTOGA4#\R,IJ,>E>J ) MUFL:2KLO=AT'OH@K$=_1^ MUI$:D-)YY1I[L3SF)/60U*_N;@(7"L9J1E=8W MT% 8 =)LF=F)04I.#TN3O6H/@4=U/:F.M#YP+,X%'=OM2/M.B>Q#@PV#$7/1 MY.U"$@EI/6@G1R?EK1(5<0GT72RR!ZU5@$(/G9G!!&#SO2X]CJ\2M- #VH#3 MA.R;,K+V6UIZC)L',O2(5M*9\/N^C)]VF7 MIA(-VU?L9R&9T727-\IGCE3N_>Z5=NTE/M9-V$7@.T1LLQ6H%PK6T)CCM5]![W.Q/X8#OL@S86NP1FRX\NHHO7O*7H#G M)-3@OC?H258]^/;@PP>\6C$25^9TF7R>;)4O(S)(5L/$Z4;Q9WUCV$>BV2B< M5;>/?,;"/6-)VF*+'.6:B8NZY+S;4>^R>P5EE9)S8]G%CE-3:#QIKHL M08_R7B@7_VZ.=I4$,^JE@<&(NF;)HH>_13S['C,QD7VN/$QDPV("^/LRP+HH MM]B*KD3W<+:"\P+[V*78CU.2R%3U2;'F LQ0VRQHB".><3XJ=9=3C[S-:@=A M]%GVE!N?ARRJBZC4TIKP?*O91YC*0QF!/6SM85,?T\MGQ-C:$E8[66;82Q:[ M O9<0NIVBV&;]HVC[?;L"L@U%"8@#7NU>V!:[?ZMP*>:T "3[5;@'JY6<%VM M-UZP)7'*0\2<)\S)@X?]&0&+Y6*VG2Z78,7\E5RBSU)8(_T*>9@;2VU5Z4R@AI%:$)/[O-ZSU:K=!*0LC0P>9!B+TX6#39_DB"%<.; M)^J,&<'6D#:29L9=LR!2QGT7!A<]6>:K8EZ++=IEC43>?2NI;B7)\T3J7['M M#ZQBN+WQY=*3*$S2 FPH:]$55V2 [RW@58\B97[*G8%2(,I([ %[Q3M0&E^" MTT2<$?I3VUMQS+>C]#?E[+.WS&+_F/F\L^TUVCTTI@7IBE5E,P35&X+Z2F\6 M;;0*(YH!L8X+]_@8+O[3W]YG/O):>0=?7^--1@C]R8)JPGJG_L1^1W%_N,!V MU*@Z_)%--,%2]_GN@(/XG7MA])$LD7Z0]Q\P1I/7OU@XW+-@0)K8T#)6(@T3 DWRE5R X M4$^J_AWJY?!E[2F24@;Y5W0EV,6J3$JI1(B]C^\/.%UO/,AY^$VT M"::E7 MN8-*08MJJE2^$790)P\OFNH$+,2S5>>'8>&ATN1#[CE3^9@I\ 4L1'[^76U> M>&#X)-M.!J/#T0&*'_:^#1SY;<=6*'Z9]1"R30I:4X+JQURK,M:2RW==Q8]V MN>X>O;7*59&+'\UR-;\:;57?&D[Y-V]7$,T[V;IB%-D\QG)< R%G,#H>C-ZT M+D?VW7.;,D@6\5?Z[K@HQ8DHQ4G#)EAZI]TR?\4@,CZSSK+JB>W:!JA]"GU( MO)"G8IJUQXJWU?+6Y$R\. M5N,%EYNXWA^ NYV$[,18\?=YL)F3]+PMOR/K!6$'LKCO#ZH2J><))U$)@\QY M2,-(%/9'%D2;]P>BI/2T M$4LBO0TTR>UNW?Y*PR>U'W6"_<]YQ2QINZ'G$GL\JVCMNQ^I1S\G+^'$"YS/ M2N?F;/NI'RI);6M@AVSV!W9VDK; M0;Z)I7^EBJOL^>6E/7!@B2A%6A_U)&T:>OQ%/+#JKUZ_CT\"Z*@WG$?$%6^[ M1*%P+ES(2BE41]!>G77@DQ"S;5&A1?R:R/L#1QI.G9ZQ_Q/6MOC=Z=.D$2IM M= G?M*VE109)G#^P8$G#,<_VGF0K1[H(%BMB3]X-]2JMI;U=[991O21+PIC8 M!K 6SQ-)ALPIE2PDXV

RMRA]EG$E[ \ >]YX%1A_!/G+@W8@LG86LJ!LI4 MUV -740:D_D3#B^"R',GZ;Y/,* /&&;G#MU@N2J7#+R=*E(W37C9(7N0,6(B M_#'QWW3Y*^'RX,/DZO%F/!G?_W01,'"M95XF[ZZ=L&ZX?X6:BD>O&]D9Z;/< M:WQ\-#K)UX")J).:W0?^)Y^J;3N%J4A58B 75@7)[3=4RBG]JU%M(-4UP+ MH+KI.9[Z/5-.Q0V&N5Z^!__7[>CIM+UBHK^WV4NU;&7W--S?R/!95,@=YC ] MFQ'V##.V\8J1>&>Z/K9N2]S)$0^\\4;*-J#OI+YBZB'GX:J-%O2K2>^D/AX=$GCE341/?%S;G0[ULZ:Z%IU5%PJ&:&; MC%B5K/]2-5%XL^$R(O-@%BW4A1=!+OC9CKN[]1'?$J3L\/R)$2[61QZ)F 4KX)./;$BE Z9<['V_:6U0U/3\55,SM31>SU.F!SAK,K,#:$WSX> M?DN@>LET(U;XH$QRDZ=ALM*,I2N3E;(_F=<@;F9C/__^;)4O:L7;74^T?K8U M]<7J(7%ALO$/F';QW52M(5=WK5NP!@OM4.R)2/A&)%Y3']A!.3#4_Q?YY/AH M]'8>C*,5F'.QC:WH^;07T"6?*-8&;!*A*_^6A.""U5D^VIQ[% M:JG3HZASE5XRNCG!O')M;;+=D< X+<]]?\',S5_7(LLP7H+28]^/L!OVU)6':Q>>5E/ZC"5.F)%>@=[ MH.TK+O+EQ^3_&>\AU7A/.?M['5\%9Y-68@&P027$Y-UKSN 1.(2X_)H%:Y,. MJ6,UAGG!<^))I36PMZ2]7)"]*L=VG22Q &*C'?; ?,%4B%S)>T/*9J"&J(.V MX%HT74P<3^7&F%-FN9E"DN\C4WK#[HCV2V4RWM5M$*;8L[9)B M\QEI6J-^H73N)2=Z +L35.JWG2"'_H!]2(?:&=USJU9KW9UDXO M.IV+SKDVO@V;W0)C$YS1SL+V7Q?L?T\PF@;X;(=__%QY<=W91:WV]O9V\OY$ MK1-"GX%"O54+6U>"YNQ7G-(>VXZKV\:R_1K]MQ9OW>AVNS7^ZZ*I@Y,: ME& M[8_;X8/Q@J9Z-3* @R\<_N60&+K+U92)0Q.V8)^J8;,J^ZK::%9;C9-WQZQ\ M^473/E%BH7LTT3C7%^Y\ACY7'#R=68P9_MT+19//E1G%TRJ3?_VT56?=?WUP M08?,./K$-I$-JH8_'&)AD^GV4K<8HH<7A%RGHK%AOM_?Q, PDH1BQR!T=F*0 M:8TUJN4BRX4LI>G:3M$N?G5&DQN84%.T/AG8>\;_/.Q@QM78V@RH@%09J.[1*[(]!/;F4MUP>XX#3G8C<.D4 M%< XQ/H3MD#Z:*M D\B6@?8K(>8;Q&@]V[R!660_XR<+^5JX]EQF?8#*Q7_S M^;61 (J-5,[<-8@'#G2LSW7&HVW"-]1#YK9L(=< 94@ PF\3NSU*04W^8K(1 MWA1R2J'KZU9SRPA]DF6@O,*O&,(#TP'S&NC4AAV<,T;TX46'WS;1IA3A,A / M$1!T6/!';#\ XM\,WFMHHA3*QDRCNDML(34#1TR_ LGU;CA&\8?UVE[G,; M:3D$R@%]QL[6=WL1-.C=!2-%YN);[+(!N]T.VUO7ZUI56]"&O_NCNZO!W7/4>X<-E;]B[ZP^TAV^#P>-##DTQY$Q3Q(AQ9;%-.Z')0N:D)KKS MQ.EY3O59UV<\IU%#ENN$WW#[Y_(.OOC37T9#HI;^A*S/E=4?:R6PU/:H M>FY?IW0.CNEWW?*00$E2?5547IJ*UM5:'*9ZZKY'!@($$%HZ=\A-GX.);0]? MG?*P O4UU5%?N$?\@=V7ON>X9(HHET&F,B5Z'KYJBX(,%-U*4S3$(!""N'-N M#_O5^IBBF8[-2-CHO@3 ,I91B9Z'K_6B( .MM]69WO'MP#WC8C3Y[OBY$(&* M4_NHJ-PD%>8'(>.;2YVR!""Y\S%L0ERV&X; 8<;V$W="1:9U.10]YL:@N.== M34<"C,&[87GLH7>8M12H4Z;KH:BU,!;U7&R&UI+1M)353"J_@?0[ZD@_LC+? M$=M(C5T2VQZ*7N29#Y1TJHZ2(FE(<.$/+C'^>B$6<.DP=^[.!?K*[E8:C&R. MU;(K60U$+2X+C'JYB C'Z;N8]8;*JBN1L51EI2%23V>7!*JG'EH7*F)I/;'X\R<^!3+R^X>/ J-2\%K>-8VX#U_!!UF0>=S/:S M_ QO*(IY_A3O:M*II\&F>>G:G(ZG?H6BT&4/'<[A6:(&#>]&\!/.KO M$;F(L_09O0Y=TT7@J9?DY=FW*.=2N<;$#H>NT)S(U%M4I?./ZPWC"#OJ;$ZE MDWJ2F-1;2OMD.B4V9S_U!-E*,[4T)BG]I.V)!"P%LT*FB7TFQCJ&):"OS["K M6Q$THO109L3"0< 5V2!P6W8TF$/"),\!YJ!R)$6P#M71X_*FVD^B*7M/XN$1_KD=W#T^:*-K[>:N/[H=5!2]+0&*7&I5,!-6VNS[0%(X M\C58.$N#8ML#]Q3LT$&YEVA"*%KLWY S>'>I#D:(;9W.;T!;? _ $JC$ M:> M;VP74>2('/X.1XQ/E].2G42B[N.GH/8K"?4"Q$4>*'.2)+142]O[5F9*4BU# M1.J9P5<*O(XIF0BCQ$@+M=0N*_1U=65!4D]-05V!T+Y7GYX@*9D/@42U]$ MTCO%D9\!\M,/;30%I*5>1CG$'.,]"DI\?$*FZT^;6;M]5TQFZAW,6 @I0'$) MP9@XBR!HK99]2*8-Y5#(!YJE/BQ(KJ(J^^2@5>S)07]T.[X??(-V-[\/%'^. MD""@C.=KJ3U*" ,$3[K$00]LJ/BG8.Z9__4<-[CYG89[-X.IY2(DK&$M1MB/ M2-3+3N5^ G?0JLY&(KU+*'=!B)23EET&.@67@=[#-^UZ./JA;,D])HR58F'Q M\M,P5>-?1%J.$<6$';^E[*CU%?+_A<]^NGGP;KRP0J+W(+7!9((,X66@/3.Q M=R_!6!Y3PNYZF9?S[PX[L[S(#?7 );ZF7?V6)Q"?E>&P#<\G#WQ8*5M-HT6GA98#LKFK9SX;:6S>'PB*0,802;X=\MV%R6/AO M9(;9O!'@HS"5V,,"D5O)Z'7DME $O=2.=VD'K;T_8&.UJ_G+B%AH!T%0FC]( M;GSD6L\!.M^-L-+RWP9;-J62WI&61ZYE6<2*7[!>.J8'B(G8.V(B!>L6U>I$ MIYJD.A^Y(6P@A,S+9?M_@KH>#$?* XO3TN(^1Z[]_-@SZYNIH'0_Y>;?BTRM MF"_3]<.9@*0( DLX4]H25LHZ29O!2K^X +H@@+/CM@$9_($!G*NS]T_$L5() M*H\)K'3]B%8@(X+ $+HJ&\(BX"V^*JSV_G#F("^%,!M4E\P#E% )>A6<\&4# MTD8BI/#A#"6?)$)C$><.2TX:R0%DJ^6^S9*4%'83I':A3;E4=H%NE'NTOT)_ZEEI03$%179:HA)Q,1R5F^>-5K'I/^-11%:B$(5K@1"NK%?D;/)888$ FI9A[*' M&60EI]X5CK$^YT>R'@F_VD11>.D)^45*N%3]7T37/?.04,N>-M1FPFJSJ2@R M#SF4O*M= RA\@9.LL0@)?#13R2<(!6^8 @ #(9-?>TEXU"=C'/(4CMTZ-I2$ M>G? !"*ZQK9N&QL$+0D$U+(-98,66A:V/W(]Y\.=\P3EWF/,&)K(ZP%DE!YI M_I%TG@5;P5(48?P;E-%X)(_Z.TO,LZJ;((]K0G.=I"U*+BZNIIKISPU6@&V* M)?.H9GE6-)HLWN*477TZO=,'L8@=RHCX_ M*UST8#&C= Z3(_7U+S)]8_/F_.R0/5F28RHN Q43/%'@P@U^M-&1:U<";)D5 M/I8^.5()GO=OT?(P:?Q\)OZGCRA/.@],LBSS2XTW\#.RL43S.XV M!.?*@N>^K'KP&[:L^#DS:.--D2DNA+>CT?[;Y#J6_[@-2 M12#MQ'B>%2N<]R\STM^4V8.[<77Z\)0%2]HP@XO MV$!V?DUH?A.0['T4-K )5IE@KM2J-K!H66[+;%\6\L1#G,-7UP1RK^(KW?=QOV@U)'"&[7^JTU>84]%[&3&-Z*E M_FP6J6UQ'6BKT'>[F!UG MO-B97GLN2]Y$BNWE=ON=]5U;.*"FVZ:V'%+SQX0&_K!:=%SU%X-5V4%HL'B- M5T860Z8K6-/9:;?>.#V%A;3=;75.._L.[ZZQ#;-JB%_1FJ%$516^0@"LXO$- M6:_H%N;.BRCTWXQH?(ZQ:WK=4E_F4%"/ZZ'C#L22;]%1W+KNT53'X'/H:'(- MOD6W_H-TNA432Z3\T\YRRD;QG6H^V SEXQO9BGD%M'X:5*8TBFV'538A&%GT MK+H@M9]F)"$/Q8N&YH=Z3;SMK'4AL9]FE"V.S'.MN]BS%^.?%4B?N&C51K9 M\>@,95AXWI?V>#RM/9Q:9(Q3T?J E9@'D7I7ROE[6(.U+EUS"2T/ M6&NR:-1[-2R_EY1W<4_O=,!Z+ !,9ONS^X#6OZC>HY1=LN%WSG*'KV?KX:M/ M58N253]2E;CL'F^RWPD7'3M]EB6T5&MJ)4DZ.IMD 2A^A"\*8UGQ4$)IR\:' MJ[<,# H^MA>ZPKYN-26O5G1S^D+VNT_]ITLL\BK()Q<"7I=Z_*VWP0VLWI2E M3@3LIG6)&VH##+7,%\%D3;;<2!3WEM]MW4\-(I-#JY+\9/GLF3)(UE63@JJI40C+.&YP$T)?P23VI&4U+@XS7/<["+IC-A! M^3;V3;#*PIJ5G TO\%ROD5!'PQ^=W\\(&6!5-?C76L #7]<67 2_'=0S/\$# MA7S/58[NF5#9SB)#*T6?"!W&[D* *#,MD]GOV'2<@6QK>9M/-5_<@8/Z\G]0 M2P,$% @ ;XP%60B?.CU;+P "]H" !4 !P-N/_ \T;<[D6<+,ENS[3[VK-!/>S1K2QJ)'EZ]U-' MJ0HD:UPL<%!5DMB__@#4@_7 JYY(=3-BIBV2"2#? #(3P,__\;()9D^(1#X. M/[TY?7OR9H9"%WM^N/KT)HF71S^^^8^__(]_^?E_'AW]U]G=]_7@]>\#;K1/.OB)"_""8G1'?6Z'9[/3D[9_?GKP]G1T=_85W<>9$ MM D.9[RO=V]/\Q_.L]YP^-/LQ^,/Q^].WOTP^]-/'S[\].''V>W7'.PK16SI M:^ "/_S^$_O/(QUM1ND+(_[QTYMU'&]_.CY^?GY^^_)(@K>8K&@/)^^/<^@W M&3C[U8N+!F7@#\?ICV507]&U'T:Q$[K[KANH/+_GT*W>--LY1:8#(_RGB7UYCUXFY1+4DSZ00[--1#G;$OCHZ?7?T_O3M M2^2]^ W_%F=^/5K.>H=(\.NFO@ -+)PGB"1A1'<LBF/^BD4= R#XG,G=#S?"=-?LH6J/SC]VF%L<.,"$;I:9U*YHEM#DO17 M<'6/@&C,O\QG'NZ(1N6!X8A6>.0_^73/ZT44ITN'A'ZXBNC2YG[MD'[+ *.. M;5#(?27VX3XJ[ID+>!$])].@X]A^P6RR55T7#%95.& M&)@Q0V!B@Z?7=&.+HG.\V>(PC0/Q;RY?MBQ81/5[L45LA@M7_/MKWWD<8B89 M8%@[^XXM)G$:"%KU=ZF*[F!0EVULJ#P><.P$Z"CU&$EL<9_/$SG0#(44B7?_@9 MD3=:OHL0# @I^F,#'F4?J'Q.?SPZ/3UZQT/-_UH?JT1)3D8W)^8PQ^2QC2K? MM\Y?_.@";QP_S/;X41O?;-Q9E4GMU)>1%^4)B:43/7)&)M'1RG&V/!ERC.A0 M[!O69<31Y:@BY&V:*MKH(A4&A3V^?(FI+V(;MLN0+F;2^.:U'\7C:%W1@1_& MQYZ_*33#"0*]*I7R,BQ1\8&37&HIXGD?I.C?C#DX//*XC#MB*.MF<'1Y[T<; MM'G<&VM;7$5]#(WHFO9'W.01'16LZ8BNHJ<1E2$U]?[:4.U'A# %\4,_MP;(T.EMVZ4A$8/SD%=\Z\=L@'WS6:G]+'5WLZ]<0]IX"480DP%V*Z,'+(F) M!?IJZ '9-WL'F'WQ:VDM=9X00J?<^6/$MV[Y0('SB()/;_0-?CVM,<:LR?&D M],Y=ER3(:Z(D(5<*+Z56V2(G=J^O&6&,"5WV?'I#_Z(+#[J0B7>?WIQ,KCU\^:FQ MD"J07$\:8-/20.I<:B;##-W-#B-3<>W M-6?D&)<-0HTI"#LHF:B9KM1AU6HB@A[9:TK'!>,GI1AF&O$.BD:H)U@YH%P3 M"L#IE* 8$J+\"^0RT;\7B?[GX^K&<;_YU6\H!PZJ*;>8'S]^/#F9'>NNZ1&)2UI./^TUG'[XM:@>O7=1Z%!6,UQJ M"BZ%:_@Z)>3Q1!1EPWX+HRUR>:7U124P5:9*!BNF3 5=H:Z%%9LP%QN,W].: MI6&;AD4K$&9&K45T/\U/I!#E8NG+,$Y7)V(MEX$*U4$%;)$TJ;++@8W)&T;= M#;B,37"85.7E2.=:KT9V>+5OL88I[#5-=.]SM@([,&HC7>5J6UF@OH:*T$"4 ML%)JI=!=S:,M\[$!+I.9B2'RY:6?%&F[YI(\1K[G.V1W[P0H.U:C,A49O-Q, M5"UL4+S'XL;9T#\?B!-&=*7.SH.H[$7?4,X#HZ:]+EG2>2'*(KF+IURHI3WN%PINB='D?EQ*0MF+&Z$^^39Z\1PB$JW] MK63O7/E=N*-L0$R-N71K7(-08S_,)EC&+BP=;=+M;@V]?(\K0,OZ2CVK.=6L MSTM0RE5Y#JE=QW.A*YA%]9BIF+-R%96SQ54*VMF$8HPHC7Y1'!OH.*J M-OIHC:R5#>I3%-2J7X:14U>'&BPJHV$R5N!@+QHC1KIB"G5D+<3JDS!&9.N0 M>,=VL-(X?1-,$L06 TY$SAW:9H>$YBNZ>DOO<*EB)%V3&+<5$MZJ=;]@OE(4 MN ,Z$\?U1?CGZYU6>%N=-"I7N-SYT?>SW1D*W?7&(:K0I:Z9U+F:- 3!AAPI MY82B:]:"#=%C+"[3";?#+2DU*>CTQ(@&9T_-J05O:6MVAC:N4V$.CF MMZ.T,K!]"W.ZJVU&,"N!*%065<4'@C'M"5#:415QJR9TC:.(W3O@ARMJW#Z* MSNBL&B<$+9;[KT7)@_8=R(^ZM.K".I,RY)3VIFAAR(9&F[[VUDE0V!B]RZZOS#TSR6Z]DE5%-(.&V0PPV$2%IRK."@G1W)845DJ6$[K-[ M4K(5&PP^Z5Y)A&V^4U)B:76&N0I=BDT1!LFOE55,*8H64N>I:0.';N6TH6S3 MEO;AI@XS@> 6&$T^6RA)*$\/6M0GGR#NV%5ADGFA^$TWBUB#A:-,ZL1+:!51KBHZ5KUU<5WOV:YT8>]G@OZ9:#8"!BVE M'LRPK4U^B/!2^G*#EGI^J-OV]>OM1(9;XS>YESN4>8)79J9H8D"YNU-?0#.6!S3&:W+34))1M2HFXK6K6!K1@,[%J%JQ*9&V:LI(ZW>I5295=FV8DHVNZ+FC<[$_=%X]Y"K;;L^8/%ICY^T=JEC+UWX)>NGMZ%W$C/NA?/T]MZ&R(K1MR=N\I#E R-[ ML;P*/7;->^*(9FLIG# P*(6T1=$O?KR^0T'ZKL_:WSY@Q9&U#CV8<4'?1Y\0 MJDX\N#-6DX9<)63DX=<.Z-L]2N<$[%FI^S5")MDT&;C\,)FB 1!RU_!G$&+#=O)$7?#TT81HA%AM7I$8X(@E8Z4GYZ>, MWH>OZ-J9?MCBR F^$)QL(]I%D+"7J!D,K_I*4/XR"IW=S:M01AK M8\WQ"!&HHEY9# R 1$UMM@C8F,PA*[*5W,8F.%@HNQ8A72VPEB%K=Q]0?E]3 M55_$8Z\>??ITM0+BRII8@:E7E_^X0G[T+ M=T>G287"U\&DVB "M$R64M6;@$:D#:?F"LYBW=B3JW@3V;*"BY&TJMY?B!/& MB*\"$]5.K@$GU0(AI&W*E"HN@#2C;C@E5[$7:T>?7,T%Z);U7(*F546?/SO$ MTRS=*S!2%6A V;AAAKW>>^9$R&,7SU+QI3'ETI/H9[L]S*VS8]]QQ/?8AQY[ M]E<;&1AC*"EOQQJLKWW*- ./C_KDQEVCM7*[SD@T6O4,.3H*QU &D1=CUH L MDJ(T:$-3'-Z()%S$JC$GU_XJDI7:SPG45E-!<4UQ77&;.V?W^8@+0II PCH( M,9@50J3A)A6H 5'#A)JT/,7ZL2>MU1 AFQ=JJ)"T&UI:LSGD*IR[+KN=R@]7 MEU'L;^A.27\AC4%3>73&L#$HENCOJC%HVH$E ]]>TTYNN#V&TX>XC$BJ!+T, M29E\KKDEV$O<>$'N$7GR7=EL(P(3NF89X+3D1'3]F2$@?V9("JLB3 S=9]+1 ML!8;##_IO"/&-Y]YE'C:/1Q:3DKRTE]_Z6MK C6MS#+CXG:P>&!>-R!JUX4/ M QX:-1:2+(DOPVSZPZ,Z4J1Y=AD)DT\I1:W!%X17Q-FN*4JRLG8IK- '*Z&G MHBZ]>KB,@72&D<**J5-!#_)JHX+)V '.R\W-I$N7F]4(6O_MG]V-4)\^43_ MH]G92*#EX5,Y/ Q:U9%F&7P;>H>;._3,K[\2(,/$SFL!(M0;KP;(4+:;J_'^ MD41Q>A(3DQOTO-\XU@59]R',];7NQP"TFN,5R[J4*IKQS0 0J MI5T&W#N7TE$R6(_:]+F2=K24S4]& Y0[ ZY]YY$7XFA/%*O:R,_$ZEK9I#[' MR$=1=BS<6X1WR$T(H9+E=?[?0DS=)WEB]1Q7X3:)Z<\X9*5+?)5=I\KL,H&Q MQM5+8)HL?P6;@E^0EZ&/75"ER_LS ?R/E/YSC?L.J7?,B^34[@@ M]*]_(#=6I?R&'TF>#AMG+#LN@F&@OI:L#*,R^RI4[US@J +%"LRGSQ&.06K- M551)M%M CZ)8?4"\!"&O+:_"V*-#72Q?AM'1,F")O)"!6#'B](7Q910K-?%U MU.Q&GNC6W?.#A-V\><\6R7[=&EGA8Q)S8UPL+QT24N2C6T32LL>=N -5G&J\ M$>51K7''!",W;2FDKEE+#@Y</R>V;.=N5?E-.%:0<*3]FF"\M,TLP7=4 CHH><#3I( ^NPLC + MF)-1G0Y$Z-N]3( B(7Q.5'6Q@*J-5*.TK:Q3;_+"K:*%(>6#OW!K*@YLC-'T MEQ.H2:A<5*!&'<#%C0_.RSR)UYBH[UL2 TN52 X.@E"ET>VCJ@44BK61 M,4VK=M0/&RS-=#"C< M_,I!K1$EW<[+0 T)&V9SK^4MUH\_Z59?AG"^XU34V?/SXX=W)R0\G)[.C6=$=_?M\<7-Q>7-_ M><'^NE]<7UW,'^B'^P?ZS]?+FX?[V>(S_;0X_\^_+JXO+N_N_VUV^;=O5P__ M3?O?!&%4H:T0$AWJ/>?3HQ.A-[E637/V+"?N@54U2VRD#G1L!\54?BR-C4/- MJ29-FYP (Z,UMJTU;4G1"Q"SOW)@3DU)S1M,*YD:2DH_*X$= M1Q(E+Y>-8R@&E8J5I2*AQJHT*#8;''*'IZQ<%<"-) 7.E:---HA:!$I=JCZ1 MTD#?*MOW#P#<.KYW%69EJTH1:-I,*8YW/<6A(<6J:.Y03+%&7E[LI)2)#'A* M8;SO*0P9#78-Q'633<*3,(MXC0BC@Z U<]#L@7<6.U,;BWG[*67U0U_#,2?+ MJOB*N9$NTQ'?K>K67"7 <03B!('QC-[ 6KBXRI9?];T51<"+?V)/KM!]PF7 M03^]B=);,_:_!YCN0#Z]B4DR^>*8*@I!=-=P@=)_K\+FCN<.!\'G-)XFSQ6T MZP7 #&4FX=:4T0TG#^%SS;)L>+*M:\/PFH 5G0=5;-JGTW* F(%4Y'5U&4 M()EA54$ 6,T00JG0!$<$,(J"4J%///0XY_2MY#W%X;)$(=:S 2\D!%&0L[L!1-LZ2 MU!E=).RJAEM$!%RDD]Q^$3U65^.BW]._;IIFQ_Q*R#$1OT.:4"_,F*<1LP ;R& MI#H]L(H8=PK<21BSQ=AYO"J5*=TM]X EX6A.UF/]09X[1&TK\F.47;2=LH#= MZK1*QU) WQ*T?\XFNCE M]&E%]O/QP"4C^]>Y^5UNB^4M]7-4*=,M3GH;941U"_G\?K?L.1;)7 M263'.?>_P2DXZ2>8XCSEGK3A':X)RX49P\:O=JM+A/I1X>!X"3X-#[\Z+_XF MV4BY6/O=X@)8(O&[P,HQEMQBI0:?W#K*04XI"/D8E+LW M@>V[$IVJJ;@_1($:6U=QYI[\Z?T)9S#[YM?[+7)]NIY/R!9'B ^X$_H5+;1E M+Z-7%<9A+156-R!G3D M%-VO$8H-[G61@T_ODB19L@%X#]CA>:^K3S)M; MJUIK2V$EH-O544Y>]"992.B", ^(;$1+"K-V &IONDBW!85PPJ!-?-G]DU6< MC;VHJ"F ZIT^IFI&)&1YWCO28)T,&$!!S; R2\F"+*4;%*?5/;&QK,I- -2] M#"NQ,G&#R4TRF]T2["+D1?QF>HW_7M!=D<.O_79C_TF4R1ZF2P"U#IWGP-[$ MCRWP.[1U=FR)M%^ ]91WWQX!Y(\[B[LO[6-+6YLQ1/7YT;P9@.3O:$M53B"P M[.]Y$L5XP^IDZ18YC$FZ.VZ?ZGUOFNK-!YRYY1'A9W4K#+KSH^^JI*T,>.I# MT34LSG9G*'37&X=\5[V;I&T&)J.K%DKUY+2.*,OGU^OHY<@IHZ'Z9C!BHJ:: MJ)98G3:[Q9IT!T0]_1,*6:6R^KTL"2R V*BIWE6";6)J@-F/[H%'90LP2>E> M#FY/#RS9[%\C-)X^2RW >K2ZPBFE4Z;(KG1$"T"&H?H>%5TKB+ZMJ7<5$>E( MLE"H] ],8D#E6WK[SJEK)# M675;_1UPU6T5T4/YLC3W;[M\N<\>I1'EU6U1K@&4T.BI4.])8-7$-/"[29BF M+)9THBUF6=%"PK A@*H8,X&U(6KLW$]S=Y2ZPULZZ[,H_XHNEK+84/0%A2P[ MA;RS'2\:7OK(ZRS#0<8!4#O31^2#\ !.T4:#OCUAIZ9NM]($0)E-3Q=<(6=R M6\X5IIMWM61GDNJ9(5QK&ZL9,6W[V?$)/^[]%3GL,S]/WCI'^_[DM)ZC91W/ M>,^SI/>=1W8^V$=11HJW".]8^IW=[T !;G!(\H\\-ZW* MWP[8_[0NM4#\;%>2Z&>"_IFP>ZX4^1"CEF 2OX,K0-DK&['"ZLPI\@@%?LK4 MBE%+&"F6%KHLE)Z*0G#2BPI55>9=S)H"2+ZTT%"=\)KTV;WG!!'_B2X5V'6" M$=WM,A39HD'U;I"R"9AD\ZA.5H.WF!08T]?9KOCSKSXBE"/KW35Z M0H'9,E/9&$P*>ZJ5II(;,.1=GI.;Z+9>=BKZ@.% VRFZ=ADC)Q>&>*_";1)' MG*Y3LT6HJ 4 +]M)887B$Q$(3ECO6@OK'8#DX*C">@=+6#VF#ET>5/CE!Q:/ND9>EV,S; YCKC36[DG8S)Q&.7/=[QP+1Q7+_)6>$-EJA:@K MDCM)TXPZFPF\+$E_B\@2DPV[C&CQ&/@KGF]LG\C[H9G(RP:@?Y7&F.'](/!3 M>AD)=XBI2WHE>Y-9ER];Y,;(>_ W%&2QO*??1LOTX195/F^HSB>OC^!*_XL? MK_-4='&$UV?W&:G/-QDU!I/2&U8!:E461JRP70RC05)W9,JP.8S82CO=;B=- M$&$5JJ&(KC&^.C&=B9P@RM%6;M9UC0 LN-KJ:5ET.O(L/YC/WP%1&PW N4 2NDA1A4BG+/"1=Q7>$O3DXR1*WPMJL5ALVS& M6NMQU64()DU0P=W ,8]][KYBSU_ZZ7W'_"DS4:2W>S< :KS'48#N+('M.G@@ M[#S9)$%:@>+$[OK;=O]$V0/.^&FD.*..!."RQNF=2V^N00]Q=HAT-EX0TT(H0[-LL.M&&-OAP^W:!QNT3C< MHG&X1>,U3=Z'$/HAA&Y/^]*HC>SJ@>&Z_Z,$VP=@U?@/%[3&=']%@RB4UK/# MWVT0?@CFP(]O+)TDB-N$.7K'.+(Q#[$.*+&.PS;TL T];$,/V]##-O2P#3UL M0P_;T,,V]+ -/6Q##]O00;>A] MGM2)HE=4 9%^?[?): OX62>A5;AEIGWW_ M(-^95C%@[[R1[+?'W)1&U@BBZ3^='T1LBAFW I+A-1%-YK4I-E]TWQ%)4E =[:C P3N\8*5A% M"E4J1IA"OU%W=Y$-(W]C1 0%X%"-4!&*^4J$] @VT+!2" 5A+JGDH MQ'KR[3Z=CR,<^![W77QQ(@D%R@#!Q 5-W;"*& #LES[Q) >U'Q14:Y&3PU%_K>Q+;3 B'!_]^SP_^?74B:ESWB#SY+II3E> [!8,' T;OIH' 0WI M&3NX>$/]6E>1F+>U[/S-I6).$NSC7+^#FV DYSK;AG@.][L<[G>9_G)/_P5Y M#*'B*F_U-:Q2< #AISYWNL@)&R/(1QE4&4LQ=$1,P3&XA VP1 GK&S)+3$P5D^2";4:TV9B[Z9M>(54XHJ]T0JEQ6OMM#D M#WQE4!85HWA=/ MU^\'FJ4CE0' 9^_OW37RDH#N!W.<58E[*?0A9S]4SEXCD$.Z?N3-V"%=?TC7 M']+U_8P_]URZ1;, SMHJ68ISQ=9ESOGUK8AS C2B :'_1K+98PQT!5K_W&$E MVCC^J%V)-K][14O2STP@=(ORA!K,-%NEZCN8.A JQ>=LER9D B=2+6-;]0!P M46LJTFK8M 7-E@/=4DSW>++TF_H!P+:]P%@Y=U!N0RF+J;9[93UQ/,2P4==D M-<$ +,D[:FGE=OH&7783AEE$Z@X%Z:G_M;]5"T;9 L"29P 9*4F$ZB9U6P:S MIO:>YFM!F7ACH9\@7]]>0T'3%X*C#K+.FL$V5*7$]<3!R8DI<)V[;GH++_+F M=&,4^[^IKM?OTA& O.<(,I:2"T?J=91O4%QD?#31 [.F *[%[RI9,P+AR+*L M8XME'7N)%'6- -QJWU5^.M)LAI#."?+\>$X(NT&$IQY:1XK^W,Q9IKW.RMW" M#P5=H,?X*HSHFH5?ZJXZ4BR"G-;&KG&XBA'9,%3XF7)Y%$<,"B9@ MC+6( "V*:GA5KIICD]A1*DPW&^K6?2=@KW)OF9^F:R$GY$68"?I_28C>G9S^ M^(#GR2J)8MK!.U7M:>?. .S 34VN.Y%PUO%?Z;)UY:PT4><&%( ]M%Y*4NPM M/R5?7@OIPI-2:'O5OVK\JX_#"Y9]KR_:6"7CW"%DQVI4-S@)90]SJ9L \'&= MI5BG!8XK^Q8ZZ28<>1SE*$K8K6+L+K$PDFWS=(T .+H6HM)1 T=8S'L_9-Y; ML9O:@P"([;401!5WF&P_3PA!4@\FA 00H.LHA(($F+*XP:%K+(XR,(#'&CM* MI$P%K.CH#9WB^"N07>*DC8HZ49ST:+8?XQ T/01-#T'30]#T$#0]!$V['43% MP1/=D%6)489S-&T ;$_-@SL:6@X![4E";$,'J?NS'L44\\4RU0HU\X6@ /:; M+=@O),%RF).[4KK"W:]A[OSHNV(]IFX"Y_95LW69FAH@LJG<4:]:I:F;P%BK MF:B<6$(BFFR7RB%"EQYW=#%R_^QL]3>#"H !+,1,-*UQ-:B E$/&YI"Q:2FQ M7Y"_6K-JV"=$G!4J:Y9"(OR[0WRV@F8HRUZ4-&\^I?1^''AIHZ(+CBCOT-;9\03M M8FE0GR('GU)4'WN+2DX''-&D 'IFTT:(SGIO]S4$@1( M9J6EL<'.8&)9](^55)&'R?=\2U(\M]IGSZ;J9%+9]8^-M"4/D'0A%TZ>]H^) M0)V!7GUU\6G_8$?O\N))R_C.G=#Q?">L6+G?J:COO4%1'_TR&S#_=3_DH<9O MWN%DN3H5O%>3!"CHUEBS'#+RX#+RH@W7[R:-.,Y^=((TXB'6,'Z2_Q6' M&GX/0=[D.N(X091K6G[R,*/S6O5]AW/2CV_A@""@"'S MT/LK\E;,5%SZ4QI^*:A5WKG?H[]#H?M0P8F>(CV4PQ_*X0_E\*^B'#XB<4D0 M]-->".R%]^(1LWL7A0Z==P7>30$'Z.S. "Y-0>CT@LF&_Q9&6^3Z2Q]Y0L>E M@;7KL;0:5G!=3L$(, M?5H,%P[ "]UBS- -3AYZE!CG3<*4E%VU71#PC0[Q&1/VE PE0F2H!HU Q T' M$KS3Y]D*2^!N9/&_8)HC3N7)($42H_N-GH_*5# M_Q!J.81:#J&60ZCE$&HYA%H@W3QPV 0=-D'#:E)Z.%5]^:L4^O>T.](2"W%; MQ%',,"Q"9OR11_;P@!/L&+<(SF2Q?<: *#1-]5>H0.]B(>H,U\HXZYQ%"W" M_7G@@JU?+^>00U M'V%&AYCQ,> '4@O1JJ*C=:")3;\0HB+&684!$]04L[=B;57,[3K9'!=U-+(. M!20 *5(3(:='K)=8T*_>_^VT&$I>,"&#A#!KB-6@2*?*4!^-G^^,^=F$A!"N M,>)G$_71^/G>F)]-2 A;8B-^-E$?C9\_&/.S"0EA9V'$SR;J(_'S!V/_*8*$ M<)K#@)\BU$?CIZG_%$%"N-O0B)_#^L_A%M:Z9)0(T%J&28YU>2557]6^PEQ0 MKBO9@QT7E* +Y 9TS^9=.+NO%/4UW3/^-W)D>=]6/0!8A)A)MA55@*)# K07 MRSOD4IYT%Z>T!P!KH.[BE%(%3YPEK!_P&;IU_);2-.D P *LG3!-B((C2_9$ M/ [O8^Q^WVMC$8)+/8M$BF9- 2SXS.1G1@XS60CP1^H,$R$ "*2I%0A*?\A\;WV>DA^DH ;;52^!T%M'^V[ 7!3N9GI MM"?M]4F77=[M]A1MU@< J^RJTUVDGE$-1^34S1"NU$Z03<@)""/?:%2'3YSX1BT;I:ZK19 M+57N]=]F:;^OH$+*72,O"=!B>99$U$'2C:Q+44]K8J.S7>F3LH:J=3?3VN)M MX(0WSD9UD7@5!$Z-54=9;"0Y@\AW=R^E[.7TT# #.W MAL,: JQZBOFS0[SZ;?TU1U&# 7,+V1!.NT:;W7*/(IK!*N,I#]*%7RFD<;9K M1CP8 7LJ0L_(]X\S%(P91*C2E=*348@?P57FS^0BCXV'R!*3#7LIB"^"OU$. M*VJQS-L"F*+&U/S"#9MSQ*H7^$*)CA%B 95$=5Q! #>]9Y95E@S@F07TP9&+ MTKD*(6'X1JER23D/XC8559S_!H=HLPWP#B'E)2LM^P#@%14:)Y[.C @;XX;/ M1JBG$06NW/.I I^\;-64@@K+6_NWUU?>6BHUJB9M;AWR=R=(V(R[B->(E,X* M:_(9_;JTN-'KHB/]B(438.<4L#1$#][60O]V4U$Y_C)/#.4$ZA=[:CS(Q]U]\ZS?H9>.@!J+P82BOA,1>\_TOY+(YJ=)D8 M93T!.'&Z;,D#MDMEG0.I^1P M0LH0'0IS&G?%"PMSCF8Y5NGOLWS4&1OV_\P*U&8Y;K/_Y6RV_S>[^:@"?:CR M 5+E\RI2QB/6^1Q2QH>4L?V4T,@$7I*M&X+*ZG MTK.1!GP-\\L0IMO0U)'X.79RH#.SJKM1OM.>+V-$YF&8.,$=VF)2U[\I!@20 M5II,_Z;@YZO3O[\E#J'_!+L)5; Q)H TTBO7P@9+ *94A^M_2U#\_)^<5L[,E];(&3A\3R_:K+O[SL"@#S2Y%HV* /A:-X? MNC+P??\-Z1^B,O UYAK3\S@&]8IUCTFK%54V*S.N*34H8BM,'+(< MU&+)O[E\82M.[D:V_%VK<,6_O_:=1S]('UUK6X;QKGD_2CHZ_6./P POTZ]G M&0[\H:D"B^RW$AZOH-+"THM3&GN]8QL)055$[3[%01"L5,[&&J*')SD.3W)(I'.- MH@BAZ@1[AT+T[ 3LBAN)J+2M .Q/S"2HI03.CH,NWER$O.@S)?/>834@]!N* M>+QC\;&8/;9)E^[;C3S[W*H'"(D4(Q&VH@J..+FJG>,HUNP;!7 0\@^&UM7 M'8X JD;/L)1(0 0(8!ZTJHK%"^[3.$#[*/8/S2CVOM=9WNTK"$H7IQDRG%,JJ,"N0G[7(./U MV2[[T>P$8(N>+,7!\I,;N9P4AP(U;>"$Q;L+4AA.$Y-K-XR9HJ(^\%>%@7%2 MSTCO*E*H4C%"Y?$WZL@OLF'D][&*H "L#86*4%3CBI >NY#[,D1DM=/R4P@& M8"&F9J@0:[M%!N]RK\5V])(,I P1X'W@GOZVB$8!4A+Y:#6H_-:I6 M+CG709R0+A;<^1RC/"4MA;:<6-5IDG"+4:?!\G.+,2)9FO$R\#=^R&E12D/3 MQN)$T58F&DH@+"-%?K81(Q:O+C5-[67,6U F/M+>8@YZ?8GV._2$P@2Q)"75 M91ZR^,6/U^=)%.,-(ITA0H=8^MX:;!Y M5+ZOM,">ZX1(\XV;0DC2=K$'8P)AA9HSM.:A]X!C)TC#ZF>[+XC5A6_7OCLG MR.D0CVY<;B>*1[-O^?"\G)HC,$LQF#WN9GL<9@R)UQ2]SLCB%4@LG4>H=//I MB2.)>8%21Q $0!2S V'4?,>X/7$@IGOXP M3&IX94RD(1$%K/V8B%;E"N[+J1AA?KS!(7L$"WDX[JDNE:NJQ]<[L>%@D9 $#T7*)%4/?_I% GQ*! F2 M()'L$V%/5Y6 ?"GSAU"S9_^NJ0 MK-___JO_]>?_ZS_^^#_>O_\_9__^^:[;SZ0]^__+$B<.3'O$@9$T/KXS8?L@_.46AC\ M0'[_[6^^_?C=QU^3W_[PF]_\\)O?D[M/6;-/7+ U:VGGL^"7'^ _3YP;X?H% ML?CU3U]MDV3_P[??OKR\?//Z%/G?A-&&4_CN^V^SUE^ES5]/VK]\+UI_^,,? M_O"M^#1O&K.ZAISLAV__SZ>;!W=+=\Y[%L2)$[C (&8_Q.*/-Z'K),+LK7(1 M90OX[7W6[#W\Z?V'C^^___#-:^SE(O(V7I*S*1/XS;?RPZ_^_!^$_#$*?7I/ MUT0H^$/RMJ=_^BIFN[T/"S^\AQ^$=?@O M_S@/>1PNG^(DJ)1V^.";4YX, M!.7\\8KY]/:P>Z)1C=XU3?"ZGDJ?S.6./\?I:DHI^[I8NDP BD22G,JU[NF& MP<(G2&Z=7=WPJFB&W<7J]:JZ6;4-9E=32#K0W0JJ!,A.Y7+7@1M&'#[%7@(DNCM//34'MC6"[M#:FE=]<_&+IC=54_P@=Y;8;(@@@T)(Y*R(L!K M*I=^=%ZO/3Y%8&LF-WE;1FMU>^QNW*)IU8$5C3&[;IO( YV6DR=5^A./]TO/ MXT:+TW]N6$ _*&U1WQ:[AS9H6/7.FH:8/;-)W(%>F=)<9#\0H$Y6P63XF?(] MYS^NHL?P)6BS0J7E3#SR5+M:?RR:S< ;:X0UY8M &L9S(#ZQ'XJYQ"JZB\)G M%KCJ.:FR^4P\4J%GK5L>M9V!;ZHD-N6@^8PSXS"QE]Z%<>+X_R_;-ZZ;%(UG MXJ&U.M;Z9Z7E#+RS7EY3OBFI$TY^HG40H/4RHH["%X\^QNM]=7KDJ0RESW!Z M6*V$?7U*#,! ;2(7@@0I_VX;!NJ][IHF>%U)I4_F3L>?XW0II91]W4H0)(+B M9&O?!^H>(N[.'SX^/;+$KT.HFB9X74NE3^9:QY_C="VEE'U=2U AX9I\^/CN MZ6N2T1_?OQXC!U)H']YV3V&=IL>?X_6L6DTRMZI\B-.GZD7L[5"2&I'DIL.I MRU=WRR6FBC,Y13.\7M6DUS%FE=O@]+%&2?NZ6D:49%0G/9,[/T01#1*9U@#Q MP]>VAUBYAE$VQ^N".GI6%Y;U;7&ZI);$ Q>7*762DR>2_G3GQ@F%#&WV3"^< MQ$G%:3B$5#3'[J/->AX?$=>UQ>RC+1(//A3.J4.RH),Y[9296M&YD]!-&+TI M;7#<"KM'UFIUFK*5-\'L?_6"&DC]@YOG]VB%E 8_58?=P*N[/5 M:E5UMDH3S,Y6+^A 9Q-$249U*F>[W-%HPP?]'Z/P)=F>A[N]$Z@13M4:N_,U M:EEUPMJFF)VQ6>"!3ID1)Y(Z2&29Z'7%?]+W3):W1*O*[9H=WS#\Z@93D=L$W;P_J%?4P>K8%:W$OZWE/)U>W% MY>W#Y07A/SVL;JXOEH_\E[/ES?+V_)(\_.7R\O'!JL\_.D\G:8?*1C/QXXI. MM1XK6LS -ZMR]D[ARE_>:@8> M>"JK 2\$HD10/79%(XHE-(KIC27M;,36,HYI$K?,54X:X8ZI>IW*\51M@3>6 M%'+VGC +W9\+E"\3,Z=*'ICP>8G MQS^H%B:Z?7''92<+E.-4JR/>N.TF?F\7Y^1%J6OQ0XG1@C@)R7@1P+V=*M/AI G(<'9>N"X7?8A+EY!=A(.8/?V/)]OP0)^&.1F*"T1J- M>CUQQV8'[2NC;7LWO'';1?C>0TS*0[[!DW%9$,$'05Q/:@,YHQY%SS!Q?-QZ M3@)B=Q'=.\R[?-W3(*9\!K5*MJFB<3.(Z?7$#6(=M"^#F$8WO"#61?B^CIWR M("D3,646;,C1AH 5")O2 E0RB84)0F$"M[)=8'V73F>K!'T@MX;L3(+3K!-. M$6QMXZA9C1Z!'8((NHO"/8V2MSNN1\(1!/8<]G!@Q6<'2M1I[(([OG3TK8Z0 MZO9XHT]+ZOXC@B2^((*\?#@N8R F]I8&PPET%LK20EE+*_85%\:!FA8WE(MW MSS;;9+7^S*< @",*^[3UP1VW6AJ7 [>Q ][(U1.[KQOGU(D@OR""P?MP_9ZS MD%/:,6+WF49/87/T3J6W#^0MCK?70<)58$^^U RV%"]?7?\ E^E^#$/OA?DJ M$VEVQ1W'7?0OA[-./[Q1W4GZODY>,,D7IYP/>9=S(AFKKZT,T%,;P4F-<#I& M3[-@P*/O),C6@EZS0:@F%,*/-,8<*R-D!2K&UF*:27JQ&7?+W:YQDTK5%G>H M-&I8F8S7-<0;1,WB]IZ$5O:-"\)6(FQ,%?TPV+SG$NRL[PPW;N6A#Z^J#J>; MP'@#Z$B^8=N^%G=[#6WSV@N#&^8\,9\EC,;+P!-E7+:A[W%T@.VQY*TEL[E# M=]RAU-4.Y6#3[8LW'#MKT/NQA()1OBVOEV?7-]>/UY0-9WEZ0 MA\?5^7_]975S<7G_\"MR^=?/UX]_MXP">C<:&CO,)M(U[C:H6\\BFDU? "B1 M1G/5841U,PW]@H652P]9,NB=\P:)H"WY#*K&N..R6J>3)S6^*]OCAJ]638_F%O6-\0)5N\@#!E^@3.IF M_;8F&2.K:AN#QM,PW6ELU7,2]+E@S\RC@:>WHE&WQHT\+5J6<4?1%"_JM G< MNUID1A?'LF9\-2TN;&["8/-(H]T%?6JYQUG?$G?T-6A7V>$[;88WZIJ$[;VG MEY_& M5B6^^3D\ +CJ9'PC](+0.Z<1(^T$VM+(WC'_)K%>+AOS"PLVTY@G;G M5;W@Z>#BK-WCC' <+FAOY.+'&*U%Q9Q6$R/,/"=;/K1-KD>;56=X8GE678:4 MUHPR96/D$=>HHVI@GT-268N\IH;W(MM[Y(&^ST XBMZ>T#N@"8R'S4._APZH1C_$->5_#>&TXY[F9/HG7'_+\VV1S5[63^L6AZH#[AANU_7D/D=M:[R1JR'S ML&L/U6A%<+UC3&6+?2?;B^*"??NV /HPK-%&L=.$-]#JA#2PMV1[2\G07I+E M<($'?5D"Q4L@%QZR5?BDF@:N.GR:>^ .)PUMJQEMRN9XPTU'Z/[93#EM632[ M3-U2RMITVKIEZN3= Z5\6$\H^?#]<0&%B9Y*.KZXPB?A\,#22GGUCN2S. MK])[: N2BT12F4A9*)*$I"H6R>2R?0D&M76I$,C6;"8,A#2-#X.<-L,-2RJ] MCBNH+B0;W7PV([C _6L34K&4# &BN__G^^^^>Z[[SZ0 MO1.19R#_/\D?OEOP/\'_2;QU(KAM>TBV8<3^3;W_27[S_>*WO_NX^-VOOQ/3 M&/[K][_][>+[C[\C3-A(EO ])''"?P"4^++_>\_B#]_OR">(S5\>\\755Z2M0?$E: M'7'#@K[NE9SWUEYXH:.#[+U3PW,6!'@0%I"4RX*4@<9.1ORD^D.A[_=^[M4G@]IZX0WO M#K+W=>^,! .]YY6.;K.UH4$7B#HJ\B ^V Y!,@#K0I'(EF2=\#T M:UE'E<^0.6=;]^*L62=]ZJ-B'298XM@#U=XP08\':MV:]Q/Q1G6#K$CV]<8( MYSV-6.A=!HV77T8PS9G#.[JCO%HJ57I(G"CY(0&F,)Z =W2[V#3U?KGYR( MP=B7#72702+$?80_JO!.NS?N\.YHA5C*!Y9%&:?BM#3C M17X6W([/3">)A5K]WVY80*\3NE-E.[7WPNW[FEJ7?;ZE"UY?UQ6\KX\K_/J- M_ P\B&!B)QU@=,VO+ZUE)Z;G&G=.M(KXBB.AGCA3O:/1 QQUMA_!-O3$';L= MM%B2PR>#$DJ WAJ+5 MJ&1U>MJ)R%61Y*=KF6J7F<5FC;Z- 5IJ/Z,HK9/:;*B6.."(UQ%4K@9MJ-1X MHF>!X41=3/QW[<^SJ%OCCM<6+:OO_=8VQ1NE;0+W]M;5[<7E[$_/:QN MKB^6CY?PM!#_Y]/E[>,#65V1Z]OSU:=+._F:SS0XT"O^/=?55\^K4<%[:OQ_ MGCJ]JQ\EW X_P#K5%,_.9/ &RA!E^F=!"IX$OAVB>I2AJ)R6L;:6\&711G;F MK7&R6L-;O>+4ED;/S*7Q0^BK%Y,-'7!#0KNNU1FKJC7> ->0N?_4+1:)F!G1 MT'U$7>9 ^M<"?O.I_!$.Z)<[R O[MV.M'/ $1HGL!?"/41C'=U&X5E[/ MJ+; ':(UVE0>@2\^QAN$=4+V=3!!BTAB=IZ#GY,R;2E*YI79URDS3;X1%>FT M/]* 1H[/@6WI[5C 8.D#-T0O7_N+%F([R]TXU MDFP6)&4D!_0**Y+RLE.;86(S;$IF<*IFH)*7E=R-LT/, KX:.0]W3RP0,ZVE M^Z\#B\7MTGLJKI/ 7$65>M6) &Y,Z&Z+,B[H]\:+#3UTZ'U%(&5%2KP6I,2- MI.R(X&>I<.J$!GF,G"!V7*$Z@$24JN_6J#]M1?3BKIK"2O4M<0=[@W:U=Z2#+NY;:7S_ MT6$!@-<97?,VZL.U;A1P1WH/:Y1COD-WO-'?1XF^@9#R(ADS4IY? KN\3,*3 MX&GMU,R&4>BKN^44*-EP%N(I$FLO%2@A434':NN$&P;T=#YYM4#9 V^P:\H] M;*!K'.WMO6$PMMK'X[NU$,ZNZ?]B7]AJ+!$ I M("DDS!8O:7LA)*07E<24-[X74]:2:MW(G('I4\/NH_"9Q;!FY+]F\ZX$!+(' MPMP>Z6AS1@.JSEY2MYX#^"FU/ 6NDZ;804H:>EE['R[0Q.(Q M6>E^V05[9AX-O#@KM7!!79__HW&/N:DK;L?LHK_B J6R']X1HY/T9BY4YGP6 M18T12$Z7S&S?K1S/"CEE453$36]< @N]BB-39>5,XQ).O"5>2IYX*5E$I5>R M^O.9YBW) @W-<<->FYYEJ%.UQ0MOK1(/#V91W3-[1R$'M&\L!>]H"N4LZ&W!WB>NM+ BWN] M->D;.QE#DG(DDJ6H52 +3)6XYEAI.XG:GIF(KPD(C<%G".)\4Z&A&6IJ.];DG6[E1FB:=M5M% 5!6) MV6%JJR+3SDLQX>IHIBFO[4?$UM:\"FLNT8ZMGG)'P,[;KVEMU=5:)J(L Z_F M)=R6E7]W*KC1M:=5JD_*=B*!%UW[*C)J;=[SU:>[^\N_\';7/UU:K-1;8XCL MP>B6D-'KB3M,.FA_E/#4U@UO.'01?D"ZD\ZSZ8N3!YGO^"@2)+9WP*8PT4KY M@CIYYTM#!=)0B?-J90^HZ5%Y]:5J#J[B-U\6,_+^>8@3 -_,@ J3C\8,-P"- M:^.3:\[&.>&%N9'U'1;VC?C86%D!]FS>E);K( MNM^&OL>'F\M_'5CRIK]UT]@7=V1WLH!BFT;=$6^T=Q-_U"V9A\?5^7_]975S M<7G_\"MR^=?/UX]_MQH,T@@0HV$ 8^WRE:EN0+;UF8GS-VE9U2+:N(BK@W?6WJ>*.WN M^'<.\ZZ#QV<;K+< MA[Y_%48O3J2ZP]F="N[(Z&F5H[IH74C@C9*^B@RHHR;XD'<9QZ\)2^?C*=-? MD72U^#,P)BEG.YD@F,U3MHZ5?4J1(7H=QP?E[>^C)KAAH4Z?RJ9CZ7.\ 5TK M95]WE,061)(;(P+W-&*A=QDT5CHTJM.9PSNZ=.P,;ZG80^)$"2+5)@$&^8QM M0[W&2@/JC1$6] M=Q._]] /7-*!GT@^1#):$,$*$F9>9 -;N7/36 +(B&$U7*>C:I[TQK*/K#VB MJC"!G%;TQ('3SK,$ H4--)#@J.?LH$ E_QA8D"T1L(*!:5MHHX'M67@3.)Z' M ;7/">/3M0?J\I8)ZS5QT*$Y2QSI9C'=B48KP=FA3D>U1IR8%$) M6);$((4^(:N+4G(!J1W3"4 MZ1.=)99UM)GV7.G+0[.N>HTYMYH?GDUEO>& 9GN:5MS=BA]#10Z1L*90"PZ6 M:1"+:UCW]%\'%K.$VS-Z9BZ5EK^G;K@)!!4QJ*A.Q\=GBQL@I[)[-;-M7)YX M078RS7OG<-Q=GZ> ^UX"R)WS!O*2913!4][RBFU^/@OX<:0DB24(1F]; M,4:D5G5+[&W ;?YJ12FU&%YB4=BVH3EN>&O3LPQ+JK9XX:15XL&/FL"DJ_QD M$U"W],[?^,KFKP]9OOL)6EWYX4NL?^6SK@ONR-315W'!\Z0]W@C5DGK<"EO+ MA[^0JYO5WQXL/5L)>HNW-#WJG;U]YJ/?=;#*WBY?N@F//E@#U;W.V^+_QHCC MCA2S-CQZ8=, 9;S19UB_(1D2XIF[3!#R]$;>@2R$!5^37!Q2R+-0O,-MN2(8 M$H,*8ZX!2^6;Y6%N02<7P$JML,H:!!80@$5]LX.@>+1[G%@SS##_X.O[E@ M[H.T<"WZDG?IAC-=KZDK?G)G;1O[(QHM$/+[IUDK[_0S4%$WC".F4CZA26&5E!F\DM(-1V MU&I/=R_G['BO5[5.5S7&'='-.I[K-9_7\%E#\G;'=11EH/8P[U#82;LS[F#M M9H-R\.KUQ!O,'>7OZ_C )EL3<'>_8/$^E!-.F']F3(G@2G*VEHXSIK0)/"+( MF8 5]ID58(BF"AM, @F?@X@Z/OLW]0I37-"(/7.P>E;FJ[7WP@T"FEJ7H[^E M"]ZPUQ6\KV\7],EQZ!=<+(7WA+J_VSBPSP&O)8#N++U92/BBG)+XQ=E;>S4! M[CPZ\?92SCL4EJIOB3N*&[0[>6R@V@QOM#8).ZS,?TJ47-;./Z>9:X^G71 & M[X5Z+*$[*XGAI]4Y\FW"-.^IY2RA$P');3C 2RPL3:_'57OINN$!CL&BG"B.J(6L"H"IO[%D>WZ( MDW!'HR7 C+:9FBC,+:);K=$&;) M]9?#.PYTWN6\:ZR@D;('W>=7=0K%1@E\ MN*&/?N#&D MUGX8;-XG--JA H!L;7+GO,&Z1-M2I_WF%O0*S9O#_:C3G )=);KA$,\7NRD? M)#MTIK7/U=S7JHEH07^3;A:^#5KME*G,+=*UK-)]<9^3F!,*Z"DRT2(_9XP$ M),8U3FZ%TO9]#]C81VPGL."[WW[_G< #^$O3H<0-_"[G,LO NRFX'QEF"!V< MF##8,H *O8G8Q04O= ^0C%67ISQD]BR58VG&M7H6*ABGZR=AG1LEJHR]GK)GHY66LXAR53@F:'S:&!UH M P9W[(H3=OOHW[KN.NHWITE7@_3F5U_ :30PT*^?-(D5,G6'S:C&WU?M$^^- M).86]^WVZ+3-.E,$8YWGBU#!/ZY2X4QNM$ #=$=+=% MOTHS>.&AAP[V*\:,@AEAXOA-F#&QI5JK$2#"CNO@F<9C5;[J3GR6F-/3AAIX MU)'R[+"JKWXCX5@NSFPK7TUMT./*5RRWH.7*5VF98"B]"W5>(EJYS[H,O+9+ MWIT(X(:M[K:H/*:HW1LO_/30H6]$9*R@-%'*++_JO9!WO1=B?]'VA>\I;<+% MW\+:$M6%;ZZO2ZD77_%@J;GSKH,1G2@@!XGNUCAZ;2 "W4#WF6,ES3.K!KZ(P;-/EJ8G%T5 M_!:B&">\Q03+DHPIEOG5F'81"N\=)E]0*I>V+. #FL!P L4X.+ D4(Y+_*W> M3LAVI0:O@]'#27=;]-M!P@LE/72POQ.$:4=[+$L)G-B7+77(+%6WXX,(2:Y8 MX 3N2/O;W8G/$H%ZVE #G3I2GAUR]=5O)%3+Q9GM_O;4!CW>WU[G%K2]OUU: MEM[ M))/*/D\EF=7U M+(RB\(4'9DP.@4[6*3Y)M-[3?;H:7*UUHK6I/>YH;=6T M'*W*QGBCM5WDOAY<4 9?'3-:]?U,PK1.8D-1FF>& G$,06I2UW*,%CFPWJFFDYX^W%,?+/(8/CJO M<,]R&_H>QXZK,.KTPL8 ZB=ZDXHNM+""PR#-1H83 O"&9(2Q];7S2T? M7]@R%!0[%)SAJ"?A-GLIF(M#CAC1\^5W.0#7O0K=8F%EIWG@3+/.=6A2WP,_ M9K3(/7R879-5Q/W;B=Z(XL5SRV PD@6*%\_A"-/V=EJF+(W9&=#>RX%"\/K]:7KZYXD^&> M3[I6 9@%_@])I,^.+U=<67Z62!$+O.H?2BVO ]<_P()(/BWG^#]&X6'/>_#? M7?GE4Z_XZA5?#@K!<&,="A.=8*A]J?!B,R+;]$6RR_RI\DP) EK ;BQ(MI # M0DG !2EDEQ]"NN?QWTH=K$P6OZAOAF;?C'C3"L!WK'#DAV&Y*@9 M& P61(I.:BH!+4BNP-%@)'6PLJB8V=^,>,#M:H3PT:G;%.PAV5:!O )7Y MR$$,.)$2*]O7?":SQ.>[NYO+3Y>WC\L;OA\?_E 5E?D?/GP%W)U ML_H;N;Z]6MU_6CY>KV[M5 'F]N*0=NP%4) MVK_HKJ1'[D[S7J8)0-,:"93)"Q&PE+JEFMKACCXZKS1N"ZB:AMAC2J7;417L MHU:8(TLIZX"*UIPD$31M!IAQQ8YC3*B9 (>\V I\, M24ZEHD.PN57D] EN(Z_4-5!D.H,TK=9O5[=BP7Y]^]/EP^/U[8]D>7M!KJYO ME[?GXK?SQ^N?KA^O+Q]LP$=^DR%])C9[!C[PB@=*%.;5[(H;-+KH7\8+G7YX MH:*3],,OR=A\&'EB53WJ^DX$\P>.B$&8D#<^[[)U26@5;9R _5OL3)[GIPNP M31EX=]S:-'TK<[5.<='Q'_)SAY9Y@RG:N.'!J 7+^&&$,%Z ,:M>[WF*DQPB M49$Y*V5J988NI%BM6_/::QOBC@^U;I7)]4DKO)[;(.MP-RR7JWNDKPDYXR[W MBZ6"=6,J:C/>EJX++R[S2?X=AQV7T;:AK+$#[OAKU[4.-10^;>)=B< MF,7R$8-B1++AL4(0J--?B,''R0>V"=B:N5"T_\0(@!X"/!1F&T@2M]>;L%HT=YN7!YN"WY,(E^O;'I,FTMAVX]_29!@<*A5F@&@3@$A1Q.S_$2;BC43]#.Q/6Q$_H]AZ+TPW^<+RFN^N LV[,F7.4YQ,;*W M#')=:>#&@%X6*0-!)P)XT:"?&GU#(.,F=F0*?C)/T,K$3TO_MI&Q,Y$O(#8: M1\EN%&8>'>9&B.;P*"T-,8R;J&QCJ9@U9/;$W !+UXT.CM^V4]G< S32'PW[4\,= M 0.M5',BWI44WL@9JM#8437EV-FZJXK=6%82PNE3HKT453;#-.E;2O&M; MX@W_%GE[7^ 4KYN5'WE!X)MMPY^Z]9R\LW'X4C2=BW^:0U2@BVIH&4M1-)$8 ML6=[_]_CL1?_"7XK(]'R4OG0B* D/A>O'PKF+,Z-(/9R1V MUAS"4;N3W9CT0E=,/.H>)N^N0O]Z,\2C:Q8P>8GHV6$^;)M_,T98UJ'0=)H6 MA21@?IRQ@8,01# MG36O\M0R@;^42ZS0+$3V/$1B$ \/*HRR+&P!"!0S&)26L5(Y'UX;WX:^QRT% M#PTD;[=ATK9Z;NV$$T6[Z5PIC]_8 ^^B1%/NWD7E2N1_120#/$ZLO[SNTG^. MKJVY\-;N/#>''P/,ZWR? #,4XQL.>]C E$.-3 M(>>@2LA6-G%O:!Q36JWPW'I_O[43=C?4T;GJEDT],+NIEMS]W1;(+XZ+FB.X MQ3^ZXK;B]3S<[5B2G8^>BQ>L-S1PNR0 =:6!.YI[6:3RG&87 GACO9\:O;/C M"FYB%Z#"[WAC"$]DM(ULG8E\ ;'1./)UHS#SZ#"8/-H4'JA65I@,8V7/A6Y MFGNZ#R/Q=$'+EJ&Z.6XH:-.SLH&B:(LWO%LE[E_! BB*JT,I#Q1>VF%/4*OG MO'Q7=Q^PO=M\/'J4O2[)@^1,4(U,4U@ 27C?12R,[L1CWO=PYAK'H@"J*(CJ M_?,0BP'S@L9NQ/8U!\D#R. ._+YVJ5S+[T@#+R3TUJ1_=%2Y+&3MX#?R<_JO M;8BP;A$K"UTGWL)4G?]S6;QZ?Y\_>%__N?S&5(N 821Q@X@)>U66Q /HX047 M(UKU7A7"&W=B.0@_E.@O2"$!:6B%#)>L&K-D,7B4SUPB8U9,X5Z\' R3I@?J M'B*6I,\/73FN>!A4ZB'_VYC6.)0@3MPQ9ZL\Y7$0->0)D&9TZY_+EB]XPC5Q MBE<2]A))(#'2R8J(1+F()*[(2-:ID-.F1-HU75Y;I6!/JOQ))@ 6?)Z7U>R< MHG!<@Y*P(,D]BW^191#@)^4&*)G8;0_7?S2[0)D%R0 MM&Z&_ 5)W$]BBZS LUMF8N491/I2>C@G"@/^HRLKF.A,S0:0P1WM?>U2>6"Q M(PV\N-!;D]YWR^A+Y1FJ"DMT4#&Y>6 ^$"3^&[F.8ZA.IS25E?,G=TN]@T]7 MZ[9%;.MY5"]*N(%E@'4JYU7=R>"%ER'*#-WY$,^^\@F)L-[E"UKNW7RQ(2=P_"^P8[00_R6T9"\P8C1X7\D@#.7/-,EBV-Q@I6J> MZ=-*WBJXAY55Q#%4O/8GOG1]@#+#8R[09="B]:!F@,$9W4G(&KZE9U#+W'Y][:->(&,C#G;LBA/>^NB?[[9K]D.^K]Y5 MB]X%!9RG@^]$Y6H",(_('K]*@^+)X>1=*J/#W4))U9BP0-ENVHWTJ6Q5_R18 MBLNVH7922Y01],@'Q@7 ;+!XZP>"ZNXS \(6.S2"H:+O# &Q39.10+$\/6A% MQKK&]N%Q+,NI(#+GAQ8FQ[)(+53ZEM^N8+&SV41T(Z(-MB_$0X]:"VS=OC@! MM9<%*H6/=3KB7>AV$W] 6D:)"WA^]K0JDO7H-&:H[M5) WA5TSR]\65CQ,)# M3'B@TTT8V;I(E:_0LW?K]'?:ZGK@#G\-;>MWP4Z:XPUU':%->';^SB'WY>(J MRN> 65\236V)3$Y=UVJ A*;]@S/7GXLNN>>@=*M^#Z7K"M>4T6'9I,:*7#;N=$;V D5MA%;+B4Y@T+XNQD=B(L M1I,M;_%,(V=#X>]1GJ"X%S=NK,XRPB;;71T2J'51$OGR=4^#6&]]8IC%/%#, MI#WKX,T$??RX9U3+\0%Q0:1,I"P42:7"AI;H;$OCA.T<2(=82RM6,)*F5H0+ M!,>(:WE]=OKT:L=)G :!>:">OBWJIVQMO?$C5@<=3,1,W3O%R'!F"HL4DS$G M-8CE_=Q">7A.L_0,ECXH-'2<"QBTZ5X/ JI>\_C;$?%X M;/EM.G2Q/XE!_-P@'AA$'/S)6S/I/4($*)"]B9=F625YVE7'N4(72O/!B8[6 M40&')IEY($E794Q$4NGMQBRW,2EE/&+$%QMF*K(+8_B5*\B1)[=<=J@,:0>N M?_#X=(0%8O?G/ P\6,6(.GUQZ#-/K'?.9!8">=A2ZXN9VJ=#?W18:\3.75J"Q?"#23A9/^I#31?K0EV;^ M3ELOW BGJ74U9Z>Q"U[TT15\^%-@&0,LT#&VYI6L/+@NIWX^S^X$Z?A%.+@/ MXRX#[X+YAT0SY/M3PPT% ZU4/Z7I1 HO= Q5R$1@G;XMN!#7TERQ9Y+RQX(X M& S&9Q+[0Y(G33[EMO)26YV^XFGM<:OS,&Z^B=;>&C>ZM&AY\N[5:5.\Z- F M\*"7=18$*&.)Z[%4+9T"0=B&0;8@\(%A=H!L[C94W9M('6Y#=>N.,S+[VB&_ M#=6A+_+;4'TTZ7T;BB^%D]H;46'^B-%0A$ZN" MTW<^2KP7<-D@:X%DRH7!:-E]*U@];:(PYDNF*%RS!,P52\8V$*E:*$IAOY-& MN/&C7JPN9H'$\IL7%:/G3>1U3LGF;9 MLQ!\8;*%JJJ'* *$LI= >U2B#>2H/78*8R83D!.N B3]WK!8]9S<4)ISBNN> M%E/#0$>"?X0R"6@W I2L?X'/0>O%Z M@SE0(C\#K6G]YA/=/=%(I5O^*7+?J6I1\1[Y$6+_.1)PH ==A#N'!9/YT"?G ME>T..Z47'7^.UX]J-F7^9FJ'4Z7:Y5V0#&Y(NLRHSSQZ%BGG 1734ODC>?EEE4=FQQ3MIR/:Q[) MV] M&J=3:FJ9G^NKFR(_QM<0O/^I/8O)3M B<>) 9BL4,T@YDI1EZK33GM:/J'6] M>N1G2=["0?SDNMK8WTMOE(D+93=A^H+WZ;Q-HSE./-+5L[P%IVJ+;Z#4EKBO MHU8N')*,M.F)W$!_K9W4:768G\^>3N[:6\_+;PU-\E2>:WI[I8/OGKY_6SOU MTVB.VV_;]"Q[K:HM7I]ME;BOQRY/7[NVE'MOZXH]F;0V&NK[V$22P)H*WP?V'MB?8'VFT MJUL+:?;#Z>F=-<]W)W0Z(=^GZ*3"D'L&LC8M"?GXDKZ\!A?QJ5S%4['3YHE] MC+C"/ZW%=CPL3+NM,8F1\L&O%.55-@3X3+_1,8GV5[+ UAM)3G6T-/N^XNA0 MU51[/E3;%2?Z]=&_>89^V@__^*XEO5C/YI#1 =&2!N,H"EL']P ME/F)RL9S"^VRCLW!#"WG%+X5>0T&[(( 920A:D1)(**87>$(Q%N:G,O+!=J& MJ7296U">ZML\&$X29Z";M%>^ MXS"0'O+-"%/:]8V@C'_=Y#26=T_SF"))1$7ZFA,3-_1]_G/D^.S?_"]/812% M+U#-9U%Z9-Y-DX=DE^(^O9/+/^VF!AIC@P"D??=C42K,4(@Q_7:(;;O!73"X M\ESRU+0Z>9\,$07.W].]\R:ON1F"^<$4$:.\&6OE(#^,''*,-Z1<_TN5*7N! MYU\XQ&.Q-5FM9P3P6*S&_2\4AR3FX;U-KRMZO 76H1MBH.Z@M_8A'^^#''*[ M:-![+2[>IQ1O&E":3DMJEJ)'B(OK&,^('31@CO/!=XIG5'GE%YYC&;B)C6W& M%8#I+EG\2]-]0B4C7%"G)Z.Y4W%^I9XMQ-;Y!UP':T@2X"N\2O^0UST M[.V,!NYVYT2_-.3>:W2;F=LJ]&YTX*,^,W)EE>0&G3IG8#%#_U3O3*C&/'V- M;G/S[GJ]F[V[VF=.WJV0?!SOMIC%#\>J?)(E:A3>TJ0QA5_5%K(.=T7C=98>P_TC M#?+(49=84C7$Z6?MNN6GFK6MD)]C-LL\X+R=2RO.VUGQB 7<5TRXTT$R0GH, MGX1[DM" N)D <-I97&*<]BQS'%L\'JLXV3R#6[JQS.C1YSCC3ZE)/K$H?X@3 MS^M%[%UF5%)#L7EPTU*RH;$#3H?3U[5QY^ &?R$ E-GO[>**LKC)NJ,86Z MIA:4BKG5B>BW!X"2U9H/+OEX53>DZ7;$&8K==<_G8EJ]D,_-NNE@8*X&$Z] M\!#3,#YQ*>9E+UL^8WO;,]?Q_3>RH0%D:=+\Y3 6$/KJTEA,X!P20[5%D;3+ MYWR@A+.ADF;B^%DG66.S5+("*K-P=XA9G$@R'ENOJ7@*:1.%A[UX/C:7"%@Z M[I:\42>:=J(XS1=SBJ$+^.P&3YS@FV#EE6CO $FXJWT F&OFQ;/A< M.L2C"P8[?VKRZKCJS"?[6BA6ZX7Y/NBND:I=<(XW7?1M7+.7VL]HU5XGM4DL M*>CC6+:;U+>*CY75.XDXKPF6\/W6[W.=!2JU;E^YSW:&IE; ^)I=M5[GWU,2 ML:=#4EO,1&?UCF2%/=7R&M/DQ[SNMZ<.8V."*KB'ZVX1W @.O-LPB+)?SYR8Q4UWS4S2QPFRHUFR/$\R1ASO MI,J\BOV+MK*("%%(RE?<6U^0G+?8)BUSMWFQ+C?M(2U> MK^=,PJY=^]J 4G>;0:AH"-][J5T0)CEEBTGSNC;\^H)&?-6;L&=Z'<1))-;RL,IJF*JT=,'MQSKZEOVWJ3U>O]62NJ^_%L1) M0=WB=*20YQSV=1PW:;W$U])E+BZLUK?>A4_;S\&%&Z0VX,(9=:NSB^P=Z'LG MH0\OSKYQ/J%LC-MMFW4L.VQ]2[RNVB)O7R?-'P<7J64Q)VQY2R/_\2^,1OR; MW[[=T&?N0%J[&LV=<;MN-QLH]C8:>N)U[8[RFUC[Y>21[7#$IP;HO-?11&,F M(=#%(JT+016!&01$)S4,;'^7P@+#-LAUL#\DL4" #WJ['[4]9N+T:FUK7?RT M^0P1$O]!$)KQ?>Y#N[CH^D8=-Y)T0 M@7SX&HM_?^SLWQ]G[-\?N_GWQSGZ]['0O1^X8IN K;GS0@'R9$LCLGJ*:22S M2"2_U)T_VO7F >>X-RUW&DWSF$G$F+2HZ>R"&_R7+<=1T\3R(QV%(*N@)%)V M(N41R(Y2YQX(P>Q?[D1HWFTYTLF'9'(U%'C8?&ZLEG&W$YY/)U M3]V$>H]LQYNLU@_\K_$:7L8+@Z9[$<:(XT8)LS8LXX@9RGB1QK!^ ^O\P]V' M5!!2DH04HBQ()@R1TL#5IK(\EM\>$NN/O[%DFUWA$OL-JS6<$\!F1./C 7J= M<8=B-QL<7=+6Z(DWE#K*/^ VHTSJ>N%\\MN+BW1[CD=#RLSNRP,MEFA[AD"W M^]QCH?&! JV^P"/EI1OG[]!,\@,\>/,Z$;#V!;.^'V?SV= MRU[?W .OKVO*W;NR,"?_W@F\]SF#4FZOY&%G*W9DO=-I(10P"#>!>#L\?*81 M23C;6:[53LY'34_';V9SW&S>ED;7;:='A.A 9P0=,:S?;BP?,.,S*Z&9S1+! M#BWT#;'HEP%8O;%HYC S'8+@Q00#-LA4WY=4#W,&MFH+GBSC:M67$,BH=QW< M1?29A8>8MV.AUV%]V)DP;L@P9[NVK8%N5/&"C4'=3&\GU,,1R06!)/!,%")E ML55&T;8):]9M$!@J6"-QV8;[S(9[(8S9&N GELF2!]\^A9[(=P:)5NNLZ9&- M!Y#!B51#[5(NYMB5!O[JCKTUZKW1LZ7$V4'5QK1*J42B78D;7#9Q_8,G@T6\ MJ9"M#O+V(B%U\CJ.DUM+A=0YWP4IPB<_3X*G\M 6@7>TLS8B?,',[AA M'>(67XF;?25/<)2)=MNO:3/T(7&BY,)):$/JBW$FN*%W')L:/?VH<, +N"/I M:?\49$&$9 1$LYC(,]B^,0?V=%HK*>TO^ H/]800WQ+F<@' MO,<9\[*HN5W"'L8I'I>I6_D/)8@3V\S9*M]#'$0-^6ZB&=W,O'Z4O\\7DJ=J MDY+00F.W:WYF/M4GK+L4.R('4X M&[/?S\$3\WWJW>?/)\7GAP@>*58,JXT=<**XOJ[E.:>Z-=Y9I(;,?=T](TU* MM&%K35"W,L&;0MET%+&S+LW5N@F#S2.-=MDN7KR*[J)P$SD-.;::G7%';#<; M5%>,.CWQ1G)'^0>\75 $,S!ZS\-NEV][QX3/B#)FEE9Q$]DA@3*&\$YFSM!. M(7&.-YSLVU48=8]Z_=ZXP[ZC%:JUQ[6ZX@W\K@KTKTZ>\A&KGI;03TLE6$& MJ0R2'R+N\OM'[X(P(6\TX5/T.'%@0M"G#*1B"^8Z<"/*.5]0^>]UH#SONX4C MO[I)^2!".#%@N&WRK99>5)!OL0S3:?BI+TOYDW=>*L'7L(!U*R?PV3.LLN ( M"?C_72G)M'LJ=HQUG9OHHFRB^B0%F:- .'LK:RD49JKW)*=O?;H^B;$7=$VY M6EZZI=2 MOW((,;: 7;12XRMIX$<9X=H-!QE2_N&3Y3/S\0[Y]&!>L2'BE60 M=L-BD:(4$"YF$'-YR"8,/9BT005KYHJ=[QR(88[WLF7N%N(K9AY-'PK?.C'G M0+-E#Q4$6/DU]05Q?1Z*\@%UWMH*D-OX-C02;S/.1?Z8-0RW8:%<_?Z[9'VP M>BE#X89'PET6"'T!NYG67%%;PT)ZT-U :,[XK:-6;Q"O!VHWW.W#@)[ .P?I M__8 /N;7H9AUY[Q)]GT!=Y*S1PKDTSONU/L=N:J#-SQJ*"'&\V'6Z;CE<4P& M.98/5&KB38^8^#FX(-[U,&ZN;ML>!0 CW_88STYE#\I9I.V>V%J"GB/I'KJ,>+"NTA7R[BBN: UHF%J*@Z4[[:>@,D; M<1*^.-BP($B3B>WEF5VPV-EL(KI)+Z2ENC35]6[I@AL]=/2MU/)O:(\7&;2D M[KV]5"$.[IL%@,7RUP]\FBJ>OSH[Q"R@7]<3NZ\P9,8L7W5(1&LM2'[=![IIU&E5O5BCG M!MY%2K^VJ+.Z%4Y/:M$JWU*H:= K#YN:-LCCIDGB_NNV/9=50#(+Q-T@ M,:'=5^)),EX0AR_O]B'_!-Z@3L,*YKZBEW_";3I?]\ M+HZ2TER._U;,X_@OL.,0AS[SA >)^LLUZX[&AC@1I5TWP!1U*WQS.PU9!VR0 M%61E%7'3RXK.;EB[JFAI.B=7/%UC-+6;BSN:>YSFU"$MOD.SVHOTB&"3+84: M'Z!1M\;IH)I:EM?!BJ;XW%17X+Z>FM,EQ2K9YMLRD^EIYS*;T%_PO_3A_KT MB,9@;.N#.R2U-*Y>5VOH@#<\]<3N?T)>4"[LX+)^D.S4$6=P=M<]W[_0ZH5\1Z.;#OV+>K.8[ 0M$B=.X,EJ.I\> MED5BU+0;%]/HS14T%Z"W'$WZQFB'OHC#M*L%\DC5[8@\6#NK83A>.?_W%F-V M,O53/6W,BJ_8*_7@M5::I0\U3H@;FN.,8UT]R]-@55N\,^!6B?MZIB!,]D#9 MX+EMP)**L T#24-;G ZGI6%QDJMHB'Q@:!7;\$ _-X++\SS"B<^W!U+82!L M.K[.PSBYIVSW=(AB.+C3"+/V+HBC35/?TB7#QO;(8T]7>L,AZ'*V)"KQM12) M8ZM_?JPGHOSDFY:WK#6ZX0SCKGIKY"K?X']-6EOR$7*6;RP_^6Q/=RO)KNZ6 M>@>?KM8_AJ'WPGR_Z:J!NC7NZ&W1LI(*6]\4;ZRV"=P[/3:E"PZ:4;9YHR"3 MH6VHJ6N'VSN5FI7]\J017H]4B]K7%PO_LSTZC*>;7?2_8GRYQP>Y9W@!F,^M M-XS'N2AE%NL-"!H$<$=A=UO4#QMMO?'&;0\=3 PNDME[P8T4[&3%O]CFD--@ MAK.W3\X_P^@<2L8T7&GK1@%W@/2P1G7O6KL[WA#IHT3_'>[&N'AZ(X(A$1PM MWI=KL$EAD5MG1QMOU'6G,MMH:;**9L34D9AEU#0J,D[D+"IQ VRM)N$^1HY' M08KF[-N:9K@#0*57V<./V^!U8:6DO3>S@6# "5I9QHRGCIVZ/&G:PSWU93+@ MENV;PZFY!^[(TM"V4EY'W1QOO.D(W?L@)2NN%96)(YLZM6US:7;%[< M&O*WN"JEBPXBBR4EZY[V!WX?()Z7+XH8?^NRY,91&BV MX=YB&TT 4%"9)22TZ3(62)3XDC)CH[CQ!VF: #(\->4>T#9[9P\'*.=1+N5N<"42L-3X4%,9>5Q MW!/]JT-RB&A9^DLI_/(I%DFBW0%2AR1N*#!A+\VY0RL]O#!B1*NQYA.W-%E4 MAE&22K @5RQV'9_\G3H1^>1P0:'0\L^99.@V'<:WY66;;8UM5ZNLLC3;*S1+K.RHVV@*K% MNEP6F<^4 Q\VD)O,C( FY%TD:,.63R2X,DFW4>DT+62 &D7(0*<@,P,JX[3A2_ 8_( $D M/[Z$1DQ8T/J2X.?(0OU1)R7TI8#-L3K38HQ8^W'V,T 64X;BD?[;F0 *YZRZ MUM&?VA<'*F4K#805(/5% 4M%(1O0 @+,!5R,&(O'_>_F 2]7W.C&C)<2^]+ MI6RC8=@"E+XD:*GH8P%9@/],@,6(J7C _]YM=[07S'_05:[;=O,8/MXOCP!#6-7"J?@G;ZJS6F)#6EH_ W'.?$2*CRQPUNSG>P9! ?> M0CY[&I.7+0WRS[,_.A%-G]R!$RSNOCG].'L1$ Q3J+T/8R;,X_&/R3O^!?L@ ME;/?1Z'C;K^>MCJ39<^1[(DJ';MN*"I&(O$="3FF?PO(LMT>MS2B3HWJ@ZK0 MG3Y'O'1=".WXSGF#Z^87!_H8/AR>LDIB871\"C",$N+A:)AU2J7L^I!!/OP, M5&K@L.,=* P!<86XP(:(P@MI4 ^5!F+PR=^X=L/=WJ<"5J!A5J^8."XX@1AO M.&C_,WR**V]D.ZE29"^UFKJ2GA4SJQY4SUB3E/>"7,AOHLI_>FRV9*=[FL + M>^!2.VF8)M>QDECKNM&!>MD;\XS&YW*NTI)NI],/)W1WUKR28=O6">_6@K[H M Q+&@0,IL5B0E(GM?+;IM/<+%C8"^I*/8N$;I>(Z<)W""@/I],,=T-J:EP.Z MM1/>@-87O7<>9LKA?219U$:VE7 >7W<^*X!U>#IIE.K3E"MYH@%=,SO9IOE# M;#>4"YII_M8VGLZU[Q/6]L ;U)IR]_7JXA4_07^11_2;W7@>6>WV ML=F(FL\T>@JM*IK-ML+\>_:!3ZZXN6>ENZ\QKH/X$,$ZNAFJU*UQ8U2+EC6K MB..F>%&I3>"A<9D3MHM"8ZEY[L0'QT_>^*(_IC3' M8GU+W''8H%VEH-II,[SQUR1L[_,"H%ELU-F,NS'4.P^C?1C!>1H+W'!'22+T MA>E\F&QI)'^W,H$']LK]"-6\H:T3[J#4T[DR@6_L@3=4->7N/8$7OMNTTV9G M_CZ!UE8>\:%/"9\.))$X[6JJ[U[?$G=4-FA7>9WGM!G>^&L2UD0-]ILPV+SG M\; CP(D4K*S67P>I0"B0Z9'S:2BTKFB*VU.;]"N[:ET[O+[:*&U?9ZTZZ(( M88LUSX]U;"QMKFP\+^]4%RJO;SD?#S54=KS>1_N7%E>E+T748\F5XXJM+SC[ MOXO8,U\3G#G!+_#_U?IO-$Z6@7=]=GE_O3Q;WOY7MFY@8=#PU*8APCC=VKSM MBEPG$U2QISX9U;%_ZLD>]IADSLDZC'8R8W)/HR2M-)"$A$^KB2O$)4[V,+K, MZ4E%)B#O0OP7)C_0'F07R^A">E(2?^+\)Q2VEE*0_&WY8QM,-- Z0;:)TEC0 MO;8A3B1JUZTZN!ZWPCRP*F7MO:$'XZG/Z9K,_]WM: 0YZI?_.K ]^/:5S%H/ M-A<'^K\/ ?WXW8??/X;+P^80)YS QZ;WJ?L3P^F>9FQ42@3N20G[@#A8+P.# M( Q=+Q%+$LH'0?[ML5@DINZ=-^*0($S$;PYD :>R$IH)F][4H 1R.>&D?">* MM/$A-.)B47G% [0@'WZS(* *T)+*D(\?X4\?/TZ=%VS+Y.=U!@3[6MEK_Q1& MR<;9M+P8=-H*)]ZT:%4>"X^:X!T(58+V];^,GCV?J^Y WK2]]ZYLC=L'6[14 M[Q_?X']VI$W@OKYYM&-L_VF1L10]7A AB,/L301Y0TC+'B==YA21]?JJP[+: M?BZQJ9#:U+ZDO9="1E7S,4SX],SC+&S$Y><@O1)./:%E'!]@=IW>BU78H[43 M[MC4T[D,.O5DHSP^$HXR",1$UQ952?8MQ;D(".HI#& M%0"C*BTW?(X-Z$3V$0M_;JGSZ'_S"1ZY2^E8&-)@D4>9>:-A^EU3?%[;)-^E4&O)IV>!VT M45H#F]F^H!_#*;CT45M;&G^C;+.%M][X4.-LZ#44GZ)Q;XH[E)3_469=$6=_PV2FSH[&!!@';] [\V M=B@-:GJ'8"$#1R'97"*?ZSJO;'?8G851)*I&GCM[_DGRIIJ0=".!.VC[V*,R ME^S0'V]P]]*B]^8+G WRV69ZEI;Q6Y"4(\E9DHRG%1R8U"B9[D^Y[FZ][H.S MQO.S2RA''V]#W[OGDX6(N9#E="?G"7P:L5I?L'@?QHZ_6HOMI=H7B4W2Q0D4 MQBUWE#(^C"CV!#F3*AK*E4LR(:!4029%-D&&^3.')B\51*2&B[U5^0BGC1QP MR]8[SGA8D%P.4A*$%)*0U9IDLL#/(QX5_&NXXL)"X5/'CF?G;6; MN'7 GHN*/K]_T(OXU NSI4QL;OB M&UOW9BTG#N4K]BHJN;=OKS;UF$OX*K6M#]R3YG,(6;70PX,5GG%_E2\66-]) MG4)?LA;JXMY%/7-B%C_P>:WCK8*?G(C!=2LPQ >M3:W&[M@#NYL=U+NNZKZ8 M0[ZC!L9V904O(ID1/CG-V-D]6)G$%E+U.%?].5,="33($^(XVZM:'1)X1LAK MRPG7Z(8;"G3U/CW[5_?!&_K:DO?>ERT2 =)%?XG'PN;\?$K5T\5Y6/"P?4RC ML3V-/U1K]%$=HR .P3HIC1^#I$_]K)0>./WQQ_ A-#O6B#%%5F;S>[J3I4.& M'($V$IE/=.K;I.T85$UA'A'>00_C&)#SQ'P8.J)AEL\.\\4<>_P#T7*1G7,G M<#SF!%!AITN5K-I^.(.^L^8--:Y..\WB0%)3A5$K5!WE@\OB5 [)Q"%/7![; M):=&L$VNWQ'D&7QY.HPHVP1':P9U,+>T1QS$.IH6;T(W-$8>M%JB]QYI2,:? M\ MV _:')S("1(JAO>]\R890"$>^<02)QCQ<5Z\&BV(2+N56XLGI4F\IR[C[4G" MZ<6./!E^!Y_15P<>]EQPZ! U>]:'P(LEC[6T&#P;#8\U1X2M164[\:IS2I'K M!U< MC 5CRE7.7T0%)X0/41P"3/)*NG!3;DX*Y,G[PL42^6I'W$>TQE2XJ=W M(LC/DL.TU2PL*FSWA+)4?'H9>'^AW@;V>KCO/XOJZQ8I]Z$1R MG79:-+X1) >XI%8&.6!".!>2LIE^OC29YBW?M]T9E;Q\U_Q\K+HU3CS3U+)^ M?E-I.H>92[W !H960=CNR[ 3:"GO?2Z(6ZNFC6A,E M!<7?;FG[>*SN-Y> ;-&\/LX4G>80/FVBFZC6 #S(.^#R-5Q6+G]T:_AI /U7 M1,8W07IKCL?]NPUG\37Q.1,243?"/_09W,SSF!B<&+-H,/0,8S FF3*AI&-*.QG@I :315P3+ M_HYIO+]TB@@?M7@M,BJ^%H975OQ2!,&B3A!A&U7***0<@[ M%E@M[%)OD^JWMDRN*)_7.#[@XH'+\%9IW,G:72G/$61Z6:\=?3J1G1LL]5-N M?+QR$I**0G)9CCMA1+5I[?GYFX=OR#JU4YS;Z1C[[->QNF#/S*.!%]=<15&U MP0U!M1I5EA;E!GAAH5[,WE/[C)KINR=]?*WV]HFZU4S\[?3&B:+)#'S.T"V3 MDM<9OUFRXG_Z_J\?ROAGR1,L6H0UD5X:1QP*'#[A> M[H!\:<''WAW_)TY"]Q>9<;>EY*\?"(@#@S +O6F3+4R@C M*9E];SE=T\CR41M9:EJB1Q:5=D?( M1D*67VOOL]2V1(XL:NTJR'+:; ;(TB"TC7V67UM#EA$,L9(:(=IG&4')['L; M#5ET]UEJ6Z)'%JU]EM-FLT 65/LL-I%EG'V67V/:9QE!R>Q[&X(LYLXD[YPW MJ 5YX23T@KJ^$U'OPGG[% ;)=AEX?Z?.,3#UHX 3L 98H_:$-"FA&D("-=$,D2# 6-90%*U'OXE31_#,WKGL([1KT5@'L&O;XNZV&_O MC3_T.^A@.O*3D#Q1 ARMAOX4%@!U:Q2=).YO:2)S?N&.T_(I3B+'5=W_5;7% M'99)$[.F0B#?1>%3>.9$HZ9NQM%-J M7F;%>&A.%4\>*'0=WZAEM)!")E(%*($]"Y8/Y!7,R1UUI@72!: MO@="'DF%(V7IK, 2 J/FIJ*YJ<1.<6HJY\6)[&PR7CH1/$$8W]%(6.#H+E+S MW$.[,VZ8ZF:#RN4_K9YXX::C_+VO\*5LX.Z=A(@%X:'&7%% 7,0&O/ QZN3E MF49/8?6B(&1E8G-@[NEWL&GJ_79(68!Y3,V]U\')DLCQ6=OI=^: M7E7K008W&O2U2QD7NM+ BQ"]->G]BD?*$(;(C"4I\US .YRE/QA_*:U##-UQ M)6^='6VXH7K4!+?OU^E3]NORYWA]ME;*OOX(Q A0LW@[-5.H\7+J2:-YN)KZ M:FJU!7YW,W0QM>1PQB^FWH3!YI%&NWN:\&4-!T]@ILYM:FZ.T[]T] M"_W,Q>$EG[TD4-<#9'VF0/SC=Q^^5T=B6P?$L:BE:QZ-C:V1QZ.>[&-$)+ A MDCW)^5N/R7'MD:IK-C#O*5_D,S>AWC+P[FBT#J.=PQ5X@,VZSP%+&C*!._1% M'*Y=+9!'KFY'Y$'<68W>"UW8^2D]MT1>MLS=$A[D_"MZIE'"TFUVF5(<1H1' M,^5._^SXT-S)*]RZ3KQ=$&>=4-Z&%$_FRJQC@0!,5L5\V=*@VB!3#YAZ#],7*"A%)1 :VI_%==.YS8 MVJI9>>5[T@COXEJEO.2-'5&_"U#2;B3,:VHXY M=L?^>S+#3VP:CJAOPX#N]G[X1FGM#+4O#=Q.W,LBE8.:+@3P.GX_-?IGB'AT M3_E_^/3S@D74Y:YN\.ZEF'ML0]_CLR2YR+M1O)"NT1RG_^KJF2^N&MKB\TIM MB7LOG4JTLVT/:^^,3ZKMK\0*,'FS,?RDN5,@3?8@L4RDNG.BGQS_0/ER995L M:51Z2+TE@6@@29S!;=)>Y;%J"#U\(&%4J[ZAE>4W O<%*1[!EA(L(*V:""'$ M EF(04IRV,ZW1F,[2PE;5O5_@.PP#^H K-9K&EEZ'ETH?QW'!^I='$"(.['I M)\UPF<[[1*,[_@5LN>2P8:[:3^E/#3<4#[129<70CQ1> !ZJT*!I#9&,B>1, M).M%CK\9^W0_,A- '/K8R26W9BV9@@^[_>5"(TR:[\ 78[+BB ]G\PF[M]*:)2[I64@#E9H)S0Z3--49 Y$$ZV9 PH1'(ULJ M?5TSHB[E .-QK"'TE9,/-E34/HKKT4K"E"- BI@!*<4>T@7E4[*(>O ,( UB MF^;AUDO/PX'MG-+.P=_;&YY\)<]G>.;W^AU \G!B)T%#5/3E$LB'/J(3\)\OV&"DHF7 G^%ZX%%%O8 M9WK M8=]29-ITS.^I*\PTX64E2E?4R5WE6\V58A(C4BJ$KFK?K,EM4H[2>5= M$OG-GF??[%WYFRTK./WV]9?T[=Y9C4I$ZRRY9"R.!LM?;I_5K9(2SOF# >MH M[_O4DYG=^DI+F3'W>\KE \K,%P1*H/"0O JC-64);.1B6FZ-:[C&K1_Y3"=' M(&CPKP/_@4;^&S0MAC;^21 &[[,T +(3>0!QEAM^%CJ12!,=O?"Q@O'EKVL0H+)'CX@3VKD^U,<\/,=). MH?4@9'E_=@*WE;DPG^"4V^5574!(CLL<5Z2#&J2=C>M[.J&^56;E-,J%_300#NV=/2D]=^'/]' M&L";\/K96V/SQ(T$DUC=)I&;8M3J$).D@J**<<,M_E1PO!3N[6> MCJV5'\_"QF1ERS3=SVSZ>L9B. , 'M76)^@["C?DT#NNSA9QMP +D/+XL&:1 M'0+90UVD ^Y_]-WQ!%_S0T@-F:7<"E^&00'Q[^G^S ZAM%) M&.*$T>EL7=QB&I,;\AR(:73O7UR&9N4BUJ'OAR]P.K-F/OP#IZB"%U2=XROV1G?A /:*<__3F.:PN+C#6M'#/^[C6PJ]4<: MW(I#\__VXYMIRX\\Q.7B?CFCG.EOX*[DQR>.WGNL,WM(N'H)N)&W; ^[=I <[D:TIO(P7[RZ896FCJ62V;_^-6R9:5!\\%=;&'9P+_'B#KQ(7H3 M\LBKZLUGK8T=<*-3NZYEL%&WQHL=&C+WGKNFI+--:5F-0GDFV-]YXR@I.2[_ MK7!:_HM,?.5SDCP\PTWD[):'9!M&[-\\?,6-P ]'!NK6$Z<;]] >_+E#-WR. MW4?X89!<,"(IIP4I>!');-+A:TH;+#>;B&[@R=GJT$0.>Z@ +"L#I\M0ET\! MGBAQX 6<*+_[+SXL]Q:2VAC:;F@<4[K:PYN=?(5]P_&+WM. OC@^%.A70&A[ M+YSHT%'K\DC7T@4?*G05O/=["X+^@N0USX,Q,5FOG+T@3ZAK["G966% M5 TRT%1AB=J&N)U1K5O9&T];X77'!EG[^N,)^@-5*Z@_JG+6 VW)A[0D7@;> M#7.>F,\21F,YSK4, EH=<0>BON[EP&SOA3=0.\C>>S$C6(A+3"4F"R+9V,YG MGL Q\'M%YSLCZ29VF_GARCBHSW4M10TT4 ^U-&,?G80 " M48X7-*Z\#W^\@%V]FV/IA94)U(5[4BP1]3W$PM4MLS&7#'X6!EXL MRT?!TP2')$XX-\[H2./6QC@C3T_'/&]:V1)YPG.[W :*BT*>U]*M:33=^OR=>MX>U" M6;4N*RZT>O+91KCZ*@"5J7<7A?^D;GWAZLX4$ -5/VN4WKONTATYI/54QA#. M11GW2M6K,.=/^/^@W9.0 I);A!A3/U ]L8DRFY3?95Y5;")9DHRGC:>J+=ED MD)],4PG$W5+OX$,.,]U [,D+'5SXZT"(#@*?O:4?-NT4]*.$$W@-6*=2E*,[ M&;RKN2'*]$Z^3'F*RP*2,,G9DA+?A;BFE;:PN('18)JVK0S-KL@#IX/^E4C1 MZ(DK$QO34Z]ZC0; W(]1&,=\];-FR3(N/Z*28[E@6*>B?E?$D-A1_QPH M-?LAA\^N6AC:3-D 6UC[G>8[_DCAXNA^RUS'7[ZRX[V4MK8X TA+P^+2MJ(A/G?7$[?W MB%DB2'X&DM.YHQR@RA) AK:(W;%-P]P=50V1NF.KN&;<41+MXY"* MM=IM&'P.&)\GBX"*:Q^N:6R(T]?:=[%Y+59K/GU0-<8)# MNV[Y0%_;"OE WRRSN?.HU 'SXRCY^[1#_#BZ_F>QX2N5LC'$GQUB#A^0QK][ M8H'XMN^I&VX"J*9U[7%5V9K!SD=Z33LMKU[9Y&^XTWBU574T> MCQM.#)C(RN7YPTBL\$XOQE:X-Y1!9)="^H_?%M+S(?N7/_]']I>TRY__?U!+ M P04 " !OC 59)_;2?[U" #@N@0 %0 '!R:6TM,C R-# V,S!?<')E M+GAM;.U]^W/C.)+F[QMQ_X.V+N)V-^*JR^]'W_1LR*]JW[HLCZV:WKE?)F@2 MDCA-D1H^7%;_]0?P(9$B\2(!,DDY;F^Z; ,@,K\/"2"12/SI/]^7SN@-^8'M MN;]\.OSIX-,(N:9GV>[\ET]1./M\\>D___P__N5/__KY\W]?/3^,+,^,EL@- M1Z:/C!!9HQ]VN!A-O=7*<$??D._;CC.Z\FUKCD:CPX.?SG\Z^.EP]/GSG^,F MKHP 5_'<4=S6T4^'V1^NT]8\]^?1Q9?3+T<'1R>CLY]/3W\^O1@]?XA8/C M+UGI3VEQ\E>;4=YV@]!PS6WY4OL_CN/2AY>7EU_BOVZ*!G950=SLX9?__O;P M8B[0TOB<^T!@_QS$OWSP3".,8>+*,:*6(#]]SHI])K_Z?'CT^?CPI_? ^O3G M?QF-_N1[#GI&LU'R_XY=Z]8-[7!][\X\?QEW_M.(M/_]^;X@!6G+\^W ]/S53Z:W_$(* M?1%K+U:K$+9?&LKW$F*.DHY<>ZZ%7$QE_(_ EO<'\=+XA\]&B$^'\GLZLHL%T42 G):J4+6?!:UL8:??)1@'4K MO[AA-]2%1'>&[?_5<"+T#1GDYY@S]62B--6%5,_H#;F1U(Q44;F+GG_U/.L' MWD_A=>\])H8[MU\=- X"R?6E8(-=2#@V32]RR>)N;9"NN!;^C1\AZ\$V7FW' M#FU44U2QEKN0&6]U+3L<^S[6?Y,A5M5.%_+<(-]^PU:+K,B"T(\:B$1IJ@NI MDM7EU'BO2\!" YW@8K_9>#%@!63;;/BN[+AB;N#%9XBY@5RSMOEF-MC-*F+E^2&92E[0 MO(&)JVH'R.KU"6\8ZB/&;!"(A%.B=W7R91.! "JW[RZMCS6/G-9!5K&:K,VD6'H 'B#?$-,TR6^RI$IK0(0,;Z3'U6HH]%W@>VFLS\UTHM, M^\#DW_U9EQZHWP&FC[N(! F,L9C9.DV71AA?@NJ#::0*J0_ \,(TDI?1' SI M'@W?C_THJN6L:!B&Q->&:UBVX29_23=@37E=XS-@_'"-!&>W"$C&[)>;]2HQ MQEIU(/C%CB,4&DE>U0XT[VLS:$4:AA&]T$A.1G,PI+O%#7AKE/SE*?+-!?[D MDV.X+\CT7,OPUY/9# \Y=QYCDR^A6#$J>M*=QYZ$P7MN$M ;_^;V?46B?C&_ M)RM$9FQW'O]>U8I/P6>!1:4\X#UOLZVB<.,P3D4:N@NHS<&0+G5<8""F7F@X MR;[L:OT5>7/?6"UL<^PC0[$*Y+ZI2T^DP0"W&+<6(/.GN??V!9E6?#.2_"-6 M8JQ O'#!\Z _]0URNY,=@%IJ+E8'JP59 5>Y0X0'_+=4*O(==5<#<\I#[R%> M R!K\UL[)%^ZO#S%W3NX/!A]'F6-Y?]IN-8H:7E4[]8A$1:+ZWAFH3L.N&_/%K$*],LY8'%]N^Y5DQ]HO]-'PS:QK_LT24HO[3$E]6 M\96?S^;"=C;0SWQO6:FA]&N>8*<]'P^&7SX=?AI% >Z+MR*])A>+,&XX&V&[6'+9-T8(6M<%,KU M#A-^[U-$CAF(G+1DH/"<%=A)L -GJ.P6[1TN0@*DT)QT-UB2Z?7.=M!CM'Q% M?@4DNT5Z X50QU,(3KN&X!G-;2*&&SX:RRIS556L9U (=#Z%XXP!QU$;V4G2%HYI MHY3O&5XR4J1(772-U-BRL!Z#]#]X)XH.J2A5E.T90J(2I.A< D'G&O]SXD^] M'RX/FVW)?B+#Z7^VY3P DQLE"?^D^^]V4FZ*B8Z.\6+(IYB$2][ )&($!E. M'?H&"GU^\H+08]*1GKQ$E,P23_Y]Z@P.UT MIG>6+T#SR"")])RGA>?2-YR[17JC?Z&.9QATN.E/KU"L#X]>I\037X'!;I'> M8"#4\0R##G?]Z3G.RWKYZCD5 !3^WAOM\WN=J9ZUPV^)_K?OYH(@.$<.0<+M>H9$A^?VZ2+% M6R[)"9!G_AX'Y :3*"0)\LE"G[X\8U3J&5+2HF3(=7ZL?XW(Q0GGWK70^W\A M^C#:*=P.,E 9-AUZ!+*@ MG6V'[_!OJA9JE)*]04:F_QDP'1[H%[N;Q+J)09,KVU-P>!)D\'3H$1CCWEIQ MCQVC:BU0^'M1B'.\0SN'"0._UYGJ69O\;#KYTY?=:'L%(?ARS];D=,F,Q#\\ M()'XF[;QOZ\GCS>WCR^W-^1?+Y.'^YOQ%/]P-7X8/U[?CEY^O;V=OGQJ(2!_ M9@2O<7M1\'EN&*OTBH43!MEOMLQ,?_'WC2"3V9WM8HW8>%!Y25 F)7)?KFK] MH55'G.22"Z?CQ4)0AEP=1,AHE)"*<1\ S1!>CE@/B::H8L0RA,@/4%RR&WC3 ME9,0RCMEH8$M !H-:1')>@\X2?-';B_B_Y"+L6^&@\A]QO#:\/TUWEO&6<\H M!!"J"Y,0(MB6>5%?8 T\4>2 J4.:;1[$X!&%U8&P"M3Y@C&NA4GA2[(3=(+OD^^MD!^N2=J4 M^(8^7C6MR-8+VT'JT*=7@8F^]&"7%%##LJ'#M6,Q4KCYYK,E=SE64' 9NX9(SKY?T8C9L'8^GK]4% RA"% M<[&R(7@$:(1H!R^2) MB."]/S_:207/<>54%@;,"!$(*Z8-<3%[CW^5ISM3X%K^3&"WZN"X45MHK5Z@ MBP[,QLY[$5S+45V^J*O+SG)\J#0>$I)J.#!JEPB;U.Q"$PBE].!(("-G[WT[ M#YX[GR)_>8->.:?(%24'![VHC*K.A@#M*83W$L,#7=TR)&;ZRJL M+@P8>R7[1W&A>^]5J'XS8LWW(?/J#9PC]>37&EO4Z,ITK75CVN?-VT4Y'=.# M"SBU!LZ;.M(K6EV".6:.3VGR<@L=6%56&#A;) 4?TGJ4OQ =./8\27N_$&6\ MW43U5E)K%%1T=C T,LA*KNIHM'*AT7IP0UE]>/I,0FZ>2+XLC&H8^O9K%#\- M-?6(F20^7L_!O9C'.9M0P#LN4_N1@?.Q!64Q4I/W8S++I0MAWN#:*0:-.2U M76WON$KI_<'=V++LI,]/AHVW!-?&RL:S<4YXVE$,M^('B^JKJ?=.G6?RWJ&+ M-N_LCDTS6D8.R0B ]Y^V:=,O"O(J?O"JOIIZ?U"8DS/>F9*L93Y:(#>(7^PF M'HT'+R!^C,EL:KS3SY%E6OE@G"*=:3BD[-#Y6(9!>%W_P2AQM6BX_K8ES6&' M_J7*75#-0-NBY@X[)Y0^3Y2X^(RWBQJYI[K.HO04:W^!0MLT-E=AA%(JG=9) MJ33Z]\('_^/31XJE#X^3@-WOW@C5C?)O02N]=QSD=K#8/$S\6-=6["EY0GZ< MG);O;:+5A$3>Y&]X_7DV^W4#=VB18V0G&V--32;1^ O"$W M0G=X9%5=]MHD[""7R_'_671G=8V6H%D4#H+%@PTUT@Y@@Q7@?2O) A*[O)#_ M9ILH>/$<^EJ%5J&HH*/.KT]*T$%2J-Z?FW[UO2!X\KT9]8 T5Z+'N/*D4+5@ M["RT\ 7%JZ&OR$6^X6#NCJVE[=I$(^3IOC3)(\TM)U2YQ_ W$+#W%QVOTH?I M\(KWU783@$R\S$[\DL\H/F(E=H\6@RK>0(\9TE!(18>&Q0L+'=V+VAZN\VY" M;4OV&'E1:7H??8[WS5Y1UBSU+WN'PZW78_#KR:8AUKQ=*MQY/K+G;G+KUUQ/ M?<,-R!N_GOO5L%TR!*[0#)>A[Q(E6H!&CWJ8E[G35 6]WS+&<5E4;;)NME$K M#94K-:3N_=XR\\P61,WK@'YC5J3J4*E26W:MAQX=9&;.5F.9;\YV(RQ]NESS MW-2Z;JX5H^#V'>L9:P&OW_WU/9[\@^JC J8G5\L7H7%58H74ME9478+J;)F] M440Z=*^0B^CN-4KIWA-&3**F(9.7"=@NFI/M>3>[*A1R-\R%,CV&EB]'MJ8] MZ.WPS1T,;_.AI?%/-\AT\'\$HC>H58M:.^[345EM\3)2]'>GDUU[RL3E>$QH MQ7L,OI1(&>!-]RY=ND-W!;XR ML4Q#LN"PUL*03Y!*#+V'N_QJZH-[83A52K M3RD]<_$;(D\A(6N,#9 Q1X_1\A7YDUDI4(PS#<@V XTR$M.#$E$S MP]'?Z\*B:F!-)E)M0*.,$A[4I]> )R6*"E([+!H7+-G*?M-+2BNZ)KV.0X(K MKMU+Q WJ^_167N__K+?!HX=REOT0]<;:RDM+$;X2*M=(K)U?W MAJ,F2H+.+WUS3(>9 RK4DR7;X)!9H&91?R='7;^CK8 ?=:4>V$.[C%PM]( ) MK.WX)R?!W/I'%(3IX\2LO#IZ/@:-FW6)18E":$=?6FWA,2!;*&\#H?%+K^UC ML4-EN'W9YG6\2T;L^-VF M;6V8="@9^PA$#@S!U*?T/$;<,_FT_*@85-& 'F"3U#2"#(45+5,E%D MUADBHO("4[>3W2;D9<):77B(>$I(2ETC@\N RQZRHO6'"'(K+B@U*NA':U[\9X7Q4'9O,7NIB!8_&JM<-EB]3YV!5L5 MGSS0=X.2_]Z[Y9W7IT?G0 @R%LL,LL42%W[T,- ME"4:[YX(*O"LLB5"G:^P?*!)[&B6:7,A';! M3Q+H,&( M@7V WB.O(J..6C/F+8^^ =WN#M47K:H.\U/]9YULOA)3/E-Y),< MI+'1C?-@/Z(?\5_H6R>!NOO!P/JJT))*J<.(&(HFDC5#34;M5(9&J?K@"Q-) M1 .*UM\T)K4>A<)2Z[7GXGX&6$ 2LTO^'=JO#GI!)B[)>%VZ49O0>->^*:NG M(D6IQ/IAXA0S4[!1:-143R))4]F(J8,QH=M%;3#U*(>KL;Y(/%07ST:2 M C+)!HG2I,");I^1ZZ/PN-[7H,<2=:5)3K#XRMWJ1NR 6+7!O! M@L)<6O&BKLZPK@X'R#@IZ9MF+JI,9M/ALR/*C@&&R@Y!N16]"YDX?V_=,C/Z M=0@P6#;P)%:5&VF7"#"#W>N^&GHB^FHH/_*]AR^)#B,2OM4<6MW;D]I1\[6% M;6E;UO7=<[S2NG.\'X&$^3BM>>-\_/+KZ.YA\MM+#XS$1B_BMJ&B2NLWR$D? MGGR/\-RZ6G_'P-^[F^3[8S/$(X#X(:I2C/(RU"MI'+!9H2*^QIHA%4\H*&=>:?UC4S!HT3<0:YI.ZB0Z6'J"6J?8Z-T?*J(T7GG;K]6 MJ=J:0GL?$GR#<$]-.]8R_K>#TF"/\9(\K_I'_'N:^T^@*C06MD:,"G]A775I M39?0_GE@FB"TZ(1G>8I*A3](54=!6G/)G+;^.&7ZC,[$?3$<-)EAU6)EANLG MQTCN[JP('A1:B57^H)D*A36-'.BLRZT#C5D. 11C#D[[I3A# DTAEH8F[ MAVCM-SM<7./1B\>I/PX"QOM_PBWL(87D=-%T3\A9.+4>PEFAX/BV4WR?*8SU M(&Z+RE7WD$^"2M"RRP/!';)\K$^?W=K[RB A/6C>QIUWSZBQ:7H17IP^&6M& M'DANO:+V+O:!12(:T+"-ZYHP5=/Y@VV\V@X]Y%:RE3TDD[P^-&S/ZA]MD]BI MF#P'9\<',8'(;UB*>R _)Y9W[%J9J.7[5;7;&2R)U&JDZ841S@P'P-6$[;0? M(0;%9*H.EE6-E:#H)6Q:L$WKIRK<96,=0M&;V$-B22I#T<64[M92XO%&C0-' MH;&I0R]X0Z4INE!9_?9#ZQ&$%&7A_;AK7)V M']K\9V3[J!"U@5>KO# 9\0:@T4@C+TB5&A!U6N&7=Z.W*PX M'HCUQSK%O;9%5G*%\M!(HA%T]KJ-KY5AW?AY1JMT(3&9B3"(6GZO&22G%YO2:@4J5I#A9K_2C]:3,VJQ(+F#;'*J:1H_!NVJ8G[1 MF:D##[+X)+A"Z0(+>H%6]IMT"G2E-=2L]86;N/H;>R@*VCP_.#H_O-P?YC54 MT[ .WF]G,V2&D]GMN[DPW#EZQO9XXA+]D/]/3DC>#"=9B6 EVR:VUK$OV[6* MO\B5O'=-)R*KE!L[6'F!X7SUO6B%:]R0''8Q?,C:HDTU\'BO28E MBV--U\-=OX_9!Z;U*Z>I!ND5+8,KL["WEV$M6JV<6)&&DRGRWIUY_C)!DY,8 M6*QVW^U4$S$57;[H\IXA_C8>&>1UG$=&HH5"*7"(-T"PS <18;4>R[:^24XN M TR-=Q3P>+!;L*B=P\[3(*NF@I"\6O,IMLZ&9WN^P+;S>WJ979H7(\M2XUO:B(X4D(E6A\:,9WF7^U-:!KB89)B< ]KRD7+(Z'(SP> MCCJU"4JQ+4PN8J+WU!1<&8$=D,M3V^8DK,%1V1K$#1)CL-,D2(.0)E,BKT!C MOI@"#Y0P*K0[="N PTQ_L>>N/;--<@6NU-4IQO+*H0=1-6D2FCG@(YL?X\HE MU^HA.6O'--P9MA\_^?P-;[WPS\N\ U[ .!R7C0-IT>K0!K(DEL7+' U$[O,3L=NQ^M7SK!^VX^ E MRSUNSIW;KPXJ)ND5L "G90N0-3PR7&NT;7JT:1ND86"H8RL=QSQ(MM'RDT\B MG>.9"KE&BJ/GN',/8"V,"P\Y-1=?B_%HPU[LI! F3^]1DU4*&(ZSLN'(OC!* M/Q$;D/0CH^)70)J0M-M!IAK#X:W[F35:?J]5 %YQ.U&S-6@&0P#1PKNI"J7N MZ1XBN50]]GUR$BN[]S\OVX2DO=%.@R"'/[D,++Q4H!5N^_G:?"]X@YI2&MJ@ M9>-0?%-67*">CL?MVW_W+E9$)#LD+\I#WQ+=U5OA&HWR0\2]&8&T5SHE@U6L\#6G(SY,(!)N$K.5X'Y^U/<*-C[+6=0QBRO,N+#DI8U2BGHH':%A?X@_).DT4>7S2 MV1"5!FCSM(P*@7LZ<.-$+"3W#_XNN9FUC207&*X5 7GY]OYMM&D1Y#Q;EOW1 M"WE3+:]2R]?,*GLC/O4*UXL<9M+N%VAVD#R1;-RK>)N$&P[ K01N.U2CDAU\->8:P<27ISNPPV\,G.8;F MR#6ECKD.*\+9<@W'*^/=ID$.5H8VA/>ZDFVTG&! I'.\H2_7"#134 OC0DJ! MYN+W=+9^1BO/#\FAWPN:2_K8#RNCZ++V1KD&05J&M'])CXF;D[,*IQ9O>?V] MTP^)E3>_9I':IYUG<>1A5%AMUQ2OIR.W(H@_"]87',*7F%L'1T(W6D;_GK7] M'U"'L9F8X1!/$]C'B<;=YTO$&!Z=LK5G)JR6:@#7:Y2RQ* MI-4U]EM-+T66+)Q\2+M9X(A^:0DF%TCO#C--.))(E_\MTWS=JL)^Q(( M1_Y%W7M2:_23&G4%ZWTRV4?T(Z]A MIG':HGKI)!OJ3_CGP!3 MX;A0)'(K>0J[N(4O:Q..RS:!9 MK)]]/'1B(QZ#(VXQ%'RC.+#..C_:D+WSKU\9/767IA>G94W)2=F4I"V!-QT0 M,P90'!*57R"T91H F:K0QG6-% "-Q065QUB""9LTJ/780*D^9$;(B#RL?,;8 M4AOSN4^>XHNSW^7-/O>&D$C= ="FN;P:O)3EQ,/=I1&1722R0_^\//0KTA^!'^4]S(.T92SI3RY[A_B8IE6$-I;%LR/5E*VGP[8OL M"+XHC^#J;$D]&,1[G#8IS_RLT^GQ7[@Y#Y2<\X5;@F7UK/CEHZ!V!E M8I&<1@\/*J913C(AW1,J_*Q""L[\TC[=D'M F'2"IWW,6E#L0ZT40TUD') O M?U=5),3)Q"J\L9TH%*1)S=:*JKWH[-7L1O11*;LN7WXKV6QDYX&*H/2D(?#; MIU[DML%?O_8"=G 8IS24\S&;C;@@K:2Q:;@"JO8,F1[3KA1G W%5CO#*2!3X(277#@]B2DOR) MQ)ANA7^P770?HB5MZA"M#HTG>J>21EI1E"%=X8*2Y[^?(G]9M;04J0>-&(V@ MVUEVUI9_6/$,93601&Y%50A/.^6J V508Q4,*^=AQ5@RJ(="U87WCBA4H;6F M-@1 C4<47D<^T;\P0;95]HXF'-$UO-BB/*/ND^^9"%D!,8V\67=SZ6![W;AJ M\=*PR8&R2)MJ-#SNHIQESVAEK)-(,D4D:];BD#FF03,IQ91\>P?&J@<=7!"(1I 7$!H(T<;\$ MZ7L3>(_-/%^K+ L?4P$PRIB*RPH$R HN3_'GY*QQ5@,\J T-,5-.JD^ZZY42 M_IB<^=W6 \H!Q.111-;6"C#M&K;0[K/M+R<6N#1Y6!3@6X-@74BS(TO_X?G M9WVF!2B7"\''3<#,2HA&/=+1C]"CL4236:&?U.AA:EDH>$FHO(B3G&1J!A3% MB3CU5E.T\0(%]-C?RH*0D)!3ZHY74%RZ#LV;_&6V/ALSMD34DT:HU\XNCCI[ M/HBOS0K-,T3HF?T:V=B9PK!KAX8FU7__H%'%<,^FNR% M'S@AO_0*4"#6X]I@BZDA?D'14]-%*1XCPN+)#"^.-BNCJJ6A4$7P@+,QVUDO MUA>YZPMCHN"G4] 3\LGOC3G:O(<ZV<_QN%FK" F9>T71]%QYPXV$=SSLX)>10 YW]L( M>;7.C>(['_TS0JZY9AS'"]0$RP MB#(8)*DB:-RHZCSS9%^@)EAN2&+%0%U2 M>,"H!YLAP3SV%ZD*%G=)M,1P%Y(>"/!5[SV2Y3%C#F!5 0MT2\9?6C<,-T-V M_>&H.T[@75.\4N)&=;&J0..$-$8LF 7%!3+:[UV\$T5!^&R$Z.6'L6(:]NK" M<-$4A**,IH2@0'#,K5LV__S51CY6VV+]@-Z0([:&9U2&AG.'RWA9+>F,(&NZ MIBO+(KVFI[8!EC+R$ HN]*0T K7)> MO:*Z3CK/W:"?"V7^U5-2UY$YS>,A*A]%K% #+3A"M#XTCM7#NR)@HI$">L^? MK:-A(_)DMOUEK&6N=XQ>=:BLJ2V[UJR+)^W$8:21:$_(CU]A=DTT>77L>=RN M?#S&23D>(_T _E?N&R-O^Q'XD1FI""0%6N;!^\T.%UE<#F?&%Z[=]IND<;>> M$=E_D*0K50RX?5\A\J#AU%[B(I/9"_YM,,.]Q7]C!6NH:1R:P9'D0?&M4FT* M84Q;G9W/5*EGD[S*)LFVV0D5!"H#)8<.A"L6.O55!.[BD5):\1(["%6'1JT& M:->A#D,)?28/'G,(;PZ^&7B]91M.D"F"Z7!D5^H?41C8EJE20_C>[Z$:FW&> MHU+=!Z"QK]494+,:>W^WAK-6O7TWG<@B,P?>W>+_LZ;&>[W]2U5+@V,FFRQ4 M=C;6V; >!Q&"H8G9+.KPM/-SFZYX5T-+6GU9QQ V"I6Z2)1M(^O>??+1F^U% M 2YG>Y;$%D*NX;WGJ"85:GWG1#:_,_TB9$GT[#1M_0D :M&:"Z^K\;6/_#?203+U$N1$V*KQB_M M+:';UJG6QUH '7+5..LZDC_KPA62[WR<>GV<>HDX0,!8-BBG7D6S!.K4J[&X M+Z'AAS=&R$HWKO8C0,FF@S$:Z,E7);@#$_4I2O>$-'P-@,L,J"D=Z1._.2T)(JJFA\6CYI4 MI_5,^*A5UV_FN4KNC-3P]9;>Q]WZ>K.V1T;<^(=GMQ//[G?WU78<9&W?A0ZN M(Y\,48H<] I [4@=#ZRDD ,(W]S(^>"Y\RGR-RH+)OZ3[\U]@['4%ZD\('8T M$+CW 9+W+E8;;G9]Y_GR5!&L/2"N-)&XZ[SD^D(E'LEY.VN6$:@Y()+4E595 M8(T7&H["Q/7WKNDCO#R[0QU3\LU!@NG-7?L/)',7BM[( &BD4/!^[V3P+XSYW$?S] )! M^NNK=:8-DN"<)&++YSN7W^JI'VHC$6E ME ('!5>-.ZMX09&T*O_61?Y\S=5^1;'>JU]4)IC^%DYL-YZW \^QK1B!..Z* MS26:#(K=)HZ M35/+0H%00O]%T.0DT[KO^68$>-B^(/_--M$8\S#>1&\$HN^$A"I"0DI.Z3M[ MI/K2:D7O$9OUN@"*UAT,AHT$!G(UMO4D_+V>(!4(SC@6!OP2@X:4^=T3H0&* M=2BA?49NS(,[^QU9I+>;,%3V0YN4XOW#66H[)"6V7@>_:X>%CC!F9UK9@8(E M+[.:"9D:\QF$S\A>OD9^0.89 < X58HR7&(9#@>#6QW1@;Q63EE'@FV0VR/TE'W)V67V_,VHJCZ+8?&B5?RA< 'U3'T)CPZ\V2;;0< MEV,ND!4Y:#++NLF*K:.4AF8Z:J%6"-21D%,@VJKU+.V:X^JZ1U@&H IXI44% MLB%O&$4' #=IS5>@QQ6P!U%T *#@JG%W]RPF4B^BZ'JH?E&98)ZUUUAS\?;( MI7+@(&XT28F)-QBT.2 7A+\\Z#Q]N!@Z=%0KY=&ZQ[SL?(]96HO+[S5+KZ=P M]YKEWWUL.N%L.N]LUP[1@_V&2MT4VX?R&H!J-Q1L36N)#G&WRA#D:IW$8CA& MP-J[2K0 C1 -\:PZCFRF"R!;78886R%(N YS,RS9"C1R-,52BAW""@'"D*EO M6(ATE1V8OUNL1Q@+(U+&64CJWD?I9Z?+MHF4'[$3&:[2J%0AUVIJ+7#SL]2%)*FAN"Z M4)>@W(#GKQ- MFH1F>QK[[)4K ]0S;UH7VV7%)&^58?G)WC@P#>=OR*#?2&K<,C0R*N>2W#*] MB=;V9XM8UM(CGDFG/Y#SAKYY;KBHX740:/2#JRH4ULH+AD!I2L;N](>GA)UI M6Q^D;*"GWC^"54,5^,NTN(^:K7U0L)&F>I^Y7EX9=UZD9DV9-?9!P2:*TI7Y MOF$T>CT)\39R/ NK ]>;M;A')-.EK91I9\/86;=ZLC!HOC562TJLNC3.X6I M $&F*L,).(Y39@U=S\WM 'L3H:GW$KUF+Z!X_JZ_HD%+Q=%QU/EQI !$S.?E M:DK<^]B[\M!/7[_B$)Q;KZ<$:29?[\.L;I;&RRB#^0]_0$7Z-D5QHJ0VI(KGIQ=')T>G%X>')R>7Q:>OK0M(QO.X)_8BH MG?D<;+DDM'$MH>7R8!:5#\BEW0?/G>-Y8DFZ'3_X3+_47U6T*-HQ".A$M%_& M35@ZH, QK]U7%X8&GC $?/08 FK-AY9,07>&&7L&B%OZR;??C!!=&>[OY/]/ M9K^A("21RU>WS_?CJ_'C?UWC2=+SZ<^9J6L8.N ,U'8=_]K4T><7$A\\P\VV MG\Q;]^6"4*BA&=TJRR&D"KU6PULND6_:AG/[S\A>D:GKSG8--\[*'Z'_&[GH MZ.#P8NJ-HWD4A+B!(]:[!#4;@T(!!=9!J0H8/MS.]M3?/#^<&W-.JI6=4H, M6$8V*&].%!:E#[RG)JI+0P.O_DI;1L#>'\,6A;TV?']-'C=8DA %(0(4J\!F M 1M+'A,$)-5Z8ZGU:^+?72.)?T-6K(D@B,BQ41H(1V$'N]*P^%%#5LVY*%IW MK)$Y%6$FWVK$U MOEU7>#QV*SR>H:H./WVNBH\0H,!KPAD=8[0!HAVXW.W[A$7QJW> MN5OWH _@L X>2QA0ZS^LZYY3C0W),WKSG#?;G1?5PW3H,^L,@C#U)57D*N[W MP6W/41<43Y';IQNH41B2W%P)K]E@5Q0=%MRB BJ*E^\$\!L43W9X=[U=53_; MP>^,;0*K"C0"U-\N2$O99PN_%3:[L\S=/+"JP&.!))8L.@B*V^?%W[V+#1]> M\S[C5?#+#V/%G >J"\.E@"!^90I("-IG\#7$@YQBK9ST=AX0%[#WUR:)L+\A M>[X@#RN\(=^8HSSK&1Q@U(+-!3:BU7R0%798"9B+^L-[7R01,+0M/CQ:"$NI M-6=LZWP@JLIV21M/B/%N+Z/EE>?[W@_B)S%6^"_AFK:7E&AB6+QI++G6MTED MN<1T98_G/HH/=4GNT&#A.=8S-IJ^;9(>/R'?),#-L39N[&#E!88SF4U)Z$OE MNR3*VAT&G?2J0T-"@$[GKVPKL$F2\N@E$G$F,DZ]85"IF;C#2@ZPU<&=_1ZG MB>2OA:DUADH/,4&'E2JUJ+LK(["#%RR(84WO6A4::! MU*HRHL+@SS-:&>LXP&TR$PBBIA4?%C^DI$SY<*$IMK;]751\VA1D>X%)% :A MX5J\ZSB\:L-B2"UI4Z9<#L-RY#>, KOIHD;.L$;.^HP_3[+,TW8P/+ S[T#R M@A:F?!/G"KV1X1*FINP9I0;BO6UT9:OW=.!)EH&M*R7J4=MP:[_%V7=*U) U M(TEMGZO@VK/UVSS7AFM8MN$6[&6=5QK.RX_]5MSMP;],/YC]=?O)_;CJ-G<1*Z R%RF*=>##A=#YY4GC#6D MA7>]ZL[SD3UW=SQ*=*!9Y:$ W RC':RE!>[]8R,:(A^['^SU)U89 7N?":O* M4=1:$!,TEK"Q5AG$I,]T[+/7=HA\DI1=:XCE^2 /!WO/FCK2:@V?/.[5X6#O M\>=)IC6,\;@=IVW5539Y_^Q%^7F2;<.C7,M]<,-6*&3L6K\B:TZ&OHG_E#BQ MQ7VU#5KL_O8NIZL!V\=;LSUXEJ0Q*WB7@>OKA;':[>R<4.L]\%[R@0&@&$&8 MNH#- 0VWP"\ I'J4Q(@%LZ"X0,X/R3 MIP9M0B%1EROS9LK2ZC*43>M/,32/$1E2DUE.YN\!LNX\?^H;Q"5:972XE8; M'3:V.X:JGD:TGF9UN"O4>EUZV&QJIA2MAUFGG3JN=S=Q),UN(\=VZ5$!BF.[ M\ '^_G!_-UF+]-*4M>#^YD^/ "8Y#>[O7O*! 6 3]WERI!M>.YO2&@*0E'/_0T+1^#.%$BL:,_.-U.6UJU-ZV\D M;O639%-COY-(*3T$4K%!9Q&+KXIA!0OO2)X*OCD@FM;]@P:1QO# MR@B\(_Q6=DUFK<$'X')3B#=\97KP@F#B;G_WB/AFCE(/+J/: ML'8R2FEZD KM>>RR%G)C[MXUO26:^-?>$HNW(,.-($)^6<_R*?@&7*K*T$B$ MCJJ5I-L,:CZ,2\2=&N\U0)[X9P<'1UT_X22 6]X(-!2T]Y%GU?(_ MD] [,,BR M\M;PR2WMX GY+PN#Q'W(S2^'!Q5W$[/VX_B,[ LC_(E1_ WX<\ZN5C@3#JTX M)LWIY'EZ<7YP7GKB]S-2HH52%$L!&VP2VFW//@%A -YO+T9I(R8 MAGP9:+ )Z+UB*\"5J-=O-6;2L:,4BJ6@XUU,'HNB<6"XY&!!E MYD253^%UY -XX 17E@L6%7+8^9%3K4VEH%B,M4_W7H G8TTDOL&2W"#3P8JR M;HSU-\\-%V/7^ALR:/'1$BV !9N-&V.[65/F@84L5FAC,B/>;[\!AR@M%/79 M?28II1R2D7E@(6*I-G+*F'I7Z,FP)2G$;V!P#*HI,JB7XAL3Z-I;+CWW)?3, MW["#.^5MEV<%00ERZ M8;WF7I!;!'EHB(L#QP&=!;:>16KK5[%^0_9\$2)KC V0,4=9)I?8[@7YW.!L M2R#;##3*U#822@17Y.D ,X>(*H6\;6\V9%3<1E&KY%YFM\^T*6%%?;+1=:+( M>!69UO8M==./AZKAI(NV6/QQ&/KV:Q22)?_4BW^'U8#(+H 4SC^H20]?;=CP MGM!0DZ*Z/@/59?9N;"?"ORUI7<[PT5K9$\ZIT(JJG;V'B=]-K/).1-Y.)*U< ML&1U96ATJKTP:R!NRI-S3J^XP9)9T?*%QP[-=Q1B#^C"<[ LP>T_(_QIZ9L)A^6;"?E6_VV4 MM O_-D)9%X]>R+N3P*O4<@B"N4!6Y*#)["H*\ P:!&,3=RJYSAY?Q]BOSE,\(3'6F8=(@>K\+=Q9U!_LSSEP8V:/&J_;MKAXQ >=&ZT-!N#;F=Z:*1OKJ^ M:MC89'W%Z@T1BE--L"YXE\J!HX^>N4=,;L8Y2F<^[D+/F7-)14EHZ(K!P(%/ MNS57N( H'Q$_>BY:KAQOC1 S#;U4&Z!Q%K+AZL36.J.7_6T/E"M0O.+0(%-L M>&N)W_45595!Z<7X@"?#_ZOA1&1I,PD7R,_EVN2XW9LT"85CM8"VUBRRJ9?W:S56D'/AP>= MQ[\JYTS%E*504UH9>0J$D;'>J8J1XR.[K0\V-M 3J*=9*.NQF[0G%%\#EIVX MCXTY7M:D 7;?#/]W%%YCY1+=^+:)XB==[]T;A'NZM$E81(9-#J[IP@BOO&>7@6VC=VZ.AT O5:[V-"<72)XA6NP3KK#NJ6]HC:JO6 MDH8=5X>^,J[OF>9Z?O3<22QZ=NBX>2CA]AT;"CN@!@_J_.0^\KIM=2JZX0KF MAAK3,#RB'_&?:NWY-I7WD9;U%:/Y"F06D]QZ]"QU+_%"XI(MPU]/9E@^K*M8 M2_D2-0)O2Z^Z5P;>?AYEO4K^/LJ^.B*?_=^C3==&6=]&_\M8KOY/FD6\4'HO MHW@Q@\_/+@^.SHY/3@\O#@\OSMK/+PX@L!> 4:N!4X794J$$(&=JS:*J#@$D M'U,!ADQ4U:':Y&.=)#@?4B@6 [RR=)!*-80>%I8#3'/]2M*0F-):XB7R2:J MG:X#MMH-#X# ";6S5RWQ>Y]'H;9W8VQ9=B+L5^22-Z7$XP>T?A,*2VO12:'W MJ;:NAI48-E;.*U]_K[OZVW@'R*E+X70E/:=AD5O+!Z$PNSMJ4H9'>]H&-39H M$WY=6(I.L=B;.)[AKHY=-S*<9[3R_%W2Z__@!^EW5RBM:QM4EN>V2/^7R/#Q M?YQUB[S?^>8']7537T3APTI1#3 @<[^)K4.56B,H6J=L0?C)#ZSG8&&OB/2W M+Y.GG5QU.\NZ]- UBX$2\7\U^\('M3D.- WJ'59&<,CW-?KO3E&N"LV9R&#= MV- 1K-.]C53."37!.FI=#C2"M1Z6F_>T&/[$CY..)G.M9#HEGVG$BO (5#BF8\24$5;7<=/8P(_##' M!OS3E@GXAT1;>"^_64-Z<]]8CJ-P@7OQ!UYC+KW(#0]W*"%1$PHW:H*[94=3 MF5MQA&L.('W ND,!V1=Y+HD@F,SBW]R^DWU2;)E7>$L2XMDZ_OV#;;S:#MX4 MH4 Z6O2HG*8U^3K^Q[8#(V^6_'J4]F%DN-9HTXOT;[E^P \(3:3DV.+=0AV] M',N,W:2_R0K #%1KN?)Y6'K_&4-:;=9LCA%_)JZ)BHC*PM^@(2"@WZ+Q94L" M"HO*V+&=OT+!@Z_:"A@8(NB,-.;H_IOQ;B^C)57[A;^#TS^C6T4$^&( B?96 M]<)XWZR5I%@07QA_0$& 4'$Y]XQ<],-P2*Y=ZK*$60LLJ&Q\RL#6D7-824'P MUL=$R KNL$)?#!)1BG^#]1&NR2E%B+<"9.^]6M*COB1:*.KS&.OSHI^\:2JS M9M=YZSZH>.!<>T$HLMW)EQL,(\0D@YC2LFC]B @4\,H%H:$G!D(9/$')M%K^ MUG$?XZDO#+"IRGE5DOF0,XCY%:'QHO:HKBFJUBB4UI<(U;[ ]77D^_15 ;L2 M-(+4Q)EG283$'I9582M@,Q GLSO;-5S3-IPG+[FH=$N)(#BKWH"[6R'%EWQ@BNYVI M^])QF1>:CT))$(D=QO>HL?:N/9?(CK!U)/J;&X[T@>=Q^< S]XWX7+/PE?A M%'\(_HDF0U5;<04",B7:4'%!YLISK2")0",GV]27T=F%BP/@I/,!7PN,S7T2 M.3&!WN]_1B2701)2F#TP,WEU['F,P\0E0B+KR??^@^@%J\J[1DNSVZ M=V,N$XI3/UUPH*HKU'@M1F7IPW8,3#X>7]H'GV%8,1WQ^10D2K2X( M#FGEDYJD[(H8H2ZWH33^E;,?JR@4#D@BQ8.XS@38@P26&R=LMC1@)K&DE(8- MN9"=KR-AU\ZJQN#?N_&W8T%O'7MIN['6F!1@UAD0$>3E['^:2OH<^< +QQ:H M6E3:Z0 7!XVUH2$/4KL4>D9OR(T0B58E7F+B'/K-#A?741!Z2^3?OIM.1)S_ MY! 1_Y\U-=XIC*K1$CB"U:5!F5&JM 'JY5/J84LLZ_:EMNKSE)U" P1?0M#> MSSU??2\(GGQO9M-.!'(E!HBUJ)1=SQ"4,9OK]CC(O[&X44W,XJJ1+%AU@)@W M%E_7N^FMGXJF0HY=:THB=)(0HZOU5T2R):P6MCGVD5'CZ+3T?%35T2GY;?SY M.&(F[L HZ<'H=3W:]F%$.O%QT*K]H#5%([[R1,)%?4SI;*$3QYUY[OS!?D-6 M I+8F6N=1J&;'+'C5V62=WA->W.0M1V-V$I4>Z:I9<'!J1ZBHA-33A-=PIL0 M.]]-JMN96A8*O/*:WT%-2D"MAZ^/GOO=M4-DQ?)4NX;I!4$!(J74G26:N'1 M AWN:**SH[.CZ&\9:3!X&I15M?;>HT>FN[IH!0I.:]-$5ZU:4=5 M )S;A;%!KBRX3T"+*T B9TN#_7>LHP"9/\V]MR_(M!*&W+N!C;\^]8W829Q[ MT4]P-WUZR]:7>J MRM8V_/WY%;[KW/=S]AXC9M&C:S?/0,6^1^R^,! *03JE4?'7OP5J8A*3F!5- M,.&,L_>.6A15-:_9UIQ5?_^_M6FDEL!Q-=OZY[_H+?+?%+ D6]:LZ3__9;A\ MI?+?__?O__G[_TNG4]HPUZVG9%OR36!Y*I22!5M2>I M2@&^0:%D7"BZ7Y?[RW?14 M%.?__% ];_[KYT]%=">WMC/]N?LA&O./76-#L_2[EJO5ZG8]<8RH-88@^,_P MYPEO(']N?]PW MU=9>V@72@Y? S[=3>_E3L^!P0+A0/SU'M%S%=DS1@\L*.T+)-)))X^B^']?Q MGBX _/+!Y+7UZ!8[1"L]GLSW6(EWVO0)*/OQ[^\.#UZR=H>=!G^.N^Z=S1 MS P%,["D]J"T_M MQ[]_JT"4__W;!)Z8DFS+@U+FGQ\>6'L_MTL9/IP&"U];_O-C]WO:"^;@Q\]_ M__8TSP#__OUS_]]M5Q-;#O[]6]:6*=<+#/#/#U-TIIJ5]NSY+QR9>W_!E_Z$ M/S]H(VONW!"#7Y9M@;"!MOX5]@:<[9^:+ ,K^A,V*#JB%$XYY5N:UPW!R\,_ M! ZNH"PZLL!S!:%(KK)6>5W/(50K32Q:N0$ZZG?@RKB_+,V ,W1\N-C1A-;; M/AA7:"D")>"($))0:$*Z= <* #R&F;.\6G%L9+;ZD;)$$XYW)W-^Y6W3U+Q0 M-KN,)>=A?U"(0V&N ?='2H/X*T=#%]9879YYG6"%4%T%HR9XOM55I^$B7GY. M*";@:#@I7+#UCDGD56#QB\8<'ZXGX^E0^^U)=;JC27U2H7DDW5"+8,(.!G:I M",?;4HJ:!1E) M$XVV[6KABK)KB%E7FQCP*==[2)1",*,Q(Z.R>4(EW'2CD*TAG1__OJ1@_L-( M$EQG>3\$N":[0?S]\\&L7UJ$@N]$3"L0PFX5>O8=]'!A]SZA !]G^L!G* 7K M]3J/E_7^#251L^JVZQXL907:)"9H.1 .

HX2J&(PF_O%]4U@KG%\WFP=I6 MV_8@6#1&A*[YR*2XJ$\#<<&\LK;[N>Q?,HK\_;TXY8Y/9F5%W*7[^G!G&]F-DV:9$O33UIF MXF++/):HTI@3VR.]-0/31;$TM$#N ]''S1G[3=Y MJ$U:G@J<:!COD9O'&9IY)05^O]NM7(J#R7)S%G4$OS^5)'P 3TQ[\(--AP"B7QS$>. M=[=$16A?BL8(B YKR05(O;LA+R?HA,/Z+8-=V+X#665F3X6.@(=#3J=1#+H. M'SG>PLY1O1]P$7[CW@UW;767'&W55[H6##)(OD+7ZMHT%!P__@U?\7EC;<,7 MV/+#T0[$=KLV7:WG"#>09--#F^4&TQ'(<+0=["/'RL"!RM%@#7%Z-[ZTM"@4 M59]*\^DV@E00J6!:%09V#,>GB(8+WBQ=WFR7G4^\=*>\$BRM?('G6DW%J)EH MG0:O&0SG%2\/)2PN%$M%7)KB/H5PP#8;Q1)CU.&0+K8$E)4N5_4*4>*I*:#2 M)4O,6M/7[-%++,$=## ANUEU![7-FN=KY9F4G;1MM4Q=< U<;:HP:KH*^ ' M@.;KN#<:K3X1!NBA]0Y'3DGZ ^ULA9@W;V10(4/:I'KF7,CC%1&WZE1]#B,@J;WD<_;M2N'0:"?C_J,/KK03(T^1<'D7[N% MCR9]HA]9?>4;1G*XSC_^#1?ZUXL+_>P; M?SY:BY_'%GX>V?-WZ^:)CA'R?8OBILHY^&[9>CV9^. M;18K]KLVY?+I=&O#M@T-Z];:D[W"0G@]Y;!20.1:PSIHA M\0K.%6*KCUZC+-KRD/7O90?Q<1&=VE%H7\9,"*75_51#1+6D%L]4(< M$1%7O^YW$5'T9UR^A)05A'+:O*:D?<6JQU97Q X1,?:&?A<1E6*)6ABEKJN; M1$D2&MUIO6HF6B/./L1S>Z6G00!:6=!.!#(K.I9F3=T=#I@"T!A*V0 DS8_Y MVH2> R.^/L2).#@^UW."89M$[AW1 ?M?/IJ^C"Q'6URBT18UN6+EQ;GFB<:. MS 7

:%)M'G!QE2S/-,C1'2UT[F%Z?\Q:DM2;[I&V$=4;35?60'>$?Y:<7H M\DANP/&MFFNR[7;RX*G6-=.YD^2Z;&@]LDR M?>,-LQ+C>RL^@":;EL:U*(Z)000R"]9WQ?&0I MR\6 3F)/UTOMDV5Z5]&G8R'OC/F6&62[K4FKMVK?Q1 M9(U)^/\I5:EEIUC0A&H.\9=Y-=>2ALMZ)Q'!5Q4 ?$I5M(STNW;=T1"1IANU M[CQKZ4PB@J_+"WY*5AVISU5/HB?07F(4;AKT;#!/R/K!5O")583,2G3D7C _ M*"*]/S".L>0V<*)SS"T)1),/C[[>1SKRI#NI4STGL:ZDF? \RYOABLM9%:%1CKE[.,'UZ&?BQU==Q149&?<0$2^R3%9K3 DXEM'%DMDQ+BZ\#W(6-7294OM=JMZ/DO/5".[X3): M(C/>B(Q/KS)T'4_HAL?"1! (/S4T2S-] )?IU]VB_?@W_/A@U9Y%S.[K\/1'^7FPGG>MX>)= MIN-;V0[[">%)[F7<9=]TMZX'"QBSB.>+G"6N/X^SD+(S8DHKEG!6PED?QSD$0D/.&9OKMKI0F1J"\:U9Q>[FS-G@DW+>OAR^ M(4CH[X[O5V(_H>K(VY9K&YHS3>#D1%=S6TH;FL#PP0?=%;4UD,,?P/[!1_W=1>%ROJM9P'7W[[UG)!X: MU87=U[NGRWXV-RZ-D)X^( ;X?6>_7M-/K?LIIA+H? MR'.4>O](7B3QSH-Z2N.O&7G[2GS)6L"9!@\9D[5)?"1M5B.>(MK=:D4E^DHK MEK9API@G,>81(B><>0G.W*HZ2_,>D/IQ9[^G+FVG*FKK-"<@OMF>J<#3M'7\ MSOF["J[<:JMGR)3HRH0C3U24@Q4; '',+_360.V+,Z;:Z)N)HKQ2EDRTY._R MY#::.;.=/84/^*9I6PW1]8## 6<)2EV@F1/?<<6)<>9@*3^M M8-D<92.Z/V1HJM+B !Z_^L#KBC!.O"[R'B: M9S&$2^=EL"JO-*>4@/I#0F<)HL]CD;SF)P]DUIID.IL:+\X<>]D=(;BPNLI( M5)P,D]]U=Q/4/T4]5J+[RR9K;'@-)^ON;%[H*9EO9#I_04R<.Y P<,; 6PFM M!2N*HW; #@I3GXM=M"[QYC\,,2\[X_6VY;L\02P1C51'S0F27C'-V-EUB4?\ M#HWS;H>6F5$.F\'5AI[OY("G9WOZLAA+K9-XE6?"QFG X)5)C0FZ"X'W,4^= MD]-6R1W%TF!./+-+:I?7'"NVQ$T50M!D7F-:FVZ.=(Q&?,^*3;R;WSO/[CJK M:H]DI!3;5+7+"MZ,&=L=N^+0Z[CXF6=;PW5]; ] M9-89(>'**RVM373EE7'D,469=N?5]EB?#'@?J0]D@&0V4S.6$9N$)1,M>3F> MC$&UN[ IH[7Z*I=GS6E6Y)R1M!HD9\%<6ZEMHA6OA ./:<,*[0TRC5YKQ(/6 MO($U,GVME$^TX96Q8*(%KZ+B]H@*'''L&E'M<5HOS=>;P*,9NMQ.5. U%=PF M^N\:>.^8\A/6Z0IM>V"%Y%MC+".UBGV=293?-3%?HOFNM)KVV-YBK1:8>=MA M>*SKX& M3+5@G 1+K[N8-M&.U\F?Q_3E9)WKK^0Y8B'I405W%MUN"U22S?_K M9M!$@\:KVKT][#"FB:*T[I?S1798;M>)VE4:I3&IM/G,_/COCO:7=_+(RB+/ MD"5"T_THS@GKM#B>E>VE$3O8_J[_]O+DOQ-ZWBTSP51?"VBG*NF@'52(LJPK MP\4W,DR_(";.'8;B)S*9=I2&@K24GKK*XY**MV*7F)#$@CX,,2^'1Y+:L5._,DB4F< M$1NG :/-=-1\R0E8!'!!;C5?+Q7:BIWP2/SZ2VN7U]SR!1CXRSZE\GJK1*VL M9J;70N)7NI/XQJ4 @*['+6MW*=1X5F3#F MA^/(PINHZWJ_2;2P))YZ3>7:B?Z[!MX[Z@JJ!;O#MH8:GZ8!L ,*+% ] MEGNT"?,EFB\&,9G+GI6PD0.])BKM)N]WD&#NSBIEBDUTX7678B?:\3KY\YB^ M= +@ZF0MEV7!QNQ;G+)VK2!AT.MFT$2#QNNL!(^NZ [.(3R+2?.>ODESP02_ MRBW#F-1I?5I^?(+V5W;R&F-2+:S;(JV79I-Z+6U/&POM*H./,8'ZY^3V?T6< MGR4VWR]6%P5V,)99K-@MD>MAB\*75VDO?*S%4_,JV\\K2.PD2N(1OT/CO-NA5?3J.M=@L#)O M^I,UM=A(FJ3$3J0D7N49L7$:,&@CU]! =3[AN9(5T.6RO:BIL0Q:)Y[9);7+ M:XZ5(Y>QUK2_&/+IF1WH;JON#N.W@YAX-Z'*9LU#-+$\=X).H:3W$W5YI:6UB:Z\,HX\IB@W MLP&&U#W=TA=UC!/SG(L6DO.:KI4E$RUY+;6V1[3C$%FHBFE)1;:V6,V) ,FF MT\U$.UY9J6VB%:^$ X\6,%0']6&S.I^P7*5C-C?RTB?01!M>&0LF6O J*FZ/ MJ,!TOL1@FP!1$&PIHWF<2LNC(%&!UU1PF^B_:^"]8\JOP]K50E^E+=UT*\TL MGR'Z1#91?M?$?(GFN])JVB.ZL.RR/"96:FED0*B>(@>F(Q#)%L9U%],FVO$Z M^?.8OAR)R&21Q=(\BTV\S'J2-XI9+)8Y30F#)AKT;!SZL=7N3I"MZ/E)F>%K MV*;EVLHY,$ZE>8 MV__E<'Z6V/QLG5[TIQN]A5!]3Z\I?,N=EJ\ROO!=J]V_%:Y/ [6W*A76!#)? ML-JF-RZI/"HJE:OTTK]EM?N70_0E_&12G2ZZJY(Y0=(E9S3.5:3L?'R5NS)Q M,DP^L1XD;JC_3:>Q!RG 6'(#CLG11,-]Y#H6+,NL29+*ZOF6!/K4(#?FXG?A M^^_Z;R]/_CNAY]TR<\SS63'3TPU^D*X(DBM*B*9^(\/T"V+B[.4H:K5<[\S$ M E(:&D4PP$#>$V,'D206]&&(>3F48X(.(OAZML,O>'==V?B;J1*_@]V2>,H[ M-,[[PR%Z!O$;$U=G2SRBK K%HE5IQ])S3&(29\+&:< (UHS3;63'33[?M%;$ M9I/!E&;LA$?BUU]:N[SFEC/]1G8EM69UW2<:@,T,AXKEQ\XM3WSC4Y&S.V6# M.$0.\31)@5WX<#)YVYS;UEV2PKX5(TF^Z1NPJ=SR5."$S1R@AL18@HHEP57? MH6>>,_,#>UIA]0%&^,5\A43Z:&S1\^+L[PW9DZ=_,001IY^V05Q*]GP0@MQL MG "4+EC:QA+:CGD'R)I7%"7-@#/<@2.#!,#E M47+&@Q%A-C-#U"OE8PN.8Q.]Q\2+,STG#C0+4ANV#8F01C('*-C_\C&DK0,/ M_M92MO/=N\:\SZS&G3+'F@VS.A_+XW:Q%CO7^#2*'IO@=1#RJ6GY#B;-]7EL M7N_Q;=XGUDYK-L*7Z7["I"?3]I$-^,&T/(U"-*(ERIIHY41+WY%5"/J^5A%6;01,AYI1*;$>(E^9 M\-U&ETZ8[=>C<=%V@#:UMH!V'[&LB!(;!EO,?&2QG$N;:AOU!/O*I'!$VY=F M>6TT#;<2NJ(UW1)QN[&PUDS?W!&M2N8''%XQNWH:ZRAJH5T 6A [HH4;!7>S M^/'O=M_@8!K71I7W576V<%I:$=(LCVA^+XVASE@NF[$5HI]?TA@SBAZK \08 M:FQI/)]'L-'85_6Q@&[&L35W8E $=SF:HIB H\]$G-[$IEI9,T5[XLWU5ML+ MR,"P@&+&3K3&DDWQ-(JE\;,YF[]'TF-\N@H 0G+LLL-K@[*7G2TIA)(3/OT, MHCZ5O47-TCQ0UY9 KEBP[ZDV,0#CNL!S<\$VS\ 0W8=AXIXCRJ IFF"_(][T M[/*"U#*TGLZ1.:-,VS:FQ)9KWS#E@[3?1W.^#KE\'GKOTP:ZP(CV&EQ5F^]) M7],D?CA'VV5$,RRK7FM[RU7\:A3>1?H7IG\=*#@BRL_"]KEBRZ76G/I:M/]XOC\;#$[, M3&%6HB,_B2VSYMRP P XSY;V,/I,T$TV '22R_HEMUI5F-+[@?SNB?H MD8E=;"?W4[-)7LX%.)WJZ7F-L VP2",!0V8&M?F8J==BJ]QC0/6KSV/L D^$ M7H_,BHZE6=.]M.\:]4[>FTSJ/+8L2;4-&PAT?.^@/#'=X_A<+RD1KCM#\1EL M-/OFJ*>VK0[+L6"=-PQ-S$QB*R1BBXWKSCU\!AOS%E5S:H+MZB(Q:'K&4I?U M7"(WWJI3KCNK\!ELK)!"1IM6B;H^*+E!-J/[TEB.K4D96VQ\4KX@>N=AAONC M=ZO#2< 284_W$6$.P(?ENUJD?5WO#AL%^-HEA%J87^EZCA\VZ6JN_K2*'+A> M%[Z$6XGS71]V7FS4Z24@$,QO=* [ZA>+;.RV],)]UZ/+LXLE'UV?9P%S,EY? M6MA'=>M/5O9BWBT$ZUF]VYJ\'5NU%5=DQ-7:?0\R1(PLT70IJ.KIJ3[P M&4K!>KU$9GP16_<]R%@2/=*A2)IA ]!#ZQV.G))T@HQKLW3/ 873LKMMT7+; M8A"68._W6ZIL"3,Z9,#ZB%-LU&?9;DF.;93E(A Z^>VO9)8_6=RXV[O/[>6? M X=%47/ZHN'#W9QG27G0D-:B#)3 >'M2T;U.QYK[G1@VPY[ML -'UG:Q39);0474T=H/O9>DD MK'H5*1(78=7ZG.OT"TH1Z)@^-++EH4RW&]_+2HL5><]K,P4%'S"K^:C)US1@ MB-5.3O(;L0LXQYBZ9]:S;RQL?^I4571[FG'Z&YX7JZL,RRWF\Y436X+&Q*WY MW*+VANUX4W%ZEX,JN$X1<#-.XD6&0:<;MZC4Z"LEX:.Y70<3OK5P_2D7I@M< MR['6F15/825^02X)'NBQ59HQX<+/+%JW31,XDB8:X5[X/+(3-4NTPK,$H8:L M^A; $#33LQE_ZKM>*#)VE,;-*3VVY$V7I6INE:^6NR.\=&64WIV3^)M+)@R&,K MOSYJ%>C6J_1ZAFXBE#Q35JM7'/BB )#@?.RD5NPR,YS"L+4-"RP=%Y:VP00>[ M^V6'/,B\):'29O-Z#;=,NU"0^E9\3U)^,*^=O#H^L4M2/1X96?A.K9U =?0Q MU05+1D85OB6S5&:-<%MQZU)GR[AGVCVX;SBEA5A82%@ M;+=KU+HN+N)[K\KS5/\PS?ZVG,CS:/9GSY5Y?W(*>NGDE)*PS(]TG*GK)1!H M^79_10R'L0UIG2,]!/UNZ2$?<'+.%0"=GZ^+XZ"RX9"%.\7+A<6D;ZBQC

M2=E)VU;+5,QFCYT]JGR6&]!D60L[$XVVJ,D5*R_.-4\T=A*I.NIV7+ :+]A6 M==,:5;W86O2GWA?STI2_?A3O,DBA)G6BK3=KBKZ@^JL.RZ(-;#^QGRMN7:AB;#'F4V'+P&#B),W!R$60!M MWYG;+HA^#QXY73G1$"T)<"H 7MV6(B@^O@S/]K?V/-"6!SO>Z_1J@V91,C8Q?&"$\=^2Y1=H?/?+L*KW?CWIN>1_=(KUDL6%-T *S MI!:LF'ERT(E'S^G'[F>/"FM>1K&:TB[R)7/%K?3APC%G,9L]>J[9'[4D#D)W M#TZH*@%[ZHAS59-$XUYA-&V+#X\(EJ-V^QV)1D5898.!.>1%V>+3G?:,E4$L M)?VST]N)^J/SBX>1<.ZM9W)?%01!0-X%=NZT^LF'W]:"W")C#/TA/U#<$C M,-JV$%NC,0:'WV)IA#R1ZE'3\R::O!B8Z((EL'S0!::HA>?RM8&CV(X96BBM MB:%-HS[8-;2'((OT-!,V:2D<_-951"G\C=M/YEYD2%!>":%I%;T*H1%4R-!! M3A[HMJESUFC1S@XFTV7P29#Q(!;DY_%RWA6!4[Q,Q[>R'?9S9RJ$\+KLF^[8 MXV !KSP4!5E^&P-" M;VG2RTIZK@-SXZ>K)%;<*+&+Y\AA=:\&7P9^LZ?XN MK$>Q%.[UB\&.W?4V#70TSRVRNICQ1T FK7R5BYV!]3".^Q:N^&R,*V157?%!HV^-:]V?*P1S[A.K.%[X;OTXH/? MYZVP3Y&^3+/C"XLT)O/Y,4U42;&&SC6 M@I?2N1592J1OS*5OW-(1/DWZRL4!XF09::77J%ZG8W%&TY\E\(VQ]/W4%(G/ M1.\QZ5M:(WC=]/-3W5RO\C4$ZSIU-3$>XBQ]8XC?02_',T4P72*E;L,OTGH6 MQ#]M]BMI:RVV#I->.R=>J]?EP5,C-I&8L-T1CS?@]IK8JJEJ@S8I7T;4NF-;+I(H@;@+?F*NM3\?O,YO*;4.TPJO![S$7GN_2 M X[9!5XX0=L*F^RPQZ87P)M-@@ZO452QA!0U/#>.'?;V,#B6H[.G$*Y$1+#_]I*0/@>M J.38;H7),SM+ M*1#J6"";?-YK3M-S2E[6R['SKTXYD>TW@87"[( 4M23=%Y>'(>)QK W64=-8'W>C=/\@SW0WC2=I]SV/7L%5&F M/+VU%&:VZ/<6VCQV1L(V.?SQ4N\X_NA:O]\N?8U(]Z;Q42I=9 !/TRU?H>]W MV]B\>GY4-DRM)%9)G@]*5F9NN>/UR(J=V9;P8PSY,8Y;75?/CWW,LEH%%] Z M-FH*_ QWR2#AQX0?3[!7XQC#OWI^9)KNO$ .# 0!66M%6-Y<%>C8^:D)/\:0 M'^,6U7T[/QXI_-6L@\+?&/+KA,+7&W2I [843";(A!VW=3:6:2<)*?<@1I[;>,8F\"BQ^T9CCP_5D M/!UJ,9O]^:_4H0^4P/VI+N-T31_B/O\$SIY[V_NBD ME8OMP]3,*MEUFHS'#RK2.-_,2'VK%P<0?7K ?']P$);=KI1%UYD5; MVG;5PLKD,-G-DD5'%EQ5=( KU+BYMV35TE(/5)RJD+V2#KKW:V5NSR+^=S?& MZ)G]>_:_[3^'+WKEI3Q7$(KD*FN5U_4<0K72Q**5&Z"C_M,W:JY-8"C]"S[R MCA?.87MADF5Q7&DQ8[W4I80AS1CC5G[US!S#)][Q0FEG\ B9+B%R!N#7/$0"4J_.!MM%$;R@9./EW@Z,WW MC[W]W=N;"2*:[L"T% VRJL_&3=UDW+K8E%6'/8@(R-$#AYTUX:LA*]O.;U+_ MR?/AEP5@V:9F'>OV5!@_Z.+GP]&?3I,\4Q!D)P^(0D_5V<4RD&9J106=(]C; MSQ<^\C(A?FKK7W#PMN](P-U^5($H1P((CO#?O^&_4JX7&%".F>(ZO=)D3_V% M(LC__C4795FSIFD#*-XOXI:@[[]RM*EZ]YWM1D=!PM<8T>5V?_UXU*LSU:RT M9\]_8>@M-??^.G@';#K?-U2@'$HKHJD9P:__]J #X:::8)7JVJ9H_?=F^PW\ MKPNEE_+?OZ+6KK8!L"/8Y_8MO^"?J? ??/='^ (QI3I ^>?'?WJV!#^Z<]%Z M\,KH[U]6>'J+L>UV!:+Y[;[Z\6\O/" P92NI?"@J+0]B(>P%+J'XL#_)-FSG MUW\0DL(E%#[X?_^#4LA?=ZWG1Q9=,H#H_)K8GOK7X_4_MK#G6:T]'>%KH2#Y MA1Y\%=(I_#RQ'8B2NQ:WX8)&6<&I_R#1__8MP@?P(S_?4^2OHZL>#0;^>+CB M$]N0_UIJKC:)4K9^J9H,->9?$U'2IX[M6S)<6T118._AVF8P!'^PN&+$5((L MX8A"$(0 9"(C$%B&%#(3B1 D1"(F(BI*607_L27>>98S5)]IT="FUJ_0:P7. MH\E/CLR<.C;U'__RS4J/+:2X'M-CN;]_3K83B]TP.3;/=RN]"LNEF&8AQ0[S M9:998E/Y5J-1X;A*JWF^L6?>//2'8QV(K@J1[=G63:IPF[]-80A)9#]X;8_C M/YS:4[@?Q?;[ATF]: A7R/T'PW1T5,M"_QY9B8Y\[)XD5K>];#31E #&^+/;'4M1M]KO^W0?AXV6@+'"T]MVA$XHC54>7^M5,T#:3@8 M*;0=5HXXW]DU&'9+/N[QO NX5\H'WX1*>/>FAWP9'4KG_?-#@\.&SBDDL6U, M1,.PO8F]_G$9MNWXT#4%CA%TP=QVO ,.'I>;PY70&-1X+/!=P6M)^ 2=/H'C M?GDX,+5!BJ^DN,"$V/SO,4WT?_^3I0GJKV=9_**;;8[OU M4:K+MEO=7JK-=SF>:?92O58*JMH>U*=;R8OBJ58WA9)_R']NOV@54[TRFSK0 MQW>ZF,GW4JWB[KDL3MS><7.T)C]#9O@9\="YS *R:DC:O6 M?7^%QWV:L%-5%H, .@W NA#_MJ-!L=NHT0'WJK5%,(?&79^O(84&NFKFZ 7W ME'M?6H&J;P'HG-VDPB$E:OF=%EFKFRCH1$'_AEWMB-8VMO!$0Q.=:;DSFQD! M.V@5^&P!*_7+F<[[-31QW1JZUV6:7"74PXF*CI>*?J\,W>MD[XXG]DI9<6PS MM:7-Q_P[Y=D?^KX'[[[]?@&1\QIW>=LT-3?,>4DI&E1[EA^FIGQ,P(2--A&+ M\+7-Z*T' KUEC+ICT@(BOZ#SDXU?E?6L\C:C#4'0-$Z@!/GM#;:38F@7IW,7 M3#4WE%=>6"=_0.N5YI*Y68D.$#^-8T5BONY5R*#X!D*I3 !E2@@$!, !!'#9 $@*$0!BF&T+.VV)[9/]"2API3SZP+; M#?1\FUJ/Q"5'6KT.1!'RN.64(3"FEJ^E=:PRK;9S2-[ MNAAT1T-C-6G-$48@G_;9LCK9(DX/URRU%M:\OH:6I\I ;GC24O.9FBA/)@C/ M-575JPYGB\YB!5ONWWZ:F_&(B]4M$X1[;M)V5^^!"2/ZGKW_8KO;&7WSP'PZ MM*>V;9 GNYL/'9K'OHJ]]TF(S&T6_]]#P%W$#'Z;Z'KLFKCA\3QSQUZ&''GV MZ,-6ME4LZ5[Z1.J[Q%B8L2\&TQ_.?LO(<.QHG(Q.*&S L MKR>N*[OLK.V%@8>6%(13ZQ49XG**L(V9-06^J!=TI)U7UH4TA:]%=-U![QXZ=+J'@X\-3IQ"L MRAH4TW[]L^XHN]C'-,$ MG;$R-LXSWRL$\L6M+$:6'>"ZN__4-0N@=Q;64D01BW'=&5]:E"FRR$RMTI@1 MB#<:]1B.(*GF;:JH 4-.<9X#@'>3XGS- _M .X)9;/3.[EY)27BPZ(2 MN\6*7)R6TX8OTRSI,/(Z%ES&]05_BF!6H*XK*"&T:T\CKR]-M@?6SRS85MFAWLC4G1Q?T [\]& X/I?]R4QXPP%RUK?VN]$T*,H+AAQ1-B0X0H<"2 MP:_4?AZG2XP_+KVS'=HG#!SAO;B+]"TGKYU&K^>,>0H32\56R=;6^-MVM3'T M> +BZ3W\^3&;^W4;LF@[I-Z3S7TGVV ;G%O)('FJB[21F2OU[;>9'32!I$GJ M!8_HLP']NP;$^434+CD*?;(#PT$EXFB>!GO<;DX#!\BIN>^X?KA+[=DIV"(* M<:'8'Y,_0Q44IAHQDO?KW$O[[!C/MFV-(0B.RY0BB*)("D0&Q84LEE$$150H MB4 5!*]W_]9=;^B6 BNRO M"92S>GH%Q_!J4>_=[^($CM#WP%_[1,K+%O<^#VCT#5905(.[^_>)%E%"H"L@ M$)80Z),(]!:W\$16VOV^351^[E=G1YAG?MX6LY^, 92\ T'XYT[6VF<"P3?1RZ?(5\W M%-47V13;RQ!VIPONRQ @3BS09^#LL"6?7HP]JCND.ZRW3Q9_"2?ALHQL1]]* MDM2^\U>A#8-?"U\+0U^>G9J 70/8\2[Z=5<7:3N'=9&[ M:-A!$&U/\C!"%AH<84ED2H:_0ELN;#IW@ 0BRP[%MGU$]?!NZ@_8,T1_RO6A M/>*J=E@(LB_C\U31>SR?E?APT%'!5O3P;DI_WJ1$2T[]@1W,>P(9"3::S."L MPH>B]O#)<#R[SJ++:J.11,,572^51;8]R&+@WC[,Q-["X>([AWG?<>"XMJ6^ MH5SW1,]W#Z+(>"T8XHUAO<'70,,%UKK7KY8[KP!H!-SG./.EQQ[._4G+YSCA MKZ?]9++9[/,=/7GE]M]-^WP#R-)8K)CZ:XJ>D/,@TYF:YT%>!09D/L>V0@/! M"%( &@M!JA)*:%&*MG,+HB>FPD+(QT+IOH_#^'S7-W99801"AB*G"Z:^(=Y+ M+2[=2_WQ0(YA.':[:^RI6E1W-@_KSCY$4&UG<2=Z@/OGY\B4@R4/5WPG8@YD M2M<=57+^NK_2J?JX)$TSC9RS6%U2IGR:9$EDRD?LM;U-:D"^%%,&?!ZD1$F" M4@.B'G)0R#).J-J/?IN"@$L?_<$UH;B!;W'V.A3RE EG']R$-@WL#FK^<*S3 MU-2Q5YZZ__D66C<@&IL,%,V* KY1)DJXAACRUS,CC'Y%_[K9-WNUP;/CNVL8 M6C.[QL^,==]EXHH-DEC^WW+0_/L]IP[F)]R[,Q9-@!_HQ[TM_<(/R@S M]7EBR)H[-\3@EV9!FQ>D)P9TTQYP[?UT<6K[^*M"-"F0B%EBUL5F%Z_,P7.$ M5R)+*)+'H6*:VDYPH?3CT)YU\KMW'!A93:'1):JU>4G'D&Q6\*;C-EUXSX=N^1,BR/STV]98LD9EJ"[YC2\\>_[',!S1AJK_U82]%0\]N1'A825TK"KAA/0)NS 0T%\[O MJ5S.+O!EI!&"_)MN\OMO,1+NT5=\(4EAV M>UO)36J'S6*4^ #%5GC#9@2]M]R4^^!*%\LW9=N3@:1!I_9'RH4Z%4X+>0CL M$Z]N3NVZR1NE^'?U/;&>^YW7E:?RYM4\3=;8KX76KX?;)X M>)MRV,E-:@44.K@D=C<' M+ +$%*2W)8>B JW@7Z*Q$@-W9XMG($NCCZX!WW[WY.F 3?MS-"D^N!W[?]<"[6GV%IDB%1'&!GF0D@2!Q3!#% MS$3 2)'$ $'*B"3OJN4OY9&]8I6^>"-!M])H=2MY5+Y5K?=ZC*] ML]XK^V97\DWG)6S1]%EW##]3^P0RA!+^.^5U'&?UIBYZ]1JNRJ4!^1&S>9-,.KO1$6GL,TTQADA\C>?NO)8VT^U5BI4FT\Q7F'JE66QU M&Y&A+! $13_ASF>]F3M^=;PMOU;"([3W,?V*M0U;W5T))B9X3_!^/;1+D)@@ M\;=H=R=G*SVV@=[)6:['P,]LL\<)&)K%P/QJ:)<@,4'B;UU)_CBC(7TL?A_^@SZ6T#FF#H4SRY59ML?]GCR.-BRQ MO_)V^.XPJP7^%;G:48Y\3C2@@ 8I3@7 <\-+:*,]8@ND<&2[1QR5V1: !,)S MFE,X&GV+I_[@+=&7-=C'GZG#O8&$C3Z9C?"OS!B'Y#L,B;]EHS(!9R+C8P#E M.QE_;W>WH"V>;S782PCZ>_L[E/#A[9(FN#O5R8-# 9&@=[5U:G>NRS9W\JDN M>"S^$^D?(P8COC++)-+_NL&92/^7I3^4_>V/T@!A.K #5-@N/&(LT0=?E.7( MK\Q$B3ZX;G F^N!E?<#U6OE:N54OL%V.[?"5WNCR>B%*IE=M0P:.N\MU3[$+ M'Y(ET0Y?C@&IK\Q2B7:X;G FVN&I=L@S7+E8;PTX@2)P B,^P$\07355-.S5 M_1G@B=2_;L;*?&562:3^=8,SD?I/I7ZSU6-#7Z#5++!-CBW /[A6O5* GD+A M,'WG7=J@:7MPD8M'$OE241\3+D(16+-&$FBSC6#ZRN)Z.#ZQM9B;\W!]M00-Q'),>(:+-ZA^$0D7S.XOHE(QCOA,5N: M%Y5P0K$'/QJ[3Z',-&S7=]XKDO';U.%;(NEZ\)[4W8O@I)B)[7M0@CLZ\%)= MS=43B1LCIL#C'=Y.).XU@^N;2%PB//_%L0T7BL&V8TM #@6?@"(X2A^_)/<- MHI:X3>V[C\3L_0L2.1HCJ"=R- %7(D?/6N N.EZET@H/)#VH0A>R5(;(9GZ\ MH[Z]DV*VQ.L?R[6$SF<8#,>%L$#>Q:M@ZEH1(9F=)DQ-&5IDJ(S[S5E MT=M4U'/JH.O$B(T1OG'ZBB";",_K M9P MGDC/!%R)]'R?]*38M0JGYKD"%>;)(N^5FM1M:M]C(BMC!.=$5B;@2F3E[\M* MKE)J,CV^RW)"EL@@"/5[@I*#/RLQ\\_&T?& MB(.4^.U"8D]/F+_L?3,9]!;-/'/?3'0U3.K^SW!)DOMFOLY],R@N26(6%P5$ M)A2!($1$R$P05"!Q+(LHV0R:D<+ 1SB^[1.OGEI]OHM3#F]^0M$G\N;%P^OA M*/>'8>^N*;P;<^I^T-&FX4O]G/O2F@=3.HL(W5+E]3-N8T&6<)@I]"E%[@;\ M*D&X*R&((&$T3B*D(H L(0D$@HG")#O)"I#;L@HI3S(RC3U@K,>'8%Z(8*?L M:L;EBJ>S#ORNKBQU6%B6VBU[:KON<9[ 'Q4KU5-M/TQ23GL$;Q;,&IVOTI/^(&Q) M/6Y9*?'3("]U3(3SZ^R,F+EI$N\(F( ];CE=N^T^-9BB?-ZO(?/,G/69]12V M)!^WG$M<'\G7<>*9HDEJVCP3==7E)>UZN9JX$ MXFE+=F13/HW7 KXF+482M9%+VFHED$=:KG/SOKZPYDB+MQBU-Q_AU6 *6SZ9 M45GM-U5:# C='S<(U,HS6;D1MGPRH_XBTY+G7K#D08G2L"DIZ_,Q(U!/WUZP M'(99(*JMY[/SWJA/DM0XSPCTTY;+4J8A&PMOI-?TVJ0TJS?D[G0J9)ZV+([- MI40.K3$R6 Z[,CEW SO-"-FG+4FAI=J>,AGKB\6&8;3UTBDZ*P%%GC;M#2S3 MKC77$K*0^5I]84[+0PLV19\VU7+8HH5UT1(+>EET645JG17'""CVM.G,SS9: M"Z->8S&EB35GP= ;C:;0%GS:U,@W-W/865 MO:[R5,4CJX!>&AX)X7R$^DZWP/8U.]=!2LZH.%D,IMS C)H^(;_D>4AU(^(F M:RXZ PHKY9;M:=3T"?VG$QKDV1(RU-.&I"RI-JL@#IS6$0"(SF2:KC1SAJ[U MI@I=&"$&BL%>CR# 3)<""71(A#>)]8;KE M&O0=[/0(!ER.6S0K(5'B,;B\# MU3#]Q:03-GTRK379ZB,S8S3B\R;+FQM\/J@NF+#IDVDU^JUZ;CE%5GH@VUF/ M;9O:M Q< Q9O"WA3K&;85MYPY354;E4L%<"=@19HVF)2LOI7!U9S-?=67\X M,ALH%"E'D.6,N4(I)^)9/AAKIJ@VK#(Q8@3L"+)RU;ZWY#)#&PE,G>CT;5E? MVE#\'$$6!0P@8'VOI-?8BE[SNXWNA(=C/8(L<31#^'+=X!& B;E.;I;ILPO8 M] BRI)4MYPD_Y^KAC>$3NL$6LD4XK2,8R&'#%<\.]+5.3>S99-RK%3(%.-8C M&,CF9Q+3M=(8T@*+2H;6$7M9AKT>P0#G-%!\3>=]?=!,=_5Q=:E/9M/P"N@G M3;%&?EK2JVY&QYC9* @,MKVVIN&]YT^:-N5Q22D-\J1N:N1R@ P62R0+FQZA MUAC'C0QH%8>\IM:KJ&W32 4N<#J *.4 MI M&[8L\'R%;^4$O8.HH_7"ATV/4"MH*FAQ-EWU6+9;KC"KL.D3WA*-5G- M^'Q%UVHU8=98%'&FQH1-][QUB?LJ1=^S]U]LPQS1-Q]\<26-W-+T=5PQ^$4N M=E2A19N&'4AAZ"=%_VJV?IQLP[O37X2O3QKEL+O2N7OL 9;@?B)UV9?PQIM M[:@KOEM\?Y3JPVO%$\9)&.?BC'/5?'-X0>%#WDGT;0S%1N9-R1';K(BG_WXB M)"7;")?@GQ_8C]]E!.R6O&I&"$L+KD5YQ!D%Q.?JC#/ #^''+Q/I_SU'TD" M0%$^_62!EZ;-<-QAKLHY\/\)*_!!.>&O&$S?;]X[[^%3(7_.FH\$^0GRWV+^ M?QG@7X'-G_<=!VJWE.BZP'-_78.Y%@NDOK(M\#4F^=IV8*R9+P%P N!7]HQB MC=^K<90>%62%_Z#85KF$EW:%)ZI*X1]@X6M+T=A6526VX57;AO_S5?V<%!X6 M,AX4>Z;^UM9PW%;1$:7H0"#?TKQN6&7(PS\$SH/X%AU9X+F"4"176:N\KN<0 MJI4F%JW< !WU.S]243;B>OL4XPHM1:#")-(P1B8T@2EV!PH /(:9L[Q:<6QD MMOJ1DH&DF:+A_O,CC?](;<\C^N>'MO9^6;XIV][N]Q\I2S3A>OAN>BJ*\U\A MRS&6'/Z'O>R+A@]^I%Q()O@4['F7DLG4++M%KH<.@LW&SK"8 MTX<:$B;QXV$0A[[!*?SOGP]7(O'P$BZ.I\_V04R,8F%^=QCB%&R]8Q)Y%5C\ MHC''A^O)>#K4/IZ+::^"MK35P$32CN1J:671[B%A>0\%N1BE;V@Z\P(7Q]U= M?6Q>,)(4%=6E'" !N$@3 ]RD+. E/D!L?8#]5LD7\$VOW5+HWC&-VP3>+@YT M1*9X:TI2D+I<9-/N9-D0R@V^- R+]J!ED,ED;C"*OIQED'!@K#GP.S#@Y;3\ MJ1QH%1I:!YN!+N^/4=)NH@MO.>Y #H1:G/;M6CU<< 38,)[:+4B=^ MQY7['>>V KZE]W&Y$,*.VP::I^9]%Q( .$S(>"\*J3'ICDLT/G9U,5"\17Y M3:E-1Z C,X'&;Q#D)=2$D;\I'U\PBO!;C)RM>YG MMS<^>7*?+[0N9GSL^)'=LB-CR=&-#)'4)/Q\U?S\^7/[?':^G WR>_R\+C4RZ\5$E/DT*%9SLWHM MEZ=#?H8V"(J3-QD"^:H1CTST@I[MB<;%+)#/=AL2=RF)>\3/]'A-*#'!;*WP M8WRD:^W\O$RM5+99"\\/#%,D;I L>H-A:!+C2)@VB7%\G'WQ&M/:\MKM5,=- MBJ5D?RRD2U-DTIQ"I@TMB9M,AKS!\)=\@^N+9]AS.+X@BF.$&9=S$RY,E!:1 M1#"^R:[LM]B6O6 $8LM!;4.T/.BPL'LF:H)C B:CV_46[XP9/>AYQD!I-!TB M$YT5#,T"@J!N<)1(8@_?E!._ R->,G;P)DX<@<:H1#3<)F+FT+5H(F;[+8%\^3:,'E$CWXPI0!1!Q: M"N^"R(4Y(L]PS:8(+N-,V/2*+N17K7R#*G?"JP5"RP)#;Z(C5I)P0\+L25PB M=K;+6YD]'01BV9!*N)[.-*N=ZE0N!?@T9'9HO. 4:R@_:8;%36JX'B15>#4J>PZ[4%"J)TT91A6].T!QPS*<9(DK>38HP/V[&X MS]5NVI;T;)(5*1=J$[/=D-@: 3J%:;=C4YGH#N*P_H*ZP;,OE8PE'/R=.?CS MY_;Y#'S!;8@3.;C!YNH<6?!4OI3!)YEN!>$'H55!1)$(Y(8DSK_[$)- Q&'! M15)H<3'OYB&7XY#+9=L/]W\^181=]OS*3Y_KYXNT"U=I''.,5HXZ:Q+,$(K1 MY:CE;:9$P8$B+#K"DKA!B.Q-)I.<09'P^EFC')\^U<]G]4L7=QSA]=: SM?3 M?H?7S2;)3W)%JT);G9#7PVR)FPQ&WQ#8]>5+O.?*H7J%R57JE5Z%Y5),LY#B M>JU\K=RJ%]@N%W(^2O^58CM\I3>ZEFNYXB/BOOHD/STCXU.FG0#XRTSRLQ,8 MWC/K*W2>_[J_-\C0Q&BB&CCCY4&?/;D8F=)??=YQW.S_1&WT#1'PC9'_E8 ? M3X_J^8WEN\L#YF(0'L&<&)2Q-2C/&*S]^M&8RP5>=PS3WO++\T=N-/J5!MN? M;6C$E(A"E32#RJ(V%=#H-#XR@]]05%(1_PW9[SMPWP5CH:>RW\9E:;'44TT= M2,VZ,1]TQ[DZ$[)?>%T EKG)4MA7W5Q-@Z.'35> MWW%?\+RLFJ(<*"A#%V,#AJGB@W7 -38K 8W.U".@J9!Y\<*RA)435OZFG/RQ MMP:30((\3,M3N==7*>58.0-9VP^D]_PC16)6OE. MR+M1&C<*&.PSYN:V$U'15@[*VF4P24Z_2TIBDZ+VRYL6=B[S+D=;;61A XVSK'F&7*T$+#HL+Y.]P>@+'HJ3\.]5\^_GS^WSV?=R MYL5I_+O1JWT$+15(/3^HLGE36&=;V#3D7VA:T-A-%CG_K3\Q"5DHD/WT!LB0]S0+Y[] MF;!NPKK?E',O:%J##6//@=6/!C(@@O\J!0RF8(8U,;\J+54Z?E M>3&])IB0!\.S=C/D#4Y]\1L%[YXV_(?"_,<-_ M4W[_J-L'3V-XG1LVM'RGG-'SPHCH&X@Z:LRF(X18'T MB!I>7PD8%9T*D;TAB.10B._*B]^!%2^8;_EF7JRT\"%2E0=5Q%R;J_*T-C K M/2;D12KB19(Z__Y%K,(:CV\52M(C/O) \*^4ZW7*J>#?,?_KLG<2'4JX%X,8 MFW1GR'G30"]E;1\SB!73";,XZB;+/HU*DP.4SXO8LM\#\'U9:54DI+^ M01F?1V20RK#H(&B-TOS"R=J#62"5I#J40=%QF-@-32(W%'G!(M6$=:^:=3]_ M;I_/N1^2\7F$=:WR9#/&J^,6XCLB4N27^-R9KD+6#;=$;LALE.[YM4(E8:6J M;9J:9X+P=&Q(KX@@\(W DD*;X@\.@%33]D *Q?],G*5DP_XO)#7@?JH"^.FV_ M"X"O%K]7Z"4]O7+ -.UP\E#=1'H&^^M_7G:%MZ?WO:N%Q49>:3E9F5E0D6^LU/1@Y^CP6_%!"Y#A'51),FN-*^:XEZ8-X4.T@WKW*>OR&<$05Y[S/WB M@\Q*<3,;\#5__VH[55JL:,Z1PO[LBW5V^NE5&BMQHT1]Y[(_/G.+R,PO[1U7A8Z5J7$\3R& M%N:#GM6IS[5HZRR2C20%_/\O",N! !GEVU?=A= (@>^!=4:Z^U72=4M.;=(B MG:HY4.;%IL.5Z7(_/)_47'#K5<\+?B(PS9*0,Q?&=H6L!::)>!R@Q_-/7MYJT0,!"P#XH7L_9 M;^E=P!;DKFXA7;$AE:LA-U&V89ZW8\!2;P,V[1'Z1%>EZ-O %A0K\H4-+6?8 M&559&2"M#88[4QONA._R4G/Z?P=0.\)/U2XEDL<3(>USK&:";+X+#8\:/B\1'@>,8V2W^"QYU;K*CD*B=(@_((7:U8 MJM2?AP"/(.V,)K,,= )@5&#,]H-3X#C MCWCC5#58!A:X]RKJ4T,U7GM=HXC%RD+/URO(SJ6E\GY(XI@0Z:EC$6,0^4/H MM])C(90AE!\4R>G-QAN\TR3AQ+0#56:Y6GMZ'^L 7?;7;9DE MSW :O_LM/$?IH=Y)P_% E1-AVE.VD6*+-AY]QRL:KL+,QGBWT,M)]?FN2$ED MSQ\6(@U'')[A4:]4 CC=ZY9[EWVH &[@L=[Y\'_6-M6G4@!(L&YHQ0I?D^K, MKCFN3?,<.>2 @ =H9BD>?.?.PFI/"\.X/WT/02,L,"Z)[#N47I-H> M 5IS@HFE7T>!_>^Y(C17V-CU5=4E*B%QMO9+>DO#K7*OL2I04K .PNIFO-[. MT,ADB>M"$UF$8+/,*\X9!#,$$MFOS2K4U]HE% MWE#8$( Y,D+P+(/16>+5=R@_&"'_]96(AZ=BD678>FZN ^Z<")$G%QU5C[CJ MOJAL93@774HJ] V]P0,DE+^,[F8)C1TOS= W\%EO9\3U6R; 56S4BFRA^ MKQJ7;SH05C,V7_^)?CPM6[5TQ04(F_^M&=[*4G9?8HH?%_ $)XS^C). 7M%' M1_KAR&<,?'3$((+\&Y#PV=0_S)=3==(JSPAX) P6*YB9GINXNF+FE>[5\4*U1VWG&K#/H9 M99XTUI=OF@D'2V(_$^B_,]]_!21)<&VI;'//J'949SE+G_I?#O_JZ:-8$SU] MYGAQ MH75[<4\ #K!<..+/>=U1<,!0KK!W93"5Z?Q:K'O_/E'R4S=X%V^U?/ M45_ \S )^#W2'I$2LP[3AH?%'C^*' ,@>^"]6@$HRQ@%1^PJ/\[WQ%22PE7T MF9?\[.Q] SHO^?$:H958,4;6%D&1!*7(*$ZK,J'CFJQ,R:E,LPA)DSJCD@KS MZ;"^P[\0>UR/;_*MGBB4JJV"T.2/?WT1U?//Y(=O.=)W$NG^Z"_;W6I3Z%;% MC,AW^]4"+V8*0K56C]\]_)!57DF^LL"*TBWQ+Y8K2^EB@TJL6(I,7, M=\IFA%+F0-L4K?JOJIWIS9W BVP!+YOAMZH>0:.MNYGX_6>&6T;JR/?^DZ8E M2[82:)&9IIUZ51\^J(_PTR,G@E%(1L;8Z =!4A.9T754IJ<4@C $,5$H] ?X M199,8VP7@E&;%,RUWVPV,2]H!...'%E:+T>:=B@6EN&N(QDCABL$X^4FIX;1 M2.;ER)RDKX==#I/-^F!4=[=5;]WS0QE+SKFIC;1VLU!;2E1?9TOY[6AHY,#( MQ)S(*J [H]IN+@EYK:EAFS97QR.+*SDGP95+^UE?[B,B8[ >SRRF^BYRM&3R MY4A[H*YT5-O/^8"76^.NHPP6'AB9^/8PMW1*9D@&R)K?FW6J;-69*OAV-$'0 M02-/1G;@0.>#^5BUVDRO8>H=F9"1ER.KKM?!>QW3Y^M+I!+6I_-@W^&BD8DM MU8>%5:56JM7,':&K,LFT#(L'(Q-;XL:=[:0ZIWU)K'!LZ+?$1J4!OCVQ)8]2 MC+[1*3)(KC/J$;7=JB_$Z7-:$4/?'?A%#-ZN^1-FXP:C( M>BN60S T(=4K>;?1JOZ,D816;4BVYV3#PN-9DV)=T)VP9Y% 7:U&)9R?R=1, MG$4N9G)?36:%[N9BX$2@'C1'6+XQ;3#1T%>$@)ZTP[+>:DE\P&T6 Z''-BPM M'IH@@=4;2)/\*)R;ZW$0V1C*O#@RXJ$)$@2R;S>Z,R_/*TXGOR]T76%$QD,3 M)-@/"+:?"FCEM(K7&RGH_F'-@:&)?B\@/86@J1R!U=M+4W'IU(^#QK$D5/#.= MO5C,ZV:9<2O\C&XR)!D/3>QKN%GOR3&NSI!VYH;IXVO[0;D870 >VDGH;&[N WM^H0M(FL;TM9>?J7IU^>'__ \3@Z(<#. M5@^6_).#&OL\2N [3Q\7@QL91I1ZUX,[>NOQ M%S\-52:>8P6^?F;G[:59]FQ@])>_&M]\[H-_,*!+$I 1*6 $^IEA("/2P CD M,P8YD09.0-V4$D9 W9061D2ZB86<2 $GL,\$#AF1 D:@\)!("2.0S\B;R6V0 M$]!N>BQ&0-V4%D9 W71:3OQFXO.[\;[+[1HD0B=N9"_4.>1M;7!;-% ="WSX M?Y_(3[\B 1CUC@_YX=TS'[R3[\U=7<\TH[^8>QG>UG0M\^UN_KR^PGTSGOQ, MIYOQHK%]B^U0U4%5]R>J[HJONSZ*B%>*UD-5>#)5>,^" 95E"I4EDR#!6SP^ ML#7Y,Z$!ODD_]I[T_]0MPSZCU$T# CP(.YEJ?&0QN&XMG!.( 7XK)V1ZQ0#] M3%VW&A#4!E ,SJ(-_LPLNG9ED*Z^T>W@-"4=@31?>S_7>$D<>X)7WO=)W@X? MLJ(>K.YL,7 5, ]XRG!X_-]SGE4"J"]K9-=M<;XTJ*KC0HM1^W;O(U5H8[R5 M7&<)GN&!/0P,?UX(O(@UNLMO52L ].4\3X_^3SL4;WOYGE@=C1%F7U\6D4&! MV^3$16TV68+'&'$Y(Y+"LS1ZI@+3$.2W#W+VX4&./P8DKZ;,-4NXV M@Q)MLBA.&O5M7V?$\@QHP:E(?*4+/T4"8.A8L(%,_B]%LU S[HGEQ; MV*\!\C0HMQ.!'+E.HUWA6+=S99#/K/ZH M(J#V@M_UQBQ2*\^W$WL6@9P%U9=9FLH2V%O5R>!)#D'^T"!_<9(K[75O5POI MAEG 6W;1J8AX=7[MDUSH6B[5VIH#?J>LMOD\8K.: MO?[FTH3K\\83?@O7)*Z;#E=I=$R]7)&X=4FJ=WH=^:G>,4EE4?0M6R.]MYKI MP'7L/MPKKI$4]*M)!:XO$D+X+5Q[?)YJV^Y@P.?T_6Q@[D5%FW 1KN-( 17A M&L??:G\+SVN(:XCKBT0-?@O7_MJM[*25@9NYUF"-[KM">]D*(UP?@@,@SH_1 M)^QKG8;$@Y=])\NNXWF9E>M,#?\T_0C2$.1[U&O*DP<0'C3">9&800R]=HR\ M5Y33P'?HQ9RO;GFJL5XQNF\B$R&4XR8$*$-E:339'A+B%^(7YAI<*C;P-GYG M8:Y8Q=9YT10Z1-Y=Y19&S>[(<=\!E*2S&$7 #()[NUP\N>/PH/B]2 S@;?RV M[>T"X?/S%A_L1WXWWS#$87X6K29R^G$,R2+,&5W^:\LQQ"_$;^I]_;?Q6^TK M-:PW)AD)\U3&H7IBLZ!NRF9ENZZYBQ=T& M%6UIV(;GNW&AE(R^78'&/-[I7/N[UT-G+J1Q?J?](33,13ST(\+*!WQQML;] M@"[^ *[7(HN:-9I1MESCL5ZK6#41U][60<\$X+PC2!9%S]0_$"(T]0A]L\+H M_2'TO#[X'R.T-Z^8;=G %E*NI';VW$1OH&@G0FCDGC-DEJ3/U)/\82[J;Q:@ M;Y>RNR. 7L3)_F. :GI%+O7P]50:;-NF4MF3=;D+CE 6Q+^9+(W *W>(T(= MZ'G=Z#]&*-U"*H&L\S-IX+OE9J._E;9#<(0"#QNE\"S)O'6(WN#E>31GSU5L M[\AFX&_')4EU4)G!>VIN"^-_I[Q_NW;NS+7I\M.+^&L3)A4:\B)A@'S@&;;N M>05G.3'L^(LY=1T8AU+#W8,& )E'WFMOB0?U<:^%U@E$%WM3=B3D1JM@)C,@ M%$#"!X:/IT,N<,=_[?VF236<-_[P(=70U>GI9KZK6_S WW%VMS73" ST2P4Q M"/9,$4*8'I JJ%R;+C^]I[PV85*A0RX2(OF0#ND$S>*JW%)H9(V:!:M3X4FT MUXET" B39!$:&A@/IT4ND,1P[?VF23F<-SKS(>40J'B EQK5#I+#)Z59O3^> MU]$P4@X@0H-G2?:6*Q^\?,D@K'3 &'N6,6S56>HPY>%!+E1ARL,)8QW?4%2- M0=1PO-<4B[;*ZX@W[G!20(QW=1[;B-9J)K,@J,%0D=EQQK<)$(VI1B-,;SAA M>.'7T+@IS(HLJ_6W)E7?M_6RF-_P.D C]>DKC61I]DS%1& N0]K1^&@WI>=U MU'\-C1-/Y#3/""F^@&*CP%OX COA(C0"CQQ'LC@"<_\@'!\"CN=UC7\-CMU- MJ]Q!"D))HO(CRQNZ[:&FA1$<@0_,L%D&.[T3?.W(F.#/=??)#?[K^ ;@/U]@ MY._&GP>G*?W@BGKL*I2 DO]@^T[C"_HK23Z\,WZH?:?Q[2K4^5#RH>3_+B5N M[0ZOY+AZM*J,OE7GBCW3,S/%L+,96_=AA"2UUP=7\TH>(I1RD5N_(^X*@>OJ MMKI[]LBA' $01%;R>C29_GJ3A4*WP[;#I<9)RTYYU2-L?+G;AC**@NM FCK3 M2TH(YCO9)+PT/.VEXZ^8ZSR,P!FZM-7_,URJ/ J M,65W%U>SH!\"S!>Y<_P8F#MXCIYU!SZ#4.Q\6AEV!-7=Q2=SG!Z,8_!LAG"& M<+[7'X+S"Q6%YN1U736'4J*%[CU>J4GPVQT^NLSCR5KK_#=YE)G)\7[W8 M/&V X '#7JFXXH&URV\H8! #L>78SH\Y&&^4<[$)T9'\_1S1Q;VPSNWZ@X42 MJ2XL3AD^HQER;;&&<+['B]@["QG\-IQ[2B[?#T.\;.;"2J?2:[.RT>D .(.< MXW-V.;NV7#_J;=Q]ET8&"/[KI@,%[T(XVG8TY2M8+DZ1L9C'S,#,Y6O;T*+& M/C6/LH=.0*PCE\A;&(EVVNPX! MG@]1 H1XJ_/(K:4,5".^N+KG/Y4ZA]D"L%?RC?1 /ZO1<9$PP!/X?E!)SW55 M2_??,CUV"V*U4<=^&UG.)OMJ;TF,5_-(5>%QH70ZB^))3^)TY@<$]TV#.]V- MT"\![O,&!3X*[M&84/SUL$"9"CV1AZXS6?!]#H ;M$"CL@R3M$-. ^Z'R2:X MMOR?UZMX4'!?)%SP47 ' MG>8HUY70JVFW!!>OLJ*\8G-^B/1F91[)R! PAN M".Z;!O=Y0P8?!3>38YEZGF+V2,Y>#XW0\/L[+CZYX\)A9!8GV+?0?=.9!LPQ MK!#G&$SB; S0'QT /Y*#Z(_'_(,#(GQE>\KN:M>.#,+;2IA\< -1AZ=Z#R77 M61:B=1AV$-'S6!#"L8])5(=Q/8!0?NN[2G3D&+;B[JJ^OO0B=0AVX#IQ]XLG MC?F*,A0J.9O>NFZ=%]R%LG*YSMRV.S)*@!@%Q69I.JD+H3Z ^@!F+UPN4'%) M?=#2:H9)-F6+'ZPZO)CO[>SV@ /Z@/KTE22SD?4*LQ_@C2F\,;UB;..2^F Y M--:KQC3LF%2GNNS:'6G;7;N M//'BJ*J.P=V\;NM3X]7PQ6#)])NRJ4B[%EJO!(*?-(- M+VH@C&&*Q<4B%[\"X]+::_HV41@C8FGD5>P-WF!H#L 8)%.0699*5I6&R13P MOA7>MUXLX/ K,*Z/D=9Z:.IS1)@'I9G1[[G%^@S F(U.8SK+TC#A$<(8POB* M<8)?@;%1W8VT44%DD?I4&CNZ,5X-U!# .'YB064)^LWC^ X2)%JZ?W3]83#S MQB\[85GY>\R2B #Z9F,,RF@KJU)M1IO*>)?C.S@J3T:1#J- 8(!@LR1QIE?< M$.H/M6^8 ''V,,)[4,>QD.5&XRW+E]5.8]66@WUCWP%0!S4=V2R"GZE--$Q9 M>*A]P[O,LX<:WH,Z4=6%=5 >U_@Z,^9'[&+:4\!_5)2=DO2*VD\%BNV>W8+J=*3GRJ@R $@61QXO3E(.]6OVR,""C 4X)ONBW E 7Z8"^=[W^35BX=##0P%^&$%^ ;O&*,YB\;& MB/:E>9F5[D;.UW(9N6W>7'%U^,CZ#)D7? M4TV=9OCM^\J+:(9&'AVMU;R(F/K *U+JH#Q:@;<,#+C' M/)]F@+>8Z4++.33#3VXSKK[7]&B&/[W>O(AF8'>-&;XN+09(3JYNL+#!BW@U MU@PLT SHF?(;'M5F@)KA^GM-G6;X[=O0BV@&&?.VN3F/>F8]/VVT2[6J,*AS M0#. 6])W5 .\(WW< .>#7#'!.]([Y>VC"#"\([U3WCX$2F_ZB@EJ8"C -RW MMWE'^L_DASE#'5 D6JFE17_)*ZX=??WA_C3VYK[\\]\)#'? EUMW\4CSBL?5 M TK TM^ZMXL7M'3>$ )>%3$I_%=#]3Y4/*AY%_&M[DNR>*Q#WV[^J>YFMAOW*T^!0V>[E-C++YRF3IH*9NVR^9\B=KV,:GF MU3NUP4S&T$-J)GO&- N(YYO%_7GM2CO!,_).I0/C><_S8L\!YX#3,@SW85E(VM\9_ \ MC0GBC@-X9C]]12/+"I[/$,\0SV?)9CP'GA<*B8Y&ZXW/[ZQ24YXZ@2XKL;U] M2%ZDWWKQ<(.7FR]C D7#"GQ=@T\_X0,O^/3S=L,)1QB_HN#6G%.>B6%%DPRI MXA)MAE\W1AT9PXX!!12^VX"JX*0WN%??:^I4P44C$3]7!4B9W1$(K0E\P&WE MO5]#.P,Q5@6'6 0L40N?<)WV8N_J>TV/*KA&$./GJB"P_9&_':&T))#CHC$I M>SER/0.JX!#&@!4@H"J JN".XA\_5P6\EG.J!16O(H8S&H['E,/Y]SO/ M-P?QGW0MHT0[46;Z#R5PO8P3^![H6@)6")]UPL=M)[TEO5$M "4?2CY\U@FO MO>#CML=YW 9U/I3\QY3\M-]IP&>=-Q;V_7__0BGD[[NXCOCC!J#'>]*ZN/(W M_+R\,7=SG*J2O;*I=]_I[/W;B92_U0/T*1S ':(!K6 YT5UA&E^:>L+W8,"/ M">3?>X2R)L56\O(\Y+&2R&/=R;!%DC,9(T%^)8EG*0*!3T(>%*O7O7FY!E9_ M.]/QHE@=4GP7(58O2>L_G:NX$6Q MBHV4=WIGQP9&E3LP!-9BCQ3C18(\SN! M>>IN/!_&\_\-F&^[&[=0#(L"KR_WX62C6_E*+@0PIV*8XQ@!GS_>VVW8J;V. M!X;Y-8,&OP%S+;^=5(-)D#-UH18BY'"V;%1BF+,QS$D,-JJ$,(&W*!7(U6/^.O^ MN#!1US./YO>=3,&QHZ5YN@9^\QS+T!00T"@9MF*KAF)E M(K'R]64TIW?"Y::$:A_7HIJQ^?I/]./IWZF6KKA W\S_U@QO92F[+[&X';_J MZ1TT1G_&2;" Z*/Y(4T=CSP*\-&31D+^#=;T;.H?YLNINF7]_5:X[&F&,\L7 M1CR+BAT(23PCS;.?__-\,]]5;4YU+,?]\O0<_!D!CX3!8MT[TW,35U?,G#*- MOOV+8H7*SCMNE4$_H]]J_'[Y]J09X!E P7US=BK3H1G_!L"/+?6?U!4.!+O^!W52"UV<) M5N+?^?*/DIF[0.O_J^>H+^3], GX/5*=D3JW_G[^A.+XT:>O/2![&6<*E(5_ MT E',"@_SO?$5)+"5?394?UKT'G)C]<(K<1G@CQE=!6E<4V>D@PI$^1$ER<8 M1-=$&5J_*.23(B90[88*IQ76B MD2CZI]Q2.YQ,R G2[YAB85#E5[:T#.H54^3+Y+H0 M1B,36[+J93SD[:Z%E,E.A97J/E779]'(Q);F.0)9B7:)X@MB:UF=%:9250!S M)K;4V+E:E?*4(8))I0ZFE9 N/07K3&Y)X+;L!A=E0Q(XMZ.)(599+T.93&XI M-]#6BS*V6?!+M$^'JTXF=A-#)!IFFE MB;27K9[.BSRQUJPV/=0J7#0R028Y4,NRP@DACZGS6=Y9=_0Y#[[]&YEB(_F; ML7FH0139)):R\O0O3[\\ASPPQXZF&; ^U(-]\V2VQY:@$OC.TP<'.S#^Y =K M\5F@X#@&^6;GL=AG,C;T?/=I9<=O1 ]*YM?NP4GV,_YFAN$SF^K9_$XTY]1R MPB>=]?3G'(B#?#G8UF%$J'?-VJ,+$W_QTU!E$KF.D1-_9HOV),;-#X[)!Z-@ M])OY-) 1%V,$\F;",&3$A1A!?\8QR(@4, *JIM0P JJF5# "JJ:4, *JIM0P M JJF5# "JJ:4, *JIM0P JJF5# "JJ;3,N(WW[R\&^N[W*[!@Y?$! MULJW10/5L<"'__>)_/0K$H RGTGJK+MG/G@%UYN[NIYI1G\Q]S*\K<7/H2:0 M\7?/>-'8OL5VJ.J@Q/^)Q/_8,01=;3-Q6N(E&H9\%!&UP-8/F4XXDGU*>8*J M$ K&NX(!E64*,<$D2/ 6CP]L3?Y,:(!OTH^])_T_VSD3YY_>,![ (Z);T8Q0 M"LXH!3B4 B@%4!= *4CJ@C\SB:[])K&E^QG#5IVE?C)YOO:6KO&\%$E!L8A3 M-,8\Q,_OY&$I:'Q9(D/6KFP;>802?\%T+Y&GCG[X2;)9\LT85A"Z$[B-#][SE7=Z#+I&?;[!" MQ59X@_/7.\ROBX,*>#A!??J*LUD$/TM1!PA="-U;ANY%2K:\!]V:5)#X.=JQ MD'I_8:UZ=K-0E0!TV4]?*29+,&=I-0^A"Z%[!] ];QF6]Z!KE4B2"#MAA5^/ M.[EI>S2WM3$PF$&-%0+)XL1;Q^X-W&0(_EQW0?_'E:O/==LS-OK19\_\944T M^4\V8T=NO#/-^,KVRRW$I=*C@^Y\D^_EPZ6ZPQ&47RB_4'[OE;50?J'\WC)K MH?RF77YO\$;N9<.&DN/JT4(S:N"ZNJWN,KZKV)X5>U\915L$GO^]UB&,19PT M%G'%V^DTT.6GD8UKT^5M;9'YZZ9O!V-?O_#^S@J@\)1%_2 *CCLD;.U MWG?%P'W3"RW=%Z8]9?LIXT7_,%K**^$3=3QKBQ(_7R$[@_/Y\;*XWBY!N27\ MTU<*91.AD_] 77/GNN9D=:IO487VDO['=M4 M"*!&J$]?T2Q.,_#^Y-'T"+19KFZS7.1N]?(V2]7N450E'*T1A0JMOD5XG2G) MR7'W##3+L,D+'VBU0&T#MJHW7<-=>=@L9<$+IG1 M+,&>L'/H->Z8"Z_<+L-(\&_IQQ] CT>@UYP 5/6]BC8\86[+M?>5"FUVD>#/ M*XKL#94T68L+A5@QI*E[1G&H:+M)HPGJ3X-$<2;+GJ=3($0T1/0](?J\X9?? M0[2XH\=J U-%DYKW:O75P)3:%JAG3\6); 2*0$1#1$-$7S/8\7N(KHYR+6[O M[?J2,A 6+%GD0ZX-NDF M'(J2[+PC(:(AHB^:@SA]Q!M!([;\RA!-'.K&2'B M(2L.%(#H.-LO%VDZ^L<= M/<6>4*A7A$:1[XI\1ZKV1B==,>SL>>SL^9S.@#$H_7?F0.\4[>2'_I[9#+]5 M]4C7Q1W9,]%'F;;N'O_$+:.3QG^0'J#OK2JA3_Z@!N)1I2B3R81 5$76*825 M"1;7Y0FI,3)%(PK.:I@ZQ1.M%<>\L%_1RF3 8\AX00@(OVXV9L#(QU\.]='% ML#GH2IZYGN3"ZH[TU$VE(V,R_7*DY@P0PC99VQ1"MIMK-%D<[8#NG\E)R^$ MP7@1-?EU6)&0K:NMZ5P\E$H,#4K]68Y=>^; &NPUAI0*'/EJIU!FW95I?"D8 M)L8V%WFV@PP]#8Q,K%11+6PJ[/4%OQ2]O;(E%+)0!3U%T42[RE53:Y:917.* M**TY28PJ&+]?QD,3FUHN2=IG=4Y #-I *_V-5VPNP?=GOFR@^XUYJ5NHQ.;KA9=2YAA$7M:YTAJTM@ M9()2U7 Y)K;%7E7:;;:3DCL/2"L #5 3E%*5("16I%KD"Y,&.S;)?KU=!B.3 ME#+)QIS7NDH>T5&%R+E$(Q.,JHIB M<6'+:PD) C,_+#;6==<&ZU5K$CKR\'DR$]-JEF MN5N@"@O>0SJOM8IM5M;CQB)G3$QJ0.AZS=ZNEM7P>:O8;T,1U=VT*4SL(75Z M,ABT!D$5CS0?D]R2:,UQ"<>]*;(<[<3YC-'6XP$7C4PNU/57-:Z$%_R@CGH85)U0-5X,&F2^/6N5^U&+GX%&90('U'$ MKE@(M&PRRU:SW2X- M\3 "7G*IG<5XOL#JQM+,N>Y@P2V*S'C8 4,3@N);[MJF?='E<^9"VQ:[^JP9 MK34:FM@6X=:9E=3,ETS*4SHFU3;VJT4\-+FOIM S=ZJPB@ZG_1@9=$W<6\NS M>&QB8P7',HNC98OGZSI!V)B9KZ#1@8JBR8UY*Y.ODXA!F+D-7\\U#7N@$3,P M-'GX[94EMZK)&RE'6$II(>M=L(%)9QC>:(HV-O1>"H@8*Y-@\L$N'[[8>^UR0)%(QU!JRO3X#)1*8B.:TK& MQZUS]MQ1E0\;Y]%RP*V@8MV3;7YM%#PZ 2YC7=^>YWW/\E\% U$-L M\^AWW?6.A56AV9QZ&# )$KS%XX.UE_QY*M ?A/R&C>*X**]W*SKP3,S_N+:C M/R/T3THO])GHD M89^)'UJC?-_\L4'&-/XO:3=]^HJ<1T" EW3# E(]]B2&FN+1-<4ZB)R*4_A. MK[1NOZP[]=8V\XJEV*J>S3055YUG<#2; ?T,3PJ :Q/@21;-[W=)NB6A&!D\4*9LW/S;K,3N*!_ ?;I*XEG*1S) M$NR9NMZF 0!7:9N9@GV?HE'F(;GP3B#_JZTQ+X_WW^JE^3S(>5C)*RTT^>U. M#.5\NV/62U1C4,RK L^#_B;DIZ\4Q/I)4^RNO>E3 /WPZA8"_3> _CUC%=P^ M5^UCG.4(^I8_E@;%GIZ7% M-J^][],<^:!29;IP#Y#^5ZJ@_NS1>)R$_4HG^R/Z]_Z05;G #Z6=5)\8.=RH MY+P3F_D1S:)I7E$#QG@N:YO>>B7E'*JGA6VGUN'BSH-$=/9G$2IY\O\''OWP MZ(='OVQ9'"Y,UCK)4VV^T._4I\TZ?>936[29P8HE7%.BA,Y (\F",;)CN-*? MOJ)9C&"S!$*^<6ZG/9'IB7\9%(N_H*7[&2/6EIE;N%HZ?Q@]50B+<^6PD^SN MRCF3]_KL_&3B=_'GXE#Z;OQ1[\E$[S*5_:#H0=&[_COPBUNUQ9&G[#\;Q7+.3II.Z- MV6Y_:*Y+5),LC%F<0D'7>Q#7BLQCDL#/%]:Z=QB_TRSF+C;Y7B,6>-JDG8/P MM+G5TZ:^K)%=M\7YTJ"JC@LM1NW;O3\/J;QY4#"$;YK\SN!-:F5M*@1=5G;] M$!P4]"\<%#>8U/@RM%)R7#U::$8-7%>WU5W&=Q7;LV+^9!1M$7@^./"];,;6 M_8PSS?C*%H9^[ST-\M1GS0,R.A59?)??]VWD_$'YOH,[K&MX!;>0YP:%&PKW MW5[GGE*X80[2(^W[43*63AK+_?4$IE5^61@XLRIO#C B*!6J)-)'N3_VVG_V M;<"//_JLA:/+V@,>ZX%VG*WUOONOW#?WM:7[PK2G;-]*@FHB(>7N ]KFR\V= MHXC>LBQJG$S'25 4FLR#A"E0\(2]^1/V"AKHQ/&]RVN*O!HT1+RS!@*7CF#T)]WK T$+R!N-57K],^;3VIM)%\_YE9# M"1OMR#RO\^Z6(_$J+A8_\MH9S'UX[!RM/&)&.R*JHQT>04=$C__*>^4=='ZC MBI7UI.P@(N>HQ1E2036F(S/@'325)9 S/H&^=YS ?+BT.LB/('VW*GHIS(=+ MM2/[YGO;VJC;\?1PO.:%VEX8BB3>G?L?S.)/GC)]Q0KTY"'SW;!D"8F)OVRYWD$57<.QHR1[@-HB3 M 1IF)HJG:QDEC'C]/7ON$%G)A(8_G^N6!O@",NI.&%5[O+#ZC>34P=C;6[&W M[P@2IH???6-BZ:*N1D-]X]68W'"Z+9;SN]60%T2#Z]?M-BM7.)D%,3FE/BDE++/%7#LV?WF++JY7A80M!190>7NX$.;2, MFN#T9#Y]1?'DLQ>8[@)UR\VGN\"$4IA0>L\)I= PA,K[;I7W[>V-7=K*8DQ$7.'\*H:6>BZ[<4LO,V['E@: M+JV<@:EP,!7NH:3O5D4/IL*E-WSU_66%UW-^\LWQ#5!\GA>>'>==/=J$%[%< MU-V-H>H'4ZFKJ\[,CF>)K:97;*$-,1\CN_Z:,)5%P25*ZK+61CD914!D"\^R M) $3Z1Y-1:0P300FTL%$.IA(=V\LWSN( VO:&R,"->:!YAF1;35,G_][]M2=/@GL0P=,Z\V MBD76S,6X92XYKZ&TM+G+\[,3B]+O94X]R\WZML5(*F+Q*1YW^C(_JJ6XKCSM MR+EYD1D:DD@IH\X*MPH,,OOT%?F,)/LX9E:Z>TA0O)^KW@OT+[YBH^[KG^;7 MYF^*TN"N+0?G#.NE<+M0[%-P"7IM(3AG/#&%VX4R#V7^K.Y?"K>;KGR -';" M^.82/',3"HHW?\5#G)&%J>((5$?*N7XK],K3\=#LR"@:-\; LQA*GRGO$Z;& MI0I5J8ASII N\(2%)RP\8>\HX^XW#L?"$!O59PU!E':[!>FWS=QXU.'BPY'^ MA<,Q[6ET8,[)#W.&.F!WM"Q+B_XRKUB@T%\V4PML_2#U.)(]_ (X\\]_)S=Z M3W[R(. /@,4CP&I.,+'T-"#V$N^.#SV03_?0&)^&='V,3C'$V&SJBT$5BV3S M ^'RPXOB0YKM*\^&ZS6TEG>U?!W)R=/IK#N=X?1N)J,8>#=,XEF*QK(T 0OZ M?3!">FV0_$"%4_0[/X9"K[VOZW<_OR3R3]\]?4ZV<)G:]F0D9RP;^R DJ*8? MPY_\]#5Y*P91_^NF_+6A<7+('R/!U][7[4+^[5S3(NYBJV*+Z$L#AE0*$E?G MY-R?]PSX)?A7U,W&WVX7,ZD^4C:EXDAAI5H,?U!DD6:R# Z/?J@$DH[[M?=U MNTK@)V%PKJ@;'#7=ZTA.&DOU";W2K>69T3\?3_H[M"F'B.#L>_8X7T''C1C] M( ".9A$,SR(T"9M#?RS@?6VLG,$0B /6U][7A4-U'SS[?[EWT*QJ=24D/Q E M8:%Q?0.7*U7ISR_$7M4$/WTZ6R?]>FNYZ*)(86=F+@@D?O68QELQB.OI?R_%]?B;AV!J:HD4;4W3<0F C"_R(D MK[32PS^-_A*N&ZX;KOM^UJW$&E76J2E%3$A5GE!31B8(=B(S+$/**(E,<1)E M"135HN__K_+T+R(=7$6Z\L;E2@JR*^ZYAM2KT$0ATL$RBK\2F\"ZM-39]53%%CO;V#$^LC-PL&DDD5NI@-1DKXENS8+&U M[8B2)M(:C$QL?[68C)K5=6!+@=B3&AVI;"U:8&1R^Z.]8ZWYF1$B@V)SNNT@ M]04IQT,3*Y4]O5KJRJQ@%F;K18L/:4QOA6!H@E)]NES29JB^,\7VM&J/^TVM M4>? T 2E),]N383\GD3*^?*HAKBE3F_"R:2<6&J%F>P'N(PJFZCE"V8ZX MT< MF#-)*55?R3UB6NHC6&,KV((J=MUP!H8F(>7CXZZE2CRR;/,3M+$B&O06?']R M^_/\OKO"Y&)14B:K >)UARVB$D867))3K95:X3NK.:]7]?6F,2D0O=HL&IE@ M%-ON[(84SU81?_98)UH@OJK$J>8E3I#FV(57Q"MICV6&Z -8V)+ M/7V;UW),&T$*ZI";#IO82J3'G%Y=7[@!F#.QI9VM M$8* #6O\;H_4ISN?+UB;630RL25173NE5G/2YLNE"MW70DO7^W%C633!>P?# MZ!DS;R/B:,&-^F:N9@U Z"D.J&VSHA8##?(&F='%&$6N=X0C$PLE)XZ2($> M-6K26I3ZII\K^>M-""KS)[Z^UBO+57M$1]JDPSM#NLB.9A*8-$G\?6BTG$'# M8OA@5MTWIIM^ER[/9/85>:KK/DM.:X1IJ+S4Z?7Z;'441B,3*U6Z?@'MU#S> M%"J3!3IH]C<4!^9,KI3/M5L>/]36O&(--EBW;M6%;@<,3:S4+ =H6^8ZN%G8 M2D*PXWVG9,:O(A-+)>H5G][.\ENDL"!;G"_KPCK"F H8EM>4U1));,H&7J_J KN+A8R/'QK,E]^>/^8%UE5582B/G. MW51(B1$.3S@3&ZM/9B*G3/(1J%;\UJL-Q#U3BY-Y$QN;JWG,:SB%G23V=C.B MSN/EQ6 &AB8V-MB,1F6RV7',NNS-NJ$PGK3U. LJL;'AB/,KW@9K\FMQ4*+H MIN)7W! ,36! IO-:PV';%5-2<@1PO(+DOH4[,[!RUR"$[;.'O\%7> M41G/VQR;C\.YB5E[^U67Q[?[/!+XZVF^TQ,) M?AV'>1+*>K>05_V5P8T1S"%ZXWUOI/O*(4B<6$%1,);[1B$WY.MT7LG-L?;( M8N/%)M7UP)S7>ZS$.1$7AJ/ZF@^*"_'@L#[IZ]@7?;+NCA$&U;$L9>7I7YY^ M>6XQ1F[^W_.#R;=4MKG81[>_!1QREC[UGT<@P*GWWZ5N/ MLZ$':_-$R6R:L7EE?B>:=:H(F3$I1CQ M7CD^R D(B4=CQ-OE#2$C+L2(]VHU0D9 U?1@C(!<2 $7WBOD"1D!]=*#,0)R M(05<>*\V'F3$Q?029$1*&/%V-5;(B(N93&]7C(6,@";3@S$"O5)7[&D:L4G$@0XFG:0K3HB6M$TU1T:Z.#C8 I%=O+)>?]'<+==$[^+9#H M,FVF;IM&4(Q2V.KJUDATF8Y:-TTB"+34-:2X-?I.8+1>.Z-$A!T.K*-+AXGW>(CHM+ MQL>M<_;<494/&^??"E/>DVU^;10\.@$NWD3W1I1C"GR.%"G']( MB_MG]B\^ROV>X[\\%J$S#07_*/C$'PL^\YE-U$V\:+NCCP+CT,#@T$XF+E$( M5>1C>@^@F'W.L"'['_2$?*IH?C(!@ ;R;1G(/]2RAFK@0=7 \S+%<3-0^F]H M-J<>!DR"!&_Q^&#M)7^>"O2OM12\*:/XT&WO5G3@F9C_<6U'?T;HFY8#;ND$ MM@_EX"2^SPW+P;'%%Q2$TY@_-RP)3_V>;L5+>K'?1%,-[#/Q0U.-[YN/N.VX M7_XUC?]+VDV?OB+G$1#@)=VP@!R: $%- 35%W./E%+[31%'-F1M9(MJ7?ZFJ MKD=PO*P[]4LMUHNZ&G>^.K991[^W6<=/BH9K4^/DG= =(/_99AT@_66OU)58HCYO.VD/J]3K" M$EV5(]9G;LBX1DJ,VR^6<&DPL%DRK_)&;P*:',6=UJJ __?9NJC_^3G_RVW4U\4NY8F#AHLL M'7EAU1:M'KZ^5!OUA3="V65=1Q%JSVWT0!.D!1;K >+35YI)ZH#3]5"_-AC@ MT0^/_@^H \?L+(E"!&AIW5SAP^UD/!L:9S;51WW%5)8RNC"#K1O@GC.86O6X M'^FA=3I.91$6>Z]U>HHSFYX8F$&Q^ M:NI\QCM=-Z;]J.G\D/54(BW/GL)/L M[LHYE/?Z#/UDXG?QY^-0^F[\D>_)1.\RE?Z@Z$'1N_Z[\(M;M<7 5< \,BK' M9BTA]QR9DG'D\(>3A+=:_>6H-V_;'5[D]6W!L@R%F?SY35;;=::&WW \[Q4# MN60( \.VR9$DA.O9M#AF%:=Y'E5/07[76%8]T_#X2^>5 XK2GFA*'N\5BO4? $ MA9.V50X<%/0O'!0WF.3X,K)27R7W_=M9/U!^;Z#.ZQK> 6WD.@& MA1L*]]U>YYY2N&$*TB/M^U$2EDX:R_WU]"6/;8@%9S3ZX%VG*WUOONOW#?WM:7[PK2G;-]*@=KE!-LMD-X> M&90Z+&>9BEJ8=F0Z3H%"L\PK"14P"0J>L3=_QEY!!YTXPG=Y74$M"D6CS@EC M4_"1V8;36)H9A$!7T+^@*VXM^PH\#P4OGT'XSSO6"[K%2XB[SL(Z_>/EDQH2 MR9>-C.E1ZV)A,N"5;C W%)0E[=U'GC*#N0\OF:.51\QH1T1UM,,+YXCH\5]Y MKSQR)GE3U?*[W!+)J=V=6=G+58?D9 8\IU-@X;1N<4 &Q1GS_A<]\[1GW\%&K(FP[2_:F5,V>-E86NMVVDGLOOY%T/1C[>ROV]QU!PO3PNV],+%W4U6BH;[P:$YSWN5*YQ 26 MI*\[8VK=[?-%H2.S(":(T6B6I%A8# EF2\)L22C?\++[AK(ETY]PDY;(XZ^< MFC^]'_>GX\ ?CY@!DNOWAH4E)Z\&%#@^F4]?B2Q-PU0:J%WN,)4&IJO"=-5[ M3E>%IB%4WG>KO&\_#_)LYMQ \JE).%3J)H44'*DS,.U:)XS,.1"#?=>>N[5T MQYB,N4.,58VL=-WV8B;"*Y_;S8Z$MW8P;P_F[=T;!^]_AS!O+[W1L^]/1KR> M\Y-OCF^@8E.B\,R2Z.K1)KR(Y:+N;@Q5/]AI75UU9G8\2VRRO?9&K3S?Y16Y M734Q _77^8EN3>L=&45 8(W*XA0"<_Z@+KF=C!:8\P=S_F#.W[UQ\/YWF$)5 M>M.1JRN84A-JL> &8E5'ZI52?UP(BF6/XH I%9?^>\>6NH/$PJ*Q,2)X:!Y@ MFA715LO\];]O2]'AG\0R=,PEVR@663,7XY:YY+R&TM+F+L_/3BQ*V&](TK-< MLV\;C&0B%I[B<9\O\[U:BNO*RXZ_\)5^N.%SNYF:KW6;'92=??J*?$:3T(C!5>_UQ:"J[M_ M/\D:O#9=(#@@.*Y-E)_F35R;+NG*JTACOY)OWL@S#Z6@>//7TBVL%I'O2B8C MY=BAVQ>IL#KG.S**'MJ79 D\^?CD-'X(3#%,%:JN?A3_) 7QVG2!1S$\BL_Z M[#N%VTW7"7OB^.]O'(Y84.WUQ;:-F#DUWVQ)-<[LX;/X<*1_X7!,>S(BF'/R MPYRA#M@=+^9\\_O@#8/$( ML)H33"P]#8B]Q!/N0Z?JT[W9QJ]9=$_NE;W'?'9DBK2GXF&4%.9)=3G54*,?S)Z)2'J/^ M*7]M:)P<\L>0\;7W=;N0?SMMMHB[V*K8(OK2@"&5@L35.3GWP4?G[\&_OQ]5 M9[FV/#*5RL0K%0>:N)IS /X,*,#"9!D<'OU0"20=]VOOZW:5P$_"X%Q1-SAJ MNM>1G#26ZA-ZI5O+,Z,?T22Z9>J-P-SYH1ZPQG@NE^+#'P3 T2R"X5F$)F$+ M[X\%O*^-E3,8 G' ^MK[NG"H[H-G_R]W>)I5K:Z$Y >B)"PTKF_@9KAS"* $<]RY0^$IIZ1YMG/_WF^F>]7 MACG5L1SWRY.">4; (V&P6-?,]-S$U14SITRC;_^B6*&R\YX,&?0S^DUY??FF MI'"P)/8S@?X[\_U70)($UY;*-O>,:D?-EK/TJ?_E\*^>/HJ5TM-GCA?' ;ZX M.NB*MM%?,.S(5X/59GC#@W_GRCY*9NT#1_:OGJ*_B ?P> MJ95(H5D_0.+XT:>O/2![H'QR >C-R#CZ!@;EQ_F>F$I2N(H^NZ[Z->B\Y,=K MA+Z,:GOK] >Q%_U/DV_UQ(Q0BOXD%.H5H5'DNV*< T+_G>$[4K4W2M%. M_JK:F=[<";SH9/>R&7ZKZI%TQU=CF>BC3%MWCW_BEI%N\;W_I&GQDJT$6F1^ M:9=>50+H?W#2*;&%(D\9%2<0FI4Q'5=D8JK2\F0Z)>0I/:4P3$7U"4%^.J@# MYUQ(%4"?SD4G\TJ6[E-KJ0=AVQX->"#O1O* MF$R_'!ETY5P-GPXL4Z#[_M =3\U.H1.-3$ZZZ(]8I5PW%'Z@>.L)3Q0&;01, MBE*)[Q^75B7<%UFD4-EU^MBT7!S9,QD'MZ@_CJ38=;FRGA*2J1,]%IW;V%RF M.]'(Q$JY!N^I+:RJFDI)J!OVJ# J2F$T$D5>#MTXQG8^UX<,GYOA2.B,MHLQ M&@]-;$K9;V?-?#C*(Z)'U?W&HE#"90X,36QJB55'&L_,7&0]UY&%8$M6B' R MD=R48B+6JC3:(GS!DM;KI3D>H:59-))X.7*^K_L=5_1W9HY%Z\,<.2I4VF!D M8OM3H11J:(C6>:$1NM--QUAQ%?#MR>UOAWRI)\P4DP_J=;3<)7KM;1Y,BB96 MRK.J9@L[=B3E!+RR,&W1Q81XU@2E,,DEBE6B6.?7-LZ25@F;UJP.&)J0U&(A MQTBU,=[CRTR.4*1AKE\7XUD31.VVM_20*XEELZYJQDILH$BS-I-).;$K9 MX&1!6FN[L2@5@GRY#[[]%:*&W'3)3M$9@M&SD=M=J7N/#\'0!*6:*E)0F0YN M28&T5*C-SADJ([#2Y/8EW-0LEI%#CQ-*:V8 Y$WQJ+Q>EEM7N[1%C M@.YV2."9U Z,9%Z.7)4"5O#R@XT9>#NC,T,4IU_GHI%H@OIBK[*4B]NQ; 9; MM+X;&?N:NYK)=')+C!.4!DA1:$O!DC!ZU=IT5+% [^O$EI!.;39O5 C+'&C8 MI(@1L^:& )UO$UN:=.=\OJ-,VE).7(IL?[98*1TP9V)+W9!7RJMM;865% M5EV$FL3?#J*]/PZM57%S52;=!K)N#<)U.-%'XK0C,\DMV2*^KPE[UFJ3G2!Y<'(Y$H;5%L16;>OA-R>C&.AB7TAK3U5(*8S)@)V>;CF!U-QDXNC+TEM08X4 M=%>1JXCBU8E%G@TFVT$(AB:4-<.UJC,NX'@S"%K;/53@A*D'-^]'C_A9\._H#R,)7]9WG[[U.!MZ M,$5_.8^4?3.._,QM?#:_$\TYM9SPR9!]^G,.Q#F_',('842$=SWW8Y0F_N*G MH?9PWH0T9#1&O%UV%3+B M0HR@/K]9=1/R 6JF!V,$Y$(*N,!\IJ#%E 9&0+V4&D8@&&1$"AA!?Z9IR(@4 M, +]3+[9U0 RXF*,>+M8,V3$Q:RFMPM*0T9 U?1HC$#@89T&1KQ71QPRXO<8 M\>O577[&D7L>8&Z//>Q0,D$439QX/UD$3OAM$A MB=Z-(MT5B53' A_&/9#^V!.A\;/2BUE][!G9LPH4)ZM>^D B<=V"Q79L&EXE3_5F]#2@:UZ5!"F)/5Z;!18)+ M$!S7%(R/6]CLY_-:4A^VK[]5=[W=Y@ I!$$*8AE7IL%E@A6WIQY3X'RF2#VF M/P 1U[V\J=##GV/B&NS'SVM$?93]/<=_>31"=_K1K8)O@D_\L>"SGTGL90'2 MB_8-^R@P#IU #H7NXEJ?T'Y\2 <"-(7(&3;D_EFXSWP^;XSZH]Q_Z@MP4P;2 M[; __>;Q#Q7A;TH*H)E\0C%X7NW[6$\5&LVI/PR9! G>XO'!UDO^/!7J7^O, M>5,F\:%IY:U80F=B_L>U'7WHI'V[SPV+P;%1'I2#4_A -RP' M3SW3;L4Z?K'?1&,:[#/Q0P.,[YL_MD&8QO\EC:9/7Y$SB,?11[IA 3DTTKI1 M\7C7=_I1*&(9.*./=,-B<.B2= JWZ7N[F2__4E5=C^A^64_JK6WF%4NQ53V; M:2JN.C^<&CB:/?R"(1A^T@/SVJ1X.A5/YAY=?C_G:%+FQ:Z27!=7_H:?ES?F M;H[_?_:^M$E5)5OT^_L5Q+ZWXYV.T&HF0??I=R(<<)X5IR\$0J((@C(X_?J7 M"6I9I=NJO.?&!4AXV2$H:XXL_S>#'"/ :9X ,Y]B2F%7H;ADW#\ M[XTEO"6[7WZLX60R48?ZD!AHHL[R"3YOV?8"31:)>>/B0E:_8&GNO0]]F='$ MS/.H]MLP^FO>*KJ +AC;8,N6Z1=3SAB"2GFJK4F;9^E\,=_ ]>Q]=>06MCUI/!HOO$:?_%2A6/R@ ]U*Q MWR2<^)'3+??C@V&,F1OM,C_M<=%J5LET)TKRLMP/808?#%*.\VG?U"TGNJ2O2+4=_-*\AO;M=F7$M$SQ%H M86O9MDV!$2C\@C&Q68TI627!M#61[E8=?:')6NK/;>6Z92JJ4S9M^X2-7$\( M>KQG11>\FT]*?=5@\H(]0N/GB1__4(D(3I'7"X4]/2>?GQ@39$[^:,C*@^N1 M -2L!3+>\IC$>IN^@ %6.]UVBD]FP6B!YYH5-\MJ"8**_7D<]:S&X#:I62VM M+4A^;:G-G&/,&6'F:0SV$QKC ;,CWT=9LJ8%X$8QR;4L8$AKS+$@L^H>?C!1 MGKBV@S2_'<$,X&"F@CGB*KPU?O8LRDM[.=\0T8%( KS]N1\B93 D[R=(?+O] MH1\C32XD[N=([;K]N1\C$>S2GO/WPW,P4ICN(;^#E_!T;V?[6LE0/-Y*L&5F M,-1:=5)>HJ1GGYA9)H]&R_(AKN'"*C M#H%JRGZE- 2Z]R?[1+$TG^_-THMNHLDQH_E([8Y*N %&0AP52Q-XA&3HZY50 M/;G*"S/@@NH$?P?B>U3*"V &7*#]T[-5N8.RE.L9%7W"3<&ZX%H5@HB[7RS0 M.=8R'5%WP;&2.7 Q&Q7+D@0ZS[><:I:C,VI#FR:ADD&%NK$K%ND^.Y.'N89! M53%A?ER@J2_,CPOSXQZ&6,/\N,L&RO[4C(G-AUT[M9FXO#I0)R3TF5=:!_G* M*.YUWHYY@KRYM&G +=L(VR@4AF"(#44;R)BXA+A^S9?SHRS84G7&8Z#+""\H MA^Z"@;/O%SY_D"RZ, YW+@[WRD$UQ?_948 =C\H8!V2\9@!2@';[E2G6MM*EQ^'I= ME&0+&8 H8GO> GRT/$4/AE$_("M!HQX8MH?!\"[]<=,:PYRGH"?]Q:B"G>;;7'#:8A5,WN4B!P%(:C(CB>"!, 'RIR+_*QX-;9/5%J(> M*VJ3056;)NVR6)7'%L>-+DQ*OY=L=I#.MC\BI J/?#+;D[Y/*:N*EB4P/1Q? MC&/MC29VC)3$MI83D!_]^ =_P8^'96(S8/DYG<]S/WZ#&=%W'(M^_Q#.O?$; MH,S!>]/!%>N# WC:D.H#D%!X;R*X9F%R (\;TGPP,MWN30?7K-,-X'&#E1$1 MQ,DA>Z?@P%%(B_;XE(^XKDO91%&D\5*7<^?+)5EO&R.!(/Q!(A$B<>PC/NDT MS?NF$]Z;JZY9;AW XX99AL&/L :0;*Y9YQW XP9+U5XX(OL;6K*F5#JD,8N- MM59/[/;G.6J13?E:DOV$E@QZ2B%ZYO#-,Y< H1MN2Y?A'U.BCCHA1K"B:P"? MZBD\XO^ ,//?_PP?].;^XO' -PQ+08:537>H@R!P["VJMOWQT93O('")4;%^U'1>Q_K_G/C;\GXEY\[GT_C MXV2G2U#\VK0D?&!WRMG."'%_[,<_Q_=C(=-_/E9\;]:X.,=O@\+W/M?CLOSY MY%_7%P.;*/D]S[7X\J!7T3$-_UH)D:9C0(^7['+6(]* M2,K@SX>J?$H -!LJ,:6SBRB?UAK90K%'6D1EB00 BH7'XT2$(:\X$^7I)0 ; M!(UY!4O "W'?^UPW#M5]4?E_>KA24]%& R%M#?C:=)UHRB46G];^_&;LI!SX M915QOJ(XTX++T%RI.T\/^V:.B)I>., ?D420QZT?+W;75Q\ M;&/_]SY7D R(;"Y+22/*9? 6,*>5;"ZIE\&5C7^>[2VB78)6>3(E]>361%6T MFL_JWFPC@DY$8M2'\XW^XX@0:U= B@1E*+ ^XEG_JRCY^2B*_TDF%3V "( 4 MXPR>& IQ7 0"'8NQPA"G@8 SBA2#-!R3\033&65>1)6DST.DF!%-CW*WN#*-6?UZ=% M?+KA<(N,IC=CWHD%=[T39Z*,&\7UIRXUDJL:K. M.#*=' T[-"O&:DN!0F'>MRM3T2DO-5;+*;\N#$O=1;R62Z>!*N)/#W2[OXQ!QPIEO!:W1/F*4G/3 7T.N/#X4#LKB. M'&MC]37*J MX'4>@")79SMKQ81 I07Z_?TI.ZNXW5\ MWN/XBMM9\AW+>^H1I/@"U(4\F M*FZ6D[O"*C."*X^ VC*5;I31F#K?[;HB4)AYIYA/PI5'0&W$9KFER[J8'.X:V)L82R^NC]:K)?D)?M]H0KY:HY MLIY9.%,:K3S":;S$N*"F-[MXSNUS'4ZH:,WR"*X\PI/.=!9*/CO.IW@6\MYGBK$ M!;W71D/LCH[$$K25;,RR*Z[FY,M<.6FDQ?0(KCP^$M&.5PO54E2;&DFQ$*O4 MHYHW&._H2+U9LD3SXXW( WHD=X12;SZVT\311CI2@U.I,<$6.:*BII&_'S3;[;SEAM)2$V MT-(CX(OI#8.+1'K*UU)B)2VD-8KHH+X\1SL5.E*_V[(6$SQ7FY 5)LG:46T$ M5Q[ME-<;E%YKMF*B"9FJW):YDK56E]IQE-XH^;5 M61T12M?)Z[EX:JUK4365T&7#2<0@IN#2HV.)B;@R84QUPZNUNC-(M;F\XGI+ MC\^E+PKB;)&-]SBW/MD,8A)3="6_TNOH8+E9(4 M/74%XF.%ECHDGVO(ME50BYF4Z@6%CX1UQ986?46>=WG274S,!K>LFI9O0A[M M()G*D UK9LSQ.9#CL87;U8N:]]AC<3T=4]VEL9QTN74IRC")MJXM_&NIO;SV MK,Z=);CU)213U\69#7[N?CBT+J%!__?8MPZGXBKJ6>/&WK6(ZD!Q#GV-J.<3 M>)_LTAWP?R$+U+%V;]T^C? MTPLENLCJXL3S3?A,13>7.T-V]WL4N54_AQ80 MM>@2 N'OF6E[=PP_+8"FG"[ NV=NW2WOQ;NEXM V==YN(2)NA(@/.M"%> @ETS=#1(B% M &#AHZZ#(2)"N?3=$'&^.V"(B!LAXJ,.AB$B;L81YS,J0D3<#!'G.T*&B+B9 MU72^:V6(B% T?3=$G&_K&2+B1HCXJ/5HB(C?0\3GR\]_A9&[5*1_(2/UX+F_ M [B'+N-Y!!#=9M3.8\,H)*.@C_MY !#=9%C00T,HY+-@#RQZ /C<9MS10X,H MY++ C_)Y !#=9A#00X/HP4H&OP8BR=31A__O!_GCSST1EKHJO.*SC^NWSO5< M.RB1O5A[M6]$(M<) 3Y%(?YM)OL$@0X>H>_BZ7 ?DAY_6L+Y!!;;O6%P\Y'0 MOU'>&Y+&?6$0@-C3G6%PZTG4(7/_IPG[H%^ZKI&U%?1WS:=]ZHQ M=*>_NU6P)WSZCPD_\1([:@1[T\$F7V4,OU>Y/SC":RT6VH_?TH% ;:NCJA%B M_RK8C[]<-T;]5>SOVA8_E('T..@/OGG\IF7M0U%!:"9?D P.FXMZ8P+9OT.C M.?#*,'X$@G,X]FV]XW\OQ?6G1H<]E$GL3]5Z%$OH2LC_NK1C_<':CTL'R:GI M&DY(!Y?P?!Z8#+:C?$(ZN(0/],!TL!OI\BC6\;OS'O7!)U_H-WWP7P\/<6U: M/_]'\?YW;#3]^ >_ GEL?:0')A!_TL>#DL>'OM-;HO!HX(H^T@.3@3^4X1)N MT]T'JW]JBG(&2-YPF^TD9>)UDC)Y49T9:&AXND@JK=&Z;8)9XVH#EWNIC#5C)I,-7QM+_"C;IIB,O11BVWG+ M!$E'XB=FJS\/B]P\^WL[@OG.Y[[:Z39/E]; MU_LSGJ&D.(^8_KICEN]-\_>9O/P$C+Z=M1QR^L7&*S=9,35NL",;SU6;F7Y= M(L;J],H3UBRL:^(1+YP6E5VJ!%5N^,M^GUV+;:D/YHKG3\KK0F[EB M*^M-&T-#E6DVPL2OQ/@H'G1O!KC;G.4G8/SM9.5 ,?[?5YNE_.>J_M/#E*=% MU1P7W&Z6F[;;0I5>947>7-YHF'(ZH4T3XZ(ZXULQ8(S,3<^8UI'5CT9YD1&& MQ*\X2_G>[/ HXY6?0&IL!RH'2FKNK.D' M/9/%S?HRRXGCJB+&ZLZXK'LC2/T1RG@\$O]XA'* DA\3WX)T&+T9Y MMVD!&)+>4Y6L7XSZ;EYJ?G.[-N-:(GJ.0 B>84L);5-@! KW?[E(4&R)9^+J MJ$B7M6[.7B?BFBL-Y-$?F\IURU14IVS:]@D3N64-6RHE,2D-3.)"EDJVS=&J M@>;4$S_^H?$(19/7BX4]/2>?'RT39$[^:!K+@^N1 !2W!3+>\IC$>IL&@@%6 M.V)]WEX7EVQ92U-5(V/F6U1A_.?!E;,:0RZ9B5&-)-,<20P:M80*2KG4$FD, M]A,:XP'3*-\'6;*F!>!&,SG?$-&!2 2\_;D?(FTP).\GR'V[_:$?(U,N).[G2.ZZ_;D? M(Q7LTI[S]\-S,'*8[B&_@Y?Q=&]G^UK)4)E>*U,RZ]TV!R;*2G75:">;_?.P M[Z_>AMSZK0N;WGJP;>3 ^K!+&G+[U9U-[KW9*G!J2EM,K/*61 M2Z4[*?6M8=Q:"JR71T5$Z 059E,^6U[4O8:$A)+HBF&_FTF,'H2/RXM:4LO- M0:+87795N^))#/9CB?%H.5FHU!256:-(H+WM2_2(-^%/G9MU^4+HBQH1QV62 MA6R.F>NYIJU-Z9PD5)JC02431_8BR5S)P_P.;!YF&P95R809QAB#3/D+ALJ^U-#1C%BL68E51GS:ZX[2^G5I!N;(6_9CWR=MV2>('+59*9J9EW<+'3GRR5VCB]R8R$ M!(K3$3$Z@I.QL-M1F,P8)C.&Y!TF,SY.,N/?5VC_\YSQQ<\HS5_V"B+YLE3( MJM1&JY5&7)^R^XI<:4#MZ04@J<1QP[#+M KZIM(ES"8-C( )LTG#;-+OE4WZ MU/0=W,!JH,#T;5,:[V!/WC T^R4;<,U2T4TZ6UYS\S91:#JQF8(WDM &]&.W M'QB!CY:VZ($Q.A1M@&8"36? L#TDAA?KCYOE&*9 !3W_[DX!NY!*'Q>!SW_" M,*,ON!&WUWH/NVW^XLW>I95G2:0/#(DF@(>P(]!CBC.&G)[F& M)M9JZ\TX7\JL^,:/?_ 7XK@3)#8#EI_8^3P7Y)>NC#YQGCL.4[]_ .?>^ U0 M]N"]Z>"*Q<(!/&U(]0%(*KPW$5RS2CF QPUI/ABI;O>F@VN6[ ;PN,%*B0CB M&)&]4W#@**1%>WS"0QP14SDA=KFEQBA<(;K6S+Q2@1XBX4T582)4XKC6Y$E' M:]XWG_#>7'7-RNL 'C=,,PQ^?#6 9'/-DN\ 'C=8JO;"\=C?T)+VJ-'N3V8V MPY=HBT5TUZ6I+]A)8,>D(A>N;PS3.7 *$;;DN7X1]3HH[:(D:PHFL MG^HI/.+_@##SW_\,'_3>_N+QP#<,2T&&E4UWJ(,@<.PM2K?]6=*7J]5F%HUL M1A6**=Q=I,>IFM1;E!O++]1J>T?Q4XY/5%YWYBG0S565.5_*#<:R,X^JA>8( MS<8F?_P3HR(4&8_$V;"%U1>#I?=FDC=0N,3<>#\J>N]CW7^(_"T9__(SZ(=* M-3&*ML2NIN)KLM; Q;5K+1'WQZ"2#YG^"['B>[/&Q3E^&Q2^][D>E^7/I[Y: MV3Z=*> ZS;G68-8WE,6\RWZQT.@C]J>(FJ7PR5D#=Z/R:MAIZTP7&?DD2E8E MF40$IX[+AD(A\%O!\WOSR\7EP#9*?N]S/:X<^$5$?-./9F*4V2C@\Q6[C/6H MA*0,_CPB_BD!D&LG>D*[GIEK.5*>,,ZF0"UBG@! L?!XG(@PY)42UK]-)O#= M.>4*EH 7XK[WN6XT@ZN$WDET,Z#8$!J>0/#F)1$D>\7+L?!*X,25P+W9[.+B8QO[O_>Y M@F1 9'-92AI1+H.W@#FM9'-)O0RN;/SSJ8XAK>A8GIL3,;*"D]6&DO-\?[]E M $$G(C'JPVSI_S@BQ-H5D")!&0JLCWC6_RI*?3Z*XG^22<.-_\G&@[[O%@ 8 MU+E0RXK&&LH.K&HZ\/F.B:5- VX-=8Z /WF7BT@I8UG5$ U)%75LK]#M"V[W MRZ9H0+;Q'UE=_/-?^,_N>Y(.1 O)_/'?LFK/='']TY,(VU?M!#S)OE QM 'X MT=BG&0I_(=%'N^LD_%]H3P>/?O.\J 1T_>]SEXB[)UR9ODCZH.C"!R1[ )J# M?__/X6%>[[JCDJF;UL^=GCL X!8PI*?R1B ZM("H144%OOVGJ"_%M;VSP(D7 M8J]#?^YU)86VE'BAB7]AKS\BD!QA;2JNH@=0VRK8J X4YZ?_K=U'GF[(>P+WS=DB-,91$'-RS?HYU MWN/C%*!%3W,+A"+'AZS,"CA# (&.L3$A(9.T()(*(<79(4.*X@]_?S>QFO?Z M($CB_^SE?KU9J-2:A1;6XIJ=0IIK8>E:LUYK)MN%6G5_L^^#.YULY;/E6K>3V&0V:8V6\X9 'J\<&_%"D\PGVER.E^C" M!N?<26DI4,8U/MTDS3Z_'M-YLP)6Q]RMGHX:>L^+M**YVYE,J M-FHY0[$AT +^?J5D3U>T4!E8O,LN^RTE59N,ER,A=KQR6!E''8%-5_%U6W": MFBOU6ZL&7'FTSUJN64]U2^,YWBH,G#;#DSDID80KC_:94&O4!J_G&YS:T8@J MVY3I87\)O<&CMRM.,3&KXEVG@I>8 MJK#6HB-42GNT-#4U!_::IR;<-%_KY@<3,2>7O&RQHZ5:NU9=Y^*+)M[JK3IL MMC::X8070$Q6A5%AIO",,ZM(53R59;,-@:".E\[BW33#]CH]+I=P^%5- MS2LE!BX]@?QF-9Y.\]QB@$^7,=S*Y\1^=P4W< +[LZS=W1" F&K=5J;;+0);PQP%81=)U^9YQL\=$H&R7GP_E4L.!>3V!+ MUFQ(@9U\FH]6BM-:0M43BNPMI=XOS:]JFKCF%5OK.B-R$DU.!@,;+CV!6+'7 M[;#M](K6HIJS9%8;71C%X=(3B,VHI2139+BDYFI44IB.U90(B9 \@5B^'2T/ MUYUHGT^G\>RH/)/CM64#+3W:JS@5K-B#*N@$N4BQ0B,Y-1(Q7+5B25Z++T89"6[@! V M5$N]Y9MFP=5 MQXBO"O02DKA G: !12@G;#FS:./3JID:,)7.( -%!G6"!A+0LJBY.[UW2_TP+/1>='%F M@Y^['PX-%&1F;)TXY*=(OB>T<_ ]GU%T'7/W@>\Q>I^\\2L/(KG;-?B11^A8 MNXUM7TCX]L_GTHA9\H4Y>XUPX'P=/-^$SU1T<[DSH':_1U'0^J?OA"\AG#[T M?[>Q#N_%NZ7BT#9UUP%7=GTOXIJ]B6!\*<9/OA!G.S>&B+@1(H@7ZFRJ38B( M6R$"?R'/=E *,1'*IN^%B% V!041^$N(B LBXC>KWSXT6V]WZO@7[G6O*Y4? M"P;0C4(?_K\?L1^?H0 RYMWG7?'T\2^&OEOJ"JO C\K>'1$CYW^S<7ICI>0@_Z ;^ M^];P5>!@JE=JACV"C18(DOT@1!W0$JL/+YL>OX3J?>3">O/JRCKEJFH3MFT[1.55!V9S$[XVC*KN4QBD,A&U5PCCY($ MJ1__,/$(';]*)Y60_P+-?S?8=I#8[[J-"\^RWZS==1:;C#'D0'.B]\?E)K/) MHVQ>YL<_-!ZAZ.-!'P_MF[Y7ZP=3=E!]FP4@GB15!YCQJN_AY^@W"?FT+JI] M4XU7A]8/9KQZM=A?:*VI8/!<0/)^$B5_'@\$GOWOT.L-;?_0ZPTI/Z3\T.L- MOM>; 3.H$E7/6L&@E8.)4Q-N=^-]$-KA@;7#+]JH.'2&+^@,'W(4_%D'Z(>D M(2=3^!%>SV3HMX@6DPZ MF$2+@17Z&826_X-;_I>V)X)ET3^9B>%-+4B]GPI]0FQ9$U79Y,1%4YNV@,JU MBDH?Y)9"W(N]1R@&OYY-<6^"#AGY"3WS)S-&/LW'R^9JGC>91I17#6"KS:R] M2M.(CYF+3VV_>T0B)Z+H.V1=T6\M-;-0*-Y9>]$)-/A^AH+YH>_S+7R?.X_)[''3"9%#,WVJ1#06 UR-#8@I M*8ZCW<5(\/IJD$R$I*[3ZCADRN SY7T#$K?@R>NJ_3_FR:I8+@[,1E;"2]PZ M'VL9:Y>NH.Y4T P@Z A+77+J8!##$+QA ;C5#9"QT=9,4%$"/K =#&(08/92 MG(4NS(.[,.']^Y,8'Z_L^BKR,A ,"Z_._52V4HJJ&9VBO(ASI4QOH2]6J:P^ M\[KJ(;/CQ+RER]D\S>W9,FVX>E$H\*7):N3=1ZJ5Q M S$[M&?("$M?P9RYG^WB#;;!X&&B7IXAI,VI'3I,@768[F:$?*?PZG7-#X_C MJJ:!^(WS[RE/2*&H9;4[9).$4@CH7::1FW:7Z27JSDOY4B@1)EZ$;!O@@,B3 M78I\CFO%^**X'/$Y'B\UK?@:;[:4O.!Q+;0=$O$G+VI(CT5C!)^E&IAHV\"Q MO+QR,T'E[L?U=N#"_VO^:Z_BXS+C)9FK;7-9*/QM5UNIWIL@SO M,2.ZT(_1$9PX;H[Q)#?Z6]6/!D>BDVW]V-!X?W#C_;GK")[17MAQ8%=UQFG7 MAD@!5A(QXPF!M6YM\)Y#9E2MU%,W WF]4NE8$@V20]8#&TG$J/"&/N3I!_.S MG\[J^!V6EMW$3*E5^ARN#KKM<9_NZT)UA%@:V2 L'J'9XPNP1[R&WQH<_C6\ MY%H6,"YN=7P+/"X*>TSDR=A3KDY1B?: O2,L32@S,FZF;7M M]G*$9LJBW@81(GY-HR%DR2"S9'AS?E5#X"1[0DC !Y_@4RI7F=CKI+[FR$)[ MQ;;:%=#,>;.?&<^Z)Q/'^;=/%8SP;0/=-$91!UC3,";Q'/Y+>)7^W/8'2A;Z MP 11\SA+,NJLS+<$O(I'27.:7C70K'HOR8^DCSLAA'&+D._# $> [9I/L'W? M'?<30H-/:;56/#MI5N*K9Q3V/'3'EY:5 >!T>:3H2(Z]I@SP[=7\3 M%@XS-"YM2OP&!S?BJC99=3(KSF73XEHG07&9]S@8Q4>(2")VA9N20 5(]MD: M!Z4&H9OTX&[2\M;]ER?JKH> M%!.!VWZ&EI&[>YO]\&$=P>L7-9$1-.0I=*@"ZU"%J1X!L#-FECH]%7#=<5@9 M_>['6Y.&7'[EKE.3']MVN5AJEAV\Y;)&HE^89SOKD4!X/23I"'NB;6T8\/@> M_!GF?5S 7O@*K_XRR*&HHU&[K7=JO%KI+8>&630F3A(QK=>4B7K:21>OERB6 M"^0PPA$Z/V&$(Q@1CBU+GC M2UX+&?O;,W88U;C#UDHD(Q9R+PH9L_HW9/ !G"Q*7 MWSG!]#R72QDSET@I LUW$RM9;5EKNFDG$9<_=R_*N/>"*G PKZ.UBX:#HJ$< M^]L8=-Q%&$*YDJ=U;_EPZQ#+O<_[E/<].Q$(N3@-F;ANF0M5!G)JS4-N/H@E M)_>L?"YXG!P+ICQ;VT6<[&A.V:A6JTP&VCNDEUM"1JC$-9N+A;(A,+QRXRC- MO8_[U#FSEQ$-KBUGL]9H7-?$PEBLCSA[6%<\T0"-I#@>B5/'=M(#U>*@Y%AD M!"FZN;0QQ3*GT!1: /N='72YOMS?0K(]^R&#D*ARK_;:SX[;;T+ =Z](N7&7 M[(#XWOXY+JX1G]EM,RE!IK/ FVF^ M24,^-]!W7)?Z=(DS%WAMM@!FW,K66BXTBKU^FA0=8:XZ9?O>I!VR]!-F+3R^ MO_LECI:YRG3>T[4H7G(:;+-%#[1AMX$X&KJY-(J /;2;>V2 6":D.'GK\=H0 M&,@4";MJ!MQ3>*)2BR=+.-@Q5!;R4PNR4TWY'>FCM0O4(M?FEGBWJ8V8L5I8 M"W$H?;Q.FRP529QH>!.RZ;=@T[#BXI(FPI>XM!A;TOP@9@C\-"X"W"')1JFQ M1%R*2BRH",T<#[Y^JK"%%RF?B:J,((Z)R,JR571,OT83F1!>1@&*9%C =BQ5 M30"PIO#9\XH^!88"(R(,A+ .27=']O>(1\$8CHP;V/^XWLB/>A MAI1KJP: [K-=!4Y-08IR^Q?YW.5Z!5^63%*T M2S0SR^K15(W-XU&;Y'!>4:.KR4@@O6Z95")")HZ'AH1<'G)YX$LG'O]^Y+?X M^I_7CZ\_.PJ_"9V&]^97NC=CCA(/;&^F;87C(:@?JFGQW.X!! M-%]?KWY#XS$01O-S)_C?Y1X[I-L'H]L@^G /'J5M@ME6?=24CU0M:56*@C(@ M%-[5!"I62;,-JYY$.T.JECVM:A\Y:_U L;[VVI/!,/12@VO]/U'.^N-7O;V1 M+I"#VI"!,I!_3@B7ZD8OVP5Y;7$EA9HP*C^SV?Q(H+P>>"03(>AP#,!WY<.[ M%X\_DY(_SX;Y2K>EVEVNR*TK=#G>,FKI>=]C0ZCC8V@6\G%C_\>^ M+J)\#'[ M)-;'CI.;/B.WS;:XZKYR<=:T6F/1 BG$PND##CXA%E=K,C'N-2L6KL[-7+65 MTDIX=2E0Y'9&$7NV7#<4!*$@"&,<=T^?OX <(!)F8]EOL36<8'O+ 9",BE+W#-GVJ_!";^M;>%MAU.-"=D=-V3,0%"M3TV@A ME^&$5,F)JI(FA6(;5YN3QG0ASJI$!4H5"ED73(0FS_I<(3,^,3.&H8_+Z/Y/ M\^*DW%R4)<99X.Y\C'/%BDYIEL>+#.)%*GY<4/)<\0]OID'HNSQY>7"0@ASW M!LQS&R,'N50[80@]'H_+L[O"DL_5XC07,N%TD^4NWRWEU7%BS==<#8I&KPTA M$6&9L[>_H2!Y2D'RK?L,/(%]=#GQ0%=R\7:VVQ?PUJ(X*6Q ?YZ;)I%X\$9" M$SCS'+&17\PS.E6E%SII8:EQ\!L*/+Z1\XM:X]\48 "TJ%3.;-8T=[[IL*W$ MJ-?J0OLFMFTF0.!A'"9D\;";0("Z"?PFARM@2/$40]3Y%LVG%:F1WQ3J#<3A MJ.TR$2&(9\MN@<_D% 5(7K=$L)+&HC$"&,0

SK60\T> MIQFSIW[#4XF?,Q0_:VR>KE6<+BB;1Y&,LGD4!=5 07A= N 9D3:,,?I*!^ 1 M'WN)-F%N=M9);I=9G+8W8=OT''$%JQ[S1ET$6W41K*,N@BV>@:J+8$=Y$>SA M\>DK(?7>W$2<[ENIX'3I&)F!*1J[D3?//-V2GF YQ'0MYES[-4RXUL?%6O9K M#?^U@7Z\]<@H8!]%F%XKH>_1AFWK-1[ ?$CX3+-T3;J,S->^)."ESXI<72_6 MOG W!'/H7RF+0-*(>U:?^3R,DCI/XMIZ8%-=QJ@RY@*IA[,9UIE&,_$O/XP4 MB4L2]V(WC6-)X6#;S6*-328R/Y HO@0X79O[=)TRIWG+TAY$]5]*9CJ]V'^M MO?M/"@!I+_&W!)V[T_K'R>1BQ'R &V!JRL'@34#(Q!AP"H/X3*B_LBYKEV-\ M,A6!]L"C=,%6I1%P&:563# ?EX\S7Z0R(24)3-DMAY=6+&=2A!.+A5'\5OOW MAW>QN'R=!_]@KCFL1?C-)9+0M7 $YC+%=&/,;Q&F"_PQ]>9R#[ W?ZR-./P2 MQ."#8S;!##@R0M[<#*](>RTEF4S;6?)XD,GPD[3Q 1YRP M8"PSO)YW[5(N(+B#7 3G,7 9KS41B0E!+"P/CS>B4IGGBJ]ZF-%%3.0"_WCX M<)'G%7%O-D+YDN>\L9FX+D#\">NXIP%!I>-CM&0I4/B4^1.P5%-WBOED(Q[P MB0=*-:+#!]H&Q="X/[G K%G*\\J6,H_"FXC-%O+%1):2-Q,G#/"OG@O-_#(! M+!E4.^T1GP+'"+8LP5""0K'%I:!>.@)I0WGH842"Z094/0,Y38E*$T0J+K'8 M0O8X /WG)7##S]05"5AY!"C+EB,Y41KHS4PI= 1 M0(HNTJU$^1U'%$7LCMJ> -Z1?@J$W!,QWF6R5@)P+#(')?Y%28PX3@44\:]% MF.JT3!AIQNZ7QW%!G@ BW"D((<(?N+(!1<.RTZ8*K1G:F_QNH,A@VVI^T2[& M(2FZ(HD2J-2C#$7?^\8Q)PX_8<%]H4=<3Z37BA1HF@*GKLY@&_UL!E21BSLR1$CP28(0]!;(^#F^ MF %1"'HR[P$UJ'I7R,.RAA9X*QO7K[6#RD'K02<5I9&*%Y6\4_)NT\W#W/?. M;$!P-Z6MRLA(C.B #MUT>945V&<$Z)(2H;"\A>A* _1DR7Z=H? #TS9!<8'Y M^62EE5[(+-:,0]$9I0@PZ R_>N^ @R\)[X$C,@R)Y 6P[Y /P[08:)LA5]/?NBA@E@U+#C=9[1R=". TE !!2G<&<+!>2](1+X40CE#69>Z/]DZ."W(Q@?V0*?U!W-8# MZ9E&:'V_<2GSPQKV.W3OA4D;7%K)OQ#TWV70_R2A3Y:ZP%X^P,!$;V MX"2:S95<"3CD+9)F6P\3()3?BS?*V*& %+&!0#,"H+B*O)HQ2+$&_(9.X&!= MLH0@2A01C1/^NBB52$Q(54U@%G M[O?N6^PWD5$IS'-2F-70M> M$:I84(19 M@*:0\2)K5)KRQ%>5]%[D"1&;2+(X41[D\2(WG4E%*M0>C84N"+(B/L.RVD%4 M=0+8,R2+-HTYR0[IK4BC700G9NQ;*0RT(L*VJ+&WY'8I;E7@^I&((>8@S+B*V^6?97TH3&^F8ID:CT%6B361,HUI?\(>Q[-7>0+" MQG^D,$=6!4QX9:1UI5:=L3_"TB%&[@J^QGUG!Z^9#,!Z%3/:"B<@XMI5HN?: M1,^N2O14B9Y'DNA9D9ID!!32BFIXC+RQ.)2.2 +AKQ@HN NC;Z_QP]&]\ GP M"W(+D+(!YQ?X;TG B-A^.I_[=-J,,JYZZ&IH?P_O.+"T"%P)@20%&3D9Y2(Z MN7.0C^_%I1H8,B)#DA#D^3PK3H?>.^!HQ"GN\CT141]9B0)M?K261CRYX[S2 M#P SU@I=(!/YL0B)]$<(3F512PJ'EB[KG\08?W(1K#J]3?$N7VB" N(4G^?? M7:J;4L3OLH?!/->+K8 XY\N!!RX.C0OE5^3UC'!7I?(P_"9,/(R?T.*D<;>H M&$B9C".1852N$BCVCQ<'15@$*4* \]4<0 O$-<"B_<]20?5LZ*;4%[_O&/1 M>*\I/&VQ'9GFC7]\=MT=F:XUZ'6N&:SKNC/NN]<#/G2N^Y,.&[!)MS]QAL^$ M;!%O8*ZB\Z\4C8N$T [PAC]]^==;+W;],$XC^=)A3=0U+8THO](Q-*V\;B*4 MTLJU?.FPM#3@X.5V(BG\ M!5VK6^:+^Q-LN>JMKL73,$K$A6!1F2^[;%%\CA>%2V_/V3TI47%LY4:87E ^ M1( W[X*,0*XP*2! 7H/?J(I$&:\:2NJL2'DIW M[8O2;[1:=!KQ?$M>*A2\0IGV)YBDOMW__\QO0_\6Z4.FUKT7B7/BN/,K8O;G MD*Q!%A5,B8XT@!]\;\0QL:B(-PN9&4L'N\K$*) ,;5W [9[$4V:RKI9,5,86 M!0#91C07E=P+B[54Q>::=)CGCEFZ2IH9==7]B(OOI608+.:0!3:(G&@E8+C^ M-3M^W6&0E<3*-,LP7Q3=L<(HK[F*'+*@"422BI28T@'('P&8(".A];^04=,M MZC&>PU6DK=<+Y%$I_\Y=2B]82 2-N[;30+2\N^->K9IL=%UK]?GUYWNH',][/7,:]N:=%R3.79_ M,EJR_#M7XF@K!H[[A$4U1K(JWNX%/R.RD\LU>X+]P'+(;D%=3CT^T=R2W4=)^G("X@SE>RKR8JW7GG^?/Z]GZ:0B@@^CTZ6Q+,>4HW 52;)9X"A;KAQK7)"2 M6R:E>4Y*>2(/"&^*) JC&K/!)I0N)@#V+G.), /I,^4960Z[L+HON=B5U1V+ MO\[.:OUKD>T&8"O3&E''NX\"Z^\_(@JDDXJ:5%]M?!%FMZ)-7!3)R4(3-WPT MM-'"0#@Z<79#Q^>WW*]4A,:;%@&E18OTO]+UCU$^NXC9IOGY5T09RS@SZ'^? MK,(X':&.+WBJ0B9>+"^3\+$NEA['^&NYR1.E,.*X7#"@G(OL<1'AC7>F9?Y?.4A$;R>(4:0 VB R6;.'G F,BS1#M5O#FF4CR M% =VN$ LH08K$X=Y$;]AD.)#(*43^1A8C5VRA3R;W$[@^@*6 MB)1@O/]*[B'S<>V[ <:>Z#X0N/68<>O+]627"DA>(C'BR4*6X!0&=-]V!0MA M]J8+0MA71T 9PH$HEA$'@<]UX>3S"B*-DM!E[:9<"12T2H M#AV\,FL"(6( #UCPCW1\DS5 7H L!O@O9%)6Y9XNS@OF-Y"(OQ;HAH8N^ [2 M1Z0D2X!BVJR$X$[ \[ <%_%B"6JGQR&[=9K;R2*\*AI:?T"/+ "S09J&VD=, M7"BL"7&O!"#=0&P//3O\ =R7M>"6TM;+5IWS"ZZZ<".C;-5 2>B"NB*M-U,: MTO4,70K1CLM5Z?\C+]6L:BA-+V4Y&9A\+)-)*&N9125RO<_O'(;++^@/VT*[ M7=G#M37O[GZRIC)25F6D]%1&BLI(V6]&2@F0EF5TL^U1M,LT[5YG.'&N6<_! M:-?$O1[UK/YUW[:&%N<]LVP-.L-!.R)=6%0V M2K0/'\#2HOK7ZWUS\8%A8MGL?% M'BU#TV@C6K&3@T<=-ZO@+WFE*^=AE:ZPX)@GCBV%MTFI-S<KO2FET^V MQ:EYP,!91?,Y")/"Q'+S,TNW?&99&"AQ42"K/*0G(=V"2EH/KE^(;W8>G,!C M=5UG8F'/#/ILLA?&[2W*M[_0[SA)'28%M\WYW MU*W>RK@"U(\B3_L9R76;OK'L%=Q35?&/@/5"IT!$?7=9%-8MZ3;C]5<\!))A M2U'U2A9S"45@--9>LB(<"12+X4?-ZK$+Z^7DU9K@TROM+]YWT+?!K^D,UN22 MU0[+^(QZ^VTJ@J77G6OK&FGY^FMXW;MV3/''/V?_Z'Z.?GV3_/;[!_?_7?TZ M4:D]"N+HNO?__M?,(E&%[UW__SC;__TO7]-__JI]R] ="-+WK[> MGZ___G_OO(OOT6\?QU_F_^?=/ZZ3+Q>P7B:>!FE57O=/BW\C+EN!C:_1+$@6 M-_=+]/N_;I@7_]WD-Z/^;]XTN'GW]S=M0,;*Y5Y_ZMK!C3F8?[M(NO]@Z>=/ M5[_].F^0H[^ MS&_DG7#MR\4_7ZUPV['_HSU^ M;7'7NNX,S,GUL#OJ7]O]SK W&8+WT;.6%'/OW?+R*-:8I)+2,@\$E_4(, CU]S8_%K L4/ MN)HK9D7@2(\)?7-7>/^5PC!0#=D-[(4'3YO."F/6YR^4I,W[!7;KQR148\5(&%8QG6XZA^W]M[LF#> MO*,"69)F#[L?EHUY$7/W I"$1UZ74C%6O/K_^4\:)J^W3B<>>_U,AJ7QLL<% MV4(]Q_S.OSO6V#*FR:R&:@9; ]O"8<#,H,Y+]NH'R@K"WS0LVT5YH*+*GRC9 M! Z"AXW+@R0OH[0VF^I_7Y5CY"?.FO73O.+BENSG- D6=(FMJ/ L=(E]9+ID M1::MTB5*E[2)BS?OI\CQP*.?R029S45:&1#5=M6+B?NU;EC 0T3[6XZ-2LW0/CV9+V(W(9N"S$:>>#*6+K.5E MY?-1_.FT&4$)\[8SC#K 6)+<7Z[^K@BQ4%Y]>9G18AM$YY715LV[6*$-LF2]_BO7M/25(E2=M*P$J2+DC2CB+"@Q/A%=7I_(1] MJ%8?Z+\4=5D248F@+'1%[6AJ5B[JF\B[YQKHQ$7QFO5/+A7B>_P>C&(7&YIR MEXOW&=:0SU84^%M;!G-MXH4L-RMYH)>0W*;94,MK?^MFTJ;+A'2MN HV<_533QVC;C!UO.>RJY@;5Z M,4O%6$/%YX>D_WVEM0I-:11X\70'5.U!P4ED5%MLBL_6JXJLKJY' O1BY(?N MM\H0^$X%V2@8A YYC,I1)8-7E SNJY+!#ZX[=[5T/;&Y=VT-SV#?''=;G67E,\<:7#W_[]_ MW3.C2!1LJOR2KVQKP: OYUC"ZU,:Q=@'.&MA*;M2E&K$?__WA MZMT7[>KCYT\?/[_Y^N'CKX\+?BB$M#X^=8A=K0M/;0A&O64)O]3>I#=IG&A= MT3#EP=AJL-;;,C9_B'_0_LF#@"=3[1=#>QN.;WC07IR=+ELI)+1A,QN[#Q0% M#/Z-7>KQ6-X;4R^\=9=1L27!WJRIC6M]^2GR FS'Z2\OZU6^K'T%1MIDGV]P M;E:78,8@;NNJ5S]@42K(LRK(,Z@_R%/V*42$I>)45#["H(ICKHP,W8;>>$U@ MJ#@%&(7C>_AGFLS\G_X_4$L#!!0 ( &^,!5D)KAY'@0D %U$ 8 M<')I;2TR,#(T,#8S,'AE>#,Q9#$N:'1M[5QM;]LX$OXKO!2WFP"693MQV[73 M *GC8G-HFVSJXFX_TM+((D*+6I*RX_WU-T-*MIRX;=)7I^L"32)R.!R^/ ]G M1B_'_PJ"89;R+(*8_3YZ\YK%*BJFD%D6:> 62^?"IFRD\IQG[ UH+:1D+[6( M)\!8N]5\VFQWNLU6$)P(M9[VNMW>X7-V^8;MOQ\- M#ISPV<5@].?ET/=Z^?[EZ_,!VPO"\+^'@S \&YWYBJ-FJ\U&FF=&6*$R+L-P M^':/[:76YKTPG,_GS?EA4^E).+H*4SN51Z%4RD SMO'>R3&5X$_@\'%R'(L9,W8AX<7>E.N)R *K\MYA M*[=];!EB]2V9FV N8IOVVJW6O_LYCV.130()B>T=-8^>K8JTF*3+,N6'UM,@ MN14S(-TUK9$$KGMC9=/^[0XVM^DS;B;T#5.#PI,@A2<&:VF^W?^A9N;,"EF&!O5-KW$](KYV*\ MUNO<-QPK&6/E\"858V%_>=)^VNH?HK;C<(RSEW\S6]=-(^FJGYDP:(H4=M%+ M11Q#A@*_/'G>:1WVCT,2_*9VU>8P0H2!?L D7KU_/63M0QZTC_;Y0=CNQOXO M/ZN#X=7H_-7YX'1T?O$6P73U[OWIVQ$;77SKJ?Z2(;T;#LC<GKX=O@LN_O=Z^"<['8RPQDMU6JW./W7WK-EUWF"C%/48-FRR-]% MZ:F(KALL FU%LF VY;:WU;-D^5@"&RL=@WZQU]I#TZ4L^7%Y;7(>5=>E>M\B MB)24/#?0J_[H?XOQ!4B[5DW=,&LG %TZ^P/)%ZJPO43<0-RO4;.WLIH>J_%_ M7(W BW6>-0^[Y4%BXWK]%PUD1AL@XK($I<,GFMR?I\)"0/,)O4S--<_[2SN> MD1WEU)S7J:(LP@W/4CX#IF$F8(X.ADV% M87\47"/GR 6[@EQIBVX'>X4M/%FT6\$?+%$:98'EV+F*&60Q-OY/D0$[;#48 MN2<-IA)VJ<54:53Y#O1,1#@"A!2JY'2^KO8M34E(JQFZY=^A:X>NST%79]O0 M]9(;Y[2SZ8)=XP DH'O?^ #(8H4F9 HC!%3%1<9XMF!%9G4!:#.Z_RY\0%!Q M-L4K+;AD"8^P2#,U%999Y>7N"&2 R#-<+TADRJ_!07>ITV!9C&9AEY+LISY( M(!(:8Q84RPBX!4)<,UR1*&6FH!^K]G/04"JA 4R%0>>:)MY'.1I,#I$SL,89 MD<)EQ^D9+S9/R(X>=O3P5>GA\-'0 [!$9 @[0O *9@UD!!3':EVK%UE"^NA MQ;\C6=!)C%#>B*D&$H*@RQPQ271"-"/EBB]*J)I;1B EQ2XF;I!$(5$ 24(A MDEW'QED6<9.R1*JYJ1A$PT08JSEVQ*G0CP#M;=2(P%3&?,3N'1?LN."K!.E/)L .\43 M_*J08,HP@)(FW7TH4R6DQ&5/J.C Z124N,@\>U!/C [\&JEH!VVRZF%=)G>[ M3+#+*B2IDPY*4'S3V]''8Z./[E'SV3:P1[?9N4,>^_Q@R]CC# R.!]'C//-/ M@[Q!04/$"W/_)N2]CP%A6O;DXP%5:%204W1OG'N 4I Y/90K6SD6=3?%Y]41 M]V5 L$)LHW1AJ%*@DX&V&"5%[&Y^F&)L1"RX%C0 X<,6YSAEI*DP%$HXPC0N M[G#.A#* !EET7JA1SFG]"\G)MAIO-SW=VR^X MPU+W]RCN359(<#,1$P=QHS*WJ[E!_J*D!Q$3UW%%$DA;@GML4("SJ5NB3,[*0>4%SI'JC(N((LBW'_. )<^F4"&<99$'L(:R(D*2:3( MK.%\R@(JI D$-%=_@S,AL3%,A*[AX?D M+S^5RW TA"K0SS$^=S+&9?^P+??QYOA2&BA%E#PDS\K&51K*<2SXV:'[,]3- MCE-VG+)]G!)O&Z><>9!^#/9T.Z?,:SB9C2SS ^'PBL5184F<-=BF0U:I\I8 M+*='25"7P?EG?WGSO)J4FV6D1FZ&HR&(G?^%0UGZ1@LFQ37(\C[2+?G&%X_I MQQ#.+E7S4V=ZNS]'IM<]IA%7+--8'=KD3=3QO3J_R0]X0*QU)QFS-(T7L;!* MFV5XXPI0Y70JK 7XB-7LJ):,\A4"\TUT+NA,2"4" EC'%,HDZ!WY- MH8'/$[C@P&4XW",@U8T,#RT/^@Q11YD6P">(<-TC# MQR<&@Q-33'%_X:RXP?BN-]_ WD4<.];84M;8NISJ*883B<:3N($8!N<\( NX MQZ]*NFAXYUYD,R5G0!Y^QB?E4V2Z]#=@FDNU *R=I\H[&7R-C) \ODJ\TGQ\ MISB]+.(VS8L]@O)>A=![PEI,=YJDFJK@,"2V^,Y\5U M,,=)^.2K-LMZ/C9*%A;Z%66LC_*[;X1:R_O3M'\_J?RY3@F[%?@Q*^#H9/U( M^BS#%.M'O(MGA$5#(ZR]U& $ M!=<--D@%)&QX U%!C@N[J*4]S\JDX7$H=N2ZG^X;JV]MS^_L/:AA'H*J+KO\UU"B ^^$=\YJN7C_+#;=Z*$=!D_CWET M/=&JR&**W)7N54Y(;9CK%:45G5M656Y+_3L494G],Q2W/W"1\PD$/G+C"0ZC MQV=*5(FRW]K-UM.EO^3+6BXAYC^#,Q9#(N:'1M[5QM/^.Q2K*)Y!:%FG@%DMGPB9L MH+*,I^P]:"VD9&^TB,? 6+-1?U%OMMKU1A"<'&-?O:*12COL5=@.6XW6$6N\ MZ+3;G<-7[/(]V_\TZ!TXX;.+WN#WR[X?]?+3FW?G/;87A.%_#GMA>#8X\Q5' M]4:3#31/C;!"I5R&8?_#'MM+K,TZ83B;S>JSP[K2XW!P%29V(H]"J92!>FSC MO9-C*L&?P..3XPE8SJ*$:P/V]=ZGP=O@%4I8826<'(?E;R\[5/'\Y#@64V;L M7,+KO0G78Y$&5F6=PT9FN]@RQ.HUF9M@)F*;=)J-QC^[&8]CD8X#"2/;.:H? MO5P6:3%.%F7*F];1(+D54Z"^*[U&$KCN#)5-NNL#;&J9E>U&*K7!B$^$G'>> M#\0$#/L ,W:E)CQ]7O,E^-N %J/G72=MQ/\ NT;SI$@A2,"IV:PW?^Y:N+$! MEV*,HU%IUT](IYB+XE9\T6C>]BLMX[#(]CUT MC7 G@UY3EMJ7(T^%0>6DL/-.(N(84A3XZ=FK5N.P>QR2X*-J>M>T7GUZUV?- M0QXTC_;Y0=ALQ_XO/\^]_M7@_.UY[W1P?O$!W>OJXZ?3#P,VN'CLR;_+I(_] M'JE;[)1&BUV\98-?^NSCZ=6;TP_]C\'%?]_U?V>GO0'6>*E6H_'-]].V[IX5 MO=K9XCRX<2V%#I&/3KO<8>JBYE M@9>+:Y/QJ+PNNOP+T 8MFKBS*R<"'3I] \DGZO<=D;B M!N)N!:J]EN7T6(W_X]("+]9Z63]L%P>+C:OU7V7(E#9 Q&7ADLX[4>7N+!$6 M II/Z*1JIGG67=6CF/I"Y69]7:O5^I45_RJ%_25UA'KI"9?=*E 41;C=6<*G MP#1,!B@@MZ"F-77(Z;Y?[EJ8DI-4,W?)_ M,^]:H1+E"KFU%&A :CM!6;CT0U;^K^RLZBH5^]=UZ7;*SD^?OI^VMLU/WW#C MP@$VF;-K-$ "'DRUS[AKK%"%5&'L@5UQD3*>SEF>6IT#ZHR!A0M,T#TYF^"5 M%ERR$8^P2#,U$999Y>5N":2 /FRXGI/(A%^# X%%GP;+8E0+AY2D/XU! I'0 M& VA6$H0D*.O:88K$B7,Y/1CV7X&&HI.R("),$C;:>)]_*3!9! Y!2OH$RE< M=IR>X7SSA.R 9@N]098N@4>^_Q@R]#C# S:@][C MHH4O.WF- IF(Y^;^32BB& *Z:3&2CU%4KK&#C'(7QA$-E(+4]4.9P"5%J1(> M?Q6RO($%4*I"NHBU%2Q.Y6C\F'1L2":T$&"!]*.0J64D^YH?#& M :9QL9"C)+HW+[B%4O=G%/<&*P2XJ8@)@[A1 MJ=O5W"!^42*&@(GKN 0)A"W!O6]0J+1I6(),AR<.(#S:K8A6$CF.J]T4!F6Y MSA"JC OMH@CWGU/ I73&D&+$)A&'L 8R@D(2R5/KL0@A4V1(DG9HM$.C+42C M:-O0J#_E,G>,@EP51B.(Z)F&%,R&%,@B$KL'0_*77\J*.!C"+I#G&)^%&>*R M?UZ7^[ YOI &2C:-'I+[9<,RH>4P%OSLT-TG&F:'*3M,V3Y,B;<-4\Z\D][E M]G2+J6A36RBZM_+\YMXP -BK5O)F(5J/(^%5=HLPAM7@%U.)L):@#M8TU!A M $7UL4#]7"?[""I(30Q1'_Q-::$2NN"/7*#Z#J;R-'(WJ0YVR=LGAPA;S1VV M+GE[*B6C/(5 ?Z>[%G0G)!* #EK$%(LDZ@SX-84&/D_@@@.7X7"/I92W=1_D M]D6^T]]'VG#*\Q@;&E@<\I^%B"(O@DW0SW&#U'Q\8C X,?D$]Q?.BC/&#[WY M5O@NXMBAQI:BQM;E5$\QG!AI/(EKZ,/@R .B@'LDK("+FB?W(ITJ.05B^"D? M%T^VZ8)OP"23:@Y8.TN4)QE\!8P0//Z6>*7^]$YQ>C7&;9K7>^3*>Z6'WLOM MO&(O?VGTC,M(CT25$Y/>1V0FW2&>%)5O%S%0QVT_\(T^]09/4D^8OK\#TFX QAN<-.\W&.P5K; MOP+@[?I;MM*VHN@37*F_;.:/;=U#%[$X( O"V,QNF'N6@SUKN'^// VA"6^_ MQ[9;RFTT<[=,3\-,L7J\NQ!&6%0T1R*';1NIYEW+O3^I7\B!5?RUIH>_-\M:AGD>MJZM?JN?V%BY5L0 MU;Q/>9/ENP00GWW%OW542<)YLYNW8H1D$30/>70]UBI/8PK7E>Z4%*1BYFI% MH45K3:N2M%0_M5&45+^TL?X-CXR/(?!Q&Q^A&1T^5:+,COW+-B2+VNX M+)C_-HC[V,C)GU!+ P04 " !OC 59G_P'YP & "0'0 & '!R:6TM M,C R-# V,S!X97@S,F0Q+FAT;>T9^U/;-OA?T=)K"W?Q*R$4[,!=&^B-76G3 M-MQN/RJ6'.N0+4]2"-E?OT^2'1SWO0T*-SB26)\>W_MEC7_QO-,RQV5*"?IU M=OX&$9$N"UIJE$J*-4!73.=H)JH*E^B<2LDX1Z\D(PN*4!3Z^WXT&/FAYQV/ MX:Q)O4F4,3H(1L$@'.RA<#\>C>+A 9J>HYV+V637+CYY-YG],3UU6*<7K]Z< M35#/"X+?AY,@.)F=N(D]/XS03.)2,P$70E&?:-(['AL(?%-,CL<%U1BE.9:*ZJ/>Q>RU=P K--.<'H^# MYM>MG0NR/AX3=H647G-ZU"NP7+#2TZ**AV&E$]@9P'1GS;6W8D3G<12&3Y,* M$\+*A<=II@'B#T)W:U8G]1.!H8Y*RD7DX= MG7YTF&AZK3W,V0*P&6CB1!+7TIAO85VYC7/!"4R>7N=LSO2S)]%^F P'?C0. MYB"_ZM9HW2;-K&[P7#$%I'"FUW'."*$E+'CVY& 0#I-Q8!;>*ETM&:;@8U3^ M@! G5&J6L10;A:/I4JHE!KZT0!]I:F!.O(?A_FU+]]]P(3*D MNVM.U^AEJA',#,)P@':B W3A?_0G_C9CT7 4[OZO#8>5@%;'P_VJXWQG)4I% M63IIN8!MA/Q^B25HAZ_1!UH):44\E:P0DBF0K;QB*5 U$1(FG57MF&V&JT&8 M3$0!(7]M1U&R"R$=O1:RJ)41>N]1)J3%4P$/@B *Y!'TV[*D:!CVD0G]?805 MRAAOTHA5/4V7$J(6H,8E0:?7$))+2": KV!*&3+@WZPDD$I03B4%NMN4.6X: MPOJ.HK,^FN4@7(5.?72> E<%2R_[:)(SF@$6P&H")'J7@0]1B6I#K+GLH]2Z M%SQ4+<_ZBBE:UC 1E4EWU5>\$7W3Y/LPCW7?;"[6Z+(4*Q#8@L;WVM UGG.* MYD(2*H]Z80\$R'F=WC9C5>&T'L,."1_2H'%9S-IRO:LA)M"DO?#**";%O(XX MUA,@#2>KG&GJ&0PT!I%)#"!W9N2_^/346Y6C!\E9B\+B:E4*#G7D6X%UV+HW MY,W -NOXD"TY!(L47((;]]RXK*1_+IFDIBQ4QF@[SK"#=]TCQ(-HM$.:4=;U M]XVOU\8?'0[W$A,%;@04&"L)K'$]VO[#M_W!_;=]5D(>*US^@RRJ,9Q# &J- MMW$,S$P:K215Q@?Z9AI#'P3;@!;,P4-4!4ZA^G97QDKHJ P<#B2V0K>Y#E8M MN7,A 4G3XE2=3.0_,%_X604/!"=(IA"D7('@!+^$#5*!JX &<\C/U*9]&!CI M$\JA ) PTCD40.FFGJ8FE==:L#4'-(BFN('H!VVO:;&@#($=YF"LEQ)"97Q7%)\Z:U M]LO3?S>*X$!U-*FN"QS>*=6T%K)TQ^ITVX-Q;U]]X?^8?2H@=O2@(WQV]7!/W>&.Y=!NPZ!Y&B5"VM.((C&"+U<+I9*HY'K M!;?$\&/&5P>K.I-'U34"4V $/0GMWT^62*""S[6>G3S^8'7\O9;]7\63NV#P M45T/2EUCMAUTS7/,--":PNP4RFIF"L4OO^PQY=\)=+"I%G(], M)8/6JH+>ZA,U[WY&M4W[Y%+NO550]RJI=>5#F*HX7L>6D4Y3.WCA#T>F.0)0 M39!MEK9+H]:Y6X=YYC5%TK$&=_+=%%=?O$@8[%4:A3;YF*. MT\N%%- #FK9&R+@I#UK"W)ZH:1ET:&L*BJV;NQJT=7'7O12L\()ZKK;%&; 3 MXRO!2"W+%X?^<%/*.%!H7_FXNT9[>7G\-U!+ P04 " !OC 59M*72"_P% M !U'0 & '!R:6TM,C R-# V,S!X97@S,F0R+FAT;>U9>V_;-A#_*IR+ MM@E@/2S9;B(Y!EHGQ;HU;=HZ&_8G+5(644K4*#J.]^EW)"5'5OI8NR5-L 2Q M+?%U[]_=29.?'.>DR'"14()^GI^^1D0DJYP6"B628@6C:Z8R-!=EB0MT2J5D MG*,7DI$E16C@NV-W$(Q-H-(K" W1VBO;. MY[-]L_CX[6S^Q]F)I7IV_N+UJQGJ.9[W>SCSO./YL9T8NOX S24N*J:8*##W MO),W/=3+E"HCSUNOU^XZ=(5<>O/W7J9R/O2X$!5UB2*]Z42/P#?%9#K)J<(H MR;"LJ#KJG<]?.@>P0C'%Z73B-;]V[4*0S71"V 6JU(;3HUZ.Y9(5CA)E%/JE MBF&G!].=-9?.FA&510/??QR7F!!6+!U.4P4C;CBZ&I-LF5T-"BM<)"G'BEU0 M?7KKW(13+*.%4%G<)?&IG66S+Q6%Y'CXFG?CL!O M125+G\9F=<7^HG T",A909V,6C[=P6&LZ*5R,&=+H*9'8ZN2J-;&8H?JVFY< M"$Y@\N0R8PNFGCP:C/TX#-Q@XBU ?^6-\;K+FE[=T+E@%;#"F=I$&2.$%K#@ MR:.#P _CB:<7WBA?+1TF$&-4?H,29U0JEK($:X.CLY6L5ACD4@)]H(D>L^H] M],TM:>W::D"/YZ)'"!_8^X&\3Y .GHI9%X;PW?>H51(0Z<$ M&01!%-@CZ)=505'H]Y&&_C["%4H9;]*(,3U-5A)0"TCC@J"32X#D I()T,M9 M56DVX%^O))!*4$8E!;[;G%EI&L;ZEJ-7??0K!1T E5,7'0O(3T4?3@=J&AC1 M;R L2$\KII781[.,T12]9 7D/H8Y>IM";%&):@>MI>^CQ(0=7)2MB/N"BQJ1 M,1&E3H/E%Z(4?344^C"/@578G&_0QT*L09%+&MWI %!XP2E:"$FH/.KY/5 @ MYW7:V]Y7)4[J>]@AX4,:,C:[C8; 0+VK8<93I+WP0ALFP;Q&(A,AD)[C=<84 M=30%&H'*)(8AL.\/>''RSQHUT MQ0%$$@@)KL-V&\J2_KEBDNIRL=).VPF&/;QO+P$G!J,]TMRE71S88D#M_(/# M]Q#/.]>#[]]_W@[OO^ZR _);;O C956$XA\"H<=XF,##3Z;6$ MM*)CH*^G,?1'L UX@:P"$R4$1=4WN])MMH$#B:G<30Z$52MN0TA ,C4TJTXF MPUJU:=8\'(2P3DN*QHU%VW&M-IKGG0_JH,#S+';[_I7:%,WNWJDU;H: M\&NH-A):J3Z/5X.!)<8,=NQ+>NA.T=L+D/W0)^R"C_OYRHMD:8!2ZX\,'"]R4 M!0S$[Q8'WQT+MZ&"8X#'"#U?+5>50B/;_'TJPW_-GVKXJ7/SH+Q$8%U&T"/? M_/U@*;W*N]YD=O+R/3+:]Z2/_PP?;D/ !UO='UM-V"Z"ZNN(*> U,4^0O_$Y MSL1CTP=KWU-K[YU)!M8LP9S7#+O_";R C2 MZ5"#9VZHF_<S6^BTSMTYS-'/'.*.-]B3;Z=4^NS;@F!8*N1???0C ML>O5D/G.MIW" B4L=6JC@%<2)\(1BI=?GL4(-'7<78(=\\O[$O%,T;RNG?4$L! A0#% M @ ;XP%6>9@LH8H$0 :;< !$ ( ! '!R:6TM,C R M-# V,S N>'-D4$L! A0#% @ ;XP%6;M6TV:/$ L.8 !4 M ( !5Q$ '!R:6TM,C R-# V,S!?8V%L+GAM;%!+ 0(4 Q0 ( &^, M!5D(GSH]6R\ O: @ 5 " 1DB !P&UL4$L! A0#% @ ;XP% M62?VTG^]0@ X+H$ !4 ( !D[4 '!R:6TM,C R-# V,S!? M<')E+GAM;%!+ 0(4 Q0 ( &^,!5GWX;X)2D " 'V=' 5 M " 8/X !P#$P<2YH=&U02P$"% ,4 " !OC 59 M":X>1X$) !=1 & @ $ .0, <')I;2TR,#(T,#8S,'AE M>#,Q9#$N:'1M4$L! A0#% @ ;XP%60&5X,S)D,2YH=&U02P$"% ,4 " !OC 59M*72"_P% !U'0 & M @ &T4@, <')I;2TR,#(T,#8S,'AE>#,R9#(N:'1M4$L%!@ 0 * H I@( .98 P $! end XML 82 prim-20240630x10q_htm.xml IDEA: XBRL DOCUMENT 0001361538 us-gaap:ShareBasedPaymentArrangementNonemployeeMember prim:EquityIncentivePlan2013Member 2024-04-01 2024-06-30 0001361538 us-gaap:ShareBasedPaymentArrangementNonemployeeMember prim:EquityIncentivePlan2013Member 2024-01-01 2024-06-30 0001361538 us-gaap:ShareBasedPaymentArrangementNonemployeeMember prim:EquityIncentivePlan2013Member 2023-04-01 2023-06-30 0001361538 us-gaap:ShareBasedPaymentArrangementNonemployeeMember prim:EquityIncentivePlan2013Member 2023-01-01 2023-06-30 0001361538 prim:LongTermRetentionPlanMember 2024-04-01 2024-06-30 0001361538 prim:LongTermRetentionPlanMember 2023-04-01 2023-06-30 0001361538 us-gaap:CommonStockMember 2024-04-01 2024-06-30 0001361538 us-gaap:CommonStockMember 2024-01-01 2024-06-30 0001361538 us-gaap:CommonStockMember 2023-04-01 2023-06-30 0001361538 us-gaap:CommonStockMember 2023-01-01 2023-06-30 0001361538 us-gaap:RetainedEarningsMember 2024-06-30 0001361538 us-gaap:AdditionalPaidInCapitalMember 2024-06-30 0001361538 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-06-30 0001361538 us-gaap:RetainedEarningsMember 2024-03-31 0001361538 us-gaap:AdditionalPaidInCapitalMember 2024-03-31 0001361538 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-03-31 0001361538 2024-03-31 0001361538 us-gaap:RetainedEarningsMember 2023-12-31 0001361538 us-gaap:AdditionalPaidInCapitalMember 2023-12-31 0001361538 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-12-31 0001361538 us-gaap:RetainedEarningsMember 2023-06-30 0001361538 us-gaap:AdditionalPaidInCapitalMember 2023-06-30 0001361538 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-06-30 0001361538 us-gaap:RetainedEarningsMember 2023-03-31 0001361538 us-gaap:AdditionalPaidInCapitalMember 2023-03-31 0001361538 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-03-31 0001361538 2023-03-31 0001361538 us-gaap:RetainedEarningsMember 2022-12-31 0001361538 us-gaap:AdditionalPaidInCapitalMember 2022-12-31 0001361538 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-12-31 0001361538 us-gaap:CommonStockMember 2024-06-30 0001361538 us-gaap:CommonStockMember 2024-03-31 0001361538 us-gaap:CommonStockMember 2023-12-31 0001361538 us-gaap:CommonStockMember 2023-06-30 0001361538 us-gaap:CommonStockMember 2023-03-31 0001361538 us-gaap:CommonStockMember 2022-12-31 0001361538 prim:RestrictedAndPerformanceStockUnitsMember 2024-04-01 2024-06-30 0001361538 prim:RestrictedAndPerformanceStockUnitsMember 2024-01-01 2024-06-30 0001361538 prim:RestrictedAndPerformanceStockUnitsMember 2023-04-01 2023-06-30 0001361538 prim:RestrictedAndPerformanceStockUnitsMember 2023-01-01 2023-06-30 0001361538 srt:MinimumMember 2025-04-01 2024-06-30 0001361538 srt:MaximumMember 2025-04-01 2024-06-30 0001361538 2024-07-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember us-gaap:FixedPriceContractMember prim:UAndDSegmentMember 2024-04-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember us-gaap:FixedPriceContractMember prim:EnergySegmentMember 2024-04-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:UnitPriceContractsMember prim:UAndDSegmentMember 2024-04-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:UnitPriceContractsMember prim:EnergySegmentMember 2024-04-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:NonMasterServiceAgreementCustomersMember prim:UAndDSegmentMember 2024-04-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:NonMasterServiceAgreementCustomersMember prim:EnergySegmentMember 2024-04-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:MasterServiceAgreementCustomersMember prim:UAndDSegmentMember 2024-04-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:MasterServiceAgreementCustomersMember prim:EnergySegmentMember 2024-04-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:CostReimbursableContractsMember prim:UAndDSegmentMember 2024-04-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:CostReimbursableContractsMember prim:EnergySegmentMember 2024-04-01 2024-06-30 0001361538 us-gaap:IntersegmentEliminationMember us-gaap:FixedPriceContractMember 2024-04-01 2024-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:UnitPriceContractsMember 2024-04-01 2024-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:NonMasterServiceAgreementCustomersMember 2024-04-01 2024-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:MasterServiceAgreementCustomersMember 2024-04-01 2024-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:CostReimbursableContractsMember 2024-04-01 2024-06-30 0001361538 us-gaap:IntersegmentEliminationMember 2024-04-01 2024-06-30 0001361538 us-gaap:FixedPriceContractMember 2024-04-01 2024-06-30 0001361538 prim:UnitPriceContractsMember 2024-04-01 2024-06-30 0001361538 prim:NonMasterServiceAgreementCustomersMember 2024-04-01 2024-06-30 0001361538 prim:MasterServiceAgreementCustomersMember 2024-04-01 2024-06-30 0001361538 prim:CostReimbursableContractsMember 2024-04-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember us-gaap:FixedPriceContractMember prim:UAndDSegmentMember 2024-01-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember us-gaap:FixedPriceContractMember prim:EnergySegmentMember 2024-01-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:UnitPriceContractsMember prim:UAndDSegmentMember 2024-01-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:UnitPriceContractsMember prim:EnergySegmentMember 2024-01-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:NonMasterServiceAgreementCustomersMember prim:UAndDSegmentMember 2024-01-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:NonMasterServiceAgreementCustomersMember prim:EnergySegmentMember 2024-01-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:MasterServiceAgreementCustomersMember prim:UAndDSegmentMember 2024-01-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:MasterServiceAgreementCustomersMember prim:EnergySegmentMember 2024-01-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:CostReimbursableContractsMember prim:UAndDSegmentMember 2024-01-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:CostReimbursableContractsMember prim:EnergySegmentMember 2024-01-01 2024-06-30 0001361538 us-gaap:IntersegmentEliminationMember us-gaap:FixedPriceContractMember 2024-01-01 2024-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:UnitPriceContractsMember 2024-01-01 2024-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:NonMasterServiceAgreementCustomersMember 2024-01-01 2024-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:MasterServiceAgreementCustomersMember 2024-01-01 2024-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:CostReimbursableContractsMember 2024-01-01 2024-06-30 0001361538 us-gaap:TimeAndMaterialsContractMember 2024-01-01 2024-06-30 0001361538 us-gaap:IntersegmentEliminationMember 2024-01-01 2024-06-30 0001361538 us-gaap:FixedPriceContractMember 2024-01-01 2024-06-30 0001361538 prim:UnitPriceContractsMember 2024-01-01 2024-06-30 0001361538 prim:NonMasterServiceAgreementCustomersMember 2024-01-01 2024-06-30 0001361538 prim:MasterServiceAgreementCustomersMember 2024-01-01 2024-06-30 0001361538 prim:CostReimbursableContractsMember 2024-01-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember us-gaap:FixedPriceContractMember prim:UAndDSegmentMember 2023-04-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember us-gaap:FixedPriceContractMember prim:EnergySegmentMember 2023-04-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:UnitPriceContractsMember prim:UAndDSegmentMember 2023-04-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:UnitPriceContractsMember prim:EnergySegmentMember 2023-04-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:NonMasterServiceAgreementCustomersMember prim:UAndDSegmentMember 2023-04-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:NonMasterServiceAgreementCustomersMember prim:EnergySegmentMember 2023-04-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:MasterServiceAgreementCustomersMember prim:UAndDSegmentMember 2023-04-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:MasterServiceAgreementCustomersMember prim:EnergySegmentMember 2023-04-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:CostReimbursableContractsMember prim:UAndDSegmentMember 2023-04-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:CostReimbursableContractsMember prim:EnergySegmentMember 2023-04-01 2023-06-30 0001361538 us-gaap:IntersegmentEliminationMember us-gaap:FixedPriceContractMember 2023-04-01 2023-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:UnitPriceContractsMember 2023-04-01 2023-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:NonMasterServiceAgreementCustomersMember 2023-04-01 2023-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:MasterServiceAgreementCustomersMember 2023-04-01 2023-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:CostReimbursableContractsMember 2023-04-01 2023-06-30 0001361538 us-gaap:IntersegmentEliminationMember 2023-04-01 2023-06-30 0001361538 us-gaap:FixedPriceContractMember 2023-04-01 2023-06-30 0001361538 prim:UnitPriceContractsMember 2023-04-01 2023-06-30 0001361538 prim:NonMasterServiceAgreementCustomersMember 2023-04-01 2023-06-30 0001361538 prim:MasterServiceAgreementCustomersMember 2023-04-01 2023-06-30 0001361538 prim:CostReimbursableContractsMember 2023-04-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember us-gaap:FixedPriceContractMember prim:UAndDSegmentMember 2023-01-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember us-gaap:FixedPriceContractMember prim:EnergySegmentMember 2023-01-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:UnitPriceContractsMember prim:UAndDSegmentMember 2023-01-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:UnitPriceContractsMember prim:EnergySegmentMember 2023-01-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:NonMasterServiceAgreementCustomersMember prim:UAndDSegmentMember 2023-01-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:NonMasterServiceAgreementCustomersMember prim:EnergySegmentMember 2023-01-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:MasterServiceAgreementCustomersMember prim:UAndDSegmentMember 2023-01-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:MasterServiceAgreementCustomersMember prim:EnergySegmentMember 2023-01-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:CostReimbursableContractsMember prim:UAndDSegmentMember 2023-01-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:CostReimbursableContractsMember prim:EnergySegmentMember 2023-01-01 2023-06-30 0001361538 us-gaap:IntersegmentEliminationMember us-gaap:FixedPriceContractMember 2023-01-01 2023-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:UnitPriceContractsMember 2023-01-01 2023-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:NonMasterServiceAgreementCustomersMember 2023-01-01 2023-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:MasterServiceAgreementCustomersMember 2023-01-01 2023-06-30 0001361538 us-gaap:IntersegmentEliminationMember prim:CostReimbursableContractsMember 2023-01-01 2023-06-30 0001361538 us-gaap:TimeAndMaterialsContractMember 2023-01-01 2023-06-30 0001361538 us-gaap:IntersegmentEliminationMember 2023-01-01 2023-06-30 0001361538 us-gaap:FixedPriceContractMember 2023-01-01 2023-06-30 0001361538 prim:UnitPriceContractsMember 2023-01-01 2023-06-30 0001361538 prim:NonMasterServiceAgreementCustomersMember 2023-01-01 2023-06-30 0001361538 prim:MasterServiceAgreementCustomersMember 2023-01-01 2023-06-30 0001361538 prim:CostReimbursableContractsMember 2023-01-01 2023-06-30 0001361538 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-04-01 2024-06-30 0001361538 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-01-01 2024-06-30 0001361538 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-04-01 2023-06-30 0001361538 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-01-01 2023-06-30 0001361538 us-gaap:RevolvingCreditFacilityMember 2022-08-01 0001361538 us-gaap:LetterOfCreditMember 2022-08-01 0001361538 us-gaap:RevolvingCreditFacilityMember 2024-06-30 0001361538 us-gaap:LetterOfCreditMember 2024-06-30 0001361538 prim:CreditFacilityWithCanadianBankMember 2024-06-30 0001361538 prim:ForeignLettersOfCreditMember 2024-06-30 0001361538 srt:MaximumMember 2024-06-30 0001361538 prim:UAndDSegmentMember 2024-06-30 0001361538 prim:EnergySegmentMember 2024-06-30 0001361538 prim:UAndDSegmentMember 2023-12-31 0001361538 prim:EnergySegmentMember 2023-12-31 0001361538 us-gaap:TradeNamesMember 2024-06-30 0001361538 us-gaap:CustomerRelationshipsMember 2024-06-30 0001361538 us-gaap:TradeNamesMember 2023-12-31 0001361538 us-gaap:CustomerRelationshipsMember 2023-12-31 0001361538 us-gaap:EmployeeStockMember 2024-01-01 2024-06-30 0001361538 us-gaap:EmployeeStockMember 2023-01-01 2023-06-30 0001361538 us-gaap:RetainedEarningsMember 2024-04-01 2024-06-30 0001361538 us-gaap:RetainedEarningsMember 2024-01-01 2024-06-30 0001361538 us-gaap:RetainedEarningsMember 2023-04-01 2023-06-30 0001361538 us-gaap:RetainedEarningsMember 2023-01-01 2023-06-30 0001361538 prim:SecondAgreementMember us-gaap:InterestRateSwapMember 2023-01-31 0001361538 us-gaap:InterestRateSwapMember 2024-04-01 2024-06-30 0001361538 us-gaap:InterestRateSwapMember 2024-01-01 2024-06-30 0001361538 us-gaap:InterestRateSwapMember 2023-04-01 2023-06-30 0001361538 us-gaap:InterestRateSwapMember 2023-01-01 2023-06-30 0001361538 us-gaap:InterestRateSwapMember us-gaap:LoansPayableMember 2023-01-31 0001361538 us-gaap:InterestRateSwapMember us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2024-06-30 0001361538 us-gaap:InterestRateSwapMember us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2023-12-31 0001361538 us-gaap:InterestRateSwapMember 2023-12-31 0001361538 us-gaap:InterestRateSwapMember 2024-06-30 0001361538 us-gaap:LoansPayableMember 2022-08-01 0001361538 us-gaap:MortgagesMember 2024-06-30 0001361538 us-gaap:LoansPayableMember 2024-06-30 0001361538 prim:CommercialEquipmentFinancingDueJune2018ToAugust2022Member 2024-06-30 0001361538 us-gaap:MortgagesMember 2023-12-31 0001361538 us-gaap:LoansPayableMember 2023-12-31 0001361538 prim:CommercialEquipmentFinancingDueJune2018ToAugust2022Member 2023-12-31 0001361538 us-gaap:InterestRateSwapMember us-gaap:LoansPayableMember 2024-01-01 2024-06-30 0001361538 prim:O2024Q2DividendsMember 2024-04-01 2024-06-30 0001361538 prim:O2024Q1DividendsMember 2024-01-01 2024-03-31 0001361538 prim:O2023Q4DividendsMember 2023-10-01 2023-12-31 0001361538 prim:O2023Q3DividendsMember 2023-07-01 2023-09-30 0001361538 prim:O2023Q2DividendsMember 2023-04-01 2023-06-30 0001361538 prim:O2023Q1DividendsMember 2023-01-01 2023-03-31 0001361538 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2024-06-30 0001361538 us-gaap:FairValueInputsLevel1Member us-gaap:FairValueMeasurementsRecurringMember 2023-12-31 0001361538 2023-06-30 0001361538 2022-12-31 0001361538 us-gaap:AdditionalPaidInCapitalMember 2024-04-01 2024-06-30 0001361538 us-gaap:AdditionalPaidInCapitalMember 2024-01-01 2024-06-30 0001361538 us-gaap:AdditionalPaidInCapitalMember 2023-04-01 2023-06-30 0001361538 us-gaap:AdditionalPaidInCapitalMember 2023-01-01 2023-06-30 0001361538 prim:SpecialPurposeEntityMember us-gaap:AccountsReceivableMember 2024-06-30 0001361538 srt:MaximumMember 2024-07-31 0001361538 2023-11-30 0001361538 2021-11-30 0001361538 prim:NonUnitedStatesMember 2023-01-01 2023-12-31 0001361538 us-gaap:EmployeeStockMember 2022-05-01 2022-05-31 0001361538 2024-07-01 2024-01-01 2024-06-30 0001361538 prim:NonUnitedStatesMember 2024-01-01 2024-06-30 0001361538 prim:NonUnitedStatesMember 2023-01-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:UAndDSegmentMember 2024-04-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:EnergySegmentMember 2024-04-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:UAndDSegmentMember 2024-01-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:EnergySegmentMember 2024-01-01 2024-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:UAndDSegmentMember 2023-04-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:EnergySegmentMember 2023-04-01 2023-06-30 0001361538 2023-04-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:UAndDSegmentMember 2023-01-01 2023-06-30 0001361538 us-gaap:OperatingSegmentsMember prim:EnergySegmentMember 2023-01-01 2023-06-30 0001361538 prim:LongTermRetentionPlanMember 2024-01-01 2024-06-30 0001361538 prim:LongTermRetentionPlanMember 2023-01-01 2023-06-30 0001361538 prim:CreditFacilityWithPrivateBankBankOfWestAndIBERIABANKCorporationMember 2022-08-01 2022-08-01 0001361538 2023-01-01 2023-06-30 0001361538 prim:TopTenCustomersMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2024-04-01 2024-06-30 0001361538 prim:TopTenCustomersMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2024-01-01 2024-06-30 0001361538 prim:TopTenCustomersMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2023-04-01 2023-06-30 0001361538 prim:TopTenCustomersMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-06-30 0001361538 prim:TopTenCustomersMember srt:MinimumMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2024-01-01 2024-06-30 0001361538 prim:TopTenCustomersMember srt:MaximumMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2024-01-01 2024-06-30 0001361538 2024-06-30 0001361538 2023-12-31 0001361538 2024-07-01 2024-07-31 0001361538 2024-04-01 2024-06-30 0001361538 2024-07-29 0001361538 2024-01-01 2024-06-30 shares iso4217:USD pure prim:customer prim:instrument iso4217:USD shares iso4217:CAD http://fasb.org/us-gaap/2024#AccruedLiabilitiesCurrent http://fasb.org/us-gaap/2024#InterestIncomeExpenseNonoperatingNet http://fasb.org/us-gaap/2024#InterestIncomeExpenseNonoperatingNet http://fasb.org/us-gaap/2024#InterestIncomeExpenseNonoperatingNet http://fasb.org/us-gaap/2024#PrepaidExpenseAndOtherAssetsCurrent 0001361538 --12-31 2024 Q2 false http://fasb.org/us-gaap/2024#PrepaidExpenseAndOtherAssetsCurrent http://fasb.org/us-gaap/2024#PrepaidExpenseAndOtherAssetsCurrent http://fasb.org/us-gaap/2024#PrepaidExpenseAndOtherAssetsCurrent http://fasb.org/us-gaap/2024#PrepaidExpenseAndOtherAssetsCurrent http://fasb.org/us-gaap/2024#OtherAssetsNoncurrent http://fasb.org/us-gaap/2024#InterestIncomeExpenseNonoperatingNet http://fasb.org/us-gaap/2024#AccruedLiabilitiesCurrent 10-Q true 2024-06-30 false 001-34145 Primoris Services Corporation DE 20-4743916 2300 N. Field Street, Suite 1900 Dallas TX 75201 214 740-5600 Common Stock, $0.0001 par value PRIM NYSE Yes Yes Large Accelerated Filer false false false 53672740 207363000 217778000 888267000 685439000 873008000 846176000 122583000 135840000 2091221000 1885233000 446314000 475929000 421024000 360507000 217283000 227561000 857650000 857650000 16396000 20547000 4049888000 3827427000 583664000 628962000 483878000 366476000 324732000 263492000 3217000 3202000 89270000 72903000 1484761000 1335035000 843758000 885369000 308114000 263454000 59444000 59565000 54580000 47912000 2750657000 2591335000 0.0001 0.0001 90000000 90000000 53672740 53672740 53366327 53366327 6000 6000 278830000 275846000 1023075000 961028000 -2680000 -788000 1299231000 1236092000 4049888000 3827427000 1563715000 1413377000 2976422000 2670273000 1377005000 1256113000 2656336000 2413276000 186710000 157264000 320086000 256997000 100118000 85571000 188706000 163581000 522000 898000 1072000 3593000 86070000 70795000 130308000 89823000 761000 376000 1321000 1302000 81000 713000 -45000 1044000 -17133000 -16884000 -35125000 -35349000 69779000 55000000 96459000 56820000 20236000 15968000 27973000 16478000 49543000 39032000 68486000 40342000 0.06 0.06 0.12 0.12 0.92 0.73 1.28 0.76 0.91 0.72 1.26 0.75 53640000 53301000 53565000 53243000 54653000 54324000 54522000 54083000 49543000 39032000 68486000 40342000 -619000 1378000 -1892000 1493000 48924000 40410000 66594000 41835000 53630490 6000 274711000 976749000 -2061000 1249405000 49543000 49543000 -619000 -619000 6400 298000 298000 35850 -133000 -133000 3954000 3954000 0.06 3217000 3217000 53672740 6000 278830000 1023075000 -2680000 1299231000 53366327 6000 275846000 961028000 -788000 1236092000 68486000 68486000 -1892000 -1892000 34844 1396000 1396000 271569 -4772000 -4772000 6360000 6360000 0.12 6439000 6439000 53672740 6000 278830000 1023075000 -2680000 1299231000 53282636 6000 265817000 845795000 -2505000 1109113000 39032000 39032000 1378000 1378000 10264 257000 257000 35973 -52000 -52000 3009000 3009000 0.06 3199000 3199000 53328873 6000 269031000 881628000 -1127000 1149538000 53124899 6000 263771000 847681000 -2620000 1108838000 40342000 40342000 1493000 1493000 49949 1263000 1263000 154025 -1391000 -1391000 5388000 5388000 0.12 6395000 6395000 53328873 6000 269031000 881628000 -1127000 1149538000 68486000 40342000 50274000 54754000 6360000 5388000 26237000 14735000 231000 2745000 2749000 982000 208407000 154016000 27953000 170479000 5183000 -27291000 2240000 1230000 -44520000 -21959000 117410000 136202000 4788000 -2354000 52521000 16037000 9362000 982000 -12397000 -80832000 34637000 42392000 73930000 23465000 -9300000 39293000 -9627000 390000000 370000000 26148000 51234000 4772000 1391000 6424000 6383000 -1760000 -2106000 -39104000 -41114000 1654000 946000 -10554000 -130627000 223542000 258991000 212988000 128364000 34090000 36956000 9192000 -16293000 120228000 92555000 3217000 3199000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Note 1—Nature of Business</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Organization and operations</span><b style="font-weight:bold;"> — </b>Primoris Services Corporation is one of the leading providers of infrastructure services operating mainly in the United States and Canada. We provide a wide range of construction, maintenance, replacement, fabrication and engineering services to a diversified base of customers through our two segments. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have longstanding customer relationships with utility, refining, petrochemical, power, midstream, and engineering companies, and state departments of transportation. We provide our services to a diversified base of customers, under a range of contracting options. A portion of our services are provided under Master Service Agreements (“MSA”), which are generally multi-year agreements. The remainder of our services are generated from contracts for specific construction or installation projects.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We are incorporated in the State of Delaware, and our corporate headquarters are located at 2300 N. Field Street, Suite 1900, Dallas, Texas 75201. Unless specifically noted otherwise, as used throughout these consolidated financial statements, “Primoris”, “the Company”, “we”, “our”, “us” or “its” refers to the business, operations and financial results of the Company and its wholly-owned subsidiaries.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Reportable Segments </span>— The current reportable segments include the Utilities segment and the Energy segment. See Note 14 – “<i style="font-style:italic;">Reportable Segments</i>” for a brief description of the reportable segments and their operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The classification of revenue and gross profit for segment reporting purposes can at times require judgment on the part of management. Our segments may perform services across industries or perform joint services for customers in multiple industries. To determine reportable segment gross profit, certain allocations, including allocations of shared and indirect costs, such as facility costs, equipment costs and indirect operating expenses, were made.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Note 2—Basis of Presentation</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Interim condensed consolidated financial statements</span> <b style="font-weight:bold;">—</b> The interim condensed consolidated financial statements for the three and six months ended June 30, 2024 and 2023 have been prepared in accordance with Rule 10-01 of Regulation S-X of the Securities Exchange Act of 1934, as amended. As such, certain disclosures, which would substantially duplicate the disclosures contained in our Annual Report on Form 10-K, filed on February 27, 2024, which contains our audited consolidated financial statements for the year ended December 31, 2023, have been omitted. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">This Form 10-Q should be read in conjunction with our most recent Annual Report on Form 10-K. The interim financial information is unaudited.  In the opinion of management, the interim information includes all adjustments (consisting of normal recurring adjustments) necessary for the fair presentation of the interim financial information. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-family:'TimesNewRoman,BoldItalic';font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-family:'TimesNewRoman,BoldItalic';font-style:italic;font-weight:bold;">Reclassification </span><b style="font-family:'TimesNewRoman,Bold';font-weight:bold;">— </b><span style="font-family:'TimesNewRoman';">Certain previously reported amounts have been reclassified to conform to the current year</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'TimesNewRoman';">presentation.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Restricted cash </span><b style="font-weight:bold;">— </b>Restricted cash consists primarily of cash balances that are restricted as to withdrawal or usage and contract retention payments made by customers into escrow bank accounts and are included in prepaid expenses and other current assets in our Condensed Consolidated Balance Sheets. Escrow cash accounts are released to us by customers as projects are completed in accordance with contract terms. The following tables provide a reconciliation of cash, cash equivalents and restricted cash reported within the Condensed Consolidated Balance Sheets to the totals of such amounts shown in the Condensed Consolidated Statements of Cash Flows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:88.22%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;width:29.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30,</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 207,363</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 122,692</p></td></tr><tr><td style="vertical-align:bottom;width:67.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_6n-HJkI4GU6ge6-Gna9ngQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Restricted cash included in prepaid expenses and other current assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 5,625</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 5,672</p></td></tr><tr><td style="vertical-align:bottom;width:67.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 212,988</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 128,364</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><div style="padding-left:31.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:87.86%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;width:28.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31,</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 217,778</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 248,692</p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_sigfAh-JeUWe2eiuk3tYYw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Restricted cash included in prepaid expense and other current assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 5,764</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 10,299</p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 223,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 258,991</p></td></tr></table></div><p style="font-family:'EYInterstate Light';font-size:12pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Accounts Receivable Securitization Facility </span>— In June 2023, we entered into an Accounts Receivable Securitization Facility (“the Facility”) with PNC Bank, National Association ("PNC") to improve cash flows from trade accounts receivable. In July 2024, we renewed the Facility for a two-year term, added Regions Bank (“Regions”) to the Facility, and increased the maximum purchase commitment to $150.0 million, at any one time. Fees associated with the Facility for the six months ended June 30, 2024, were $2.7 million and are included in interest expense in the Condensed Consolidated Statements of Income.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Under the Facility, certain of our designated subsidiaries may sell their trade accounts receivable as they are originated to a wholly owned bankruptcy remote Special Purpose Entity (“SPE”) created specifically for this purpose. We control and, therefore, consolidate the SPE in our consolidated financial statements. The SPE transfers ownership and control of qualifying accounts receivable to PNC and Regions up to the maximum purchase commitment. We and our related subsidiaries have no continuing involvement in the transferred accounts receivable, other than collection and administrative responsibilities, and, once sold, the accounts receivable are no longer available to satisfy our creditors or our related subsidiaries. We account for accounts receivable sold to the banking counterparty as a sale of financial assets and derecognize the trade accounts receivable from our Condensed Consolidated Balance Sheets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The total outstanding balance of trade accounts receivable that have been sold and derecognized is $75.0 million as of June 30, 2024. The SPE owned $266.4 million of trade accounts receivable as of June 30, 2024, which are included in Accounts receivable, net on the Condensed Consolidated Balance Sheets. For the six months ended June 30, 2024 and 2023, we received $10.0 million and $25.0 million, respectively, in cash proceeds from the Facility, and repaid $10.0 million and $0, respectively to the Facility, which are included in cash from operating activities in the Condensed Consolidated Statements of Cash Flows. As of June 30, 2024, we had $25.0 million available capacity under the Facility prior to the July renewal.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Customer concentration</span> — We operate in multiple industry sectors encompassing the construction of commercial, industrial and public works infrastructure assets primarily throughout the United States. Typically, the top ten customers in any one calendar year generate revenue that is approximately 35% to 45% of total revenue; however, the companies that comprise the top ten customers vary from year to year. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">For the three and six months ended June 30, 2024, approximately 39.7% and 42.3%, respectively, of total revenue was generated from our top ten customers and no one customer accounted for more than 10% of our total revenue.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="white-space:pre-wrap;"> For the three and six months ended June 30, 2023, approximately </span>39.5% and 38.1%, respectively, of total revenue was generated from our top ten customers and no one customer accounted for more than 10% of our total revenue. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Recently Issued Accounting Pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>In November 2023, the FASB issued ASU No. 2023-07, “Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures” which changes the accounting and reporting of segment disclosure requirements primarily through enhanced disclosure about significant segment expenses in accordance with FASB Accounting Standards Codification 280, Segment Reporting. This ASU is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The amendments should be applied prospectively on or after the effective date. We adopted the new standard on January 1, 2024, on a prospective basis. This ASU will likely result in us including additional required disclosures in the financial statement footnotes in our annual report on form 10-K commencing with the year ending December 31, 2024, but is not expected to have an effect on our consolidated financial position, results of operations or cash flows.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>In December 2023, the FASB issued ASU No. 2023-09, “Income Taxes (Topic 740): Improvements to Income Tax Disclosures”<i style="font-style:italic;"> </i>that requires presentation of specific categories of reconciling items, as well reconciling items that meet a quantitative threshold, in the reconciliation between the income tax provision and the income tax provision using statutory tax rates. The standard also requires disclosure of income taxes paid disaggregated by jurisdiction with separate disclosure of income taxes paid to individual jurisdictions that meet a quantitative threshold. ASU No. 2023-09 is effective for fiscal years beginning after December 15, 2024, with early adoption permitted. The amendments should be applied prospectively; however, entities have the option to apply retrospectively for each period presented. We do not expect the adoption of this new standard in 2025 to have an impact on our consolidated financial position, results of operations or cash flows.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-family:'TimesNewRoman,BoldItalic';font-style:italic;font-weight:bold;">Reclassification </span><b style="font-family:'TimesNewRoman,Bold';font-weight:bold;">— </b><span style="font-family:'TimesNewRoman';">Certain previously reported amounts have been reclassified to conform to the current year</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'TimesNewRoman';">presentation.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Restricted cash </span><b style="font-weight:bold;">— </b>Restricted cash consists primarily of cash balances that are restricted as to withdrawal or usage and contract retention payments made by customers into escrow bank accounts and are included in prepaid expenses and other current assets in our Condensed Consolidated Balance Sheets. Escrow cash accounts are released to us by customers as projects are completed in accordance with contract terms. The following tables provide a reconciliation of cash, cash equivalents and restricted cash reported within the Condensed Consolidated Balance Sheets to the totals of such amounts shown in the Condensed Consolidated Statements of Cash Flows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:88.22%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;width:29.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30,</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 207,363</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 122,692</p></td></tr><tr><td style="vertical-align:bottom;width:67.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_6n-HJkI4GU6ge6-Gna9ngQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Restricted cash included in prepaid expenses and other current assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 5,625</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 5,672</p></td></tr><tr><td style="vertical-align:bottom;width:67.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 212,988</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 128,364</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><div style="padding-left:31.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:87.86%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;width:28.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31,</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 217,778</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 248,692</p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_sigfAh-JeUWe2eiuk3tYYw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Restricted cash included in prepaid expense and other current assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 5,764</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 10,299</p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 223,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 258,991</p></td></tr></table></div> The following tables provide a reconciliation of cash, cash equivalents and restricted cash reported within the Condensed Consolidated Balance Sheets to the totals of such amounts shown in the Condensed Consolidated Statements of Cash Flows (in thousands):<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:88.22%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;width:29.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30,</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:67.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 207,363</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 122,692</p></td></tr><tr><td style="vertical-align:bottom;width:67.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_6n-HJkI4GU6ge6-Gna9ngQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Restricted cash included in prepaid expenses and other current assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 5,625</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 5,672</p></td></tr><tr><td style="vertical-align:bottom;width:67.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 212,988</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.86%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 128,364</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><div style="padding-left:31.5pt;"><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:87.86%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;width:28.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31,</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash and cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 217,778</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 248,692</p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_sigfAh-JeUWe2eiuk3tYYw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Restricted cash included in prepaid expense and other current assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 5,764</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 10,299</p></td></tr><tr><td style="vertical-align:bottom;width:68.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total cash, cash equivalents and restricted cash shown in the consolidated statements of cash flows</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.12%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 223,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.19%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.07%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 258,991</p></td></tr></table></div> 207363000 122692000 5625000 5672000 212988000 128364000 217778000 248692000 5764000 10299000 223542000 258991000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Accounts Receivable Securitization Facility </span>— In June 2023, we entered into an Accounts Receivable Securitization Facility (“the Facility”) with PNC Bank, National Association ("PNC") to improve cash flows from trade accounts receivable. In July 2024, we renewed the Facility for a two-year term, added Regions Bank (“Regions”) to the Facility, and increased the maximum purchase commitment to $150.0 million, at any one time. Fees associated with the Facility for the six months ended June 30, 2024, were $2.7 million and are included in interest expense in the Condensed Consolidated Statements of Income.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Under the Facility, certain of our designated subsidiaries may sell their trade accounts receivable as they are originated to a wholly owned bankruptcy remote Special Purpose Entity (“SPE”) created specifically for this purpose. We control and, therefore, consolidate the SPE in our consolidated financial statements. The SPE transfers ownership and control of qualifying accounts receivable to PNC and Regions up to the maximum purchase commitment. We and our related subsidiaries have no continuing involvement in the transferred accounts receivable, other than collection and administrative responsibilities, and, once sold, the accounts receivable are no longer available to satisfy our creditors or our related subsidiaries. We account for accounts receivable sold to the banking counterparty as a sale of financial assets and derecognize the trade accounts receivable from our Condensed Consolidated Balance Sheets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The total outstanding balance of trade accounts receivable that have been sold and derecognized is $75.0 million as of June 30, 2024. The SPE owned $266.4 million of trade accounts receivable as of June 30, 2024, which are included in Accounts receivable, net on the Condensed Consolidated Balance Sheets. For the six months ended June 30, 2024 and 2023, we received $10.0 million and $25.0 million, respectively, in cash proceeds from the Facility, and repaid $10.0 million and $0, respectively to the Facility, which are included in cash from operating activities in the Condensed Consolidated Statements of Cash Flows. As of June 30, 2024, we had $25.0 million available capacity under the Facility prior to the July renewal.</p> P2Y 150000000.0 2700000 75000000.0 266400000 10000000.0 25000000.0 10000000.0 0 25000000.0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Customer concentration</span> — We operate in multiple industry sectors encompassing the construction of commercial, industrial and public works infrastructure assets primarily throughout the United States. Typically, the top ten customers in any one calendar year generate revenue that is approximately 35% to 45% of total revenue; however, the companies that comprise the top ten customers vary from year to year. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">For the three and six months ended June 30, 2024, approximately 39.7% and 42.3%, respectively, of total revenue was generated from our top ten customers and no one customer accounted for more than 10% of our total revenue.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="white-space:pre-wrap;"> For the three and six months ended June 30, 2023, approximately </span>39.5% and 38.1%, respectively, of total revenue was generated from our top ten customers and no one customer accounted for more than 10% of our total revenue. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 10 10 0.35 0.45 10 0.397 0.423 10 10 0.395 0.381 10 10 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Recently Issued Accounting Pronouncements</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>In November 2023, the FASB issued ASU No. 2023-07, “Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures” which changes the accounting and reporting of segment disclosure requirements primarily through enhanced disclosure about significant segment expenses in accordance with FASB Accounting Standards Codification 280, Segment Reporting. This ASU is effective for fiscal years beginning after December 15, 2023, and interim periods within fiscal years beginning after December 15, 2024, with early adoption permitted. The amendments should be applied prospectively on or after the effective date. We adopted the new standard on January 1, 2024, on a prospective basis. This ASU will likely result in us including additional required disclosures in the financial statement footnotes in our annual report on form 10-K commencing with the year ending December 31, 2024, but is not expected to have an effect on our consolidated financial position, results of operations or cash flows.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>In December 2023, the FASB issued ASU No. 2023-09, “Income Taxes (Topic 740): Improvements to Income Tax Disclosures”<i style="font-style:italic;"> </i>that requires presentation of specific categories of reconciling items, as well reconciling items that meet a quantitative threshold, in the reconciliation between the income tax provision and the income tax provision using statutory tax rates. The standard also requires disclosure of income taxes paid disaggregated by jurisdiction with separate disclosure of income taxes paid to individual jurisdictions that meet a quantitative threshold. ASU No. 2023-09 is effective for fiscal years beginning after December 15, 2024, with early adoption permitted. The amendments should be applied prospectively; however, entities have the option to apply retrospectively for each period presented. We do not expect the adoption of this new standard in 2025 to have an impact on our consolidated financial position, results of operations or cash flows.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Note 3—Fair Value Measurements</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">ASC Topic 820, “<i style="font-style:italic;">Fair Value Measurements and Disclosures</i>” (“ASC Topic 820”), defines fair value, establishes a framework for measuring fair value in U.S. generally accepted accounting principles (“GAAP”) and requires certain disclosures about fair value measurements. ASC Topic 820 addresses fair value GAAP for financial assets and financial liabilities that are re-measured and reported at fair value at each reporting period and for non-financial assets and liabilities that are re-measured and reported at fair value on a non-recurring basis.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In general, fair values determined by Level 1 inputs use quoted prices (unadjusted) in active markets for identical assets or liabilities. Fair values determined by Level 2 inputs use data points that are observable such as quoted prices, interest rates and yield curves. Fair values determined by Level 3 inputs are “unobservable data points” for the asset or liability and include situations where there is little, if any, market activity for the asset or liability.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table presents, for each of the fair value hierarchy levels identified under ASC Topic 820, our financial assets and liabilities that are required to be measured at fair value as of June 30, 2024 and December 31, 2023 (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:51.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fair Value Measurements at Reporting Date</b></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Significant</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Quoted Prices</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Significant</b></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">in Active Markets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Observable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Unobservable</b></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">for Identical Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Inputs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Inputs</b></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">(Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Assets as of June 30, 2024:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Cash and cash equivalents </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 207,363</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Interest rate swap</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,864</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Assets as of December 31, 2023:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Cash and cash equivalents </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 217,778</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Interest rate swap</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,633</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="white-space:pre-wrap;">Other financial instruments not listed in the table consist of accounts receivable, accounts payable and certain accrued liabilities. These financial instruments generally approximate fair value based on their short-term nature. The carrying value of our long-term debt approximates fair value based on comparison with current prevailing market rates for loans of similar risks and maturities. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The interest rate swap is measured at fair value using the income approach, which discounts the future net cash settlements expected under the derivative contracts to a present value. These valuations primarily utilize indirectly observable inputs, including contractual terms, interest rates and yield curves observable at commonly quoted intervals. See Note 8 – “<i style="font-style:italic;">Derivative Instruments</i>” for additional information.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table presents, for each of the fair value hierarchy levels identified under ASC Topic 820, our financial assets and liabilities that are required to be measured at fair value as of June 30, 2024 and December 31, 2023 (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:51.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fair Value Measurements at Reporting Date</b></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Significant</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Quoted Prices</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Significant</b></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">in Active Markets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Observable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Unobservable</b></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">for Identical Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Inputs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Inputs</b></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.11%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">(Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Assets as of June 30, 2024:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Cash and cash equivalents </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 207,363</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Interest rate swap</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,864</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Assets as of December 31, 2023:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Cash and cash equivalents </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 217,778</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:45.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Interest rate swap</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,633</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td></tr></table> 207363000 1864000 217778000 1633000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Note 4—Revenue</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We generate revenue under a range of contracting types, including fixed-price, unit-price, time and material, and cost reimbursable plus fee contracts, each of which has a different risk profile. For the six months ended June 30, 2024 and 2023, $2,116.8 million, and $1,777.6 million, respectively, of our revenue is derived from contracts where scope is adequately defined, and therefore we can reasonably estimate total contract value. For these contracts, revenue is recognized over time as work is completed because of the continuous transfer of control to the customer (typically using an input measure such as costs incurred to date relative to total estimated costs at completion to measure progress). For certain contracts, where scope is not adequately defined and we cannot reasonably estimate total contract value, revenue is recognized either on an input basis, based on contract costs incurred as defined within the respective contracts, or an output basis, based on units completed. Costs to obtain contracts are generally not significant and are expensed in the period incurred.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We evaluate whether two or more contracts should be combined and accounted for as one single performance obligation and whether a single contract should be accounted for as more than one performance obligation. ASC 606, <i style="font-style:italic;">Revenue from Contracts with Customers</i>, defines a performance obligation as a contractual promise to transfer a distinct good or service to a customer. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. Our evaluation requires significant judgment and the decision to combine a group of contracts or separate a contract into multiple performance obligations could change the amount of revenue and profit recorded in a given period. The majority of our contracts have a single performance obligation, as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contract and, therefore, is not distinct. However, occasionally we have contracts with multiple performance obligations. For contracts with multiple performance obligations, we allocate the contract’s transaction price to each performance obligation using the observable standalone selling price, if available, or alternatively our best estimate of the standalone selling price of each distinct performance obligation in the contract. The primary method used to estimate standalone selling price is the expected cost plus a margin approach for each performance obligation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> <span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">As of June 30, 2024, we had $5.1 billion of remaining performance obligations. We expect to recognize 49.3% of our remaining performance obligations as revenue during the next 12 months and substantially all of the remaining balance in the 12 to 18 months thereafter.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Accounting for long-term contracts involves the use of various techniques to estimate total transaction price and costs. For long-term contracts, transaction price, estimated cost at completion and total costs incurred to date are used to calculate revenue earned. Unforeseen events and circumstances can alter the estimate of the costs and potential profit associated with a particular contract. Total estimated costs, and thus contract revenue and income, can be impacted by changes in productivity, scheduling, the unit cost of labor, subcontracts, materials and equipment. Additionally, external factors such as weather, client needs, client delays in providing permits and approvals, labor availability, governmental regulation, politics and pandemics may affect the progress of a project’s completion, and thus the timing of revenue recognition. To the extent that original cost estimates are modified, estimated costs to complete increase, delivery schedules are delayed, or progress under a contract is otherwise impeded, cash flow, revenue recognition and profitability from a particular contract may be adversely affected. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The nature of our contracts gives rise to several types of variable consideration, including contract modifications (change orders and claims), liquidated damages, volume discounts, performance bonuses, incentive fees, and other terms that can either increase or decrease the transaction price. We estimate variable consideration as the most likely amount to which we expect to be entitled. We include estimated amounts in the transaction price to the extent we believe we have an enforceable right, and it is probable that a significant reversal of cumulative revenue recognized will not occur. Our estimates of variable consideration and the determination of whether to include estimated amounts in the transaction price are based largely on an assessment of our anticipated performance and all information (historical, current and forecasted) that is reasonably available to us at this time. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contract modifications result from changes in contract specifications or requirements. We consider unapproved change orders to be contract modifications for which customers have not agreed to both scope and price. We consider claims to be contract modifications for which we seek, or will seek, to collect from customers, or others, for customer-caused changes in contract specifications or design, or other customer-related causes of unanticipated additional contract costs on which there is no agreement with customers. Claims can also be caused by non-customer-caused changes, such as rain or other weather delays. Costs associated with contract modifications are included in the estimated costs to complete the contracts and are treated as project costs when incurred. In most instances, contract modifications are for goods or services that are not distinct, and, therefore, are accounted for as part of the existing contract. The effect of a contract modification on the transaction price, and our measure of progress for the performance obligation to which it relates, is recognized as an adjustment to revenue on a cumulative catch-up basis. In some cases, settlement of contract modifications may not occur until after completion of work under the contract.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">As a significant change in one or more of these estimates could affect the profitability of our contracts, we review and update our contract-related estimates regularly. We recognize adjustments in estimated profit on contracts under the cumulative catch-up method. Under this method, the cumulative impact of the profit adjustment is recognized in the period the adjustment is identified. Revenue and profit in future periods of contract performance are recognized using the adjusted estimate. In the three months ended June 30, 2024, revenue was positively impacted by $3.9 million as a result of changes in estimates associated with performance obligations satisfied prior to March 31, 2024. In the six months ended June 30, 2024, revenue was negatively impacted by $0.7 million as a result of changes in estimates associated with performance obligations satisfied prior to December 31, 2023. If at any time the estimate of contract profitability indicates an anticipated loss on a contract, the projected loss is recognized in full, including the reversal of any previously recognized profit, in the period it is identified and recognized as an “accrued loss provision” which is included in “Contract liabilities” on the Condensed Consolidated Balance Sheets. For contract revenue recognized over time, the accrued loss provision is adjusted so that the gross profit for the contract remains zero in future periods. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">As of June 30, 2024, we had approximately $191.9 million of unapproved contract modifications included in the aggregate transaction prices. These contract modifications were in the process of being negotiated in the normal course of business. Approximately $177.9 million of the contract modifications had been recognized as revenue on a cumulative catch-up basis through June 30, 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In all forms of contracts, we estimate the collectability of contract amounts at the same time that we estimate project costs. If we anticipate that there may be issues associated with the collectability of the full amount calculated as the transaction price, we may reduce the amount recognized as revenue to reflect the uncertainty associated with realization of the eventual cash collection. For example, when a cost reimbursable project exceeds the client’s expected budget amount, the client frequently requests an adjustment to the final amount. Similarly, some utility clients reserve the right to audit costs for significant periods after performance of the work.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The timing of when we bill our customers is generally dependent upon agreed-upon contractual terms, milestone billings based on the completion of certain phases of the work, or when services are provided. Sometimes, billing occurs subsequent to revenue recognition, resulting in unbilled revenue, which is a contract asset. Also, we sometimes receive advances or deposits from our customers before revenue is recognized, resulting in deferred revenue, which is a contract liability. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The caption “Contract assets” in the Condensed Consolidated Balance Sheets represents the following:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:54pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">unbilled revenue, which arises when revenue has been recorded but the amount will not be billed until a later date;</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 72pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:54pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">retainage amounts for the portion of the contract price earned by us for work performed, but held for payment by the customer as a form of security until we reach certain construction milestones; and</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 72pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:54pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">contract materials for certain job specific materials not yet installed, which are valued using the specific identification method relating to the cost incurred to a specific project. </span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contract assets consist of the following (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:63.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:63.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:63.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:63.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Unbilled revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 609,247</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 604,166</p></td></tr><tr><td style="vertical-align:bottom;width:63.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Retention receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 217,971</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 202,358</p></td></tr><tr><td style="vertical-align:bottom;width:63.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Contract materials (not yet installed)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 45,790</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 39,652</p></td></tr><tr><td style="vertical-align:bottom;width:63.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 873,008</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 846,176</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contract assets increased by $26.8 million compared to December 31, 2023, primarily due to higher retention receivable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The caption “Contract liabilities” in the Condensed Consolidated Balance Sheets represents the following:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:56.2pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">deferred revenue, which arises when billings are in excess of revenue recognized to date; and</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:56.2pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">the accrued loss provision.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contract liabilities consist of the following (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:62.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:62.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:62.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:62.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 482,014</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 363,159</p></td></tr><tr><td style="vertical-align:bottom;width:62.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued loss provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,864</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 3,317</p></td></tr><tr><td style="vertical-align:bottom;width:62.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 483,878</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 366,476</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contract liabilities increased by $117.4 million compared to December 31, 2023, due to higher deferred revenue. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Revenue recognized for the six months ended June 30, 2024, that was included in the contract liability balance as of December 31, 2023, was approximately $304.1 million.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">The following tables present our revenue disaggregated into various categories.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">MSA and Non-MSA revenue was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:49.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the three months ended June 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Non-MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 496,458</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 124,340</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 620,798</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 77,952</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 895,540</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 973,492</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (44)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (30,531)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (30,575)</p></td></tr><tr><td style="vertical-align:top;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 574,366</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 989,349</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,563,715</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:49.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the six months ended June 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Non-MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 877,956</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 230,766</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,108,722</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 170,718</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,750,352</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,921,070</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (238)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (53,132)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (53,370)</p></td></tr><tr><td style="vertical-align:top;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,048,436</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,927,986</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,976,422</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:49.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the three months ended June 30, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Non-MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 480,131</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 169,107</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 649,238</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 67,206</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 711,509</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 778,715</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (2,950)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (11,626)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (14,576)</p></td></tr><tr><td style="vertical-align:top;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 544,387</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 868,990</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,413,377</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:49.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the six months ended June 30, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Non-MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 853,767</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 329,234</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,183,001</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 144,356</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,362,015</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,506,371</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (4,617)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (14,482)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (19,099)</p></td></tr><tr><td style="vertical-align:top;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 993,506</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,676,767</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,670,273</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Revenue by contract type was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:60.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the three months ended June 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fixed-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Unit-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Cost reimbursable (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 93,571</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 387,980</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 139,247</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 620,798</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 539,406</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 164,600</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 269,486</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 973,492</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (30,536)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (12)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (27)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (30,575)</p></td></tr><tr><td style="vertical-align:top;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 602,441</p></td><td style="vertical-align:top;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 552,568</p></td><td style="vertical-align:top;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:13.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 408,706</p></td><td style="vertical-align:top;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:11.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,563,715</p></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:9pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:9pt;font-style:normal;font-weight:normal;">Includes time and material and cost reimbursable plus fee contracts.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:60.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the six months ended June 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fixed-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Unit-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Cost reimbursable (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 180,571</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 685,405</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 242,746</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,108,722</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,142,706</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 307,389</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 470,975</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,921,070</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (51,485)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,765)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (120)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (53,370)</p></td></tr><tr><td style="vertical-align:top;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,271,792</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 991,029</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 713,601</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,976,422</p></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:9pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:9pt;font-style:normal;font-weight:normal;">Includes time and material and cost reimbursable plus fee contracts.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:60.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the three months ended June 30, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fixed-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Unit-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Cost reimbursable (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 101,738</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 411,594</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 135,906</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 649,238</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 484,996</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 153,892</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 139,827</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 778,715</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (3,310)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (11,008)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (258)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (14,576)</p></td></tr><tr><td style="vertical-align:top;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 583,424</p></td><td style="vertical-align:top;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 554,478</p></td><td style="vertical-align:top;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:13.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 275,475</p></td><td style="vertical-align:top;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:11.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,413,377</p></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:9pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:9pt;font-style:normal;font-weight:normal;">Includes time and material and cost reimbursable plus fee contracts.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:60.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the six months ended June 30, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fixed-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Unit-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Cost reimbursable (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 187,685</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 734,965</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 260,351</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,183,001</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,014,560</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 280,219</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 211,592</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,506,371</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (6,059)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (11,866)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,174)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (19,099)</p></td></tr><tr><td style="vertical-align:top;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,196,186</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,003,318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 470,769</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,670,273</p></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:9pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:9pt;font-style:normal;font-weight:normal;">Includes time and material and cost reimbursable plus fee contracts.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Each of these contract types has a different risk profile. Typically, we assume more risk with fixed-price contracts. Unforeseen events and circumstances can alter the estimate of the costs and potential profit associated with a particular fixed-price contract. However, these types of contracts offer additional profits when we complete the work for less cost than originally estimated. Unit-price and cost reimbursable contracts generally subject us to lower risk. Accordingly, the associated fees are usually lower than fees earned on fixed-price contracts. Under these contracts, our profit may vary if actual costs vary significantly from the negotiated rates.</p> 2116800000 1777600000 5100000000 0.493 P12M P12M P18M 3900000 -700000 191900000 177900000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contract assets consist of the following (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:63.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:63.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:63.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:63.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Unbilled revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 609,247</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 604,166</p></td></tr><tr><td style="vertical-align:bottom;width:63.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Retention receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 217,971</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 202,358</p></td></tr><tr><td style="vertical-align:bottom;width:63.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Contract materials (not yet installed)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 45,790</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 39,652</p></td></tr><tr><td style="vertical-align:bottom;width:63.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 873,008</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.37%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.77%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 846,176</p></td></tr></table> 609247000 604166000 217971000 202358000 45790000 39652000 873008000 846176000 26800000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Contract liabilities consist of the following (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:62.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.65%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:62.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:62.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:62.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.65%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 482,014</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 363,159</p></td></tr><tr><td style="vertical-align:bottom;width:62.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued loss provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,864</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 3,317</p></td></tr><tr><td style="vertical-align:bottom;width:62.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.65%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 483,878</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.35%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 366,476</p></td></tr></table> 482014000 363159000 1864000 3317000 483878000 366476000 117400000 304100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">MSA and Non-MSA revenue was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:49.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the three months ended June 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Non-MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 496,458</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 124,340</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 620,798</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 77,952</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 895,540</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 973,492</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (44)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (30,531)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (30,575)</p></td></tr><tr><td style="vertical-align:top;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 574,366</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 989,349</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,563,715</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:49.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the six months ended June 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Non-MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 877,956</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 230,766</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,108,722</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 170,718</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,750,352</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,921,070</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (238)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (53,132)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (53,370)</p></td></tr><tr><td style="vertical-align:top;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,048,436</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,927,986</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,976,422</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:49.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the three months ended June 30, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Non-MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 480,131</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 169,107</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 649,238</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 67,206</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 711,509</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 778,715</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (2,950)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (11,626)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (14,576)</p></td></tr><tr><td style="vertical-align:top;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 544,387</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 868,990</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,413,377</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:49.08%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the six months ended June 30, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Non-MSA</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 853,767</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 329,234</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,183,001</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 144,356</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,362,015</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,506,371</p></td></tr><tr><td style="vertical-align:bottom;width:48.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (4,617)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (14,482)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.84%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (19,099)</p></td></tr><tr><td style="vertical-align:top;width:48.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 993,506</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,676,767</p></td><td style="vertical-align:top;white-space:nowrap;width:2.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.72%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:12.84%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,670,273</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Revenue by contract type was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:60.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the three months ended June 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fixed-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Unit-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Cost reimbursable (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 93,571</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 387,980</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 139,247</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 620,798</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 539,406</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 164,600</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 269,486</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 973,492</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (30,536)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (12)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (27)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (30,575)</p></td></tr><tr><td style="vertical-align:top;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 602,441</p></td><td style="vertical-align:top;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 552,568</p></td><td style="vertical-align:top;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:13.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 408,706</p></td><td style="vertical-align:top;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:11.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,563,715</p></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:9pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:9pt;font-style:normal;font-weight:normal;">Includes time and material and cost reimbursable plus fee contracts.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:60.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the six months ended June 30, 2024</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fixed-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Unit-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Cost reimbursable (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 180,571</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 685,405</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 242,746</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,108,722</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,142,706</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 307,389</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 470,975</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,921,070</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (51,485)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,765)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (120)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (53,370)</p></td></tr><tr><td style="vertical-align:top;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,271,792</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 991,029</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 713,601</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,976,422</p></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:9pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:9pt;font-style:normal;font-weight:normal;">Includes time and material and cost reimbursable plus fee contracts.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:60.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the three months ended June 30, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fixed-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Unit-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Cost reimbursable (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 101,738</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 411,594</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 135,906</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 649,238</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 484,996</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 153,892</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 139,827</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 778,715</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (3,310)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (11,008)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (258)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (14,576)</p></td></tr><tr><td style="vertical-align:top;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:top;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 583,424</p></td><td style="vertical-align:top;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 554,478</p></td><td style="vertical-align:top;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:13.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 275,475</p></td><td style="vertical-align:top;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:top;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:top;white-space:nowrap;width:11.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,413,377</p></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:9pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:9pt;font-style:normal;font-weight:normal;">Includes time and material and cost reimbursable plus fee contracts.</span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:60.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the six months ended June 30, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fixed-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Unit-price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Cost reimbursable (1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 187,685</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 734,965</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 260,351</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,183,001</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,014,560</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 280,219</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 211,592</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,506,371</p></td></tr><tr><td style="vertical-align:bottom;width:37.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (6,059)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (11,866)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,174)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (19,099)</p></td></tr><tr><td style="vertical-align:top;width:37.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,196,186</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.73%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,003,318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 470,769</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.19%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.76%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,670,273</p></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:9pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:9pt;font-style:normal;font-weight:normal;">Includes time and material and cost reimbursable plus fee contracts.</span></td></tr></table> 496458000 124340000 620798000 77952000 895540000 973492000 -44000 -30531000 -30575000 574366000 989349000 1563715000 877956000 230766000 1108722000 170718000 1750352000 1921070000 -238000 -53132000 -53370000 1048436000 1927986000 2976422000 480131000 169107000 649238000 67206000 711509000 778715000 -2950000 -11626000 -14576000 544387000 868990000 1413377000 853767000 329234000 1183001000 144356000 1362015000 1506371000 -4617000 -14482000 -19099000 993506000 1676767000 2670273000 93571000 387980000 139247000 620798000 539406000 164600000 269486000 973492000 -30536000 -12000 -27000 -30575000 602441000 552568000 408706000 1563715000 180571000 685405000 242746000 1108722000 1142706000 307389000 470975000 1921070000 -51485000 -1765000 -120000 -53370000 1271792000 991029000 713601000 2976422000 101738000 411594000 135906000 649238000 484996000 153892000 139827000 778715000 -3310000 -11008000 -258000 -14576000 583424000 554478000 275475000 1413377000 187685000 734965000 260351000 1183001000 1014560000 280219000 211592000 1506371000 -6059000 -11866000 -1174000 -19099000 1196186000 1003318000 470769000 2670273000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Note 5—Goodwill and Intangible Assets</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The carrying amount of goodwill by reportable segment was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:66.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:66.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:66.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Reporting Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 703,462</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 703,462</p></td></tr><tr><td style="vertical-align:bottom;width:66.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 154,188</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 154,188</p></td></tr><tr><td style="vertical-align:bottom;width:66.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 857,650</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 857,650</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The table below summarizes the intangible asset categories and amounts, which are amortized on a straight-line basis (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:97.12%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:17.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:17.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:40.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:39.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:17.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Carrying</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:11.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:11.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Intangible assets, net</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:12.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Carrying</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:11.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:11.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Intangible assets, net</b></p></td></tr><tr><td style="vertical-align:bottom;width:17.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Tradenames</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,220</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (17,164)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,056</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,220</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (15,799)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 3,421</p></td></tr><tr><td style="vertical-align:bottom;width:17.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Customer relationships </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 295,977</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (80,750)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 215,227</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 295,977</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (71,837)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 224,140</p></td></tr><tr><td style="vertical-align:bottom;width:17.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 315,197</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (97,914)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 217,283</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.59%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 315,197</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (87,636)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 227,561</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Amortization expense of intangible assets was $5.1 million and $5.3 million for the three months ended June 30, 2024, and 2023, respectively, and $10.3 million and $11.4 million for the six months ended June 30, 2024 and 2023, respectively. Estimated future amortization expense for intangible assets is as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:66.89%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:83.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:83.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Estimated</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Intangible</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">For the Years Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Expense</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2024 (remaining six months)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 9,396</p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 17,661</p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 16,141</p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 15,604</p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 14,381</p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 144,100</p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 217,283</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The carrying amount of goodwill by reportable segment was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:66.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:66.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:66.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Reporting Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 703,462</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 703,462</p></td></tr><tr><td style="vertical-align:bottom;width:66.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 154,188</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 154,188</p></td></tr><tr><td style="vertical-align:bottom;width:66.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.17%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 857,650</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 857,650</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 703462000 703462000 154188000 154188000 857650000 857650000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The table below summarizes the intangible asset categories and amounts, which are amortized on a straight-line basis (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:97.12%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:17.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.59%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:17.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:40.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, 2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:39.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:17.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;width:12.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Carrying</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:11.23%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:11.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Intangible assets, net</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:12.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Carrying</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:11.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Accumulated</b><b style="font-weight:bold;"><br/></b><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:11.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Intangible assets, net</b></p></td></tr><tr><td style="vertical-align:bottom;width:17.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Tradenames</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,220</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (17,164)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,056</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.59%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,220</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (15,799)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 3,421</p></td></tr><tr><td style="vertical-align:bottom;width:17.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Customer relationships </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 295,977</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (80,750)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 215,227</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.59%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 295,977</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (71,837)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 224,140</p></td></tr><tr><td style="vertical-align:bottom;width:17.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 315,197</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (97,914)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.32%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 217,283</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.59%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 315,197</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (87,636)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 227,561</p></td></tr></table> 19220000 17164000 2056000 19220000 15799000 3421000 295977000 80750000 215227000 295977000 71837000 224140000 315197000 97914000 217283000 315197000 87636000 227561000 5100000 5300000 10300000 11400000 Estimated future amortization expense for intangible assets is as follows (in thousands):<p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:66.89%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:83.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:83.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Estimated</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Intangible</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">For the Years Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Expense</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2024 (remaining six months)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 9,396</p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 17,661</p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 16,141</p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 15,604</p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">2028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 14,381</p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 144,100</p></td></tr><tr><td style="vertical-align:bottom;width:83.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 217,283</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> 9396000 17661000 16141000 15604000 14381000 144100000 217283000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Note 6—Accounts Payable and Accrued Liabilities</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">As of June 30, 2024, and December 31, 2023, accounts payable included retention amounts of approximately $35.3 million and $24.7 million, respectively. These amounts owed to subcontractors have been retained pending contract completion and customer acceptance of jobs. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following is a summary of accrued liabilities (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:2pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:75.26%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:54.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:54.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:54.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:54.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Payroll and related employee benefits </p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 144,759</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 108,618</p></td></tr><tr><td style="vertical-align:bottom;width:54.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Current operating lease liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 107,476</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 96,411</p></td></tr><tr><td style="vertical-align:bottom;width:54.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Casualty insurance reserves</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 13,502</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 18,015</p></td></tr><tr><td style="vertical-align:bottom;width:54.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Corporate income taxes and other taxes </p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 33,674</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 14,203</p></td></tr><tr><td style="vertical-align:bottom;width:54.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other </p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.35%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 25,321</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 26,245</p></td></tr><tr><td style="vertical-align:bottom;width:54.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.35%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 324,732</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.45%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 263,492</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> 35300000 24700000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following is a summary of accrued liabilities (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:2pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:75.26%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:54.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:54.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:54.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:18.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:54.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Payroll and related employee benefits </p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 144,759</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 108,618</p></td></tr><tr><td style="vertical-align:bottom;width:54.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Current operating lease liability</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 107,476</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 96,411</p></td></tr><tr><td style="vertical-align:bottom;width:54.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Casualty insurance reserves</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 13,502</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 18,015</p></td></tr><tr><td style="vertical-align:bottom;width:54.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Corporate income taxes and other taxes </p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 33,674</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 14,203</p></td></tr><tr><td style="vertical-align:bottom;width:54.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other </p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.35%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 25,321</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.45%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 26,245</p></td></tr><tr><td style="vertical-align:bottom;width:54.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.35%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 324,732</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.45%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 263,492</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> 144759000 108618000 107476000 96411000 13502000 18015000 33674000 14203000 25321000 26245000 324732000 263492000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Note 7—Credit Arrangements</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Long-term debt and credit facilities consist of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:3pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Term loan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 862,316</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 874,128</p></td></tr><tr><td style="vertical-align:bottom;width:74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revolving credit facility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Commercial equipment notes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 57,114</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 71,004</p></td></tr><tr><td style="vertical-align:bottom;width:74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Mortgage notes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,170</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,615</p></td></tr><tr><td style="vertical-align:bottom;width:74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 938,600</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 964,747</p></td></tr><tr><td style="vertical-align:bottom;width:74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Unamortized debt issuance costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (5,572)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (6,475)</p></td></tr><tr><td style="vertical-align:bottom;width:74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total debt, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 933,028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 958,272</p></td></tr><tr><td style="vertical-align:bottom;width:74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less: current portion </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (89,270)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (72,903)</p></td></tr><tr><td style="vertical-align:bottom;width:74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Long-term debt, net of current portion </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 843,758</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 885,369</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The weighted average interest rate on total debt outstanding as of June 30, 2024 and December 31, 2023 was 6.6% and 6.8%, respectively. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">On August 1, 2022, we entered into the Third Amended and Restated Credit Agreement (the “Amended Credit Agreement”), which increased our term loan to an aggregate principal amount of $945.0 million (the “Term Loan”) and increased our revolving credit facility to $325.0 million (the “Revolving Credit Facility”), under which the lenders agreed to make loans on a revolving basis from time to time and to issue letters of credit for up to the $325.0 million committed amount. The maturity date of the Amended Credit Agreement is August 1, 2027. As of June 30, 2024, commercial letters of credit outstanding were $51.6 million. There were no outstanding borrowings under the Revolving Credit Facility, and available borrowing capacity was $273.4 million as of June 30, 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The Amended Credit Agreement contains various restrictive and financial covenants including, among others, a net senior debt/EBITDA ratio and minimum EBITDA to cash interest ratio. In addition, the Amended Credit Agreement includes restrictions on investments, change of control provisions and provisions in the event we dispose of more than 20% of our total assets. We were in compliance with the covenants for the Amended Credit Agreement as of June 30, 2024.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">On January 31, 2023, we entered into an interest rate swap agreement to manage our exposure to the fluctuations in variable interest rates. The swap effectively exchanged the interest rate on $300.0 million of the debt outstanding under our Term Loan from variable to a fixed rate of 4.095% per annum, plus an applicable margin, which was 2.00% as of June 30, 2024. The interest rate swap matures on January 31, 2025. See Note 8 – “<i style="font-style:italic;">Derivative Instruments</i>”.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Canadian Credit Facilities</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We have credit facilities totaling $14.0 million in Canadian dollars for the purposes of issuing commercial letters of credit and providing funding for working capital. As of June 30, 2024, commercial letters of credit outstanding were $0.9 million in Canadian dollars and there were no outstanding borrowings. Available capacity as of June 30, 2024 was $13.1 million in Canadian dollars.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Long-term debt and credit facilities consist of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:3pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Term loan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 862,316</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 874,128</p></td></tr><tr><td style="vertical-align:bottom;width:74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Revolving credit facility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Commercial equipment notes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 57,114</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 71,004</p></td></tr><tr><td style="vertical-align:bottom;width:74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Mortgage notes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,170</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 19,615</p></td></tr><tr><td style="vertical-align:bottom;width:74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 938,600</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 964,747</p></td></tr><tr><td style="vertical-align:bottom;width:74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Unamortized debt issuance costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (5,572)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (6,475)</p></td></tr><tr><td style="vertical-align:bottom;width:74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total debt, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 933,028</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 958,272</p></td></tr><tr><td style="vertical-align:bottom;width:74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less: current portion </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (89,270)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (72,903)</p></td></tr><tr><td style="vertical-align:bottom;width:74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Long-term debt, net of current portion </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 843,758</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 885,369</p></td></tr></table> 862316000 874128000 57114000 71004000 19170000 19615000 938600000 964747000 5572000 6475000 933028000 958272000 89270000 72903000 843758000 885369000 0.066 0.068 945000000.0 325000000.0 325000000.0 51600000 0 273400000 0.20 300000000.0 0.04095 0.0200 14000000.0 900000 0 13100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Note 8—Derivative Instruments</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>We are exposed to certain market risks related to changes in interest rates. To monitor and manage these market risks, we have established risk management policies and procedures. We do not enter into derivative instruments for any purpose other than hedging interest rate risk. None of our derivative instruments are used for trading purposes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="font-style:italic;font-weight:bold;">Interest Rate Risk. </span>We are exposed to variable interest rate risk as a result of variable-rate borrowings under our Amended Credit Agreement. To manage fluctuations in cash flows resulting from changes in interest rates on a portion of our variable-rate debt, we entered into an interest rate swap agreement on January 31, 2023, with a notional amount of $300.0 million. The swap was not designated as a hedge for accounting purposes. The swap effectively changes the variable-rate cash flow exposure on the debt obligations to fixed rates. The fair value of outstanding interest rate swap derivatives can vary significantly from period to period depending on the total notional amount of swap derivatives outstanding and fluctuations in market interest rates compared to the interest rates fixed by the swap. As of June 30, 2024, and December 31, 2023, our outstanding interest rate swap agreement contained a notional amount of $300.0 million maturing on January 31, 2025.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span><span style="font-style:italic;font-weight:bold;">Credit Risk. </span>By using derivative instruments to economically hedge exposures to changes in interest rates, we are exposed to counterparty credit risk. Credit risk is the failure of a counterparty to perform under the terms of a derivative contract. When the fair value of a derivative contract is positive, the counterparty owes us, which creates credit risk for us. When the fair value of a derivative contract is negative, we owe the counterparty and, therefore, we do not possess credit risk. We minimize the credit risk in derivative instruments by entering into transactions with high quality counterparties. We have entered into netting agreements, including International Swap Dealers Association (“ISDA”) Agreements, which allow for netting of contract receivables and payables in the event of default by either party.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table summarizes the fair value of our derivative contracts included in the Condensed Consolidated Balance Sheets (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:6pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:32.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:27.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:32.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:27.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:32.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:27.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Balance Sheet Location</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest rate swap</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:27.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_JjdVgIFCe0qr_BSn2A_Fhg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Other current assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,864</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:32.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest rate swap</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:27.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_-iHzgvg410SwCzU2Z5DRSA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Other long-term assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,633</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The following table summarizes the amounts recognized with respect to our derivative instruments within the Condensed Consolidated Statements of Income (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:6pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:101.66%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:21.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:24.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:21.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:22.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:26.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Six Months Ended </b></p></td></tr><tr><td style="vertical-align:bottom;width:21.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Location of Gain</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:22.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:26.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:21.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Recognized on Derivatives</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:21.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest rate swap</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="-sec-ix-hidden:Hidden_5ws8RYPvVUanRqh9WjtsQA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Interest expense, net</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 578</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 4,630</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,251</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 5,597</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>Cash flows from derivatives settled are reported as cash flows from operating activities.</p> 0 300000000.0 300000000.0 300000000.0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following table summarizes the fair value of our derivative contracts included in the Condensed Consolidated Balance Sheets (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:6pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:32.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:27.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:32.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:27.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:32.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:27.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Balance Sheet Location</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:32.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest rate swap</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:27.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_JjdVgIFCe0qr_BSn2A_Fhg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Other current assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,864</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:32.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest rate swap</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:27.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_-iHzgvg410SwCzU2Z5DRSA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Other long-term assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,633</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:9pt;visibility:hidden;">​</span></p> 1864000 1633000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>The following table summarizes the amounts recognized with respect to our derivative instruments within the Condensed Consolidated Statements of Income (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:6pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:101.66%;"><tr style="height:1pt;"><td style="vertical-align:bottom;white-space:nowrap;width:21.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:24.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.21%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.04%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:21.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:22.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:26.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Six Months Ended </b></p></td></tr><tr><td style="vertical-align:bottom;width:21.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Location of Gain</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:22.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:26.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:21.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Recognized on Derivatives</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:21.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Interest rate swap</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="-sec-ix-hidden:Hidden_5ws8RYPvVUanRqh9WjtsQA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Interest expense, net</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.21%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 578</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 4,630</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,251</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.04%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 5,597</p></td></tr></table> 578000 4630000 2251000 5597000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Note 9—Income Taxes</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We are subject to tax liabilities imposed by multiple jurisdictions. We determine our best estimate of the annual effective tax rate at each interim period using expected annual pre-tax earnings, statutory tax rates and available tax planning opportunities. Certain significant or unusual items are separately recognized in the quarter in which they occur, which can cause variability in the effective tax rate from quarter to quarter. We recognize interest and penalties related to uncertain tax positions, if any, as an income tax expense.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The effective tax rate on income for the six months ended June 30, 2024, and 2023 is 29.0%. For the first six months of 2024 and 2023, our tax rate differed from the U.S. federal statutory rate of 21.0% primarily due to the impact of state income taxes and nondeductible components of per diem expenses.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="white-space:pre-wrap;background:#ffffff;"> </span><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our U.S. federal income tax returns are generally no longer subject to examination for tax years before 2020. The statutes of limitation of state and foreign jurisdictions generally vary between 3 to 5 years. Accordingly, our state and foreign income tax returns are generally no longer subject to examination for tax years before 2018.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Income taxes are accounted for under the asset and liability method. Deferred tax assets and liabilities are recognized for temporary differences between the financial reporting bases and tax bases of assets and liabilities based on enacted tax rates expected to be in effect when such amounts are realized or settled. However, deferred tax assets are recognized only to the extent that it is more likely than not that they will be realized based upon consideration of available evidence, including future reversals of existing taxable temporary differences, future projected taxable income, the length </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">of the tax asset carryforward periods and tax planning strategies. The effects of remeasurement of deferred tax assets and liabilities resulting from changes in tax rates are recognized in income in the period of enactment.</p> 0.290 0.290 0.210 0.210 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Note 10—Dividends and Earnings Per Share</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We paid cash dividends during 2024 and 2023 as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:85.55%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:24.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:24.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Declaration Date</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Record Date</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Date Paid</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount Per Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:24.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">February 22, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">March 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">April 14, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">0.06 </p></td></tr><tr><td style="vertical-align:bottom;width:24.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">May 3, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">June 30, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">July 14, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">0.06 </p></td></tr><tr><td style="vertical-align:bottom;width:24.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">August 2, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">September 29, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">October 13, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">0.06 </p></td></tr><tr><td style="vertical-align:bottom;width:24.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">November 2, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">December 29, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">January 12, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">0.06 </p></td></tr><tr><td style="vertical-align:bottom;width:24.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">February 21, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">March 28, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">April 15, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">0.06 </p></td></tr><tr><td style="vertical-align:bottom;width:24.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">May 1, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">June 28, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">July 15, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">0.06 </p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 72pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The payment of future dividends is contingent upon our revenue and earnings, capital requirements and our general financial condition, as well as contractual restrictions and other considerations deemed relevant by the Board of Directors.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The table below presents the computation of basic and diluted earnings per share for the three and six months ended June 30, 2024 and 2023 (in thousands, except per share amounts).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:88.37%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:50.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:50.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:21.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Six Months Ended June 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Numerator:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 49,543</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 39,032</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 68,486</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 40,342</p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Denominator:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted average shares for computation of basic earnings per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 53,640</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 53,301</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 53,565</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 53,243</p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Dilutive effect of stock-based awards</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,013</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 957</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 840</p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted average shares for computation of diluted earnings per share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 54,653</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 54,324</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 54,522</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 54,083</p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Earnings per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.92</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1.28</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.76</p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.91</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.72</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1.26</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.75</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 36pt;"><span style="font-size:1pt;margin-left:0pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We paid cash dividends during 2024 and 2023 as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:85.55%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:24.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:24.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Declaration Date</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Record Date</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Date Paid</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Amount Per Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:24.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">February 22, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">March 31, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">April 14, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">0.06 </p></td></tr><tr><td style="vertical-align:bottom;width:24.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">May 3, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">June 30, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">July 14, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">0.06 </p></td></tr><tr><td style="vertical-align:bottom;width:24.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">August 2, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">September 29, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">October 13, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">0.06 </p></td></tr><tr><td style="vertical-align:bottom;width:24.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">November 2, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">December 29, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">January 12, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">0.06 </p></td></tr><tr><td style="vertical-align:bottom;width:24.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">February 21, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">March 28, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">April 15, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">0.06 </p></td></tr><tr><td style="vertical-align:bottom;width:24.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">May 1, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">June 28, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:24.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">July 15, 2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">0.06 </p></td></tr></table> 2023-02-22 2023-03-31 2023-04-14 0.06 2023-05-03 2023-06-30 2023-07-14 0.06 2023-08-02 2023-09-29 2023-10-13 0.06 2023-11-02 2023-12-29 2024-01-12 0.06 2024-02-21 2024-03-28 2024-04-15 0.06 2024-05-01 2024-06-28 2024-07-15 0.06 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The table below presents the computation of basic and diluted earnings per share for the three and six months ended June 30, 2024 and 2023 (in thousands, except per share amounts).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:88.37%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:50.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:50.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:21.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Six Months Ended June 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.03%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.04%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Numerator:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 49,543</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 39,032</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 68,486</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 40,342</p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Denominator:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted average shares for computation of basic earnings per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 53,640</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 53,301</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 53,565</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 53,243</p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Dilutive effect of stock-based awards</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,013</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 957</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 840</p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted average shares for computation of diluted earnings per share</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 54,653</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 54,324</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 54,522</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 54,083</p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Earnings per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.92</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1.28</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.76</p></td></tr><tr><td style="vertical-align:bottom;width:50.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 18pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.91</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.72</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1.26</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 0.75</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 36pt;"><span style="font-size:1pt;margin-left:0pt;visibility:hidden;">​</span></p> 49543000 39032000 68486000 40342000 53640000 53301000 53565000 53243000 1013000 1023000 957000 840000 54653000 54324000 54522000 54083000 0.92 0.73 1.28 0.76 0.91 0.72 1.26 0.75 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:54.7pt;text-indent:-54.7pt;margin:0pt;"><b style="font-weight:bold;">Note 11—Stockholders’ Equity</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Common stock</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We issued 11,359 and 21,245 shares of common stock in the six months ended June 30, 2024, and 2023, respectively, under our long-term retention plan (“LTR Plan”). The shares were purchased by the participants in the LTR Plan with payment made to us of $0.3 million in both the six months ended June 30, 2024, and 2023. Our LTR Plan for certain managers and executives allows participants to use a portion of their annual bonus amount to purchase our common stock at a discount from the market price. The shares purchased in the six months ended June 30, 2024, were a portion of bonus amounts earned in 2023, and the number of shares purchased was calculated based on 75% of the average daily closing market price of our common stock during December 2023. The shares purchased in the six months ended June 30, 2023, were for bonus amounts earned in 2022, and the number of shares was calculated based on 75% of the average daily closing market price during December 2022.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">During the three months ended June 30, 2024, and 2023, we issued 6,400 and 10,264 shares of common stock, respectively, as part of the quarterly compensation of the non-employee members of the Board of Directors. During the six months ended June 30, 2024, and 2023, we issued 14,384 and 22,384 shares of common stock, respectively, as part of the quarterly compensation of the non-employee members of the Board of Directors.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">During the three and six months ended June 30, 2024, a total of 35,850 and 271,569 restricted and performance stock units, net of forfeitures for tax withholdings, respectively, were converted to common stock. There were 35,973 and 154,025 restricted stock units, net of forfeitures for tax withholdings, converted to common stock during the three and six months ended June 30, 2023, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="white-space:pre-wrap;"> </span><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Employee Stock Purchase Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In May 2022, our shareholders approved the 2022 Primoris Services Corporation Employee Stock Purchase Plan (the “ESPP”), for which eligible full-time employees can purchase shares of our common stock at a discount. The purchase price of the stock is 90% of the lower of the market price at the beginning of the offering period or the end of the offering period. Purchases occur semi-annually, approximately 30 days following the filing of our Annual Report on Form 10-K for the fiscal year ended December 31 of each year, but in no cases can extend beyond March 31 of the period or year, and approximately 30 days following the filing of our Quarterly Report on Form 10-Q for the fiscal quarter ended June 30 of each year. For the six months ended June 30, 2024, 9,101 shares were purchased at an average discounted purchase price of $35.52 per share. For the six months ended June 30, 2023, 6,320 shares were purchased at an average discounted purchase price of $21.83 per share. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Share Purchase Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">In November 2021, our Board of Directors authorized a $25.0 million share purchase program. Under the share purchase program, we can, depending on market conditions, share price and other factors, acquire shares of our common stock on the open market or in privately negotiated transactions. In November 2023, our Board of Directors replenished the limit to $25.0 million and extended the program to December 31, 2024. During the six months ended June 30, 2024 and 2023, we did not purchase any shares of common stock.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 11359 21245 300000 300000 0.75 0.75 6400 10264 14384 22384 35850 271569 35973 154025 0.90 P30D P30D 9101 35520 6320 21830 25000000.0 25000000.0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Note 12—Leases</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">We lease administrative and operational facilities, which are generally longer-term, project specific facilities or yards, and construction equipment under non-cancelable operating leases. We determine if an arrangement is a lease at inception. We have lease agreements with lease and non-lease components, which are generally accounted for separately. Operating leases are included in “Operating lease assets”, “Accrued liabilities”, and “Noncurrent operating lease liabilities, net of current portion” on our Condensed Consolidated Balance Sheets. We also made an accounting policy election in which leases with an initial term of 12 months or less are not recorded on the balance sheet and lease payments are recognized in the Condensed Consolidated Statements of Income on a straight-line basis over the lease term.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="display:inline-block;text-indent:0pt;width:36pt;"></span>Operating lease assets and operating lease liabilities are recognized at commencement date based on the present value of the future minimum lease payments over the lease term. In determining our lease term, we include options to extend or terminate the lease when it is reasonably certain that we will exercise that option. For our leases that do not provide an implicit rate, we use our incremental borrowing rate based on the information available at commencement date to determine the present value of future payments. Lease expense from minimum lease payments is recognized on a straight-line basis over the lease term.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our leases have remaining lease terms that expire at various dates through 2034, some of which may include options to extend the leases for up to 5 years. The exercise of lease extensions is at our sole discretion. Periodically, we sublease excess facility space, but any sublease income is generally not significant. Our lease agreements do not contain any material residual value guarantees or material restrictive covenants.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The components of lease expense are as follows (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:40.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:40.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Calibri','Helvetica','sans-serif';font-size:14pt;font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Six Months Ended June 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:40.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:40.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease expense (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 37,145</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 25,110</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 71,770</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 47,982</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">________________________________________</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Includes short-term leases which are immaterial. </span></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our operating lease liabilities are reported on the Condensed Consolidated Balance Sheets as follows (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:62.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:62.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:62.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:62.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_T6T7SIBJ7EyZZ8WXLDJehA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Accrued liabilities</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 107,476</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 96,411</p></td></tr><tr><td style="vertical-align:bottom;width:62.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Noncurrent operating lease liabilities, net of current portion</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 308,114</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 263,454</p></td></tr><tr><td style="vertical-align:bottom;width:62.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 415,590</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 359,865</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> P5Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The components of lease expense are as follows (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:40.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:40.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="color:#0563c1;font-family:'Calibri','Helvetica','sans-serif';font-size:14pt;font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Six Months Ended June 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:40.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:40.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Operating lease expense (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 37,145</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 25,110</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 71,770</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 47,982</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">________________________________________</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Includes short-term leases which are immaterial. </span></td></tr></table> 37145000 25110000 71770000 47982000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Our operating lease liabilities are reported on the Condensed Consolidated Balance Sheets as follows (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:62.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:62.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">June 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:62.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:62.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_T6T7SIBJ7EyZZ8WXLDJehA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Accrued liabilities</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 107,476</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 96,411</p></td></tr><tr><td style="vertical-align:bottom;width:62.84%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Noncurrent operating lease liabilities, net of current portion</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 308,114</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 263,454</p></td></tr><tr><td style="vertical-align:bottom;width:62.84%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 415,590</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.03%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.84%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 359,865</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> 107476000 96411000 308114000 263454000 415590000 359865000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Note 13—Commitments and Contingencies</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Legal proceedings </span><b style="font-weight:bold;">— </b>We are subject to claims and legal proceedings from time to time arising out of our business. We accrue for loss contingencies when we conclude that a loss from such claims or legal proceedings is probable and the amount is reasonably estimable. When only a range of amounts is reasonably estimable and no amount within the range is more likely than another, the low end of the range is recorded. While the ultimate amount of liability incurred in any of these matters is dependent on future developments, in our opinion, the recorded liability is adequate to cover the future payment of such liability and claims. Any adjustments to the recorded liability will be reflected in earnings in the periods in which such adjustments become known. In determining whether it is possible to provide a reasonably estimable amount of possible loss, or range of possible loss, we review and evaluate our litigation and regulatory matters on a quarterly basis in light of potentially relevant factual and legal developments. If we determine an unfavorable outcome is not probable, or probable but not reasonably estimable, we do not accrue for a potential loss contingency, but the matter, if potentially material, is disclosed below.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Management is unable to ascertain the ultimate outcome of claims and legal proceedings, and unfavorable or unexpected outcomes could result in additional expense that could be significant to results of operations in a particular year or quarter. However, after taking into consideration relevant factors concerning these matters, management believes that the reasonably possible outcome of such claims will not, individually or in the aggregate, have a material adverse effect on our consolidated results of operations, financial condition or cash flow.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;">Bonding —</span> As of June 30, 2024 and December 31, 2023, we had bid and completion bonds issued and outstanding totaling approximately $6.9 billion and $5.9 billion, respectively. The remaining performance obligation on those bonded projects totaled approximately $2.7 billion as of June 30, 2024, and December 31, 2023.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 6900000000 5900000000 2700000000 2700000000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Note 14—Reportable Segments</b></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The current reportable segments include the Utilities segment and the Energy segment.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Each of our reportable segments is composed of similar business units that specialize in services unique to the segment. Driving the end-user focused segments are differences in the economic characteristics of each segment, the nature of the services provided by each segment; the production processes of each segment, the type or class of customer using the segment’s services, the methods used by the segment to provide the services, and the regulatory environment of each segment’s customers.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The classification of revenue and gross profit for segment reporting purposes can at times require judgment on the part of management. Our segments may perform services across industries or perform joint services for customers in multiple industries. To determine reportable segment gross profit, certain allocations, including allocations of shared and indirect costs, such as facility costs, equipment costs and indirect operating expenses, were made.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The following is a brief description of the reportable segments:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The Utilities segment operates throughout the United States and specializes in a range of services, including the installation and maintenance of new and existing natural gas and electric utility distribution and transmission systems, and communications systems.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The Energy segment operates throughout the United States and Canada and specializes in a range of services that include engineering, procurement, construction, refining, site development services for data centers, liquified natural gas plant construction, highway and bridge construction, demolition, site work, soil stabilization, mass excavation, flood control, upgrades, repairs, outages, pipeline construction and maintenance, pipeline integrity services, and maintenance services for entities in the renewable energy and energy storage, renewable fuels, and petroleum and petrochemical industries, as well as state departments of transportation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Total assets by segment is not presented as our Chief Operating Decision Maker as defined by ASC 280, <i style="font-style:italic;">Segment Reporting</i>, does not review or allocate resources based on segment assets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Segment Revenue</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Revenue by segment was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:71.21%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:24.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:24.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:59.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the three months ended June 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 620,798</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 649,238</p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 973,492</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 778,715</p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.95%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (30,575)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (14,576)</p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.95%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,563,715</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,413,377</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:71.19%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:24.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:24.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:59.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the six months ended June 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,108,722</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,183,001</p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,921,070</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,506,371</p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (53,370)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.93%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (19,099)</p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.96%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,976,422</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.93%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,670,273</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"> <span style="font-style:italic;font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Segment Gross Profit</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Gross profit by segment was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:69.67%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:26.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:26.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="9" style="vertical-align:bottom;white-space:nowrap;width:69.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the three months ended June 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:26.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:32.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:32.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">% of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">% of</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Profit</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Profit</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 64,066</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">10.3%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 66,510</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">10.2%</p></td></tr><tr><td style="vertical-align:bottom;width:26.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 122,644</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">12.6%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 90,754</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">11.7%</p></td></tr><tr><td style="vertical-align:bottom;width:26.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 186,710</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">11.9%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 157,264</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">11.1%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:69.59%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:26.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:26.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="9" style="vertical-align:bottom;white-space:nowrap;width:69.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the six months ended June 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:26.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:32.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:32.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">% of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">% of</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Profit</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Profit</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 93,545</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">8.4%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 100,081</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">8.5%</p></td></tr><tr><td style="vertical-align:bottom;width:26.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 226,541</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">11.8%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 156,916</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">10.4%</p></td></tr><tr><td style="vertical-align:bottom;width:26.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 320,086</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">10.8%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 256,997</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">9.6%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Segment Goodwill</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The amount of goodwill recorded by each segment as of June 30, 2024 and December 31, 2023 is presented in Note 5 – “<i style="font-style:italic;">Goodwill and Intangible Assets”</i>. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Geographic Region — Revenue and Total Assets</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">The majority of our revenue is derived from customers in the United States with approximately 5.4% and 5.6% generated from sources outside of the United States during the six months ended June 30, 2024 and 2023, respectively, principally in Canada. As of June 30, 2024 and December 31, 2023, approximately 3.4% and 3.9%, respectively, of total assets were located outside of the United States, principally in Canada.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="font-style:italic;font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Segment Revenue</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Revenue by segment was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:71.21%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:24.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:24.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:59.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the three months ended June 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 620,798</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 649,238</p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 973,492</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 778,715</p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.95%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (30,575)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (14,576)</p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.95%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,563,715</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,413,377</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:71.19%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:24.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:24.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:59.32%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the six months ended June 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:27.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,108,722</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,183,001</p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,921,070</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 1,506,371</p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intersegment Eliminations</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (53,370)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.93%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (19,099)</p></td></tr><tr><td style="vertical-align:bottom;width:36.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.96%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,976,422</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.58%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:24.93%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 2,670,273</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"> <span style="font-style:italic;font-weight:bold;text-decoration-color:#000000;text-decoration-line:underline;text-decoration-style:solid;">Segment Gross Profit</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;line-height:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;">Gross profit by segment was as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:36pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:69.67%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:26.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:26.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="9" style="vertical-align:bottom;white-space:nowrap;width:69.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the three months ended June 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:26.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:32.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:32.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">% of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">% of</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Profit</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Profit</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 64,066</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">10.3%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 66,510</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">10.2%</p></td></tr><tr><td style="vertical-align:bottom;width:26.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 122,644</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">12.6%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 90,754</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">11.7%</p></td></tr><tr><td style="vertical-align:bottom;width:26.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 186,710</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">11.9%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 157,264</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">11.1%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:69.59%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:26.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:26.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="9" style="vertical-align:bottom;white-space:nowrap;width:69.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">For the six months ended June 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:26.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:32.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2024</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:32.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">% of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">% of</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">Segment</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Profit</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:17.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross Profit</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Revenue</b></p></td></tr><tr><td style="vertical-align:bottom;width:26.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Utilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 93,545</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">8.4%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 100,081</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">8.5%</p></td></tr><tr><td style="vertical-align:bottom;width:26.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Energy</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 226,541</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">11.8%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 156,916</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">10.4%</p></td></tr><tr><td style="vertical-align:bottom;width:26.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total </p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 320,086</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">10.8%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.71%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.02%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;"> 256,997</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.6pt 0pt 0pt;">9.6%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 620798000 649238000 973492000 778715000 -30575000 -14576000 1563715000 1413377000 1108722000 1183001000 1921070000 1506371000 -53370000 -19099000 2976422000 2670273000 64066000 0.103 66510000 0.102 122644000 0.126 90754000 0.117 186710000 0.119 157264000 0.111 93545000 0.084 100081000 0.085 226541000 0.118 156916000 0.104 320086000 0.108 256997000 0.096 0.054 0.056 0.034 0.039 false false false false

Q69,A$?',&C8180+"A M#)@3C15#?RZ\U'Z&[)8G:Z+D\WA-X;8!@9<&0=!?A)*/:,],6]1Q$W@Q^ _Z.#JH:+I"WT]U,XU1SIE5-Y#219W):DE:338<6+L% MO:3+I;$O75!G*/HXV/0XL:9=>,DWUM2[V&?/+C4>.RT@S-'YHL'T)>%5A_ R MH?6J\J+:'+7VNS6OE2;W>%*D".T)Y7@)!6)TPTA5<%4;'85 'B2G$[2XX)EXI/@ MV#WUOEJ2"8EH:KG-LD"9M20^E9<"E?#L'H*,).+'+7!"/O_V?!Z$J-3 .Q.8H$D?$( MQ9R[%_=,E_\X(L1N8%CSXC0D0=@!Z^W&6@!@20EUVA&--0H254T'/M\QL;1I MP*VA-&SXDV>S>WU[MKEAHHY!DG* E]KNPU%6%__\%_ZSV[:D ]%"K#;^6U;M MF2ZN?WH WFY@QU5$)Z/K? MYRS-W1.N#%&2/DAH]\$;/P#-P;__Y_ PKTY35#)UT_JY$R\' -P"AO0DS0A$ MAQ80M:BHP+?_%/6EN+:W1XT3+T1\)[I^[D44A;:4>*&)?V&O/R*0'&%M*JZB M!U#;RK6H#A3GI_^MW4>>2-I]9OHSA']Z[9W4!7B'L"W*'7/VDR20Y'J#;N8( MUU>I,Z!>\?)?$1M;2,S]3]N4WK&G_Q#T,Q064)SI_F.7_F:W'_WXIXUH#[D' M:20U/2[8\J[X]GD[I,882B(.?.X#)7R&==[CXQ2@;R(I_CM\\Y8M.(:F+L,_ MUIN%2JU9:&$MKMDII+D6EJXUZ[5FLEVH5?_[G^$-)=K9?:9KU0Q7;7$9N+]J MJU8N9))M^$NK#?]3X:KM%E;+8NED*X]ER[5N"_LKO 3O%7P<#:8].U MH4ZW [4QWA!=&1I5-P?7$0,?;BQ("OA18/9FJ:9J8SQ1BO.ZH3?A,^OCM9GS5*49['17/)3L5?D28YKB)&ND7QMMC/2/+TONHZY^\#7 M^MXG;VR# R=HNP;?:W66?8DG/+WN6+NM;5])^*3VQYX:P[S0Y#D_^T"K'KS2 MA*]!LP!WQ+S[/8H>_=.WKI80>!\:-ELCUGOQ;JDXA.:RZX KVS0GQ9Z_$/[Q ML_[_H6GZ)9^9>HF=3:P($7$C1) O!!TB(@"(( A/[(68N#LF0MD4$$2$LBD@ MB"#P%^KL_42(B=_#Q&]>?G]HM][NU*CSQI^ZS)\CPD_)X,-?#4VH*ZP"/Q[;&&?(0,:*K@'\4":%1W8QS>&?IX-\*X[X M4T/E(F3P>:3[:#W^]RVB#]F!_(@=?JF0Z!> WR8!\B3TZ M%5!_*@<_"'+=.XD6W<+[/'[GWNBV3, M^+&.;UXP?MWJRL*6X^J0!:O@U)RI\7@\H%IZIZ_-*X.*U%X7\[-14O ZGE-T M!$^<&]H<Z59,?3TI=V\9 +-A&'/AK094L+!-J8I)A.55RDHW"AD\/*B/!ZUB> MB!")JQ02ADS[+(?\\.XA[,'P9WSZRSX)Q88YP%LI?*3EU,K<*-G*8#9&^44H M.9Z)D(D+C5\)> "C#+RYLJ)M S1_?NB(JN&W&=_W\$1FB &?;OI-LHP1IJ,O M7:+G>.@F?:]SAR&1ZYLK372\FL+;((F8NK9EZ8*QZR.#IB[L6-EC_[(J^I@_ MU5HSD^WF2+,RYH"#9\QQMC;I#%!R)>H91>(1DKQ*J6 H&+[7N<-HR_7MH\L* MAE$YTV2RU=H"9SA1 U.$^0D5@L%M867K#4H5JK>M4.A6J':[4+ MU1R6K&:P;*&:K*:]W]+M0J?0+G"M@-8_$"0=ETE1%!AFF!!HDE:$A$Q* DXK M;%QD8S)-)-YG]@_-<6(P9::,-FV!96$S2ZA=JG&J_H'@QYWJ<+"I\NLJ<&=9 M,-:*ZLGZAY9-< MU#\$L58ACG^M4,$O>,!?V#"[+@AYCM0+$:9@!P$1Q$N""A$1 $0D7NAXB(@ M("(430%!1"B: H*(4#3=M2;A0ZOU>V1@GY?*CP6#WRQ3()E'3\*^>IE"R"2W M8)+@YJ<3_DWFXW+(1^1(ZS[UQ\LTNW*S?KW3-?75RC6'[: MM2PHB)*&7#4-R?_EQ'4:S<6*S+#1+V@E,%.4UL9=*$)C6Z80(8GCF2TA!X<< M''+P%?KP_B$'Z[FLL>1Z'5V;3W2S7(LIJTUMM"U5B!")1'@??LU>NT\%M:_+ MQ[#S\''GX438>7C[5 _E8>?AO8-\R<[#VWR7&)Y(R"0;$R@BS@HT'J.$X5 D M!!8G"3!D:89@J6W.Q_TSCS[7J]@_6;76YEKMVKYM\&'7X&T^4K+<:B<#D2Z>%OC=:JZ+@6 MJ"F'D\P]PW0H%-1A+T'$Q:;&*,UAJ=AL=VT>/@! $W8&'^%8+KB29W>6+:&E MYTM? H&+(/_VSX"D>,JU50/8]H5)08FY()E['HFJR-[=ZM^/KCH\?:@Z MD*JE8X+\\4_-&HF&NO'HP&-]&P%^WU*EIJ3;6 M9"E>"Y MTJ8U,_W'8?!STP"[B6!042)C!)M9)G*AH$B"?U -Q1)M2&22AUU[]YC7^!T J C@*(8!: UJGD>0H13!&'D/U> 0,,"&< D0*WL=\9]#Y$#!H \ "J MHL*]#$7;?XMK0SL6G"OYA)8$,FJ#%$.Q&GD").^/ZFBBGGT)QN1$B:#F6@Y'I8\>H6T8T,Z=KP- MO"$NA-3?((8(!KT%>!CQ#3DZGI>/1@S/O!.^8$D,O0Y1'ESQYAU()V]?+F\? M5H$L@_2UOP1+CBS@.[O87PB3)/YWI97T?B+^_G<$6XY5:>P]9P0,R%I MJSMJ= V-5TS4UOQ'X&84+',Z?XPME<):,^ ! $AO6$Y MS.M4 .&L^_A$IYD ^)67D!W>LP.",.KJX M1O]82R3U/X"%\9"!3+.$JGW@1 M=O:+L3&4L',7TC$20NA)NBEY#Q$=C*1P'*N^8%D5Z$A^0I1#B==RH3C%B 2. M1[ ,P@^DUS98B3;&QDB<>('R5H>:=H]7CW0,$ST3>CS 6JHVVHF-N2@6LY5[ MINN@/4-&D Z#,\H^.&/O@S,1;$NO.T6R)=K]Y^CL:3\ ]/Y/2_#^$PB-]Q^Y MNRW\5_WU$4[N^+__4?_941N2D"(&;0R@0(5C2Y8ZVTE\QY.[QP?8;E&U M#D@RI"4/[5!8V9Y,VL'0 @M@N+X[.[),*+:@HE%4Q]=,6YS[0/;L4!?*31ON M2H)GA!+2\;9HH3&W4'1.7-G_@ND+8&0>H)? S8LCX--)S;5>,345UVCH+;I( M.%"8DK! 7C>9#AJVU7S4QH2'ZNA;M\M6&A'+?4]$S'1Q\'2IH$Y(.%/!3 M**E.4,R;@T-].@!\)82"Y$ 1;B,Q M;;O(@H";%"6/!':?(VC-O!=['[S][JL1#U8S%*Z'7X#6&8"PDL$EJ?CK$?$W M#OC5_?&4:*MV3:E#;0)!YSTO:<@M=61X!&TXZ-;#18.T1G6H/R6(>:B5G13$ MEK;WW#.#-M&Q+2JI@6+<-8O*!*^F<62>@942 _'QR*],]V"!J M/(1.Z.K_D0;U6JBIGI&^O2[[T"+;'@K[('',0Q7"BJ>"U=]_CR?ND&"%1B/P M9;:MKK"IGXH*]JFH& 5-4\1:WA)TH^N[C$, D".!W#;?2A8ARU@R\NI]5['I MZKL($A[%"41133!R?1?$_T,KVMOIWA: 9H1O'>P*GK&DY$E\(D'1GHT+61AM M"_IJMB/9 M?6\59-0G#<.%\/(-"J2#LE!C[(]3BD"8ZL@(AW\ 0PO:_.LM%[';G%T$LMU> MMD^WO2=O ZF_@2'/2?0QD@$2F ZA9T@1'E:HR $VS*GJ. @^09+LMS%'H,1" M",(@;AI0C7JX'R+]+'H8A;">N(;O#'O$B1 QA0K3:]('E><'Z'YYPV6OR%(- M/V]A&VQS=U'R%\S_;L&W7+]:??,-T_RC68;F0>8*$^@[;$- M+B":46T_<*%@_OT:.@*TP#USXG7MOS$#GLRV(6'NZ4@1H1D[.Y#J.^8[>["7 MW27V+!5O9+F&[2E35DV;P*0$-ORZ-C8.+WNJL;&7=")?+UW'LCIX/FOWW;B MMFBO6;W@^B>W_G_AU]);102Y:Z&:K@V5C>\;('/>O\\[$-36?NLH:&,B)'H. MR38,LG.HD=R_9?;*^2,>"HZ7<[;[T>]AMLMQM@N!A^DN8;K+K=)=2(I) #H! M! !D6:#Q(2F(#$T+0TH2$PF2C,=B1VU3HFE>)IJQ:()/F^ZHK!4XMJJ>'&]+ MT+@ND_$XIZWKDP&A59I,OY$\U=XE*X\%(CWF4UI)V' E0>.DDG2RO0O%L#4K MUE16O-CK9#.=1B*CM1JGVKNT\W%YF*+D.4_& <-*O?ALL4Z>:N_"+!N&F\[6$]3R4W=F'!NL3Z91J5FE^D<#JW=KVR.YX):T^T^ M1XXSLWZ%$JM?/MV0::IA"@10$B0 M#"[0"BL)PYA""PH>4R299IEXG'W_[$FIE^1[I5Z<8S+9^C26K-.;9>,4!BJ@ MU0'))N7P9*'8:L(-Q:3426BU4VN-Z))LC9^;K@(I,EIO)1JGH-6L9O5H9KG6 MN.YF+!6K])"OD+58IQ4)]>(_>7IUWB]4LUXQR MI=%07"P'E-!EEG#ET=NEQ"!1JYL$X OVGRE8#*UZA):9D=O)]+RA$Y7YAQ' MUI>$8?5S];:W\NCMI%/@2ODAN\#!@#9BB6JY/2LFX6Y/]7$AH M9WW]1F ([>@7[SAKX?G:]_!K5S=I44?TI"&C_W!S5UV(.A)Y38 "IA*T?T[_ MW0NKK??F;6->*?4+<2G/B\M8MS*K]J>%P2@@!NO'ENCNK)B$VL-_)HOCT,Y\ M__VMEX>BR"K<&CRC=VN-_C04=11A02D.HN-=,5JO7Q:]BS3DW\J6N(1>'/3[ M7!L:!5[H9G=1#+^!E))W#RRN=[%S&9JFZS?A;_@HY(>82_A20_/".^[N1F1[ M2XJ\5,^_]N) JKP/,_MWH^B"VM1OH$.G--1JCU44$@?)8A#3RW%,JZ=TR%(AN*J>OF M$H40/,/9/LCD@;Z*:: [AWW$ &$CXN,$O&[70[GUCI+W/A""]?8F_5.HW[E" MC@FYSK\;\2Y MJZ4/3:7!G;^@:\5")XIAK:3A8>TL;^\[VTS,?_]\]A?F9V6 MO1^ -;@W@H'L6A=_(SPP."""86(B( B"#PEWC8 M'BH(F"!?R! 1P4!$*)L"@0@DFT*[Z8*8^-WAX1_9K=^A*]=')N.=2LSNULPN M\4(]=C.[7<+0E_HTA:QQ"];X*JIOV;N,>HD]-E]PVXX=>F@R M^%H+NZUHO'=O)"^8ZMTIO L"7TSPW?N$]Y@MA3RC>Y_[0K.YX]^][=7%&]>= MOB-*.FG1LE!KIHZHN^!$WRM3FS^U.VCKN-7KY$Y!-:U,4'/2G>U-/.TF]G1Y!D MA#D[TOK1'+*H#:2HNHKZ;/HS[_U'8(QHOJ@5Z!S/C 3S1EBPA@U/DYJ_8TM M?3+A[WT"QQ^E1NQESL.XD $RF^[G$P12Z^Q,L.""Y='ML;?9.RN3\4@L/R%[?5 M/F3YW&J3GX]R9H*O@8'& GHU-DR4!\UX+,]>WB2[MU_11NEYOY,0^"9Q[TT% MK/TF7<];C"X6PY#2%7S/MT*"@D)"-EV4(W@767G=F-/=SQH?]O M/SA8>4* MHJIA,!75@:?[MI+OBJFB82+RFY0L(H@(XEX/ Q6A0+CNM&LNY\U M. +C*N&N2PJ,17M02J4RZYJFINS$6(CE^=0:"0PO#!:/4 P=E+D.EVM1<)!% M]2;=GB)>8OY[+Y7P__EL?M;CIJ]G\\?#@:K!R \D7Q)LB(A ("(Z0LGS<9@YJ9>AW9]QTP M_J%)].@%'->Q3X+*"!=)T2:O*P/N21"A4@B@4GBP$J_X2XQZZ!J&PP[$7ZME M"-GC1C;3XY1Y4>1#\\9Q?4]H0_RI#?'89$!>0C3>.V/ENF5>2/#=^X3WN&(G M I"+=)$;=-_Y"U;:Q(TNR E2H C_AMS4&E,Z/08&/Z_,J-YJ.!CUU-O7>?4* MUL01"@F)3XM5;IEK1ZMQJ>&G&Y,$&V'9JZ3.^&HJ6#00\O4E8LG!PNFM^9H4 M$IMELUO:K'B^E)](B6'='.>9VQ=Z\WGK[4 BL5!5/DG':YEO)?-NJ\[%:)=W8)B+C$3*1N+B5 M=F]?XU%JO\(X4[#*&VX8B+K[60,D$Z\2J;ID+0=+;XS$LBG$\6@N7NVJE63! MK*.9.RB"15*1&'W.TPTC6*'$N$"(Z^YG#9#$N$H,[)(28VBS*ILPNR8^K>?) MQ)!MJX-Z TH,%!N+Q2.)!/'9ZJ]MZN?1[*SWLV%.(YGK>X.^/3,&*R.TO<$K M^8DT!"_T%,S9M6@*U<_D=OI2$T@ H@0";3>Q>^,].2M*W@;]N5[^O^\F&+6' M@M.59K@VK]$:XZQS,2?=MT5]^2!COG8@P%YA@+T% K:#PFX$V&[*5\'P9ZG[ M$[N7 /.NE+VXH6-"8QG[G6?_A9Y*XG\C,WKWH?<1\?>__:%6]6H:2XF&%L&J MWG>AG9ZT;5/:SG#ZZP=<\./?:,:2.D63GL"!S8TIECG%' M-!-N/W++VNWKQ MSZ*OL>V S&GQ4].TV .29+>BAQ8&T9+6HV;C%C=EM:3< MR#.=L/]WC9SK/:P2?B M>4BJ(5G;,6;P;U-QI4[=*39S+6D,/T6#RZ:J-Q$:??U_KR+M7R%N6X[0%(T1 M2*Y4V_NMXF^HXN5["?944XUN5QGBZPQMX8G!4B>[HS?*(/8;RN 80UE(>&^Q MM)?YS &NUJ-A26D0*8M/,^-J#:^MZ[ET$KK9,?P%/Y+W&)0=.OP! MR!,%]C M)F1#!\J-%RP+4#>V+5]L9Y0=$S'ZP%97V!2";FQ#QD4HW_4YWS.!!2Z.GS^4 MV;^)CL\)=P!.HJ)(#V?I1,L@N%Q+S#:B*Q%?XA 5Y O[2T2?([H]T*!F04\'*3$=F?U,2W4& \_(/U3JA(VS'D$"IHRJ(,;&A(^B$6=VBK MLBI:*D#C'M>8#70=?5NU?BWLO8F28[#V\&5">U3U'X9T%K8MF0DQRD&SZD!YM>K<7C8B(>CM$7T%C7-' MS_5Y3[61.$0/>,&ZP)_6:.J(AB)H9Q: RT#D,)KD000^?3=I\DV@28$',+QM MO8:<7K#V]AL0#H:MH!&2Z%"6/59GKY,SX5LA5.9-SS>,'>#'M$&5&-AZ@OO$#M^V9T F18G M]A?97D@Z8TC1J \ \"65QY+R5#54:'Q[]5TH>#=#8T@]8H<;B/@P-]&(1@A/ M'_RG:<;R-JJ;4)5 &V AJOH.-C9\MJVL?;S /:J.B8!M_?+8/ES\E_@FQ8D7 MHNWL8(SH$,'&6P6LF6A!FH-4+,)W^S.Y7TE@.Y$4'1YR$I#,D0%9;P?'7W"$ M9QU]?H+I=Q-*[=W,3@@CQT8J#V%C.[46@?_7D/4FVGID/@3 \+'Z#C=05]@/ MJF=_;?:T(&&>U*XQF4UK;"U-:\ B]/0ZEK1B=./'/VSLC)V#B!V"^8V!\BKA M?&%]'4OR%63(=CQD"D_T0V[V#$MD< A;Y;#5#;YJV)J96T )6T;R^*AL2AZ* MO ?L%AQ#*VG,.[V>0@BJ>F:JQW28Q5@9/V4SI.X@V4"KS5H/*, MYF9IT$NMYHN< O%&,LS+\67P'G%GF>,$5J'9.5;13-QWME3RE-PW@ -E]^?G M[T+K^%.VK\>A>Z_6?^,5*.R&MG#=,B4 9!MY(Q_9Q;490/LR1DEXRH5'XR$);H9/,O)QO4!21T"DA+$^KR]+B[9LI:FJD;& MS+>HPC@9'$ :Z4V-+K5791Y:3H8^,/%JVT6L=4XD1CQC!IDZ"Z!#(QGRB!?N MF&TWN(UX''GGVWRN!Z;E)MA.>*\IE\* G9F0(V=I)?&U891(,ZYS6?O92?D* MIZQNML1)NZW](>C MTU^PY$D]!*#==GVSXA/-*V\2@.**\5IT8W(SK40*23QJ)(N"/OI "!TX0I(X M@\B#?HE[Y,%#F:0BO>OCV NS>M%54?<]B<]=1]PW4'[?RXK]71/R5 W'?U)3 MM;6TYV^BG_:W$6E+ IW\JA+GNO,N/G'YED%9HQ\['QO(2>?,.@$M(Q[D[B+M MVHXY!5XXY!4N6WQ@NVL*Z&S[TL(+P$U=W5%G.OI9AE^W4,Q(\CQV@")N,^@_ M(ZFRR^:!Y_?9'J7PF%/X,F3B1W;?]CQNJ 9F[A#N$5N:EH;$D&*)_C=="^P\ MOE;X/?O;B:FM8?. MJ^<-8=8&QOX/N[N=X[L?U3BX^]GYW$>H2*U34!B,(;MJ;YQS%-2 FM4#"G27 M/WX,Y&7PY@F[+1ZMW3YKR%"K#;'0 )=;#X?XD!O4->[-=13Y6?/N^!7^X>M0 MA,'/Q1&H*=NSV+DMQN74NN6'JX%\EAZCY %!SNSND%IWDY+F4F9AL3',156 M5A]U/ WD7\@*>$3">7-I&$#"&2?=_G!4&C?X=&,4[Z]S=ILN-@)..+U8:DEV MM'H.[VYJP%VG++%4@81#GR(<%$GR8K!;J?0W-C:7\$5IA'.B'A0B-(\_9\K0"9%ST MWQ?L9F'WH%X'[(*(T(X#_@771U?I-U*<](7D7P#E6ZGIF$LZSSA:;2%,3-%M MS]79&U[ZK9R]]V]YE6W$:5$UX;AU.#57 #1K&R2I9Q8C/'\.F?$9X8]6/6-Y>W0G(QE!O2*!A)>6IMKKJ4.*Q,1 MBDJ:?#F>*/NO]S'8]RH*6XKVWIJ67V]9[Z2/O@F%7$2IGM>HU<9 ,^.%54*+ M)FU56HCUZBHQNK)7^JVE^PV0.I&+?7%02LL\F6@:9;9=Z^+N+\RDZLD'V+K;V%"S;(0VCEK$!JY']JL!/*#NVOJ6FUOJ2D>I& MHTN>R>6G=JP@)],EWR [Y3W>PB![1C0GJ_8L$^OJ. X2QI(VG-E88).W0W,* MWRP[(XWENDWP">0:D7+%'%-BUI]/DN:CMZ>-^YDA@4[V/7^ MXOQ$I9]7 7@PTT+2@6BA4M+QW[)JSW1Q_=,K%MQN9E5@*[_?:[APV5'9_RRLRE)OU:7;BM,">)X/ ;Z]_^\ M&?ZQ+Z-%0^9,Z^>N5O8 @EO(D%[9[ A$_=DBH@)?_U/4E^+:WDV2(UZ(_>3Z MG_MZ6PKM*?%"$__"7G]$,#E"&YI?=P"V-R/L_&^]'6*W_>R# 2=;G$/M]Y,D M7IAW^&:.D'WIE&\/)]0K8OXK8M"0A\+V?]JF].N$@'.]S-I>,@K*[S&]:7^O MC:TBWB_FO:#D+L.!_FO!MEVHS%Y/C+T]\N6=]ELD45U[ MISM%I1JZ:D"IC>C@#>WC>\GG<<&/75O#@H%5S84_*, /)WAI;LE6"E.WF&CQ M<,F+]]?H_V?O39L31YY]X??W4Q!SSGWN?R+ 5_O2<^Y$"!#[#F)[HQ#:$!(2 M:&'[]$^5)# 8V>WNM@VV%3'18V-1JJK,_%5F5BX(GKA)'W8?YIN$5G7'K4OCT TTHX4(AU8#.RF:NM@HD> MAA=N+?B?JFF1?1>J<)H!-F#BAY-MPZ4"C@,L* M]>&04\Y9X11NFY!^"&CC^+;C1P]!M5JRP02MF"/A[* 1 ?3N7#T*JP,#@#>> MDI7#&V/EA M#' <5@Q3' $Y'NL'?,&4M_?!QQ.Q7H./[ D?HVSGS$#:@37$T$@32=#X^&0" M)/Z/\?QI]*CB&?^&(2(Q3T/D4SWHA#K&>1XS=@']?55WPDQ5\#%,V+-A1#/, M4@5\#K-' 7K C..K/T5!*$M5]8$8K@,)YH)%*:C050W .::QO)S^G(T@9GJ M;V&J(/R3$2W6!XN%NP#8(TX[>/:/01B]"@4Q\!T "/"O;AQ8"O.>CI@!K'GG M<0?. !XL]'%@N#DP6P3\7=)U5]5#&9KM,XO -3S%B#PKH=1ZZDH*@P9_-A:L MSP$$>V,H$!#.!WK-KCT\9:$_/!/>&LC/HI+4.$$P@B5(L7APF&@.O@MQU[\X M!.#L50FX$%DN? :"Q7TGL MX\\=$5\*.D-8/.LX^L9].Z70)A%9%B-EFE5$29W1(D%HF,AHU$PD9NR,91!5 M(2EH)$/#5CH6CYIB$]?*]4Q>D!1Q49*G%;]JZ-">>OJD0A->L328^,*Z+[87 M4IU7;6XK8B)Y-29)KS>]_!#ARWQ[1\A:8:BIG(A?CVD0BX-4VB\Q4RU,!&Q> M4@EQT@5/7HWI.XX\\]OU.4_U)43G:]&>W-@NX(ZJ[4+XW7-T]IPS*NW]PJ%QHPK<;90-SN":R#] T;H MP":^>OMH;6ED:=2H"656'8NLY6 +%A8-NWH[-6;*BE0G)*3L==JS"NEWZ#T< M\^KM(H%/EFVNO.(Q=)";]K!-7FKK(BTB3Y]<-URD%>QYAU^VNR3%U'(E!.F* MS/63OK[#E*:&5X1ZA1DR:AO=YE7XY-6*&J/-/#!S;4N0R(WK6";:)2;PR:L5 MU:<#H55H.1S2[W:Z##N<=@)$!T]23Y_$^MBR1#3& A]49)(P2MU%EX)/7JU= M&^SSKNGG>@*&E-5-=S0;%;KP2?;ID]MR92CURE8?*1A[GL'&G=HLKXOL]=K1 M7@'?5 <;($=:?KVCD,EBYW/@2?Q*-LEIK2M.EP%21Z<,IAB6Q [@F%=O1]O\ MJD"3"XL?->G.OM<^U';+KHBBUZ\O2%B^JY3(F8EM6:>[H&S577&P,-[5HWJ# M"M8&OFH@:[F.ML9ZR97L\-&K+=T55X7JJ)>?\X5C*X$SD;?PT:NY-E>R MU_.*IFY2P2909L/U<&2 1_'K"12'S&$\+J,-GIKV*VQ^VA=\BH./7NT5)6EC MC[>L"H+MFIY^(+?\?FZ0 M;*50TJ46=YV5E?S?+)V7391G]C/4^<_X"]HP1R_0L?;0Q>N.58BR&44% MFAU8E09'WL"1@6;J0=^2XY=G M>P U_[,50N\$^(YWL;0,?%]L!"04Q'G\$!A;QQI D=$AA>ZP7/Q"YO@*\&Z!-+O']?_+6T*$#1W9A+J\;%:"!+IV[OJ'\B'E5 M[2-?9L\V#!BU*JQG:-B1Q=H 1ID5@1<*^'D5 )H$G@K,3,@Z/M/+4'\7(YNXB^#%LY*C<\>WWKF:_GKM0U%"/*!?K&; MT-G-_MGX#A@3>K:.6W+\/8PY_A%%>,!HIY\&5\21-.&+CX]*,\^Q E]]Y[B* M-_%"783'_&$-_I00=T$(](&B4D+< R'P!X),*7$'E$BQZ6X(@6 I(>Z $"DV MW0LE4FRZ&T*DV'07A(#8E(K$&U+B%YMT_M2F_KA5,RO_MP.,WQ>6/]<>R(X% M/_Q_?S%__>9^D.@#>=MVWY+_Y.#HO^8]_)&0/!9J?T^AM1W@;T/..UO!'NIZG.'&' ; M@^)/S@$4O>MSH!L&XD30V FC<3[+B*?(X90%ONFI*)R%CZ?'8LK_W^U8 MU)SX.JEZS!6)C\DPRCR%Q6]Z,E;#/)N4_-_T5$PB?WH>WB'GW_,%&3SY/G&D MQ7_.TS#__BQ0>,\, <^\+\(06,H0;W0*?A&&P/]^B]/RL9+SC_^29575M \^ M0%]:+AV^]$]^5\Z-XF^^W[I3S4\[_OIQ_&X*_$^??NX?DU%L$Q<(7%&!I5%CT(ZR1 M"LN&;"0KK.'U&0R;NV#ACX^-_^]/&<[^5,PR..SAV-;.BA8= M^TJ=BA'E]Z"/*$]=]&&ZO1,Y!$-'T"?M+,Z&_(L$:<$Z_"HMKQ/'N\\ M9>=4^2@>N"QN"A,3YQIF6=T;A7.E*$^*T-];/+ ;S#4)W33/=7BJN>E%3/>5EJEMECJ?_L*7HCW M/Q"^'Z&_L[/A$S#X!UE!13#335@UI&I[OAM ,P2VO;VP58X'2P^<*WUPK#QO M]ORN)86]MR751+F1K"^5.;)OYL0^&90)OZ3_MB7UN&VGM[>UQP_#"[($(VKI M3=4![>1%,]![,C$IB4MYO159V*( S3(4\7XFU/<3].\,<'?G37TW#?R+$S-U MGGZ91=[-5]\D2D#?UW:?AL&OJT?\N/OE&^N_KXZCO#8;R*.)40? M8PGQ-)8P]65^&5=/&E&5^@!2SD\Y/^7\[^/]2F,)TUC"U!UV9]Z$#[IS0S$1 M#YLGXI\J]%!8[4K3??701]:>CE>*Z]G0FO_^A=F?A!Z6&J:JL?NB9-:G-2K7 M:/0JM8D>;NQ?_V(HG:5I)HT]_*8.G7O#D#12\5NQ7QK7F,8U?BZF37V!]V,7 MIG&-J>/CFS'X1]E8WR6PL>XMA)S 5*8F1;*$B;V9=$<6CR$8*?\?DL.\GZM\9XN[.M_M:'?S_^K"R[+]'.6@! M1'(-^6XH\X;[9-BP@N@/G'IQ7N=47KEJV-;RG[@U048S;,F6#,H.YZJG/S$)7;7 $6-8^(ZU6KK,#, K,$@W M968#\3(SDSPPGA/.$'SHS1W7SX @FPU@> :@LN1GP?=,+-V4))QCO0>:F[/%:0'DB35&;T+/NI[*E2BY$ MEOD_BN&M+&G_(V2:^-7'35X)U=D M6TJ[W-FVQ:">LU3-_Q%]Z_A1B,?'SW[2"C>FN>^L?F#H _6$WM05L=_%LX$_ M$N9_I,S@5FS#6JVQ M=$B7XQV)2E*XC)[Y^LYDZ079>4J/I(T&H@A5<\,.I%"U#W7#F:@O#TU//Y!; M?C\W2+92*.E2BQ/AH^C;BL.SR +QUKCR(F4,+[.,5&LE(_GG^!IX$#G]\&L M8M4(B"5YGLV 9X#LQV<*?$@+(*YG; "SX:TG4))]*]+7,^INIS.!Y#\)=P1\$!YH*SP 4[E E\ (X' M.#_% &>=#SYZK%\//H462!;.W@J@F)Q>%(#3#)XOX1_/=B3"_[VA6@H\1#;@ M@[/QP.Z ;5@Z-GC-.NPC%7T;3 V<%'U5S;3 AQDFTGW0?\+_8X"]C 1V-GR M6S(@RZ-=D7DTT@ #&R'28V 8>%Q!.8>K#X_AR) !OSVH-G+/$/7(W7ZD%K>XB2ZWO+SKK M"L>ZW:=F7 _8GG:@EEQG68@)/P+J02'PP'FDN@/PLKSER.9?1R$5-T1'S\NB MSJOM,FU5^\TFCNB1K0TV5U4X_X7G8F'.J, P7(%I %*J-X@GA3P8P1H1Z^#Q M/ISB1[^1LCU28TT5R*4;;4,,01(0>%L/#XTC*H1HMU^I%Y"A&3M5R:U@J[AL MZ*/>_X]=BE M(_4,1VNL]JC9%WD/?#OA/&4B[DX>'B@"B M!6P5T=\9B]ZXM^-X=3JO$=R$:W=0_:]_L2R*4@_7-_ 9P-46^"%BCO>F#'Y. M&?R=*%.T[65=EN>\66C+ZI :Y:?]M7YSRFS[/7&=H]8C/I@7_?5>&4JBUX6. M-YJF'Z@7* ..?ZB=@!/8VF>/-N@1+8!Z%&HJ0-XT,,4S764+;'0@E;*S"I^2 M%'4-SE\P!O@",)I5):(Y-.55L!MJ9@OM71N,+ %+%4##'AP5?F0X^PY0!TYC M'S6?6/*]"^@XFQA0>1S=!E (K. -5*M"2 (S%3,0DR_P&H" TZJ'&%.B%81:A<'37'C!< M&).\$/T\B)[0 E?@0$H$O9&"'(X<+O6X&C#5TU;,H$!ESYT2\4!/ M]D3R3G."SHK8A_/(@^=+@XJ?#=C13WH!Q(XS&C\ X\>+5&AG=KE'&Z[9NA;L=8J8M S&=688>V8\A MW\;ODH[/GGCK\3U70X0?^SG1G_(N G3S.@?+;!L:*>[-@,O.X"5JMW(8N+0-&A 7@\.L)3 MU8LQ,>8EL'SHHUJ=ZZY>M$,K*51U'_<76J@ 3 /+-U;/,AE$$%K MI27D)OB&XYKAA$*=U \WQ54BH !S :!EQV 1>767TL)Q@< >S]+'2^,.;SC"7#<"@!W1MC*2S-"93QD8">4 MIGAX[PAWIRT#*\T^'MO9XY!'=GG(5)PMV!07<( L2UYHE8/W@-,E7)Y\*1X_ MV_OX7/NU+V7AVXXO1[0*4!0OHB[84Z5$AW6?0KW(Z7V/=X[D1X=]?)99/R!6Q7.03V@.UP9\# MN B\6,Z/+W_VK4;$:R<'56B_A2:;E(G _^3V"I'UA1U\RP/RXMS)W.N!R)V: M7YSLT&PD!V]OZSPMWM12EU)O!.QJ <.6B\*\ZCK(8GMAAC"_;H;TP*B&#=BC M\TCB]HG")\.#/3,\\@5Z-1BKY(0O+%6Q3MDRQHVYO_XE']!KHV,6&1T1L,:O M>AX91D?&A+Q\.HI>&SZR OJS.&-Y'-?:W-0L]RAQ3'/6M%W8_I:!_ZHMXF-! M FP%'FEK_?#\BR8*9N;Z12".H;D)15:4;<\7H8T0O@JA$51DZ'U>&9G.TNS; MDW6'',?_?K0F?T+K<^U""=PC$MN 1)D7_*3/533[(%)-E[O. M?#WGZ@@FM!=5IY=?+D;Z!75RGBK_ "L"-JGBJ?9OB=U+$^V$>@=Z1B&$-:VJ M3C1: M:P&FMB51J5Q2V\ (S=9T_O2T/5Q@MF\(SPC>A2V[*.Y]4CZ6:2%9(M M/H!^@2R>ZXL]J%N%NPE_:X(AE\'R26#4NY.-1 A -E1>% 0!(9=(W>8.AT:E M;0D"ETBV<,<^@&C6:FR91-U;(05[QDV(5KM\8+?1K>T3:@$H_+.MEW:WVWJD MXDZXZ.\Z:C-P&_F]!%UGS',2$VK' MX95WZA7@(LL[O"QPSH-7'G5ZP]XX%KQ-A+@1^^$V$B #=,"I\MPVUH'J72BL MD3?J6HD_WC'$=D/"V[+7W\H^\;<]<;>%MF;L_4KTWT'OT%&E!F>B'%CG%RJJ MY-K0OA7@Q:3JJ< :A'_QH]M4V7#E8 FQ%9IGT $:&@J1UOW$-HA]@=#2=. ] MOA%Y!Z#-*7F>(QOA"D(+2>Z!QY.)>.8D!/RU-N M]V+?2>@GA<2&WE\5>JHL8*L"HS&F93Q,N)-P%,=]7-?QTO#1K^)%;H0M]% MCE$5^)4P\$&SG&TV:45G/I1XXR-_1"(OAUL,'7L*F*,'3>IHOZ&D?7O,A29_ M%$=X[6."_B@/WJ&&'@\/>FH@DL*+W2/N/@9,*JH;,_IUE$C,4'*LH?\G=H^% MX5PQMEF2L?3^!B(% -Q00HY3I"4P'H"8 <@'Q^5CD$SV0O>?.39 U.BJ&2+= M1H5WQ#%410ZJ,$(E8GN(3/&=PY%_(7L"FR?Z.12FIZ@?V8]'B$U>]]'7MH3B M9!EFR&>1[P]L7G0]O3VW0@%'PNGZ%N3#D1IOFWHFYL=7 L[O[ J$GNAN M!Z" 'KK0PMLE*;SW#'W",:M#*T4V5N&PYRP5PKQU$2"4^<_<\, I F_OLJ>X M6/@@/*H!6H$Q_HZV,;S@.MV*G5Q[<#5!>#_GSZ&O# CMG>-/&@W[FFA8/(V& M3:-A;Q4-^W( W2^$VV$?%#M;2%8)@&H86'X<&/)H*3Q>SX)3\^QQQSU>^H4Q MGN'Y>3Q;@(89J>CJZ1XN5C2B0_<9I01:G-$I?;P1C2_9PC (H+M&1ALD6!PB M$>F@1_7@]/I(E7GMR[;P&D4U0QTY/$>CWT(]V[*@JA#MR7%.X8.A5@-^A,,< M_Y(+XU*45^Z>HL*C_G&PQV%"IH/CP.'"TQOLY]DY>18_^R0P R:-A&L*?1K1 M95^T<^&9&R>4Q.MXR!2B?8KL6"_:K6@),QA98>>>65GV9,>Y,#;CM(+8JHOM MMV,0QU-K]QF"0)TA5C5.41LOV3[G]V;>*>[#!Y#M1Q?46?Q5>NK(*IRO-"J?.WZ@T@ICQ1ZC\D_;>=%G=$]@?NBNW3HUXN>"C-%X$?9IU^)/&9' MV3QZ[!YY_5(4+L/+PFB3BT>/ 1L0V'P/08X M1.\[V\]0QD)< ,J7^D*8]:-?9PL1*=1YPGB'RY+;'\[(#:'=U;P-M3H8?% @ M9T.NJ[;\$N %Y(&^&2\<2Z\?V0$'[*!!OX=D[Z/(ZJ?^R>A6^M'-!2>XBG+<" MV-J6JSU>!=::/S-D\UTEE1^_%ZL MA8%'E"CD&/SD.5;L0LW'%^W]N:KZ3P+DDCQYI^#W:#^3IQS%Z,>X[SF1)@H? MU]WX.7BX'!6]L]?!>U8O1-D:7EHTZWIM2X,#D-9]*5S+[)?3_Z M9!7_J>4GZ@R>P9U*_"EAPSWKB2__3$8%O\IG%3? E26A15W4F '3JRR_@*32-I" M$@M^3>#+S5QMYBF$6CG ^ N:_@F37$#5)4FA_,W@77QR"/O+-B?4@YU GU_* M=6H45NWPA@5RT(79$1EQC\$;(5E"1]B9U?<88![?!<4'D"""7Z2;?0N M5U4"^2)9()G10C^'9AUMX<".4[C #)Y.TE4ERSB<[M-"?0L&DL!(__!F/5Y! M&!P E0)U)T%?1C;R5$E)R;?Q!JH[&89+1/L01DR MAG<686X+4/*.#CBHC9R[((X&;^3(N5!NH^V"WIQ42@<7H24A;\!;9NBG#KTJ M)T^Y<5[(2%%7:CAB)EA!= R=Y[GPYX2Z$6#>@ V@)R@,Z;9U[Z+DT1,OVS%M M<3678O?TD5J1"QU.\>0CE:*TQPW0T!7 1&"J$!Q@ZE_TILBGYX4AJQ%?GCL3 MS^)-LK&Y!+]CP+,7#J JQT>SC^K[F;<4WC?#H"3+G%ASL;NS*.TU,8/RR=0455/#B+,7IW8T)/:IVOUO5#UK%3+84X,K M).')UC)^P=8"^Q]77XEKN@# =;:PDMQ=;[@?YRI%M];AO1F\L;:DE:?^./[P MSQO%F*.GJ,).#?_N_Y M'_YHPD_B#L)-!W-]H; @5BQ\4EWPYK^TUCU[L;LUP8\A#2.!6/5#R>BH>K0E5#TM63G7&ZO71#48*YGPQ(:2,X>EL> ?5](^5'S!XQ>U(D(O+?Q&6%L1UNF%&F\D M4N$]%\R?/*OB "M>1>;%2:/R_H$>R53D4I'[+")W%K-]C/'7SHJ5+)S9*9CE M[!%XZNS5.)X"GCR/!UE4[^[BSO(TP-%Q'P*<4^K!%54459(9)HH*SF$@P M)"M*E"2+J$S2C"QA,J[ 0$TX/^E8+%]TRHV^6NJY2+VPL3RGD'<%NPN]^D^? M]/(E4YFI>;A@^6T1U\"3Y]$FJ/>BU558X( '!&4&YNV0&9%?$KL?5V=EQ4_#*J>>9HMFZUU@-6G'7AF%=OG^+R M/I#=I244MJ9OE]FM5MIN1>+Z[?1F-/,#S=@C$MWGUJ7%:-:ITPI>VPNU%YV4VB?Z"T*U157/G\VE!HC9^2!9?CDNC?R2]GE7%[ MM3?[NT6_N>R);%G;)M'?9@POOZ,V;6'MN?WEI"=TK,DVB?ZF(KC4K.?) C:J M'NIM6ZLN1"Z)_GG=@AAF\N470V&K2F>A+]EWUY6^B:I1DR"F MQ>&\12ZG@ L3J(IK*U<46HZ$M'O#*CCP37RS@;2Z6MG!(^LH1:(EOESU5R0N M(WR)V291E1T%G%ZTU8I9U]9!CLU+Y*"82-4@F#VJ 6KE5L0*F^>G+1Z$D%?T[19K]" M4?-VS2<)+A$IG/9HY=?ZY;VPE(M^<>?;G*1OKY "XK[>7./>)#_AZZ[3\B?N MVL5[<$SF"?=1TFS&,H!_25H1"9J414;"&9'%:5*=::J$,<33L=5>:5Q<]9L2 MOR\=N+Q?* 3];2*F;#JKG..WICT>FT]*ZS4RZ';T;1+W[>950C3T&I K37$M M2EG-*E@B]S%D:T2W)\VN((TEAK.5=_D.[HT+ MVR3N.]10/C\RK))0&&GS?F&TK.\.>A+WL6"U:Y4J:#Q6*+@*I98'#-U-XCZW MH:Z+HZ4;F*.]5R(LFLU[R>B#5O7E8;::EY&EX?@%E:76XY!/K^99V"'UK7@8 MTF9!VBB5?85L54T]B4^'NP,Z[4X:;6346^U&=;917;42SZEYJ6LAP>Q0%I:[ MSHI<8DZWNTWF4V5%]+SJQ$;6U4I)J!K89+I/Y-/%K+5CZV24W'@LX0UY?V>V\W5.H>9&;F\G:DG#PWRT:RWQ*1*,2T-? M1B56=1)/R9DT%.R"4JXCP7(O5(ER7>ZIVR0^K1&(UF.[0*[.;0V<^PE\>JBL M.H*"(($9J)0Q7E+$=H8E\BFRM0N#.>GY? '=Y@*!MV;>?)O$I_B^7)F2]?R& M5VV;(9T )VM&(I[ZXKXG%X*\+5 5QVE;BH1+"_V,3W\]!0O[I10L_*]W*^3^ M;"16&(03VD'71=SWAL9H76S0% J+MHE/BIMZ=[U]I[+LK\P:BR[DSEOT7%RN M9?X3WM$Y@2?9BO?WCU_U($;S@:^/#5MHN\F1=7AI2"./#K78C$:N3&#?/;XU M'@V-782OZIU*X:$?X/E>5&?6YMGX,(03UDTX.G^.OX<=D7Y$7@=8$.>G!O^9 M._3TJ#3S'"OPU7>V]1,]C]&#KW<<7[AL_JA1&/Z O-B8-R7$!Q$"?6"HE!#W M0 C\@:932MP#)1[8])"X!T)@#W@J$?= B!2;WI@2X77FY;7V'^FM']I3JP!F M.',-,$Q%M38JG#4<4K*]W/6XO[)+[ZI1?JDM B86_/#__07,X=\4:?*!(MYU MOYB7KH7CE[S4*PQF=T2W@CB2/5X/SMZ"57YVP*>LZ*\8VV!UW0E.6:6 M'R6M%Z;4P9L>KQ 59STEB.-_':_X!@31&?):3T4,63YPFH&4J3J\,L7_^I=" MV"Q&7%=->;,3Z=8L_/&B&[G$;KWN5'3_3'113,3CGKB.V5T2A;EJ"^OF"A_O M9E-];'R0[&[*!2VH[_-KH3[1>)2FE;5=@[)+0=DELBAUW9GV4]E3/35LU!#V M,SSNQV>PBNX!:7YV,?@U%ODSQ_9709QW4Q;.@*;AV/I =4^=LKVVVX$U2J6E MEP ^*W\W[C4"A$)&B%+O+W)%]H#!J#R@.& HG67IZPYUG\&4O0>V_MG%V9=8 MY+>1W??3%GY;>'$V7[("V1[QV&:S=KIU:8P),/2?"AT.69QDWEQSN+72^UAF M_90D^9^K+,F_4[?$V[LE;NA]N]Z7HZOQ'0V@6Z_W]I#W;NI*U88UNQQW7W+< M7X.\ 75H5E1JL4;J[D3;%,?6>*C"F&N@KQ!DEF:1U,_Q 7Z.6\M&B@5?1_WY M?3 @^L&.G9/%%3_JC HL/A\+N0E,: /Z#\YF*1+[W(Z3CQ?X;^13N11I'(BT MX@0PG^(F&/:6OMQ;+^SV8/5NBLNSF48M6/'W.0\O)AYZY>Y@*B&Y %]6)E.F M/:_ 5"V@M# TGD60E^RTU,GR"A7EUCR?"O,GU#Q^3YKI$L%: MJQ.= TRG!%H'0U!9E/[I?*> RE781?"ZTN[M&ST2R5U$WJ8I'5U/T<50^HA+.N8 MUC$,!WJQM-AS9;C/*^N>RIU'S2?#ROI1MY"$SCP *>KA[7OWHBANGWD?/5-U8[G;&&G'-E6!T.^:.*Y3> MP!XH-DTAO4SLN57I#30EQ!T0 GU@7LS 3 GQ<>GMU(L)CBDE/JSB YT2XCX( M@:>$N ="0&Q*2V^\(25^]?;]9WKKERH6\#X:Y9?:HC=)+2?>EZ7NM_3&SP[X ME%6>II]_0 &&NRN]<1>8>_O2&^\+JO=;+QM$V/>Y MV> /2V]$0'CK\._BDYNW-T.W6R_L)A&@Q.W7_49A8M!I]BWS]]\\RO/G5UM' M&>Q%(OA\D)A%"&Y0+PQ)H8 RG+YS_ !QXH(U#/J-SZM:,?9,H MT#M8]UL)=%J0XZTB/=]0HNNX!E0LVAL)$J+,\9HS',E+/2K3@5-X%B79-\PV MN8'MQ27&.7P&&^H>$"A6*;YJ7AQUV_)[=P)0-] X8JEL *'L'&7R>9 :=QK5 MC!9AGJ'96.+R[?L8;Q9>7[*M?D.\KW+1207Q/P MS7C2F3HS;&VV+:;MF6V@@@R[4D>>SW[](=MTS M;I.;K_7V*/BAV;,G''P!\YQN?\0)8]O<;X2IO3.P75[6XYH?#)YEZ'=)GTU] M*?&R\7E/B@J2Z2) MMV^6#/&]LF^?9;[S]%NQ,U@TN^7&@%_:;4>M,383\!RPJU'ZX=JN?FW^[676 M[=/LNH?,;9(_%<-;6=+^AV%;AJWF9C"1Y^+[\#NQMDQ%7X^Y]DZ9O'>=> @8 M*$ST\8Q=9@G&FGL9%7Q=R<"XJPR.A!0BLN 9R<]LI5 FK ^$*?URD\%9Y^9 MQ2F]4ICMF$!N.(ZT6KG.SH %#*W/*ERO@O)XTWNG/4^4*^U073=VW5W'[(M+ MCZZIM>G6&#ZWWGR*^,\4FS+ GF 4FS+.\A;P-[8-(LRWL@!/I 8RDA[H$06$J) M^Z!$BDUW0H@4F^Z%$"DVW0DE4FRZ$T*DV'0OA,#2.B%O2HE?C$;YJ4W]';(1 M?P;+GVL/3LEIS.\FIQ'L \)\ZN2T4GP)X<]=5;V^AGB2_GV=T?A[4G3C#7O] M]O15?0FV],VR.-]9?.XWBY-X(&X;GOZG@M+LF: MGTB\YO=<7WRLG ^>J_KJTN-VAB?&=_QB>Z7"(6P]UAB]9AAY$WZU*2T<]QB< M$GT-QH:!SSV .7W5W1BRRNE 8??/#T8CW!\ UB4'SZ0#SS#5CWO^*;' 07. M5HKQQ_&W4<1?X4QEIR#]U7[&UFN#%LIT_Z!5;'BG7W*=95+D#;^#$4I@%V [ M"?"?,I!V"8&4R.: MP9%BA(HS!EWV[UEH:SJ<7(Z2V6)%_O&?G)T>KNLJ11T M4M#Y9= !&NQ'X$Y=X=<-BUW)R+HR1SJ*H F-^I^TJ'X+W*&E'L6[92DOE-75 MOCL9-&B5V$8I]"A&9''B7;JWIKASU\O!;E6,YVN"SY_AAJ'O3;307[.FQ 03 M52'M0JW/W1@W'&^MYUURC M2VYO4JJN)4\*Z #?8O_ZE,"1+LV_8Y_X6%PV\ MK;KZ_C-X-.['VOOJB_Q9+$2*@7=B]47">PFCY<.0$G;[3B L<5OD2MJ8[55N MK7Y)W:#1LIT"9V(YVBF9^+@_/^A1<1":SK(OMLM.(2F%I!22/H]-F(1*Z'1C M:#S'=,VU.!DUJ=&&75JW5N[:P_D&%^:E/=^VO3F)Z*2RZ.M111.&);/D>QJ% M7UUBOPDLO1R9E<+2FUB+28@RWA3U.EGSMOR^.;17M6Z -4?ZC1%E/O37AT'0 MJ0EUDMXKO MX&B[=:&T6^_+L]<%M]Z8%S :HO)_[@Z6S\7V3&K?S(S=!SUDJA=X#.GG"HJZ MK6P-M_S1&A\@!WA/ E"3+"L,JGW'-'.'6B$_F+CCT>A8V.FZI,;?*9:E6)9B MV=?#LE?;OY+1Z-:W]-;A1V/:4NPQTQSG[@;.&DRIMNK0/9NOX]2BYJ^U_)(Y MUJ="LB1^7&FQ5L'P<#)AK=8%0<:\]'&[[-H MU-]7O;*JCB0>\\5E<^'W7+8.E2LV0B.:? F-?FX%^\[J5C>F1T]+!L7"%X2Q MP)G4*7A&F)^ YJVK6_YR"-O+B\+N8U5W[B+\,U-2T&9U;M];BT* ^?,5J;?+ MWN36D:P'-2_V=T:A@?27U3GF#(L<@6[ANO_ZEZ2)+$Z]5!+T][CM!B#QZF"K M5/93V?\EV7^UZ<4M*)=G\'G3+'3SJF^R W-3NK6GO]VC5OMRQZJ8*E6C>KXX M;-4+.E@ZL+A8ALWBQ$L]F5+Q_Q+B?]UW*17_<_&O+VMDSVUQOC"JRM-"BY&' M]N#6L4C$8CO5VM(JX-5BKU1!#66^S7?!K%G8J(BD\"R-7ALHSU3SOM?RE7=B M+J15--.**VDUJ*] B+0:U+T0(JU4=R>42+'I3@B18M.]$"+%ICNA1(I-=T*( M%)ONA1!I%TAN97*2N5EK-[I[ZOGZ6:2D)-JDF?WR%S9YHSRZO=8>_3'%WI MW+IL@<&4:\M%B:Z;1KDP9+?^=*OENE$-32:LIO);D8L]%1P5413!K[G1[_K[[(;U3_[G,;D4FEJL1= MKDH[OKI%"NTIQLCMTM#D;IW TJ<.++\I\@&?ZP\1N\.U)I@_8 MB>&KBVN*22DFW97IF 1+5=H?,R*H[543:S)#HURX-2QQ>*[;5#<+$@G\ M0;TS]4N5&=J-:G*B69I$LGA:+#@%IK0JY^U-QB1,*=$&CE0]Q.?WKKT6Y%Q^ M2Y9OC2F:,R &3G5S,-L%IC3KE+QJ58VK3.9UN5,"S]] ML"YXAQMSJ\)/OPW,[UV7\V#WU^6]>) 1*8?6T>I\6B"+'YV3_6SIJ$*^B6VY MO=Q ^N[6[1XJHVJYOXWJV; II*:2EA3D_ M*:2INKD3T6Y--M7.ODI4%%,;K^\&C=R)T=9X8LSG47J[IS+^&?V9(=KCLOE-T]CZC]?7Z[VFTTVKYUA,A! MFW5ZLS'9YP,171%E;C% N+@P)YI%""9+X&EISE3Z4^G_<^-+Z.DR@?#%O-!& M2;4Z\?VVW;YU95ZOT)C;ECD5^/5ZL3ML/!8Y^%Q4FA.Z^^DLRZ0 \.4!("W. M^3( D+OY2BUH=1=9:GU_T5E7.-:]M>Q:YBXIQ8 MEJ6I+/'S\,[O49SS[>>55NM,*[ND5:<^ R%><:#?C K76P]FFR#TGYP$:2V\ MST*)%)7NA!!I+;Q[(42*37="B12;[H00*3;="R'2.IUO2XE/D/&:UNE,ZW1^ M4)U.?^ZJZFLJ=>)IIH/O6= MR^/%+3SQ\R@!_-/474FH7Z520Z?):3L<6?NS^:XQ;!%M[-;=1]O;16W'29T" M7]8PRUGSMM8N;:/BG02#9%$<_;JU\5X=L/2M2MZEH/-!H/-!-3GK94_45 U7 M^/5(W:];RT[3LF\=6-7WINH($4;-[<$V7<.53VJLTFC M:)9$V!264EA*JVS>VEI,0I3R#L$;RZ"@F\O=ME!'L)[;F-]:S^$TS+VE9NK>"Y?>NL8E(U;FU M79,H4L;]7&N/("/%NIL:FQ378TM3Y- QVYMI=6 (76JQ[\8U-K,L^6(1J!3. M4CA+X>RKP-FK3>!AJ;8N\J.IPF.E7IG=> MPC^S)FDKWS34VFHF],OVGJY4G'5]?NO@$&+?6?1G-5PU]UY#)G(=8E.>=J,J MFR1!9''FM^+)TA)[J>Q_#]E_M>FEF;5=OLEA%6$9S';4^B ;LG;K,'9IGZ_+ MNJ^OA8 U:[K06C=YM!O5V&0H)LNR+S742L7_2XA_6F'S9?$?#?("5U+U#5+N M-8,2;;(H3M[ZFD[;\1-1*Y&2V2.[HL*F_%C MK0"\WY"CW^$&&78@Q=\+"U&0+55RH3TP_T+;EO%X-IL2(\[LIH@/X4WH MTU(=\-__=5&(Y.1&@$4X'??'4:+.=C#>&2P4+EW-175.) V\_H=D;:6]%Z^5 M01_04P&''R>IQ.&D:@DAQ"BS'#<=[O@V07@]>RQ9 M57X+4>[ID]JB3-""AP@FML/7Z&J'%5>[KHB)R-,GYZMRI5T>S *^W!FIC"XV M_.94!T]>C=EE\)*W4E&5'Y$E=K6Q]#V!;L&3Y-,GR]/^8;.<]P)!Q57DP/7% M9IT_J4X&KB^/" "DO&+,]]SC*QV'BW=4\-W0MMW0+_D+H=XP1U]'& MG+S0P9-7\Q0,;5M>3KV>B9'UP:[EF$VI"Y^\FN="&C<+.[DC(?76Z#!O2OM^ MT(&Q]%?SY$IT?CCB&9JG@*U'>\J>[59A8-;5/'%,I1OYU4 0@GVIUQQ/9_L" M OU,5T_V$$:L' S9%:1"G1D/2@T4,R'F7SUI-3MS*]VZ,0P*0HW'"KD%L><[3GX+-<"KM5<68GXRLPH:']0.ZZX^6VY4 39D MN%R[.",U1J; X:G))",2,JV)K(0K(DW0#"FK!,;05[N%F/7=J%BL43R&Y_8> M'JASM]E-XM.!O*_@>(#TS.5"I_1*OK\A5"Z)3XOKC3"11N80:=OEL84CPU%_ MR27Q::DA[0A\N5P*RWS'Z-990J"K>A*?RI4VFJ]O"F,3*\PG8D\>YLJAE%RM MJ+;)NT;NX.21@-@'O2&R+&,$?#N*/GV4'1V420N3#(2:#QN8I^7W:IM+8NGF M?CZQ4<<0A')KUUD6IQQ?,KDDEK8.R'HPK!770N&P.HA.J63GBUP22Z\M@6_/ MQZ,:LL9\(U>V#@+-=)-8&@'KQ>F2X9M+MHFU%J,>/FO!,:^7-#'VG9)3;JZ0 M-;(OU$RY4&SG$KE_46L07*,V;@O&2N8IM35J89:>Q/UE:FXMU,:PSQ=V^^FN MIZ@+7N22N-^9#)B5/7,%WBAN[0/M+R<^KN#Y;\X,#)[%U8V4V;+V%])DN7QRNF8W%PB>? M;)-(J0A+JO1,G"DD)1(S1@&"HJFB@D@S&=%87&6HJZ55=ZM98UY6D/V: M$YDN+/4D06&69MFCRG6.5YDFR4O=R4#D]21!4:>+7LTH*@VD38U:OEX8%N3E M-DE0!@>)Y@BF-S4ICN?V@Q%[< 4N25#(17NJ59K-&M(6Z#U)5T@J3^A)@M(I M"^2HV] P(5@&9;Y099EQ;YLH*(9H\9/9BI21,G(@EK6^N!H-$@7%LK'#?-2: MR6;0W&XEKYHGJ48W25!:HM'09BUTR2]-:C =(-V 6R4*BC%K%(?("NL)@778 M4B.[G@N*B8(B[^K\2K5D&:&FII8O:C/QX&P3!65N+TOKTBZ8(H5!NPS$9%V0 M"XF"XE77#8RC!I294UM-UJM7>6.^31(4>N(4BG5.W_#JJ$.+XGC?+J")@F)O M5'[OK@L=OH^VZMUU@>&&8C=)4)3BC,>8;FXNY!8%93\;%?6VS=*419RVKU\<$I#S>V+7>[#/]%;49='B;ZB8(BHQ(JJ9J+#A1 M9$DD2 GH0*HR$R6)9EB,(F<,2C\=?#D@V 8Q.-""VJ_E]TJ_4UB6$P6ECW4W M,YEL+_E@X*T6$K/J[=;;1$%A&\@XJ+BF@#F3:K]YH%JC0:*@]*C<<%%'FAN^ M,--*>'X[P'$]45"FZ$K:-8<$;O8;C@^.+ QK<(F"4AZ/IL&@E*>$G#>9;S6\ MM*N;W41!(<72Q$640$;6LR(O8P&Y:HP2E21N;.0\LK[1A?(NUREH@[ZXUA,% MI3>C-YM<$[?,0J>"RP6[I6F#1$$9::S:Z$HY"L&T0=N== L5D]DF"4J/]+XDGBAM>45+HS4U,@N% V?3.Q(MMA/UJ0EYJ.?S?5;G"YSCSO2R M?NCXB8*"U276FY3;"#CW!@M,$L8U@4G4IX;[*D:N<_V:(+5UI+FT<+X]2A24 M0K!P%UW':9CE(F-2M=9&JU#;!$&1$%1528H2646=B00J4^*,D68BI3 2)4LL M05/$U83'.E5S^4&;[[,EH%%7>^4#FJAZ-;LEEYV9K8:@-I<&VIAN5)M,5+TV M95K;R$J_;V(](D"+XG!WJ">:"/A(JY"$$#3,I2GK)--8;(M2HNHEK Q6Z%&$ M;:ZQ-CY9E3N502711+!WP0SU-\,!,CI4#=VOU>5M-5E0VL9F30O$UD2,%MH; MK'V_IX0,>+6D*CH(5+)6$,TVUC5S^$%AQ4JBZC4:EA>].D=J@*GS8]V>;S:= M2>(Y89!HSO94>X#T.7TG;!U,:=K)[)_S&%=$SW2CPG:'.] M*W?FJ[U0Z.(Y+;>SEQ4ID?V=PWBV;VY-6R@4T1Z#\-90L1+9O\B1S;R'[0K( MJ%_:[A>UT?* ))H3.3/(8WJQO1?ZQ=V&6:[J991)5*@6 E41]NRB9$I;@)*+ M4H_;;Q,5*F_7.Q1'O>(>&;'%.66,^-JB=<'^3]Q5T1=GHK@A.GH>V(R\VB[3 M%D#L)@ZF#1_%_WKV6P-CPE2VXR;!!QNNM.*ZB-L6NN&WT+=U,Z7=:-)N--^F M?G%:6_VS$R*MK7XOA$C[/MP))5)LNA-"I-AT+X1(L>E.*)%BTP<1(NWB=W,2 MI-UH/I@2GZ L7-J-YEWW(.U&\]B-QC-V:2^:M!=-VHOFB_:B27DC[5#SM?@C M[5MS'Y6GTKXU:37WM(M$G'Z#?NI*Q@GUX'.%,H<=]HB&8!L%+>!43IGL;YTY M5)9%G1ROZF.S[J*M?MU">PC7C5K7,"2>I:DOW$(B1:<4G3X#.GU0CYLQLIYK M2ULN\?7U=D7L$3:7:]T:H(I+MJ60DVI9&,TLJ4?V][.#'?>XP3'8L()( 2IM M^Y=VPGE7=/HS8-DI'8ND=^Y2J-<:J_&DF%_(K5L72\\=]K)NS>=EOLT&E+&L M%DJ"M8TZX:!9E,&S"/)2V[Y/<.F1]L))*[Q_X\83G]N"3*H1W^6=6G$XIVUS MZ55;K, 00X*]==F8P* W4VM2ZIE!F6QMVR4L&)>W42\<%%:-(M-F."DFI9CT M->S&)%AR:Z/&N%5;S?A^M;ML'91-0*"WAJ4NP>\$G3LX/-539VUZ*R./WV-N.M'3)I0YRTW/H'ZX)WN#&W M*K?^V\#\W@UQ_&VYN".0U9HW#H-I>2Z@DE:]FX+M;'&X7F'[>DV@>)7M5%5> MZ76XJ"$.D:70ZVO-M'M$"FY*,&/.[0:,IG:=JPSI?0D;C5ET4=7/8"+9Q0QPVB[#7K:;3ACA?P3/X M+:OBW\6J[MQ/^&?6Y'['N;TF.VT)A9:])0X'!M-:M[Y#V$QWJ]ETP5EF0.UP MK+#Q)^9:CQKBL"P./7YI1XQ4]E/9_W/3RV20H#GS3+XL(-JV6"K9ULHM.I8]7Y[>.&Q^6\RP]W^(%LQ^,V.F4UO24N -* MI-AT)X1(L>E>")%BTYU0(L6F.R$$^D"FA3?O@A#X Y':=/= B12;[H00J=YT M+X0 >E,J$F](B5_,.OFIO^]S54A\'UC^7'MPJA*)HK];)I)"'A#R4Y>)/-9G M]N>NJKZF0C/Q1S4E8S'ZMA6:WUE^?FUQ$4VO_[U:[1O44\4>6/SF=/\C03%V MJI);N8:LIMSP[;D!A@RDS/ VS$ ^()^;&0J.YT?;XZK&D6WR*%"[Z!^P9L4E(PN<[YK04DB"OPCS@/_ MB+>H#I(4X9>7/,-K:QV@<\ PO_/A0M44_D$]?O%-"E16 C8_+4^0@3DB1OAF M9=:61O[6$8Q3!E7ZC7W?0-JH*DXQ7Z\.RW%I;IA[\&*ED4\.5:\.2$X1*$6@ M#T&@"#K &B[0YVWJXSIN33)VN;Z(!,O.8J[ZAK&[>6< &9T!KEBN5$0U'6?I M*WZ>IKFX\#9#9UD&2?'GE3?>MU[.F^!/=&6:W[TSP_MM84C0JQB; MIQS$#,8<357;?17W;YV#Y:*SM5WG[()0;W?1#H)Z):-S+-.-LUF,>*<&)5\, MAKZ2&G0;RGQM&/H]R##TO8D6^FO6E)A@HBJD7:CU;ZVY#,<[S%;ITKDCC+:[+W["P_VVON3_0"_75%_FS:.,4!._2 M&Y54^Y9W2'PB'[83@2(ZO5IU3@RU]JUK8:"Y>J54+8QQ!*.D6MX:=)%UK1N5 M^2>!(D;\7BV,%*%2A$H1ZFZ]54GP--KR>U6:"FNS/9H/I057:PZ7MX:GF5?Q M^#DOSDQ#Z8S8WG98Q)O;N-P_160IY!W=55]==FOIO?6^/!NL=NN-26'MIXZ_D<+;,Z9[J O2PG4VO0F"B]N[:2S7 MW65^Z[HEBIMOQ8#=^N-^6+HAI7IX:;% M6P?!P,F&MU@5!QIS-WJ6U!K,JVB!4H3]0CD06H%;MI8Z0"+H^H,V)'W=W_PW M>S!]>)#;._9@^@)7(3]IPQ"BYJT;%OQRY._+BXKMU%NOZHXO1M[:?S9RIZJ_ M%=MK7I(FG3T_*NI!_]87J)+--.F=5.^897_H36;F&J7:W:@C$X5@68+XK:S( MGS1D^7#(>*N&+"D2I$CPA[ZF1L<./($@-HA!SB>M&9+;CSDPDB65)ZJ4(_V\' ^0]=#!Z8QB(/3RW7M47@X&?^6;X M"(3)TN_2 MIO'3HL$750JNZB:E:'".!O5EC>RY+W%J=7\Y6HD:IB,Z7 M*T._LQ3GK,Y"R84N#!02\AY.SY9V:_:7MX]+V<8FBD;8:^/:$2%L- MW LATA9-=T*)%)ONA! I-MT+(5)LNA-*I-AT)X1(V\?="R'2]G%W0HD4F^Z$ M$*G>="^$2-O'O2TE/D$]O+1]W+ON0=H^[I_']G&>L4N;QZ7-X])V8<^(2=H\ M+N6&M'EK/2YG%I\[BT>5R:_?DM>Q9\X]9-Z!FDOQ^ZO;PKZ%'S.)1!OG;WN!2K4JSZ MI%CUGFWFAM*XW_7PBBFTQ_/=N#/F=HQXZ_Y.%(+INELV.7XY[-M:O3%EM_VX MS1S%D%D">2G\.P6JM!]="E1?H81WDF)5K^\!M+B<@/5<7-V)NK&?WAJO^F4* M:1-C=,A3@YTH^.;\^CULX5K=0%SG M,$4H3&FB1DJ50GURZSS60!UV^(W5'?)&P6UMZCB^0Q=ZW+@.S:(PE15[^VK> M'RI*:>NZM*?!-VX,=6NU[;U;UUF.P!;+^V&55PWY4#4PGYU[M];9"+\[PV;8 MJ,V/RI0TH#;C6E'91JWK *Q"K2UM7I=B5(I1]X%1[]J\#A"WUIF:LY$0((V1 MHB+,05_>NHF+.]N5-FJ5,LU"0)0V0;,RX>1V.T%F<85-X>J>DD:^QR&_4 MO.XNX.F=F]?-=OGA5EDA-I*;5'%WW>NUU>JM[Q0+FT%YYW@3TL0.ZZ#3QQ>K MW'X;-:\C:"3+)M2;35$J5:*^9?.Z6_J[$MMAT@:.5#W$Y_>NO1;D7'Y+EF^M M]PS&0>^ =UHF;QS:M:Z_M 8-[]B\#LVR&)I%Z)?Z]G[.Z+"T?5W:*^"##=<[ MW)A;]0KX;63^V/9UG7&76RY1E#:#2J'$CRN=!E&_F]X#N1P_S!M;AD*6]:J8 M8Y2Q7R.XJ'T=B68)YL76 RFZI>B6HML71K>777AD=5W@R#)AF$%>R TT9SH2 M%A]MW3[?X&E<4,9US1KS.1ZMT;I=G*N[8_NZ+$VER)9VL$L[V'UK9/N9]V^3 M;TUL3^E1?+V47\K-ONCPW;OI8+<>[S;L4AGED8+"ZNB!-EQ]MHTZV*'8M;F= MPENJN*4M[#XIO*FZN1/1;DTVU:,%/(G*LU-:2M M#>;; B[/\?:M WU)>U?KF2ZZYI?5\; \7*XYU(Z[V*%9C 9F)OM2G.]G@HY7 M=ZUYI2IU:]E)0>'N0>%E[Q,]J4[9R:#7$\I=C..]=G.Q(6Z-"-[4&>N-U:&! ME$O%PH*G!5F?ZU%#.Y9%LPCV52+ WA //F=;N]=Z?FZ]L"^&!S_SV:S54; 9 M4G/!;)>IK=UB!FWD]H&A15YB'+OL(/LM-YS-MA/2X>+.=C2*9RGD'VN$M;W'V/DN-I.X3/3HBT'<*]$")M(W4G ME$BQZ4X(D6+3O1 BQ:8[H42*37="B+3%W;T0(FUQ=R>42+'I3@B1ZDWW0HBT MQ=W;4N(3U,U+6]R]ZQZD+>[^>6QQY\]=57U-DSL\;7*7RD_:["QM?3=+N2%M M?9>VOGMVL]+6=VGKN[3U79HU^BV['GSC=E)$%*>(G\,-[ "V!^_9MI0Q554$M7LYAJCS1] MJJC$SLR(>#(B,A:YW>2\#N(OG46E3+'W5H/65)&93:JW%MN8S4H[C]W(QCZ&F2(Q2%B9[+"1JM1_4['[.E-;W%OS679 M;K6G([V507H5LCW&ULMYN"G!7]S9Z=ZZV+6[ MSU4K"FV0QKC,202RX;NLV:TP]T;5ZJC2[M<+ZPI'-5FDWQ(9T^UDP^YS!$,D M,YFX]UR,4#%"10*AKMI[KB#Q963&(:26YVIBIS#@2R7LWO4),FL&V;CE;19) M\2E$F:WF:L/*AKWG4!)/,M^F$EG<>R[N/?<=X.G*O>=L7W(TLI;+L-+.&)@] M>>N8_KV]6?WF,+O I%9!R\L>.I?7>1TSE;#W'(IGD@Q&QR@5*U%Q[[E[^[K. M(4IIB^!UP\LKFK'=Y&L(UK7K\WM77*QX6 ,?F*TVR]/^4"T@:Y.DE7WO.9IF MDC3Z7CO+QPS.BCO/Q27^;VRV1G!C[E7B_\NX?-O.8 MD//"MLW36FDQJ]=2EM)8J='IRY1K(%6>&?CLD.A4!HO:HJ*BRK[Q')I$D-/+ MUQC:XLYS<>>YOPC:/O+]M0HE>I,EAY;F%5";ZY3XNLQ$IK6FPJAV+F49%%N; M+7Q-*>OKUD ).\]A9 QOL>86=Y[[-O FR_7FP'%ME*U1C*8L\LNAKT1&V<(J M:'ZBM8F95JICSD+/J?)JI>P[SZ%$DJ1/HS+BSG/?X3KD6W:>>W]1<8>IC]#N MTCXT)+ OI29]"[O1;F53(P$,1+\*1*\[W#*%N>+DI0K5SBLQ5'+*CO(R\B]([Y: MJE"L5]O5'N(5IGAW8C08PMZ$O>9(DD@2])<2I+\K##QFE[GW%Q6WF+L&#'SD MG+'%,M92!JL1EUI8ON:TZL[H[I%5M$,HCB,6"&18I,8UJUU$$7<3MIC#:!*@ MP7MA$'\=&GQ3I2#N+/YN+/'1" MQ%T(HD*(N'M31"@18U-$"!%C4U0($6-31"@18U-$"!%WEHL*(>+.6NN@=Q9[E_GCO+.>HV[BL7]Y6+^\I]\[YR M,8_$W>:^&8M\BQYT+V_V'ZCSW*-Q2]R/+BHEC^)^='$7A+@9U#ZZ$?U&!<#/ M=%68.[EI89I304)JDYQ>1"2AC TRUJA9#[HJP'YT M#)VDF"\%6,=8%66LBE)%HAC9'JEP^!E8<]HUI%Z=];I$L?YDO*O12(G\.V+8[#K ES,1#&3R)(._!RP.$"<2M\^*>"G]Q8ZI[JVW7;IV7Q9IE JFH M*X1'L&VAL+")6O?>N"KF^\WE/+>=::U=P?=99Z(W=TK8.@]-(K!,&W5:[SO& MJ!BC8HQZ9!_8.8#:+8884GRO$31,:, M*3GWRIVP>1[&($D,S<3P=*6$E>^QR+^H>5XDX.G*S?/&/#);9; 4QV(SE]G. M\GHQ@]V[ [&T' A:B55&G%?8-KKSVF"%B)VP>1Z&HDDR;O$9*U%Q\[S[^[O. M(4IE/B_01L6M:&I74NIE/Y[CWQMRK3\&7D?FV[?-L/U/1\K-REJMANW*S MRBH%,AN9]GF=G%&3> 6C66-5P UE,$&HHA*VSZ.2"'EJK\9-6&)PB\'M[P"W M#ZJ9\]2RW>*9BE:JUWM3>ENLH[/(()LY]#LVTY'+6HH;-#1"J1?$XG/[/(9Z MMZ%+#&UQ^[RX?=YWA[:/O'_D7%EU-R5CAJ1*]GB2JPB9Y>36D;9O(AR*%TEZ MEUMIG"I.:KY>7&U*M4[8/@]-HO1I]Y88X&+=+6Z@]Z -^&X#,_T-9T;IBI3 MP>$%1)U'II]P6(!VV2 M\5FC]=X+B_ UR<6#VN;5WQL15AG4E7([QF,I:<<85%'W<[U.V%$/32((GL31+_74^]Z(\)B= M]3[K +KWPKX9(GSDNLD.&IF-T%K4-8]H2"PS&LFF=^\D:7M=S0^6^:K)YO., M/# X3A!,)6RN1]!(DJ:^2WQHK"A\TFUR[X5%&!;X]JKO5S=T7KCI98VI:LZE(ZT?>7D.]T/YG8 !HYC@=(95BV%([; *Q(R,^U5X\HD^!, M@$+@A9*9@"#C.B%555OP# >@H@!>+H#=XW5 ]*#RL>0 3@ LL)]KP 'AMY86 M["P(.2.8F0MG8@DJ&"N&<^ 32QZ*B*?S]MD)I1-E:P/F82?WVQ"N'KSI:7N8D-G.PB U\F+'4)3!!.+N-96L0:!,Z0,:06]TY6(\%C@S5 MA'OVM" 1[L:A^.@;S/T\#44R)3OXON/-%A*@%&![UTKH8 %VL._I1%80 8! MV864@;,YVA @(6#7 (D\QPL>$WXQF%SP-XFW33 .G%5ODDX,27+$+DXR87GV M8?\-WD^L>=M/J'("_!&\9T^MX$/H$5=EP#BF"UXO@\,EF*,I*98;SA&<<1*4 MWN5]!?4WRM;?=E)'$*JZ /2%+Q?LO'FWT3ON;CS+OVV6%YY4V)7BJ-F&H .P MA';+_!]1=99 (?P9Z!>O-$B,3N,DG [X:-_S T?2&/SH94>.HT>_>%Y*D'3] MM9KW(KS_LCT]WBQ[BQ%'5WOAMJ+4:=\.^.__O.A*\G35#75UR_YYL-6.=G"_ M,UB@FBI2*FQZPLO@]3]Y??X1[="0.O_6R)_'^LP\ZKQS9"!B:IE[1FSHA]E6N7/%GPOR73\QM:#/^ M;]\2SK+_ASIX/] ]@!8$K3^HI#U) __R>0>BDA0NH$>^C,_)SFMZG-MH/K F MITP&HU!*(*8"P-/!B6MD,4[4VR*O![IM'=K?38>8%HO2T^V&7DS[P@*&'GR=JS&I&J-;+/. M#;7%QM&;7+6YRH*1)V]GYHO,9% >#Y#4Q)]+N:UCK!E8$/7D[1W;'XA:;]W2 M?"1'+%'$[YA@1?CIV[/MY8XMXR;"29)B ^V\/LJT837"D[>[JT4+49LLRZ6( M36]34#N#E@*3(4_>3JU[@UYSUNHAI4X/VUFZ(6[G,,+A9*0Z;JK$TJ%$C=_8 M[4&7SC?RZPT8>3+/>9:=ZJ/*5F,]2AOQZF9,HT7XS)?SG#*SV8Q$>7$JR@C@ M%"(C3V.5#?2UO!ZYR2/% M7K:UT=C6>LV5>R:5:FO+0W:!= M'Q5YG=.,L5C)79YE^VZBHZ# 8BK\>JEG##F=S M;IVER&%5%S=9BS2#-5&OA]9:N]2$HCIYKI0J;UU=&6]W2N<?5DH_)MD\SRM,UR M*[M:]>;&AF^MH:2<;%2JRG"^WDVIK$J7Q E69D:I6?#VDXEN?&^^U3/;*B>) ME8F=[Y;F4PT^]'2C.L7"S&7GE,1).:E7Z'#-3LJ \G>Z46AQQ J=.FZSI64] M+Z26!+.<*N?$JJ--U2KG949<:=0F=Z-R8;@[+U:+96E;8G;LB/7D4G[8\KRY MK&=AB-'KD:5N=JZDBB*K&26+SVVF""$I,/;[9$NGADP(U*A&LMX0JR^FE?R2 M9>';3[:TL%WD/73,%+643#?]FL%Z&0T*]>F6UGEP ')+AM%J_<),,>4FDN\% ML5 G6^I6>4$ILQV/76'CD9WK&-7%*GCJR9;ZG6*[VT'L*5(K4YBJY3DUY67/ M(3_NIM;-:6/9YWINS1/'N.JK2/8<2BO>M#LA])W,^O94]/Q6NX@W-N<0E6PT M-5-3U@SG%93<8E%::&@W>XZ@F9K.SZMH9\3UUMO1?#XGK!X+1YX\$T#J>&9T MQF4M9=%=L(/3>L*'F&H#S)BL].Y+GK?I91-WFJ)FTS*\DSL!3 M>!83_;6!P+O7DV>.*H+6+V ;AY66NV$']UP2\;-3^G3DK,%N*&TI3;@6A\UZ M ZG<QB M)Z;D=KZ4\G+-1@RYYR[:JW(V8W=>>\Y+EB5N5%W/FF+%='E348$F!=WDKE-0 M'4&W',^6^N"5.=T2M+VK?#9EU%:K505$8/-:?E2=],VROE5^)"1'X)?@\:[M M25<*ZJYQ4FPB4^=;VXB1GW!;?'E:G?$^:2 MZ.E22S[LTRFI:^IL.JZT\RKBYPM%&L :GFID;T+JXQT\V)FJJ:LF,+K@'%]8 M]\B3X1+8,%!\@GWL0QVL/&C1":#*] MM"Z/[B3WMB5R8A>Z]N&M1_U!?WPVSY^BXOZC?^[CN4QO9#INR1L%0J!I.J9# M%.B I=&8$E&@1 Q-$2%$#$T1H0,6](>.*7&GKNT?:JV/U?[R.JA\Y;N]J^_* M!9J"XFGF7<"\>]//,]W8+]8@]A;<\0$O'!Z;!W.>V2IX3%G2UQ)(C ^\.U[^LV M/HK$_"D'A(L^_?=D_1=#S@=NIPS=KX_$&%%E XB*C\T&^$4@\ELUU:8CT"GL M@OE+]/U7.]1X^3[ M2#GT'?V54HYB4QQ]F9'\-3%7RT!:K9F[U%IMUR=]W91DX^N%,=\1'./PX5UB$A74[O<6O=J1G17&V6= MXUS'""Q+34R5X_((-IYX3KW>,> >-&&7M#-UYED0\=#*W\@NI49D> M^O.11!)EKE3UY+[.Q!MJ&-&5B@MC ')?PSXB&/ UC>0<"&Q\"2%[[+K#J<.R MFUFL*802KP("5-GPVL5R0^'RN5P[2WNDEA+W/? ^!H$']'^WG+Q?5L4AJ23%'FE/L.QI$>*^V_H7[G[6N\OZ4?JCJ5U#"(_ETQN MU5CBH^ULHHS4JXAZPVC-#%DJ;#FL/QGOIJB&5937";3O5;>R/ME'F * M2)@F,9-T:Y-P/ /\'7S9"0JZJ,]I03Q<44( >KABV:H4ENT)DT:<9 *(OC / M:M* CP V[,+R,SQ8@LU#N4K!W)3$#-8UO&+*2) >50-+823^TA\IY/5-4XJ+9T.\?8'\;O^"9-'72 M5O.A^.6-RA)_G#K]39'EPVSZ0QA:YJ1-\4.Q1U%-Y) M5<41[3KBJR([3OBH9DDAETI31&]=]+U:V_*C=(4 MOPL69.Z$T^\7D$C\.Y;^W$'\LU1%V66<%S.S.,Z(1] M+U$ZB5+$"1[\)P:$&! .D:O1@H18.SC"A]<3:4HNNQ5T#U+DG?3F"M%LLA;' M^6RM;Q"3;<<2J*"])_/C%Y9$2.I*"L)]B@C>'P_0^Z_[0L8"&3D5X7Y5ERX" M"+E.81AMI84Z7$F;KH2T%O7[1*]L+ M,1P\-!R$45#10H/K&0R/#P"?MQC\-MXV\F611/S6=CJ=*YQJXK #-$K >FU) M.I.YELD08T*,";&&<$6 ^*+)L*QM97F2WZ;84M-W&"Z;68VV@99 __B%)PD, MO5P!QSM$8>4]![Q?LA-AR*UE.G-UZ20NYPZX<]G2%XN]7$W6\/;@KR_)>AEG MP8$'N\!FBIPHR7:+B.J;IKU6MM=;R;96YH)C8[HU>4%/=14@QVG\%47 M*S8W4P+>*F 9,IFAZ>M=*WS_\__;8D1XJQ!=B(CZ%4,T4.'SMD-UUZ@/,F,5 M0U0_D^F.>NBD/HO:'3%,/#),[#V1T46)R%]51 ,8/F]YK!$?U_&9:B"EXFI: 8MI=9DLA KB MQR\:33+X*5)<[M8BAHH8*F*%XL:X\473(R?*;6KBDRR'\;E=JMLKB044FA[P M,@/#B"1*?-C?X>$2(& 'JFN&-]Z]5\GMDB/NOM3[8\75&C!]P4; *+NR6:M2 MELN+K=QL7D:GY2WLUH+]^(6C9!+-7/%JXMYR':$ Y[N+Q-$AA@( MOBL0/+PR\$6CP%Q5*UQK;G>07I$:C&9,4RT) 0X$#G\Z25(?YB\<&CJ_[J1\ MBS[$7Y'D6\SK&'X3TG8IF8Z4L.23QLA.8L,[B?]W869[ZE1-G.U473.J9-=N M9EUN6!$F^28C#,S^2]8C?X/UCM?:DE\SXA/342'3-7G;GM8TIM#01MTZYUM+ M1R*Q/-*T.C]^D>E3;DL ^NAP4V#CZ&OO%'Z\4_ATV,]QV:*DK)%2M^$5:2V# MXF3VECM5['!Z#3?\K3;L%QC"&9KR'%/@3IU:ZT\[!284M.%VY[8D)0RPWKF3 MD "OB@E84#R!(\D$Y(1DL*=PI=V]_KW^Z;?;:]YUFYC. M, Z7&B[(?%?7,RT2<"6*O+?9M]BJ5VS)MU=]O[JAZUH>;YH%J]S#*_.;LJ61 M*HO]CMNK(ST59?$^ MQN?I-J=*9K/35$**JZ8'E'7W_:%3[$=" E18@LFZMB?]^,4Z+J DT/,3F."C_5S#YW^T M-'B_>*%C5E=-*77H%7(113[05@[?V>ND M@,'AQ$/P\_'$\#'N[[&1C\-A6P MG7F82$J79/?YL??L#47$=(@ '=!T)N[V&PE"H&DF[I9V04K\9K#=AT?# M8[5PN0HJ/]86?+X&]YLRB:=IYNKEQ_^D[/:3GOM'E;9CWH]Y__%X_]GRC)D_ M9OZ_C/G?[K7Q-?:_<^N)SR^\:.V;][GS?>?'L<3;^\8XK EGEGBCR]_%>I)< M5U;NWI+D ZEXX"XE>U?D103FSG?T@2?XW[9D\*H)>?[99WR9. 3B_DN\1QA" MYKN48 _="7]E0<6[I!N<7GAT ]D$4-F2BRJ\(X('U;F@0W---C>;?).CI)W( MNP,;I[3LE)SB/WYEDGCFO:+J#Z#K D*0#W#J1@=^OOLB/W)TQC!T41AJ@EGU M-Y*^EAJ!>G &@3A*J_:L0K_-4NAB5E*'K#.6LW !0:,7ZN,8IT=4GZA83WIL M/>F2E:%B9>F^* 5UH_[&.@-.>7E5[W2=N<3Z1*7N%*9-Q5\I4SH )RJ)$I<' MIULC$1WK1U'5CRZ-,3&@W!)08'SG&4C9Y6F%T2K%&L*S!D[F,:]&[#93)H 4 M,DDAIS%ZWT#?86)])]9W8GTG.O!4M+QS_B"VFBJ0K(_;R$JOCJ4EHW4<1IEF M G0BDCCSX I/?R[9$B^[DAVK/;^#/M^RA-X!BO[Z&GH7QZ6EK1I?!*6L*6:A M?)X!I^E,GR@9ME7A>JZ Z/S6ZBNESA1%0G0BDBARP0IX$5&>;B_RL9X5L=S8 M&U[0W7VMWQ ,_S -&*=[V+C$5U!$]5"V3&)DIFQDIR@*4>_CXD OTH"C&3W] M*H7I6MG*GYDV_OEI\P&!I@1)4BA)4U.2F,VF!$7Q4P;-H%,&R!/"\!F,QA#P MNO_C#]\ ).UX*V,^&_,$AU6)[FJQ+F7X70=FQ[T>R4SKRX6[3"VX$DM*>5?, M(F@%CB1?CYQE*JWQRO2*7,^;9'7'("HCMS/%3I_9F^9DIK5C619S^(Q!6B6\ M3"M@Y,DS/411%@9M]%FI)4RH[HIL4RSLGW>RHGR^BLRL195F_>T(;VZJ&-N= M=<#(D[<+6MGS9]1VP*7&,XTJ\&MO.X$C3]Y>0:2\/RN+U0*#!/^G1D#],L4=CH-23?U!>HD)HT=SCTZ)RL M/;,A&KO*J"4B/NT>1_B 52U!,'V)+&N M\@''JY)34!U!MQS/?ITOV9]-)8=6BXW\RD"DDC+11F6K/R]D7^<_7D5[S??G#QB[W&ZN:\/ "NVI+,.DRR+A/V%H_HS M6=>!W9('[X'3'*KN_% 6_)7D%#RI;_6\F; ?:MGG4['9#NL:;#UC:UB?'N5U MJ;$>#I0?O_!W2P1<(VO]*S5.[K%CVXV'>JL-3FJ&4>M3E>Q$[Y(;H.@0Z=/J M9X<=>YV,WI]+CO3,C!O HZZ5<%Z\/3'GUU)B)DDFY%\>B*^8 (9H$,-[& 9^ M,):ZY!Z((AP:K@)9D): !$)0.&1AS9QTXH)"^\?8<:-D_)9\>GZ<2[4'1\<6 M19VA/]F4-%X<&LV6N)#SEH"^?,DD6;>[988)ZG>*%V82*-Q GT4"(&E MR;BB1!0(@5)I/$Z@CP(E8FR*""%B;(H((5 R3<38=$%*_.8]XH=ZZV,E.%\' MEA]K#RZ0SLIPV($12&Z M^?PA #YP/C_TESX*(D:7#4+L>VPVP"\!A/<.N&KSOFWI>G#/$6CRDIB0C*5N M^1*\)C$E676=Q,68_=[+O4=8'1F!<,*+A(^%WJXXA/^2T6'L7M:ZH>P=W:CE M/=L&J'2N)31%8.Y8JFP159=J*R\W*3]A<^Z4G MK*4$(P],):%+O",]W:_[CZ _1P=]OODB/[Q(^RXH=#4]HG60LSH4LP,&^6\C M4'MKEFOY1K?,>N5V>[N;6GY]#<-LH1*!T$F"?J\(5"RSLIK# M;PNMB@^P*F*F&&[H]A<:VW#)R@0*+5 ;,E220"^8IQL1!T6>=SQ>=_V$:CJ> M'<1>VA+XWAK&U4OZNHXBWFA7'!:HLMN0 M8"U8Z(I@D@A*/K@GPK*7%E"S@LPERY 2+K\%3X,7'I8[E^S][[%M$UG;YM)J MPO?'E:OI!'TH*_OF@G)>@"._G9N@%1SE ML55Q>:OBWG6R;NTQN/=Z[P]?U[ND@$)ZFCO\-I"EC$X_)^?R"*NND7(IGYEG M^O5L6(@9(Y,X]IZ_,X: & *^YGBX]WKO#P%7O//X70QHX$QJ1CIMEZ.D-;I9 MK1F"M#< X R@U%)C'AP_\3MY?PO,I3N7MCN:E&8]U[8_3'JVA2/G=#-M%!YP2UG7',2))XU>\^XA%^#%%>*]XW'MA]Q?AJ]]_?$J& MMU))\8V2/="H_ JO:'E!ED99(,.!AH$GBK\[F;TPZGM3O M9:H?I=X+NL3;$(7F_XBJL]1Y_V? GH=R3GO$P6B@2<#I@(_V%0!P)(W!CU[F MYQ\]^L7S4H*DZ_^\IT]?-L/_S7PMC'C&JCU>H?1I%C_\]W]>U"AX,OU@N2S+ M_GE WJ,=W.\,%H"P(J7"$@A!+X&?O+[A?>=0.!Q-HT^MBG\^H3<.YY1)$^B_ M$L\_PCTY(1NLQ'6T;2\J;87?>EEK:__9!W48]C1WK>5/#$U3K^A-G1#[TBP> MT 1_)LQ_^<3!?/N] 5)+"!?3(=? YV7E-CW,;?:@&3,]("&'5DIJGSZK)F=87UHGBV&K"F;(=%I;JSD=H6]]ME M7^^L:>5<-6!LR+)YL5W+U2J4JW6V MG7/5@ LVT55;'7FNE=942\GD%4JJ=\Y5 Z8&HC.@,EN#R]?&NTRKLY47 ^5< M->!1JL3/*'0U1TI&BJWKB"6-&IMSU8 7?!?=R:WRE%MQ=-GO*ZT\Y2CGJ@$3 M<]K<+,?U.H?U4_DNV5D6&&4?T/QRY*H\JTBDR\S9E)]=^4TJ3[:K^RC*ER-+ MJQ1.X]65Q1DM?U(;Y/J90:MSKL(P*A4K;4NI9]B2L',*G$L+@G*VPG"I("-B M?NQ4N)[)9]&R7?>WO'*NPC!.2HS5(>0-L''(W;J=&:FC%K0M3D:V#8Q:$^-Y MBT$@< #Y:H8TM M)TT*H^:0(&H, D>>T"A5=39>CJG;7*U7EAN=2EMM &JBR.GKG<5LU=WD*A5V MY>)<"2%VZ%#HP*KF)T.]H6/-Q51QQAIZ@^S.U6&[DPT*H)],M2IQ1<$QM@*2 MSP_*@LVZDCC9P*$WJK!Q64>6/63;7*JRY+]1@EARO&?"@JT:B@3.\K M*.=M253=1-:V>5.1C!!79Y?4>]ZOSQGI@J>0P!73 70*-N:4PF5A2/1]%K$Y M(^M[HZHL8D+C/H5.ZQ90$8!Z8@#;:>:&%6Q#VLJ\<*AM"O;*41T7GJ+NB\*H MURMZ^AOD?_[F;U3FOU05U$^7.#VH3']6X)2."]?]J>USF<)U>$R'2- !R\2$ MB AF'0FKN08!4+$$A$3(B;$,2'H-,/$A+@<(7XS2N)]C?4F2SX\-@^F-[-5 M\)BRI*\E.&7X2-YT4J?/_9TMNJ8N^:UVZ +%X- T=MV8]N@61?WH2'FL:I@7 MX 4DC?Y]15$C *AWKHAZ;<3\4ZK?LC9F"(>/71OS4B52KXZ/T2V1&B+A8[/! MGY5(I2,0A=^'?G3=XLU+@=R]%W2/,#XHP_=>]R4"]T*7V%]9J>#YZFQ_.3:% MUTSPE@E>C?7]I93=JL[1'X&!L<]3; 3ZTC15Z+5L<\ML. HK<2MR37"2EOUR M@-_+&[D\;]L^V/9LT/SQ7,W4;=,7EIK(LL.LS93Z!,6OEIVP9BI#84DN=VXE]+,BIZ X MW\VR0W4@KU0>9YA:)ZRRRM!$$L4N6&7UYD9<5UI;^CIH7/OB>O\2I57O[,&Z M(49]\T5^=(MW!ZS:QQO%%(P7^>D;G2BPZ0-:KWG+,"1;4'D](:T\=0E/S81I MN1>IG1F;LW_5NF/C]R/C=VFKQO19Y-B#Q!55DS<%L"\%3X)721B",GTKZRF> MXX*G8GM=&3<4>F**NRY+U9PJ5RUWQWCI9@9ROK'==1N^5=,,F_5%>R'JUGP3 MUO DZ22*7J5FU]\J3'_KNF-K^D-K^@]19$C2]H@EQQ0BL;7LEIX,N/KTZWFT MOXDBO9TQ8(H\/>&D-K&EB]T665MNPF*B-)I$D/=0).H&=\.R7857I,MJ4-]< MXO=(%]V*.O\\YP5>2D>*[F*CI3 =_G@0+&>/85/'+DJ]14_@^&P6579.4:[1 M-\,P:YWCJM5J6=5:5*$_MSLMCV$V8?52-)-$:>1ZFE ,!M\'#/:Z3G07&S'% MYRTTF!2S;,-M$H:V\@L%5Z$R2,>_V1U";I+/$4.V-T<,>T<7UVY9QHN'6JJ9 M)'7)\NA1J9K\I^Z6)W$.-^JB(^!L. M&X@U8-_3/?QR2[ MF^(2Z5U)_/NQ%)0UP;"^M['8IF8YT!KZP$0!U _H<^[O?S/-A'X2/(F\&RO^X#P;RVKLZ(B4TO"!L/:(S$I9YDU"PSI3 MRUF/.W.O!6N30L<&R22Q,[;!XS@VZI+C_$P(8;WZQ!(J3X!BL3_CVU@V?T^\ MR0.Z*8ZAY^V>$4V1TXK#JEE@L>%D5UKEZTQKT8$UCV%":08@T.FU2NR=B&4X M=CK<7']X6X@K:*K#9JH-GO6'C:Z0$7!B5@H*E\-P52R9.=,H][%]#2]K0P?^ M!E@"^EJZQKV7&R&[YN[=GF[GI+C[4N]O&=U$.VE:IO FMG6J\\F"LR05\=7* M;K;8N$UJ%71:@ H*@2=I,G9HQ()_48_'W9=Z?\&_C4KSKN0+*-M@A;:#(\.F M7FUU5EI5,10H^;#L!4,F<2KSV7YV]VL5EUG>N"O;^^TI^G,I$98WD\0$#P0& MY@&IL"*:Y+@)FW>E!& A]^DJ)V%YK@-9"-;GX!VH9,&DK02.)!/P7 C:DLP^*XW,I.M%*7FH[HK#YIY3=_>B+];DC2<+\Q MV7!?*OMMZ8)=>>+/%!8R:).W[2FCSCF<7VQW'(94I!15;Y1Y>O/C%Y4^K<+T MKV"KKK,IOR6M5]^5S7+>:&Q%<MI0$6)]: M]].)F_0GC)! MLQ$F/N8"&4'2P+Y3 0U"H&$ LFT@L8V_;EJBXFL(8'GB $G M=0$->"C%AX9'BBT%[8X2_X9?@,O!D'\.WW@]*/@S^L]_P-OFJC '+Q)LB7? M2,NS$^ZA6B! O"R!*^ [RD0')8V&*DN 3KP0;0>!(3_=Y43B D;'F%?KME4 MT2R%L0<[CN.K&X;MK9;+C?WRW"*_'+-8!-K$JWA%ZD@$7))Q\PC-8ZPQ*$UH M&RFNN"X0@0Q!ID\=:@G 6#KD;-L.^@+ ME>>!'@@^/TNUXISHNX-ICT5:E6)ET^H3D*V+2/A M"!@X/_ M0M8 /\/(4?A UX4/A Z1/5M8=L);)O98$@7&J =S/%!KSP\^YV4WDTZYQQH- MH[J"W0ZD3W5OI+!N_:5<4[)?JR[;F /S(Q*\?F$"_3[>=8&1I)I@ I]#O S2Z-H; MOIQ'U!E6[U9[DV'/!F*!T7CZM.3%$^*=,0S3D6ZX>2M3^TU\AYP%".,DUKRM M6IX#K2#75@,S*.!O.2R3 G!=L-82^-EUH/*G>U!BDO!D 0QO 4&Q'?!;< $" M1%8%!STTV_^/S57ZA6PB:!X:/,\ 7 .OL3^#T 5$'AG_L+T5ZUTH@*(*8I! M+Z#D!R=4,!GI:.96J*^HYAI\$O07!>?3''9A#_ M!AT[@>VSAH\'1A!LTFXYP9<-"R"N"YYU<0/ZJ<'JD_[2MSZIRX05;EZ(VU!U MYVU;78,C/L>;&OQ_2QZ"["K5P@YI,IV>3R M;E-)+2EQ72^_J)F%?0((X(1^AA-ZHE-_#N@SMW2Q^TRF-M 8P)^ ,=^2"\$F M\WI+#N)WLXXCN) M#YZ:3@SW9Z<:*$E+70W2G#9@TP+*/W,Z5%C?Y;XK(\Y# $S+3%1YT^-M_\GQ M=NH\X,U7[CUGPR]#6R/8R,#<,*$7$))+VBZ#UL\'4T'6/<'U>/<@GQ"M@D/W MQ3.=4,,-GBS)\L&9 YX6BK\8/.O$RWB=$QH]J=)0D *)!'-ZMM^[JJ.].*F/ MW5H]L)"]8'[5^4!7V1*F=TB?]1"[V*@O,MV2F/T#Y\-A"76P_P'[-2VX9T!B MW_9"=%.4+$V%':9YI-ZJZ&I9)!= 8'$$><]^V=LF)^[?4#>#;/+DFPA-T2>N M@/P&3JXMH+B]MW*NY/!\$")_C<9%N(,?^UG5AE47^(5:1_P1W:6:>C8U1@!Y MB322.4TN^5=B":C'FV .R<12]YS L;<$("P$M NAY> /O(8#_X->YO>DI#,? M] G-0$QM*,_-6GWB207IA29.?-E5F(,^F][2EGBQ90[VH@+GC9XGJ^P2J5') M$FJQ [T21ZWEP4Q_[7U>MSF8(WOE M=F:6QQL8?/*RXU >',@BT(U>6;XJ+-87[;E':-N!KCGG 4^^](R#/0QU4GB@ M?58!R6<+4]'.2T2A/]?8U=H7%O/*7.I\=$/Y%>OA0'MH.AS*R/D#3ZU,-VU$ M4D:J7BFQ+B+>T2VJ2SN[4JTL+"Z_2*WY;@W5,TL 4"CQGE8!M,?M M9S4?'"'0T@N0#/JP V?.>Y[-)\LQ4$QD+U10X.,VEJWM?4&026_J-KT>GQ2! M_:LJ9N@Z=5[Y3GF4V&6QU<)#5NNEL*NV47=J_8$;Z>5+6L^[\8ZJ26ZUIIVE MABEV6"I7QEN4S!N5SH]?2/HT1N-=E@AN,G[;R_IH$OJGGM9ENT(W>Q,EJY5F M$L./"GT7'RF_XVD%@O'D07WRFYX+\/@=7^JCD>'J_E1,V79VWD9$.6R0WXC: MJ#C3P8Q^H7@:_2VY"'6HZX0Q7=Z]^F*:OV,#D-OY4LK+-1LQY)Z[:*_*V8S= M>=M2.E(XLZ98ED0%PA3T/P1'?4%U!#UP:/3!!'*Z)6C[\++9=+:J\7K3D#5. MDOKVAB0-I\DH(9^JIB>)6?>=<5,X#"CP$B#Z$DP-S$*Z4@CH>[TI0WU]W^+C M+45\=DFE*R*>L;>G ;W&.N__5$V@XTFI&23Z"Q:'WPD#0 -F!U\/9P<41AZ< M.($+++R'%R0;.NFA::Q)P(X"1BAT=^M!V W\>^#="AQC)_XP*V%8 !LM._2^ MARXV<+ YTHO'!0Z[0$^%X3PS777FT'D"_K3_CA'F,P!M&ZJN>[U'D$1HQP4. M5=&"=;Q#IU_H\A.?^4!]YH- .^)-_Z!LA9<'H5-]'@K.*Y,1SB+]V1/X^4U3 M>5!<3AFKT=12PU9*KXU$'2<[O^4+> L'GI&\TBQ^YD0-7.( B&;PQOE(*CA M8J!4]6T>GHM/V(T9"K HTW?.F3UALIQ_7K(^;_1'7]Z[_@G\-S!%WB;1A;/?_G(&I!D.W^U8>H M:8Q.XR2<$/AH'F(6CJ0Q\DGX4 3Y%YSCT:-?/"\E2+K^SWN)2(QURC3+A7P=X<_?L_QZMY#BQ/"99NV3\/T>-'.[C?&2P()%< 6MD2 MKZ5X&;S^)Z]O>-\Y)*F@:?0IO>[G4P0Z#N>421/HOQ+//P:0]IIL!K]-'6W; M/FP]I4NR^S/\UN&C(.+\\)GE!'>!/P/4 US]BF)[FKO6\B>&IJE7]*9.B'UI M)@]H@C\3YK]\8FY#?/G?OB6\[;XP(6[H+]P7^X]^_.H'*C$0YSR$J^ W4L' M__)Y!Z*2%"Z@1YF41[+TCNR\IL>YC>8#,)IB!(4@)(%.&5D0I^ 7>+W=7"U5A>@ZK&ELA-UYH#=7= *PE7H\<9GO+Z6Q$ M%\ T:>O+TU*J^SF-FS MD-5J.&AWB[HH#A4P\N3M57FBH!Q1'2)J8[S(>WANP#/PFWRQ"SRI%+C M2B3.=4;:$!$+V2EQ.D]R)HTM>;WS.+Y0$@UCDK$5NP-&DB]&3FF,$2B9I*84 M-:.F!(_Q@!,RR)26))%G"$*44< V#%3:JI+\0LUQJV.R*7JLG]#1QY^GI[4M[X,T\E MD5Y[[0Y;E7G'XB"U3E_?37'3X2*/(?D&UM97*KL2Q;,7AAG.XQ4P\F1-RY6XR%*%3I^EZM4L0=*4(C7@ M,T_7E*VV5NWQ-I/7L$6NNARM6R5Q$0P]K DH#GO;*=#LWK>S]O93A,V!WW?; M'^ZD$O!R)]$-M>>W;(OS-^FAYL\[0="OX^E!?/UA:"H8<1(L!]7.M^(D0D,D M-#Y>W^4'\3^R;FV<_;L"%RJ\SWW3K@G#D0_9U7N5]^7TPGSLWXU".+V0@J$, M,"Z$A]9-<-%]]8R#YTMEQPX>X@:3ZP%U$ 9I/3NC>A+XLOBTR:_N'O_D_M+* M\XTZO98(!/,:'579>,4B^RUD-!Y/6+76:"J*CO>LG/)1V,!1 M# AT&4*;5)0=C2 Z\"*\)7G+:$_\^1ZU8 MYE'D C"FE3VW PY\CDK8OTGF5%C/SL)#W#J<]FG0/>&\3!^ FX.%4& MUHGI@HD&DK,$XZQ OO<_B=)2"I^ZGUL8$'6&IT_>\R+S#D8$OI+?O1OAE83" MN"K>#C'F).K&V6_#S _^!E_YQ@7)V;2^9"#O'VP5_SK&$5+_=D)\V7@"O^!) MV*8]$NMVX=1P4-Q52_%(1=TA+$3;&@EX+#>C).0]H;_OEPQ2. M4)9/XB>BY,3Y1DK57J-YH4WE_(3G0#J\X6T#T =/:,N GB, S>&Y?WWVK"[-#@K6#WP'M.7P[ *!E>[()WA./VGFLP8W#\.R\W M%BC,0<0Z8,;P6<<;;;Y%>'"N!6KG_FBRH*O5=/A];'J@3\X!@SD J'MQXBY^%&V^! !LL&&M#^)B",87L5 M.0^^(4HR#XT'N!]JX.8/B! IC+KR'6%/ %+OZ3#"_8E7PN#VK%L$3#V /!WX M^DZO!OE&>XSIDUJ9\R:86)L#K.C..E>Z[/LXB42V(%= 9@@21@ZN!K>0N^$R(<^"DHTA8HZCE>#X+R>W,)[%7BW\%HRW, MOSG_^7G/P#/X3>KSH7W[O=K[XL.*+@*\3%\ZTL_##\>3@L_>>ZZA5'%5_V?G+DQ,?MVH>W[I^&ABOZ7'4U'$N3V'N5$8_*T K\8^].COKV^"%Q^&\C/ 'YXK7=F9_S;9T<^3_<6=S!]60B+> M+3,;$^)6A(!7B3$EHD")6"2B00@T3<>'1"0(0:3IF! 1($0,31$A1 Q-42$$ MD::HF!*7H\3GZV2_19(/C;N(^&:N"\57CM?[1-AT&*IU^N]3K/25#98_W@$F MXAMP;0ZXV?H%2X=B$=3?^"(,4VGBNC+_IYL!KW[#Y>-(,N:#Z_$!SD1Z,P[W M_7M>0,_RPF\VB[C[B??5%.6(,_ZGCL ([$-X$MZQ*\R?"L7^/B04A>!2)/RQ M;@G!)=6C(.77&.9I"_^4?2YVCCXP*\';RYA=;L=C@GH]1N!F94IM1M*I37G^7@/]/J0APHE6)>0E;V--RT.%?.HL%7I_3)1*U6$-AR:/D5EAA\PI++*G*1HLM-%+?0BQNM;L#_7*;M M3WAE$ZVEW;R=UXV"HW^OU\C+.*VW^QTZ*FLM6V.BS'GEFL$6E[EEU++.V6M M$"C2V^1W'#8A"]U>]GYZG_[4 ?:JFM\W9[:/+NN_QR(_B-&) J3';!JSZ4?Q M&M_%"KE]BN&?F"'O]BB=;];#,H97=UQKUYHNR,',VU9@500&6B(4?MIW_8T& MI9&LCORZ%M0=4G:.2G:5>-6L6XY3,9]2\UMR\= FI1UFUL&[FM.$GM58'PQ6 M@_H.X5=EV<':'53?;6Y2O>\B:9.?R (*\ZIA*0?!4DSPL1CFN^V[:\+DPW?J MD\&A[^<%/>UYD*Q8,07+D*Z8'?3XR4!H@.9_D@_TYI&/?A!)$ ?VW2S6-1,3 M(@J$P(@T$X=_1X$2:)J,12(:A'@_[# FQ(T(D4EC:$R("! BAJ;($"*&ID@0 M@DG3L41$@1!H&HO5UV@0(H:F:! "22-$3(DH4")6FZ)"B#C%/1J$P&)LNB@E M?C.@Z4,'^/=,*OO(V_S7))5]Y.S]6S;BHY/Y\?;A*>^'_&K>#Q;YG./^W):D M1 /\8>XDV*!L_X6RPCZR(O]*?J#2Y+MG]=WYH:=NW^.&^&R,S\8HG8U_RNZ' MQ.DP=\Z2$S"NYV( &,D#\?)IL7]Z/#YP6NSUJI5$]/B,$O>$A^EWYI[XN'V< MX_:>%:["<_:!):'['"AZ.(R?PVZ=1SF0'ZD %)*F'AL\+UC )&:,%XSQ\(5M M\%@'NU5A&S1-T(_.+C&,7 %&\#3Q]U8\^B!9XMYU&ZZ2#Q]JX?=>VN6*(.UU MZKN68_CP/#B?'D]N'*8[;J\''&]V5_/,<.$ZG;NDQS]QFK1=PCRN)&PE=O'L M^!!X[\UZ]\A$)B)04NT2Q4_"L/2HUSZY< +R4YXJ<39/]1+IR!.!*DUZ?'NL MM1:2LBJ61J:4ZUP@'?F0_]HRGS]K2N>RDC<5@>SRJ0^AUG) MY(]?),U/C@=A+/A?C@?X,1YV*0PW-+$0) M@623)#?[;BT>OB0A$Q!R); RC/._,$ M3!=P$K)M&4>5?)R$([FN+HD)WI82MK2T;%BQAW<2PJOO6$L),BEL9@]HLU:# MKO=/I9X@-ZNFQX=4BP@]KEQS*BQDU.>W!=41=,OQ[#/EHY;3KN<)>=]"4OGI MW*KGFRF=VH3B#S9,$K/N.^.F MK3JB&N"@*G M*H/CWG03E@U.1<^!KP-GO>&$>R0M>?APW3\N-K:O'K;R> ^-OP5Z =@+>!# M/V$)@FXZ46//V?H/]P_?/[$J 7(?G L+L?PRV^VD"X9[![88K M7DHFKP=4"S*HP/3 ]SQ3V"\QV(9]XA38-U4&7_*3$##!U-10-(*M#3WHZ9L< M#!$2AOYY0EA/FP-4C(!:CKI-&&'HNA2$KL/PN@2.)!,0@I,!+:#VDU"=SZI; M2X# TUF&Q7&YE9UHI2XU'=%9?=+*;WY+W^+;J[Y?W=!U+8\WS8)5[N&5^8NJ MD+^C*K&'W7@Z+Z!JE@_Q'PA3*SQ8 3L]Z4PI+#P_FKQM3P6Q0/BM3H9#>H0U MRT]JNUUFLOGQZ]J;\LDS\3Z;0HC,A!PX(J-)Q,3*<97EME\%FX)ETN<\4J\^ M^%%"@I@'>!8@(&0#:%C"L='6#[\]^$%3U%#SP$Z@#@CTO+/!3R!"(*Q$$R M#F>=<\G#[C=4P6-G M1L G?"L0=!#OX'[?;$X3B,Z.G9 E#S D^.- I;;!S '#.(9'LU M%%@.X/6.!ZR'0YWCV#4;%1=A[-\FD6X, ^@*SR\'%7< MJS_!7CS98-(:_ %L:Q(*C>Y!N4K('I 9^"0P<0<<6/ ;TE9UW+#<\S8TWL[1 M)GGX[M*V%M)A.X/QH4PF@\7IDJFX\\39JMYA'8:C\A*"#F00>GGG_QR\58'/ M;L^FA]#"H%$)9%[PT;[*!8ZD,7+Y7 ,YK$%Q].@7STL)DJ[_\UYVS66K6+SI M\L>(9\_PWCN,9DXK5%L MJ/:'$7+]0#R B$%3!2I"3PC/OWS>@:@DA0OH4:3CZTHFYV7G-3W.;?0KK^O[ M#L>](_$JA^'>-_4$E0D!Z*L^.!(V0%'?.Z*>(?[)A^2X$+B5P('T[#4(\,N6 M#(F'_E1XPP$_.(O'K\X&6W*@;PU"(C3-!("Z"O2]F<EI%>@[?;+ISM2(A"K"2D-@,.R_IE9SY?9:U! M%MI3KT<2!H;+E(P-$ HEQW)'2*7T*AQ)O!Z)MG-:CF#F68['ZUF&V&J;SAJ. MI%Z,G(IXALX("#F5,P@R)0@4V+BB3$PS)"DB\@S/ %WV];.%W&"<[6X;6\T? M > VVMEVH:.5,I]N^^H&C;UM%:S8&)K*0M&DB?[JHQ9INJ*/B)Q5J:@ MUA%OW((C3]Z>L6OB.#NHK5ALO4VMNJTZ-9AUP$CTA*Q#W)DM%K[41W@*\=1N MK>_DNK##X0E9JSZ2H@2&Q[12RI"KQ8'0&P_AA=S)2(8O6&S9:2M(2^ISKMW) M4,A8 2-/%C^URKORBD0%KB2OD&QJT^O,I6P8/_AR)-\9,&Y]47*0&FV/4%3N MVQ5SW__DY4AVF,5T<3K,(36AED(();7"^LH^O.#ET/E(X(I;8^BQ^3R-5=7F M%&OB'6#OGRQIFJ-D<34>]KFAG:IO1_-*1VYOIO29D7IE/K>=O,H-AZQ!FF,W MRPR4*7,Z,K]*E3/CY=AD,4EL3/UY>3.F.]/,Z<@!6>BBD]VDRWFT(_*M#3G/ MC0#?G1&^GB@5FSA1]#2LLYS4V"V/%8L;V GG9&B9RWJV.&E:6LW@:_1HT5B4Y2$S$[ Y ( S MC.K6Y_7MSBJTM=)*T'K%O7?Y6!^:#Z\3461_G_BTN.!$/RPO =:7"!9XX3O&X.K\4%GO$:Z9G_:G( DZV \Q MT$%/B;WNJ7:^6>SIK&37!\.I2RV66/9*Q/[P1G3)JV(80R ^T5?T;*B>O7"O MPYNSL#V1<\D>0)>_2;Y4&Z"]41285KSG6HQN(:TK%__-T^EC$A8O[_#ML>\W_$"8$% M!1%B0MR=$"@14^*BE/C=*G6A;7#GTB"?=RZ$5O)1F= "[TH7*AGSD79^XZ5> MOTX=\=C%I6#8E2U>@0W>/Z1C-H@6&T#2)]J\*O[E]+] G2@JG:$>FA>R00Q0 MN$%MR0Y_>.EG_I-3\MY%+#[OBP[BAO$ICK[*,7RZ:H!)A?#V8=J" SKHTU_V M&86C9<4IR].5B4@3JUVCMG5^Y65?ALK"_N]!7+7(^S Z3S+?]&ZW>1]Z6*&L M'AS=!=X/BMMG37$,OOR42-CNH+JW,NJ61NFZ12Q+!KI2E&EP(5:49K8' YTP M+,@DP$]CEBZD!MR=UF]6A\J#9@(E_B9NCA"TO^\LBW?M2YZMB->Z>#\?*Y3OH-"% Y5H9[KF=;*J+29-S<@Z M=;XISFV653Z1PW8-L/IJ%E?>,@"N]5Q+T)X/Y$/ S5X[?4K30IZ@RR/R*W;1 M*"*::K*;@6!H9OB=$'-57J]">,G&[R?P*]L5\28 M^>EKR9C'OV@Q9'KJMM$?F"Z7[Y4\P(QN#Q]WID$\Y7$>_O54K&]H'<1\>FE3 MP,9F]7:-,[*QCLZ&:92LZU 6OIM#?W8C^Q+E"'Q$Y\WDBXZ^)W$7T M@JG(VRWK-5G>Z'.6[-1O93UE,\QTW$ MUP?WU_SOOD??0A@^,@9R$C.;F=@,U[!BMK S=UMA5MB$R7T]:>D&\TM@F;_) MZ1JS=.18^C?LALW:JU7;%;O,>O)T5%@TA'ZC!I-0@=W0$EP+\C-Z33].Y/@Y M0@ ?7R+$EP@7M3FN#5433$OIOKJQ"\_IY+!!0Y(BF* M??YBB'A-4T7J;G:+WLQB6]IRTG =WZE-;G*-H(NK"9&R%QG$*XA9L4)SSF*I M3$EH8C2M]5ZIBN\2_O*[A$=@]8\,"$DO]$MJ=: @JZK2%19*KYY?;P"K8T$X M_HWLAV]H+,3<>GG;@,)5N3\W-B2W\NO924E8L?0",BN\4^#-('84#7&9^(:\ M&B%:U&FX:5J$@#$ST)F%+Q'1#995=GM9:629%K9JSRHC8 MURR&J0G7MBMBS(RZ@S;Z//Z1Q;#E=DN\Z61:'+753'/M*V5GE04\?DA-N+K! M\ VM@YA/+VT*%/J;2;6!4QR;+S&X,[ F>HKL #9]2DVXMB40@W%\AQ#?(?QV M:L+5(.?684+#[+::LT22X['VE)#LH:]79-W%7X(B@=1ML< @;L9E>V.+P MN;^VP"]5-VA\M_+4L*]1V.\ ?F7?ZO"H/QYXL!B4F@PZ2V\D78?_A:^#U/2" M!SFN?6C%&#S(G4OVR^9Q#N!)\"H1=K*6UK I]\P/VASE+-B9"2RJ .8BN)9] MK]:=T>BPT!/FDNCI0#5]W5PCQSNJ ([^@@K+?;[5>6&F$+LMV3%FB$$@)9OV MAZO1ZCZ=%_I!(R[8J6 FZ=8&=GIW EZ#9(?M6[WG!I\SN+B =\1P>4_\&K1V M#3#VJ5VW.[>ED*G?;]S]W-CAWT%/+F MS8DSV8+P]_D5BIKN>+LC@"LAUGKN6Q& 6-L;#9C^PLAI 1DA 1:6/SKYYQ, M28C%K@V,;&OB3C\NH27S['N&ZI#.4)[RD$N(V2.<\I#FZ?"^:)+N^6<:)\0( M#Z' 0RHZ]B0,B,@GTM&,[S @0DCDHX,@PH&(5*0CPH"(?"*RF<* !R&1BR13 M.! AI"-$A 1N40N'R$B!(B(1%-H$"%$1E,8$)%+1)+IB'CX]0*LUQ#RT]A? ME!#]653N4T'(/PHF_:='P23%1#[_H8^"Z="4Q@U+993]5 8[$D;D8T<]1>EG M-D)$7=O4)23RPH>FKK:Z^DW:^LTRVW"(=!]67T9$^SO>0_J?,N 3_/E/:@V--(C(X .3@7@,T^CL M77]O;9)6LTFV87X_&L6+(=CRR=H9WJ[A^'K[9B43X>K0/!,!Y,/0_WX.PO^2 M#$\3\A'=NQ;.U\,_RS]_O7VS=&]$^%^9\+^DP*?)Q,]#]V$/\_K]6@+KUVH0 MFU-UV9B2CQ_ ?4^/Y'S^]SX0_G4\A^/,V_J==E+N[7[2MBWIBF0JM*.TDE[F M]I5NF8V"W>W5Y*=2(R??ZYVM22]Q\3?Z M0H'O:I3MK@W+\AM Q.>8NEZGV"U4R&C!5ULW3B4[R0MBNG R M!K:R\ZN762;>+4_']TGC2KFV1R8R<.;;#S$?X\7D:1CXO(4([^DC?C8&=EW MB(-_M]_[1!RL%4OFI-"TUA.U^#30U)JMYAT\JB7_[4C9'): M4.2B8.#1AT(2C&@^)J;>TL$?-"MY!E[^DG&K*#/Y.0)V468RRDQ&FL0'EK9+*"Z(;4U4_>E'E)Z?BGTW!^A2;_-F$J5 S9I2M M^YM129]BDS\90_19R?=K1+K?G*?S*3;YLUDU$?U^6-3^;.C*I]CD3P::A)I\ M/V::HD=->Z)P$BQ6&A$V-=JB ZD/#K+>'U[]/O6L2W< 8"8 M3M4_D(WMW^3JLC'+/I1O:]8,=E$5:F34SV)%8UJ,95+\Z2H:STWJ7S5+3)8511AA8>[92B'B[QPNH*IE<6?Y>:Q[]E\>?\]'IZ6=1&_.W%O92<&C?&.@JD[9>T5K+?@Z#$$*,%Z*NRD_457GDZ$/$_.\7BC@) M\P_$RI/4;KR,R].T;66>'J\R\V(3F#]#F3]Y(N;_&EG"L'5D'CLP$7'_^T4I M3L/],^LF62D(=;YGVX5%/54IO]R,@/OSWW[DT]F(]_\N2/%)>3]B_?<-7YR$ M]8ND77\A5:'3G?=SXK*82=;$,K(^QC1R;R8>/WUYQ>NG@T?U%4>OKSBW*'GG M^HMS;S7?6OV\6[UA6(R3RMT$C% M,ND31D>^I) X+!S/S37O6\%Q[MV&3$:\5,NN*OEG MH[V>+4%&9*B,$/&(AR@!?/(:CW-SS3O7@)Q[NV$1$N>L$?D-(9'4QMW+(4DO M^>I%;QXOW<>5Y+( 0B)/A40Z><+9=U]22'PE0^*U*I)S[S9D,N(L52:_(2.* MJVNMF^2O4I.JTUJW\XYC&MC9 MCB;KGM<"^WKX#T7Z@E.>%NE 50@\:"TE+7TV>GQJ3:<&ZEAK*V"R71T>NL$S^1L[3<_+O MB.D5H %PJ4\J+&>3%;-3R^8$R0<<[ M9//K,..?5@R>@AEK]Z/Z;:-T5^[.7VJ.?''_6%A=-)$9\]]^"(ED+F+&CY/6 M.MIYF5^.%W^[,N\4O&@7BEDR>I1ONM/R+2'-I:%WTB/D1:R_ \WXUN&V'S!) M=W#P$U&B+-W'SM(=SU<.5SCJ"[C/+@<>D$WW!:.X>LC+N>ZZ>,&WXK6B79+! M:!==!_I$8V2CI.-'Y^/0I1&_@.?].AOGM5;O\N&A7.WV;N;CY]9#I5NOCY"- MF>\=-0%]NASJ\3ST+\W'YW#:7^?CEWHO'N_V\LER/%WH52KJH%=K4G7,W/:W M/(6(CS]D2OAHSGW$QN_L[[_.QIG[^M/-U?SBICQ?EE)\X79A-[0FLK'K\;\U MNIUZ_/]#QR^=T#<7,_M<%WC*?RBND:%-J>97>9)MK.%,82GR_K_/M*/\G^_H MU,)N&^R_N*@MJ!Y#M6W3>ALG. "_-8!VV MZ9"CB2E7]C'$IU.)K">Z5!W@:W^/N]>V4?36 /)Q-J*I.HF/V4J.HT&/J =<8%(V_!FQX]_?51M4A_S/ ?"R<70<'0\? M]M6&"- ]PJF6!:SV_@.V7+G1O],DO0&2I+!2K?[,5*?]:T,?=8@Y;1$;5@UO MP%MN"#:Q]Q4IODKVAX^Y[GITOUX=:#QOGTB@#FO%7$Z?R,MP@/WN9CEJ M/&;O+KIQLKZNW14U,;D.3CB1CW%(M3&*- 1DC(.7S(B,YU-HZQ@@#F0Y9S@FIP$J_AEJH]ACOHK$UN*BF$LPW.H3O\UR_2%QK1E?0RKU^NKHM\ MYC:>FM\6>\+C_>_-L?@SXIK+5S5Q7KDK3MK+I_FXTGN9MI+;H_;2?T];]Y+F MD%=)RZ>L3("R6DL%S YA$)^TYT_+>5R[KZSBS6\_3@S4HPC*7>4$):@ARX %P M<<>_Q;()[A;8TV<;.FX5O&:0:, UNC0"6XS>2U9$IN?.P#\US5A:V^Q'F8MP M$C%AW9$T6)@.W"=-P;&V\6Z/FZETV)(YD@VO4D)L#G LDRWAL)$+ORBMJ#396FEP<1:=*\O>QF0:;A_?J].1,?3 G=TO M+R6+ ZS*CB;A9%IV% ^\^Q>9 EY$^H-\612'MX6G2;65Z3]D"]K3;6D9"J[X M%?<>/_/]@@R):1(%+,\9T2VZUL"D8^ /&0Y M_//BYJY[^RRO%/XEV[_B07H=""7\VZ5A?R*Q(H&QR:C4["BUNX4QJ95+SY6%=+7. M#IS\WU/I 8I,)L[C$8;(W6.JF\+0'IN$_**ENSR_EU@%DK71Q)!LQZ)MUAF3AEYJ._ "Z'V](\H+H/F?7.OQ*30^+Y?:D-KUOU&ZT M>.E4?N=F2T&V/>C\W*ZZ\%TM-+MWG)JH]N6G<%_C6U2V(0(&/ M)3/[$WM?<6!W'5*)F:V>S)P[\ ]BHKP,K,?[%=X?]Z#,32FX+.^WH@'D@/^X M4$UXO6%:"2X@2'[=87X7,?*VM7AV$EP/^4YOWM2[TTDQ73:5:;?[% (QLLQ< M"E>+SFA=5M>]BJ20T>+I <2(D(J)N0,D>&(Y\K8Q=6XDME5=ZUY5,ME)AHR[ M#=5J#]%D.3L2>?/E<3I\OF_RF4EGY!173Y-K >0(&,H'D7A^.7(X_:>HBQ__ M"__C&42R!F8_9K3'_X"O/-.D]7>:Z_2R<^Y0V60V(:;1XH%+;L9#Y!-)O.1F M[WG^WVB^2MI36EE !L6RDU]I1WB58">-? F$>*^FX2 M<-V !G(^5^) TL:A-?_[1CRZ[D@'86! MMI4+%Z+%<#EM+V+'6U& ^ZU>E5;]!>/.B5S-]HP(-*+J"\ MB^M]U8[K!Z5^.\-[/8T-&W#H06/E%3%EU=HOMJ&J*)!3[B!WG4V1_MO M".;VQADI8O/IAI>ZC78AKUX\I*8?B;5'N:Q1Z%PZV4D\N2R5L^.\,:D4*&OG M#W24G]>5^1M,+>OQ2WW<:EU-2OGL\UC+O[1SZD=B[>E%UR(O\P(_J9>J96%X M?=D=M;!> @\82![(W =8^\]8^56^]>+%OZ'&=RH SA1<#A;XSDP2IR6^WWYP MG&<'A=1L^OT*+R_+S%%&X+PD \WEGG7U(8)J3>=NI+6;&\,L'958;ITA)\UF MIK$@+&.&]W!W(' ,4[6X-C$7F.D!%\2<&4QT<6]!G/L/OL0M:"FW[^Z\8I88 M93T@2WG,$?!M5?1MAHZFQ6W8&.<%!S [IV\RXYM0Q-LY*S3Y?C23)8G49:G^Z+[C\.RW+NZ51SA2N[ZNCC/:0_.0[O#0A0,:86O9N,X9!0D3RCP3 .Y3EWJVXY6V:I0SA=KUI'E7$)W.""PG MGE.DM;4;J(/E8W6,IS:'( (9^I"%V2DVQ3N+K\K@?D_33[-U#25\3.#WV_M?J5Q%O:UO2C5[LW1"+_(9.)[,-DO.+]5)6NXCW51A;DZ?"[_=R6"9-I/?8(OZG&Z,3&E:\+=3H&7&PL&^AD7$UR7M@O97H7TWAVT6@J\ MG!AL$PQ^A5K5NN:G)#B:(*_!YY[@#BWHJP&*PD MVX#O>!\ $P#<+7CI@OE*.AD9MDI+J6UP.BRV32O![=",^"K-F&2F$5VUQF[\ M25.G*NV..#']B/T70[Q\:E:RBW+RH=Y7U]/J^$)_?_KI9)\?[$RM9O E]6)X MM5Y/;9DO_(Q^6#^*S0PPZM>R;R+D NXRT-%4KZ^I7R MH' 74?_/3@'#R;O>KXEE$7(+FAW>I8^N"88G]EO=4ZEYY^KA3KOGYW)3= :U M2J-PW=QO=3]\WTE;W7^WA3WIMK"SK1ZY7?TGJC2DBK,'XHQ0ME&P/\*R35I0 MP\0Q(PU#ES04RKA@E8!<9A%R%-TC G8IABAIYR@Q:>]H#!G]&60GARDF=0BT MNWF:1K5 )EHLK 74@1DW)CT)B/L9[01E':E8D2=C_E!C548>I;(5@P2'Q2MN M9P?AU"'U)S:!)8RG2][N, 8G$YKJH\^-P?'P?AN9A#Y@L794]ZJNT 6P?V'! MH*'C/8>W+\F>]X*A(8O,))-JGP1WN[-J^B"L17,4U@WD)B)V[N,D8$[;^N@BR;6(6LJ=+ A:A_"Z[8O:UAZ+)CF@B$':@%G_2SC]Z];J^=^T94KJ@1 M2P82#[IL\)=E:*I"E6E1TFAE0GM,8*$4J*"1#-;%BYA@(*%1;GA(7G-$(PS1 ML&L&1!WGMG*]LC4LSW4I E91TP'[!+\D<<@?R,=Q'$Z!K5E M8V!#,'.(?1(7?TQ-$Y+LW>O+\ I159U.[!B@]MB2.KQ?V>A-K6&K.TSR0=%S MB&IW42G95,D30#_E>D3AIFF.V1W$PE\6V/'K!=F'#F;;.11Z4V>Z2RZ'<(H& MH[)I)&,-\_[/K$> \34LG]J8:.FXH7X,3-$G<76;%R_'8+BJ5%29< %$[0#+ MD]W67GL,FX/7+L&BPM9>6I# KAJN*,.(E[\0B_VF&,PB,@V,BU#&FLZ ^$[ M*)7H2AVWIQ=6;%*XT>9?TV3Q<',/AJK.K$QJV"TDE8GD@["'36^D\D'XN[#W MH)W@J$*&'6)^@+!FXE<00P'EX_Z+\^3;JOUV0Q94VP&>)4:Y&Z"X% .01T=+ M0AR9JN%8%)/XHVDXHS%8VV(*W#4J!H>N[)Y*ZS?HW8<]JV=Q9OC;&Q8M'XXNZ"J.O1KV2EWC)_ M6Z#0EY*&S:W!YH1.1ZE+C]9#E^2D3/UZN*@98$[_2-/4SEY>B27Z?78%@&DN M>0-D+ HGM$QL5N5@:"SX:1+&T"PLBU7\K&2/LYR!][R,*M"UI<#)P[HAZ.G_5P"%$/1]3##HD* MW7Y*("DIEY;[@S01^BE9R/8'2E+NY[+I?#8IY,3D(/F-K4_RIE#&G_M7^&1W3M7=YW6^F+4K955ZWI:OI8NW2X-O#0C/;2Y>=VQ M+ZMWA:MRESRI^=Y#G.2?,OC.O:]+[2:_D"\N5EWGTJS-GSK3E3EI]ME!&MNW M5N^6R;5RE6F7I:>;]&IR\3*9/Q?Z8I_?O=-,CXFPOJKD)K>5_&/G97)3;@R: M<.?>.\>BDQ-$39N7;ZW+52F?C-_<9T9PY]Z61NW595R\,(W)M-ZZKY ']>'F M>@EW[FWI:6:7GR[*Y=MNU:IG2]KDOB?0.P5AZ]:^F,D.\UEIT!RY?J155[7N;J?+50DI[NFI>7)%\X1 'UZJH^*3WV MK')UT=8'G7@S_4 I8&]K[?OJ0B@_](4NN7A)5YK712&7/4@!MC,<=ZZU7(^/ M&\*B-+TO7M\3O#.SM\ZJ.25EK78WR8R-?#F3NM+[R>4A%#B-3CO[8CXJW3J. M,8NO+_CTXB *'N.E0G*:SN2ZM\/[+K_.3Z4T6?93^P2@E%JC:C\Y>.:3E?$D MK1GIE7RQ[*?WOYYMYA>-9:,IE=MI?GJW>ERDNEV\T_OZ*QU7;P8"WR&J"49- MR;!L*M;VPYD#^[Y5N,](/7Y=SKPT5..F6A*;)PI0OFVMH)FX"2P%#47F!Z&C M*UENF9+%_8=ZA&"<@X-L_?<[%;C4ADZNC7#NY)\0G^S6-$ RHD\'[TZH8 "\^> M\_Y-2\>_,U,"K?V?:G'79*,?]FZ5!F"+.S8YL0(_RCS<+3OLKX9I)Q-OGD(; MX>&=\" DLA%#A (1?"+WYOF3$2;>332);Y[B%R'BW613*N*(4" BDDTAP40D MFT*#B#O,4\P@3OX>)7S^F^S64_#0 M>&I ;.>RMCY2@BT,3!5>>DFT!<%MX0I:_%?F8E\@='(>X MWK8_3ER\\"GH+?NQZ:VMKGZ3VGY=HX1#?6S#ZLL([3_=L<\4R3]E"B&9R*0^ M-%-@#OMSBU@?3'_:\')4Y'AK9TS^[__OWFZ/0 9B@L]\ M=#*(I,9IST5/G=?8^BV]>R88L0#*QV8C\1@6YQF.G=_NZ=CIB_)*Q?XC_/=8 M)N:YM_A'-?Q'J+TY][[_=21&39]E*P'FI"6#P9)U$>OD \T$OSI^Z;X8PDK3W?DZ';D_'0S'GSL,&$4>?A*-W9G/U M.L5NH4)&"[[:NG$JV4E>$-.%TW)T-ETO%Q\Z@V)Y_G0WFN63S>+=,];B9W . M2DP0]B>A?&2.#K=!2JL^S@V5B+U/=&KX:XT>IV1O9Z:GAO6GAQQ??R07HW35 M;,PU5-CY;S^R0BR;_5SL'2GL4W*T&#:65\ML]>3DMC0+XS+ MME@;GUAA:_*LH#A"KE2>VGPO-:XZF0'E:&R?3&5C^=S^+-F=\,#_T/:JDY!: M_Q?_W^]V>?W=XKS83N *=CI3ZJ(MZIJT-AS[^U!=$258NN*U:3-ZW@ZK_-6Z M=KB/TC@LZ0W^R^WQ%PV.;#/U#@.^FBW^W>6R?])ZCK=:KFML;H;%66/#M.G4 M+'\6DC]=2IUZ8Q42_I$H^[2Y.[X@K&,63M3V26?,'QKE<>U.#%J_T@@(!6[I1/JT\/K;RIO3-1J\#ZE\Z"K8T%.'=PZ$2R'",9H#PB%F MSYPA/3ESA+?FEQ']QRY6/%;-[V>7D7_CD40UO[_@+'QL-OJ[FE]7D9P[*[U% M&CC4/*ZNX@SQWR_I?_J=3"?;KA6OLN7UTU.N]W!]<47&A7-DM@X<4.+3Y'%U M6ZC0\IYBZS,42;C"Y6L52>R><= @4ZG5&Q+232:GSZ5QS33XYV,5)OOYSQ([ MW.= A81>'12F+P\/8I=(G[^ M^/PL)/NB6_-D3)K35&E,].[\9B8^K 9/HP?U'1FZM%"TFRO=OBAGFBU97_4O M'IZ4 JM1SF=B*6'_!/0/Y67_W;%F'\:="H=8"I-WY 4+/H%7$Q*I]=Y6R(9U M#\BMQ56[S]]GY.9DW50&=_?9J9V:-/LIVBW%YV*"D#J=(?)%K8Z(O3\S>[^[ M4?(F?P_XA\5*FBVZ_.UT/GAPR>3H*]4QDQEDJ_Q=^?(&KSCB'_K[?O M5]VH;3$@@AA0##PD[SQ"[K1^UMGW>GZ9]]XFS:$NLL'BH?60*?7*]65?3@TN MK^M5J]E/HR&3$M*Q=/XD;6111"42!2':Z_E%P;N;/P=D03RM#.MM,S/FX_'Z MM'P3S^5?S +( C!ZQ'0^ELN\-0/B!/UGO]'3\V?E<;L'J>Z<#_?E>I,\FBD9 MTZEJTR-V"[I2HB 9$5U6B76A6K)F6(YYH$-):J>Z@X1'>6WY#8%O%]U0%'&(AAX[3M!R!L]$MO$P;EF3U"E#FK;W M>GH$NPU[Q#OI?R43 $A/O:>Q53R[>N# %6)9"0[?3A._]+!O(&B+DX.$P,ZY M7^)QA^Z)X?38<8G=2C]F.?+86Q.^8V])JH7_'+!SY]T3QJ4I:#Z;'0HO688. M/ZZ!/V#!>!NL"S]KZ'!1XDP\31R7SAZR7GN*OEPWO'$'@.-H(G91MP@QECQYX;2PZ/0(=/;3V%Y]:#9E9P6:I&Z(^.AE^U_9W@ M&9">3L&#O-&E5CCW+&[V0HO@<=LV,>D.%#(CE,ZP,7#HV"!)X-J":,:,,F4, M'S9H@Z&J@R!C2_26$OP8D()"Y@XN!JD#J[SIO>Y+9])Z2M@**:HV3R*\&.(2 M7 &6*2G/CN6*!*2>P]];JIK&#?"GH084R79))%-GR&80G]'#T.D_65\L_73P M P-"#SN?@&VD)[B:#IO';EIVSCU0':*%4RF)S(#65$0P+ HH::$"&4JOD("/ M#?\AI-084J9/1SL_+7$O"Q5D! *$X#'I"$N$/>8E1NR,5/S-)"-'DVS#7/N8 MQ%\X +X)_X*5#"1+I;O6D)_9Q[#34J6'N9M$@]?#^H9@-N"1[!L>#J(>P#'$ M57D003W/,4K=3#T"<0Q@6\MP'R3_'NNZD71I1"@C G@< M77+I6;)D)A&)-A;XC[&+V\11HF_!.'"U+.=%^#B'0TI%\+OD"E M$G@/2-;P.F\2(17L[#[@;@N< '4(;HU.=0Y[DAYUZR;P#)W2.9",A.X/\(7) MK4$,X IE6DTG L M =VK"E.*QG2F$8J; ;P;];6%M7'X&U"3A;XMI4P#UP1_2#-@RA5E72"A?YT_ M2I;[!<^83F! V%DUNCUP<6XWF_,=XSSS:QJ2:?;;_:M,,UNHW90S5YW:W7"R M:A4'A6\_,HG\GDL,T-0T3W.>!B2_%RTX$4SX[,Q8KZ[G\_):7 S2FMGIO$R6 MWWZDWX!)#,4#RF@5M/XZP76HZ)I*S/H!<4$7BO,@C('F62!T@ 3H5$J30(U MO;A][9NKY;JT!&)*)[(&@U:LLNR\Z M8X=E9[CUU6YDZ\3QHC89H5W2HB-? (UO!8DJ]=SI"XOT"22$R8%"8>Q5LY@8DE@L2C ZX MD13"=6UO5I#[LQ\A*>O$'*V]R^%FL_=85UD"T]V-7QV$JD7--NISHJ6OPB*D M3:B+RGW744#-"Q8X?!A-?5C,0I4)O6/N$"_RX0&>NS#!.6!N"$:'X@X\ /)< M=O!+_NHX X VO%EK@]!@$^-*>N@?%FHQ#<5ANHUZAA8.(SOX>GL]HPXB.$"6Q>HL+1L\ M(W 9+6^'[@.4H[/_6/XBV!NF!"P0L(?IW@?KX!/!X$QP]3&?H@/1$Z(O5-/0 MO;A4<*G^E[W%61'M4XF"2*,>.3,&AQBT(J H*'Q')H9K /Y#U::A' \KIJ>+ MN)EC(G< 8#'N:=/@,,8VYXX*-/?L*.P!=TP9>O7XD8VWG>!PW)E/\%-I[1FJ M&TJ59+H.V @@ST2QAA$I]ZYG QS_S;VX2A_'R"]3C'Z WQ5X'"QC(Q &V^?[ MK8W'."^6 IZ\(7LN-Y.WU$W;7*8R GC2]>HP!&"B*R\;%L9>6;C2PG $BWJZ MUQ%:-$C'+FP_NREM=F,J-+AH8NQ"(1$5(Q6SH78T" 3 XP: Y"$@V))-=>;1 M-9,5>Q+^>YCLB+V4*9TM$AB9(FM$,K$68/R/HEHS35I_I]O9F==)CZC$!<$E M=W*+R">2>&E[KDK@U5OOB\M$TW:';6Z5U1UW,LNK?9W)U*8\P"T12";WIZ_@ M__Z?K=DR?AU$W#O:E14[!"#H0B9)ZQY&),Y&U]"8XG=)6TIKR]UK3D@(NVIZ0Z%[[R?RI2]87T()=*BTH_E9&2_109IOJ2P.?[O)PGV/LDK];A79E9CQ6O5\GI8:*O&4ERV'Y;]9#^Y>^?#RU,G;ZSB)?YV\E!H MB],4D$&S+^[?65.[C^5UJ:64Z[EDZJ+X++37!.],[WT]GV??ZEP,RD,U5\YY]W_@S.TK*"KYS[^O5^T)Z_5B;-[JJ M,UN196E9TJ]&X''O?=TNS:KMM:8WR]-5@V2ZU\O'=+G0S^[?V19Z^>M;N5OD M55DKOTBK>J-X-^KG]N]\')G/*>NRDBI/<^75_?.3^F ]+^'.O1T-TR5]-*KG M<]VJDA^JUIJ_LP%*N9T=]8FL#--\#E8EB\-^*B_D^WDI+_3SBD3R23['"UEI M#_]Q^?F^K76&?'MJ5D#M5?OYQR;&'_8P\'!W/VEHHVRYOEJVKL5*+ZZTFH?H MM)JI/0[%"G_#)_D&N<\T^8)CC.#./0PLGU(I[=DN5KI.^[&=4?3+_$,6>\[V MH#5*=IR;?J72FL3+QF6KH+^D%HW"(=I/"X^IM%H;"-V,H0I9L=K*3?G1(=H? M3L87R]Q-YVK2[K2N2O/Q,*Z:C^4ZXMJO*W6UXW,^"#M-P?F M;;TYJ,L3Q\X*+WE=7IB':3]5O+2O+H:M,E]737YEE ?]D3@Z1/NKI/%8*"Z% M2K>75&]N5IU6MCTZ2*?MBM//7Q;SESS)+2[G]ZK2JY<.TJES<9-]*KV\K":D M4['XZ[9B7!27<.?>CEI3L6. H]3O3HO#NTY^4'/R%MZY0WWY;%X:)M.9?FXH M$*"^ =_/YX9BGV2RN8R8S(O)C++[[J?4R\5]714O<@*FIC MPAL/M>RD_B*^Y+NIN^%T@'?N;RF?,R=JLF\KW8RVN*CK73-Y5VT>(NJ'4J=U+HE.WQPNQ>4B@5PNDO7!Z M-8M7E<8X%Q?%YZ)Z4*"GR@\%@,Y5KGN;JSTWQ9N:5KC$=VZOLR_EY4QF**7Z MJ612Z*<&V7Q?DM)B?Y :IO,I41%34FX/!J4KH_@TZ0^Z\\[(R$]>%ID:"(L# M+-6J5MIR95PJEJ?#EQ>I.Q36;;EPB*5([\F:W0JEZRY9Y].YYTJ^(,:7AUC* MZ3T,6_.2-N+C5\WU=#+,.(WD07MY7N.GW?Z5DWDC-0"P=9*IX; M=5:=K";PDFG?WU9+J=ZU?I"E1O%5J2W?++,31R=RNCB61[GD89;J)JUI4;W4 M;[O3ZMJ^;/>&U\"JAUBJ$I^,Y+E0%[NDF:H-"OWRNG'=/,12-\LK>[XT2YU) M'&2I@7BI=D.,V#+)5-VJH6!W4^B<_N>LI<7/8:LX-ZHCHS,N5L7B^72_6..>F6 MX\YLW3S$4IVIG9E([84Q42W]]NEF=)/,]PN'6$HH#,SG;D8ED]+#38-_&/=N MFZGE(9;JBW.S=]U992?KKGFOOL@/+Y5A7UH%0KXL:.QX=9)88*1*%S;IC]BI&@3>'9K9_R2M$VT=!.MPG>HNF5+ MFK8I0<,$(?A;+#<\Y'2O:FV%<65XB(:0)8T;2>R3!&OT,-GEV"R0I:@86ALX M_AMM6(0U52T++UAK$/=3-V@K&].IHZM>Q,S]+0ID=?;2,[]! R5)EQ3I%\F! MY2N\A!'180T$%JR/8C36[YB$1?>Q\L@V618 :PN&-(L2J;]074?? MIF 5.*6X.#+2=P?>;N)?>S^SE]$JR%]MW#AU30;PF>)HY':X6YU1TUE5#GRA MN'9_W*_3(.)+4^M*V6<^7K87%S?KU%5NNMPW3P[?=](ZC=-B>CL:_Q=T$&09 MFK$\OM3 -7CQ](\CS5QP! 794OKIV4]AM;R.=2:5FRRA*1?)L0WO DNXT"N_ M?&Q55D@DA2,<7"5F:)XG.H#A[$=AI!+)=(2($" BF4CG(D2$ 1&I1#YBB3!@ M(I)-(4%$))O"@@B03=$18D?$Q&^.5/NIW?H5#D3XF5C^"C#XF41\_^-$WF?; M/[.-/NF^WX?D0[?M+TSE[S#1^U3[CG1:6!G\W0_,2__IV6'I?$),?NA#CRH& MF]ICCTU"N"G<,+:PWXPHW$]/8HPX*.*@OSU]+YE-I,\[7CQ$I^]%Q+%/'!]; MO/[UF7*NT#PS"'Y]PV[.]:,P1&A/)?WX4\,6%X$%*^$,Y>.;3"OPR MW*.1]+EW=*YPR;GW?8R9ZFZ<+UR#]$\^,MVOCTL=K(^S3+M?\D<2PGTU+-\N MK%2K[Q;']?W*2&]>SPV=[N3_3NN6\8>B.T;%NX^^!6=6];L%7;EP+[M/JZ/U M1"BUY_F)E',>B9+62U?MPA]/;G>E5L4TIMALC,#KJ?:XY,Z.**_<@OD"3CZQ MB-*15@>FNJOQ45I;39^&92>3S=[=OVCY2L<]X2&3Y&/9?.X4)SR$0[8<[9RF MSR4RSG/:4)A$AA@4&>+Y1(92Z?%FOB O)_5,I]G4VUK#>1Z=661(J9M%M;@L M=B?K1KU6M(8S67MP#X+(I/*QI/B6R/@ 03G6Q/(1G(+PF$N??9/OGC$]NPP\ MB]G$6&];"#XL+D;U])6U+*]O[O795=-)WO3.+00SF3I[*;/SFQ?1:*\;W;Z[!+E+%;5(8E27?'B]=0IC2;3 MU;)4YY,M\WI\;D]L?G]WF1T^YFU^/K'M?#%Y*?5U;&L'LRJ;S<6RPD_/U_IP MX:H:;;)UFWS*FCI5==95_6E]MK $SXS@$Q:W2O4[:FK%?=4CT] MNUTV>I/'7+.?96>SQ]+9?2G[WT@:1=+H-.9?" %S9FGT^T;BV])H.+QNW%NV M*93KF=QD]%R:]=:C9EBDT6"8&V=,L=:<5(=.L3>\JO8[-9R.!T:?D )IE'E+ M&H4]EN8/OA62L\V>[3CT^6E3SWQL+D&N_88/7I5;IE-@IVMU>3 MGTJ-G'RO=_[\D.?C.*CI[,/-Y:30FTQNR20]>M$,5UZG6*W4"&C!5]MW3B5["0OB.ES1YFJ:Z&S M7BY'^XKWH^(?BF*CA/&HX?XLX/GK#^6\>!O_!.LY_ MB<&HY3RJDOOD_:.9K]L_>OA(EK/UCQ8:3:<_CR>5;NDI MF[I*2Y>E^N.Y4]"YYU6M-6_D*WPO^11_UMO%:?RJT$^Q.A*!S\6RR1,V3YV; MRZ*F\]>"M5]<:(2EZ7REW&GI[,J<=NM7U[.'QXOBL]QX[XK97:$Q5M:/8&6D MR:1WG7I0RT_Z_=,5'G=-ZU:$G!CC>2%J.P]%U"1J$CUFE\";&?;/)P5#TW9> MR:HB7[-XN[PV]7E7CA>7Z>JYV\Y;J4'N5GRXK'4=J;;6F\^9@=08L7$]0BR? M%&)\EO\D-;B13#F93'DS,_[Y9$IH&L]KX_%%=EJS:Q.U14;7E^DQSUOG-JW2 MI>+S:BR^R-WJO+[.712&Y-EJLGD^0BS-9V)B]OBFU;G]EJCU/&KV?&SYQ\;>V\W>Y+19-47FE?RA-RM:ZE+93)\F(>F]7PZ;RL]LVL,>:F>OZSW M[]=/W6Y>RG4F6K<7K_5E M2Y)Y=?S>79RO2J-DIB-,4T_]J[(TJ4SS!3XS6]^Z\X:$?(S/YZ/6\Z_M")^] MN?-DVC6>D-*R;_'38MI_OYI>%O'EN%[5]/+79_U52= M? 5]:'P1.#R8S"A!NL M.2^XN)0L#OYO:&B:L;2X_Z@Z9X\-QP*6M_[[_=V6]UDF*V3RB4SV"),5DIE$ M+NH0#$.O)BC+J&DV#(A()K+1K)$P($)()_ADA(D08"*232%!A" D4OD($R' M1,02(4%$I*Y#@HA(78<%$Y%L"@DB4%U'(ZF.B(G?3+C^-+KQL48GG$8:?"P8 M^'W3^3_MF\[D$ZGLA^Z;]J;QV&.3D-/.XXDXZ/-R4.I/.4A,)O+GG3X2HND\ M$7'L$4?N8XO7OY[.$PG-]^"+$PUF.4T4XBM@_*=P9OA/-()$8B,6*/#VTB'Q2)?V8@GSG@':F!^H#4\(QQ#*X7_%6'MZ?"=>*#.EI/A%)[GI](.>>1*&F]=-7^\\D/ M5*FVM/PL_/,K[(-O#_).P;HC M)IH,THC<#MTONA:!SU?QI,]8RV*KF;WL]$;=]4NY,5D_5/1+803P27_[(?") M_2DI__XT?!6IXD@5_YTJ#LLY*DJEQYOY@KR,LM05AS.CX[DYV\J"ITAL<'8J+WL#RZ\[MB M]DJ;+?CY5&CF:]/O MITYI-)FNEJ4ZGVR9UW\QO_EM+5Z*:Y6B62V5NZ2G#>(S9YB58MIZ]DV;R:]M?0B5Q:72^L"E3@-'PB)[/'# M!V<-QYWLW)5PA!I#E)TX^_D'[YB^./M>PV2E[+A)]>E5NF4V"G:W5Y.?2HV< M?*]W_OR4J;=M!7MT42I,QOD4[^2=27=$XE)1+/1SU.//96+9*,\0I?S_S-W_ M.1V_B[X6:]?"NMTH\;=/%\N[ET)N=)5? H&GJ;K>/Q,MRKQ'NBW2;2?RP'N= M8K=0(:,%7VW=.)7L)"^(Z5/YP<^YR7I4'!1K7:(\)0?&LUKN=E&W@1\LI+.Q M9.:$CO"YF3_*H9_2"_XY';]+0'E@SDK5V7Q0KJ?'B_[M"R\7GE&WN;[H_B'O MN[YHR$[?"NGQ1.G\D8XGB@8H[S2@1#/%OS(BHO,.0H*(Z+R#L&!"I&?A18@X M.R*BXXG"@HF()4*"B$A=AP01D;H."R8BV1021$3'$YW_>*)W*(P)]U"+RSJX(3'&3TY;$>"<5(*$;L\8$GNA_OT*/(2(Z, MY$@?1/H@T@40U\R)-NCW- M2>KL> _I 26GE7VA._WX4QQDQ'UQ]$8YM,V'IP&O7MN3 MI$/NU)($_^=)@[+X2HKY4Y+9U?F MM%N_NIX]/%X4G^5&\T2:N$[:,UNL#^4N,887W?%--Y_LCMCA1 +/Q_C<_NB9 M3R,SHLE*1U7%'X>!WD,57[7YMC!:5)[*/>U*-W(957PV1^[I1+G$OH7[=].% MW[LP*#J<*#K6(#K6X$-Z_X=&LE>RJLC7+-XNKTU]WI7CQ66Z>K(3$<5R*2-< M6E?=>E:['ZG6ZGY@%MCA1,ED!OS_$QH=GYW)OM#A1!^/B=[#\&CGK]272MGL M\20^F-5?^NJBLQZYAQ,)B=P)@P"?G+9YZU2A S$SJ&2%_@Z_VG*[5;GJZ43\V['\#U@>$)U.%)W@ M$)W@\)[!AO1J/".E8=WDI\.V_7PWORSDS5,9"UJS-ZB79ID7/FY5"O7GEX4B M)9?L="(QB7F&$QH+YV;^*.5_2G__YW3\'OI:J(OSTO5P)I;K-[E%NII7;C1Q MY)Y.Q)_4ZSXW>4>Z+=)MY]9M.]Z#=#?OK*^6V>M)26SH%\9E6ZR=[)1>41S? MDU2RMBY+:JJAE&?2H"B/V.E$272$\_M'B7X:YH]RZ*?T@G].Q^]25=8R>B^U M2JLY2:YA)Z1FUNUYP3V=*/_V MO?6^N$PT[9^W8@;'G8'\:H-$,A4(#3!0XZC!W3G'^+__9VN*LR]&\-@IP_SN M*<4 !%W()*E<&9$X&Q(M#>'SWR5M*:TM=Z\Y(2'DO)#W=U^QBKBF?"(E_)O; M_(DPV4,;GF@5 -O6B57LJ>TSJ]QK/YE4[>+<-F;?DP+*J2U\9_:0?9*0C1B0 MC1(W-E&H_=^.(1]L@L:_@>1!7&E;C=#NI6\_.O38,&/(E0QZ_I?E\XNT_3X/ MJ>F,* L!-13@KC=X9QS%17RJ%V975$0?7S3[> MFGS]*2*^-+6NE'WFXV5[<7&S3EWEIDOZE/#M$.W71"&D*8@Q&YEBY$*',Q&..+QZL.:()(\YRX6?9.%].-(: M&#/&H7_,@4G"71"9!KUC%MWX^;8-34C:)M?6,'2V:K9H-]MV?=O./#>J=\4RJ3[RW9(S,\K\ MG]7,N 2W\6WV?)F&9)K]Y5TA5QZTDVIWWJIWYX8T*987HV\_TH=R:I1ZSY#Z M_"-8]CN+:791B\\F9/KBQ*_2R!NHU'-M2%6KV[9.VXIA@%[]^=,.VGD/XQ8"+ MK!F1T9#3UC%0)YN4M(]D7A+]GKIM9?YM>]Z4-74O1NO'GW7%;( MGR4:?@.@RLMUW!G9S^E)/6>KF>FHV']N4H#F]P&Z2_O(4E3U2O1;W)*8A-,, MF3+A6WSW&MOX@8M3N"M_'U&)XB4'XB6I*%X2Q4M.'B\)B0B0J.3L*_E44A9X MI2^E!;&?DF7X2Y*E?IJDLGQ.S/ *H8$7Z;VF(KXUXN6N5;NY;=7:7+O]I\V=U%KE[KM-JR3*S0N MX/\7KA_;M?:1%WU\!X^1"=84)F] LXVH,6!=J!9X6A:0-A@=!5W2UA:8!%GQ MJ)3RJ_ .9LIF)J$'&<(3N&8NF>"XS;I=;%C<9OW4LG)W0)'Q%EZI)5Q18=.R M"K8"R!*%\C=]28M8CF;36]R"2T.W0H_?$(2:Z)ES2S!=N6O#F* 3XUN=40S$ M6]>;\<7.6+6XIB.9(*; "FV1F6':'- E ';*-)C QYMH1EH](&GIQ8S)3(NGX M*W!*FU"#G*TQF2UX-C9E@B_B_H,/N)L-WNQM+\:!A)''G 0N@>4,GN&3X"QP@:<^Q,E@\]DL\&R/#0N>9"NU$ESE=2"!)Z$YX&FH.G./4+8 <&5B,H Y M)@"E M8)SC7;(QG1%;12N%\^R6&"Q$<>"Q-5#(0C4-'9<9X\ 7MIC^ A2 ;JA])4( M$#("&TKX9?R68SG4'9.!EP< 360J=:BZZ"#F%&#A($8M#X,2W(!.''IT'@K= MGP9$4\EB_[IL.)JR>Y%8-@U_[-U-5NAM[EU6T1I5]BY/I?7N)8:FW8L&&K.@ MB_9^,(FB'OC>S#2>#ZW#&A_:#>8L]J[AC=XUH$%+!7DGF1QL$.C/HB2.J8PP M%1"<7T)_?)[W2>W]N']A:+"PB6XLV4L" !$9(PD\@&CRHQ5#_4:C#JRAPY3'RNBMG#!0>R,VF2L6) MHL+^3$P?TK"LI*]WL/#V^UP.P8"2R:G3F>8))(#-ZXHS@:HHL&:Z(;:2X-I0 MG[FW(/@E3G=HV'BF7$/A1G#*[V;,9>JQ7 5#GYU)%GLL< %3E/GCJK )Q82X&2S ME DJ/%#A09]IP<"CVJ '-PH/I+63,(@F8.RU;77_D$,@EUA;=XF&Q:C5/<5 M_DX9S5/ZH@O MP;Q@P^C)E1U%[4&%>$JPS2NCJQ M=+%C$SBDC#S+;H(QS7/@P(!$9Z6_N!-X/8<617 EJ>JE\22O/ MBXY.PSBX71"#\*MI.*,Q_AN1'/@6/DV5DSPFBH.")]X*EC2BP'*H0 MW+>BT4PHC@US!.:^S%'?@R%,D@% UA8I4I%#EPFL"0H.-[8TS E'\^L^GO[A M--"%A I3$'T$Y*SBR9B-_F/O#*A&]L^%"A"F?*?"8ES71Y)E+!NAJA;(CFF4 M#6MZR@ODM<3\!TEY!D+S543@>=_X^P?DSX)HQLS39-P("9!J4I 6H-GPUM%& M2*!(4W6D&I505@%=:Y&-?L8"*=U%#57.*L,R4W& !;9W\@\(>U5#R84\,:!; M&4H+PZ1\XP$$+OJ$AX3-9!U.'!ZYW&]Z^ML Q@98R$"&3$E@--^QZ;L 3_3N MP.]40&B2.@UJ&_<*)7B,1KN2G%+09L%N8A^EGDX5!-(3J$B3OA3\+H\$4+4' M!!X 107<#S0/GD";:]!\<8NY@" X3"S](=86<*9H-R!XJ.^&E ;TB/=0XP(_ MN6->6)8AJ]2EHT4$F/:UMU*R5 3A&@UM:_,&R#TTQ3T,WH"A"L@H2\"<5#@0 M>TF(SK4P("712]V)"=\%-67!9V"]KMH-"'#0GPYL6>;&1-)@.3(LVV5SL'I! M^ZDRWF,@4M$W)-GP?=.@]2AL+P W #<8-PK1I#6]5R%#R:.8J31A MPGT=$$]4SAX23TPFT9]0"H&L9;0.;&1X:HG= M:).^QZ"S]H'U%!Z%NP,M,; M'I-3/H+G:%S]U_$6%#V,FEV[EP&/L::[0]_L#IKF-I''NJ$9HS63L:8SLV0:"6T>$ MZA\3OU3,JZ:+?TJ]E*S HK-PT=3N9V(X"#Y'1O4Y=%@*&(@5*9:1FDDV)BVQ ML+[OJ*[Q7Y6_?1#O^97X/M,&,%MS)59A2\6,:C*L*NHZ2%(A/"&*Z9_[K+O73] >:N M'3O.]!68Z=N/*NA+W>64+5T9X]8;XL+8ZDP#ED,,.E1NJRRJX3W[9LA"LXS8 M6]D D[A%U2PZL)^AHU'7(6,.&O*:N;ZYSH(=KB174-#2O]]D@P0*"Q8Y@YT% MK$44W\Z,ON5GNW(M+EHM9&X_AZQH42W(R-JGRZC.YE"=33JJLXGJ;#YDG+&#Y#!J4HB)@\$C@[]#:;;]0)*!$ MO'@2^BK4"<%/@K(E?B)(\>U5P;-7?T'#^3;:7]IZGS1W]^NU6S6,X"@L"OU% MJG?>YAVTG##8H/L%T""'6:#?-!:JXD:A02Z9$HO?HTGOYR$,;_@<#;EI?D!Y MNWL!J==K..@1[\W@Q2_Q/R9UC3"L%$@1Q%@,CR"3$:SGIN8J2U8.I0'6!+#; M:'X'0Q>$T.2*OS2,W@*[@Y5DN=4!DD6VLA9^Q!HYRUX:7O^@]9WSSVAC_AN= MCY?@4)1L@. W*R$O4LWH/8^-2WX:%!A3ILD:%.FF(=%ZG#A<0?5A3K >?3>1 ME?A\+/KS)K -R+TV3C?L[>/)<.Q7B(MF;D#>O[# N;2A*0^DV[$J-PFB!5)6 M 7+#YVBZAJ8.W5!Z,!E(?\#H'I AY[!,(VH6^/? V63%81&6Y^ZSS(J;6 3E M,'5TEX0M[[Q#,^FQ>C*P+CJ+$,<<($$PSQ53@!$D&:S+LG?>/05> '\/R!*:JC,C.#0J9 MTF@L_DV7@)D,^--0J=6!:'R1/&EI8=I,!F.171B"J:EL4A;.;&1*"O(!R"M) MQ84";,&OPD2".B.HO;9SM#M,$;B-!4&1YC?2U39"-2RHQ M"4,_$^*,$FS#A&7% C<-':*YGY@1W YQIIM_R6/,A]"$@9<\HP6 2X(MV18S MSP"4&#YW\]Q#QIM4;N->C\EYOV%4AX@5>UCAN"!^H$]A/;DLP,<\=3>#PF#, MLAHLB3+:(?TL2[B..VZ2Y]0WWFO_"+4+;NA/5>= L\8T.:@%168%\A#:*"R]_\9N*&3K4 .WY MF.]9^!_!ZL<%5F; GC3X$C@HU 55P%E16=K='TOXXQ0/!UT79:NI2#(<4!9CJ!TP@E M,Y Y!O-^T;KTZX]6D)4\48;Z:E:H&\ M#[7@:(N?WSO./C.B\5#\6,3D0'A>[[$/)E: (6T9X93ZJ*&TGFU;3H'BFACM M4/7^MF%9K@Y@$1'/T,$:%:).!XYI4:Z::0XP" G4YL08F6-%"*UW&--BMTUJ M /,]2'A#52- =[M8?W56@,]%RS%FV2T9; N\"[3@W&$]S HJ>*_8'+,?!"@? M$_*4NUC8%U:]]FL_7!KSW@T,J#F$UCFZ >; K@(+PT$E(&)>T E8L!(\0B4' MM_P#"4$#"BAV+5=P \F9@ M0TUA+]1Q[!'":\2&%4P2)L],UTJ][.%?<1R0Y*!BRU<-\,&!IA M >1_&3B\4IL 0';P@ )C'QXDE?:Y];Q!,HD31)P M'A%*0?U$@U8FRY'I%@LG4;W ZIV\A4?"#IT+60.KF$+.DQAF8!K+"$BTN#C"L!Q_9)+P2W*UC;L(" MF '=*^649+J.0.D7*U^C=ST;ZJZWL34$9>IHMCK3@I5C":YC8&Z=806\YI<$1)\ M=A- EC+#Q):9]6>Q-6]/9*")3:\\SF189D,D#?U$L/#O@?V_&?V&LQ M)>I@,)<#V-3UEEP_>..+_['3R]U26X0*+LMFU8A ;V@K>T:9)S'0)AO 2H:J M/[8F4(,_1:.)#$'.T@I#:@;22\$*,)HB@]\5U.(;KW]F+%E3A[]A^B@M2$"9 M]6JX;1L=?H!#\0K^)9H!0=FE'0JT8.FUZP+Y95]H]2[PW1I&>GS-N@/J=8*[ MA$4OT%%B6I>97!L[EIF" 8%.M8U?(TQ+^F1*#FB-8H":%M;0]AI6/3E%I7"@ M^R'!E;V+^QTQAZM5J=)A[V:;9'/T:-P,F&S;X5RR;("$NW>YDVS61!]6TH+*+MIO!BU+NDNG?F-4FB$/:*@ZF50.-DVZTMK*=' MH2%N5F5-NY$VAO*FEH3E,$ /+J@[3G44ZQ#"(,MFS:Q 989I3WJ=UA$DN!KU M?D%+8^$ ^NVL(80$]FYM;][8;;R)4?U@VV0ZHZ] %WNQV^?E-P[0,"QL)N MQ#;[].)$FR0L:]DB./Q+\CI/D.K0\6 %X%C#P3DLH$G;=#B@2(WV9-&TT# 0 M=V QXV#SH4Z[QO]A!IF.FM(?J;<)5^KHH#>SV=ER3'3X')6#U$&#U=*T M(! UAG%HMS3.H47]@#_0X"X*>A"!^\IK M#.+2R(9>73@%T4(M"KIT#'P '5K@OL*W+6+%@N7"+AU[$'>Y!9N/B.)'PTSO M9FEF[<;M=#*27+G UDJ4'0K>L"$-56]*^Y%R,?0_,FC/"=81&%/?E-HE)DJ M"D:[W%RRQ\8,#MB%R$J?:8"/54QKFA?-(]O/JRX];#4Y@KE(XZVL;"R*YE0T MM//=,,2FUQ9$[VX7K^N] 'PN;6JA_Y4II-D['3UN@)'&9;>7Z7LCF]0K&@W> M5W0L_L+0#^<]Y/YF;WEC5B,=/&_\8!VO3/C2D._S"UE 7FG$>2QKA_/I$ M%LXRR90&CVQPM="3<]72D 5#=\0*52#NQ VW6\ +A\2F?B)P/]/G#@BG'?.T)L!E/B:SR2&\?WDFZVPR#C1EN=W:'N@9#5A1 M.TQ%+:_#C!7SXO"#M2TP M VV&&2C3+8!*3%O)NP^"U D5J0V_:DK?&FO@/;QPF2&4GE';LS0WV[_E^C-;^Z+K M B%'XY)HA6,VENI(=U@&9H@]H-&D-TO:JI00_=D%L,,1BXK3;[FMU_Y:=D%Y M8!)XC/N7R/,)'E0N2.!-SGU[/PH9V#3XZ/4!+H%U/(^;NB!T)6#[%[UTZ"^\ MY, 9'E@N(B3X?V^$(>UB=__>'XNQ9#86:[UT?2C_%C?=A-IH>[#YO]*)C+?A M8W)K6!,LOYZ2:K,\/)NK(Z]E#='K,0!#)UUTE)F"S][2;-2!\5V[DP8WXQHW MHX427-MU/U'#^->I8^_//J$E,][(IDV,'EZ$\R5B'"W,L71CZ4TSPA%$J+VF MEC?T$ , GEN/CGA@D(&;@'XUZ]6A,M9R2<*/(-%$.0NB!'/M+-DP9T[AV:_3)W.^'/GB3$G*'!: Z$(V?HJF 4XRY\UZB@L'.!. M.G!+7IB40K"R 4R4V5P9[N?N3IV[=6UCCR<#1)A[+! O'O\2-.F=]TVA5>]R^9Y^,T M0IORZM"-T;C[I<0#]]+_;@JMCC>&CIEE_BQ$=[Q ,(T*M@&-9,28H4#=%Z4Y+EZCT5]R*X0B[D,XC4'>BJ !43\D;RXV!UX M!>=6><6YCAEXE;PUD'I3.!.I-M8.'7LECD7'E1JIFV,BR&6AXL!^79450M*E>:#4PTL%@]K5&@1!M6S[I$T+)S,#"0/ MY_A(5&GQ:J5%-JJTB"HM/DBEQ9;TPAD$&@O(N-57@'):&/:*+#@P$(>\-8!@ M6^H$A,V65^#5V_I2B78X80V;6^7E^GBOR[MC0"6P+3TC5-0 2AA[N9]D>='3#L<*PJLX")3"L&O%8H6]I,SXBQ M%A&O.6F3I&4#$JF9XK8ER-+,(\ !80:.I*ATY+R_ M^B/: ZIL0>&PJ.$:3U MV+<@2EBP?1N:)MEVV['G!?_AYOW<"NZ8UQ)!H4U6Q(0]DJVF *\0?6^:]-:P MDL 3_Z^]+VUN&SD:_IY?@7+LI^RG("P.GG)VJQS93ISLKAW;FWW?]XMJ" Y% MK$& P2%9^?5O=\_@XBT))$!RMA)9(H$Y^NZ>GNZL7@D%!_.B]KG-6:S1+8?0 M/"*\^R)!6]X>*N[J5&HY14NVNIM9.64E7+9RJL 9\QC>& F2H5H9_8WUV_)> M&#L6PT#ZCLKY $&8YZ7D0>>L_/#N2P=' /SP5;4W&JO<4C8V6VH!'Z+!3DML MVP>X!0 #[#!,$D="Z#1ALMW>7UG#1T:FRF'17%EBC58N$YTWM4S5L[#6CB_4 MRLDM ?]#^)1,B(-18;/R:S-99KV]\<#KN:6#$6KT\^!=IH($56TB/[J5F)UH M36"DKFDXV3ADEUBFT7NA+\5A8S8KW?PKE%HQW!W=2P?%%*'Y(H/-LC*\#&@O M5. @BX3,F7 RP:*Y&%6OG+*MC(*K*'"%&&Q]V.\9G25BV":)%DG!,7N&524% MR^B^T/?%>F="82TAJ-VE[M_HRN8G.D53$< <(/+RKI"_@UXMTM<>%GPK.&Y@ M].L3ON7I*.DX+U>Q@E4HB6N&B6M4D47TEJ%>)$E^.0]\JPHPJ'S"/&^G77;[ MBVPK6 @(DN&+!\"IO']XURK>70&)\KXC*L&!3%[=^MK]G+TJ629NQS8+/?!H M;0+V2569V)TC4";MX1C3&+S8&?CEW0_!?-O$+OI*?MF^CW-6B5]$5G#><$ZF M>LZ\P*.F(MYM7B5#'9HE.P(L[TKPM_]AL_GK-WD3V&IUAN>6699'I7R71W@[ M((.J^K9OF OZ=E&E",%0,.>85KH M*!,&XB9.J1N-H670*:"RJP@!G^!%96>]LB)UPPAO?LA^8@N2\NRUXC+4)2T. M!B7#KT2+#U6/=G?1U^H"NDZ1$F,?99=_+RC0422IUJ76I=:UUW6I))9522P# ME<2BDEB.)(FEK;)J=Y_Q8R+[$H>S2A*,\@]AVE_#X*+(Z5T&DN9AE?J%B.$N MQZOX#-G-9*]CF34ZRHVUEY0*%*8Q/!&_NFRU^I(E%*5$)NF)TMAG\YA?9K^4 MEX&S2AI %G6%$,B4&XE+EB9A]H$0EO1)1:2:)-'+ M5<$H9)E"TL(SJQS62< M;W*#]NM:QJ#_H@PA.5\&K9+<*8V/5_RFT:PXY"1"L0T7$4 M(EJ B('1[RI$M 12C2U!A%*-+4"$4HTM0012C2U!A&6\B/:@(B!,1PJ1+0 M$4HTM0812C2U A$#HV !5"6W#)C #W]\UGWV MR.W;MN%L=$^?O/_!IA/6'8Z OM*QQ2_BN.(='5?DIS_'@/IM>V\3,0!$-@K[ MQHGAB_=]$RDHX:J$:YOX20A7>?@H31EK_ETC%&A95DB+^0T/AD5V@V/J69J# M$KY[%+ZG3"R[B^=VR.(MTOI S= M\K4"!^\RE"Y\5!!] M[WH(&_-43H&P+=VQE9\\T-PW$YD M^;+3?:7H\HSH'CF[_ MNVDGJZ];CE.[AE)<A-U;NFAZO(1MFBL"L.0P_$ EH-M;H?H0ZUIY MG/. )H)%"YKGI1ZWN_167-$7#L@5?&@&>PV\Z8C^!3YK/ Y:J1 MX19RV58W/FL)2\1B/XU8-J!I&:>L.N$B,3R8LNQ2?ZHUE'4.M++[C;5/48@K MDZTN90IGPK[#=#6W:F@KK#:OZW>N 7EI<3KZ@[L),0+[KOD>&V5-D[W9/$3. M 6J>I7[B85.R/]+(B\>>B\5;8D/['?D 2'CF =AQB7(72P( M4N9K?#*!F;!%(,Y$%,_@8>9.!1]XLXP%TQC;1R##N]B[3+Z/:A;?Y"P*X/M8 M!RBQ)$W"Z#X?,18="6^9YU.S!?Q\#CR*+V@A]5%+ ]J>H5V!C8+L$X.^]R9@ MK00)=FQ+@S3&Z42K"H(1!TZ$P8'!(^Z&\#2R'C6>X-I_4A8EE"2L@4T >X$/ M01"X;AKI\A,8&?Z?QER[!8$B 'R?O;\"*I,HG.7C F+DKP3N? &%[, =@VAD M/F&-JM8)L9&":!);)##(8G4 -V\"+]WKV$>C8(Q,P#8D1M895)J6<4;YZ>K- MUA:QU=4.W&#E#HW>RG>!;_$],<0Y$,;3PP&JH]V*CG9#U=%. MCDHX5QWM2L?5N_'.X3K:[>Z1?)']Y<%H W.Z[H;B;161F]?U6?851K,#N#F. M08>$$X]<:-FB_@&AH75=XLZC+=R!>[Z!*=%1=;@7O)&&*M,/>@H1K4#$4+4( M: 4B3,-4[4M:@0ECH%I,TH/*3UT@GKH_>8\J/TT157J M2JDKI:[J9D>ET)1">W)K2=LP56O)'8/29T<?P4G:18ZLQ9ZFE]DZ7IWS ( M'GS)K3ZS;K\V?VL[AA^_=?_RZS1,8Q:,XU?'8N2WEQJ.WIROGQKV;M4_:,LK M+/HJ %AM3'#>AOI3'PYJ#_TVC.7:.CR=%M$V(TGK)]K.4+>=&HE6!%3:!1HEH^LP MP%N%TL=2NV[V>O7A6-KAK8),(\0NK>U6 6*)1$!L.R\4UD_-0%$BKB+B>GK7 M,I6(.UL19[]X:H3@H-S[+N#1S?TQG/*WQ_$_]4UNJ[O84M$[[#MZ9VC7K5]/ M'=OG0M('D*RUDW2_/]#[5K?N\,"YV0YG0>/;*LFTE,0MV]9[G4[=%O.YD?BV MJBD-V,*VT:O/W3\W?)Z%[7&D(FMHZOVNDEBG)[$LH_]D[[WI:!HPM30!-_5NOUMK=_LVQ.L5^[0&+FOS M&)H&3!WL8W6 ?7HULH]*;5#\]+A3Q*;A4KL'@J"S[!I!IXX9C^F84=%("V(S M+90S2OXJWCIRWCI]^=OVI)"\C[=ETP1?PX3YFLH0>?S-;@<$WCA,L4%P(YJ@ MSHLB36^L_O-'O=MSZCUD;^#LINY;(DVC>6]W1IK>V![HMV,YNM/OJR011?F[ MWM\^"<(?]$!LUYYJ?6YDW\ICV*%*'*FSR(428RT68]V^;O=4-LDIBC%K,9OD MAX0!L;;&U:T1*%X LR273F_CNL2;^/NEEP A[+!);<(E+(* MB3;F;L19S,?:Z%Y[;@^,C@;3^5X8Z%H8:1VC\T+7)IL[&VB.J6M8*UC7W' V M9Q%\GH3T1LQF7)O#^L*QY@7XD*-K\\B#M<"FM#&L('LR'<4)"Q*/^32*SS'3 M" NG,&W&_H 5B"?HTWD4_L'=!(<,TTB;AW<\@JWX'G#Z/3P>?>/T)0W,W3 8 M:U/F3W T7(+&X .?7F)NXMT"0K*A;EBLA;!@D><\V#S;E)K,$. M-=@FKA4V$4XF,4PWPC$R8$8\X'?(GP FO!2U8O'QYM7C$HOQ%I<)$)JE )XRJM..#"5^5Q%XSA'0E MHGT*C%H(6T*U%,B["]YB52@O\4+*$\0M9H=O$+)#Y:?&ZV;?@"5-G8&VM!F,".YIPEV9J,4D?B4HME MU^EPM=Y.SFO+#=J=TK&J8#/'7.[6C#__5.E%G1^#7\C2U#+*48*@A(Q- M+N\-OQ"MKMD$IK]D_AV[C^5>!^"/YGT8+O-(B8-K&N(9LU;\BC!90MN,?;\H M@4TZV!<^GR27XJWL(_*-L\^V]-N6.$_"^:5M&;T%?/>6D+V7XVZG%+1A&HB% MR8_/_OPU=-?;% $RC%^Q*>1'SW[Z2BP-8N@*O@5"B'.!SE9V$#*[/<>U2J=X MI:#(!MY9Q,N;LI0&893=2LFT2NQ]WRA]<0P2,2##.(KY2>B# M0(LO"33$XCFGB+@@ -1G\YA?9K^4=X(+EW2%H',%? M%R*&AJTXH@V(4,I:(4(A8B&)=./-!H4(%>$X+T0,C(X2334B8O?;O6M98\L! MT>'@,'@ '/8J#5J]Y;PQ>/>QC<'MGF$>=XO->KO2;C.7CKU]9DXQP\=23*=G M].VCIAB1P?6)<@.>UE:S5>+RJ:1Q"O*S-O8X8X'Z?E.*C$@3 MN-1]/%DIJ=P^J3Q8 L$FW NL+O]<$A\YH]B/911,E>X<-:-@ F)MS>)/4CD_ MA3@&1T\#J/MNSP#L>1TTY=@N4PM--N'2M@T*+ZDDT9 MM-%7FF3:D9V#[DD9*U?ND%*W>]S>V[YL6$5(&Z2NR/HZ8JK9+G4?%P-HN#=? M7OJP/C8XPVZ#I$<:WG<])6^'S>QD#T7J+7.@]VV[[M/5IM'<2)GZ3O/[KHF\ M3X:Z!XYNFM:I";'#4[<,O9P$=3O--/NMO]V]HW<[M;;':8,$:Z(]GMU^B@#/ MH([>"^G,ED]-4)EM*?+66 MQKMF3W?ZM?O^)T[CV^I7G2J-;RX6U5(BM^V>WNW42N*'D'"-(WMS':1&6I(- MZO/N3QQ]9[');05Q6BJ0K&Y/'UJ]8[,KVZ:.MA5_:4!"F97XXU$>XG_ 7(:L MU\$[WYMY@6CY=LRAIU8(XQ7[;CK-IW'YO29%H&FX/$#4K1/R+[O8U]Y\=0*! MV\:Y9\V)VQ%1R>%B$,<-I[7<9 UU:D%Q1:: M,,'7,&&^=C0!S7:HAHJ\C<,4>X,VH@AJO/C1]+[J/T?4A_V>WJG_&LA! M,9S=>MW+]? 3(=\6;&L/U-OKF[K==]09XY/+:9P&F2\7O#@%.G=LS)>N\7!5 M97LT=9:JLCV4*;E<'^(4A)2-&2##_K$9DNT, +0)^T.CMY@ \D/"@%9K78P7 M $"32Z>W4?*(-_'W2P_\=)*)YG M,Z[-877A6/,"?,C1M7GDP4I@2]H8YL^>3$=QPH+$8SZ-XG/,)\(2*$R;L3]@ M?O$$?3J/PC^XF^"081II\_".1[ 1WP/1< ^/1]\X?4D#@ M,?C IY>8FWBW@(YLJ!L6:R$L6&0SR:%@R2S"E<&2P\DDAL%'^$8&N(@'_ [Y M%X""%YM6+#7>N%:C+=18#I-B"4)0FXT1J&B?,Z?V.3L38)6:>T9W@9B[+QY+ MI"P?&Q^*!/=LHPRQH=C0*IL!&F,X(98$8C<6>MM*KNVDJ'=*1WQ"D ZUG+C M6/SYITI;W%Q-7X5NE(<3?>6<3'*D#O0P1L[.?)PYN(S:<@ID!\ M,VWB!2#=4&9Z 8DZ7&%>H;.>U:' S BF'HEU"'OD*XIU=-K1. ):0163ZTY0 M%##D+>B_213.-!<43SCC49SI@]\"+X$OOX ##4NZ\T#'L3GHC.^@!Q,.BJB+ M*O,&E1M+LE%BF,*%Q\,TB;TQ$>CR6 _0T:!U ;5S4GRPKBL6L#&K4_.T%;&[ ML\-?08#[X8TB^->BZ20(@8B!\9.Z21IAW"FZ]9 DP9-/(G 5PBC6M9$ FN;" M-D9H?:+I!1H<1CA&YR M%VHSV ,@CD C0?L:IN7"C@51XJ=C^+:R:J(X.@VC*Z=(U VF7"$;]E&2 $<81D;U/L:4Q.$KH2/N$VR "+6"\-7'Y1 M+D=SP2QE0((%<4C9GA&J#.U.:,79CDH$M$@J54K0D;YPOF4:,X29\7M!!A4@ MC,AI"]%E JT3H>FL 8\%8P)QP0>QH$G0[,!MN'Y<3C8B83E36S#Q#+_,1R[9 M H*-4/GE2NYP,0&MM;*2D+Y(GN!6@IN'$@;(*[M9G'&$\(E)5>/7"[H:AWK+ M73X;\4@V^+5TZ3W?(4F!D)N$/GBMP.U B#* $+^Z;#+$B&\.X5&X!JE'T9AVA;E>]6Q*IZ'2KS&7?)(DRF;-M++8T6[) MQDZ/&I"M/WTMF?^E\4,8J5:( M.*!L4EJB1DP\L+; UG#?079]\ ZUVV)K;=^U&_KXX8_/NL\>:YT-C,YQ-^FM M'"K4UZ9WHS0ZG RHH^GNTZG$,8UA[ZBI)#MGTK(CIB=UY%7B\BAWG3."_5A& ML!RCLU0PX*@8X5=,4K!L[1=*4*A)7FYS:(Y47CZ%3'I+]1>.BDRHV)/2IONA MCHZH\7:\U*&$R"'(I&M8UE&3R0HA\CA#J_'*HIMVF=]4KX\/FNENVG@M)LRO M.+]]RW2&=E6Z; 82I '.D *,\R1\<2"E"%]:R.=' >>Z;T7YYR[RQU; M'O2=#N6W/7*<7_'NS8M+'/D5P*,/"1_0,SGH)NNHK[@U3[JE]1-[ Z/&XHE- MAY4.YT$<'X%NRT@["P)M.CQ^0$M?4>B!*'38,VHM!7\&(G1;+F"+*?0 G'48 M"CW"TX$%^[IT-5H=!=1_%-!T_["FS;RU1P5- Z9V^6#I ]LR.BK2M*_#A:8I MIFFPK W!-@V8VEFIJUM]RQBJL/W>]MTTR2A>.IQ:ZO=[1E>II;T=@#1-,BW@ MI78*F3WH)7,(+Q[[DN@IO&-[<.)&YJ& MI2*1C_#8FB:&?<72&]_8'O28W3%7Z+%C.BQIS)EJFAH4F3] F/=M8Z"$^6/\ MG*:I85_G3HUO;!_1LL%P1;3L^,^F*ML73Q7E9 ]X@?C\@AWJ:LN)9'NJ,)^Z MVJ(2_-59D=JWHGPE\M75%G6UI>&B2)LNYHMNO^J I=4771IS2HZ4*56TK5WW M8!JSL,Z-?L_H4.3$-WFF!'P6 KB!6S2-6?I'2L#'?Y"QGTOLY^>QMN-8HLX, MJE;YWH\[?[1UV^S7F4URKG&H5AP]U)E1<@+$W='[PT&=M[K.-CGTKZEX0 MW=WAT#"5Z#Z-(X0ZTZ1.@+J[NF7:QW]=8Q\W]$^<'5?=NSB_BUFK+FF?D/C_/AA59[["?!#Q^K4F>1^%A']57U_G MQQ\[EAL[%?YHJ2S8@_[HF]T5)ZY'=B;5EIOY)RX$U/66UB>GJK"BNMYREK<# MSNB:8$?!8"6%UO:3T!'^$YS.:SEV<_?0T3YJOSE1.XZZ)*<#6MH,Z0 M MIP#T85(FK:ZCX_"CC7?2O*/W>1WX[[,ZH$5T/.3&/G&*J[_'&<2IQS=WE; MM_NJ.W+[3Q[.N7UW1Q_T^G7>RCJ+P+OJ,7]@0=H;=I4@;?\)PCFWF>_JUG!P MDMT\5*?Y UZ[.+^[6^?4:7XX,%5+WT-=T3@_5CJ?[MA=O3NH];;3N8;P5:?Y ML^ M:D[\]#IF)T'E)]N"V]0[74>5)ZNA/)FB\Q;3>4?O#\SZ"RF?.)FK5O-'1N8@ MS@?#SKK3J1\2!KO;/VV*!_'W2R^![;FOE[R+'UN'3IS&CQ M-$S]L1:$B3;BFAL&L0?4P<<:@S]F .4IAX]NN08C :TE8:2%$VV2)FG$M8C? M\B#ENL9B>'[.(Q\V(-!H51QMHD"F?:/ K_X&X2:\F4)1J# MD7#^.8L2?)-I([DXH&TW]5GBA8&A?9WR_ L>)]Z,)0 /+W#]=,PU-@/7&T:D M\;.OQ]HO7][$NC9*$UJ/F\9 \SR*\SEAPTG$W"1EOG^OA2.@2GHO";5Y&KE3 M%L/0@1P=%P>POO5<+B=*8PTA$<(WF",NX1MA1'/@:#=,A^Y"=@%:9.- M86( ,4!LS"=> +O C4I6E81/$$&$%C2?[5\0K5&C2/%A$1=3(=#JT=2'O@+X MLP>X',.J" 57;(ZB6OO,8P A<'4>VSEM>&U6#06,(@X*(!9T#R3&Q )).#(A MOWQ/?.AQHG"24RCJ0'=P;8S$/ $!"?P? RAB& ;XD(15+)A@QGE2D94H"*08 MQJ?H(?Z=NVG"Z;E\I+G/0"E\3)$?@?"!3R4.D9W] LV1>,]E\10XPT=Y":,F M)&1&''8=H,B"=SASIU),T*SY6Q,_O)/R7BX?7H"E>K>T;Q#/$RW@''A1ST4; MNV6>G\%+J @!KD LT 45ZY&P8^D-2I;2DG$L"9Y\.!!0482/Q5/N3U Z>7$B M( D4 6Q/8TP\/Q/(N+TO[ZZDAO7%%D*AJ%!>(1Q(E:#('/-<,Y54W9B/$@%_ M6!FL*P8L1'++"'?241?X)CWEA\&-^(N@5I&:9%?$B425YY.*O NC;PA*5W A MR+W@%J28> ,@$Z?S.6K!3)[>1.$=[(S(!D1]PC+)!Q/-:?_XU82YDB!U[88' M@"\?IH]@)-Q=";8X@U#F- KMMD1YH,D)4_]( ZXYIJ[9IMW1A=0&O)#] "\F M /T ;60-[&I8(/Q6M@F$+3KV;G_Z"_S(F-?U.8O07I^^'GLQ4/+])1FID@\S MV]SN&TX7N1,^DE+$,0T;/\K"D.8+%"2EH2OC7:!M\'I3*#X;H7;+'BU!'F6" MQ>Z4@O!"RCAV"3:EGW\J[Z8X5+EP0S^,+C,?I01!"1F;W)4;?C$"8^7;!9O M])?,OP-M+O1'SW[Z2I8B,,\5?(OLG*LP5ATO0VJWY[@6:3RK9U9= M^0V\LXB/58#>@X'QF=^&_BVR_)60XN^%R+G7T64"(Q(,8U_S>9*079\+^[*P M( 'RO OXUF!%/EGO*)2DW@#HY>($Y2-, +X#HS6YW;?,3K92W4:=YN-@K8: M*[L$",!](BD.$MPA%4VRB4QG5,"!]L9UA??XF;O3[]>:7]EP3==^Y7>!6)X(]TE'.GE,WC@V2O4/QXX MV"&H]T4S S0[NK39JJ)\5>0*_B,%_8G:"+<"1@&_X^1-%&LD7T]+[L*+>V 6 M)&[0QJ']" _I>A24+Y+5>5)2X"A47*?2(UCDPIO>]%ZH*&O1V8IV8(@FJ4+CK@'HS4DS_\N(,\I^!:E\\0E M=S($>^$+^GB P$\I6!"PRW=!@@!&2-!ZI M(;JTPK\!YFXN'12*KETSV6UD^XTXF-4QN"^$!0S.N.%- .PQ1D?Q>;];@!EWNFBRK+%CR+(< M@S@IOPXP+P10+G;2%2@"0PYW*^B$")((D?F&=O8B"5B43 P$3VZHQND$Z,2K M6/I"%J'3SZ1WLV 2+X0> @I98%P"_" &!K6A_ M;*31/9G]-#AP*KD-H?L-559 !B*B/ "2!^N8C'AA#T<9V^.+Y#(MJZ7"O9&* MKC#!D2 #(.HX1@<-UD?>(#Y:.(*:("3Z!F=@+NQ9:'*D6Z"JW.D#S^/LO?./ MF5N*TH!^01H!(I)N$R";(U^;_<),6"47R%B9LT@(PN>VU3<&"\^_!9(LB2DPO*"RBX>3$R$.A ME3UF%"ABZ[B%TO)!0) 1BE:5 )X0)<+@&7&@6#!Z;\. FF\@<4TL\7??:DOC'4?84"[ST*O)JCV@^ 5?'F<+YS!>Y#K/*JT ;C M79F3J!?5()%\G,XPE(EF.$-.$2'6EQZ&P,,TAF?C5Y>MME8H1)A'VD16@ O[ M8/.87V:_E)>!4)0KP-"+*X([6="2PF L3<+L Q$$HT\JH;)28H%\QLR#7 ,1 MXTJB;%W9CL4N=\LO[@V-P<;\XE(XJ30^>.(1DD0&M.QO"B-P[FK6= :W<&K,1DGY@QMOFVLT+$@1!A;2F.HQ!Q*$28 M1G]CE0J%"26;S@L1()LV)I4J1!P*$98QQ0QCARZ)/7+W_J$ABG ML@!&@41FBF/J68K*Z3#!8Z\IM)PK!@^*E@JT+O]5!I+"\.KKC/= Q&72L( M^&C[36P^@#HXDZV[UO_2LG5GV']U1#YG2^CRT#4Z:J'+;8"4S>O>D(IK>^QDY.IL)/XMRG*9#\[BR,LY0MXL%=1ZG)[/N\D$KWQA[9_OKCC1H2(QXG?EY>S! MRVEQ2?R6G?^T&%*/[0_5ZW:4-[4W;ZK%!-.R Z860^IQK#7L]([6@:MD4NC+ M%0WPTF7$XR3RZ((Q?J^LY =IX:;K/>_K"*OQC=5RQF7JW:[R_QZG!)LF@'T= M@C6^L5HHVS$WA!8/596]134''IYF^#%/SWA3"FC6O>KCK(-$95Z**@Z;,EKR M.B:[UG>@ZHQ;JCJ<;/6$[M 8JKOB)295-Y3/'1&68:L[^ZU A&ETA@H3+<"$ MDDTM082236U!A))-+<&$DDTM082232U!Q-"P56&7&A'QP,.5K2YUJTM '&<< M^DE;KJ'J19+2O9?=HL7)OL/N+*'%LK M%ITG:2CIKJ1[JZ7[$BN?AKAO;PTFR^@?=VTZ58I+D<'K5:6X%!D\-H)_Q&0@ MZI(]J2:;U(BM2JQ_=+*4JLQ6D_5[AON6PJ#5M[I5939%^8KR%>4KRJ\Q['$Z MA'\$P1"\ ^8%;CCCVC'X+FV@T@;BD37=VMJ<']72RY6]@=X9+-^O5#2J:+0U M--HQ=:=C*QH]!QH]S-E,[21J#W2KLUS_X3BC4V\Y;,WU1,]YO#;&9B$L^K_T M@7(\CMSQJ+,.6?L\Z<>Q;]?4[;XJWZ(H_'0IO*/W58$B1>%'&!-:7Z\/7%?S MR>7ZFH@+B9/,&*_TLSCFLA"0[S&B7U78M3F-'%L? DI;EZ/WA0%7\461\ MU&3[KMU-]2[ S)0)'_$9*_U='[3E>1OR+_ M-9_>MZ^)<-C'9,HCY60]B#D;KO*^WP.74RMA/] '_8$*)B@Z/W$Z=_2>W55T MKNB\:E"=&IEW=;N[W#KU.$-I2WTF5]485[Y4_;Y4XVT0]I5?W,:]UN)@V;HS M5-$UQ1**)3*6&)CZP%D1ZE\M5SK(_M(<60?5WN1'U8$ME M;EV?LPBQ.WT]]N*YS^XO:0MRJ@QO=M]PNK@ ^$@NR#&!NN=)+A)%+=S2T)7Q M+ESN^Z\W6<[U5M-=6Y'$[A08EUAWG.6*N?CS3Y5ZP#EI8\N<,+K,Z+<$00D9 MFTCYAE^(N%5OR*,%E"&W;C M*8&MTFU'O%7MMR,_VU+S6.(\">>7MF7T%O#=6T)VW;*(<.*4V)%ITXA/?GSV MYZ^AN[Z^2A!&,^97ZJO(CY[]])5:'H43[2JDWD5%+RI6'2]#:K?GN%;)6]Z- M=Q;QL0K0A^@PM9/?MVMOJ3L6:\\MV^AHL%0?KPVYX6S.(G@P";7G ],8Y-_L M-*1C:-0"2_3/O ?H76!][@O\C6:;1QYL!^"BC5..DWBS>02/8-Z'1@VM.'X$ M6]$F43BCO]UM6;?BLE. 5[:!'V-JW!GD5[B-&KM_K1?/Q8,/* YXJ)9D,4A) M;P)R&8",& X#ZF(*3(/P?6Y93@G11?/3-=#>M7%9!(^D,T3W?^'+HG/9I780 MC"SCH&R\3. _D.TKT?* +FI/6W:F?$N?H&@FI)).!>T:ILGEQ/O.QV71G.D5 ML>MJ\$J&J3KXW0_E+YZTX 7%3C0':]U@&@^6[+W_^?.PUQ^^7C1$%XS"):YZ M[))W5"!O7!=( N@\XB[W;@GWF209:Z-[[;EM#@H1J:^08?G3$;_E 7R(+(,L MDG@SE,S :$@VW"4Y38(M3"/-36/ /H_B@OJ6[,S5RKLG0"44UL')M:?(M3ER M13,G0OTHI?,"J0X,\XF4.L*W\=<*A>*#ZZE42$*$5ZEE)LI2*U^J;1W8LF;9$65?37:K_#ZG:>;,T]UN]0M'A.M+C%HB-B M='J&_7"C3CD.BLQR,J.$<1 _0"!!KG?'O.+ ]@TG-T:7B(Q$)=AX(-A$O!=+ M=";L.WPQ28-Q&SR(S?;XPRO(?PAN>;R4UU6W%U'_0>0AH/E^ITBT+@Y,\)S! M&PLR\U8 59R&.,,2_55.0X9&+_\B.WS9Y4#D8-!H*Y;>IA%">A=$W7%MGD;@ M@R)\5]\.)@?TN=,I8:."ID[Y.&M:#H)I'J !)JY&\ M"HC*BH>Q-!_N[ \PRBY&]Q?R5VT$ \FW)_'N-0/(C3 M2"RN,C6[99Y/\R%@T+R30P)!3SD>A'$ M*%]@(E!^">DO6D.-HB# 5F86X.LBY(@6KSIR5GY0:_R@3^Q^EL7@"^-BS$?DV3RW>P4GM"E$HVBF M09IYZZ'W I;P/",>D'%H78#=YGZ;@@H"@Y7(IU<8P"KZHBAH6>I0SJ(P#S%V MH*8[$53HKW!!M.>AA;(N/7W