anchor.diff:        // loading arc and blocked counter
         canvas.drawArc(
             Rect.fromLTWH(- ringWith * 1, - ringWith * 1, size.width + ringWith * 2, size.height + ringWith * 2),
  -          arcStart * math.pi * 2 - math.pi / 2, arcEnd * math.pi * 2, false, loadingArcPaint);
  +          arcStart * math.pi * 2 - math.pi / 2, math.min(arcEnd, 1.0) * math.pi * 2, false, loadingArcPaint);
   
         // counter arc total
         canvas.drawArc(
             Rect.fromLTWH(- ringWith * 2, - ringWith * 2, size.width + ringWith * 4, size.height + ringWith * 4),
  -          0 - math.pi / 2, arcCounter[0] * math.pi * 2, false, loadingArcPaint);
  +          0 - math.pi / 2, math.min(arcCounter[0], 1.0) * math.pi * 2, false, loadingArcPaint);
  +
  +      // blocked counter - the overlap
  +      canvas.drawArc(
  +          Rect.fromLTWH(- ringWith * 1, - ringWith * 1, size.width + ringWith * 2, size.height + ringWith * 2),
  +          0 - math.pi / 2, math.max(0, arcEnd - 1.0) * math.pi * 2, false, loadingArcPaint);
  +
  +      // counter arc total - the overlap
  +      canvas.drawArc(
  +          Rect.fromLTWH(- ringWith * 2, - ringWith * 2, size.width + ringWith * 4, size.height + ringWith * 4),
  +          0 - math.pi / 2, math.max(0, arcCounter[0] - 1.0) * math.pi * 2, false, loadingArcPaint);
   
         // counter arc 10k-100k unused
         // canvas.drawArc(
  
positive.code:     _scheduleUpdateAnimations();
    }
  
    Timer? timer = null;
  
    _scheduleUpdateAnimations() {
      timer ??= Timer(Duration(milliseconds: 200), () {
  
negative.code:   }
  
    _updateAnimations() {
      if (appModel.working) {
        animArcCounter = Tween<double>(begin: counter, end: 0.5)
          .animate(CurvedAnimation(parent: animCtrlArcCounter, curve: Curves.ease))
          ..addListener(() {
  