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