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