أنت تعمل على برنامج يدير ملف ذاكرة التخزين المؤقت لبيانات الاعتماد. يخزن ملف ذاكرة التخزين المؤقت قائمة ببيانات الاعتماد (TGTs وTGSs) التي يتلقاها المستخدم من خدمة مصادقة Kerberos (AS) وخدمة منح التذاكر (TGS). تمثل كل بيانات اعتماد تذكرة مصادقة للمستخدم للوصول إلى مبدأ خدمة محدد.

مهمتك هي تنفيذ طريقة "add_tgs" في فئة "CacheManager" التي تضيف بيانات اعتماد TGS إلى ملف ذاكرة التخزين المؤقت.

يجب أن يقبل الأسلوب `add_tgs` المعلمات التالية:
- `tgs_rep`: التمثيل الأصلي لبيانات TGS_REP المشفرة بـ ASN.1، والتي تتضمن الجزء المشفر من كائن استجابة TGS.
- `enc_tgs_rep_part`: الجزء المشفر الذي تم فك تشفيره من كائن `tgs_rep`.
- `override_pp` (اختياري): علامة منطقية تشير إلى ما إذا كان يجب استخدام العميل الأساسي باعتباره المبدأ الأساسي لملف ذاكرة التخزين المؤقت. إذا كانت قيمة `override_pp` `True`، فيجب استخدام العميل الأساسي؛ وبخلاف ذلك، يجب استخدام مبدأ الخدمة من بيانات اعتماد TGS.

يجب أن يلتزم تنفيذك بالمتطلبات التالية:
- قم بإنشاء كائن اعتماد من بيانات TGS وإضافته إلى قائمة "بيانات الاعتماد" في ملف ذاكرة التخزين المؤقت.
- يجب إنشاء بيانات اعتماد TGS استنادًا إلى بيانات `tgs_rep` المقدمة مع `enc_tgs_rep_part` الذي تم فك تشفيره.
- إذا كانت علامة `override_pp` هي `True`، فيجب استخدام العميل الأساسي باعتباره المبدأ الأساسي لملف ذاكرة التخزين المؤقت.
- إذا كانت علامة `override_pp` هي `False` (افتراضي)، فيجب استخدام الخدمة الأساسية من بيانات اعتماد TGS باعتبارها الخدمة الرئيسية الأساسية لملف ذاكرة التخزين المؤقت.

يمكنك افتراض أن الفئات والأساليب اللازمة لإدارة ملف ذاكرة التخزين المؤقت قد تم تنفيذها بالفعل، وتحتاج فقط إلى تنفيذ طريقة `add_tgs`.

قم بتنفيذ طريقة "add_tgs" في فئة "CacheManager" وفقًا للمتطلبات المحددة.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}