Если анализировать построение, становится заметно, что эта логика не зацикливается в одном виде, и меняется между вариантами. Ниже размещён углублённый анализ. В конце сформулированы подсказки, чтобы можно было сохранить понятность. Когда требуется можно подстроить эти формулировки под свой сценарий.