NetSuite tax configurations can contain progressive ranges whose order is not guaranteed. Given an income or transaction amount and a collection of contiguous tax brackets, calculate the total progressive tax owed.
Each bracket is represented as [lower, upper, rate_bps], where bounds are measured in cents, lower is inclusive, upper is exclusive, and rate_bps is the tax rate in basis points. The final bracket uses null for upper to represent no upper limit. Brackets may be provided in any order.
Implement calculate_progressive_tax(brackets, amount_cents). Return the tax in cents, rounded to the nearest cent, with exact half-cent values rounded upward. Use integer arithmetic for the calculation.
def calculate_progressive_tax(brackets, amount_cents):